Your IP : 216.73.216.95


Current Path : /var/test/www/foundation/wp-content/themes/kallyas/addons/jquery_loupe/
Upload File :
Current File : /var/test/www/foundation/wp-content/themes/kallyas/addons/jquery_loupe/jquery.loupe.js

/*!
 * jQuery Loupe
 * http://www.userdot.net/#!/jquery
 *
 * Copyright 2011, UserDot www.userdot.net
 * Licensed under the GPL Version 3 license.
 * Version 1.0.0
 *
 */
!function(a){var b=0;jQuery.fn.loupe=function(c){if(b++,this.length>1)return this.each(function(){a(this).loupe(c)});var d,e,c=a.extend({trigger:"mouseenter",shape:"circle",rounded_corners:10,loupe_toggle_time:"medium",loupe_toggle_easing:"linear",default_size:200,min_size:150,max_size:250,glossy:!0,drop_shadow:!0,allow_resize:!0,size_snap:10,resize_animation_time:"medium",resize_animation_easing:"easeOutBack",allow_zoom:!0,zoom_key:90,default_zoom:100,min_zoom:50,max_zoom:200,zoom_snap:5,zoom_animation_time:"medium",zoom_animation_easing:"easeOutBack",apply_overlay:!0,overlay_opacity:.5,overlay_effect_time:"slow",overlay_effect_easing:"easeOutBack",overlay_class_name:""},c||{}),f=jQuery(this),g="loupe-"+b,h="loupe_overlay-"+b,i=c.default_size,j=null,k=0,l=0,m=0,n=0,o=0,p=0,q=!1,r=!1,s=c.default_zoom,t=0,u=0,v=!1;return this.each(function(){function b(){var b=i-2*a("#"+g+" .glossy").css("marginTop"),d=i/2,e=0,f=0;"circle"==c.shape?f=e=d:"rounded"==c.shape&&(e=parseInt(a("#"+g).css("border-top-width")),f=e=c.rounded_corners-e),a("#"+g+" .glossy").stop(),a("#"+g+" .glossy").animate({width:b+"px",height:d+"px","border-top-left-radius":e+"px","border-top-right-radius":f+"px"},{queue:!1,easing:c.resize_animation_easing,duration:c.resize_animation_time})}function w(e,h){if(q&&c.allow_zoom){if(!(s+c.zoom_snap*e>c.max_zoom||s+c.zoom_snap*e<c.min_zoom)){s+=c.zoom_snap*e,a("#log").text("zoom: "+s),o+=Math.round(m*c.zoom_snap/100)*e,p+=Math.round(n*c.zoom_snap/100)*e;var j=h.pageY-this.offsetTop;t=Math.round(o/k*(h.pageX-this.offsetLeft))*-1+i/2,u=Math.round(p/l*j)*-1+i/2,a("#"+g).animate({"background-position":t+"px "+u+"px","background-size":o+"px "+p+"px"},{queue:!1,easing:c.zoom_animation_easing,duration:c.zoom_animation_time,complete:function(){d=a("#"+g).outerWidth();var b=new jQuery.Event("mousemove",{pageX:v+d/2,pageY:w+d/2});f.trigger(b)}})}}else if(c.allow_resize&&!q&&(j=e*c.size_snap,!(i+j>c.max_size||i+j<c.min_size))){i+=j;var r=0,v=Math.round(a("#"+g).offset().left-j),w=Math.round(a("#"+g).offset().top-j);t+=j,u+=j,a("#"+g).stop(),"circle"==c.shape?(r=i/2,a("#"+g).animate({width:i+"px",height:i+"px","border-top-left-radius":r+"px","border-top-right-radius":r+"px","border-bottom-left-radius":r+"px","border-bottom-right-radius":r+"px","background-position":t+"px "+u+"px",left:v+"px",top:w+"px"},{queue:!1,easing:c.resize_animation_easing,duration:c.resize_animation_time,complete:function(){d=a("#"+g).outerWidth();var b=new jQuery.Event("mousemove",{pageX:v+d/2,pageY:w+d/2});f.trigger(b)}})):"rounded"==c.shape?a("#"+g).animate({width:i+"px",height:i+"px","border-radius":c.rounded_corners,"background-position":t+"px "+u+"px",left:v+"px",top:w+"px"},{queue:!1,easing:c.resize_animation_easing,duration:c.resize_animation_time,complete:function(){d=a("#"+g).outerWidth();var b=new jQuery.Event("mousemove",{pageX:v+d/2,pageY:w+d/2});f.trigger(b)}}):"square"==c.shape&&a("#"+g).animate({width:i+"px",height:i+"px","background-position":t+"px "+u+"px",left:v+"px",top:w+"px"},{queue:!1,easing:c.resize_animation_easing,duration:c.resize_animation_time,complete:function(){d=a("#"+g).outerWidth();var b=new jQuery.Event("mousemove",{pageX:v+d/2,pageY:w+d/2});f.trigger(b)}}),c.glossy&&b()}}"complete"!=document.readyState?setTimeout(arguments.callee,100):(function(){f.is("a")?(j=f.attr("href"),e=f.find("img")):f.is("img")&&(j=f.attr("src"),e=f),v=!0,s=100,k=e.width(),l=e.height(),a("body").append("<div class='sc__loupe' id='"+g+"'></div>");var b=new Image;b.onload=function(){m=this.width,n=this.height,o=Math.round(m*s/100),p=Math.round(n*s/100);var b=i/2;a("#"+g).css({width:i+"px",height:i+"px","background-image":"url("+j+")","background-size":o+"px "+p+"px"}),"circle"==c.shape?a("#"+g).css({"border-radius":b+"px"}):"rounded"==c.shape&&a("#"+g).css({"border-radius":c.rounded_corners+"px"}),d=a("#"+g).outerWidth(),c.glossy&&a("#"+g).append("<div class='glossy'></div>"),c.apply_overlay&&(a("body").append("<div class='overlay "+c.overlay_class_name+"' id='"+h+"'></div>"),a("#"+h).css({top:e.offset().top+"px",left:e.offset().left+"px",width:e.outerWidth()+"px",height:e.outerHeight()+"px"})),c.drop_shadow&&a("#"+g).addClass("shadow")},b.src=j}(),(c.allow_resize||c.allow_zoom)&&!v&&a.event.special.mousewheel&&a("#"+g).bind("mousewheel",function(a,b){return w(b,a),!1}),e.bind(c.trigger,function(d){if(r?(a("#"+g).fadeOut(c.loupe_toggle_time,c.loupe_toggle_easing),r=!1,c.apply_overlay&&a("#"+h).fadeOut(c.overlay_effect_time,c.overlay_effect_easing)):(a("#"+g).fadeIn(c.loupe_toggle_time,c.loupe_toggle_easing),r=!0,c.apply_overlay&&a("#"+h).fadeTo(c.overlay_effect_time,c.overlay_opacity,c.overlay_effect_easing),b()),"click"==d.type)return d.preventDefault?d.preventDefault():d.returnValue=!1,!1}),a("#"+g).bind("click",function(){e.trigger("click")}),a(document).bind("mousemove",function(b){if(!r)return!0;var f=parseInt(e.css("border-left-width"))+parseInt(e.css("padding-left")),j=parseInt(e.css("border-top-width"))+parseInt(e.css("padding-top")),m=parseInt(e.css("border-right-width"))+parseInt(e.css("padding-right")),n=parseInt(e.css("border-bottom-width"))+parseInt(e.css("padding-bottom")),q=b.pageX-e.offset().left-f,s=b.pageY-e.offset().top-j,v=Math.round(b.pageX-d/2),b=Math.round(b.pageY-d/2);t=Math.round(o/k*q)*-1+i/2,u=Math.round(p/l*s)*-1+i/2,a("#"+g).css({"background-position":t+"px "+u+"px"}),a("#"+g).css({left:v+"px",top:b+"px"}),(q<-f||s<-j||q>k+m||s>l+n)&&(a("#"+g).fadeOut(c.loupe_toggle_time),r=!1,c.apply_overlay&&a("#"+h).fadeOut(c.overlay_effect_time))}),a(document).keyup(function(a){if(a.which==c.zoom_key&&r)return q=!1,a.preventDefault?a.preventDefault():a.returnValue=!1,!1}).keydown(function(a){if(a.which==c.zoom_key&&r)return q=!0,a.preventDefault?a.preventDefault():a.returnValue=!1,!1}))})}}(jQuery);