Edgecase=new JS.Module('Edgecase',{include:Ojay.Observable,_0:true,setElement:function(a){this._1=Ojay(a);return this},setContainer:function(a){this._5=a?Ojay(a):null;return this},setAspectRatio:function(a){this._7=a;if(this._1)this.fitToContainer();return this},getAspectRatio:function(){return this._7},setup:function(){Ojay(window).on('resize',function(){if(this._0){this.fitToContainer()}},this);this.fitToContainer();this.notifyObservers('load',this);return this},show:function(){if(this._0)return;this.fitToContainer();this._1.show();this._0=true;this.notifyObservers('show',this);return this},hide:function(){if(!this._0)return;this._1.hide();this._0=false;this.notifyObservers('hide',this);return this},getHTML:function(){return this._1},fitToContainer:function(){if(this._5){this.fitToContainerXY(this._5.getWidth(),this._5.getHeight())}else{this.fitToViewport()}return this},fitToViewport:function(){var a=Ojay.getViewportSize();this.fitToContainerXY(a.width,a.height);return this},fitToContainerXY:function(a,b){var d=a/b,c={display:'block',position:'absolute'},e,f;if(d>this.getAspectRatio()){f=a/this.getAspectRatio();c.width=a+'px';c.height=Math.ceil(f)+'px';c.left=0;c.top=Math.ceil((b-f)/2)+'px'}else{e=b*this.getAspectRatio();c.width=Math.ceil(e)+'px';c.height=b+'px';c.left=Math.ceil((a-e)/2)+'px';c.top=0}this._1.setStyle(c)}});Edgecase.Concrete=new JS.Class('Edgecase.Concrete',{include:Edgecase,initialize:function(a,b){var d,c,e,f;b=b||{};this.setElement(a);this.setContainer(b.container);this.getHTML().setStyle({display:'block'});if(b.aspectRatio){d=b.aspectRatio}else{c=this.getHTML();e=c.getWidth();f=c.getHeight();d=e/f}this.setAspectRatio(d)}});EdgeGallery=new JS.Class('EdgeGallery',{initialize:function(b,d){this._6=d||{};this._2=0;this._3=b.map(function(a){return new this.klass.Item(a,this._6)},this);if(this._6.rotate==='auto'){this._a=true;this._8=(this._6.rotationTime||this.klass.ROTATION_TIME)*1000;setInterval(function(){this.nextPage()}.bind(this),this._8)}},insertInto:function(c,e){c=Ojay(c);this._3.forEach(function(a,b){var d=function(){if(this._2===b){a.show({animate:false})}c.insert(a.getHTML(),e||'bottom')}.bind(this);if(a.loaded()){d()}else{a.on('load',d)}},this)},nextPage:function(){var a=this._2+1;if(a>=this._3.length){a=0}this.setPage(a)},setPage:function(a){if(this._2===a)return;this._3[this._2].hide();this._3[a].show();this._2=a},extend:{ROTATION_TIME:5.0,Item:new JS.Class('EdgeGallery.Item',{include:Edgecase,extend:{ANIM_TIME:1.0,selectFader:function(){if(this.__fader)return this.__fader;var b=EdgeGallery.Faders.Default,d=document.createElement('div');['o','moz','webkit'].forEach(function(a){d.style.cssText='-'+a+'-transition-property: opacity;';if(a==="moz"){a="Moz"}else if(a==="o"){a="O"}if(typeof d.style[a+'TransitionProperty']!=='undefined'){b=EdgeGallery.Faders.Transition;b.use(a)}},this);return this.__fader=b}},initialize:function(a,b){this.selectFader();this.setAspectRatio(a.width/a.height);this._4=b.animationTime||this.klass.ANIM_TIME;var d=Ojay(Ojay.HTML.img({alt:a.name}));d.on('load',function(){this.setElement(d);this.hide({animate:false});this._9=true;this.setup()},this);d.set({src:a.uri})},loaded:function(){return!!this._9},selectFader:function(){var a=this.klass.selectFader();if(typeof a==='object'){this.extend(a)}}}),fromJSON:function(a){var b={rotate:a.rotate};return new this(a.images,b)}}});EdgeGallery.Faders={};EdgeGallery.Faders.FadeOut=new JS.Module('EdgeGallery.Faders.FadeOut',{hide:function(a){a=a||{};var b=new JS.MethodChain(),d=this.callSuper;b.getHTML();if(a.animate===false){b.setStyle({zIndex:1,opacity:0})}else{b.setStyle({zIndex:1});b.wait(this._4+0.1);b.setStyle({opacity:0})}b._(function(){this.callSuper=d;this.callSuper()}.bind(this));return b.fire(this)}});EdgeGallery.Faders.Default=new JS.Module('EdgeGallery.Faders.Default',{include:EdgeGallery.Faders.FadeOut,show:function(a){a=a||{};this.callSuper();var b=new JS.MethodChain();b.getHTML();if(a.animate===false){b.setStyle({opacity:1,zIndex:3})}else{b.setStyle({zIndex:3});b.animate({opacity:{from:0,to:1}},this._4)}return b.fire(this)}});EdgeGallery.Faders.Transition=new JS.Module('EdgeGallery.Faders.Transition',{extend:{use:function(a){this.include({transitionPrefix:function(){return a+'Transition'}})}},transitionPrefix:function(){var a=this.callSuper();return a||'transition'},show:function(a){a=a||{};this.callSuper();var b=new JS.MethodChain();b.getHTML();if(a.animate===false){b.setStyle({opacity:1,zIndex:3})}else{b.setStyle({zIndex:3}).show().wait(0.01).setStyle({opacity:1})}return b.fire(this)},hide:function(a){a=a||{};var b=new JS.MethodChain(),d=this.callSuper,c;b.getHTML();if(a.animate===false){c={opacity:0,zIndex:1};c[this.transitionPrefix()+'Duration']=this._4+'s';c[this.transitionPrefix()+'Property']='opacity';b.hide().setStyle(c)}else{b.setStyle({zIndex:1});b.wait(this._4+0.01);b.hide().setStyle({opacity:0})}b._(function(){this.callSuper=d;this.callSuper()}.bind(this));return b.fire(this)}});
