Files
bio-concept-pharma/web/modules/jqzoomevolution/views/js/jqzoomevolution.js
2019-11-17 19:14:07 +01:00

15 lines
28 KiB
JavaScript

/*! Hammer.JS - v1.0.5 - 2013-04-07
* http://eightmedia.github.com/hammer.js
*
* Copyright (c) 2013 Jorik Tangelder <j.tangelder@gmail.com>;
* Licensed under the MIT license */
(function(t,e){"use strict";function n(){if(!r.READY){r.event.determineEventTypes();for(var t in r.gestures)r.gestures.hasOwnProperty(t)&&r.detection.register(r.gestures[t]);r.event.onTouch(r.DOCUMENT,r.EVENT_MOVE,r.detection.detect),r.event.onTouch(r.DOCUMENT,r.EVENT_END,r.detection.detect),r.READY=!0}}var r=function(t,e){return new r.Instance(t,e||{})};r.defaults={stop_browser_behavior:{userSelect:"none",touchAction:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},r.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,r.HAS_TOUCHEVENTS="ontouchstart"in t,r.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android/i,r.NO_MOUSEEVENTS=r.HAS_TOUCHEVENTS&&navigator.userAgent.match(r.MOBILE_REGEX),r.EVENT_TYPES={},r.DIRECTION_DOWN="down",r.DIRECTION_LEFT="left",r.DIRECTION_UP="up",r.DIRECTION_RIGHT="right",r.POINTER_MOUSE="mouse",r.POINTER_TOUCH="touch",r.POINTER_PEN="pen",r.EVENT_START="start",r.EVENT_MOVE="move",r.EVENT_END="end",r.DOCUMENT=document,r.plugins={},r.READY=!1,r.Instance=function(t,e){var i=this;return n(),this.element=t,this.enabled=!0,this.options=r.utils.extend(r.utils.extend({},r.defaults),e||{}),this.options.stop_browser_behavior&&r.utils.stopDefaultBrowserBehavior(this.element,this.options.stop_browser_behavior),r.event.onTouch(t,r.EVENT_START,function(t){i.enabled&&r.detection.startDetect(i,t)}),this},r.Instance.prototype={on:function(t,e){for(var n=t.split(" "),r=0;n.length>r;r++)this.element.addEventListener(n[r],e,!1);return this},off:function(t,e){for(var n=t.split(" "),r=0;n.length>r;r++)this.element.removeEventListener(n[r],e,!1);return this},trigger:function(t,e){var n=r.DOCUMENT.createEvent("Event");n.initEvent(t,!0,!0),n.gesture=e;var i=this.element;return r.utils.hasParent(e.target,i)&&(i=e.target),i.dispatchEvent(n),this},enable:function(t){return this.enabled=t,this}};var i=null,o=!1,a=!1;r.event={bindDom:function(t,e,n){for(var r=e.split(" "),i=0;r.length>i;i++)t.addEventListener(r[i],n,!1)},onTouch:function(t,e,n){var s=this;this.bindDom(t,r.EVENT_TYPES[e],function(c){var u=c.type.toLowerCase();if(!u.match(/mouse/)||!a){(u.match(/touch/)||u.match(/pointerdown/)||u.match(/mouse/)&&1===c.which)&&(o=!0),u.match(/touch|pointer/)&&(a=!0);var h=0;o&&(r.HAS_POINTEREVENTS&&e!=r.EVENT_END?h=r.PointerEvent.updatePointer(e,c):u.match(/touch/)?h=c.touches.length:a||(h=u.match(/up/)?0:1),h>0&&e==r.EVENT_END?e=r.EVENT_MOVE:h||(e=r.EVENT_END),h||null===i?i=c:c=i,n.call(r.detection,s.collectEventData(t,e,c)),r.HAS_POINTEREVENTS&&e==r.EVENT_END&&(h=r.PointerEvent.updatePointer(e,c))),h||(i=null,o=!1,a=!1,r.PointerEvent.reset())}})},determineEventTypes:function(){var t;t=r.HAS_POINTEREVENTS?r.PointerEvent.getEvents():r.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],r.EVENT_TYPES[r.EVENT_START]=t[0],r.EVENT_TYPES[r.EVENT_MOVE]=t[1],r.EVENT_TYPES[r.EVENT_END]=t[2]},getTouchList:function(t){return r.HAS_POINTEREVENTS?r.PointerEvent.getTouchList():t.touches?t.touches:[{identifier:1,pageX:t.pageX,pageY:t.pageY,target:t.target}]},collectEventData:function(t,e,n){var i=this.getTouchList(n,e),o=r.POINTER_TOUCH;return(n.type.match(/mouse/)||r.PointerEvent.matchType(r.POINTER_MOUSE,n))&&(o=r.POINTER_MOUSE),{center:r.utils.getCenter(i),timeStamp:(new Date).getTime(),target:n.target,touches:i,eventType:e,pointerType:o,srcEvent:n,preventDefault:function(){this.srcEvent.preventManipulation&&this.srcEvent.preventManipulation(),this.srcEvent.preventDefault&&this.srcEvent.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return r.detection.stopDetect()}}}},r.PointerEvent={pointers:{},getTouchList:function(){var t=this,e=[];return Object.keys(t.pointers).sort().forEach(function(n){e.push(t.pointers[n])}),e},updatePointer:function(t,e){return t==r.EVENT_END?this.pointers={}:(e.identifier=e.pointerId,this.pointers[e.pointerId]=e),Object.keys(this.pointers).length},matchType:function(t,e){if(!e.pointerType)return!1;var n={};return n[r.POINTER_MOUSE]=e.pointerType==e.MSPOINTER_TYPE_MOUSE||e.pointerType==r.POINTER_MOUSE,n[r.POINTER_TOUCH]=e.pointerType==e.MSPOINTER_TYPE_TOUCH||e.pointerType==r.POINTER_TOUCH,n[r.POINTER_PEN]=e.pointerType==e.MSPOINTER_TYPE_PEN||e.pointerType==r.POINTER_PEN,n[t]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},r.utils={extend:function(t,n,r){for(var i in n)t[i]!==e&&r||(t[i]=n[i]);return t},hasParent:function(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1},getCenter:function(t){for(var e=[],n=[],r=0,i=t.length;i>r;r++)e.push(t[r].pageX),n.push(t[r].pageY);return{pageX:(Math.min.apply(Math,e)+Math.max.apply(Math,e))/2,pageY:(Math.min.apply(Math,n)+Math.max.apply(Math,n))/2}},getVelocity:function(t,e,n){return{x:Math.abs(e/t)||0,y:Math.abs(n/t)||0}},getAngle:function(t,e){var n=e.pageY-t.pageY,r=e.pageX-t.pageX;return 180*Math.atan2(n,r)/Math.PI},getDirection:function(t,e){return Math.abs(t.pageX-e.pageX)>=Math.abs(t.pageY-e.pageY)?t.pageX-e.pageX>0?r.DIRECTION_LEFT:r.DIRECTION_RIGHT:t.pageY-e.pageY>0?r.DIRECTION_UP:r.DIRECTION_DOWN},getDistance:function(t,e){var n=e.pageX-t.pageX,r=e.pageY-t.pageY;return Math.sqrt(n*n+r*r)},getScale:function(t,e){return t.length>=2&&e.length>=2?this.getDistance(e[0],e[1])/this.getDistance(t[0],t[1]):1},getRotation:function(t,e){return t.length>=2&&e.length>=2?this.getAngle(e[1],e[0])-this.getAngle(t[1],t[0]):0},isVertical:function(t){return t==r.DIRECTION_UP||t==r.DIRECTION_DOWN},stopDefaultBrowserBehavior:function(t,e){var n,r=["webkit","khtml","moz","ms","o",""];if(e&&t.style){for(var i=0;r.length>i;i++)for(var o in e)e.hasOwnProperty(o)&&(n=o,r[i]&&(n=r[i]+n.substring(0,1).toUpperCase()+n.substring(1)),t.style[n]=e[o]);"none"==e.userSelect&&(t.onselectstart=function(){return!1})}}},r.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(t,e){this.current||(this.stopped=!1,this.current={inst:t,startEvent:r.utils.extend({},e),lastEvent:!1,name:""},this.detect(e))},detect:function(t){if(this.current&&!this.stopped){t=this.extendEventData(t);for(var e=this.current.inst.options,n=0,i=this.gestures.length;i>n;n++){var o=this.gestures[n];if(!this.stopped&&!1!==e[o.name]&&!1===o.handler.call(o,t,this.current.inst)){this.stopDetect();break}}return this.current&&(this.current.lastEvent=t),t.eventType==r.EVENT_END&&!t.touches.length-1&&this.stopDetect(),t}},stopDetect:function(){this.previous=r.utils.extend({},this.current),this.current=null,this.stopped=!0},extendEventData:function(t){var e=this.current.startEvent;if(e&&(t.touches.length!=e.touches.length||t.touches===e.touches)){e.touches=[];for(var n=0,i=t.touches.length;i>n;n++)e.touches.push(r.utils.extend({},t.touches[n]))}var o=t.timeStamp-e.timeStamp,a=t.center.pageX-e.center.pageX,s=t.center.pageY-e.center.pageY,c=r.utils.getVelocity(o,a,s);return r.utils.extend(t,{deltaTime:o,deltaX:a,deltaY:s,velocityX:c.x,velocityY:c.y,distance:r.utils.getDistance(e.center,t.center),angle:r.utils.getAngle(e.center,t.center),direction:r.utils.getDirection(e.center,t.center),scale:r.utils.getScale(e.touches,t.touches),rotation:r.utils.getRotation(e.touches,t.touches),startEvent:e}),t},register:function(t){var n=t.defaults||{};return n[t.name]===e&&(n[t.name]=!0),r.utils.extend(r.defaults,n,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort(function(t,e){return t.index<e.index?-1:t.index>e.index?1:0}),this.gestures}},r.gestures=r.gestures||{},r.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:1},timer:null,handler:function(t,e){switch(t.eventType){case r.EVENT_START:clearTimeout(this.timer),r.detection.current.name=this.name,this.timer=setTimeout(function(){"hold"==r.detection.current.name&&e.trigger("hold",t)},e.options.hold_timeout);break;case r.EVENT_MOVE:t.distance>e.options.hold_threshold&&clearTimeout(this.timer);break;case r.EVENT_END:clearTimeout(this.timer)}}},r.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(t,e){if(t.eventType==r.EVENT_END){var n=r.detection.previous,i=!1;if(t.deltaTime>e.options.tap_max_touchtime||t.distance>e.options.tap_max_distance)return;n&&"tap"==n.name&&t.timeStamp-n.lastEvent.timeStamp<e.options.doubletap_interval&&t.distance<e.options.doubletap_distance&&(e.trigger("doubletap",t),i=!0),(!i||e.options.tap_always)&&(r.detection.current.name="tap",e.trigger(r.detection.current.name,t))}}},r.gestures.Swipe={name:"swipe",index:40,defaults:{swipe_max_touches:1,swipe_velocity:.7},handler:function(t,e){if(t.eventType==r.EVENT_END){if(e.options.swipe_max_touches>0&&t.touches.length>e.options.swipe_max_touches)return;(t.velocityX>e.options.swipe_velocity||t.velocityY>e.options.swipe_velocity)&&(e.trigger(this.name,t),e.trigger(this.name+t.direction,t))}}},r.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,drag_max_touches:1,drag_block_horizontal:!1,drag_block_vertical:!1,drag_lock_to_axis:!1,drag_lock_min_distance:25},triggered:!1,handler:function(t,n){if(r.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),this.triggered=!1,e;if(!(n.options.drag_max_touches>0&&t.touches.length>n.options.drag_max_touches))switch(t.eventType){case r.EVENT_START:this.triggered=!1;break;case r.EVENT_MOVE:if(t.distance<n.options.drag_min_distance&&r.detection.current.name!=this.name)return;r.detection.current.name=this.name,(r.detection.current.lastEvent.drag_locked_to_axis||n.options.drag_lock_to_axis&&n.options.drag_lock_min_distance<=t.distance)&&(t.drag_locked_to_axis=!0);var i=r.detection.current.lastEvent.direction;t.drag_locked_to_axis&&i!==t.direction&&(t.direction=r.utils.isVertical(i)?0>t.deltaY?r.DIRECTION_UP:r.DIRECTION_DOWN:0>t.deltaX?r.DIRECTION_LEFT:r.DIRECTION_RIGHT),this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),n.trigger(this.name+t.direction,t),(n.options.drag_block_vertical&&r.utils.isVertical(t.direction)||n.options.drag_block_horizontal&&!r.utils.isVertical(t.direction))&&t.preventDefault();break;case r.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},r.gestures.Transform={name:"transform",index:45,defaults:{transform_min_scale:.01,transform_min_rotation:1,transform_always_block:!1},triggered:!1,handler:function(t,n){if(r.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),this.triggered=!1,e;if(!(2>t.touches.length))switch(n.options.transform_always_block&&t.preventDefault(),t.eventType){case r.EVENT_START:this.triggered=!1;break;case r.EVENT_MOVE:var i=Math.abs(1-t.scale),o=Math.abs(t.rotation);if(n.options.transform_min_scale>i&&n.options.transform_min_rotation>o)return;r.detection.current.name=this.name,this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),o>n.options.transform_min_rotation&&n.trigger("rotate",t),i>n.options.transform_min_scale&&(n.trigger("pinch",t),n.trigger("pinch"+(1>t.scale?"in":"out"),t));break;case r.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},r.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(t,n){return n.options.prevent_mouseevents&&t.pointerType==r.POINTER_MOUSE?(t.stopDetect(),e):(n.options.prevent_default&&t.preventDefault(),t.eventType==r.EVENT_START&&n.trigger(this.name,t),e)}},r.gestures.Release={name:"release",index:1/0,handler:function(t,e){t.eventType==r.EVENT_END&&e.trigger(this.name,t)}},"object"==typeof module&&"object"==typeof module.exports?module.exports=r:(t.Hammer=r,"function"==typeof t.define&&t.define.amd&&t.define("hammer",[],function(){return r}))})(this),function(t,e){"use strict";t!==e&&(Hammer.event.bindDom=function(n,r,i){t(n).on(r,function(t){var n=t.originalEvent||t;n.pageX===e&&(n.pageX=t.pageX,n.pageY=t.pageY),n.target||(n.target=t.target),n.which===e&&(n.which=n.button),n.preventDefault||(n.preventDefault=t.preventDefault),n.stopPropagation||(n.stopPropagation=t.stopPropagation),i.call(this,n)})},Hammer.Instance.prototype.on=function(e,n){return t(this.element).on(e,n)},Hammer.Instance.prototype.off=function(e,n){return t(this.element).off(e,n)},Hammer.Instance.prototype.trigger=function(e,n){var r=t(this.element);return r.has(n.target).length&&(r=t(n.target)),r.trigger({type:e,gesture:n})},t.fn.hammer=function(e){return this.each(function(){var n=t(this),r=n.data("hammer");r?r&&e&&Hammer.utils.extend(r.options,e):n.data("hammer",new Hammer(this,e||{}))})})}(window.jQuery||window.Zepto);
$(function(){function o(){if($(".images-container > .product-cover > img").length){var o=$(".images-container > .product-cover > img");o.addClass("xzoom"),o.attr("xoriginal",o.attr("src")),o.next(".layer").remove()}$(".thumb-container > img").length&&$(".thumb-container > img").addClass("xzoom-gallery"),$(".xzoom, .xzoom-gallery").xzoom({position:jqzoomConf.JQZOOM_POSITION,defaultScale:parseFloat(jqzoomConf.JQZOOM_ZOOMPOWER),Xoffset:parseInt(jqzoomConf.JQZOOM_XOFFSET),Yoffset:parseInt(jqzoomConf.JQZOOM_YOFFSET),zoomWidth:jqzoomConf.JQZOOM_WIDTH>0?parseInt(jqzoomConf.JQZOOM_WIDTH):"auto",zoomHeight:jqzoomConf.JQZOOM_HEIGHT>0?parseInt(jqzoomConf.JQZOOM_HEIGHT):"auto",fadeIn:parseInt(jqzoomConf.JQZOOM_FADEINEFFECT),fadeOut:parseInt(jqzoomConf.JQZOOM_FADEOUTEFFECT),tint:jqzoomConf.JQZOOM_TINTCOLOR,tintOpacity:parseFloat(jqzoomConf.JQZOOM_TINTOPACITY),lens:jqzoomConf.JQZOOM_LENSCOLOR,lensOpacity:parseFloat(jqzoomConf.JQZOOM_LENSOPACITY),lensShape:jqzoomConf.JQZOOM_LENSSHAPE,sourceClass:"lens"==jqzoomConf.JQZOOM_POSITION?"xzoom-hidden":"xzoom-source",title:parseInt(jqzoomConf.JQZOOM_SHOWTITLE),borderColor:jqzoomConf.JQZOOM_BCOLOR}),("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)&&$(".xzoom").each(function(){var o=$(this).data("xzoom");o.eventunbind(),$(this).hammer().on("tap",function(e){e.pageX=e.gesture.center.pageX,e.pageY=e.gesture.center.pageY,o.eventmove=function(e){e.hammer().on("drag",function(e){e.gesture.preventDefault(),e.pageX=e.gesture.center.pageX,e.pageY=e.gesture.center.pageY,o.movezoom(e)})},o.eventleave=function(e){e.hammer().on("tap",function(e){o.closezoom()})},o.openzoom(e)})})}o(),prestashop.on("updatedProduct",function(e){o()})});
/*!-----------------------------------------------------
* xZoom v1.0.4
* (c) 2013 by Azat Ahmedov & Elman Guseynov
* https://github.com/payalord
* https://dribbble.com/elmanvebs
* Apache License 2.0
*------------------------------------------------------*/
function detect_old_ie(){if(!/MSIE (\d+\.\d+);/.test(navigator.userAgent))return!1;var o=new Number(RegExp.$1);return!(o>=9)&&(o>=8||(o>=7||(o>=6||(o>=5||void 0))))}window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(o){window.setTimeout(o,20)}}(),function(o){function t(t,e){function i(){var o=document.documentElement;return{left:(window.pageXOffset||o.scrollLeft)-(o.clientLeft||0),top:(window.pageYOffset||o.scrollTop)-(o.clientTop||0)}}function s(){var e=t.offset();if(g="auto"==lo.options.zoomWidth?so:so/eo*lo.options.zoomWidth,m="auto"==lo.options.zoomHeight?no:so/io*lo.options.zoomHeight,"#"==lo.options.position.substr(0,1)?co=o(lo.options.position):co.length=0,0!=co.length)return!0;switch(ao){case"lens":case"inside":return!0;case"top":x=e.top,b=e.left,z=x-no,C=b;break;case"left":x=e.top,b=e.left,z=x,C=b-so;break;case"bottom":x=e.top,b=e.left,z=x+no,C=b;break;case"right":default:x=e.top,b=e.left,z=x,C=b+so}return!(C+g>oo||C<0)}function n(){if("circle"==lo.options.lensShape&&"lens"==lo.options.position){T=E=Math.max(T,E);var o=(T+2*Math.max(Z,L))/2;F.css({"-moz-border-radius":o,"-webkit-border-radius":o,"border-radius":o})}}function a(o,t,e,i){"lens"==lo.options.position?(W.css({top:-(t-x)*_+E/2,left:-(o-b)*D+T/2}),lo.options.bg&&(F.css({"background-image":"url("+W.attr("src")+")","background-repeat":"no-repeat","background-position":-(o-b)*D+T/2+"px "+(-(t-x)*_+E/2)+"px"}),e&&i&&F.css({"background-size":e+"px "+i+"px"}))):W.css({top:-q*_,left:-R*D})}function p(o,t){if(vo<-1&&(vo=-1),vo>1&&(vo=1),j<N)var e=j-(j-1)*vo,i=g*e,s=i/Q;else var e=N-(N-1)*vo,s=m*e,i=s*Q;ro&&G?(go=o,mo=t,wo=i,xo=s):(G||(bo=wo=i,zo=xo=s),D=i/u,_=s/v,T=g/D,E=m/_,n(),l(o,t),W.width(i),W.height(s),F.width(T),F.height(E),F.css({top:q-Z,left:R-L}),I.css({top:-q,left:-R}),a(o,t,i,s))}function r(){var o=Co,t=yo,e=ko,i=Mo,s=bo,p=zo;o+=(go-o)/lo.options.smoothLensMove,t+=(mo-t)/lo.options.smoothLensMove,e+=(go-e)/lo.options.smoothZoomMove,i+=(mo-i)/lo.options.smoothZoomMove,s+=(wo-s)/lo.options.smoothScale,p+=(xo-p)/lo.options.smoothScale,D=s/u,_=p/v,T=g/D,E=m/_,n(),l(o,t),W.width(s),W.height(p),F.width(T),F.height(E),F.css({top:q-Z,left:R-L}),I.css({top:-q,left:-R}),l(e,i),a(o,t,s,p),Co=o,yo=t,ko=e,Mo=i,bo=s,zo=p,G&&requestAnimFrame(r)}function l(o,t){o-=b,t-=x,R=o-T/2,q=t-E/2,"lens"!=lo.options.position&&(R<0&&(R=0),R>u-T&&(R=u-T),q<0&&(q=0),q>v-E&&(q=v-E))}function d(){void 0!==M&&M.remove(),void 0!==X&&X.remove(),void 0!==V&&V.remove()}function c(e,s){switch("fullscreen"==lo.options.position?(u=o(window).width(),v=o(window).height()):(u=t.width(),v=t.height()),Y.css({top:v/2-Y.height()/2,left:u/2-Y.width()/2}),w=lo.options.rootOutput||"fullscreen"==lo.options.position?t.offset():t.position(),w.top=Math.round(w.top),w.left=Math.round(w.left),lo.options.position){case"fullscreen":x=i().top,b=i().left,z=0,C=0;break;case"inside":x=w.top,b=w.left,z=0,C=0;break;case"top":x=w.top,b=w.left,z=x-v,C=b;break;case"left":x=w.top,b=w.left,z=x,C=b-u;break;case"bottom":x=w.top,b=w.left,z=x+v,C=b;break;case"right":default:x=w.top,b=w.left,z=x,C=b+u}x-=M.outerHeight()/2,b-=M.outerWidth()/2,"#"==lo.options.position.substr(0,1)?co=o(lo.options.position):co.length=0,0==co.length&&"inside"!=lo.options.position&&"fullscreen"!=lo.options.position?(lo.options.adaptive&&eo&&io||(eo=u,io=v),g="auto"==lo.options.zoomWidth?u:u/eo*lo.options.zoomWidth,m="auto"==lo.options.zoomHeight?v:u/io*lo.options.zoomHeight,z+=lo.options.Yoffset,C+=lo.options.Xoffset,X.css({width:g+"px",height:m+"px",top:z,left:C}),"lens"!=lo.options.position&&f.append(X)):"inside"==lo.options.position||"fullscreen"==lo.options.position?(g=u,m=v,X.css({width:g+"px",height:m+"px"}),M.append(X)):(g=co.width(),m=co.height(),lo.options.rootOutput?(z=co.offset().top,C=co.offset().left,f.append(X)):(z=co.position().top,C=co.position().left,co.parent().append(X)),z+=(co.outerHeight()-m-X.outerHeight())/2,C+=(co.outerWidth()-g-X.outerWidth())/2,X.css({width:g+"px",height:m+"px",top:z,left:C})),lo.options.title&&""!=Yo&&("inside"==lo.options.position||"lens"==lo.options.position||"fullscreen"==lo.options.position?(y=z,k=C,M.append(V)):(y=z+(X.outerHeight()-m)/2,k=C+(X.outerWidth()-g)/2,f.append(V)),V.css({width:g+"px",height:m+"px",top:y,left:k})),M.css({width:u+"px",height:v+"px",top:x,left:b}),O.css({width:u+"px",height:v+"px"}),lo.options.tint&&"inside"!=lo.options.position&&"fullscreen"!=lo.options.position?O.css("background-color",lo.options.tint):Oo&&O.css({"background-image":"url("+t.attr("src")+")","background-color":"#fff"}),Co=go=e,yo=mo=s,H=new Image;var n="";switch(Xo&&(n="?r="+(new Date).getTime()),H.src=t.attr("xoriginal")+n,W=o(H),W.css("position","absolute"),H=new Image,H.src=t.attr("src"),I=o(H),I.css("position","absolute"),I.width(u),lo.options.position){case"fullscreen":case"inside":X.append(W);break;case"lens":F.append(W),lo.options.bg&&W.css({display:"none"});break;default:X.append(W),F.append(I)}}function h(o){var t=o.attr("title"),e=o.attr("xtitle");return e||(t||"")}this.xzoom=!0;var f,u,v,g,m,w,x,b,z,C,y,k,M,O,X,Y,S,A,H,W,F,I,T,E,R,q,L,Z,D,_,j,N,Q,$,B,G,J,K,P,U,V,oo,to,eo,io,so,no,ao,po,ro,lo=this,co={},ho=(new Array,new Array),fo=0,uo=0,vo=0,go=0,mo=0,wo=0,xo=0,bo=0,zo=0,Co=0,yo=0,ko=0,Mo=0,Oo=detect_old_ie(),Xo=/MSIE (\d+\.\d+);/.test(navigator.userAgent),Yo="";this.adaptive=function(){0!=eo&&0!=io||(t.css("width",""),t.css("height",""),eo=t.width(),io=t.height()),d(),oo=o(window).width(),to=o(window).height(),so=t.width(),no=t.height();var e=!1;(eo>oo||io>to)&&(e=!0),so>eo&&(so=eo),no>io&&(no=io),e?t.width("100%"):0!=eo&&t.width(eo),"fullscreen"!=ao&&(s()?lo.options.position=ao:lo.options.position=lo.options.mposition),lo.options.lensReverse||(po=lo.options.adaptiveReverse&&lo.options.position==lo.options.mposition)},this.xscroll=function(o){if(o.preventDefault(),o.xscale){var t=o.pageX||o.originalEvent.pageX,e=o.pageY||o.originalEvent.pageY;vo=o.xscale,p(t,e)}else{var i=-o.originalEvent.detail||o.originalEvent.wheelDelta||o.xdelta,t=o.pageX||o.originalEvent.pageX,e=o.pageY||o.originalEvent.pageY;Oo&&(t=J,e=K),i=i>0?-.05:.05,vo+=i,p(t,e)}},this.openzoom=function(t){switch(lo.options.adaptive&&lo.adaptive(),vo=lo.options.defaultScale,G=!1,M=o("<div></div>"),""!=lo.options.sourceClass&&M.addClass(lo.options.sourceClass),M.css("position","absolute"),Y=o("<div></div>"),""!=lo.options.loadingClass&&Y.addClass(lo.options.loadingClass),Y.css("position","absolute"),O=o('<div style="position: absolute; top: 0; left: 0;"></div>'),M.append(Y),X=o("<div></div>"),""!=lo.options.zoomClass&&"fullscreen"!=lo.options.position&&X.addClass(lo.options.zoomClass),X.css({position:"absolute",overflow:"hidden",opacity:1}),lo.options.borderColor&&X.css("border-color",lo.options.borderColor),lo.options.title&&""!=Yo&&(V=o("<div></div>"),U=o("<div></div>"),V.css({position:"absolute",opacity:1}),lo.options.titleClass&&U.addClass(lo.options.titleClass),U.html("<span>"+Yo+"</span>"),V.append(U),lo.options.fadeIn&&V.css({opacity:0})),F=o("<div></div>"),""!=lo.options.lensClass&&F.addClass(lo.options.lensClass),"circle"==lo.options.lensShape&&"lens"==lo.options.position&&F.addClass("rounded"),F.css({position:"absolute",overflow:"hidden"}),lo.options.lens&&(lenstint=o("<div></div>"),lenstint.css({position:"absolute",background:lo.options.lens,opacity:lo.options.lensOpacity,width:"100%",height:"100%",top:0,left:0,"z-index":9999}),F.append(lenstint)),"inside"!=lo.options.position&&"fullscreen"!=lo.options.position?((lo.options.tint||Oo)&&M.append(O),lo.options.fadeIn&&(O.css({opacity:0}),F.css({opacity:0}),X.css({opacity:0})),f.append(M)):(lo.options.fadeIn&&X.css({opacity:0}),f.append(M)),lo.eventleave(M),c(t.pageX,t.pageY),lo.options.position){case"inside":z-=(X.outerHeight()-X.height())/2,C-=(X.outerWidth()-X.width())/2;break;case"top":z-=X.outerHeight()-X.height(),C-=(X.outerWidth()-X.width())/2;break;case"left":z-=(X.outerHeight()-X.height())/2,C-=X.outerWidth()-X.width();break;case"bottom":C-=(X.outerWidth()-X.width())/2;break;case"right":z-=(X.outerHeight()-X.height())/2}X.css({top:z,left:C}),W.xon("load",function(){Y.remove(),lo.options.scroll&&lo.eventscroll(M),"inside"!=lo.options.position&&"fullscreen"!=lo.options.position?(M.append(F),lo.options.fadeIn?(O.fadeTo(300,lo.options.tintOpacity),F.fadeTo(300,1),X.fadeTo(300,1)):(O.css({opacity:lo.options.tintOpacity}),F.css({opacity:1}),X.css({opacity:1}))):lo.options.fadeIn?X.fadeTo(300,1):X.css({opacity:1}),lo.options.title&&""!=Yo&&(lo.options.fadeIn?V.fadeTo(300,1):V.css({opacity:1})),$=W.width(),B=W.height(),lo.options.adaptive&&(u<eo||v<io)&&(I.width(u),I.height(v),$*=u/eo,B*=v/io,W.width($),W.height(B)),bo=wo=$,zo=xo=B,Q=$/B,j=$/g,N=B/m;var o,e=["padding-","border-"];Z=L=0;for(var i=0;i<e.length;i++)o=parseFloat(F.css(e[i]+"top-width")),Z+=o!==o?0:o,o=parseFloat(F.css(e[i]+"bottom-width")),Z+=o!==o?0:o,o=parseFloat(F.css(e[i]+"left-width")),L+=o!==o?0:o,o=parseFloat(F.css(e[i]+"right-width")),L+=o!==o?0:o;Z/=2,L/=2,p(t.pageX,t.pageY),ro&&!lo.options.bg&&(G=!0,requestAnimFrame(r)),lo.eventmove(M),lo.eventclick(M)})},this.movezoom=function(o){Oo&&(J=o.pageX,K=o.pageY);var t=o.pageX-b,e=o.pageY-x;po&&(o.pageX-=2*(t-u/2),o.pageY-=2*(e-v/2)),(t<0||t>u||e<0||e>v)&&M.trigger("mouseleave"),ro&&!lo.options.bg?(go=o.pageX,mo=o.pageY):(n(),l(o.pageX,o.pageY),F.css({top:q-Z,left:R-L}),I.css({top:-q,left:-R}),a(o.pageX,o.pageY,0,0))},this.eventdefault=function(){lo.eventopen=function(o){o.xon("mouseenter",lo.openzoom)},lo.eventleave=function(o){o.xon("mouseleave",lo.closezoom)},lo.eventmove=function(o){o.xon("mousemove",lo.movezoom)},lo.eventscroll=function(o){o.xon("mousewheel DOMMouseScroll",lo.xscroll)},lo.eventclick=function(o){o.xon("click",function(o){t.trigger("click")})}},this.eventunbind=function(){t.xoff("mouseenter"),lo.eventopen=function(o){},lo.eventleave=function(o){},lo.eventmove=function(o){},lo.eventscroll=function(o){},lo.eventclick=function(o){}},this.init=function(e){lo.options=o.extend({},o.fn.xzoom.defaults,e),f=lo.options.rootOutput?o("body"):t.parent(),ao=lo.options.position,po=lo.options.lensReverse&&"inside"==lo.options.position,lo.options.smoothZoomMove<0&&(lo.options.smoothZoomMove=0),lo.options.smoothLensMove<0&&(lo.options.smoothLensMove=0),lo.options.smoothScale<0&&(lo.options.smoothScale=0),ro=lo.options.smoothZoomMove&&lo.options.smoothLensMove&&lo.options.smoothScale,lo.options.adaptive&&o(window).xon("load",function(){eo=t.width(),io=t.height(),lo.adaptive(),o(window).resize(lo.adaptive)}),lo.eventdefault(),lo.eventopen(t)},this.destroy=function(){lo.eventunbind(),delete lo},this.closezoom=function(){G=!1,lo.options.fadeOut?(lo.options.title&&""!=Yo&&V.fadeOut(299),"inside"!=lo.options.position||"fullscreen"!=lo.options.position?(X.fadeOut(299),M.fadeOut(300,function(){d()})):M.fadeOut(300,function(){d()})):d()},this.gallery=function(){var o,t=new Array,e=0;for(o=uo;o<ho.length;o++)t[e]=ho[o],e++;for(o=0;o<uo;o++)t[e]=ho[o],e++;return{index:uo,ogallery:ho,cgallery:t}},this.xappend=function(e){function i(i){d(),i.preventDefault(),lo.options.activeClass&&(P.removeClass(lo.options.activeClass),P=e,P.addClass(lo.options.activeClass)),uo=o(this).data("xindex"),lo.options.fadeTrans&&(A=new Image,A.src=t.attr("src"),S=o(A),S.css({position:"absolute",top:t.offset().top,left:t.offset().left,width:t.width(),height:t.height()}),o(document.body).append(S),S.fadeOut(200,function(){S.remove()}));var s,n=e.attr("data-image-large-src");s=e.attr("xpreview")?e.attr("xpreview"):e.attr("data-image-large-src"),Yo=h(e),e.attr("title")&&t.attr("title",e.attr("title")),t.attr("xoriginal",n),t.attr("src",s)}ho[fo]=e.attr("data-image-large-src"),e.data("xindex",fo),0==fo&&lo.options.activeClass&&(P=e,P.addClass(lo.options.activeClass)),0==fo&&lo.options.title&&(Yo=h(e)),fo++,lo.options.hover&&e.xon("mouseenter",e,i),e.xon("click",e,i)},this.init(e)}o.fn.xon=o.fn.on||o.fn.bind,o.fn.xoff=o.fn.off||o.fn.bind,o.fn.xzoom=function(e){var i,s;if(this.selector){var n=this.selector.split(",");for(var a in n)n[a]=o.trim(n[a]);this.each(function(a){if(1==n.length)if(0==a){if(i=o(this),void 0!==i.data("xzoom"))return i.data("xzoom");i.x=new t(i,e)}else void 0!==i.x&&(s=o(this),i.x.xappend(s));else if(o(this).is(n[0])&&0==a){if(i=o(this),void 0!==i.data("xzoom"))return i.data("xzoom");i.x=new t(i,e)}else void 0===i.x||o(this).is(n[0])||(s=o(this),i.x.xappend(s))})}else this.each(function(n){if(0==n){if(i=o(this),void 0!==i.data("xzoom"))return i.data("xzoom");i.x=new t(i,e)}else void 0!==i.x&&(s=o(this),i.x.xappend(s))});return void 0!==i&&(i.data("xzoom",i.x),o(i).trigger("xzoom_ready"),i.x)},o.fn.xzoom.defaults={position:"right",mposition:"inside",rootOutput:!0,Xoffset:0,Yoffset:0,fadeIn:!1,fadeTrans:!1,fadeOut:!1,smoothZoomMove:3,smoothLensMove:1,smoothScale:6,defaultScale:0,scroll:!1,tint:!1,tintOpacity:.5,lens:!1,lensOpacity:.5,lensShape:"box",zoomWidth:"auto",zoomHeight:"auto",sourceClass:"xzoom-source",loadingClass:"xzoom-loading",lensClass:"xzoom-lens",zoomClass:"xzoom-preview",activeClass:"xactive",hover:!1,adaptive:!0,lensReverse:!1,adaptiveReverse:!1,title:!1,titleClass:"xzoom-caption",bg:!1,borderColor:!1}}(jQuery);