var ImageGallery=new JS.Class({extend:{OVERLAY_WIDTH:970,OVERLAY_HEIGHT:750,THUMBS_PER_PAGE:8,ASPECT_THRESH:4/3,fromHTML:function(A){return this.fromLinks(Ojay(A).descendants("a"))},fromBlocks:function(E,F,D){E=Ojay(E);var C=E.descendants(F),B=E.descendants(D);var A=this.fromLinks(C);A.forEach(function(H,G){H.caption=B[G].innerHTML});return A},fromLinks:function(B){var A=[];Ojay(B).forEach(function(D){var C=D.descendants("img");if(!C.node){return }var E=new this.Image(C.node.src,D.node.href,D,C.node.alt);E.aspect=C.getWidth()/C.getHeight();A.push(E)},this);return new this(A)},fromJSON:function(C,B){var A=YAHOO.lang.JSON.parse(C).images.map(function(D){return new this.Image(D.thumb,D.fullsize,B,D.caption)},this);return new this(A)},Image:new JS.Class({initialize:function(C,B,A,D){this._thumbPath=C;this._fullPath=B;this._trigger=Ojay(A);this._alt=D||""},getHTML:function(A){var B=this;var D=this.aspect?(this.aspect>ImageGallery.ASPECT_THRESH?"landscape":"portrait"):"";var C=Ojay(Ojay.HTML.div({className:"thumbnail "+D},function(E){E.img({src:B._thumbPath,alt:B._alt})}));C.on("click")._(A).setImage(this);this._trigger.on("click",Ojay.stopDefault)._(A).setImage(this);return C}})},initialize:function(A){this._images=A;this._elements={};this._overlay=new Ojay.ContentOverlay({className:"image-gallery",width:this.klass.OVERLAY_WIDTH,height:this.klass.OVERLAY_HEIGHT});var C=this;this._panel=new Panel("photo-story",function(D){C._elements._prev=Ojay(D.div({className:"image-previous"},"Previous"));C._elements._next=Ojay(D.div({className:"image-next"},"Next"));D.div({className:"display"},function(E){C._elements._display=E.img();C._elements._caption=Ojay(E.div({className:"caption"}))});C._elements._thumbs=Ojay(D.div({className:"thumbs"}))});this._overlay.insert(this._panel.getHTML());this.setImage(0,false);C._elements._prev.on("click")._(this).decrement();C._elements._prev.on("mouseover").addClass("hovered hovered-image-previous");C._elements._prev.on("mouseout").removeClass("hovered hovered-image-previous");C._elements._next.on("click")._(this).increment();C._elements._next.on("mouseover").addClass("hovered hovered-image-next");C._elements._next.on("mouseout").removeClass("hovered hovered-image-next");var B=Ojay(Ojay.HTML.div({className:"close-button"},"Close"));B.on("click")._(this._overlay).hide("fade");this._overlay.getContainer().insert(B,"top");this._images.forEach(function(D){this._elements._thumbs.insert(D.getHTML(this))},this)},forEach:function(B,A){return this._images.forEach(B,A)},setImage:function(B,A){if(A!==false){this._overlay.center().show("fade")._(function(){if(this._pager){return }this._pager=new Ojay.Paginator(this._elements._thumbs,{direction:"horizontal",columns:this.klass.THUMBS_PER_PAGE,rows:1});this._pager.setup();var C=this._pager.addControls("before");C.getPreviousButton().on("mouseover").addClass("hovered-previous");C.getPreviousButton().on("mouseout").removeClass("hovered-previous");C.getNextButton().on("mouseover").addClass("hovered-next");C.getNextButton().on("mouseout").removeClass("hovered-next")}.bind(this))}if(B===null){return }if(typeof B=="number"){B=this._images[B]}this._index=this._images.indexOf(B);this._elements._display.src=B._fullPath;this._elements._display.alt=B._alt;if(B.caption){this._elements._caption.show().setContent(B.caption)}else{this._elements._caption.hide()}if(B.aspect>this.klass.ASPECT_THRESH){this._overlay.getContainer().removeClass("portrait").addClass("landscape")}else{this._overlay.getContainer().addClass("portrait").removeClass("landscape")}},increment:function(){if(this._index==this._images.length-1){return }this._index+=1;this.setImage(this._index)},decrement:function(){if(this._index==0){return }this._index-=1;this.setImage(this._index)}})
