(function(a){a.registerLiquidCanvasPlugin({name:"rect",paint:function(b){b.ctx.beginPath();b.ctx.rect(0,0,b.width,b.height);b.ctx.closePath();if(this.action){this.action.paint(b)}}});a.registerLiquidCanvasPlugin({name:"roundedRect",defaultOpts:{radius:20,topLeft:"true",topRight:"true",bottomRight:"true",bottomLeft:"true"},paint:function(d){var b=d.ctx;var c=this.opts;b.beginPath();b.moveTo(0,c.radius);if(c.bottomLeft=="true"){b.lineTo(0,d.height-c.radius);b.quadraticCurveTo(0,d.height,c.radius,d.height)}else{b.lineTo(0,d.height)}if(c.bottomRight=="true"){b.lineTo(d.width-c.radius,d.height);b.quadraticCurveTo(d.width,d.height,d.width,d.height-c.radius)}else{b.lineTo(d.width,d.height)}if(c.topRight=="true"){b.lineTo(d.width,c.radius);b.quadraticCurveTo(d.width,0,d.width-c.radius,0)}else{b.lineTo(d.width,0)}if(c.topLeft=="true"){b.lineTo(c.radius,0);b.quadraticCurveTo(0,0,0,c.radius)}else{b.lineTo(0,0)}b.closePath();if(this.action){this.action.paint(d)}},shrink:function(c,b){this.defaultShrink(c,b);this.opts.radius-=b}});a.registerLiquidCanvasPlugin({name:"fill",defaultOpts:{color:"#aaa"},paint:function(b){b.ctx.fillStyle=this.opts.color;this.action.paint(b);b.ctx.fill()}});a.registerLiquidCanvasPlugin({name:"image",defaultOpts:{url:""},paint:function(b){var c=new Image();c.src=this.opts.url;c.onload=function(){b.ctx.drawImage(this,0,0)}}});a.registerLiquidCanvasPlugin({name:"gradient",defaultOpts:{from:"#fff",to:"#666"},paint:function(b){var c=b.ctx.createLinearGradient(0,0,0,b.height);c.addColorStop(0,this.opts.from);c.addColorStop(1,this.opts.to);b.ctx.fillStyle=c;this.action.paint(b);b.ctx.fill()}});a.registerLiquidCanvasPlugin({name:"shadow",defaultOpts:{width:3,color:"#000",shift:2},paint:function(d){var b=this.opts.width;d.ctx.fillStyle=this.opts.color;d.ctx.globalAlpha=1/b;for(var c=0;c<b;++c){this.action.paint(d);d.ctx.fill();this.action.shrink(d,1)}d.ctx.globalAlpha=1;d.ctx.translate(0,-this.opts.shift)}});a.registerLiquidCanvasPlugin({name:"border",defaultOpts:{color:"#8f4",width:3},paint:function(b){var c=this.opts.width;b.ctx.strokeStyle=this.opts.color;b.ctx.lineWidth=c;this.action.shrink(b,c/2);this.action.paint(b);b.ctx.stroke();this.action.shrink(b,c/2)}})})(jQuery);