function initImageZoom(a){var b=$extend({rel:"imagezoom"},a||{});var e=$$(document.links).filter(function(f){if((f.rel)&&(f.rel.indexOf(b.rel)!=-1)){return true}else{return false}});for(var c=0;c<e.length;c++){var d=e[c];d.addEvent("click",function(){this.blur();var j=this;var g="";if(this.getElements("img").length>0){j=this.getElements("img")[0]}if((j.alt)&&(j.alt!="")){g=j.alt}else{if(j.title){g=j.title}else{if(j.parentNode.title){g=j.parentNode.title}}}var f=$extend({image:this.href,caption:g,startElement:j},b||{});f.image=this.href;f.caption=g;var i=this.href.split("/");f.id=i[i.length-1];var h=new Imagezoom(f);h.preloadImage();h.show();return false})}}var Imagezoom=function(i){var l=$extend({image:false,caption:"",enableCaptions:true,startElement:false,x:10,y:10,initWidth:50,initHeight:50,draggable:true,loadImage:"/_templates/shared/images/loading.gif",loadDelay:150,duration:800,closeDuration:500,transition:Fx.Transitions.Cubic.easeOut,startOpacity:0.6,closeText:"Close",rel:"imagezoom",showCaptionBar:true,overlay:false,overlayColor:"#000",overlayOpacity:0.75},i||{});var d=document.createElement("div");var h=this;var k=document.createElement("div");k.className="s s_tl";var e=document.createElement("div");e.className="s s_tr";var b=document.createElement("div");b.className="s s_bl";var j=document.createElement("div");j.className="s s_br";var f=document.createElement("div");f.className="s s_top";var a=document.createElement("div");a.className="s s_bottom";var c=document.createElement("div");c.className="s s_left";var g=document.createElement("div");g.className="s s_right";this.preloadImage=function(){if(l.image!=false){var m=new Image();m.src=l.image;m.style.visibility="hidden";m.style.position="absolute";m.style.top="-9999999999px";m.setAttribute("id","imagezoom-"+i.id);m.setAttribute("alt","");$$("body")[0].appendChild(m)}};this.getImage=function(){if(($("imagezoom-"+i.id))&&($("imagezoom-"+i.id).width!="0")){var m=$("imagezoom-"+i.id).clone();m.setAttribute("id","");m.setAttribute("alt","");m.style.position="relative";m.style.top="0px";m.style.visibility="visible"}else{h.preloadImage();window.setTimeout(function(){h.getImage()},50)}return m};this.show=function(){if(l.image!=false){d.style.position="absolute";d.style.overflow="hidden";d.setAttribute("id","imagezoom-open-"+i.id);if(l.startElement!=false){l.startElement.blur()}var m=l.x;var q=l.y;var o=l.initWidth;var p=l.initHeight;if(l.startElement!=false){m=l.startElement.getPosition().x;q=l.startElement.getPosition().y;o=l.startElement.offsetWidth;p=l.startElement.offsetHeight}d.style.left=m+"px";d.style.top=q+"px";d.style.width=o+"px";d.style.height=p+"px";var n=new Fx.Morph(d);n.set({opacity:l.startOpacity});d.className="imagezoom";$$("body")[0].appendChild(d);d.style.cursor="pointer";d.addEvent("click",function(){var r=new Fx.Morph(d,{duration:200});r.start({opacity:0}).chain(function(){$$("body")[0].removeChild(d)})});this.loadImage()}};this.loadImage=function(){if(d.getElements(".loading").length==0){var o=new Image();o.src=l.loadImage;o.className="loading";d.appendChild(o)}if($("imagezoom-"+i.id)){var m=$("imagezoom-"+i.id);if(m.width!="0"){var n=new Image();n.src=l.image;window.setTimeout(function(){h.insertImage(n)},l.loadDelay)}else{window.setTimeout(function(){h.loadImage()},50)}}else{h.preloadImage();window.setTimeout(function(){h.loadImage()},50)}};this.insertImage=function(o){d.removeEvents("click");d.style.cursor="default";d.style.overflow="visible";var m=o.width;var p=o.height;o.style.width=m+"px";o.style.height=p+"px";o.className="image";o.setAttribute("alt","");var n=(window.getSize().y/2)+window.getScroll().y-(p/2);var r=(window.getSize().x/2)+window.getScroll().x-(m/2);var q=new Fx.Morph(d,{duration:l.duration,transition:l.transition});q.start({top:n,left:r,width:m,height:p,opacity:1}).chain(function(){if(l.overlay==true){if(!$("imagezoom_overlay")){var w=$(document.createElement("div"));w.setAttribute("id","imagezoom_overlay");w.style.backgroundColor=l.overlayColor;w.setOpacity(0);$$("body")[0].appendChild(w)}else{var w=$("imagezoom_overlay")}w.style.width=window.getScrollSize().x+"px";w.style.height=window.getScrollSize().y+"px";var y=new Fx.Morph(w,{duration:600});y.start({opacity:l.overlayOpacity})}var B=$(document.createElement("div"));B.innerHTML="<span>"+l.closeText+"</span>";B.className="close";B.addEvent("click",function(){h.close(true)});document.addEvent("keydown",function(D){if(D.key=="esc"){h.close(true);document.removeEvent("keydown")}});var u=d.getElements(".loading");if(u.length>0){d.removeChild(u[0])}var s=[B,k,e,b,j,f,a,c,g,o];for(var x=0;x<s.length;x++){var z=new Fx.Morph(s[x],{duration:600});if(s[x]==B||s[x]==o){z.set({opacity:0})}d.adopt(s[x]);if(s[x]==B||s[x]==o){z.start({opacity:1})}}var C;if((l.caption!="")&&(l.enableCaptions==true)){C=document.createElement("div");C.className="caption";C.innerHTML="<p>"+l.caption+"</p>";d.appendChild(C)}h.addSetNavigation();if(d.getElements(".caption").length>0){C=d.getElements(".caption")[0];var A=new Fx.Morph(C,{duration:200});A.set({opacity:0});if(l.showCaptionBar==true){C.className+=" visibleCaption";var v=new Fx.Morph(C,{duration:600});v.start({opacity:1})}d.addEvent("mouseenter",function(){A.start({opacity:1}).chain(function(){C.className+=" visibleCaption"})});d.addEvent("mouseleave",function(){A.start({opacity:0}).chain(function(){C.className=C.className.replace(/visibleCaption/g,"")})});B.addEvent("mouseenter",function(){A.start({opacity:0}).chain(function(){C.className=C.className.replace(/visibleCaption/g,"")})});d.getElements(".image")[0].addEvent("click",function(){var D="show";if(C.className.indexOf("visibleCaption")!=-1){D="hide"}if(D=="show"){A.start({opacity:1}).chain(function(){C.className+=" visibleCaption"})}else{A.start({opacity:0}).chain(function(){C.className=C.className.replace(/visibleCaption/g,"")})}})}f.style.width=d.offsetWidth+"px";a.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight+"px";g.style.height=d.offsetHeight+"px";if(l.draggable==true){var t=new Drag.Move(d,{handle:o})}})};this.addSetNavigation=function(){var x=$$(document.links).filter(function(B){if((B.rel)&&(B.rel.indexOf(l.rel)!=-1)){return true}else{return false}});var v=false;for(var q=0;q<x.length;q++){if((x[q].href.indexOf(l.image)!=-1)&&(x[q].rel)&&(x[q].rel.indexOf(l.rel+"["!=-1))){var A=x[q].getAttribute("rel");v=h.scanRel("after",l.rel+"[",this.scanRel("before","]",A))}}if(v!=false){var r=false;var w=false;var p=new Array();for(q=0;q<x.length;q++){if(x[q].rel.indexOf(l.rel+"["+v+"]")!=-1){p[p.length]=x[q]}}for(q=0;q<p.length;q++){var s=p[q];if((s.href.indexOf(l.image)!=-1)&&(s.rel)&&(s.rel.indexOf(l.rel!=-1))){if(q!=0){r=p[q-1]}if(q!=p.length-1){w=p[q+1]}}}if((r!=false)||(w!=false)){if(d.getElements(".caption").length==0){var z=document.createElement("div");z.className="caption";d.appendChild(z)}else{var z=d.getElements(".caption")[0]}}if(r!=false){var u=$(document.createElement("div"));u.className="previous";var n="";if(r.title){n=r.title}var m=r;if(r.getElements("img").length>0){m=r.getElements("img")[0]}u.addEvent("click",function(){var C=$unlink(l);var B=new Imagezoom($extend(C,{image:r.href,caption:n,rel:l.rel,startElement:m,showCaptionBar:true}));h.close();B.show()});z.appendChild(u)}if(w!=false){var y=$(document.createElement("div"));y.className="next";var t="";if(w.title){t=w.title}var o=w;if(w.getElements("img").length>0){o=w.getElements("img")[0]}y.addEvent("click",function(){var B=$unlink(l);var C=new Imagezoom($extend(B,{image:w.href,caption:t,rel:l.rel,startElement:o,showCaptionBar:true}));h.close();C.show()});z.appendChild(y)}}};this.scanRel=function(n,s,m){var r="";if(n=="after"){var q=m.indexOf(s)+s.length;var p=m.length}else{if(n=="before"){var q=0;var p=m.indexOf(s)}}for(var o=q;o<p;o++){r+=m.charAt(o)}return r};this.close=function(m){var p=d.getElements(".image")[0];d.removeChild(p);var w=d.getElements(".close")[0];d.removeChild(w);var z=d.getElements(".caption");if(z.length>0){d.removeChild(z[0])}var A=d.getElements(".s");for(var o=0;o<A.length;o++){d.removeChild(A[o])}var v=l.x;var u=l.y;var q=l.initWidth;var t=l.initHeight;if(l.startElement!=false){v=l.startElement.getPosition().x;u=l.startElement.getPosition().y;q=l.startElement.offsetWidth;t=l.startElement.offsetHeight}if((m==true)&&($("imagezoom_overlay"))){var r=new Fx.Morph($("imagezoom_overlay"),{duration:l.closeDuration});r.start({opacity:0}).chain(function(){$$("body")[0].removeChild($("imagezoom_overlay"))})}var n=new Fx.Morph(d,{duration:l.closeDuration});n.start({left:v,top:u,width:q,height:t,opacity:l.startOpacity}).chain(function(){n.start({opacity:0}).chain(function(){$$("body")[0].removeChild(d)})})}};