(function($){function format(str){for(var i=1;iLoading...',w / 3,(w / 2)-(w / 6))).find(':last').css('opacity',0.5);}},200);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=jWin.parent().append(format("
",sImg.outerWidth(),sImg.outerHeight(),opts.adjustX,opts.adjustY)).find(':last');$mouseTrap.bind('mousemove',this,function(event){mx=event.pageX;my=event.pageY;});$mouseTrap.bind('mouseleave',this,function(event){jWin.trigger('cloudzoom_end_zoom');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){jWin.trigger('cloudzoom_start_zoom');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){appendTo=jWin;xPos+=siw;yPos+=sih;}else{w=appendTo.innerWidth();h=appendTo.innerHeight();}} zoomDiv=appendTo.append(format('',xPos,yPos,w,h,zoomImage.src)).find(':last');if(sImg.attr('title')&&opts.showTitle){zoomDiv.append(format('
%0
',sImg.attr('title'))).find(':last').css('opacity',opts.titleOpacity);} var browserCheck=/(msie) ([\w.]+)/.exec(navigator.userAgent);if(browserCheck){if((browserCheck[1]||"")=='msie'&&(browserCheck[2]||"0")<7){$ie6Fix=$('').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("",cw,ch)).find(':last');$mouseTrap.css('cursor',lens.css('cursor'));var noTrans=false;if(opts.tint){lens.css('background','url("'+sImg.attr('src')+'")');$tint=jWin.append(format('
',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')+'")');softFocus=jWin.append(format('
',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;});jWin.trigger('cloudzoom_ready');};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 relOpts,opts;eval('var a = {'+$(this).attr('rel')+'}');relOpts=a;if($(this).is('.cloud-zoom')){opts=$.extend({},$.fn.CloudZoom.defaults,options);opts=$.extend({},opts,relOpts);$(this).css({'position':'relative','display':'block'});$('img',$(this)).css({'display':'block'});if(!$(this).parent().hasClass('cloud-zoom-wrap')&&opts.useWrapper){$(this).wrap('
');} $(this).data('zoom',new CloudZoom($(this),opts));}else if($(this).is('.cloud-zoom-gallery')){opts=$.extend({},relOpts,options);$(this).data('relOpts',opts);$(this).bind('click',$(this),function(event){var data=event.data.data('relOpts');$('#'+data.useZoom).data('zoom').destroy();$('#'+data.useZoom).attr('href',event.data.attr('href'));$('#'+data.useZoom+' img').attr('src',event.data.data('relOpts').smallImage);$('#'+event.data.data('relOpts').useZoom).CloudZoom();return false;});}});return this;};$.fn.CloudZoom.defaults={zoomWidth:'auto',zoomHeight:'auto',position:'inside',transparentImage:'.',useWrapper:true,tint:false,tintOpacity:0.5,lensOpacity:0.5,softFocus:false,smoothMove:3,showTitle:true,titleOpacity:0.5,adjustX:0,adjustY:0};})(jQuery);