LMI.Pagination=(function(){var A=YAHOO.util,D=A.Event,E=A.Dom,B=LMI.Element.getOne,I=LMI.Element.getAll;function C(M,L){var K;if(E.hasClass(M,"disabled")){E.removeClass(M,"disabled");if(!L){K=B("img",M);if(K){K.src=K.src.replace(/_dis/,"_en")}}}}function J(M,L){var K;if(!E.hasClass(M,"disabled")){E.addClass(M,"disabled");if(!L){K=B("img",M);if(K){K.src=K.src.replace(/_en/,"_dis")}}}}function G(L){var K;if(!E.hasClass("disabled")){K=B("img",L);if(K){K.src=K.src.replace(/_dis/,"_en")}}}function F(L){var K;if(!E.hasClass("disabled")){K=B("img",L);if(K){K.src=K.src.replace(/_en/,"_dis")}}}function H(K,M,L){this.init(K,M,L)}H.Defaults={pageSize:4,offset:0,animationDuration:0.4,mouseoverPagination:false,verticalScrolling:false};H.prototype={init:function(K,M,L){this.container=K;this.numObjects=M;this.initOptions(L);this.pageSize=this.options.pageSize;this.offset=this.options.offset;if(this.options.verticalScrolling){this.pageDimension=B(".page",this.container).offsetHeight}else{this.pageDimension=B(".page",this.container).offsetWidth}this.onBeforePaginate=new A.CustomEvent("beforePaginate");this.onPaginate=new A.CustomEvent("paginate");this.onGoNext=new A.CustomEvent("goNext");this.onGoPrevious=new A.CustomEvent("goPrevious");this.animating=false;if(this.options.verticalScrolling){E.setStyle(B(".pages",this.container),"height",(Math.ceil(this.numObjects/this.pageSize)*this.pageDimension)+"px")}else{E.setStyle(B(".pages",this.container),"width",(Math.ceil(this.numObjects/this.pageSize)*this.pageDimension)+"px")}this.initControls()},initOptions:function(K){this.options=LMI.Lang.mergeObjects({},H.Defaults);LMI.Lang.mergeObjects(this.options,K)},initControls:function(){var K=I(".previousPage",this.container),L=I(".nextPage",this.container),M=this;LMI.Lang.forEach(K,function(N){D.on(N,"click",M.paginateBackHandler,M,true);if(M.options.mouseoverPagination){D.on(N,"mouseover",function(){G(N)});D.on(N,"mouseout",function(){F(N)})}});LMI.Lang.forEach(L,function(N){D.on(N,"click",M.paginateForwardHandler,M,true);if(M.options.mouseoverPagination){D.on(N,"mouseover",function(){G(N)});D.on(N,"mouseout",function(){F(N)})}})},paginateBackHandler:function(K){if(this.offset>0){this.onGoPrevious.fire(K);this.paginate(true)}D.preventDefault(K)},paginateForwardHandler:function(K){if(this.offset<this.numObjects-this.pageSize){this.onGoNext.fire(K);this.paginate(false)}D.preventDefault(K)},paginate:function(M){var N=M?1:-1,O=this,L,K;this.onBeforePaginate.fire(this.offset+(-1*N*this.pageSize));if(!this.animating){if(this.options.verticalScrolling){K={top:{by:(N*this.pageDimension)}}}else{K={left:{by:(N*this.pageDimension)}}}L=new A.Anim(B(".pages",this.container),K,this.options.animationDuration,A.Easing.easeOut);L.onStart.subscribe(function(){O.animating=true});L.onComplete.subscribe(function(){O.offset+=(-1*N*O.pageSize);O.updateControls();O.onPaginate.fire(O.offset);O.animating=false});L.animate()}},updateControls:function(){var K=I(".previousPage",this.container),L=I(".nextPage",this.container),M=this;LMI.Lang.forEach(K,function(N){if(M.offset===0){J(N,M.options.mouseoverPagination)}else{if(E.hasClass(N,"disabled")){C(N,M.options.mouseoverPagination)}}});LMI.Lang.forEach(L,function(N){if(M.numObjects-M.offset-M.pageSize<=0){J(N,M.options.mouseoverPagination)}else{C(N,M.options.mouseoverPagination)}})},skipToPage:function(K){this.onBeforePaginate.fire(K);this.offset=K*this.pageSize;if(this.options.verticalScrolling){E.setStyle(B(".pages",this.container),"top",-1*this.pageDimension*K+"px")}else{E.setStyle(B(".pages",this.container),"left",-1*this.pageDimension*K+"px")}this.onPaginate.fire(K);this.updateControls()}};return H})();LMI.PhotoViewer=(function(){var F=YAHOO.lang.isArray,A=YAHOO.util,D=A.Event,E=A.Dom,I=LMI.Element,C=I.getOne,G=/thumb_(\d+)/;function B(J){if(!("thumbs" in J)&&F(J.thumbs)){throw new TypeError('The urls object is not valid: missing or invalid "thumbs" property')}if(!("previews" in J)&&F(J.previews)){throw new TypeError('The urls object is not valid: missing or invalid "previews" property')}if(!("images" in J)&&F(J.images)){throw new TypeError('The urls object is not valid: missing or invalid "images" property')}if(J.thumbs.length!==J.previews.length||J.thumbs.length!==J.images.length){throw new TypeError("The urls object is not valid: not all elements are the same length")}}function H(J,L,K){this.init(J,L,K)}H.prototype={init:function(J,L,K){this.thumbsCont=C(J);this.preview=C(L);this.urls=K;if(this.thumbsCont){D.on(this.thumbsCont,"click",this.thumbnailClickHandler,this,true);D.on(this.thumbsCont,"mouseover",this.thumbnailHoverHandler,this,true);D.on(this.thumbsCont,"mouseout",this.thumbnailHoverHandler,this,true)}if(this.preview&&this.preview.nodeName==="IMG"){this.previewCont=E.getAncestorByClassName(this.preview,"preview");D.on(this.preview,"load",this.previewLoadHandler);if(this.previewCont){D.on(this.previewCont,"click",this.previewClickHandler,this,true);D.on(this.previewCont,"mouseover",this.previewHoverHandler,this,true);D.on(this.previewCont,"mouseout",this.previewHoverHandler,this,true)}this.selectedPhotoIndex=0}else{throw new TypeError("The preview element is not a img tag, or a selector for an image tag")}B(this.urls);this.onThumbClick=new A.CustomEvent("thumbClick");this.onEnlarge=new A.CustomEvent("enlarge")},toggleHover:function(K,L,N){if(!K){return }var M=C(".frame",K),J=D.getRelatedTarget(L);if(M){if(L.type==="mouseover"&&!E.hasClass(K,"active")){E.addClass(K,"active");if(!this[N]){this[N]=I.create("div",M,{className:"hoverOverlay"})}}else{if(L.type==="mouseout"&&!E.isAncestor(K,J)){E.removeClass(K,"active");if(this[N]){I.destroy(this[N]);this[N]=null}}}}},thumbnailHoverHandler:function(L){var J=D.getTarget(L),K=E.getAncestorByClassName(J,"thumb");this.toggleHover(K,L,"thumbnailOverlay")},thumbnailClickHandler:function(M){var J,K=D.getTarget(M),L=E.getAncestorByClassName(K,"thumb");if(L){J=C("img",L)}if(J){this.showPreview(G.exec(J.className)[1]);this.onThumbClick.fire(J);D.stopEvent(M)}},previewClickHandler:function(J){D.stopEvent(J);this.onEnlarge.fire(this.preview);this.showImage(this.selectedPhotoIndex)},previewHoverHandler:function(K){var J=E.getAncestorByClassName(this.preview,"preview");this.toggleHover(J,K,"previewOverlay")},previewLoadHandler:function(){var K=this,J=new A.Anim(this,{opacity:{to:1}},0.75);J.onComplete.subscribe(function(){E.setStyle(K,"opacity",1)});J.animate()},showPreview:function(K){var J=this.urls.previews[K];if(J&&J.src!==this.preview.src){E.setStyle(this.preview,"opacity",0);I.setImageSrc(this.preview,J.src);this.preview.alt=J.altText;this.selectedPhotoIndex=K}},showImage:function(J){}};return H})();LMI.TasPhotoViewer=(function(){var H=LMI.Element,E=H.getOne,B=H.getAll,F=YAHOO.util,D=F.Dom,A=F.Event,G={width:"788px",visible:false,draggable:false,modal:true,contraintoviewport:true,close:false,monitorresize:false,fixedcenter:true,underlay:"none",effect:[{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.5}]};function C(I){this.init(I)}YAHOO.lang.extend(C,LMI.PhotoViewer,{init:function(L){var J=E("#thumbs"),I=E("#mainPhoto img");C.superclass.init.call(this,J,I,L);this.initViewer();this.initPagination();if(LMI.Data.photoViewerConfig.description){this.onThumbClick.subscribe(this.getThumbClickHandler(this.urls.previews))}if(E("#lightBox")){this.initLightBox()}function K(M){D.removeClass(I.parentNode,"loading");C.prototype.verticallyCenterImage(I)}A.on(I,"load",K);if(I.complete){K()}},initViewer:function(){var Q=E("#photoViewer"),N=E("#mainPhoto"),M=E("#thumbs"),K=E(".paginated",M),S=B("ul",M),R=B("li",M),P=B(".pageControl",M),I,V,T,L,J=LMI.Data.photoViewerConfig,O=this.getMarginSize(),U=this.getViewerPadding();if(J.thumbnailPosition==="left"||J.thumbnailPosition==="right"){I=J.mainPhoto.width+(J.narrowDimension*(J.thumbnail.width+O))+2}else{I=Math.ceil(J.pageSize/J.narrowDimension)*(J.thumbnail.width+O)+((this.getPageControlSize().width+3)*2)+2;if(I<J.mainPhoto.width){I=J.mainPhoto.width}}D.setStyle(Q,"width",I+U.left+U.right+"px");if(J.thumbnailPosition==="top"||J.thumbnailPosition==="bottom"){D.setStyle(M,"width",I+"px")}else{D.setStyle(M,"width",J.narrowDimension*(J.thumbnail.width+O)+"px")}D.setStyle(N,"width",J.mainPhoto.width+"px");V=J.mainPhoto.height;if(J.description){V+=this.getDescriptionHeight()}D.setStyle(N,"height",V+"px");window.setTimeout(function(){var W=E("img",N);if(W&&W.height<J.mainPhoto.height){D.setStyle(W,"margin-top",Math.floor((J.mainPhoto.height-W.height)/2)+"px")}},0);if(J.thumbnailPosition==="left"||J.thumbnailPosition==="right"){I=J.narrowDimension*(J.thumbnail.width+O);V=Math.ceil(J.pageSize/J.narrowDimension)*(J.thumbnail.height+O)}else{I=Math.ceil(J.pageSize/J.narrowDimension)*(J.thumbnail.width+O);V=J.narrowDimension*(J.thumbnail.height+O)}D.setStyle(K,"width",I+"px");D.setStyle(K,"height",V+"px");LMI.Lang.forEach(S,function(W){D.setStyle(W,"width",I+"px");D.setStyle(W,"height",V+"px")});LMI.Lang.forEach(R,function(W){D.setStyle(W,"width",J.thumbnail.width+"px");D.setStyle(W,"height",J.thumbnail.height+"px");window.setTimeout(function(){var X=E("img",W);if(X&&X.height<J.thumbnail.height){D.setStyle(X,"margin-top",Math.floor((J.thumbnail.height-X.height)/2)+"px")}},0)});if(J.thumbnailPosition==="top"||J.thumbnailPosition==="bottom"){T=(((J.thumbnail.height+O)*J.narrowDimension)-O)/2-(this.getPageControlSize().height/2);LMI.Lang.forEach(P,function(W){D.setStyle(W,"margin-top",Math.floor(T)+"px")})}else{if(J.paginationType==="split"){L=(((J.thumbnail.width+O)*J.narrowDimension)-O)/2-(this.getPageControlSize().width/2);LMI.Lang.forEach(P,function(W){D.setStyle(P,J.thumbnailPosition,Math.floor(L)+"px")})}}D.setStyle(Q,"display","block")},initPagination:function(){var J={pageSize:LMI.Data.photoViewerConfig.pageSize},I;if("verticalPagination" in LMI.Data.photoViewerConfig){J.verticalScrolling=LMI.Data.photoViewerConfig.verticalPagination}I=new LMI.Pagination(E("#photoViewer"),LMI.Data.photos.length,J);I.updateControls()},previewClickHandler:function(J){var I=A.getTarget(J),K;if(E("#lightBox")&&!D.hasClass(I,"description")&&!D.getAncestorByClassName(A.getTarget(J),"description")){C.superclass.previewClickHandler.apply(this,arguments);K=E("#lightBox_mask").offsetHeight;A.on(document,"scroll",function(L){if(D.getRegion(E("#lightBoxCont")).bottom>K){D.setY(E("#lightBoxCont"),(K-E("#lightBoxCont").offsetHeight))}})}},showImage:function(I){this.populateLightBox();this.lightBox.show()},addPageToLightBox:function(K){var N="altText" in K?K.altText:"",M=H.create("div",E(".pages",E(".paginated",this.lightBox.element)),{className:"page"}),I=H.create("img",M,{alt:N,src:K.src}),L;function J(){C.prototype.verticallyCenterImage(I)}A.on(I,"load",J);if(I.complete){J()}if(LMI.Data.photoViewerConfig.description){L=K.description;if(K.linkUrl){L+='<a target="_blank" href="'+K.linkUrl+'">'+K.linkText+"</a>"}H.create("p",M,{innerHTML:L})}},populateLightBox:function(){var I=this.urls.images[this.selectedPhotoIndex];if(I){if(this.urls.images.length>1){this.lightBox.pagination.skipToPage(this.selectedPhotoIndex)}}},initLightBox:function(){var L=this,K,J;if(D.getViewportHeight()<(parseInt(D.getStyle("lightBox","height"),10)+parseInt(D.getStyle("lightBox","padding-top"),10)+parseInt(D.getStyle("lightBox","padding-bottom"),10))){G.height=D.getViewportHeight()-20+"px"}this.lightBox=new YAHOO.widget.Panel("lightBox",G);this.lightBox.element.id="lightBoxCont";this.lightBox.render();function I(){L.verticallyCenterImage.call(K)}if(this.urls.images.length>1){this.lightBox.pagination=new LMI.Pagination(E(".paginated",this.lightBox.element),this.urls.images.length,{pageSize:1,mouseoverPagination:true});K=E("#largePhoto img");if(K){if(K.complete){I()}else{A.on(K,"load",I)}}this.lightBox.pagination.onBeforePaginate.subscribe(function(O,N){var M=B(".page",L.lightBox.element).length,P=parseFloat(N[0]);if(P+1>=M){for(J=M;J<=P+1&&J<L.urls.images.length;J++){L.addPageToLightBox(L.urls.images[J])}}});if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<7){LMI.Lang.forEach(B("#lightBox .previousPage img, #lightBox .nextPage img"),function(M){H.setImageSrc(M,M.src)})}this.addPageToLightBox(this.urls.images[1])}A.on(E("a[rel=closeLightBox]",this.lightBox.element),"click",this.closeLightBoxHandler,this,true)},closeLightBox:function(){this.lightBox.hide()},closeLightBoxHandler:function(I){this.closeLightBox();A.stopEvent(I)},getViewerPadding:function(){return{left:14,right:14,top:11,bottom:11}},getMarginSize:function(){return 10},getPageControlSize:function(){return{width:25,height:24}},getDescriptionHeight:function(){return 36},getThumbClickHandler:function(I){return function(M,K){var J=K[0].className.match(/thumb_(\d+)/)[1],N=I[J],O=E("#photoViewer .description"),L;if(O&&N){L=N.description;if(N.linkUrl){L+='<a target="_blank" href="'+N.linkUrl+'">'+N.linkText+"</a>"}O.innerHTML=L;D.addClass(O.parentNode,"loading")}}},verticallyCenterImage:function(J){var I=E("#largePhoto img");if(J){I=J}if(I&&I.parentNode){D.setStyle(I,"margin-top",(I.parentNode.offsetHeight-I.offsetHeight)/2+"px")}}});return C})();(function(){var A=LMI.Element.getOne;LMI.TasPhotoViewer.prototype.getMarginSize=function(){return 4};function B(){var C="#photos .widgetWrapper #lightBox",D=A(C).cloneNode(true),E=A("#photos .widgetWrapper");if(E&&D){E.removeChild(A(C));A("body").appendChild(D)}}LMI.Init.addFunction(B)})();(function(){var A=LMI.Element.getOne;function B(){if(!A("#photoViewer")){return }var C=[],D;LMI.Lang.forEach(LMI.Data.thumbs,function(E){C.push({src:E.thumbnailUrl,altText:E.altText})});D=new LMI.TasPhotoViewer({thumbs:C,previews:LMI.Data.photos,images:LMI.Data.photos})}LMI.Init.addFunction(B)})();
