(function(a,b,c){b.Window=function(){this._getSize();this._initEvents()};b.Window.prototype={_getSize:function(){this.width=b(a).width();this.height=b(a).height()},_initEvents:function(){var c=this;b(a).bind("resize.Window",function(a){c._getSize();return false})}};b.Slideshow=function(c,d){this.$el=b(d);var e=this.$el.children("img");this.$imgs=e;e.remove();this.imagesCount=this.$imgs.length;if(this.imagesCount===0)return;b.data(a,"window",new b.Window);var f=this,g=0;for(var h=0;h<this.imagesCount;++h){b("<img/>").load(function(){++g;if(g===f.imagesCount){f._create(c)}}).attr("src",this.$imgs.eq(h).attr("src"))}};b.Slideshow.defaults={current:0,width:600,height:400,perspective:550,speed:750,easing:"ease-in-out",onLoad:function(){return false}};b.Slideshow.prototype={_validateOptions:function(){if(this.options.current<0||this.options.current>=this.imagesCount)this.options.current=0},_create:function(a){this.options=b.extend(true,{},b.Slideshow.defaults,a);this._validateOptions();new b.Slideshow3d(this.options,this.$imgs,this.$el)}};b.Slideshow3d=function(a,b,c){this._create(a,b,c)};b.Slideshow3d.prototype={_create:function(a,c,d){this.options=a;this.$wrapper=d;this.current=a.current;this.$imgs=c;this._construct();this._initEvents(a);this._showImage(a.current);this.$imgs.each(function(a){var c=b(this);b("<img/>").attr("src",c.data("bgimg"))})},_construct:function(){b("#pageTmpl").tmpl({}).appendTo(this.$wrapper);var a=this;this.$wrapper.children("div.fd-box-wrapper").css("-webkit-perspective",this.options.perspective);this.$boxes=this.$wrapper.find("div.fd-box-upper, div.fd-box-lower");this.$upperBox=this.$boxes.eq(0);this.$lowerBox=this.$boxes.eq(1);this.$description=this.$wrapper.find("h2.fd-title");this.$boxes.find("div.fd-image").css({width:this.options.width,height:this.options.height/2,marginLeft:-this.options.width/2});this.$FDNav=this.$lowerBox.find("ul.fd-nav");this.$FDNav.find("a").bind("click.Slideshow",function(c){a.current=b(this).parent().index();a._showImage(a.current);return false});this.$triggerFullscreenOn=this.$upperBox.find("a.fd-option-fullscreen");this.$loading=this.$upperBox.find("div.fd-loading");this.$triggerFullscreenOff=this.$upperBox.find("a.fd-option-zoomout");if(!Modernizr.backgroundsize)this.$triggerFullscreenOn.remove();this._setSidesDim();this.$FDNav.css({marginLeft:-this.$FDNav.width()/2});this.$upperBoxWrapper=this.$upperBox.parent();this.$lowerBoxWrapper=this.$lowerBox.parent();this._retouch();if(Modernizr.backgroundsize){this.$triggerFullscreenOn.hover(function(b){a._showImageFullscreen();return false});this.$triggerFullscreenOff.hover(function(b){a._hideImageFullscreen();return false});this.$upperBox.bind("webkitTransitionEnd.Slideshow",function(b){a._removeTransition()})}this.options.onLoad()},_retouch:function(){var c=b.data(a,"window");this.$boxes.css({"-webkit-transform":"translate3d(0px, 0px, -"+Math.floor(c.height/2)/2+"px)"});this.$lowerBoxWrapper.css({top:Math.floor(c.height/2)});this.$wrapper.css({width:c.width,height:c.height})},_setSidesDim:function(){var c=b.data(a,"window"),d={width:c.width,height:c.height/2,"-webkit-transform":"rotate3d(0,1,0,0deg) translate3d(0,0,"+Math.floor(c.height/2)/2+"px)"},e={width:c.width,height:c.height/2,"-webkit-transform":"rotate3d(0,1,0,180deg) translate3d(0,0,"+Math.floor(c.height/2)/2+"px)"},f={width:c.height/2,height:c.height/2,"-webkit-transform":"rotate3d(0,1,0,90deg) translate3d(0,0,"+Math.floor(c.width/2)+"px)",left:c.width/2-c.height/4},g={width:c.height/2,height:c.height/2,"-webkit-transform":"rotate3d(0,1,0,-90deg) translate3d(0,0,"+Math.floor(c.width/2)+"px)",left:c.width/2-c.height/4},h={width:c.width,height:c.height/2,"-webkit-transform":"rotate3d(1,0,0,90deg) translate3d(0,0,"+Math.floor(c.height/2)/2+"px)"},i={width:c.width,height:c.height/2,"-webkit-transform":"rotate3d(1,0,0,-90deg) translate3d(0,0,"+Math.floor(c.height/2)/2+"px)"};this.$boxes.find("div.fd-front").css(d);this.$boxes.find("div.fd-back").css(e);this.$boxes.find("div.fd-right").css(f);this.$boxes.find("div.fd-left").css(g);this.$boxes.find("div.fd-top").css(h);this.$boxes.find("div.fd-bottom").css(i);if(!Modernizr.csstransforms3d){this.$boxes.find("div.fd-back, div.fd-right, div.fd-left, div.fd-top, div.fd-bottom").hide()}},_initEvents:function(){var c=this;b(a).bind("resize.Slideshow",function(d){var e=b.data(a,"window");c._setSidesDim();c._retouch();if(!Modernizr.csstransforms3d){c.$boxes.find("div.fd-front").show()}})},_showImage:function(a){var b=this.$imgs.eq(a);this.$FDNav.children("li").removeClass("fd-nav-current").eq(a).addClass("fd-nav-current");this.$boxes.find("div.fd-image").css({"background-image":"url("+b.attr("src")+")"});this.$description.text(b.attr("title"))},_showImageFullscreen:function(){var c=this.$imgs.eq(this.current),d=c.data("bgimg"),e=this;this.$loading.show();b("<img/>").load(function(){e.$loading.hide();var c=e._getImageDim(d),f=e.$lowerBox.find("div.fd-top"),g=e.$upperBox.find("div.fd-bottom");f.css({"background-image":"url("+d+")","background-position":c.left+"px "+ -(e.$lowerBoxWrapper.offset().top-c.top)+"px","background-size":c.width+"px "+c.height+"px"});g.css({"background-image":"url("+d+")","background-position":c.left+"px "+ -(e.$upperBoxWrapper.offset().top-c.top)+"px","background-size":c.width+"px "+c.height+"px"});var h=b.data(a,"window");if(Modernizr.csstransforms3d){e._addTransition();e.$upperBox.css({"-webkit-transform":"rotate3d(1,0,0,90deg) translate3d(0,0,"+Math.floor(h.height/2)/2+"px)"});e.$lowerBox.css({"-webkit-transform":"rotate3d(1,0,0,-90deg) translate3d(0,0,"+Math.floor(h.height/2)/2+"px)"})}else{e.$boxes.find("div.fd-front").hide(),f.show();g.show()}}).attr("src",d)},_hideImageFullscreen:function(){var c=b.data(a,"window");if(Modernizr.csstransforms3d){this._addTransition();this.$boxes.css({"-webkit-transform":"translate3d(0,0,-"+Math.floor(c.height/2)/2+"px)"})}else{this.$boxes.find("div.fd-front").show();this.$lowerBox.find("div.fd-top").hide();this.$upperBox.find("div.fd-bottom").hide()}},_addTransition:function(){var a="-webkit-transform "+this.options.speed+"ms "+this.options.easing;this.$boxes.css("-webkit-transition",a)},_removeTransition:function(){this.$boxes.css("-webkit-transition","")},_getImageDim:function(c){var d=new Image;d.src=c;var e=b.data(a,"window"),f=e.width,g=e.height,h=g/f,i=d.width,j=d.height,k=j/i,l,m,n,o;if(h>k){m=g;l=g/k}else{m=f*k;l=f}return{width:l,height:m,left:(f-l)/2,top:(g-m)/2}}};var d=function(a){if(this.console){console.error(a)}};b.fn.slideshow=function(a){if(typeof a==="string"){var c=Array.prototype.slice.call(arguments,1);this.each(function(){var e=b.data(this,"slideshow");if(!e){d("cannot call methods on slideshow prior to initialization; "+"attempted to call method '"+a+"'");return}if(!b.isFunction(e[a])||a.charAt(0)==="_"){d("no such method '"+a+"' for slideshow instance");return}e[a].apply(e,c)})}else{this.each(function(){var c=b.data(this,"slideshow");if(!c){b.data(this,"slideshow",new b.Slideshow(a,this))}})}return this}})(window,jQuery)
