(function($){
var _2=[];
var _3=0;
var _4={};
function Area(_5){
var _6=[];
$.extend(this,{width:_5.width,height:_5.height,ctx:_5.getContext("2d"),save:function(){
this.ctx.save();
_6.push({width:this.width,height:this.height});
},restore:function(){
this.ctx.restore();
$.extend(this,_6.pop());
}});
}
var _7=(function(){
var _8=function(_9,_a){
_9.ctx.translate(_a,_a);
_9.width-=2*_a;
_9.height-=2*_a;
};
return {action:{paint:function(){
}},shrink:_8,defaultShrink:_8,setAction:function(_b){
this.action=_b;
}};
})();
function newPlugin(_c,_d){
return $.extend({},_7,_c,{opts:_d,savedOpts:_d});
}
function pluginFromPlugins(_e){
return newPlugin({paint:function(_f){
_f.save();
this.action.opts=$.extend(true,this.action.savedOpts);
$.each(_e,function(){
this.paint(_f);
});
_f.restore();
},setAction:function(_10){
this.action=_10;
$.each(_e,function(){
this.action=_10;
});
}});
}
var _11=pluginFromPlugins;
function pluginFromName(_12,_13){
var _14=_4[_12];
if(!_14){
throw "Unknown plugin: "+_12;
}
_13=$.extend({},_14.defaultOpts||{},_13);
return newPlugin(_14,_13);
}
function parse(s){
s+=" ";
var _16=0;
function err(m){
msg=m+" at "+_16+": ..."+s.substring(_16)+"\nin "+s;
alert(msg);
throw msg;
}
function cur(){
return s.charAt(_16);
}
function next(){
if(_16>s.length){
throw ("Unexpected end");
}
return s.charAt(_16+1);
}
function eat(){
return s.charAt(_16++);
}
function skipWhite(){
while(/\s/.exec(cur())){
eat();
}
}
function check(c){
skipWhite();
for(var i=0;i<c.length;++i){
if(cur()!=c.charAt(i)){
err("Expected '"+c.charAt(i)+"' found '"+cur()+"'");
}
eat();
}
}
function parseWord(){
skipWhite();
for(var _1a=[];/\w/.exec(cur());_1a.push(eat())){
}
return _1a.join("");
}
function parseNumber(){
skipWhite();
for(var n=[];/\d/.exec(cur());n.push(eat())){
}
return parseInt(n.join(""));
}
function parseString(){
skipWhite();
var s=[],_1d=cur();
if(/[^\'\"]/.exec(_1d)){
err("String expected");
}
eat();
while(cur()!=_1d){
if(cur()=="\\"){
s.eat();
}
s.push(eat());
}
check(_1d);
return s.join("");
}
function parseValue(){
skipWhite();
for(var s=[];/[^;}]/.exec(cur());s.push(eat())){
}
return s.join("");
}
function parseLiteral(){
skipWhite();
if(/\d/.exec(cur())){
return parseNumber();
}
if(/['"]/.exec(cur())){
return parseString();
}
return parseValue();
}
function parseOpts(){
check("{");
skipWhite();
var _1f={};
while(cur()!="}"){
var key=parseWord();
check(":");
_1f[key]=parseLiteral();
skipWhite();
if(cur()=="}"){
break;
}
check(";");
}
check("}");
return _1f;
}
function parsePlugin(){
var _21=parseWord();
skipWhite();
opts=cur()=="{"?parseOpts():{};
return pluginFromName(_21,opts);
}
function parsePlugins(){
check("[");
skipWhite();
var _22=[];
while(cur()!="]"){
_22.push(parsePlugin());
skipWhite();
}
check("]");
return pluginFromPlugins(_22);
}
function parseActors(){
skipWhite();
return cur()=="["?parsePlugins():parsePlugin();
}
function parseAction(){
var _23;
skipWhite();
if(cur()=="("){
eat();
_23=parseApplications();
check(")");
}else{
_23=parsePlugin();
}
return _23;
}
function parseApplication(){
var _24=parseActors();
check("=>");
var _25=parseAction();
_24.setAction(_25);
return _24;
}
function parseApplications(){
var _26=[];
while(true){
_26.push(parseApplication());
skipWhite();
if(cur()!=","){
break;
}
check(",");
}
return _11(_26);
}
return parseApplications();
}
function checkResize(_27,_28){
var _29=$(_27);
var _2a=_29.data("liquid-canvas");
if(!_2a){
return;
}
var _2b=_2a.canvas;
var _2c=$(_2b);
var w=_29.outerWidth();
var h=_29.outerHeight();
if(_28||_2b.width!=w||_2b.height!=h||_2b.offsetTop!=_27.offsetTop||_2b.offsetLeft!=_27.offsetLeft){
_3=100;
_2c.css({left:_27.offsetLeft+"px",top:_27.offsetTop+"px"});
_2b.width=w;
_2b.height=h;
var _2f=new Area(_2b);
_2f.save();
_2a.paint(_2f);
_2f.restore();
}
}
function checkAllResize(_30){
$.each(_2,function(){
checkResize(this,_30);
});
}
function poll(){
checkAllResize();
_3--;
if(_3<0){
_3=0;
setTimeout(poll,1000);
}else{
setTimeout(poll,1000/60);
}
}
jQuery.fn.extend({liquidCanvas:function(_31){
this.each(function(){
var _32;
if(window.G_vmlCanvasManager){
$(this).before("<div width=\"0\" height=\"0\" style=\"position:absolute; top:0px; left:0px;\"></div>");
_32=G_vmlCanvasManager.initElement($(this).prev("div").get(0));
}else{
$(this).before("<canvas width=\"0\" height=\"0\" style=\"position:absolute; top:0px; left:0px;\"></canvas>");
_32=$(this).prev("canvas").get(0);
}
var _33;
if($.isFunction(_31)){
_33=_31;
}else{
var _34=parse(_31);
_33=function(_35){
_34.paint(_35);
};
}
$(this).data("liquid-canvas",{"canvas":_32,"paint":_33});
$(this).css({background:"transparent"});
if($(this).css("position")!="absolute"){
$(this).css({position:"relative"});
}
_2.push(this);
checkResize(this,true);
});
}});
jQuery.extend({registerLiquidCanvasPlugin:function(_36){
_4[_36.name]=$.extend({},_7,_36);
}});
$(document).ready(checkAllResize);
poll();
})(jQuery);

