//jQuery.fn.fancyZoom=function(O){var O=O||{};var L=O&&O.directory?O.directory:"/images/fancyzoom";var D=false;if($("#zoom").length==0){var E=$.browser.msie?"gif":"png";var J='<div id="zoom" style="display:none;">                   <table id="zoom_table" style="border-collapse:collapse; width:100%; height:100%;">                     <tbody>                       <tr>                         <td class="tl" style="background:url('+L+"/tl."+E+') 0 0 no-repeat; width:20px; height:20px; overflow:hidden;" />                         <td class="tm" style="background:url('+L+"/tm."+E+') 0 0 repeat-x; height:20px; overflow:hidden;" />                         <td class="tr" style="background:url('+L+"/tr."+E+') 100% 0 no-repeat; width:20px; height:20px; overflow:hidden;" />                       </tr>                       <tr>                         <td class="ml" style="background:url('+L+"/ml."+E+') 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('+L+"/mr."+E+') 100% 0 repeat-y;  width:20px; overflow:hidden;" />                       </tr>                       <tr>                         <td class="bl" style="background:url('+L+"/bl."+E+') 0 100% no-repeat; width:20px; height:20px; overflow:hidden;" />                         <td class="bm" style="background:url('+L+"/bm."+E+') 0 100% repeat-x; height:20px; overflow:hidden;" />                         <td class="br" style="background:url('+L+"/br."+E+') 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="'+L+"/closebox."+E+'" alt="Close" style="border:none; margin:0; padding:0;" />                   </a>                 </div>';$("body").append(J);$("html").click(function(P){if($(P.target).parents("#zoom:visible").length==0){K()}});$(document).keyup(function(P){if(P.keyCode==27&&$("#zoom:visible").length>0){K()}});$("#zoom_close").click(K)}var N=$("#zoom");var I=$("#zoom_table");var H=$("#zoom_close");var G=$("#zoom_content");var A=$("td.ml,td.mm,td.mr");this.each(function(P){$($(this).attr("href")).hide();$(this).click(M)});return this;function M(V){if(D){return false}D=true;var P=$($(this).attr("href"));var T=O.width;var U=O.height;var Q=window.innerWidth||(window.document.documentElement.clientWidth||window.document.body.clientWidth);var b=window.innerHeight||(window.document.documentElement.clientHeight||window.document.body.clientHeight);var Z=window.pageXOffset||(window.document.documentElement.scrollLeft||window.document.body.scrollLeft);var Y=window.pageYOffset||(window.document.documentElement.scrollTop||window.document.body.scrollTop);var c={width:Q,height:b,x:Z,y:Y};var Q=(T||P.width())+60;var b=(U||P.height())+60;var W=c;var X=Math.max((W.height/2)-(b/2)+Y,0);var a=(W.width/2)-(Q/2);var R=V.pageY;var S=V.pageX;H.attr("curTop",R);H.attr("curLeft",S);H.attr("scaleImg",O.scaleImg?"true":"false");$("#zoom").hide().css({position:"absolute",top:R+"px",left:S+"px",width:"1px",height:"1px"});F();H.hide();if(O.closeOnClick){$("#zoom").click(K)}if(O.scaleImg){G.html(P.html());$("#zoom_content img").css("width","100%")}else{G.html("")}$("#zoom").animate({top:X+"px",left:a+"px",opacity:"show",width:Q,height:b},500,null,function(){if(O.scaleImg!=true){G.html(P.html())}C();H.show();D=false});return false}function K(){if(D){return false}D=true;$("#zoom").unbind("click");F();if(H.attr("scaleImg")!="true"){G.html("")}H.hide();$("#zoom").animate({top:H.attr("curTop")+"px",left:H.attr("curLeft")+"px",opacity:"hide",width:"1px",height:"1px"},500,null,function(){if(H.attr("scaleImg")=="true"){G.html("")}C();D=false});return false}function B(R){$("#zoom_table td").each(function(T){var S=$(this).css("background-image").replace(/\.(png|gif|none)\"\)$/,"."+R+'")');$(this).css("background-image",S)});var Q=H.children("img");var P=Q.attr("src").replace(/\.(png|gif|none)$/,"."+R);Q.attr("src",P)}function F(){if($.browser.msie&&parseFloat($.browser.version)>=7){B("gif")}}function C(){if($.browser.msie&&$.browser.version>=7){B("png")}}};
var cancelFancy;
(function($){
$.fn.fancyZoom = function(options){
 
  var options = options || {};
  var directory = options && options.directory ? options.directory : '/images/fancyzoom';
  var zooming = false;
  cancelFancy = false;
 
  if ($('#zoom').length == 0) {
    var ext = $.browser.msie ? 'gif' : 'png';
    var html = '<div id="zoom" style="display:none;"> \
<table id="zoom_table" style="border-collapse:collapse; width:100%; height:100%;"> \
<tbody> \
<tr> \
<td class="tl" style="background:url(' + directory + '/tl.' + ext + ') 0 0 no-repeat; width:20px; height:20px; overflow:hidden;" /> \
<td class="tm" style="background:url(' + directory + '/tm.' + ext + ') 0 0 repeat-x; height:20px; overflow:hidden;" /> \
<td class="tr" style="background:url(' + directory + '/tr.' + ext + ') 100% 0 no-repeat; width:20px; height:20px; overflow:hidden;" /> \
</tr> \
<tr> \
<td class="ml" style="background:url(' + directory + '/ml.' + ext + ') 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(' + directory + '/mr.' + ext + ') 100% 0 repeat-y; width:20px; overflow:hidden;" /> \
</tr> \
<tr> \
<td class="bl" style="background:url(' + directory + '/bl.' + ext + ') 0 100% no-repeat; width:20px; height:20px; overflow:hidden;" /> \
<td class="bm" style="background:url(' + directory + '/bm.' + ext + ') 0 100% repeat-x; height:20px; overflow:hidden;" /> \
<td class="br" style="background:url(' + directory + '/br.' + ext + ') 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="' + directory + '/closebox.' + ext + '" alt="Close" style="border:none; margin:0; padding:0;" /> \
</a> \
</div>';
 
    $('body').append(html);
 
    $('html').click(function(e){if($(e.target).parents('#zoom:visible').length == 0) hide();});
    $(document).keyup(function(event){
        if (event.keyCode == 27 && $('#zoom:visible').length > 0) hide();
    });
 
    $('#zoom_close').click(hide);
  }
 
  var zoom = $('#zoom');
  var zoom_table = $('#zoom_table');
  var zoom_close = $('#zoom_close');
  var zoom_content = $('#zoom_content');
  var middle_row = $('td.ml,td.mm,td.mr');
 
  this.each(function(i) {
    $($(this).attr('href')).hide();
    $(this).click(show);
  });

	cancel = function(n,v){
		this.n = v; 
	}
	
	this.hide_me = function(){
		hide();
	};
 
  return this;
 
function show(e) {
	if (zooming) return false;
	if(!cancelFancy){
		zooming = true;
		var content_div = $($(this).attr('href'));
		var zoom_width = options.width;
		var zoom_height = options.height;

		var width = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth);
		var height = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);
		var x = window.pageXOffset || (window.document.documentElement.scrollLeft || window.document.body.scrollLeft);
		var y = window.pageYOffset || (window.document.documentElement.scrollTop || window.document.body.scrollTop);
		var window_size = {'width':width, 'height':height, 'x':x, 'y':y}

		var width = (zoom_width || content_div.width()) + 60;
		var height = (zoom_height || content_div.height()) + 60;
		var d = window_size;

		// ensure that newTop is at least 0 so it doesn't hide close button
		var newTop = Math.max((d.height/2) - (height/2) + y, 0);
		var newLeft = (d.width/2) - (width/2);
		var curTop = e.pageY;
		var curLeft = e.pageX;

		zoom_close.attr('curTop', curTop);
		zoom_close.attr('curLeft', curLeft);
		zoom_close.attr('scaleImg', options.scaleImg ? 'true' : 'false');

		$('#zoom').hide().css({
			position  : 'absolute',
			top        : curTop + 'px',
			left      : curLeft + 'px',
			width : '1px',
			height : '1px'
		});

		fixBackgroundsForIE();
		zoom_close.hide();

		if (options.closeOnClick) {
			$('#zoom').click(hide);
		}

		if (options.scaleImg) {
			zoom_content.html(content_div.html());
			$('#zoom_content img').css('width', '100%');
		} else {
			zoom_content.html('');
		}

		$('#zoom').animate({
			top : newTop + 'px',
			left : newLeft + 'px',
			opacity : "show",
			width : width,
			height : height
		}, 500, null, function() {
			if (options.scaleImg != true) {
				zoom_content.html(content_div.html());
			}
			unfixBackgroundsForIE();
			zoom_close.show();
			zooming = false;
		})
	}
	cancelFancy = false;
	return false;
}
 
  function hide() {
    if (zooming) return false;
    zooming = true;
   $('#zoom').unbind('click');
    fixBackgroundsForIE();
    if (zoom_close.attr('scaleImg') != 'true') {
      zoom_content.html('');
    }
    zoom_close.hide();
    $('#zoom').animate({
      top : zoom_close.attr('curTop') + 'px',
      left : zoom_close.attr('curLeft') + 'px',
      opacity : "hide",
      width : '1px',
      height : '1px'
    }, 500, null, function() {
      if (zoom_close.attr('scaleImg') == 'true') {
        zoom_content.html('');
      }
      unfixBackgroundsForIE();
      zooming = false;
    });
    return false;
  }
  
  function switchBackgroundImagesTo(to) {
    $('#zoom_table td').each(function(i) {
      var bg = $(this).css('background-image').replace(/\.(png|gif|none)\"\)$/, '.' + to + '")');
      $(this).css('background-image', bg);
    });
    var close_img = zoom_close.children('img');
    var new_img = close_img.attr('src').replace(/\.(png|gif|none)$/, '.' + to);
    close_img.attr('src', new_img);
  }
 
  function fixBackgroundsForIE() {
    if ($.browser.msie && parseFloat($.browser.version) >= 7) {
      switchBackgroundImagesTo('gif');
    }
  }
 
  function unfixBackgroundsForIE() {
    if ($.browser.msie && $.browser.version >= 7) {
      switchBackgroundImagesTo('png');
    }
  }
}
})(jQuery);