(function($) {$.fn.jqzoom=function(options) {var settings={zoomType:'standard',zoomWidth:200,zoomHeight:200,xOffset:10,yOffset:0,position:"right",lens:true,lensReset:false,imageOpacity:0.2,title:true,alwaysOn:false,showEffect:'show',hideEffect:'hide',fadeinSpeed:'fast',fadeoutSpeed:'slow',preloadImages:true,showPreload:true,preloadText:'Loading zoom',preloadPosition:'center'};options=options||{};$.extend(settings,options);return this.each(function() {var a=$(this);var aTitle=a.attr('title');$(a).removeAttr('title');$(a).css('outline-style','none');var img=$("img",this);var imageTitle=img.attr('title');img.removeAttr('title');var smallimage=new Smallimage(img);var smallimagedata={};var btop=0;var bleft=0;var loader=null;loader=new Loader();var ZoomTitle=(trim(aTitle).length>0)?aTitle:(trim(imageTitle).length>0)?imageTitle:null;var ZoomTitleObj=new zoomTitle();var largeimage=new Largeimage(a[0].href);var lens=new Lens();var lensdata={};var largeimageloaded=false;var scale={};var stage=null;var running=false;var mousepos={};var firstime=0;var preloadshow=false;var isMouseDown=false;var dragstatus=false smallimage.loadimage();$(this).click(function(){return false;});$(this).hover(function(e) {mousepos.x=e.pageX;mousepos.y=e.pageY;activate();},function() {deactivate();});if(settings.alwaysOn) {setTimeout(function(){activate();},150);} function activate() {if(!running){smallimage.findborder();running=true;imageTitle=img.attr('title');img.removeAttr('title');aTitle=a.attr('title');$(a).removeAttr('title');if(!largeimage||$.browser.safari){largeimage=new Largeimage(a[0].href);} if(!largeimageloaded||$.browser.safari) {largeimage.loadimage();}else {if(settings.zoomType!='innerzoom') {stage=new Stage();stage.activate();} lens=new Lens;lens.activate();} a[0].blur();return false;}} function deactivate() {if(settings.zoomType=='reverse'&&!settings.alwaysOn) {img.css({'opacity':1});} if(!settings.alwaysOn) {running=false;largeimageloaded=false;$(lens.node).unbind('mousemove');lens.remove();if($('div.jqZoomWindow').length>0) {stage.remove();} if($('div.jqZoomTitle').length>0) {ZoomTitleObj.remove();} img.attr('title',imageTitle);a.attr('title',aTitle);$().unbind();a.unbind('mousemove');firstime=0;if(jQuery('.zoom_ieframe').length>0) {jQuery('.zoom_ieframe').remove();}}else {if(settings.lensReset) {switch(settings.zoomType) {case'innerzoom':largeimage.setcenter();break;default:lens.center();break;}}} if(settings.alwaysOn) {activate();}};function Smallimage(image) {this.node=image[0];this.loadimage=function(){this.node.src=image[0].src;};this.findborder=function() {var bordertop='';bordertop=$(img).css('border-top-width');btop='';var borderleft='';borderleft=$(img).css('border-left-width');bleft='';if(bordertop) {for(i=0;i<3;i++) {var x=[];x=bordertop.substr(i,1);if(isNaN(x)==false) {btop=btop+''+bordertop.substr(i,1);}else {break;}}} if(borderleft) {for(i=0;i<3;i++) {if(!isNaN(borderleft.substr(i,1))) {bleft=bleft+borderleft.substr(i,1)}else {break;}}} btop=(btop.length>0)?eval(btop):0;bleft=(bleft.length>0)?eval(bleft):0;} this.node.onload=function() {a.css({'cursor':'crosshair','display':'block'});if(a.css('position')!='absolute'&&a.parent().css('position')) {a.css({'cursor':'crosshair','position':'relative','display':'block'});} if(a.parent().css('position')!='absolute') {a.parent().css('position','relative');} else{} if($.browser.safari||$.browser.opera) {$(img).css({position:'absolute',top:'0px',left:'0px'});} smallimagedata.w=$(this).width();smallimagedata.h=$(this).height();smallimagedata.h=$(this).height();smallimagedata.pos=$(this).offset();smallimagedata.pos.l=$(this).offset().left;smallimagedata.pos.t=$(this).offset().top;smallimagedata.pos.r=smallimagedata.w+smallimagedata.pos.l;smallimagedata.pos.b=smallimagedata.h+smallimagedata.pos.t;a.height(smallimagedata.h);a.width(smallimagedata.w);if(settings.preloadImages) {largeimage.loadimage();}};return this;};function Lens() {this.node=document.createElement("div");$(this.node).addClass('jqZoomPup');this.node.onerror=function(){$(lens.node).remove();lens=new Lens();lens.activate();};this.loadlens=function() {switch(settings.zoomType) {case'reverse':this.image=new Image();this.image.src=smallimage.node.src;this.node.appendChild(this.image);$(this.node).css({'opacity':1});break;case'innerzoom':this.image=new Image();this.image.src=largeimage.node.src;this.node.appendChild(this.image);$(this.node).css({'opacity':1});break default:break;} switch(settings.zoomType) {case'innerzoom':lensdata.w=smallimagedata.w;lensdata.h=smallimagedata.h;break;default:lensdata.w=(settings.zoomWidth)/scale.x;lensdata.h=(settings.zoomHeight)/scale.y;break;} $(this.node).css({width:lensdata.w+'px',height:lensdata.h+'px',position:'absolute',display:'none',borderWidth:1+'px'});a.append(this.node);} return this;};Lens.prototype.activate=function() {this.loadlens();switch(settings.zoomType) {case'reverse':img.css({'opacity':settings.imageOpacity});(settings.alwaysOn)?lens.center():lens.setposition(null);a.bind('mousemove',function(e) {mousepos.x=e.pageX;mousepos.y=e.pageY;lens.setposition(e);});break;case'innerzoom':$(this.node).css({top:0,left:0});if(settings.title) {ZoomTitleObj.loadtitle();} largeimage.setcenter();a.bind('mousemove',function(e) {mousepos.x=e.pageX;mousepos.y=e.pageY;largeimage.setinner(e);});break;default:(settings.alwaysOn)?lens.center():lens.setposition(null);$(a).bind('mousemove',function(e) {mousepos.x=e.pageX;mousepos.y=e.pageY;lens.setposition(e);});break;} return this;};Lens.prototype.setposition=function(e) {if(e) {mousepos.x=e.pageX;mousepos.y=e.pageY;} if(firstime==0) {var lensleft=(smallimagedata.w)/2-(lensdata.w)/2;var lenstop=(smallimagedata.h)/2-(lensdata.h)/2;$('div.jqZoomPup').show() if(settings.lens) {this.node.style.visibility='visible';} else {this.node.style.visibility='hidden';$('div.jqZoomPup').hide();} firstime=1;}else {var lensleft=mousepos.x-smallimagedata.pos.l-(lensdata.w)/2;var lenstop=mousepos.y-smallimagedata.pos.t-(lensdata.h)/2;} if(overleft()) {lensleft=0+bleft;}else if(overright()) {if($.browser.msie) {lensleft=smallimagedata.w-lensdata.w+bleft+1;}else {lensleft=smallimagedata.w-lensdata.w+bleft-1;}} if(overtop()) {lenstop=0+btop;}else if(overbottom()) {if($.browser.msie) {lenstop=smallimagedata.h-lensdata.h+btop+1;}else {lenstop=smallimagedata.h-lensdata.h-1+btop;}} lensleft=parseInt(lensleft);lenstop=parseInt(lenstop);$('div.jqZoomPup',a).css({top:lenstop,left:lensleft});if(settings.zoomType=='reverse') {$('div.jqZoomPup img',a).css({'position':'absolute','top':-(lenstop-btop+1),'left':-(lensleft-bleft+1)});} this.node.style.left=lensleft+'px';this.node.style.top=lenstop+'px';largeimage.setposition();function overleft(){return mousepos.x-(lensdata.w+2*1)/2-bleftsmallimagedata.pos.r+bleft;} function overtop(){return mousepos.y-(lensdata.h+2*1)/2-btopsmallimagedata.pos.b+btop;} return this;};Lens.prototype.center=function() {$('div.jqZoomPup',a).css('display','none');var lensleft=(smallimagedata.w)/2-(lensdata.w)/2;var lenstop=(smallimagedata.h)/2-(lensdata.h)/2;this.node.style.left=lensleft+'px';this.node.style.top=lenstop+'px';$('div.jqZoomPup',a).css({top:lenstop,left:lensleft});if(settings.zoomType=='reverse') {$('div.jqZoomPup img',a).css({'position':'absolute','top':-(lenstop-btop+1),'left':-(lensleft-bleft+1)});} largeimage.setposition();if($.browser.msie) {$('div.jqZoomPup',a).show();}else {setTimeout(function(){$('div.jqZoomPup').fadeIn('fast');},10);}};Lens.prototype.getoffset=function(){var o={};o.left=parseInt(this.node.style.left);o.top=parseInt(this.node.style.top);return o;};Lens.prototype.remove=function() {if(settings.zoomType=='innerzoom') {$('div.jqZoomPup',a).fadeOut('fast',function(){$(this).remove();});}else {$('div.jqZoomPup',a).remove();}};Lens.prototype.findborder=function() {var bordertop='';bordertop=$('div.jqZoomPup').css('borderTop');lensbtop='';var borderleft='';borderleft=$('div.jqZoomPup').css('borderLeft');lensbleft='';if($.browser.msie) {var temp=bordertop.split(' ');bordertop=temp[1];var temp=borderleft.split(' ');borderleft=temp[1];} if(bordertop) {for(i=0;i<3;i++) {var x=[];x=bordertop.substr(i,1);if(isNaN(x)==false) {lensbtop=lensbtop+''+bordertop.substr(i,1);}else {break;}}} if(borderleft) {for(i=0;i<3;i++) {if(!isNaN(borderleft.substr(i,1))) {lensbleft=lensbleft+borderleft.substr(i,1)}else {break;}}} lensbtop=(lensbtop.length>0)?eval(lensbtop):0;lensbleft=(lensbleft.length>0)?eval(lensbleft):0;} function Largeimage(url) {this.url=url;this.node=new Image();this.loadimage=function() {if(!this.node) this.node=new Image();this.node.style.position='absolute';this.node.style.display='none';this.node.style.left='-5000px';this.node.style.top='10px';loader=new Loader();if(settings.showPreload&&!preloadshow) {loader.show();preloadshow=true;} document.body.appendChild(this.node);this.node.src=this.url;} this.node.onload=function() {this.style.display='block';var w=Math.round($(this).width());var h=Math.round($(this).height());this.style.display='none';scale.x=(w/smallimagedata.w);scale.y=(h/smallimagedata.h);if($('div.preload').length>0) {$('div.preload').remove();} largeimageloaded=true;if(settings.zoomType!='innerzoom'&&running){stage=new Stage();stage.activate();} if(running) {lens=new Lens();lens.activate();} if($('div.preload').length>0) {$('div.preload').remove();}} return this;} Largeimage.prototype.setposition=function() {this.node.style.left=Math.ceil(-scale.x*parseInt(lens.getoffset().left)+bleft)+'px';this.node.style.top=Math.ceil(-scale.y*parseInt(lens.getoffset().top)+btop)+'px';};Largeimage.prototype.setinner=function(e){this.node.style.left=Math.ceil(-scale.x*Math.abs(e.pageX-smallimagedata.pos.l))+'px';this.node.style.top=Math.ceil(-scale.y*Math.abs(e.pageY-smallimagedata.pos.t))+'px';$('div.jqZoomPup img',a).css({'position':'absolute','top':this.node.style.top,'left':this.node.style.left});};Largeimage.prototype.setcenter=function(){this.node.style.left=Math.ceil(-scale.x*Math.abs((smallimagedata.w)/2))+'px';this.node.style.top=Math.ceil(-scale.y*Math.abs((smallimagedata.h)/2))+'px';$('div.jqZoomPup img',a).css({'position':'absolute','top':this.node.style.top,'left':this.node.style.left});};function Stage() {var leftpos=smallimagedata.pos.l;var toppos=smallimagedata.pos.t;this.node=document.createElement("div");$(this.node).addClass('jqZoomWindow');$(this.node).css({position:'absolute',width:Math.round(settings.zoomWidth)+'px',height:Math.round(settings.zoomHeight)+'px',display:'none',zIndex:10000,overflow:'hidden'});switch(settings.position) {case"right":leftpos=(smallimagedata.pos.r+Math.abs(settings.xOffset)+settings.zoomWidth0)?smallimagedata.pos.t+settings.yOffset:smallimagedata.pos.t;break;case"left":leftpos=(smallimagedata.pos.l-Math.abs(settings.xOffset)-settings.zoomWidth>0)?(smallimagedata.pos.l-Math.abs(settings.xOffset)-settings.zoomWidth):(smallimagedata.pos.l+smallimagedata.w+Math.abs(settings.xOffset));topwindow=smallimagedata.pos.t+settings.yOffset+settings.zoomHeight;toppos=(topwindow0)?smallimagedata.pos.t+settings.yOffset:smallimagedata.pos.t;break;case"top":toppos=(smallimagedata.pos.t-Math.abs(settings.yOffset)-settings.zoomHeight>0)?(smallimagedata.pos.t-Math.abs(settings.yOffset)-settings.zoomHeight):(smallimagedata.pos.t+smallimagedata.h+Math.abs(settings.yOffset));leftwindow=smallimagedata.pos.l+settings.xOffset+settings.zoomWidth;leftpos=(leftwindow0)?smallimagedata.pos.l+settings.xOffset:smallimagedata.pos.l;break;case"bottom":toppos=(smallimagedata.pos.b+Math.abs(settings.yOffset)+settings.zoomHeight<$('body').height())?(smallimagedata.pos.b+Math.abs(settings.yOffset)):(smallimagedata.pos.t-settings.zoomHeight-Math.abs(settings.yOffset));leftwindow=smallimagedata.pos.l+settings.xOffset+settings.zoomWidth;leftpos=(leftwindow0)?smallimagedata.pos.l+settings.xOffset:smallimagedata.pos.l;break;default:leftpos=(smallimagedata.pos.l+smallimagedata.w+settings.xOffset+settings.zoomWidth').css({position:"absolute",left:this.node.style.left,top:this.node.style.top,zIndex:99,width:settings.zoomWidth,height:settings.zoomHeight}).insertBefore(this.node);};largeimage.node.style.display='block';} Stage.prototype.remove=function(){switch(settings.hideEffect) {case'hide':$('.jqZoomWindow').remove();break;case'fadeout':$('.jqZoomWindow').fadeOut(settings.fadeoutSpeed);break;default:$('.jqZoomWindow').remove();break;}} function zoomTitle() {this.node=jQuery('
').addClass('jqZoomTitle').html(''+ZoomTitle+'');this.loadtitle=function() {if(settings.zoomType=='innerzoom') {$(this.node).css({position:'absolute',top:smallimagedata.pos.b+3,left:(smallimagedata.pos.l+1),width:smallimagedata.w}).appendTo('body');}else {$(this.node).appendTo(stage.node);}};} zoomTitle.prototype.remove=function(){$('.jqZoomTitle').remove();} function Loader() {this.node=document.createElement("div");$(this.node).addClass('preload');$(this.node).html(settings.preloadText);$(this.node).appendTo("body").css('visibility','hidden');this.show=function() {switch(settings.preloadPosition) {case'center':loadertop=smallimagedata.pos.t+(smallimagedata.h-$(this.node).height())/2;loaderleft=smallimagedata.pos.l+(smallimagedata.w-$(this.node).width())/2;break;default:var loaderoffset=this.getoffset();loadertop=!isNaN(loaderoffset.top)?smallimagedata.pos.t+loaderoffset.top:smallimagedata.pos.t+0;loaderleft=!isNaN(loaderoffset.left)?smallimagedata.pos.l+loaderoffset.left:smallimagedata.pos.l+0;break;} $(this.node).css({top:loadertop,left:loaderleft,position:'absolute',visibility:'visible'});} return this;} Loader.prototype.getoffset=function() {var o=null;o=$('div.preload').offset();return o;}});}})(jQuery);function trim(stringa) {while(stringa.substring(0,1)==' '){stringa=stringa.substring(1,stringa.length);} while(stringa.substring(stringa.length-1,stringa.length)==' '){stringa=stringa.substring(0,stringa.length-1);} return stringa;}