var FancyZoom=new Class({Implements:[Options,Events],options:{scaleImg:false,directory:"images",width:null,height:null,max:1024},initialize:function(B,A){this.setOptions(A);if(!$("zoom")){this.setup()}this.element=$(B);if(this.element){this.content_div=$(this.element.get("href").match(/#(.+)$/)[1]).setStyles({display:"block",position:"absolute",visibility:"hidden"});this.element.store("fancy",this);this.element.addEvent("click",FancyZoom.show)}},setup:function(){var B=Browser.Engine.trident?"gif":"png";var A='<table id="zoom_table" style="border-collapse:collapse; width:100%; height:100%;">                  <tbody>                    <tr>                      <td class="tl" style="background:url('+this.options.directory+"/tl."+B+') 0 0 no-repeat; width:20px height:20px; overflow:hidden;" />                      <td class="tm" style="background:url('+this.options.directory+"/tm."+B+') 0 0 repeat-x; height:20px; overflow:hidden;" />                      <td class="tr" style="background:url('+this.options.directory+"/tr."+B+') 100% 0 no-repeat; width:20px height:20px; overflow:hidden;" />                    </tr>                    <tr>                      <td class="ml" style="background:url('+this.options.directory+"/ml."+B+') 0 0 repeat-y; width:20px; overflow:hidden;" />                      <td class="mm" style="background:#fff; vertical-align:top; padding:10px;">                        <div id="zoom_content">                        </div>                      </td>                      <td class="mr" style="background:url('+this.options.directory+"/mr."+B+') 100% 0 repeat-y;  width:20px; overflow:hidden;" />                    </tr>                    <tr>                      <td class="bl" style="background:url('+this.options.directory+"/bl."+B+') 0 100% no-repeat; width:20px height:20px; overflow:hidden;" />                      <td class="bm" style="background:url('+this.options.directory+"/bm."+B+') 0 100% repeat-x; height:20px; overflow:hidden;" />                      <td class="br" style="background:url('+this.options.directory+"/br."+B+') 100% 100% no-repeat; width:20px height:20px; overflow:hidden;" />                    </tr>                  </tbody>                </table>                <a href="#" title="Close" id="zoom_close" style="position:absolute; top:0; left:0;">                  <img src="'+this.options.directory+"/closebox."+B+'" alt="Close" style="border:none; margin:0; padding:0;" />                </a>';$(document.body).grab(new Element("div",{id:"zoom",style:"display:none",html:A}));FancyZoom.showFx=new Fx.Morph($("zoom"),{link:"cancel",onStart:function(D){var C=D.retrieve("fancy");if(C.options.scaleImg){C.content_div.getElements("img").setStyles({width:50,height:"auto"});$("zoom_content").set("html",C.content_div.get("html"));$$("#zoom_content img").tween("width",this.to.width[0].value-60)}else{$("zoom_content").set("html","")}},onComplete:function(D){FancyZoom.zoomed=true;var C=D.retrieve("fancy");C.loaded=false;if(!C.options.scaleImg){$("zoom_content").set("html",C.content_div.get("html"))}if(Browser.Engine.trident){$$("td.ml, td.mm, td.mr").setStyle("height",this.to.height[0].value-60)}$("zoom_close").setStyle("display","");FancyZoom.unfixBackgroundsForIE()}});FancyZoom.hideFx=new Fx.Morph($("zoom"),{onStart:function(C){if(!C.retrieve("fancy").scaleImg){$("zoom_content").set({html:"",style:""})}$("zoom_close").setStyle("display","none")},onComplete:function(C){FancyZoom.zoomed=false;C.setStyle("display","none");FancyZoom.unfixBackgroundsForIE()}});$("zoom_close").addEvent("click",FancyZoom.hide);$$("html")[0].addEvent("click",function(C){if(!($(C.target).match("#zoom")||$(C.target).getParent("#zoom"))){FancyZoom.hide(C)}});$(document).addEvent("keyup",function(C){if(C.key=="esc"){FancyZoom.hide(C)}})}});FancyZoom.zoomed=false;FancyZoom.show=function(E){E.stop();var D=$(E.target).match("a")?E.target:E.target.getParent("a");var A=D.retrieve("fancy");var B=(A.options.width||A.content_div.getWidth())+60;var I=(A.options.height||A.content_div.getHeight())+60;var I=(Math.min(A.options.max,B)/B)*I;var B=Math.min(A.options.max,B);var F=Window.getSize();var C=Window.getScrollTop();var G=Math.max((F.y/2)-(I/2)+C,0);var H=(F.x/2)-(B/2);if(!A.loaded){$("zoom").store("curTop",E.page.y);$("zoom").store("curLeft",E.page.x);$("zoom").store("fancy",A);$("zoom").setStyles({position:"absolute",display:"block",opacity:0,top:E.page.y,left:E.page.x,width:1,height:1});A.fireEvent("show",{stop:$empty,target:D,page:E.page},100)}FancyZoom.fixBackgroundsForIE();FancyZoom.showFx.start({opacity:1,top:G,left:H,width:B,height:I})};FancyZoom.hide=function(A){if(!FancyZoom.zoomed){return }A.stop();$("zoom").retrieve("fancy").fireEvent("hide");FancyZoom.fixBackgroundsForIE();FancyZoom.hideFx.start({left:$("zoom").retrieve("curLeft"),top:$("zoom").retrieve("curTop"),width:1,height:1,opacity:0})};FancyZoom.switchBackgroundImagesTo=function(C){$$("#zoom_table td").each(function(E){var D=E.getStyle("background-image").replace(/\.(png|gif|none)\)$/,"."+C+")");E.setStyle("background-image",D)});var B=zoom_close.getElement("img");var A=B.get("src").replace(/\.(png|gif|none)$/,"."+C);B.set("src",A)};FancyZoom.fixBackgroundsForIE=function(){if(Browser.Engine.trident5){FancyZoom.switchBackgroundImagesTo("gif")}};FancyZoom.unfixBackgroundsForIE=function(){if(Browser.Engine.trident5){FancyZoom.switchBackgroundImagesTo("png")}};