/*!
jCanvas v5.1
Copyright 2011, Caleb Evans
Licensed under the MIT license
*/
(function(k,w,o,u,C,c,t,m){var p,j,n=k.fn,l=k.extend,D=o.PI,E=o.round,a=o.sin,e=o.cos,h=k.event.fix,b,d;function A(G){if(!G){j=s.prototype=l({},p)}else{l(j,G)}return this}A.version="5.1";p={align:"center",angle:0,baseline:"middle",ccw:false,closed:false,compositing:"source-over",cornerRadius:0,cropFromCenter:true,end:360,fillStyle:"transparent",font:"normal 12pt sans-serif",fromCenter:true,height:0,inDegrees:true,load:null,mask:false,opacity:1,projection:0,r1:null,r2:null,radius:0,repeat:"repeat",rounded:false,scaleX:1,scaleY:1,shadowBlur:3,shadowColor:"transparent",shadowX:0,shadowY:0,sHeight:0,sides:3,source:"",start:0,strokeCap:"butt",strokeJoin:"miter",strokeStyle:"transparent",strokeWidth:1,sWidth:0,sx:null,sy:null,text:"",width:0,x:0,x1:0,x2:0,y:0,y1:0,y2:0};function s(){}j=s.prototype;A();function y(G,H){G.fillStyle=H.fillStyle;G.strokeStyle=H.strokeStyle;G.lineWidth=H.strokeWidth;if(H.rounded){G.lineCap="round";G.lineJoin="round"}else{G.lineCap=H.strokeCap;G.lineJoin=H.strokeJoin}G.shadowOffsetX=H.shadowX;G.shadowOffsetY=H.shadowY;G.shadowBlur=H.shadowBlur;G.shadowColor=H.shadowColor;G.globalAlpha=H.opacity;G.globalCompositeOperation=H.compositing}function g(G,H){if(H.mask){G.save();G.clip()}if(H.closed){G.closePath();G.fill();G.stroke()}else{G.fill();G.stroke();G.closePath()}}function f(G){return G.inDegrees?D/180:1}function z(H,J,I,G){J.toRad=f(J);H.save();if(!J.fromCenter){J.x+=I/2;J.y+=G/2}if(J.angle){H.translate(J.x,J.y);H.rotate(J.angle*J.toRad);H.translate(-J.x,-J.y)}}function B(G){G=G||{};p=l(p,G.props||{});k.jCanvas();if(G.name){k.fn[G.name]=function(I){var M=this,J,H,K,L=l(new s(),I);for(K=0;K<M.length;K+=1){J=M[K];if(!J.getContext){continue}H=J.getContext("2d");y(H,L);L.toRad=f(L);G.fn.call(J,H,L)}return M}}return k.fn[G.name]}k.fn.jCanvas=A;k.fn.loadCanvas=function(G){if(!this[0].getContext){return null}return this[0].getContext(G||"2d")};k.fn.getCanvasImage=function(G){if(!this[0].toDataURL){return null}if(G===m){G="image/png"}else{G=G.replace(/^([a-z]+)$/gi,"image/$1").replace(/jpg/gi,"jpeg")}return this[0].toDataURL(G)};k.fn.draw=function(I){var H=this,G;for(G=0;G<H.length;G+=1){if(!H[G].getContext){continue}I.call(H[G],H[G].getContext("2d"))}return this};k.fn.gradient=function(H){if(!this[0].getContext){return null}var G=this[0].getContext("2d"),M=l(new s(),H),L,K,J=0,I=1;if(M.r1!=null||M.r2!=null){L=G.createRadialGradient(M.x1,M.y1,M.r1,M.x2,M.y2,M.r2)}else{L=G.createLinearGradient(M.x1,M.y1,M.x2,M.y2)}while(M["c"+I]!==m){J+=1;I+=1}for(I=1;I<=J;I+=1){K=E(100/(J-1)*(I-1))/100;if(M["s"+I]===m){M["s"+I]=K}L.addColorStop(M["s"+I],M["c"+I])}return L};k.fn.pattern=function(I){if(!this[0].getContext){return null}var G=this[0].getContext("2d"),M=l(new s(),I),H=new C(),K;if(M.source.src){H=M.source}else{if(M.source){H.src=M.source}}function J(){if(H.complete){K=G.createPattern(H,M.repeat);return true}else{return false}}function N(){if(M.load){M.load.call(this[0],K)}}function L(){J();N()}if(!H.complete&&M.load){H.onload=L}else{if(!J()){H.onload=L}else{N()}}return K};k.fn.clearCanvas=function(H){var G,I,J=l(new s(),H);for(I=0;I<this.length;I+=1){if(!this[I].getContext){continue}G=this[I].getContext("2d");z(G,J,J.width,J.height);if(!J.width&&!J.height){G.clearRect(0,0,this[I].width,this[I].height)}else{G.clearRect(J.x-J.width/2,J.y-J.height/2,J.width,J.height)}}return this};k.fn.saveCanvas=function(){var G;for(G=0;G<this.length;G+=1){if(!this[G].getContext){continue}this[G].getContext("2d").save()}return this};k.fn.restoreCanvas=function(){var G;for(G=0;G<this.length;G+=1){if(!this[G].getContext){continue}this[G].getContext("2d").restore()}return this};k.fn.scaleCanvas=function(H){var G,I,J=l(new s(),H);for(I=0;I<this.length;I+=1){if(!this[I].getContext){continue}G=this[I].getContext("2d");G.save();G.translate(J.x,J.y);G.scale(J.scaleX,J.scaleY);G.translate(-J.x,-J.y)}return this};k.fn.translateCanvas=function(H){var G,I,J=l(new s(),H);for(I=0;I<this.length;I+=1){if(!this[I].getContext){continue}G=this[I].getContext("2d");G.save();G.translate(J.x,J.y)}return this};k.fn.rotateCanvas=function(H){var G,I,J=l(new s(),H);for(I=0;I<this.length;I+=1){if(!this[I].getContext){continue}G=this[I].getContext("2d");z(G,J,0,0)}return this};k.fn.drawRect=function(L){var O,K,J=l(new s(),L),I,N,H,M,G;for(K=0;K<this.length;K+=1){if(!this[K].getContext){continue}O=this[K].getContext("2d");y(O,J);z(O,J,J.width,J.height);O.beginPath();if(J.cornerRadius){J.closed=true;I=J.x-J.width/2;N=J.y-J.height/2;H=J.x+J.width/2;M=J.y+J.height/2;G=J.cornerRadius;if((H-I)-(2*G)<0){G=(H-I)/2}if((M-N)-(2*G)<0){G=(M-N)/2}O.moveTo(I+G,N);O.lineTo(H-G,N);O.arc(H-G,N+G,G,3*D/2,D*2,false);O.lineTo(H,M-G);O.arc(H-G,M-G,G,0,D/2,false);O.lineTo(I+G,M);O.arc(I+G,M-G,G,D/2,D,false);O.lineTo(I,N+G);O.arc(I+G,N+G,G,D,3*D/2,false)}else{O.rect(J.x-J.width/2,J.y-J.height/2,J.width,J.height)}O.restore();g(O,J)}return this};k.fn.drawArc=function(H){var G,I,J=l(new s(),H);if(!J.inDegrees&&J.end===360){J.end=D*2}for(I=0;I<this.length;I+=1){if(!this[I].getContext){continue}G=this[I].getContext("2d");y(G,J);z(G,J,J.radius*2,J.radius*2);G.beginPath();G.arc(J.x,J.y,J.radius,(J.start*J.toRad)-(D/2),(J.end*J.toRad)-(D/2),J.ccw);G.restore();g(G,J)}return this};k.fn.drawEllipse=function(H){var G,J,K=l(new s(),H),I=K.width*4/3;for(J=0;J<this.length;J+=1){if(!this[J].getContext){continue}G=this[J].getContext("2d");y(G,K);z(G,K,K.width,K.height);G.beginPath();G.moveTo(K.x,K.y-K.height/2);G.bezierCurveTo(K.x-I/2,K.y-K.height/2,K.x-I/2,K.y+K.height/2,K.x,K.y+K.height/2);G.bezierCurveTo(K.x+I/2,K.y+K.height/2,K.x+I/2,K.y-K.height/2,K.x,K.y-K.height/2);G.restore();g(G,K)}return this};k.fn.drawLine=function(I){var H,L,M=l(new s(),I),G=2,K=0,J=0;for(L=0;L<this.length;L+=1){if(!this[L].getContext){continue}H=this[L].getContext("2d");y(H,M);H.beginPath();H.moveTo(M.x1,M.y1);while(true){K=M["x"+G];J=M["y"+G];if(K!==m&&J!==m){H.lineTo(K,J);G+=1}else{break}}g(H,M)}return this};k.fn.drawQuad=function(L){var O,K,J=l(new s(),L),I=2,H=0,G=0,N=0,M=0;for(K=0;K<this.length;K+=1){if(!this[K].getContext){continue}O=this[K].getContext("2d");y(O,J);O.beginPath();O.moveTo(J.x1,J.y1);while(true){H=J["x"+I];G=J["y"+I];N=J["cx"+(I-1)];M=J["cy"+(I-1)];if(H!==m&&G!==m&&N!==m&&M!==m){O.quadraticCurveTo(N,M,H,G);I+=1}else{break}}g(O,J)}return this};k.fn.drawBezier=function(Q){var R,P,M=l(new s(),Q),L=2,I=1,K=0,J=0,O=0,H=0,N=0,G=0;for(P=0;P<this.length;P+=1){if(!this[P].getContext){continue}R=this[P].getContext("2d");y(R,M);R.beginPath();R.moveTo(M.x1,M.y1);while(true){K=M["x"+L];J=M["y"+L];O=M["cx"+I];H=M["cy"+I];N=M["cx"+(I+1)];G=M["cy"+(I+1)];if(K!==m&&J!==m&&O!==m&&H!==m&&N!==m&&G!==m){R.bezierCurveTo(O,H,N,G,K,J);L+=1;I+=2}else{break}}g(R,M)}return this};k.fn.drawText=function(H){var G,I,J=l(new s(),H);for(I=0;I<this.length;I+=1){if(!this[I].getContext){continue}G=this[I].getContext("2d");y(G,J);G.textBaseline=J.baseline;G.textAlign=J.align;G.font=J.font;G.strokeText(J.text,J.x,J.y);G.fillText(J.text,J.x,J.y)}return this};k.fn.drawImage=function(M){var P,H,L,J=l(new s(),M),K=new C(),G;if(J.source.src){K=J.source}else{if(J.source){K.src=J.source}}function N(Q){if(K.complete){G=(K.width/K.height);J.sWidth=J.sWidth||K.width;J.sHeight=J.sHeight||K.height;if(J.sWidth>K.width){J.sWidth=K.width}if(J.sHeight>K.height){J.sHeight=K.height}if(J.width===0&&J.sWidth!==K.width){J.width=J.sWidth}if(J.height===0&&J.sHeight!==K.height){J.height=J.sHeight}if(J.sx===null){if(J.cropFromCenter){J.sx=K.width/2}else{J.sx=0}}if(J.sy===null){if(J.cropFromCenter){J.sy=K.height/2}else{J.sy=0}}if(!J.cropFromCenter){J.sx+=J.sWidth/2;J.sy+=J.sHeight/2}if((J.sx-J.sWidth/2)<0){J.sx=J.sWidth/2}if((J.sx+J.sWidth/2)>K.width){J.sx=K.width-J.sWidth/2}if((J.sy-J.sHeight/2)<0){J.sy=J.sHeight/2}if((J.sy+J.sHeight/2)>K.height){J.sy=K.height-J.sHeight/2}if(J.width&&!J.height){J.height=J.width/G}else{if(!J.width&&J.height){J.width=J.height*G}else{if(!J.width&&!J.height){J.width=K.width;J.height=K.height}}}z(Q,J,J.width,J.height);Q.drawImage(K,J.sx-J.sWidth/2,J.sy-J.sHeight/2,J.sWidth,J.sHeight,J.x-J.width/2,J.y-J.height/2,J.width,J.height);Q.restore();return true}else{return false}}function O(){if(J.load){J.load.call(H)}}function I(){N(P);O()}for(L=0;L<this.length;L+=1){H=this[L];if(!H.getContext){continue}P=H.getContext("2d");y(P,J);if(!K.complete&&J.load){K.onload=I}else{if(!N(P)){K.onload=I}else{O()}}}return this};k.fn.drawPolygon=function(M){var R,L,J=l(new s(),M),S=D/J.sides,I=(D/2)+S,Q=(D*2)/J.sides,P=e(Q/2)*J.radius,H,O,G,N,K;J.closed=true;if(J.sides>2){for(L=0;L<this.length;L+=1){if(!this[L].getContext){continue}R=this[L].getContext("2d");y(R,J);z(R,J,J.radius,J.radius);R.beginPath();for(K=0;K<J.sides;K+=1){H=J.x+E(J.radius*e(I));O=J.y+E(J.radius*a(I));if(K===0){R.moveTo(H,O)}else{R.lineTo(H,O)}if(J.projection){G=J.x+E((P+P*J.projection)*e(I+S));N=J.y+E((P+P*J.projection)*a(I+S));R.lineTo(G,N)}I+=Q}R.restore();g(R,J)}}return this};k.fn.setPixels=function(N){var P,H,M,K,I=l(new s(),N),G,J,L,O={};for(M=0;M<this.length;M+=1){H=this[M];if(!H.getContext){continue}P=H.getContext("2d");if(!I.x&&!I.y&&!I.width&&!I.height){I.width=H.width;I.height=H.height;I.x=I.width/2;I.y=I.height/2}z(P,I,I.width,I.height);G=P.getImageData(I.x-I.width/2,I.y-I.height/2,I.width,I.height);J=G.data;L=J.length;O=[];if(I.each!==m){for(K=0;K<L;K+=4){O.index=K/4;O.r=J[K];O.g=J[K+1];O.b=J[K+2];O.a=J[K+3];I.each.call(H,O);J[K]=O.r;J[K+1]=O.g;J[K+2]=O.b;J[K+3]=O.a}}P.putImageData(G,I.x-I.width/2,I.y-I.height/2);P.restore()}return this};function v(H,I){var G;for(G=0;G<H.length;G+=1){I[H[G]]=I["_"+H[G]]}}function x(H,I){var G;for(G=0;G<H.length;G+=1){I["_"+H[G]]=I[H[G]]}}b=["width","height","opacity"];d=["backgroundColor","color","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","fillStyle","strokeStyle","shadowColor"];function i(H){var J,K,I=[],G=1;if(typeof H==="object"){I=H}else{if(H.match(/^[a-z]+$/gi)){if(H==="transparent"){H="rgba(255, 255, 255, 0)"}K=w.documentElement;J=K.style.color;K.style.color=H;H=k.css(K,"color");K.style.color=J}if(H.match(/^\#/gi)){if(H.length===4){H=H.replace(/([0-9a-f])/gi,"$1$1")}I=H.match(/[0-9a-f]{2}/gi);I[0]=t(I[0],16);I[1]=t(I[1],16);I[2]=t(I[2],16)}else{if(H.match(/^rgb/gi)){I=H.match(/[0-9\.]+/gi);if(H.match(/\%/gi)){G=2.55}I[0]=I[0]*G;I[1]=I[1]*G;I[2]=I[2]*G}}if(H.indexOf("rgba")!==-1){I[3]=c(I[3])}else{I[3]=1}}return I}function F(H,G){H.now[G]=H.start[G]+(H.end[G]-H.start[G])*H.pos;if(G<3){H.now[G]=E(H.now[G])}}function q(G){if(typeof G.start!=="object"){G.start=i(G.start);G.end=i(G.end)}G.now=[];F(G,0);F(G,1);F(G,2);F(G,3);G.now="rgba("+G.now.join(",")+")";if(G.elem.style){G.elem.style[G.prop]=G.now}else{G.elem[G.prop]=G.now}}function r(G){var H;for(H=0;H<G.length;H+=1){if(!k.fx.step[G[H]]){k.fx.step[G[H]]=q}}}k.fn.getLayers=function(){var G=this[0],H;if(!G||!G.getContext){return[]}H=k.data(G,"layers");if(H===m){H=[];k.data(G,"layers",H)}return H};k.fn.getLayer=function(G){G=G||0;return this.getLayers()[G]};k.fn.addLayer=function(I){var M=this,H,K,G,J,L=l(I,new s(),k.extend({},I));L.method=L.fn||L.method;L.layer=true;for(J=0;J<M.length;J+=1){H=k(M[J]);if(!M[J].getContext){continue}K=H.getLayers();if(typeof L==="function"){L.method="draw"}K.push(L)}return M};k.fn.removeLayer=function(G){G=G||0;this.getLayers().splice(G,1);return this};k.fn.drawLayers=function(){var M=this,H,G,L,K,J,I;for(J=0;J<M.length;J+=1){H=k(M[J]);if(!H[0].getContext){continue}G=H[0].getContext("2d");K=H.getLayers();G.clearRect(0,0,H[0].width,H[0].height);for(I=0;I<K.length;I+=1){L=K[I];if(L.method==="draw"){L.call(H[0],G)}else{if(n[L.method]){n[L.method].call(H,L)}}}}return M};k.fn.animateLayer=function(){var L=this,H=u.prototype.slice.call(arguments,0),G,K,I,J;if(typeof H[0]==="object"&&!H[0].method){H.unshift(0)}if(H[2]===m){H.splice(2,0,null);H.splice(3,0,null);H.splice(4,0,function(){})}else{if(typeof H[2]==="function"){H.splice(2,0,null);H.splice(3,0,null)}}if(H[3]===m){H[3]=null;H.splice(4,0,function(){})}else{if(typeof H[3]==="function"){H.splice(3,0,null)}}if(H[4]===m){H[4]=function(){}}for(J=0;J<L.length;J+=1){G=k(L[J]);if(H[0].layer){I=H[0]}else{I=G.getLayers()[H[0]]}if(!I||I.method==="draw"){continue}if(I.method==="drawImage"){H[1].width=H[1].width||1e-10;H[1].height=H[1].height||1e-10;I.width=I.width||1e-10;I.height=I.height||1e-10}I=l(I,j,k.extend({},I));x(b,I);x(b,H[1]);k(I).animate(H[1],{duration:H[2],easing:(k.easing[H[3]]?H[3]:null),complete:(function(M){return function(){v(b,I);M.drawLayers(true);H[4].call(M[0])}}(G)),step:(function(M,N){return function(){v(b,N);M.drawLayers(true)}}(G,I))})}return L};k.event.fix=function(G){G=h.call(k.event,G);if(G.offsetX==null&&G.offsetY==null){var H=k(G.target).offset();G.offsetX=G.pageX-H.left;G.offsetY=G.pageY-H.top}return G};k.support.canvas=(w.createElement("canvas").getContext!=null);r(d);A.defaults=p;A.prefs=j;A.extend=B;k.jCanvas=A}(jQuery,document,Math,Array,Image,parseFloat,parseInt));
