forked from caleb531/jcanvas
/
jcanvas.min.js
70 lines (70 loc) · 31.8 KB
/
jcanvas.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
jCanvas v14.10.16
Copyright 2014 Caleb Evans
Released under the MIT license
*/
(function(g,va,wa,Sa,ca,$,p,w,h,r){function G(d){for(var c in d)d.hasOwnProperty(c)&&(this[c]=d[c]);return this}function ma(){Y(this,ma.baseDefaults)}function ia(d){return"string"===Z(d)}function K(d){return d&&d.getContext?d.getContext("2d"):h}function ja(d){var c,a,b;for(c in d)d.hasOwnProperty(c)&&(b=d[c],a=Z(b),"string"!==a||""===b||isNaN(b)||"text"===c||(d[c]=$(b)))}function ka(d){d=Y({},d);d.masks=d.masks.slice(0);return d}function ea(d,c){var a;d.save();a=ka(c.transforms);c.savedTransforms.push(a)}
function xa(d,c,a,b){a[b]&&(da(a[b])?c[b]=a[b].call(d,a):c[b]=a[b])}function R(d,c,a){xa(d,c,a,"fillStyle");xa(d,c,a,"strokeStyle");c.lineWidth=a.strokeWidth;a.rounded?c.lineCap=c.lineJoin="round":(c.lineCap=a.strokeCap,c.lineJoin=a.strokeJoin,c.miterLimit=a.miterLimit);a.strokeDash||(a.strokeDash=[]);c.setLineDash&&c.setLineDash(a.strokeDash);c.webkitLineDash=c.mozDash=a.strokeDash;c.lineDashOffset=c.webkitLineDashOffset=c.mozDashOffset=a.strokeDashOffset;c.shadowOffsetX=a.shadowX;c.shadowOffsetY=
a.shadowY;c.shadowBlur=a.shadowBlur;c.shadowColor=a.shadowColor;c.globalAlpha=a.opacity;c.globalCompositeOperation=a.compositing;a.imageSmoothing&&(c.webkitImageSmoothingEnabled=c.mozImageSmoothingEnabled=a.imageSmoothing)}function ya(d,c,a){a.mask&&(a.autosave&&ea(d,c),d.clip(),c.transforms.masks.push(a._args))}function U(d,c,a){a.closed&&c.closePath();a.shadowStroke&&0!==a.strokeWidth?(c.stroke(),c.fill(),c.shadowColor="transparent",c.shadowBlur=0,c.stroke()):(c.fill(),"transparent"!==a.fillStyle&&
(c.shadowColor="transparent"),0!==a.strokeWidth&&c.stroke());a.closed||c.closePath();a._transformed&&c.restore();a.mask&&(d=E(d),ya(c,d,a))}function Q(d,c,a,b,f){a._toRad=a.inDegrees?D/180:1;a._transformed=p;c.save();a.fromCenter||a._centered||b===r||(f===r&&(f=b),a.x+=b/2,a.y+=f/2,a._centered=p);a.rotate&&za(c,a,h);1===a.scale&&1===a.scaleX&&1===a.scaleY||Aa(c,a,h);(a.translate||a.translateX||a.translateY)&&Ba(c,a,h)}function E(d){var c=aa.dataCache,a;c._canvas===d&&c._data?a=c._data:(a=g.data(d,
"jCanvas"),a||(a={canvas:d,layers:[],layer:{names:{},groups:{}},eventHooks:{},intersecting:[],lastIntersected:h,cursor:g(d).css("cursor"),drag:{layer:h,dragging:w},event:{type:h,x:h,y:h},events:{},transforms:ka(na),savedTransforms:[],animating:w,animated:h,pixelRatio:1,scaled:w},g.data(d,"jCanvas",a)),c._canvas=d,c._data=a);return a}function Ca(d,c,a){for(var b in W.events)W.events.hasOwnProperty(b)&&(a[b]||a.cursors&&a.cursors[b])&&Da(d,c,a,b);c.events.mouseout||(d.bind("mouseout.jCanvas",function(){var a=
c.drag.layer,b;a&&(c.drag={},O(d,c,a,"dragcancel"));for(b=0;b<c.layers.length;b+=1)a=c.layers[b],a._hovered&&d.triggerLayerEvent(c.layers[b],"mouseout");d.drawLayers()}),c.events.mouseout=p)}function Da(d,c,a,b){W.events[b](d,c);a._event=p}function Ea(d,c,a){var b,f,e;if(a.draggable||a.cursors){b=["mousedown","mousemove","mouseup"];for(e=0;e<b.length;e+=1)f=b[e],Da(d,c,a,f);a._event=p}}function oa(d,c,a,b){d=c.layer.names;b?b.name!==r&&ia(a.name)&&a.name!==b.name&&delete d[a.name]:b=a;ia(b.name)&&
(d[b.name]=a)}function pa(d,c,a,b){d=c.layer.groups;var f,e,k,g;if(!b)b=a;else if(b.groups!==r&&a.groups!==h)for(e=0;e<a.groups.length;e+=1)if(f=a.groups[e],c=d[f]){for(g=0;g<c.length;g+=1)if(c[g]===a){k=g;c.splice(g,1);break}0===c.length&&delete d[f]}if(b.groups!==r&&b.groups!==h)for(e=0;e<b.groups.length;e+=1)f=b.groups[e],c=d[f],c||(c=d[f]=[],c.name=f),k===r&&(k=c.length),c.splice(k,0,a)}function qa(d,c,a,b,f){b[a]&&c._running&&!c._running[a]&&(c._running[a]=p,b[a].call(d[0],c,f),c._running[a]=
w)}function O(d,c,a,b,f){if(!(a.disableEvents||a.intangible&&-1!==g.inArray(b,Ua))){if("mouseout"!==b){var e;a.cursors&&(e=a.cursors[b]);-1!==g.inArray(e,T.cursors)&&(e=T.prefix+e);e&&d.css({cursor:e})}qa(d,a,b,a,f);qa(d,a,b,c.eventHooks,f);qa(d,a,b,W.eventHooks,f)}}function N(d,c,a,b){var f,e=c._layer?a:c;c._args=a;if(c.draggable||c.dragGroups)c.layer=p,c.draggable=p;c._method=b?b:c.method?g.fn[c.method]:c.type?g.fn[V.drawings[c.type]]:function(){};if(c.layer&&!c._layer){if(a=g(d),b=E(d),f=b.layers,
e.name===h||ia(e.name)&&b.layer.names[e.name]===r)ja(c),e=new G(c),e.canvas=d,e.layer=p,e._layer=p,e._running={},e.data=e.data!==h?Y({},e.data):{},e.groups=e.groups!==h?e.groups.slice(0):[],oa(a,b,e),pa(a,b,e),Ca(a,b,e),Ea(a,b,e),c._event=e._event,e._method===g.fn.drawText&&a.measureText(e),e.index===h&&(e.index=f.length),f.splice(e.index,0,e),c._args=e,O(a,b,e,"add")}else c.layer||ja(c);return e}function Fa(d,c){var a,b;for(b=0;b<T.props.length;b+=1)a=T.props[b],d[a]!==r&&(d["_"+a]=d[a],T.propsObj[a]=
p,c&&delete d[a])}function Va(d,c,a){var b,f,e,k;for(b in a)if(a.hasOwnProperty(b)&&(f=a[b],da(f)&&(a[b]=f.call(d,c,b)),"object"===Z(f)&&Ga(f))){for(e in f)f.hasOwnProperty(e)&&(k=f[e],c[b]!==r&&(c[b+"."+e]=c[b][e],a[b+"."+e]=k));delete a[b]}return a}function Ha(d){var c,a,b=[],f=1;d.match(/^([a-z]+|#[0-9a-f]+)$/gi)&&("transparent"===d&&(d="rgba(0, 0, 0, 0)"),a=va.head,c=a.style.color,a.style.color=d,d=g.css(a,"color"),a.style.color=c);d.match(/^rgb/gi)&&(b=d.match(/(\d+(\.\d+)?)/gi),d.match(/%/gi)&&
(f=2.55),b[0]*=f,b[1]*=f,b[2]*=f,b[3]=b[3]!==r?$(b[3]):1);return b}function Wa(d){var c=3,a;"array"!==Z(d.start)&&(d.start=Ha(d.start),d.end=Ha(d.end));d.now=[];if(1!==d.start[3]||1!==d.end[3])c=4;for(a=0;a<c;a+=1)d.now[a]=d.start[a]+(d.end[a]-d.start[a])*d.pos,3>a&&(d.now[a]=Xa(d.now[a]));1!==d.start[3]||1!==d.end[3]?d.now="rgba( "+d.now.join(",")+" )":(d.now.slice(0,3),d.now="rgb( "+d.now.join(",")+" )");d.elem.nodeName?d.elem.style[d.prop]=d.now:d.elem[d.prop]=d.now}function Ya(d){V.touchEvents[d]&&
(d=V.touchEvents[d]);return d}function Za(d){W.events[d]=function(c,a){function b(a){k.x=a.offsetX;k.y=a.offsetY;k.type=f;k.event=a;c.drawLayers({resetFire:p});a.preventDefault()}var f,e,k;k=a.event;f="mouseover"===d||"mouseout"===d?"mousemove":d;e=Ya(f);a.events[f]||(e!==f?c.bind(f+".jCanvas "+e+".jCanvas",b):c.bind(f+".jCanvas",b),a.events[f]=p)}}function S(d,c,a){var b,f,e,k;if(a=a._args)d=E(d),b=d.event,b.x!==h&&b.y!==h&&(e=b.x*d.pixelRatio,k=b.y*d.pixelRatio,f=c.isPointInPath(e,k)||c.isPointInStroke&&
c.isPointInStroke(e,k)),c=d.transforms,a.eventX=b.x,a.eventY=b.y,a.event=b.event,b=d.transforms.rotate,e=a.eventX,k=a.eventY,0!==b?(a._eventX=e*L(-b)-k*P(-b),a._eventY=k*L(-b)+e*P(-b)):(a._eventX=e,a._eventY=k),a._eventX/=c.scaleX,a._eventY/=c.scaleY,f&&d.intersecting.push(a),a.intersects=!!f}function za(d,c,a){c._toRad=c.inDegrees?D/180:1;d.translate(c.x,c.y);d.rotate(c.rotate*c._toRad);d.translate(-c.x,-c.y);a&&(a.rotate+=c.rotate*c._toRad)}function Aa(d,c,a){1!==c.scale&&(c.scaleX=c.scaleY=c.scale);
d.translate(c.x,c.y);d.scale(c.scaleX,c.scaleY);d.translate(-c.x,-c.y);a&&(a.scaleX*=c.scaleX,a.scaleY*=c.scaleY)}function Ba(d,c,a){c.translate&&(c.translateX=c.translateY=c.translate);d.translate(c.translateX,c.translateY);a&&(a.translateX+=c.translateX,a.translateY+=c.translateY)}function Ia(d){for(;0>d;)d+=2*D;return d}function Ja(d,c,a,b){var f,e,k,g,v,B,z;a===b?z=B=0:(B=a.x,z=a.y);b.inDegrees||360!==b.end||(b.end=2*D);b.start*=a._toRad;b.end*=a._toRad;b.start-=D/2;b.end-=D/2;v=D/180;b.ccw&&
(v*=-1);f=b.x+b.radius*L(b.start+v);e=b.y+b.radius*P(b.start+v);k=b.x+b.radius*L(b.start);g=b.y+b.radius*P(b.start);fa(d,c,a,b,f,e,k,g);c.arc(b.x+B,b.y+z,b.radius,b.start,b.end,b.ccw);f=b.x+b.radius*L(b.end+v);v=b.y+b.radius*P(b.end+v);e=b.x+b.radius*L(b.end);k=b.y+b.radius*P(b.end);ga(d,c,a,b,e,k,f,v)}function Ka(d,c,a,b,f,e,k,g){var v,B;b.arrowRadius&&!a.closed&&(B=$a(g-e,k-f),B-=D,d=a.strokeWidth*L(B),v=a.strokeWidth*P(B),a=k+b.arrowRadius*L(B+b.arrowAngle/2),f=g+b.arrowRadius*P(B+b.arrowAngle/
2),e=k+b.arrowRadius*L(B-b.arrowAngle/2),b=g+b.arrowRadius*P(B-b.arrowAngle/2),c.moveTo(a-d,f-v),c.lineTo(k-d,g-v),c.lineTo(e-d,b-v),c.moveTo(k-d,g-v),c.lineTo(k+d,g+v),c.moveTo(k,g))}function fa(d,c,a,b,f,e,k,g){b._arrowAngleConverted||(b.arrowAngle*=a._toRad,b._arrowAngleConverted=p);b.startArrow&&Ka(d,c,a,b,f,e,k,g)}function ga(d,c,a,b,f,e,k,g){b._arrowAngleConverted||(b.arrowAngle*=a._toRad,b._arrowAngleConverted=p);b.endArrow&&Ka(d,c,a,b,f,e,k,g)}function La(d,c,a,b){var f,e,k;f=2;fa(d,c,a,b,
b.x2+a.x,b.y2+a.y,b.x1+a.x,b.y1+a.y);for(b.x1!==r&&b.y1!==r&&c.moveTo(b.x1+a.x,b.y1+a.y);p;)if(e=b["x"+f],k=b["y"+f],e!==r&&k!==r)c.lineTo(e+a.x,k+a.y),f+=1;else break;f-=1;ga(d,c,a,b,b["x"+(f-1)]+a.x,b["y"+(f-1)]+a.y,b["x"+f]+a.x,b["y"+f]+a.y)}function Ma(d,c,a,b){var f,e,k,g,v;f=2;fa(d,c,a,b,b.cx1+a.x,b.cy1+a.y,b.x1+a.x,b.y1+a.y);for(b.x1!==r&&b.y1!==r&&c.moveTo(b.x1+a.x,b.y1+a.y);p;)if(e=b["x"+f],k=b["y"+f],g=b["cx"+(f-1)],v=b["cy"+(f-1)],e!==r&&k!==r&&g!==r&&v!==r)c.quadraticCurveTo(g+a.x,v+a.y,
e+a.x,k+a.y),f+=1;else break;f-=1;ga(d,c,a,b,b["cx"+(f-1)]+a.x,b["cy"+(f-1)]+a.y,b["x"+f]+a.x,b["y"+f]+a.y)}function Na(d,c,a,b){var f,e,k,g,v,B,z,h;f=2;e=1;fa(d,c,a,b,b.cx1+a.x,b.cy1+a.y,b.x1+a.x,b.y1+a.y);for(b.x1!==r&&b.y1!==r&&c.moveTo(b.x1+a.x,b.y1+a.y);p;)if(k=b["x"+f],g=b["y"+f],v=b["cx"+e],B=b["cy"+e],z=b["cx"+(e+1)],h=b["cy"+(e+1)],k!==r&&g!==r&&v!==r&&B!==r&&z!==r&&h!==r)c.bezierCurveTo(v+a.x,B+a.y,z+a.x,h+a.y,k+a.x,g+a.y),f+=1,e+=2;else break;f-=1;e-=2;ga(d,c,a,b,b["cx"+(e+1)]+a.x,b["cy"+
(e+1)]+a.y,b["x"+f]+a.x,b["y"+f]+a.y)}function Oa(d,c,a){c*=d._toRad;c-=D/2;return a*L(c)}function Pa(d,c,a){c*=d._toRad;c-=D/2;return a*P(c)}function Qa(d,c,a,b){var f,e,k,g,v,h,z;a===b?v=g=0:(g=a.x,v=a.y);f=1;e=g=h=b.x+g;k=v=z=b.y+v;fa(d,c,a,b,e+Oa(a,b.a1,b.l1),k+Pa(a,b.a1,b.l1),e,k);for(b.x!==r&&b.y!==r&&c.moveTo(e,k);p;)if(e=b["a"+f],k=b["l"+f],e!==r&&k!==r)g=h,v=z,h+=Oa(a,e,k),z+=Pa(a,e,k),c.lineTo(h,z),f+=1;else break;ga(d,c,a,b,g,v,h,z)}function ra(d,c,a){isNaN(Number(a.fontSize))||(a.fontSize+=
"px");c.font=a.fontStyle+" "+a.fontSize+" "+a.fontFamily}function sa(d,c,a,b){var f,e;f=aa.propCache;if(f.text===a.text&&f.fontStyle===a.fontStyle&&f.fontSize===a.fontSize&&f.fontFamily===a.fontFamily&&f.maxWidth===a.maxWidth&&f.lineHeight===a.lineHeight)a.width=f.width,a.height=f.height;else{a.width=c.measureText(b[0]).width;for(e=1;e<b.length;e+=1)f=c.measureText(b[e]).width,f>a.width&&(a.width=f);c=d.style.fontSize;d.style.fontSize=a.fontSize;a.height=$(g.css(d,"fontSize"))*b.length*a.lineHeight;
d.style.fontSize=c}}function Ra(d,c){var a=c.maxWidth,b=c.text.split("\n"),f=[],e,k,g,v,h;for(g=0;g<b.length;g+=1){v=b[g];h=v.split(" ");e=[];k="";if(1===h.length||d.measureText(v).width<a)e=[v];else{for(v=0;v<h.length;v+=1)d.measureText(k+h[v]).width>a&&(""!==k&&e.push(k),k=""),k+=h[v],v!==h.length-1&&(k+=" ");e.push(k)}f=f.concat(e.join("\n").replace(/( (\n))|( $)/gi,"$2").split("\n"))}return f}var la,Y=g.extend,ha=g.inArray,Z=g.type,da=g.isFunction,Ga=g.isPlainObject,D=ca.PI,Xa=ca.round,ab=ca.abs,
P=ca.sin,L=ca.cos,$a=ca.atan2,ta=Sa.prototype.slice,bb=g.event.fix,V={},aa={dataCache:{},propCache:{},imageCache:{}},na={rotate:0,scaleX:1,scaleY:1,translateX:0,translateY:0,masks:[]},T={},Ua="mousedown mousemove mouseup mouseover mouseout touchstart touchmove touchend".split(" "),W={events:{},eventHooks:{},future:{}};ma.baseDefaults={align:"center",arrowAngle:90,arrowRadius:0,autosave:p,baseline:"middle",bringToFront:w,ccw:w,closed:w,compositing:"source-over",concavity:0,cornerRadius:0,count:1,cropFromCenter:p,
crossOrigin:"",cursors:h,disableEvents:w,draggable:w,dragGroups:h,groups:h,data:h,dx:h,dy:h,end:360,eventX:h,eventY:h,fillStyle:"transparent",fontStyle:"normal",fontSize:"12pt",fontFamily:"sans-serif",fromCenter:p,height:h,imageSmoothing:p,inDegrees:p,intangible:w,index:h,letterSpacing:h,lineHeight:1,layer:w,mask:w,maxWidth:h,miterLimit:10,name:h,opacity:1,r1:h,r2:h,radius:0,repeat:"repeat",respectAlign:w,rotate:0,rounded:w,scale:1,scaleX:1,scaleY:1,shadowBlur:0,shadowColor:"transparent",shadowStroke:w,
shadowX:0,shadowY:0,sHeight:h,sides:0,source:"",spread:0,start:0,strokeCap:"butt",strokeDash:h,strokeDashOffset:0,strokeJoin:"miter",strokeStyle:"transparent",strokeWidth:1,sWidth:h,sx:h,sy:h,text:"",translate:0,translateX:0,translateY:0,type:h,visible:p,width:h,x:0,y:0};la=new ma;G.prototype=la;W.extend=function(d){d.name&&(d.props&&Y(la,d.props),g.fn[d.name]=function a(b){var f,e,k,g;for(e=0;e<this.length;e+=1)if(f=this[e],k=K(f))g=new G(b),N(f,g,b,a),R(f,k,g),d.fn.call(f,k,g);return this},d.type&&
(V.drawings[d.type]=d.name));return g.fn[d.name]};g.fn.getEventHooks=function(){var d;d={};0!==this.length&&(d=this[0],d=E(d),d=d.eventHooks);return d};g.fn.setEventHooks=function(d){var c,a;for(c=0;c<this.length;c+=1)g(this[c]),a=E(this[c]),Y(a.eventHooks,d);return this};g.fn.getLayers=function(d){var c,a,b,f,e=[];if(0!==this.length)if(c=this[0],a=E(c),a=a.layers,da(d))for(f=0;f<a.length;f+=1)b=a[f],d.call(c,b)&&e.push(b);else e=a;return e};g.fn.getLayer=function(d){var c,a,b,f;if(0!==this.length)if(c=
this[0],a=E(c),c=a.layers,f=Z(d),d&&d.layer)b=d;else if("number"===f)0>d&&(d=c.length+d),b=c[d];else if("regexp"===f)for(a=0;a<c.length;a+=1){if(ia(c[a].name)&&c[a].name.match(d)){b=c[a];break}}else b=a.layer.names[d];return b};g.fn.getLayerGroup=function(d){var c,a,b,f=Z(d);if(0!==this.length)if(c=this[0],"array"===f)b=d;else if("regexp"===f)for(a in c=E(c),c=c.layer.groups,c){if(a.match(d)){b=c[a];break}}else c=E(c),b=c.layer.groups[d];return b};g.fn.getLayerIndex=function(d){var c=this.getLayers();
d=this.getLayer(d);return ha(d,c)};g.fn.setLayer=function(d,c){var a,b,f,e,k,h,v;for(b=0;b<this.length;b+=1)if(a=g(this[b]),f=E(this[b]),e=g(this[b]).getLayer(d)){oa(a,f,e,c);pa(a,f,e,c);ja(c);for(k in c)c.hasOwnProperty(k)&&(h=c[k],v=Z(h),"object"===v&&Ga(h)?(e[k]=Y({},h),ja(e[k])):"array"===v?e[k]=h.slice(0):"string"===v?0===h.indexOf("+=")?e[k]+=$(h.substr(2)):0===h.indexOf("-=")?e[k]-=$(h.substr(2)):isNaN(h)?e[k]=h:e[k]=$(h):e[k]=h);Ca(a,f,e);Ea(a,f,e);g.isEmptyObject(c)===w&&O(a,f,e,"change",
c)}return this};g.fn.setLayers=function(d,c){var a,b,f,e;for(b=0;b<this.length;b+=1)for(a=g(this[b]),f=a.getLayers(c),e=0;e<f.length;e+=1)a.setLayer(f[e],d);return this};g.fn.setLayerGroup=function(d,c){var a,b,f,e;for(b=0;b<this.length;b+=1)if(a=g(this[b]),f=a.getLayerGroup(d))for(e=0;e<f.length;e+=1)a.setLayer(f[e],c);return this};g.fn.moveLayer=function(d,c){var a,b,f,e,k;for(b=0;b<this.length;b+=1)if(a=g(this[b]),f=E(this[b]),e=f.layers,k=a.getLayer(d))k.index=ha(k,e),e.splice(k.index,1),e.splice(c,
0,k),0>c&&(c=e.length+c),k.index=c,O(a,f,k,"move");return this};g.fn.removeLayer=function(d){var c,a,b,f,e;for(a=0;a<this.length;a+=1)if(c=g(this[a]),b=E(this[a]),f=c.getLayers(),e=c.getLayer(d))e.index=ha(e,f),f.splice(e.index,1),oa(c,b,e,{name:h}),pa(c,b,e,{groups:h}),O(c,b,e,"remove");return this};g.fn.removeLayers=function(d){var c,a,b,f,e,k;for(a=0;a<this.length;a+=1){c=g(this[a]);b=E(this[a]);f=c.getLayers(d);for(k=0;k<f.length;k+=1)e=f[k],c.removeLayer(e),k-=1;b.layer.names={};b.layer.groups=
{}}return this};g.fn.removeLayerGroup=function(d){var c,a,b,f;if(d!==r)for(a=0;a<this.length;a+=1)if(c=g(this[a]),E(this[a]),c.getLayers(),b=c.getLayerGroup(d))for(b=b.slice(0),f=0;f<b.length;f+=1)c.removeLayer(b[f]);return this};g.fn.addLayerToGroup=function(d,c){var a,b,f,e=[c];for(b=0;b<this.length;b+=1)a=g(this[b]),f=a.getLayer(d),f.groups&&(e=f.groups.slice(0),-1===ha(c,f.groups)&&e.push(c)),a.setLayer(f,{groups:e});return this};g.fn.removeLayerFromGroup=function(d,c){var a,b,f,e=[],k;for(b=
0;b<this.length;b+=1)a=g(this[b]),f=a.getLayer(d),f.groups&&(k=ha(c,f.groups),-1!==k&&(e=f.groups.slice(0),e.splice(k,1),a.setLayer(f,{groups:e})));return this};T.cursors=["grab","grabbing","zoom-in","zoom-out"];T.prefix=function(){var d=getComputedStyle(va.documentElement,"");return"-"+(ta.call(d).join("").match(/-(moz|webkit|ms)-/)||""===d.OLink&&["","o"])[1]+"-"}();g.fn.triggerLayerEvent=function(d,c){var a,b,f;for(b=0;b<this.length;b+=1)a=g(this[b]),f=E(this[b]),(d=a.getLayer(d))&&O(a,f,d,c);
return this};g.fn.drawLayer=function(d){var c,a,b;for(c=0;c<this.length;c+=1)b=g(this[c]),(a=K(this[c]))&&(a=b.getLayer(d))&&a.visible&&a._method&&(a._next=h,a._method.call(b,a));return this};g.fn.drawLayers=function(d){var c,a,b=d||{},f,e,k,r,v,B,z,J;(r=b.index)||(r=0);for(c=0;c<this.length;c+=1)if(d=g(this[c]),a=K(this[c])){v=E(this[c]);b.clear!==w&&d.clearCanvas();a=v.layers;for(k=r;k<a.length;k+=1)if(f=a[k],f.index=k,b.resetFire&&(f._fired=w),B=d,z=f,e=k+1,z&&z.visible&&z._method&&(z._next=e?
e:h,z._method.call(B,z)),f._masks=v.transforms.masks.slice(0),f._method===g.fn.drawImage&&f.visible){J=!0;break}if(J)break;f=v;var y=e=z=B=void 0;B=h;for(z=f.intersecting.length-1;0<=z;z-=1)if(B=f.intersecting[z],B._masks){for(y=B._masks.length-1;0<=y;y-=1)if(e=B._masks[y],!e.intersects){B.intersects=w;break}if(B.intersects&&!B.intangible)break}B&&B.intangible&&(B=h);f=B;B=v.event;z=B.type;if(v.drag.layer){e=d;var y=v,H=z,u=void 0,q=void 0,m=void 0,A=m=void 0,F=void 0,m=u=u=m=void 0,m=y.drag,A=(q=
m.layer)&&q.dragGroups||[],u=y.layers;if("mousemove"===H||"touchmove"===H){if(m.dragging||(m.dragging=p,q.dragging=p,q.bringToFront&&(u.splice(q.index,1),q.index=u.push(q)),q._startX=q.x,q._startY=q.y,q._endX=q._eventX,q._endY=q._eventY,O(e,y,q,"dragstart")),m.dragging)for(u=q._eventX-(q._endX-q._startX),m=q._eventY-(q._endY-q._startY),q.dx=u-q.x,q.dy=m-q.y,q.x=u,q.y=m,O(e,y,q,"drag"),u=0;u<A.length;u+=1)if(m=A[u],F=y.layer.groups[m],q.groups&&F)for(m=0;m<F.length;m+=1)F[m]!==q&&(F[m].x+=q.dx,F[m].y+=
q.dy)}else if("mouseup"===H||"touchend"===H)m.dragging&&(q.dragging=w,m.dragging=w,O(e,y,q,"dragstop")),y.drag={}}e=v.lastIntersected;e===h||f===e||!e._hovered||e._fired||v.drag.dragging||(v.lastIntersected=h,e._fired=p,e._hovered=w,O(d,v,e,"mouseout"),d.css({cursor:v.cursor}));f&&(f[z]||V.mouseEvents[z]&&(z=V.mouseEvents[z]),f._event&&f.intersects&&(v.lastIntersected=f,!(f.mouseover||f.mouseout||f.cursors)||v.drag.dragging||f._hovered||f._fired||(f._fired=p,f._hovered=p,O(d,v,f,"mouseover")),f._fired||
(f._fired=p,B.type=h,O(d,v,f,z)),!f.draggable||f.disableEvents||"mousedown"!==z&&"touchstart"!==z||(v.drag.layer=f)));f!==h||v.drag.dragging||d.css({cursor:v.cursor});k===a.length&&(v.intersecting.length=0,v.transforms=ka(na),v.savedTransforms.length=0)}return this};g.fn.addLayer=function(d){var c,a;for(c=0;c<this.length;c+=1)if(a=K(this[c]))a=new G(d),a.layer=p,N(this[c],a,d);return this};T.props=["width","height","opacity","lineHeight"];T.propsObj={};g.fn.animateLayer=function(){function d(a,b,
c){return function(){var d,f;for(f=0;f<T.props.length;f+=1)d=T.props[f],c[d]=c["_"+d];for(var k in c)c.hasOwnProperty(k)&&-1!==k.indexOf(".")&&delete c[k];b.animating&&b.animated!==c||a.drawLayers();c._animating=w;b.animating=w;b.animated=h;e[4]&&e[4].call(a[0],c);O(a,b,c,"animateend")}}function c(a,b,c){return function(d,f){var k,g,h=!1;"_"===f.prop[0]&&(h=!0,f.prop=f.prop.replace("_",""),c[f.prop]=c["_"+f.prop]);-1!==f.prop.indexOf(".")&&(k=f.prop.split("."),g=k[0],k=k[1],c[g]&&(c[g][k]=f.now));
c._pos!==f.pos&&(c._pos=f.pos,c._animating||b.animating||(c._animating=p,b.animating=p,b.animated=c),b.animating&&b.animated!==c||a.drawLayers());e[5]&&e[5].call(a[0],d,f,c);O(a,b,c,"animate",f);h&&(f.prop="_"+f.prop)}}var a,b,f,e=ta.call(arguments,0),k,G;"object"===Z(e[2])?(e.splice(2,0,e[2].duration||h),e.splice(3,0,e[3].easing||h),e.splice(4,0,e[4].complete||h),e.splice(5,0,e[5].step||h)):(e[2]===r?(e.splice(2,0,h),e.splice(3,0,h),e.splice(4,0,h)):da(e[2])&&(e.splice(2,0,h),e.splice(3,0,h)),e[3]===
r?(e[3]=h,e.splice(4,0,h)):da(e[3])&&e.splice(3,0,h));for(b=0;b<this.length;b+=1)if(a=g(this[b]),f=K(this[b]))f=E(this[b]),(k=a.getLayer(e[0]))&&k._method!==g.fn.draw&&(G=Y({},e[1]),G=Va(this[b],k,G),Fa(G,p),Fa(k),k.style=T.propsObj,g(k).animate(G,{duration:e[2],easing:g.easing[e[3]]?e[3]:h,complete:d(a,f,k),step:c(a,f,k)}),O(a,f,k,"animatestart"));return this};g.fn.animateLayerGroup=function(d){var c,a,b=ta.call(arguments,0),f,e;for(a=0;a<this.length;a+=1)if(c=g(this[a]),f=c.getLayerGroup(d))for(e=
0;e<f.length;e+=1)b[0]=f[e],c.animateLayer.apply(c,b);return this};g.fn.delayLayer=function(d,c){var a,b,f,e;c=c||0;for(b=0;b<this.length;b+=1)if(a=g(this[b]),f=E(this[b]),e=a.getLayer(d))g(e).delay(c),O(a,f,e,"delay");return this};g.fn.delayLayerGroup=function(d,c){var a,b,f,e,k;c=c||0;for(b=0;b<this.length;b+=1)if(a=g(this[b]),f=a.getLayerGroup(d))for(k=0;k<f.length;k+=1)e=f[k],a.delayLayer(e,c);return this};g.fn.stopLayer=function(d,c){var a,b,f,e;for(b=0;b<this.length;b+=1)if(a=g(this[b]),f=E(this[b]),
e=a.getLayer(d))g(e).stop(c),O(a,f,e,"stop");return this};g.fn.stopLayerGroup=function(d,c){var a,b,f,e,k;for(b=0;b<this.length;b+=1)if(a=g(this[b]),f=a.getLayerGroup(d))for(k=0;k<f.length;k+=1)e=f[k],a.stopLayer(e,c);return this};(function(d){var c;for(c=0;c<d.length;c+=1)g.fx.step[d[c]]=Wa})("color backgroundColor borderColor borderTopColor borderRightColor borderBottomColor borderLeftColor fillStyle outlineColor strokeStyle shadowColor".split(" "));V.touchEvents={mousedown:"touchstart",mouseup:"touchend",
mousemove:"touchmove"};V.mouseEvents={touchstart:"mousedown",touchend:"mouseup",touchmove:"mousemove"};(function(d){var c;for(c=0;c<d.length;c+=1)Za(d[c])})("click dblclick mousedown mouseup mousemove mouseover mouseout touchstart touchmove touchend".split(" "));g.event.fix=function(d){var c,a;d=bb.call(g.event,d);if(c=d.originalEvent)if(a=c.changedTouches,d.pageX!==r&&d.offsetX===r){if(c=g(d.currentTarget).offset())d.offsetX=d.pageX-c.left,d.offsetY=d.pageY-c.top}else a&&(c=g(d.currentTarget).offset())&&
(d.offsetX=a[0].pageX-c.left,d.offsetY=a[0].pageY-c.top);return d};V.drawings={arc:"drawArc",bezier:"drawBezier",ellipse:"drawEllipse","function":"draw",image:"drawImage",line:"drawLine",path:"drawPath",polygon:"drawPolygon",slice:"drawSlice",quadratic:"drawQuadratic",rectangle:"drawRect",text:"drawText",vector:"drawVector",save:"saveCanvas",restore:"restoreCanvas",rotate:"rotateCanvas",scale:"scaleCanvas",translate:"translateCanvas"};g.fn.draw=function c(a){var b,f,e=new G(a);if(V.drawings[e.type]&&
"function"!==e.type)this[V.drawings[e.type]](a);else for(b=0;b<this.length;b+=1)if(g(this[b]),f=K(this[b]))e=new G(a),N(this[b],e,a,c),e.visible&&e.fn&&e.fn.call(this[b],f,e);return this};g.fn.clearCanvas=function a(b){var f,e,k=new G(b);for(f=0;f<this.length;f+=1)if(e=K(this[f]))k.width===h||k.height===h?(e.save(),e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,this[f].width,this[f].height),e.restore()):(N(this[f],k,b,a),Q(this[f],e,k,k.width,k.height),e.clearRect(k.x-k.width/2,k.y-k.height/2,k.width,
k.height),k._transformed&&e.restore());return this};g.fn.saveCanvas=function b(f){var e,k,g,h,B;for(e=0;e<this.length;e+=1)if(k=K(this[e]))for(h=E(this[e]),g=new G(f),N(this[e],g,f,b),B=0;B<g.count;B+=1)ea(k,h);return this};g.fn.restoreCanvas=function f(e){var k,g,h,B,z;for(k=0;k<this.length;k+=1)if(g=K(this[k]))for(B=E(this[k]),h=new G(e),N(this[k],h,e,f),z=0;z<h.count;z+=1){var J=g,y=B;0===y.savedTransforms.length?y.transforms=ka(na):(J.restore(),y.transforms=y.savedTransforms.pop())}return this};
g.fn.rotateCanvas=function e(k){var g,h,B,z;for(g=0;g<this.length;g+=1)if(h=K(this[g]))z=E(this[g]),B=new G(k),N(this[g],B,k,e),B.autosave&&ea(h,z),za(h,B,z.transforms);return this};g.fn.scaleCanvas=function k(g){var h,B,z,J;for(h=0;h<this.length;h+=1)if(B=K(this[h]))J=E(this[h]),z=new G(g),N(this[h],z,g,k),z.autosave&&ea(B,J),Aa(B,z,J.transforms);return this};g.fn.translateCanvas=function Ta(g){var h,z,J,y;for(h=0;h<this.length;h+=1)if(z=K(this[h]))y=E(this[h]),J=new G(g),N(this[h],J,g,Ta),J.autosave&&
ea(z,y),Ba(z,J,y.transforms);return this};g.fn.drawRect=function v(g){var h,J,y,H,u,q,m,A,F;for(h=0;h<this.length;h+=1)if(J=K(this[h]))y=new G(g),N(this[h],y,g,v),y.visible&&(R(this[h],J,y),Q(this[h],J,y,y.width,y.height),J.beginPath(),y.width&&y.height&&(H=y.x-y.width/2,u=y.y-y.height/2,(A=ab(y.cornerRadius))?(q=y.x+y.width/2,m=y.y+y.height/2,0>y.width&&(F=H,H=q,q=F),0>y.height&&(F=u,u=m,m=F),0>q-H-2*A&&(A=(q-H)/2),0>m-u-2*A&&(A=(m-u)/2),J.moveTo(H+A,u),J.lineTo(q-A,u),J.arc(q-A,u+A,A,3*D/2,2*D,
w),J.lineTo(q,m-A),J.arc(q-A,m-A,A,0,D/2,w),J.lineTo(H+A,m),J.arc(H+A,m-A,A,D/2,D,w),J.lineTo(H,u+A),J.arc(H+A,u+A,A,D,3*D/2,w),y.closed=p):J.rect(H,u,y.width,y.height)),S(this[h],J,y),U(this[h],J,y));return this};g.fn.drawArc=function B(g){var h,y,H;for(h=0;h<this.length;h+=1)if(y=K(this[h]))H=new G(g),N(this[h],H,g,B),H.visible&&(R(this[h],y,H),Q(this[h],y,H,2*H.radius),y.beginPath(),Ja(this[h],y,H,H),S(this[h],y,H),U(this[h],y,H));return this};g.fn.drawEllipse=function z(g){var h,H,u,q,m;for(h=
0;h<this.length;h+=1)if(H=K(this[h]))u=new G(g),N(this[h],u,g,z),u.visible&&(R(this[h],H,u),Q(this[h],H,u,u.width,u.height),q=4/3*u.width,m=u.height,H.beginPath(),H.moveTo(u.x,u.y-m/2),H.bezierCurveTo(u.x-q/2,u.y-m/2,u.x-q/2,u.y+m/2,u.x,u.y+m/2),H.bezierCurveTo(u.x+q/2,u.y+m/2,u.x+q/2,u.y-m/2,u.x,u.y-m/2),S(this[h],H,u),u.closed=p,U(this[h],H,u));return this};g.fn.drawPolygon=function J(g){var h,u,q,m,A,F,M,x,n,l;for(h=0;h<this.length;h+=1)if(u=K(this[h]))if(q=new G(g),N(this[h],q,g,J),q.visible){R(this[h],
u,q);Q(this[h],u,q,2*q.radius);A=2*D/q.sides;F=A/2;m=F+D/2;M=q.radius*L(F);u.beginPath();for(l=0;l<q.sides;l+=1)x=q.x+q.radius*L(m),n=q.y+q.radius*P(m),u.lineTo(x,n),q.concavity&&(x=q.x+(M+-M*q.concavity)*L(m+F),n=q.y+(M+-M*q.concavity)*P(m+F),u.lineTo(x,n)),m+=A;S(this[h],u,q);q.closed=p;U(this[h],u,q)}return this};g.fn.drawSlice=function y(h){var u,q,m,A,F;for(u=0;u<this.length;u+=1)if(g(this[u]),q=K(this[u]))m=new G(h),N(this[u],m,h,y),m.visible&&(R(this[u],q,m),Q(this[u],q,m,2*m.radius),m.start*=
m._toRad,m.end*=m._toRad,m.start-=D/2,m.end-=D/2,m.start=Ia(m.start),m.end=Ia(m.end),m.end<m.start&&(m.end+=2*D),A=(m.start+m.end)/2,F=m.radius*m.spread*L(A),A=m.radius*m.spread*P(A),m.x+=F,m.y+=A,q.beginPath(),q.arc(m.x,m.y,m.radius,m.start,m.end,m.ccw),q.lineTo(m.x,m.y),S(this[u],q,m),m.closed=p,U(this[u],q,m));return this};g.fn.drawLine=function H(h){var g,m,A;for(g=0;g<this.length;g+=1)if(m=K(this[g]))A=new G(h),N(this[g],A,h,H),A.visible&&(R(this[g],m,A),Q(this[g],m,A),m.beginPath(),La(this[g],
m,A,A),S(this[g],m,A),U(this[g],m,A));return this};g.fn.drawQuadratic=function u(g){var h,A,F;for(h=0;h<this.length;h+=1)if(A=K(this[h]))F=new G(g),N(this[h],F,g,u),F.visible&&(R(this[h],A,F),Q(this[h],A,F),A.beginPath(),Ma(this[h],A,F,F),S(this[h],A,F),U(this[h],A,F));return this};g.fn.drawBezier=function q(h){var g,F,M;for(g=0;g<this.length;g+=1)if(F=K(this[g]))M=new G(h),N(this[g],M,h,q),M.visible&&(R(this[g],F,M),Q(this[g],F,M),F.beginPath(),Na(this[g],F,M,M),S(this[g],F,M),U(this[g],F,M));return this};
g.fn.drawVector=function m(g){var h,M,x;for(h=0;h<this.length;h+=1)if(M=K(this[h]))x=new G(g),N(this[h],x,g,m),x.visible&&(R(this[h],M,x),Q(this[h],M,x),M.beginPath(),Qa(this[h],M,x,x),S(this[h],M,x),U(this[h],M,x));return this};g.fn.drawPath=function A(h){var g,x,n,l,C;for(g=0;g<this.length;g+=1)if(x=K(this[g]))if(n=new G(h),N(this[g],n,h,A),n.visible){R(this[g],x,n);Q(this[g],x,n);x.beginPath();for(l=1;p;)if(C=n["p"+l],C!==r)C=new G(C),"line"===C.type?La(this[g],x,n,C):"quadratic"===C.type?Ma(this[g],
x,n,C):"bezier"===C.type?Na(this[g],x,n,C):"vector"===C.type?Qa(this[g],x,n,C):"arc"===C.type&&Ja(this[g],x,n,C),l+=1;else break;S(this[g],x,n);U(this[g],x,n)}return this};g.fn.drawText=function F(M){var x,n,l,C,X,t,r,p,I,w;for(x=0;x<this.length;x+=1)if(g(this[x]),n=K(this[x]))if(l=new G(M),C=N(this[x],l,M,F),l.visible){R(this[x],n,l);n.textBaseline=l.baseline;n.textAlign=l.align;ra(this[x],n,l);X=l.maxWidth!==h?Ra(n,l):l.text.toString().split("\n");sa(this[x],n,l,X);C&&(C.width=l.width,C.height=
l.height);Q(this[x],n,l,l.width,l.height);r=l.x;"left"===l.align?l.respectAlign?l.x+=l.width/2:r-=l.width/2:"right"===l.align&&(l.respectAlign?l.x-=l.width/2:r+=l.width/2);if(l.radius)for(r=$(l.fontSize),l.letterSpacing===h&&(l.letterSpacing=r/500),t=0;t<X.length;t+=1){n.save();n.translate(l.x,l.y);C=X[t];p=C.length;n.rotate(-(D*l.letterSpacing*(p-1))/2);for(w=0;w<p;w+=1)I=C[w],0!==w&&n.rotate(D*l.letterSpacing),n.save(),n.translate(0,-l.radius),n.fillText(I,0,0),n.restore();l.radius-=r;l.letterSpacing+=
r/(1E3*D);n.restore()}else for(t=0;t<X.length;t+=1)C=X[t],p=l.y+t*l.height/X.length-(X.length-1)*l.height/X.length/2,n.shadowColor=l.shadowColor,n.fillText(C,r,p),"transparent"!==l.fillStyle&&(n.shadowColor="transparent"),0!==l.strokeWidth&&n.strokeText(C,r,p);p=0;"top"===l.baseline?p+=l.height/2:"bottom"===l.baseline&&(p-=l.height/2);l._event&&(n.beginPath(),n.rect(l.x-l.width/2,l.y-l.height/2+p,l.width,l.height),S(this[x],n,l),n.closePath());l._transformed&&n.restore()}aa.propCache=l;return this};
g.fn.measureText=function(g){var h,x;h=this.getLayer(g);if(!h||h&&!h._layer)h=new G(g);if(g=K(this[0]))ra(this[0],g,h),x=Ra(g,h),sa(this[0],g,h,x);return h};g.fn.drawImage=function M(x){function n(l,n,t,s,x){return function(){var C=g(l);R(l,n,s);s.width===h&&s.sWidth===h&&(s.width=s.sWidth=I.width);s.height===h&&s.sHeight===h&&(s.height=s.sHeight=I.height);x&&(x.width=s.width,x.height=s.height);s.sWidth!==h&&s.sHeight!==h&&s.sx!==h&&s.sy!==h?(s.width===h&&(s.width=s.sWidth),s.height===h&&(s.height=
s.sHeight),s.cropFromCenter&&(s.sx+=s.sWidth/2,s.sy+=s.sHeight/2),0>s.sy-s.sHeight/2&&(s.sy=s.sHeight/2),s.sy+s.sHeight/2>I.height&&(s.sy=I.height-s.sHeight/2),0>s.sx-s.sWidth/2&&(s.sx=s.sWidth/2),s.sx+s.sWidth/2>I.width&&(s.sx=I.width-s.sWidth/2),Q(l,n,s,s.width,s.height),n.drawImage(I,s.sx-s.sWidth/2,s.sy-s.sHeight/2,s.sWidth,s.sHeight,s.x-s.width/2,s.y-s.height/2,s.width,s.height)):(Q(l,n,s,s.width,s.height),n.drawImage(I,s.x-s.width/2,s.y-s.height/2,s.width,s.height));n.beginPath();n.rect(s.x-
s.width/2,s.y-s.height/2,s.width,s.height);S(l,n,s);n.closePath();s._transformed&&n.restore();ya(n,t,s);s.layer?O(C,t,x,"load"):s.load&&s.load.call(C[0],x);s.layer&&(x._masks=t.transforms.masks.slice(0),s._next&&C.drawLayers({clear:w,resetFire:p,index:s._next}))}}var l,C,r,t,ba,D,I,ua,L,P=aa.imageCache;for(C=0;C<this.length;C+=1)if(l=this[C],r=K(this[C]))t=E(this[C]),ba=new G(x),D=N(this[C],ba,x,M),ba.visible&&(L=ba.source,ua=L.getContext,L.src||ua?I=L:L&&(P[L]&&P[L].complete?I=P[L]:(I=new wa,L.match(/^data:/i)||
(I.crossOrigin=ba.crossOrigin),I.src=L,P[L]=I)),I&&(I.complete||ua?n(l,r,t,ba,D)():(I.onload=n(l,r,t,ba,D),I.src=I.src)));return this};g.fn.createPattern=function(r){function x(){t=l.createPattern(p,C.repeat);C.load&&C.load.call(n[0],t)}var n=this,l,C,p,t,w;(l=K(n[0]))?(C=new G(r),w=C.source,da(w)?(p=g("<canvas />")[0],p.width=C.width,p.height=C.height,r=K(p),w.call(p,r),x()):(r=w.getContext,w.src||r?p=w:(p=new wa,p.crossOrigin=C.crossOrigin,p.src=w),p.complete||r?x():(p.onload=x(),p.src=p.src))):
t=h;return t};g.fn.createGradient=function(g){var x,n=[],l,p,w,t,D,E,I;g=new G(g);if(x=K(this[0])){g.x1=g.x1||0;g.y1=g.y1||0;g.x2=g.x2||0;g.y2=g.y2||0;x=g.r1!==h&&g.r2!==h?x.createRadialGradient(g.x1,g.y1,g.r1,g.x2,g.y2,g.r2):x.createLinearGradient(g.x1,g.y1,g.x2,g.y2);for(t=1;g["c"+t]!==r;t+=1)g["s"+t]!==r?n.push(g["s"+t]):n.push(h);l=n.length;n[0]===h&&(n[0]=0);n[l-1]===h&&(n[l-1]=1);for(t=0;t<l;t+=1){if(n[t]!==h){E=1;I=0;p=n[t];for(D=t+1;D<l;D+=1)if(n[D]!==h){w=n[D];break}else E+=1;p>w&&(n[D]=
n[t])}else n[t]===h&&(I+=1,n[t]=p+(w-p)/E*I);x.addColorStop(n[t],g["c"+(t+1)])}}else x=h;return x};g.fn.setPixels=function x(g){var l,p,r,t,w,D,I,E,L;for(p=0;p<this.length;p+=1)if(l=this[p],r=K(l)){t=new G(g);N(l,t,g,x);Q(this[p],r,t,t.width,t.height);if(t.width===h||t.height===h)t.width=l.width,t.height=l.height,t.x=t.width/2,t.y=t.height/2;if(0!==t.width&&0!==t.height){D=r.getImageData(t.x-t.width/2,t.y-t.height/2,t.width,t.height);I=D.data;L=I.length;if(t.each)for(E=0;E<L;E+=4)w={r:I[E],g:I[E+
1],b:I[E+2],a:I[E+3]},t.each.call(l,w,t),I[E]=w.r,I[E+1]=w.g,I[E+2]=w.b,I[E+3]=w.a;r.putImageData(D,t.x-t.width/2,t.y-t.height/2);r.restore()}}return this};g.fn.getCanvasImage=function(g,n){var l,p=h;0!==this.length&&(l=this[0],l.toDataURL&&(n===r&&(n=1),p=l.toDataURL("image/"+g,n)));return p};g.fn.detectPixelRatio=function(h){var n,l,r,w,t,D,G;for(l=0;l<this.length;l+=1)n=this[l],g(this[l]),r=K(n),G=E(this[l]),G.scaled||(w=window.devicePixelRatio||1,t=r.webkitBackingStorePixelRatio||r.mozBackingStorePixelRatio||
r.msBackingStorePixelRatio||r.oBackingStorePixelRatio||r.backingStorePixelRatio||1,w/=t,1!==w&&(t=n.width,D=n.height,n.width=t*w,n.height=D*w,n.style.width=t+"px",n.style.height=D+"px",r.scale(w,w)),G.pixelRatio=w,G.scaled=p,h&&h.call(n,w));return this};W.clearCache=function(){for(var g in aa)aa.hasOwnProperty(g)&&(aa[g]={})};g.support.canvas=g("<canvas />")[0].getContext!==r;Y(W,{defaults:la,setGlobalProps:R,transformShape:Q,detectEvents:S,closePath:U,setCanvasFont:ra,measureText:sa});g.jCanvas=
W;g.jCanvasObject=G})(jQuery,document,Image,Array,Math,parseFloat,!0,!1,null);