HTML
<div class="magnify-gallery"><div class="image-set"><div class="full" style="max-width:500px"><a data-magnify="gallery" data-caption="A New and Accurat Map of the World (1662) - John Speed" href="https://framework.sabali.co/demo/magnify/a-new-and-accurat-map-of-the-world-john-speed-1662-large.jpg"><img src="https://framework.sabali.co/demo/magnify/a-new-and-accurat-map-of-the-world-john-speed-1662-small.jpg" alt="A New and Accurat Map of the World (1662) - John Speed"></a></div><div class="clear"></div></div></div><div class="clear"></div><p><cite>Maps of the World (c. 1662) - John Speed</cite></p><script>window.addEventListener('DOMContentLoaded', function() { $('[data-magnify]').magnify({ fixedContent: !1 })})</script>
CSS
/* --- Magnifier CSS -- */.magnify-modal {position: absolute;z-index: 1090;width: 320px;height: 320px;background-color: #111;cursor: default;}.magnify-maximize {position: fixed;top: 0;left: 0;width: 100%;height: 100%;}.magnify-toolbar {font-size: 0;}.magnify-header {position: relative;z-index: 2;height: 40px;color: #fff;}.magnify-header .magnify-toolbar {float: right;}.magnify-title {padding: 13px 10px;font-size: 14px;line-height: 1;white-space: nowrap;text-overflow: ellipsis;user-select: none;overflow: hidden;}.magnify-stage {position: absolute;top: 40px;right: 10px;bottom: 40px;left: 10px;z-index: 1;border: 1px solid #ccc;overflow: hidden;}.magnify-stage.stage-ready {text-align: center;}.magnify-image {position: relative;display: inline-block;}.magnify-image.image-ready {max-width: 100%;max-height: 100%;}.magnify-footer {position: absolute;bottom: 0;z-index: 2;width: 100%;height: 40px;color: #fff;text-align: center;}.magnify-footer .magnify-toolbar {display: inline-block;}.magnify-button {display: inline-block;width: 40px;height: 40px;box-sizing: border-box;margin: 0;padding: 10px;font-size: 14px;color: #ccc;line-height: 1;text-align: center;background: none;border-width: 0;border-radius: 0;cursor: pointer;outline: none;}.magnify-button:hover {color: #fff;}.magnify-button svg {display: inline-block;font-size: inherit;width: 1em;height: 1em;overflow: visible;vertical-align: -.125em;}.magnify-button-close:hover {background-color: #ff4545;}.magnify-button-maximize:hover {background-color: #525252;}.magnify-button-minimize:hover {background-color: #525252;}.magnify-loader {position: absolute;top: 0px;left: 0px;right: 0px;bottom: 0px;z-index: 2;text-align: center;background-color: rgba(0, 0, 0, 0.3);color: #333;}.magnify-loader::before {content: '';display: inline-block;position: relative;width: 36px;height: 36px;box-sizing: border-box;border-width: 5px;border-style: solid;border-color: rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.5) rgba(255, 255, 255, 0.5);border-radius: 100%;animation: magnifyLoading 1s infinite linear;}.magnify-loader::after {content: '';display: inline-block;width: 0;height: 100%;vertical-align: middle;overflow: hidden;}.magnify-resizable-handle {position: absolute;z-index: 10;}.magnify-resizable-handle-e {top: 0;right: -5px;bottom: 0;left: auto;width: 10px;cursor: e-resize;}.magnify-resizable-handle-s {top: auto;right: 0;bottom: -5px;left: 0;height: 10px;cursor: s-resize;}.magnify-resizable-handle-w {top: 0;right: auto;bottom: 0;left: -5px;width: 10px;cursor: w-resize;}.magnify-resizable-handle-n {top: -5px;right: 0;bottom: auto;left: 0;height: 10px;cursor: n-resize;}.magnify-resizable-handle-se {top: auto;right: -5px;bottom: -5px;left: auto;width: 10px;height: 10px;cursor: se-resize;}.magnify-resizable-handle-sw {top: auto;right: auto;bottom: -5px;left: -5px;width: 10px;height: 10px;cursor: sw-resize;}.magnify-resizable-handle-nw {top: -5px;right: auto;bottom: auto;left: -5px;width: 10px;height: 10px;cursor: nw-resize;}.magnify-resizable-handle-ne {top: -5px;right: -5px;bottom: auto;left: auto;width: 10px;height: 10px;cursor: ne-resize;}.magnify-gallery {display: block;width: 100%;overflow: hidden;padding-top: 15px;padding-bottom: 15px;border-radius: 3px;}.magnify-gallery img {display: inline-block;max-width: 100%;margin-top: 9px;margin-right: 13px;margin-bottom: 9px;border-radius: 3px;}
Javascript
window.addEventListener("DOMContentLoaded",function(){!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t("object"==typeof exports?require("jquery"):jQuery)}(function(t){function i(i){return t(i).attr("data-src")?t(i).attr("data-src"):t(i).attr("href")}function e(t){var i=t.match(/\d+/g);return parseFloat(i[0])}function a(t,i,e,a){var s=a?t.h:t.w,o=a?t.w:t.h;(o>i.h||s>i.w)&&e.addClass("is-grab"),o<=i.h&&s<=i.w&&e.removeClass("is-grab")}function s(){return !!("ontouchstart" in window||window.DocumentTouch&&document instanceof DocumentTouch)}function o(){return"Microsoft Internet Explorer"==navigator.appName&&navigator.appVersion.indexOf("MSIE 8.0")>0||"Microsoft Internet Explorer"==navigator.appName&&navigator.appVersion.indexOf("MSIE 7.0")>0}var n=t(window),h=t(document),r=s()?"touchstart":"mousedown",l=s()?"touchmove":"mousemove",g=s()?"touchend":"mouseup",c=".magnify",m={draggable:!0,resizable:!0,movable:!0,keyboard:!0,title:!0,modalWidth:320,modalHeight:320,fixedContent:!0,fixedModalSize:!1,initMaximized:!1,gapThreshold:0.02,ratioThreshold:0.1,minRatio:0.05,maxRatio:16,headToolbar:["maximize","close"],footToolbar:["zoomIn","zoomOut","prev","fullscreen","next","actualSize","rotateRight"],icons:{minimize:'<svg viewBox="0 0 1024 1024" class="svg-inline-icon"> <path fill="currentColor" d="M1024 749.714v109.714c0 50.286 -41.143 91.429-91.429 91.429h-841.143c-50.286 0-91.429-41.143 -91.429-91.429v-109.714c0-50.286 41.143-91.429 91.429-91.429 h841.143c50.286 0 91.429 41.143 91.429 91.429z"></path> </svg>',maximize:'<svg viewBox="0 0 1024 1024" class="svg-inline-icon"> <path fill="currentColor" d="M146.286 804.571h731.429v-438.857 h-731.429v438.857zM1024 164.571v694.857c0 50.286-41.143 91.429 -91.429 91.429h-841.143c-50.286 0-91.429-41.143-91.429-91.429v -694.857c0-50.286 41.143-91.429 91.429-91.429h841.143c50.286 0 91.429 41.143 91.429 91.429z"></path> </svg>',close:'<svg viewBox="0 0 804.5714285714286 1024" class="svg-inline-icon"> <path fill="currentColor" d="M741.714 755.429c0 14.286-5.714 28.571-16 38.857l-77.714 77.714c-10.286 10.286-24.571 16-38.857 16 s-28.571-5.714-38.857-16l-168-168-168 168c-10.286 10.286-24.571 16 -38.857 16s-28.571-5.714-38.857-16l-77.714-77.714c-10.286-10.286 -16-24.571-16-38.857s5.714-28.571 16-38.857l168-168-168-168c-10.286 -10.286-16-24.571-16-38.857s5.714-28.571 16-38.857l77.714-77.714 c10.286-10.286 24.571-16 38.857-16s28.571 5.714 38.857 16l168 168 168-168c10.286-10.286 24.571-16 38.857-16s28.571 5.714 38.857 16l77.714 77.714c10.286 10.286 16 24.571 16 38.857s-5.714 28.571 -16 38.857l-168 168 168 168c10.286 10.286 16 24.571 16 38.857z"></path> </svg>',zoomIn:'<svg viewBox="0 0 950.8571428571428 1024" class="svg-inline-icon"> <path fill="currentColor" d="M585.143 457.143v36.571c0 9.714-8.571 18.286-18.286 18.286h-128v128c0 9.714-8.571 18.286-18.286 18.286 h-36.571c-9.714 0-18.286-8.571-18.286-18.286v-128h-128c-9.714 0 -18.286-8.571-18.286-18.286v-36.571c0-9.714 8.571-18.286 18.286 -18.286h128v-128c0-9.714 8.571-18.286 18.286-18.286h36.571c9.714 0 18.286 8.571 18.286 18.286v128h128c9.714 0 18.286 8.571 18.286 18.286zM658.286 475.429c0-141.143-114.857-256-256-256s-256 114.857 -256 256 114.857 256 256 256 256-114.857 256-256zM950.857 950.857 c0 40.571-32.571 73.143-73.143 73.143-19.429 0-38.286-8-51.429 -21.714l-196-195.429c-66.857 46.286-146.857 70.857-228 70.857 -222.286 0-402.286-180-402.286-402.286s180-402.286 402.286-402.286 402.286 180 402.286 402.286c0 81.143-24.571 161.143-70.857 228 l196 196c13.143 13.143 21.143 32 21.143 51.429z"></path> </svg>',zoomOut:'<svg viewBox="0 0 950.8571428571428 1024" class="svg-inline-icon"> <path fill="currentColor" d="M585.143 457.143v36.571c0 9.714-8.571 18.286-18.286 18.286h-329.143c-9.714 0-18.286-8.571-18.286-18.286 v-36.571c0-9.714 8.571-18.286 18.286-18.286h329.143c9.714 0 18.286 8.571 18.286 18.286zM658.286 475.429c0-141.143-114.857-256-256-256 s-256 114.857-256 256 114.857 256 256 256 256-114.857 256-256z M950.857 950.857c0 40.571-32.571 73.143-73.143 73.143-19.429 0 -38.286-8-51.429-21.714l-196-195.429c-66.857 46.286-146.857 70.857 -228 70.857-222.286 0-402.286-180-402.286-402.286s180-402.286 402.286-402.286 402.286 180 402.286 402.286c0 81.143-24.571 161.143 -70.857 228l196 196c13.143 13.143 21.143 32 21.143 51.429z"></path> </svg>',prev:'<svg viewBox="0 0 914.2857142857142 1024" class="svg-inline-icon"> <path fill="currentColor" d="M877.714 512v73.143c0 38.857-25.714 73.143-66.857 73.143h-402.286l167.429 168c13.714 13.143 21.714 32 21.714 51.429s-8 38.286-21.714 51.429l-42.857 43.429c-13.143 13.143 -32 21.143-51.429 21.143s-38.286-8-52-21.143l-372-372.571c-13.143 -13.143-21.143-32-21.143-51.429s8-38.286 21.143-52l372-371.429c13.714 -13.714 32.571-21.714 52-21.714s37.714 8 51.429 21.714l42.857 42.286 c13.714 13.714 21.714 32.571 21.714 52s-8 38.286-21.714 52l-167.429 167.429h402.286c41.143 0 66.857 34.286 66.857 73.143z"></path> </svg>',next:'<svg viewBox="0 0 841.1428571428571 1024" class="svg-inline-icon"> <path fill="currentColor" d="M841.143 548.571c0 19.429-7.429 38.286 -21.143 52l-372 372c-13.714 13.143-32.571 21.143-52 21.143s-37.714 -8-51.429-21.143l-42.857-42.857c-13.714-13.714-21.714-32.571-21.714 -52s8-38.286 21.714-52l167.429-167.429h-402.286c-41.143 0-66.857 -34.286-66.857-73.143v-73.143c0-38.857 25.714-73.143 66.857-73.143 h402.286l-167.429-168c-13.714-13.143-21.714-32-21.714-51.429s8 -38.286 21.714-51.429l42.857-42.857c13.714-13.714 32-21.714 51.429 -21.714s38.286 8 52 21.714l372 372c13.714 13.143 21.143 32 21.143 51.429z"></path> </svg>',fullscreen:'<svg viewBox="0 0 1097.142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M365.714 329.143c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143 -109.714 109.714-109.714 109.714 49.143 109.714 109.714z M950.857 548.571v256h-804.571v-109.714l182.857-182.857 91.429 91.429 292.571-292.571zM1005.714 146.286h-914.286c-9.714 0 -18.286 8.571-18.286 18.286v694.857c0 9.714 8.571 18.286 18.286 18.286h914.286c9.714 0 18.286-8.571 18.286-18.286 v-694.857c0-9.714-8.571-18.286-18.286-18.286zM1097.143 164.571 v694.857c0 50.286-41.143 91.429-91.429 91.429h-914.286c-50.286 0-91.429-41.143-91.429-91.429v-694.857c0-50.286 41.143-91.429 91.429-91.429h914.286c50.286 0 91.429 41.143 91.429 91.429z"></path> </svg>',actualSize:'<svg viewBox="0 0 877.7142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M733.143 309.143l-202.857 202.857 202.857 202.857 82.286-82.286c10.286-10.857 26.286-13.714 40-8 13.143 5.714 22.286 18.857 22.286 33.714v256c0 20-16.571 36.571 -36.571 36.571h-256c-14.857 0-28-9.143-33.714-22.857-5.714 -13.143-2.857-29.143 8-39.429l82.286-82.286-202.857-202.857 -202.857 202.857 82.286 82.286c10.857 10.286 13.714 26.286 8 39.429-5.714 13.714-18.857 22.857-33.714 22.857h-256c-20 0 -36.571-16.571-36.571-36.571v-256c0-14.857 9.143-28 22.857 -33.714 13.143-5.714 29.143-2.857 39.429 8l82.286 82.286 202.857-202.857-202.857-202.857-82.286 82.286c-6.857 6.857 -16 10.857-25.714 10.857-4.571 0-9.714-1.143-13.714-2.857 -13.714-5.714-22.857-18.857-22.857-33.714v-256c0-20 16.571 -36.571 36.571-36.571h256c14.857 0 28 9.143 33.714 22.857 5.714 13.143 2.857 29.143-8 39.429l-82.286 82.286 202.857 202.857 202.857-202.857-82.286-82.286c-10.857-10.286-13.714 -26.286-8-39.429 5.714-13.714 18.857-22.857 33.714-22.857h256 c20 0 36.571 16.571 36.571 36.571v256c0 14.857-9.143 28-22.286 33.714-4.571 1.714-9.714 2.857-14.286 2.857-9.714 0-18.857-4 -25.714-10.857z"></path> </svg>',rotateLeft:'<svg viewBox="0 0 877.7142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M877.714 512c0 241.714-197.143 438.857-438.857 438.857-130.857 0-254.286-57.714-337.714-158.286 -5.714-7.429-5.143-18.286 1.143-24.571l78.286-78.857c4-3.429 9.143-5.143 14.286-5.143 5.143 0.571 10.286 2.857 13.143 6.857 56 72.571 140 113.714 230.857 113.714 161.143 0 292.571-131.429 292.571-292.571s-131.429-292.571-292.571-292.571c-74.857 0 -145.714 28.571-198.857 78.286l78.286 78.857c10.857 10.286 13.714 26.286 8 39.429-5.714 13.714-18.857 22.857-33.714 22.857 h-256c-20 0-36.571-16.571-36.571-36.571v-256c0-14.857 9.143-28 22.857-33.714 13.143-5.714 29.143-2.857 39.429 8l74.286 73.714 c80.571-76 189.714-121.143 302.286-121.143 241.714 0 438.857 197.143 438.857 438.857z"></path> </svg>',rotateRight:'<svg viewBox="0 0 877.7142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M877.714 146.286v256c0 20-16.571 36.571-36.571 36.571h-256c-14.857 0-28-9.143-33.714-22.857 -5.714-13.143-2.857-29.143 8-39.429l78.857-78.857c-53.714 -49.714-124.571-78.286-199.429-78.286-161.143 0-292.571 131.429-292.571 292.571s131.429 292.571 292.571 292.571 c90.857 0 174.857-41.143 230.857-113.714 2.857-4 8-6.286 13.143-6.857 5.143 0 10.286 1.714 14.286 5.143l78.286 78.857 c6.857 6.286 6.857 17.143 1.143 24.571-83.429 100.571-206.857 158.286-337.714 158.286-241.714 0-438.857-197.143-438.857 -438.857s197.143-438.857 438.857-438.857c112.571 0 221.714 45.143 302.286 121.143l74.286-73.714c10.286-10.857 26.286 -13.714 40-8 13.143 5.714 22.286 18.857 22.286 33.714z"></path> </svg>'},i18n:{minimize:"minimize",maximize:"maximize",close:"close",zoomIn:"zoom-in(+)",zoomOut:"zoom-out(-)",prev:"prev(?)",next:"next(?)",fullscreen:"fullscreen",actualSize:"actual-size(Ctrl+Alt+0)",rotateLeft:"rotate-left(Ctrl+,)",rotateRight:"rotate-right(Ctrl+.)"},multiInstances:!0,initEvent:"click",initAnimation:!0,fixedModalPos:!1,zIndex:1090,dragHandle:!1,callbacks:{beforeOpen:t.noop,opened:t.noop,beforeClose:t.noop,closed:t.noop,beforeChange:t.noop,changed:t.noop}},f={isMoving:!1,isResizing:!1,zIndex:m.zIndex},d=null,p=function(i,e){this.options=t.extend(!0,{},m,e),e&&t.isArray(e.footToolbar)&&(this.options.footToolbar=e.footToolbar),e&&t.isArray(e.headToolbar)&&(this.options.headToolbar=e.headToolbar),this.$el=t(i),this.isOpened=!1,this.isMaximized=!1,this.isRotated=!1,this.rotateAngle=0,this.isDoResize=!1,this.imageData={},this.modalData={width:null,height:null,left:null,top:null},this.init(i,this.options)};p.prototype={init:function(e,a){var s=i(e);this.groupName=null;var n=t(e).attr("data-group"),r=h.find('[data-group="'+n+'"]');void 0!==n?(this.groupName=n,this.getImgGroup(r,s)):this.getImgGroup(d.not("[data-group]"),s),this.open(),this.loadImg(s),a.draggable&&this.draggable(this.$magnify,this.dragHandle,".magnify-button"),a.movable&&this.movable(this.$stage,o()?".magnify-image":this.$image),a.resizable&&this.resizable(this.$magnify,this.$stage,o()?".magnify-image":this.$image,a.modalWidth,a.modalHeight)},_creatBtns:function(i,e){var a="";return t.each(i,function(t,i){a+=e[i]}),a},_creatTitle:function(){return this.options.title?'<div class="magnify-title"></div>':""},creatDOM:function(){var t={minimize:'<button class="magnify-button magnify-button-minimize" title="'+this.options.i18n.minimize+'">'+this.options.icons.minimize+"</button>",maximize:'<button class="magnify-button magnify-button-maximize" title="'+this.options.i18n.maximize+'">'+this.options.icons.maximize+"</button>",close:'<button class="magnify-button magnify-button-close" title="'+this.options.i18n.close+'">'+this.options.icons.close+"</button>",zoomIn:'<button class="magnify-button magnify-button-zoom-in" title="'+this.options.i18n.zoomIn+'">'+this.options.icons.zoomIn+"</button>",zoomOut:'<button class="magnify-button magnify-button-zoom-out" title="'+this.options.i18n.zoomOut+'">'+this.options.icons.zoomOut+"</button>",prev:'<button class="magnify-button magnify-button-prev" title="'+this.options.i18n.prev+'">'+this.options.icons.prev+"</button>",next:'<button class="magnify-button magnify-button-next" title="'+this.options.i18n.next+'">'+this.options.icons.next+"</button>",fullscreen:'<button class="magnify-button magnify-button-fullscreen" title="'+this.options.i18n.fullscreen+'">'+this.options.icons.fullscreen+"</button>",actualSize:'<button class="magnify-button magnify-button-actual-size" title="'+this.options.i18n.actualSize+'">'+this.options.icons.actualSize+"</button>",rotateLeft:'<button class="magnify-button magnify-button-rotate-left" title="'+this.options.i18n.rotateLeft+'">'+this.options.icons.rotateLeft+"</button>",rotateRight:'<button class="magnify-button magnify-button-rotate-right" title="'+this.options.i18n.rotateRight+'">'+this.options.icons.rotateRight+"</button>"};return'<div class="magnify-modal"> <div class="magnify-header"> <div class="magnify-toolbar magnify-head-toolbar">'+this._creatBtns(this.options.headToolbar,t)+" </div>"+this._creatTitle()+' </div> <div class="magnify-stage"> <img class="magnify-image" src="" alt="" /> </div> <div class="magnify-footer"> <div class="magnify-toolbar magnify-foot-toolbar">'+this._creatBtns(this.options.footToolbar,t)+" </div> </div> </div>"},build:function(){var i=this.creatDOM(),e=t(i);this.$magnify=e,this.$header=e.find(".magnify-header"),this.$headToolbar=e.find(".magnify-head-toolbar"),this.$footer=e.find(".magnify-footer"),this.$footToolbar=e.find(".magnify-foot-toolbar"),this.$stage=e.find(".magnify-stage"),this.$title=e.find(".magnify-title"),this.$image=e.find(".magnify-image"),this.$close=e.find(".magnify-button-close"),this.$maximize=e.find(".magnify-button-maximize"),this.$minimize=e.find(".magnify-button-minimize"),this.$zoomIn=e.find(".magnify-button-zoom-in"),this.$zoomOut=e.find(".magnify-button-zoom-out"),this.$actualSize=e.find(".magnify-button-actual-size"),this.$fullscreen=e.find(".magnify-button-fullscreen"),this.$rotateLeft=e.find(".magnify-button-rotate-left"),this.$rotateRight=e.find(".magnify-button-rotate-right"),this.$prev=e.find(".magnify-button-prev"),this.$next=e.find(".magnify-button-next"),this.$stage.addClass("stage-ready"),this.$image.addClass("image-ready"),this.$magnify.css("z-index",f.zIndex),this.options.dragHandle&&".magnify-modal"!==this.options.dragHandle?this.dragHandle=this.$magnify.find(this.options.dragHandle):this.dragHandle=this.$magnify},open:function(){if(this.options.multiInstances||t(".magnify-modal").eq(0).remove(),!t(".magnify-modal").length&&this.options.fixedContent&&(t("html").css({overflow:"hidden"}),document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight))){var i=function(){var t=document.createElement("div");t.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(t);var i=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),i}();i&&t("html").css({"padding-right":i})}this.build(),this._triggerHook("beforeOpen",this.$el),t("body").append(this.$magnify),this.addEvents(),this.setModalPos(this.$magnify),this._triggerHook("opened",this.$el)},close:function(i){this._triggerHook("beforeClose",this.$el),this.$magnify.remove(),this.isOpened=!1,this.isMaximized=!1,this.isRotated=!1,this.rotateAngle=0;var e=!t(".magnify-modal").length;e&&this.options.fixedContent&&t("html").css({overflow:"","padding-right":""}),e&&this.options.multiInstances&&(f.zIndex=this.options.zIndex),t(".magnify-modal").length||(h.off("keydown.magnify"),n.off("resize.magnify")),this._triggerHook("closed",this.$el)},setModalPos:function(t){var i=n.width(),e=n.height(),a=h.scrollLeft(),s=h.scrollTop(),o=this.options.modalWidth,r=this.options.modalHeight;this.options.initMaximized?(t.addClass("magnify-maximize"),t.css({width:"100%",height:"100%",left:0,top:0}),this.isOpened=!0,this.isMaximized=!0):t.css({width:o,height:r,left:(i-o)/2+a+"px",top:(e-r)/2+s+"px"})},setModalSize:function(t){var i=this,a=n.width(),s=n.height(),o=h.scrollLeft(),r=h.scrollTop(),l={left:this.$stage.css("left"),right:this.$stage.css("right"),top:this.$stage.css("top"),bottom:this.$stage.css("bottom"),borderLeft:this.$stage.css("border-left-width"),borderRight:this.$stage.css("border-right-width"),borderTop:this.$stage.css("border-top-width"),borderBottom:this.$stage.css("border-bottom-width")},g=t.width+e(l.left)+e(l.right)+e(l.borderLeft)+e(l.borderRight),c=t.height+e(l.top)+e(l.bottom)+e(l.borderTop)+e(l.borderBottom),m=(this.options.gapThreshold>0?this.options.gapThreshold:0)+1,f=Math.min(a/(g*m),s/(c*m),1),d=Math.max(g*f,this.options.modalWidth),p=Math.max(c*f,this.options.modalHeight),u={width:(d=this.options.fixedModalSize?this.options.modalWidth:Math.round(d))+"px",height:(p=this.options.fixedModalSize?this.options.modalHeight:Math.round(p))+"px",left:(a-d)/2+o+"px",top:(s-p)/2+r+"px"};this.options.initAnimation?this.$magnify.animate(u,function(){i.setImageSize(t)}):(this.$magnify.css(u),this.setImageSize(t)),this.isOpened=!0},getImageScaleToStage:function(t,i){return this.isRotated?Math.min(t/this.img.height,i/this.img.width,1):Math.min(t/this.img.width,i/this.img.height,1)},setImageSize:function(i){var e=o()?this.$stage.find(".magnify-image"):this.$image,s={w:this.$stage.width(),h:this.$stage.height()},n=this.getImageScaleToStage(s.w,s.h);e.css({width:Math.ceil(i.width*n)+"px",height:Math.ceil(i.height*n)+"px",left:(s.w-Math.ceil(i.width*n))/2+"px",top:(s.h-Math.ceil(i.height*n))/2+"px"}),o()&&e.find("group").css({width:Math.floor(i.width*n)+"px",height:Math.floor(i.height*n)+"px"}),t.extend(this.imageData,{initWidth:i.width*n,initHeight:i.height*n,initLeft:(s.w-i.width*n)/2,initTop:(s.h-i.height*n)/2,width:i.width*n,height:i.height*n,left:(s.w-i.width*n)/2,top:(s.h-i.height*n)/2}),a({w:e.width(),h:e.height()},{w:this.$stage.width(),h:this.$stage.height()},this.$stage,this.isRotated),this.$magnify.find(".magnify-loader").remove(),this.options.initAnimation&&e.fadeIn()},loadImg:function(t){var i=this;this.$magnify.append('<div class="magnify-loader"></div>'),this.options.initAnimation&&this.$image.hide(),o()?this.$stage.html('<img class="magnify-image" id="magnify-image" src="'+t+'" alt="" />'):this.$image.attr("src",t),function(t,i,e){var a=new Image;a.onload=function(){i(a)},a.onerror=function(){e(a)},a.src=t}(t,function(t){i.img=t,i.imageData={originalWidth:t.width,originalHeight:t.height},i.isMaximized||i.isOpened&&i.options.fixedModalPos?i.setImageSize(t):i.setModalSize(t),i.$stage.removeClass("stage-ready"),i.$image.removeClass("image-ready")},function(){i.$magnify.find(".magnify-loader").remove()}),this.options.title&&this.setImgTitle(t)},getImgGroup:function(e,a){var s=this;s.groupData=[],t(e).each(function(e,o){var n=i(this);s.groupData.push({src:n,caption:t(this).attr("data-caption")}),a===n&&(s.groupIndex=e)})},setImgTitle:function(t){var i=this.groupIndex,e=(e=this.groupData[i].caption)||function(t){return t.replace(/^.*?\/*([^/?]*)\.[a-z]+(\?.+|$)/gi,"$1")}(t);this.$title.html(e)},jump:function(t){this.groupIndex=this.groupIndex+t,this.jumpTo(this.groupIndex)},jumpTo:function(t){(t%=this.groupData.length)>=0?t%=this.groupData.length:t<0&&(t=(this.groupData.length+t)%this.groupData.length),this.groupIndex=t,this._triggerHook("beforeChange",t),this.loadImg(this.groupData[t].src),this._triggerHook("changed",t)},wheel:function(t){t.preventDefault();var i=1;t.originalEvent.deltaY?i=t.originalEvent.deltaY>0?1:-1:t.originalEvent.wheelDelta?i=-t.originalEvent.wheelDelta/120:t.originalEvent.detail&&(i=t.originalEvent.detail>0?1:-1);var e=-i*this.options.ratioThreshold,a={x:t.originalEvent.clientX-this.$stage.offset().left+h.scrollLeft(),y:t.originalEvent.clientY-this.$stage.offset().top+h.scrollTop()};this.zoom(e,a,t)},zoom:function(t,i,e){this.$image=o()?this.$stage.find(".magnify-image"):this.$image,t=t<0?1/(1-t):1+t,(t=this.$image.width()/this.imageData.originalWidth*t)>this.options.maxRatio||t<this.options.minRatio||this.zoomTo(t,i,e)},zoomTo:function(i,e,s){var n=o()?this.$stage.find(".magnify-image"):this.$image,h=this.$stage,r={w:this.imageData.width,h:this.imageData.height,x:this.imageData.left,y:this.imageData.top},l={w:h.width(),h:h.height(),x:h.offset().left,y:h.offset().top},g=this.imageData.originalWidth*i,c=this.imageData.originalHeight*i,m=e.x-(e.x-r.x)/r.w*g,f=e.y-(e.y-r.y)/r.h*c,d=this.isRotated?(g-c)/2:0,p=this.isRotated?c:g,u=this.isRotated?g:c,v=l.w-g,y=l.h-c;f=u<=l.h?(l.h-c)/2:f>d?d:f>y-d?f:y-d,m=p<=l.w?(l.w-g)/2:m>-d?-d:m>v+d?m:v+d,Math.abs(this.imageData.initWidth-g)<0.05*this.imageData.initWidth?this.setImageSize(this.img):(n.css({width:Math.round(g)+"px",height:Math.round(c)+"px",left:Math.round(m)+"px",top:Math.round(f)+"px"}),o()&&n.find("group").css({width:Math.ceil(g)+"px",height:Math.ceil(c)+"px"}),a({w:Math.round(p),h:Math.round(u)},{w:l.w,h:l.h},this.$stage)),t.extend(this.imageData,{width:g,height:c,left:m,top:f})},rotate:function(t){this.rotateAngle=this.rotateAngle+t,this.rotateAngle/90%2==0?this.isRotated=!1:this.isRotated=!0,this.rotateTo(this.rotateAngle)},rotateTo:function(t){(o()?this.$stage.find(".magnify-image"):this.$image).rotate({angle:t}),this.setImageSize({width:this.imageData.originalWidth,height:this.imageData.originalHeight}),this.$stage.removeClass("is-grab")},resize:function(){var t=this;return function(t,i){var e=null;return function(){var a=this,s=arguments;clearTimeout(e),e=setTimeout(function(){t.apply(a,s)},i)}}(function(){t.isOpened&&(t.isMaximized?t.setImageSize({width:t.imageData.originalWidth,height:t.imageData.originalHeight}):t.setModalSize({width:t.imageData.originalWidth,height:t.imageData.originalHeight}))},500)},maximize:function(){this.isMaximized?(this.$magnify.removeClass("magnify-maximize"),this.$magnify.css({width:this.modalData.width?this.modalData.width:this.options.modalWidth,height:this.modalData.height?this.modalData.height:this.options.modalHeight,left:this.modalData.left?this.modalData.left:(n.width()-this.options.modalWidth)/2+h.scrollLeft(),top:this.modalData.top?this.modalData.top:(n.height()-this.options.modalHeight)/2+h.scrollTop()}),this.isMaximized=!1):(this.modalData={width:this.$magnify.width(),height:this.$magnify.height(),left:this.$magnify.offset().left,top:this.$magnify.offset().top},this.$magnify.addClass("magnify-maximize"),this.$magnify.css({width:"100%",height:"100%",left:0,top:0}),this.isMaximized=!0),this.setImageSize({width:this.imageData.originalWidth,height:this.imageData.originalHeight})},fullscreen:function(){!function(t){t.requestFullscreen?t.requestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.msRequestFullscreen&&t.msRequestFullscreen()}(this.$magnify[0])},keydown:function(t){if(!this.options.keyboard){return !1}var i=t.keyCode||t.which||t.charCode,e=t.ctrlKey||t.metaKey,a=t.altKey||t.metaKey;switch(i){case 37:this.jump(-1);break;case 39:this.jump(1);break;case 187:this.zoom(3*this.options.ratioThreshold,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 189:this.zoom(3*-this.options.ratioThreshold,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 61:this.zoom(3*this.options.ratioThreshold,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 173:this.zoom(3*-this.options.ratioThreshold,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 48:e&&a&&this.zoomTo(1,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 188:e&&this.rotate(-90);break;case 190:e&&this.rotate(90)}},addEvents:function(){var t=this;this.$close.off("click.magnify").on("click.magnify",function(i){t.close()}),this.$stage.off("wheel mousewheel DOMMouseScroll.magnify").on("wheel mousewheel DOMMouseScroll.magnify",function(i){t.wheel(i)}),this.$zoomIn.off("click.magnify").on("click.magnify",function(i){t.zoom(3*t.options.ratioThreshold,{x:t.$stage.width()/2,y:t.$stage.height()/2},i)}),this.$zoomOut.off("click.magnify").on("click.magnify",function(i){t.zoom(3*-t.options.ratioThreshold,{x:t.$stage.width()/2,y:t.$stage.height()/2},i)}),this.$actualSize.off("click.magnify").on("click.magnify",function(i){t.zoomTo(1,{x:t.$stage.width()/2,y:t.$stage.height()/2},i)}),this.$prev.off("click.magnify").on("click.magnify",function(){t.jump(-1)}),this.$fullscreen.off("click.magnify").on("click.magnify",function(){t.fullscreen()}),this.$next.off("click.magnify").on("click.magnify",function(){t.jump(1)}),this.$rotateLeft.off("click.magnify").on("click.magnify",function(){t.rotate(-90)}),this.$rotateRight.off("click.magnify").on("click.magnify",function(){t.rotate(90)}),this.$maximize.off("click.magnify").on("click.magnify",function(){t.maximize()}),h.off("keydown.magnify").on("keydown.magnify",function(i){t.keydown(i)}),n.on("resize.magnify",t.resize())},_triggerHook:function(i,e){this.options.callbacks[i]&&this.options.callbacks[i].apply(this,t.isArray(e)?e:[e])}},t.fn.magnify=function(i){d=t(this);for(var e in i){"string"!=typeof i[e]||isNaN(i[e])||(i[e]=parseFloat(i[e]))}var a=t.extend(!0,{},m,i);return f.zIndex=a.zIndex,"string"==typeof i||("dblclick"===a.initEvent&&d.off("click.magnify").on("click.magnify",function(t){t.preventDefault(),t.stopPropagation()}),d.off(a.initEvent+c).on(a.initEvent+c,function(e){e.preventDefault(),e.stopPropagation(),t(this).data("magnify",new p(this,i))})),d},h.on("click.magnify","[data-magnify]",function(i){d=t("[data-magnify]"),i.preventDefault(),t(this).data("magnify",new p(this,m))});t.extend(p.prototype,{draggable:function(i,e,a){var s=this,o=!1,n=0,m=0,d=0,p=0,u=function(e){if((e=e||window.event).preventDefault(),o&&!f.isMoving&&!f.isResizing&&!s.isMaximized){var a="touchmove"===e.type?e.originalEvent.targetTouches[0].pageX:e.clientX,h="touchmove"===e.type?e.originalEvent.targetTouches[0].pageY:e.clientY,r=a-n,l=h-m;t(i).css({left:r+d+"px",top:l+p+"px"})}},v=function(t){h.off(l+c,u).off(g+c,v),o=!1};t(e).on(r+c,function(e){if(e=e||window.event,s.options.multiInstances&&i.css("z-index",++f.zIndex),t(e.target).closest(a).length){return !0}o=!0,n="touchstart"===e.type?e.originalEvent.targetTouches[0].pageX:e.clientX,m="touchstart"===e.type?e.originalEvent.targetTouches[0].pageY:e.clientY,d=t(i).offset().left,p=t(i).offset().top,h.on(l+c,u).on(g+c,v)})}});t.extend(p.prototype,{movable:function(i,e){var a=this,s=!1,n=0,m=0,d=0,p=0,u=0,v=0,y=0,_=function(h){(h=h||window.event).preventDefault();var r=o()?t(i).find(e):t(e);if(s){var l="touchmove"===h.type?h.originalEvent.targetTouches[0].pageX:h.clientX,g="touchmove"===h.type?h.originalEvent.targetTouches[0].pageY:h.clientY,c=l-n,f=g-m,_=c+d,b=f+p;v>0?f+p>y?b=y:f+p<-v+y&&(b=-v+y):b=p,u>0?c+d>-y?_=-y:c+d<-u-y&&(_=-u-y):_=d,r.css({left:_+"px",top:b+"px"}),t.extend(a.imageData,{left:_,top:b})}},b=function(i){h.off(l+c,_).off(g+c,b),s=!1,f.isMoving=!1,t("html,body,.magnify-modal,.magnify-stage,.magnify-button,.magnify-resizable-handle").removeClass("is-grabbing")};t(i).on(r+c,function(r){(r=r||window.event).preventDefault();var x=o()?t(i).find(e):t(e),w=x.width(),z=x.height(),$=t(i).width(),M=t(i).height();n="touchstart"===r.type?r.originalEvent.targetTouches[0].pageX:r.clientX,m="touchstart"===r.type?r.originalEvent.targetTouches[0].pageY:r.clientY,y=a.isRotated?(w-z)/2:0,u=a.isRotated?z-$:w-$,v=a.isRotated?w-M:z-M,s=u>0||v>0,f.isMoving=u>0||v>0,d=x.position().left-(o()?0:y),p=x.position().top+(o()?0:y),i.hasClass("is-grab")&&t("html,body,.magnify-modal,.magnify-stage,.magnify-button,.magnify-resizable-handle").addClass("is-grabbing"),h.on(l+c,_).on(g+c,b)})}});t.extend(p.prototype,{resizable:function(i,e,s,n,m){var d=this,p=t('<div class="magnify-resizable-handle magnify-resizable-handle-e"></div>'),u=t('<div class="magnify-resizable-handle magnify-resizable-handle-w"></div>'),v=t('<div class="magnify-resizable-handle magnify-resizable-handle-s"></div>'),y=t('<div class="magnify-resizable-handle magnify-resizable-handle-n"></div>'),_=t('<div class="magnify-resizable-handle magnify-resizable-handle-se"></div>'),b=t('<div class="magnify-resizable-handle magnify-resizable-handle-sw"></div>'),x=t('<div class="magnify-resizable-handle magnify-resizable-handle-ne"></div>'),w=t('<div class="magnify-resizable-handle magnify-resizable-handle-nw"></div>'),z={e:p,s:v,se:_,n:y,w:u,nw:w,ne:x,sw:b};t(i).append(p,u,v,y,_,b,x,w);var $=!1,M=0,T=0,C={w:0,h:0,l:0,t:0},S={w:0,h:0,l:0,t:0},D={w:0,h:0,l:0,t:0},k=0,I=0,W=0,E="",O=function(a,n){(n=n||window.event).preventDefault();var r=o()?t(e).find(s):t(s);$=!0,f.isResizing=!0,M="touchstart"===n.type?n.originalEvent.targetTouches[0].pageX:n.clientX,T="touchstart"===n.type?n.originalEvent.targetTouches[0].pageY:n.clientY,C={w:t(i).width(),h:t(i).height(),l:t(i).offset().left,t:t(i).offset().top},S={w:t(e).width(),h:t(e).height(),l:t(e).offset().left,t:t(e).offset().top},D={w:r.width(),h:r.height(),l:r.position().left,t:r.position().top},k=d.isRotated?(D.w-D.h)/2:0,I=d.isRotated?D.h:D.w,W=d.isRotated?D.w:D.h,E=a,t("html,body,.magnify-modal,.magnify-stage,.magnify-button").css("cursor",a+"-resize"),h.on(l+c,H).on(g+c,R)},H=function(a){(a=a||window.event).preventDefault();var h=o()?t(e).find(s):t(s);if($&&!d.isMaximized){var r="touchmove"===a.type?a.originalEvent.targetTouches[0].pageX:a.clientX,l="touchmove"===a.type?a.originalEvent.targetTouches[0].pageY:a.clientY,g=r-M,c=l-T,f=function(t,i,e){var a=-i+C.w>n?i+C.l:C.l+C.w-n,s=-e+C.h>m?e+C.t:C.t+C.h-m;return{e:{width:Math.max(i+C.w,n)+"px"},s:{height:Math.max(e+C.h,m)+"px"},se:{width:Math.max(i+C.w,n)+"px",height:Math.max(e+C.h,m)+"px"},w:{width:Math.max(-i+C.w,n)+"px",left:a+"px"},n:{height:Math.max(-e+C.h,m)+"px",top:s+"px"},nw:{width:Math.max(-i+C.w,n)+"px",height:Math.max(-e+C.h,m)+"px",top:s+"px",left:a+"px"},ne:{width:Math.max(i+C.w,n)+"px",height:Math.max(-e+C.h,m)+"px",top:s+"px"},sw:{width:Math.max(-i+C.w,n)+"px",height:Math.max(e+C.h,m)+"px",left:a+"px"}}[t]}(E,g,c);t(i).css(f);var p=function(i,a,h){var r=o()?t(e).find(s):t(s),l=o()?r.position().left+k:r.position().left,g=o()?r.position().top-k:r.position().top,c=a+C.w>n?S.w-I+a-k:n-(C.w-S.w)-I-k,f=h+C.h>m?S.h-W+h+k:m-(C.h-S.h)-W+k,d=-a+C.w>n?S.w-I-a-k:n-(C.w-S.w)-I-k,p=-h+C.h>m?S.h-W-h+k:m-(C.h-S.h)-W+k,u=(c>0?l:l<0?l:0)-k,v=(f>0?g:g<0?g:0)+k,y=(d>0?l:l<0?l:0)-k,_=(p>0?g:g<0?g:0)+k;return{e:{left:c>=-k?(c-k)/2+"px":u>c?u+"px":c+"px"},s:{top:f>=k?(f+k)/2+"px":v>f?v+"px":f+"px"},se:{top:f>=k?(f+k)/2+"px":v>f?v+"px":f+"px",left:c>=-k?(c-k)/2+"px":u>c?u+"px":c+"px"},w:{left:d>=-k?(d-k)/2+"px":y>d?y+"px":d+"px"},n:{top:p>=k?(p+k)/2+"px":_>p?_+"px":p+"px"},nw:{top:p>=k?(p+k)/2+"px":_>p?_+"px":p+"px",left:d>=-k?(d-k)/2+"px":y>d?y+"px":d+"px"},ne:{top:p>=k?(p+k)/2+"px":_>p?_+"px":p+"px",left:c>=-k?(c-k)/2+"px":u>c?u+"px":c+"px"},sw:{top:f>=k?(f+k)/2+"px":v>f?v+"px":f+"px",left:d>=-k?(d-k)/2+"px":y>d?y+"px":d+"px"}}[i]}(E,g,c);h.css(p),d.isDoResize=!0}},R=function(i){h.off(l+c,H).off(g+c,R),f.isResizing&&a({w:I,h:W},{w:t(e).width(),h:t(e).height()},e),$=!1,f.isResizing=!1,t("html,body,.magnify-modal,.magnify-stage,.magnify-button").css("cursor","");var s=d.getImageScaleToStage(t(e).width(),t(e).height());t.extend(d.imageData,{initWidth:d.img.width*s,initHeight:d.img.height*s,initLeft:(t(e).width()-d.img.width*s)/2,initTop:(t(e).height()-d.img.height*s)/2})};t.each(z,function(t,i){i.on(r+c,function(i){O(t,i)})})}})}),function($){for(var supportedCSS,supportedCSSOrigin,styles=document.getElementsByTagName("head")[0].style,toCheck="transformProperty WebkitTransform OTransform msTransform MozTransform".split(" "),a=0;a<toCheck.length;a++){void 0!==styles[toCheck[a]]&&(supportedCSS=toCheck[a])}supportedCSS&&"T"==(supportedCSSOrigin=supportedCSS.replace(/[tT]ransform/,"TransformOrigin"))[0]&&(supportedCSSOrigin[0]="t"),eval('IE = "v"=="\v"'),jQuery.fn.extend({rotate:function(t){if(0!==this.length&&void 0!==t){"number"==typeof t&&(t={angle:t});for(var i=[],e=0,a=this.length;e<a;e++){var s=this.get(e);if(s.Wilq32&&s.Wilq32.PhotoEffect){s.Wilq32.PhotoEffect._handleRotation(t)}else{var o=$.extend(!0,{},t),n=new Wilq32.PhotoEffect(s,o)._rootObj;i.push($(n))}}return i}},getRotateAngle:function(){for(var t=[0],i=0,e=this.length;i<e;i++){var a=this.get(i);a.Wilq32&&a.Wilq32.PhotoEffect&&(t[i]=a.Wilq32.PhotoEffect._angle)}return t},stopRotate:function(){for(var t=0,i=this.length;t<i;t++){var e=this.get(t);e.Wilq32&&e.Wilq32.PhotoEffect&&clearTimeout(e.Wilq32.PhotoEffect._timer)}}}),Wilq32=window.Wilq32||{},Wilq32.PhotoEffect=supportedCSS?function(t,i){t.Wilq32={PhotoEffect:this},this._img=this._rootObj=this._eventObj=t,this._handleRotation(i)}:function(t,i){if(this._img=t,this._onLoadDelegate=[i],this._rootObj=document.createElement("span"),this._rootObj.style.display="inline-block",this._rootObj.Wilq32={PhotoEffect:this},t.parentNode.insertBefore(this._rootObj,t),t.complete){this._Loader()}else{var e=this;jQuery(this._img).bind("load",function(){e._Loader()})}},Wilq32.PhotoEffect.prototype={_setupParameters:function(t){this._parameters=this._parameters||{},"number"!=typeof this._angle&&(this._angle=0),"number"==typeof t.angle&&(this._angle=t.angle),this._parameters.animateTo="number"==typeof t.animateTo?t.animateTo:this._angle,this._parameters.step=t.step||this._parameters.step||null,this._parameters.easing=t.easing||this._parameters.easing||this._defaultEasing,this._parameters.duration="duration" in t?t.duration:t.duration||this._parameters.duration||1000,this._parameters.callback=t.callback||this._parameters.callback||this._emptyFunction,this._parameters.center=t.center||this._parameters.center||["50%","50%"],"string"==typeof this._parameters.center[0]?this._rotationCenterX=parseInt(this._parameters.center[0],10)/100*this._imgWidth*this._aspectW:this._rotationCenterX=this._parameters.center[0],"string"==typeof this._parameters.center[1]?this._rotationCenterY=parseInt(this._parameters.center[1],10)/100*this._imgHeight*this._aspectH:this._rotationCenterY=this._parameters.center[1],t.bind&&t.bind!=this._parameters.bind&&this._BindEvents(t.bind)},_emptyFunction:function(){},_defaultEasing:function(t,i,e,a,s){return -a*((i=i/s-1)*i*i*i-1)+e},_handleRotation:function(t,i){supportedCSS||this._img.complete||i?(this._setupParameters(t),this._angle==this._parameters.animateTo?this._rotate(this._angle):this._animateStart()):this._onLoadDelegate.push(t)},_BindEvents:function(t){if(t&&this._eventObj){if(this._parameters.bind){var i=this._parameters.bind;for(var e in i){i.hasOwnProperty(e)&&jQuery(this._eventObj).unbind(e,i[e])}}this._parameters.bind=t;for(var e in t){t.hasOwnProperty(e)&&jQuery(this._eventObj).bind(e,t[e])}}},_Loader:IE?function(){var t=this._img.width,i=this._img.height;this._imgWidth=t,this._imgHeight=i,this._img.parentNode.removeChild(this._img),this._vimage=this.createVMLNode("image"),this._vimage.src=this._img.src,this._vimage.style.height=i+"px",this._vimage.style.width=t+"px",this._vimage.style.position="absolute",this._vimage.style.top="0px",this._vimage.style.left="0px",this._aspectW=this._aspectH=1,this._container=this.createVMLNode("group"),this._container.style.width=t,this._container.style.height=i,this._container.style.position="absolute",this._container.style.top="0px",this._container.style.left="0px",this._container.setAttribute("coordsize",t-1+","+(i-1)),this._container.appendChild(this._vimage),this._rootObj.appendChild(this._container),this._rootObj.style.position="relative",this._rootObj.style.width=t+"px",this._rootObj.style.height=i+"px",this._rootObj.setAttribute("id",this._img.getAttribute("id")),this._rootObj.className=this._img.className,this._eventObj=this._rootObj;for(var e;e=this._onLoadDelegate.shift();){this._handleRotation(e,!0)}}:function(){this._rootObj.setAttribute("id",this._img.getAttribute("id")),this._rootObj.className=this._img.className,this._imgWidth=this._img.naturalWidth,this._imgHeight=this._img.naturalHeight;var t=Math.sqrt(this._imgHeight*this._imgHeight+this._imgWidth*this._imgWidth);this._width=3*t,this._height=3*t,this._aspectW=this._img.offsetWidth/this._img.naturalWidth,this._aspectH=this._img.offsetHeight/this._img.naturalHeight,this._img.parentNode.removeChild(this._img),this._canvas=document.createElement("canvas"),this._canvas.setAttribute("width",this._width),this._canvas.style.position="relative",this._canvas.style.left=-this._img.height*this._aspectW+"px",this._canvas.style.top=-this._img.width*this._aspectH+"px",this._canvas.Wilq32=this._rootObj.Wilq32,this._rootObj.appendChild(this._canvas),this._rootObj.style.width=this._img.width*this._aspectW+"px",this._rootObj.style.height=this._img.height*this._aspectH+"px",this._eventObj=this._canvas,this._cnv=this._canvas.getContext("2d");for(var i;i=this._onLoadDelegate.shift();){this._handleRotation(i,!0)}},_animateStart:function(){this._timer&&clearTimeout(this._timer),this._animateStartTime=+new Date,this._animateStartAngle=this._angle,this._animate()},_animate:function(){var t=+new Date,i=t-this._animateStartTime>this._parameters.duration;if(i&&!this._parameters.animatedGif){clearTimeout(this._timer)}else{if(this._canvas||this._vimage||this._img){var e=this._parameters.easing(0,t-this._animateStartTime,this._animateStartAngle,this._parameters.animateTo-this._animateStartAngle,this._parameters.duration);this._rotate(~~(10*e)/10)}this._parameters.step&&this._parameters.step(this._angle);var a=this;this._timer=setTimeout(function(){a._animate.call(a)},10)}this._parameters.callback&&i&&(this._angle=this._parameters.animateTo,this._rotate(this._angle),this._parameters.callback.call(this._rootObj))},_rotate:function(){var t=Math.PI/180;return IE?function(t){this._angle=t,this._container.style.rotation=t%360+"deg",this._vimage.style.top=-(this._rotationCenterY-this._imgHeight/2)+"px",this._vimage.style.left=-(this._rotationCenterX-this._imgWidth/2)+"px",this._container.style.top=this._rotationCenterY-this._imgHeight/2+"px",this._container.style.left=this._rotationCenterX-this._imgWidth/2+"px"}:supportedCSS?function(t){this._angle=t,this._img.style[supportedCSS]="rotate("+t%360+"deg)",this._img.style[supportedCSSOrigin]=this._parameters.center.join(" ")}:function(i){this._angle=i,i=i%360*t,this._canvas.width=this._width,this._canvas.height=this._height,this._cnv.translate(this._imgWidth*this._aspectW,this._imgHeight*this._aspectH),this._cnv.translate(this._rotationCenterX,this._rotationCenterY),this._cnv.rotate(i),this._cnv.translate(-this._rotationCenterX,-this._rotationCenterY),this._cnv.scale(this._aspectW,this._aspectH),this._cnv.drawImage(this._img,0,0)}}()},IE&&(Wilq32.PhotoEffect.prototype.createVMLNode=function(){document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{return !document.namespaces.rvml&&document.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<rvml:"+t+' class="rvml">')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}}())}(jQuery)});
Fatal error: Uncaught Error: Call to undefined function seo_url() in /home/sabalico/public_html/blueprint/pages/documentation.php:186Stack trace:#0 /home/sabalico/public_html/index.php(86): include()#1 {main} thrown in /home/sabalico/public_html/blueprint/pages/documentation.php on line 186