Object.extend(String.prototype,{ensureEndsWith:function(A){return this.endsWith(A)?this:this+A},px:function(){return this.ensureEndsWith("px")}});Object.extend(Number.prototype,{px:function(){return this.toString().px()}});var Window={size:function(){var C=window.innerWidth||(window.document.documentElement.clientWidth||window.document.body.clientWidth);var B=window.innerHeight||(window.document.documentElement.clientHeight||window.document.body.clientHeight);var A=window.pageXOffset||(window.document.documentElement.scrollLeft||window.document.body.scrollLeft);var D=window.pageYOffset||(window.document.documentElement.scrollTop||window.document.body.scrollTop);return{width:C,height:B,x:A,y:D}}};var FancyZoomBox={directory:"images",zooming:false,setup:false,init:function(C){if(FancyZoomBox.setup){return }FancyZoomBox.setup=true;var E=navigator.userAgent.match(/MSIE\s(\d)+/);if(E){var B=parseInt(E[1]);Prototype.Browser["IE"+B.toString()]=true;Prototype.Browser.ltIE7=(B<7)?true:false}var D='<div class="zoom-box" id="zoom" style="z-index:1000; display:none;"><table id="zoom_table" style="border-collapse:collapse; width:100%; height:100%;"><tbody><tr><td class="tl" style="background:url('+FancyZoomBox.directory+'/tl.png) 0 0 no-repeat; width:16px; height:16px; overflow:hidden;" /><td class="tm" style="background:url('+FancyZoomBox.directory+'/tm.png) 0 0 repeat-x; height:16px; overflow:hidden;" /><td class="tr" style="background:url('+FancyZoomBox.directory+'/tr.png) 100% 0 no-repeat; width:16px; height:16px; overflow:hidden;" /></tr><tr><td class="ml" style="background:url('+FancyZoomBox.directory+'/ml.png) 0 0 repeat-y; width:16px; 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('+FancyZoomBox.directory+'/mr.png) 100% 0 repeat-y;  width:16px; overflow:hidden;" /></tr><tr><td class="bl" style="background:url('+FancyZoomBox.directory+'/bl.png) 0 100% no-repeat; width:16px; height:16px; overflow:hidden;" /><td class="bm" style="background:url('+FancyZoomBox.directory+'/bm.png) 0 100% repeat-x; height:16px; overflow:hidden;" /><td class="br" style="background:url('+FancyZoomBox.directory+'/br.png) 100% 100% no-repeat; width:16px; height:16px; overflow:hidden;" /></tr></tbody></table><a href="#" title="Close" id="zoom_close" style="display:none;position:absolute; top:0; left:0;"><img src="'+FancyZoomBox.directory+'/closebox.png" alt="Close" style="border:none; margin:0; padding:0;" /></a></div>';var A=$$("body").first();A.insert(D);FancyZoomBox.zoom=$("zoom");FancyZoomBox.zoom_table=$("zoom_table");FancyZoomBox.zoom_close=$("zoom_close");FancyZoomBox.zoom_content=$("zoom_content");FancyZoomBox.zoom_close.observe("click",FancyZoomBox.hide);FancyZoomBox.middle_row=$A([$$("td.ml"),$$("td.mm"),$$("td.mr")]).flatten();FancyZoomBox.cells=FancyZoomBox.zoom_table.select("td");$$("html").first().observe("dblclick",function(H){var G=H.findElement("#zoom"),F=FancyZoomBox.zoom.getStyle("display");if(F=="block"/*&&!G*/){FancyZoomBox.hide(H)}});$(document).observe("keyup",function(G){var F=FancyZoomBox.zoom.getStyle("display");if(G.keyCode==Event.KEY_ESC&&F=="block"){FancyZoomBox.hide(G)}});if(Prototype.Browser.ltIE7){FancyZoomBox.switchBackgroundImagesTo("gif")}},show:function(E){

Element.insert($$('body')[0],{
	top: new Element('div', {
		className: 'overlay'
	})
});
$$('.overlay')[0].style.height = $$('.container')[0].getDimensions().height + 'px';

$$(".overlay")[0].observe("click",function(H){var G=H.findElement("#zoom"),F=FancyZoomBox.zoom.getStyle("display");if(F=="block"/*&&!G*/){FancyZoomBox.hide(H)}});

E.stop();if(FancyZoomBox.zooming){return }FancyZoomBox.zooming=true;var C=E.findElement("a");var D=C.content_div;FancyZoomBox.d=D;var A=(C.zoom_width||D.getWidth())+60;var I=(C.zoom_height||D.getHeight())+60;var F=Window.size();var B=document.viewport.getScrollOffsets()[1];var G=Math.max((F.height/2)-(I/2)+B,0);var H=(F.width/2)-(A/2);FancyZoomBox.curTop=E.pointerY();FancyZoomBox.curLeft=E.pointerX();FancyZoomBox.moveX=-(FancyZoomBox.curLeft-H);FancyZoomBox.moveY=-(FancyZoomBox.curTop-G);FancyZoomBox.zoom.hide().setStyle({position:"absolute",top:FancyZoomBox.curTop.px(),left:FancyZoomBox.curLeft.px()});new Effect.Parallel([new Effect.Appear(FancyZoomBox.zoom,{sync:true}),new Effect.Move(FancyZoomBox.zoom,{x:FancyZoomBox.moveX,y:FancyZoomBox.moveY,sync:true}),new Effect.Morph(FancyZoomBox.zoom,{style:{width:A.px(),height:I.px()},sync:true,beforeStart:function(J){if(Prototype.Browser.IE){FancyZoomBox.middle_row.invoke("setStyle",{height:(I-40).px()})}FancyZoomBox.fixBackgroundsForIE()},
	afterFinish:function(J){
		FancyZoomBox.zoom_content.innerHTML=D.innerHTML;
		/**/$(D).update('');/**/
		FancyZoomBox.unfixBackgroundsForIE();
		/*FancyZoomBox.zoom_close.show()*/;
		FancyZoomBox.zooming=false
	}})],{duration:0.5})},hide:function(A){A.stop();if(FancyZoomBox.zooming){return }FancyZoomBox.zooming=true;new Effect.Parallel([new Effect.Move(FancyZoomBox.zoom,{x:FancyZoomBox.moveX*-1,y:FancyZoomBox.moveY*-1,sync:true}),new Effect.Morph(FancyZoomBox.zoom,{style:{width:"1".px(),height:"1".px()},sync:true,
	beforeStart:function(B){
		FancyZoomBox.fixBackgroundsForIE();
		$(FancyZoomBox.d).update(FancyZoomBox.zoom_content.innerHTML);
		FancyZoomBox.zoom_content.innerHTML="";
		FancyZoomBox.zoom_close.hide()
	},
	afterFinish:function(B){
		FancyZoomBox.unfixBackgroundsForIE();
		FancyZoomBox.zooming=false;
		if($$('.overlay')){$$('.overlay')[0].remove()};
	}}),new Effect.Fade(FancyZoomBox.zoom,{sync:true})],{duration:0.5})},switchBackgroundImagesTo:function(C){FancyZoomBox.cells.each(function(E){var D=E.getStyle("background-image").gsub(/\.(png|gif|none)\)$/,"."+C+")");E.setStyle("background-image: "+D)});var B=FancyZoomBox.zoom_close.firstDescendant();var A=B.readAttribute("src").gsub(/\.(png|gif|none)$/,"."+C);B.writeAttribute("src",A)},fixBackgroundsForIE:function(){if(Prototype.Browser.IE7){FancyZoomBox.switchBackgroundImagesTo("gif")}},unfixBackgroundsForIE:function(){if(Prototype.Browser.IE7){FancyZoomBox.switchBackgroundImagesTo("png")}}};var FancyZoom=Class.create({initialize:function(A){this.options=arguments.length>1?arguments[1]:{};FancyZoomBox.init();this.element=$(A);if(this.element && $("link_id")){$("link_id").value=this.element.readAttribute("id");};if(this.element){this.element.content_div=$(this.element.readAttribute("href").gsub(/^.*#/,""));this.element.content_div.hide();this.element.zoom_width=this.options.width;this.element.zoom_height=this.options.height;this.element.observe("click",FancyZoomBox.show)}}});
