var relOptsMain={};var zoom_img=0;var cloud_zoom_text='.cloud-zoom';var cloud_zoom_gallery_text=cloud_zoom_text+'-gallery';function stop_event(event)
{if(event.stopPropagation)
{event.stopPropagation();}
else
{event.cancelBubble=true;}}
function show_zoom_image(event)
{stop_event(event);if(jq_zoom_is_oxid)
{oxid.popup.zoom(true);oxid.image('zoom_img',zoom_img)}
else
{gmProductImages.open_images(relOptsMain.productsId,zoom_img);}
return false;}
(function($)
{$(document).ready(function()
{$(cloud_zoom_text+', '+cloud_zoom_gallery_text).CloudZoom();if($(cloud_zoom_gallery_text).length)
{$(cloud_zoom_gallery_text+':first').click();}
else if(jq_zoom_is_oxid)
{zoom_img=$(cloud_zoom_text).attr('href');}});function format(str)
{for(var i=1;i<arguments.length;i++)
{str=str.replace('%'+(i-1),arguments[i]);}
return str;}
function CloudZoom(jWin,opts)
{var sImg=$('img',jWin);var img1;var img2;var zoomDiv=null;var $mouseTrap=null;var lens=null;var $tint=null;var softFocus=null;var $ie6Fix=null;var zoomImage;var controlTimer=0;var cw,ch;var destU=0;var destV=0;var currV=0;var currU=0;var filesLoaded=0;var mx,my;var ctx=this,zw;var ie6FixRemove=function()
{if($ie6Fix!==null)
{$ie6Fix.remove();$ie6Fix=null;}};this.removeBits=function()
{if(lens){lens.remove();lens=null;}
if($tint){$tint.remove();$tint=null;}
if(softFocus){softFocus.remove();softFocus=null;}
ie6FixRemove();$('.cloud-zoom-loading',jWin.parent()).remove();};this.destroy=function()
{jWin.data('zoom',null);if($mouseTrap)
{$mouseTrap.unbind();$mouseTrap.remove();$mouseTrap=null;}
if(zoomDiv)
{zoomDiv.remove();zoomDiv=null;}
this.removeBits();};this.fadedOut=function()
{if(zoomDiv)
{zoomDiv.remove();zoomDiv=null;}
this.removeBits();};this.controlLoop=function()
{if(lens)
{var x=(mx-sImg.offset().left-(cw*0.5))>>0;var y=(my-sImg.offset().top-(ch*0.5))>>0;if(x<0)
{x=0;}
else if(x>(sImg.outerWidth()-cw))
{x=(sImg.outerWidth()-cw);}
if(y<0)
{y=0;}
else if(y>(sImg.outerHeight()-ch)){y=(sImg.outerHeight()-ch);}
lens.css({left:x,top:y});lens.css('background-position',(-x)+'px '+(-y)+'px');destU=(((x)/sImg.outerWidth())*zoomImage.width)>>0;destV=(((y)/sImg.outerHeight())*zoomImage.height)>>0;currU+=(destU-currU)/opts.smoothMove;currV+=(destV-currV)/opts.smoothMove;zoomDiv.css('background-position',(-(currU>>0)+'px ')+(-(currV>>0)+'px'));}
controlTimer=setTimeout(function()
{ctx.controlLoop();},30);};this.init2=function(img,id)
{filesLoaded++;if(id===1)
{zoomImage=img;}
if(filesLoaded===2)
{this.init();}};this.init=function()
{$('.cloud-zoom-loading',jWin.parent()).remove();$mouseTrap=$(".mousetrap");if($mouseTrap.length)
{$mouseTrap.unbind();$mouseTrap.remove();$mouseTrap=null;}
var div="<div class='mousetrap' style='background-image:url(\".\");z-index:999;position:absolute;width:%0px;height:%1px;left:%2px;top:%3px;\'></div>";$mouseTrap=jWin.parent().append(format(div,sImg.outerWidth(),sImg.outerHeight(),0,0)).find(':last');$mouseTrap.bind('mousemove',this,function(event)
{mx=event.pageX;my=event.pageY;});$mouseTrap.bind('mouseleave',this,function(event)
{clearTimeout(controlTimer);if(lens){lens.fadeOut(299);}
if($tint){$tint.fadeOut(299);}
if(softFocus){softFocus.fadeOut(299);}
zoomDiv.fadeOut(300,function()
{ctx.fadedOut();});return false;});$mouseTrap.bind('mouseenter',this,function(event)
{mx=event.pageX;my=event.pageY;zw=event.data;if(zoomDiv)
{zoomDiv.stop(true,false);zoomDiv.remove();}
var xPos=opts.adjustX,yPos=opts.adjustY;var siw=sImg.outerWidth();var sih=sImg.outerHeight();var w=opts.zoomWidth;var h=opts.zoomHeight;if(opts.zoomWidth=='auto')
{w=siw;}
if(opts.zoomHeight=='auto')
{h=sih;}
var appendTo=jWin.parent();switch(opts.position)
{case'top':yPos-=h;break;case'right':xPos+=siw;break;case'bottom':yPos+=sih;break;case'left':xPos-=w;break;case'inside':w=siw;h=sih;break;default:appendTo=$('#'+opts.position);if(appendTo.length)
{w=appendTo.innerWidth();h=appendTo.innerHeight();}
else
{appendTo=jWin;xPos+=siw;yPos+=sih;}}
var div='<div class="cloud-zoom-big" style="display:none;position:absolute;left:%0px;top:%1px;width:%2px;height:%3px;background-image:url(\'%4\');z-index:99;"></div>';zoomDiv=appendTo.append(format(div,xPos,yPos,w,h,zoomImage.src)).find(':last');if(opts.showTitle)
{if(sImg.attr('title'))
{zoomDiv.append(format('<div class="cloud-zoom-title">%0</div>',sImg.attr('title'))).find(':last').css('opacity',opts.titleOpacity);}}
if($.browser.msie&&$.browser.version<7)
{$ie6Fix=$('<iframe frameborder="0" src="#"></iframe>').css({position:"absolute",left:xPos,top:yPos,zIndex:99,width:w,height:h}).insertBefore(zoomDiv);}
zoomDiv.fadeIn(500);if(lens)
{lens.remove();lens=null;}
cw=(sImg.outerWidth()/zoomImage.width)*zoomDiv.width();ch=(sImg.outerHeight()/zoomImage.height)*zoomDiv.height();lens=jWin.append(format("<div class = 'cloud-zoom-lens' style='display:none;z-index:98;position:absolute;width:%0px;height:%1px;'></div>",cw,ch)).find(':last');$(this).bind('click',lens,function(event)
{return show_zoom_image(event);});$mouseTrap.css('cursor',lens.css('cursor'));var noTrans=false;if(opts.tint)
{lens.css('background','url("'+sImg.attr('src')+'")');var div='<div style="display:none;position:absolute; left:0px; top:0px; width:%0px; height:%1px; background-color:%2;" />';$tint=jWin.append(format(div,sImg.outerWidth(),sImg.outerHeight(),opts.tint)).find(':last');$tint.css('opacity',opts.tintOpacity);noTrans=true;$tint.fadeIn(500);}
if(opts.softFocus)
{lens.css('background','url("'+sImg.attr('src')+'")');var div='<div style="position:absolute;display:none;top:2px; left:2px; width:%0px; height:%1px;" />';softFocus=jWin.append(format(div,sImg.outerWidth()-2,sImg.outerHeight()-2,opts.tint)).find(':last');softFocus.css('background','url("'+sImg.attr('src')+'")');softFocus.css('opacity',0.5);noTrans=true;softFocus.fadeIn(500);}
if(!noTrans)
{lens.css('opacity',opts.lensOpacity);}
if(opts.position!=='inside'){lens.fadeIn(500);}
zw.controlLoop();return;});};img1=new Image();$(img1).load(function()
{ctx.init2(this,0);});img1.src=sImg.attr('src');img2=new Image();$(img2).load(function()
{ctx.init2(this,1);});img2.src=jWin.attr('href');}
$.fn.CloudZoom=function(options)
{try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}
this.each(function()
{var a={},rel,relOpts={},opts;rel=$(this).attr('rel');if(rel)
{eval('var  a = {'+rel+'}');relOpts=a;}
if($(this).is(cloud_zoom_text))
{if(!relOptsMain.productsId)
{relOptsMain=relOpts;}
$(this).css({'position':'relative','display':'block'});$('img',$(this)).css({'display':'block'});if($(this).parent().attr('id')!='wrap')
{$(this).wrap('<div id="wrap" style="top:0px;z-index:9999;position:relative;"></div>');}
opts=$.extend({},$.fn.CloudZoom.defaults,options);opts=$.extend({},opts,relOpts);$(this).data('zoom',new CloudZoom($(this),opts));}
else if($(this).is(cloud_zoom_gallery_text))
{opts=$.extend({},relOpts,options);$(this).data('relOpts',opts);$(this).bind('click',$(this),function(event)
{if(jq_zoom_is_oxid)
{zoom_img=event.data.attr('href');}
else
{zoom_img=$(cloud_zoom_gallery_text).index(this);}
var event_data=event.data.data('relOpts');var id='#'+event_data.useZoom;$(id).data('zoom').destroy();$(id).attr('href',zoom_img);if(jq_zoom_button)
{var test_zoom=$(jq_zoom_button);test_zoom.removeAttr('onclick');test_zoom.click(function(event)
{return show_zoom_image(event);});}
$(id+' img').attr('src',event_data.smallImage);$('#'+event_data.useZoom).CloudZoom();event.stopPropagation();return false;});}});return this;};$.fn.CloudZoom.defaults={zoomWidth:'auto',zoomHeight:'auto',position:'right',tint:false,tintOpacity:0.5,lensOpacity:0.5,softFocus:false,smoothMove:3,showTitle:true,titleOpacity:0.5,adjustX:0,adjustY:0};})(jQuery);

