var Y={anim:YAHOO.util.Anim,dom:YAHOO.util.Dom,easing:YAHOO.util.Easing,event:YAHOO.util.Event,lang:YAHOO.lang,region:YAHOO.util.Region,ua:YAHOO.env.ua,getByClass:YAHOO.util.Dom.getElementsByClassName},Lightbox,LbConfig={loadImg:"images/lightbox/loading.gif",closeImg:"images/btn_close_overlay_ft.gif",maskAlpha:0.8,animate:true,resizeSpeed:7,borderSize:12,lblImg:"Image",lblOf:"of"};Y.event.onDOMReady(function(){new Lightbox("lightbox")});function show(a){Y.dom.setStyle(a,"display","")}function hide(a){Y.dom.setStyle(a,"display","none")}function getWH(b){var a=Y.region.getRegion(b);return[a.right-a.left,a.bottom-a.top]}function makeEl(a,b,e){var f=document.createElement(a),d,c;for(d in b){switch(d){case"id":f.id=b[d];break;case"class":Y.dom.addClass(f,b[d]);break;default:f.setAttribute(d,b[d]);break}}if(Y.lang.isArray(e)){for(c=0;c10)?10:(b<1)?1:b;this.resizeDur=(11-b)*0.15;this.maskDur=0.5;a="250px"}this.mask=this.makeMask();this.lb=Y.dom.get(c);this.customDom=0;if(this.lb){this.customDom=1;this.getLb(this.lb)}else{this.lb=this.makeLb()}this.imgCont.style.width=this.imgCont.style.height=a;Y.event.on(document,"click",function(d){var f=Y.event.getTarget(d);f=this.isLbTarget(f)?f:Y.dom.getAncestorBy(f,this.isLbTarget);if(f){Y.event.stopEvent(d);this.start(f)}},this,true);Y.event.on([this.loadLnk,this.close,this.mask],"click",function(d){Y.event.stopEvent(d);this.end()},this,true);Y.event.on(this.lb,"click",function(d){if(Y.event.getTarget(d)==this.lb){this.end()}},this,true);Y.event.on(this.prevLnk,"click",function(d){Y.event.stopEvent(d);this.goPrev()},this,true);Y.event.on(this.nextLnk,"click",function(d){Y.event.stopEvent(d);this.goNext()},this,true)};Lightbox.prototype={makeMask:function(){var a=makeEl("div",{"class":"lbMask"});hide(a);document.body.appendChild(a);return a},makeLb:function(){var a=makeEl("div",{id:"lightbox"},[this.imgCont=makeEl("div",{"class":"imgCont"},[makeEl("div",{"class":"innerImgCont"},[this.img=makeEl("img",{"class":"lightboxImage"}),this.nav=makeEl("div",{"class":"nav"},[this.prevLnk=makeEl("a",{"class":"prevLink",href:"#"}),this.nextLnk=makeEl("a",{"class":"nextLink",href:"#"})]),this.load=makeEl("div",{"class":"loading"},[this.loadLnk=makeEl("a",{"class":"loadingLink",href:"#"},[makeEl("img",{src:LbConfig.loadImg})])])])]),this.ctrlCont=makeEl("div",{"class":"ctrlCont"},[makeEl("div",{"class":"innerCtrlCont"},[makeEl("div",{"class":"dets"},[this.caption=makeEl("span",{"class":"caption"}),this.counter=makeEl("span",{"class":"counter"})]),makeEl("div",{"class":"btmNav"},[this.close=makeEl("a",{"class":"close",href:"#"},[makeEl("img",{src:LbConfig.closeImg})])])])])]);hide(a);document.body.appendChild(a);return a},getLb:function(a){this.imgCont=Y.getByClass("imgCont","div",a)[0];this.img=Y.getByClass("lightboxImage","img",a)[0];this.nav=Y.getByClass("nav","div",a)[0];this.prevLnk=Y.getByClass("prevLink","a",a)[0];this.nextLnk=Y.getByClass("nextLink","a",a)[0];this.load=Y.getByClass("loading","div",a)[0];this.loadLnk=Y.getByClass("loadingLink","a",a)[0];this.ctrlCont=Y.getByClass("ctrlCont","div",a)[0];this.caption=Y.getByClass("caption","span",a)[0];this.counter=Y.getByClass("counter","span",a)[0];this.close=Y.getByClass("close","a",a)[0]},isLbTarget:function(b){var a=b.tagName.toLowerCase();return(a=="a"||a=="area")&&(/^lightbox/).test(b.rel)},start:function(c){var d=0,b=this,a;Y.dom.getElementsBy(function(f){var e=f.tagName.toLowerCase();return(e=="select"||e=="object"||e=="embed")},"*",document.body,function(e){e.style.visibility="hidden"});this.mask.style.width="1px";this.mask.style.height="1px";this.mask.style.width=Y.dom.getDocumentWidth()+"px";this.mask.style.height=Y.dom.getDocumentHeight()+"px";Y.dom.setStyle(this.mask,"opacity",0);show(this.mask);a=new Y.anim(this.mask,{opacity:{from:0,to:LbConfig.maskAlpha}},this.maskDur,Y.easing.EaseOut);a.animate();this.imgs=[];if(c.rel=="lightbox"){this.imgs.push([c.href,c.title])}else{Y.dom.getElementsBy(function(e){return e.rel==c.rel},c.tagName,document.body,function(e){b.imgs.push([e.href,e.title])});while(this.imgs[d][0]!=c.href){d++}}Y.dom.setStyle(this.lb,"top",Y.dom.getDocumentScrollTop()+(Y.dom.getViewportHeight()/10)+"px");Y.dom.setStyle(this.lb,"left",Y.dom.getDocumentScrollLeft()+"px");show(this.lb);this.goImg(d)},goPrev:function(){this.goImg(this.currImg-1)},goNext:function(){this.goImg(this.currImg+1)},goImg:function(b){this.stopKeys();this.currImg=b;if(LbConfig.animate){show(this.load)}hide([this.img,this.nav,this.prevLnk,this.nextLnk,this.caption,this.counter]);Y.dom.setStyle(this.ctrlCont,"opacity",0.0001);var a=new Image();Y.event.on(a,"load",function(c){this.img.src=this.imgs[b][0];this.resize(a.width,a.height)},this,true);a.src=this.imgs[b][0]},resize:function(d,a){var e=getWH(this.imgCont),b=LbConfig.borderSize*2,c=[d+b,a+b],f;if((e[1]-c[1])||(e[0]-c[0])){f=new Y.anim(this.imgCont,{width:{to:c[0]},height:{to:c[1]}},this.resizeDur);f.onComplete.subscribe(function(){this.showImg(c[0],a)},this,true);f.animate()}else{Y.lang.later((Y.ua.ie)?0.25:0.1,this,function(){this.showImg(c[0],a)})}},showImg:function(c,a){Y.dom.setStyle([this.prevLnk,this.nextLnk],"height",a+"px");Y.dom.setStyle(this.ctrlCont,"width",c+"px");hide(this.load);Y.dom.setStyle(this.img,"opacity",0);show(this.img);var b=new Y.anim(this.img,{opacity:{from:0,to:1}},this.resizeDur,Y.easing.EaseOut);b.onComplete.subscribe(this.updateDets,this,true);b.animate();this.preload()},updateDets:function(){if(this.imgs.length>1){this.counter.innerHTML=LbConfig.lblImg+" "+(this.currImg+1)+" "+LbConfig.lblOf+" "+this.imgs.length;show(this.counter)}var a=new Y.anim(this.ctrlCont,{opacity:{from:0,to:1}},this.resizeDur,Y.easing.EaseIn);a.onComplete.subscribe(function(){Y.dom.setStyle(this.mask,"height",Y.dom.getDocumentHeight()+"px");Y.dom.setStyle(this.mask,"width",Y.dom.getDocumentWidth()+"px");this.updateNav()},this,true);a.animate()},updateNav:function(){show(this.nav);if(this.currImg>0){show(this.prevLnk)}if(this.currImg<(this.imgs.length-1)){show(this.nextLnk)}this.startKeys()},startKeys:function(){Y.event.on(document,"keydown",this.keyHndlr,this,true)},stopKeys:function(){Y.event.removeListener(document,"keydown",this.keyHndlr)},keyHndlr:function(d){var c=Y.event.getCharCode(d),a=d.DOM_VK_ESCAPE||27,b=String.fromCharCode(c).toLowerCase();if((c==a)||(/x|o|c/).test(b)){this.end()}else{if((c==37)||(b=="p")){if(this.currImg>0){this.goPrev()}}else{if((c==39)||(b=="n")){if(this.currImg<(this.imgs.length-1)){this.goNext()}}}}},preload:function(){var b,a;if(this.imgs.length>this.currImg+1){b=new Image();b.src=this.imgs[this.currImg+1][0]}if(this.currImg>0){a=new Image();a.src=this.imgs[this.currImg-1][0]}},end:function(){this.stopKeys();hide(this.lb);var a=new Y.anim(this.mask,{opacity:{from:LbConfig.maskAlpha,to:0}},this.maskDur,Y.easing.EaseOut);a.onComplete.subscribe(function(){hide(this.mask)},this,true);a.animate();Y.dom.getElementsBy(function(c){var b=c.tagName.toLowerCase();return(b=="select"||b=="object"||b=="embed")},"*",document.body,function(b){b.style.visibility="visible"})}};