JSmarty.Compiler=JSmarty.Classes.create({$ldelim:null,$rdelim:null,init:function(H){var k=JSmarty.Classes.Buffer;var D=JSmarty.Compiler.Context;var F=JSmarty.Compiler;var f=H.left_delimiter;var w=H.right_delimiter;var C=/\r?\n/g;var O=RegExp(f+"\\/(.*?)"+w,"g");var q=RegExp(f+"[^"+w+"]*"+w,"g");var i=RegExp(F.VALSYMBL,"g");var d=RegExp(F.VALSYMBL+"smarty.","g");function I(S,V){switch(V){case "pre":S=S.replace(C,"\\n");break;case "post":S=S.replace(d,"$.$");S=S.replace(i,"$v.");break;}return S;}function r(){O.compile(f+"\\/(.*?)"+w,"g");q.compile(f+"[^"+w+"]*"+w,"g");}function j(){var V=false;if(f!=H.left_delimiter){V=true;f=H.left_delimiter;}if(w!=H.right_delimiter){V=true;w=H.right_delimiter;}return V;}this.execute=function(V){var Y=new k();var A=new D();var L,G,s,S,a,K,y=0;var Z=f.length,N=-w.length;if(j()){r();}A.set("ldelim",H.left_delimiter);A.set("rdelim",H.right_delimiter);A.set("plugins_dir",H.plugins_dir);V=this.escape(V);Y.append(F.HEADER);S=O;while((s=S.exec(V))!=null){A.addElement("block",s[1]);}S=q;while((s=S.exec(V))!=null){K=s[0];a=V.indexOf(K,y);L=F.newString(V.slice(y,a),A);Y.append(L.prefix(),L.toString(),L.suffix());G=F.newModule(K.slice(Z,N),A);Y.append(G.prefix(),G.toString(),G.suffix());y=a+K.length;}L=F.newString(V.slice(y),A);Y.append(L.prefix(),L.toString(),L.suffix(),"return $b.toString();");return I(Y.toString(),"post");};this.getRenderer=function(){return H;};},escape:function(q){var i=this.getRenderer(),d=i.left_delimiter,I=i.right_delimiter;return q.replace(RegExp("("+d+"[^"+I+"]*"+I+")\\r?\\n","g"),"$1").replace(/\\/g,"\\\\").replace(/\t/g,"\\t").replace(/\r?\n/g,"\\n");},isDelimiterChanged:function(){var d=this.getRenderer();return !((this.$ldelim==d.left_delimiter)&&(this.$rdelim==d.right_deliiter));},updatePatternObject:function(d){if(!d){return ;}}});JSmarty.Classes.mixin(JSmarty.Compiler,{VALSYMBL:"@@COMPILER::VARIABLE@@",FNCSYMBL:"@@COMPILER::FUNCTION@@",MODSYMBL:"@@COMPILER::MODIFIER@@",HEADER:"var $B = JSmarty.Classes.Buffer, $v = $.$vars, $b = new $B($);",PLAINELM:{strip:true,literal:true,javascript:true},toUcfirst:function(d){return d.slice(0,1).toUpperCase().concat(d.slice(1));},isBuiltIn:function(d){return (this.toUcfirst(d) in this);},escape:function(d){return d.replace(/\\/g,"\\\\").replace(/\t/g,"\\t").replace(/\r?\n/g,"\\n");},newString:function(i,d){var I;I=(d.isPlain())?new this.Plains(i):new this.String(i);I.parse(d);return I;},newModule:function(f,w){var q,d,I,r,k=f.slice(0,1);var C=0,i=d=-1,H=w.isPlain();switch(k){case "*":q=new this.String();break;case "#":q=new this.String();break;case "\"":case "'":do{C=f.indexOf(k,C+1);}while(f.charAt(C-1)=="\\");q=new this.String(f);q.set("imp",f.indexOf("|",++C)+1);q.set("sString",f.slice(0,C));break;case "$":d=f.indexOf("|");C=(-1<d)?d++:f.length;q=new this.Variable(f);q.set("imp",d);q.set("name",f.slice(1,C));break;case "/":I=this.toUcfirst(w.setTree(f.slice(1),true));r=this.toUcfirst(w.typeOf(I.toLowerCase()));q=(I in this)?new this[I](f):new this[r](f);break;default:if(w.isPlain()){break;}i=f.indexOf(" ");d=f.indexOf("|");C=(-1<i)?i++:(-1<d)?d++:f.length;I=this.toUcfirst(w.setTree(f.slice(0,C),false));r=this.toUcfirst(w.typeOf(I.toLowerCase()));q=(I in this)?new this[I](f):new this[r](f);q.set("iap",i);q.set("imp",d);q.set("bTerminal",false);q.set("name",I.toLowerCase());break;}if(H&&w.isPlain()){q=new this.Plainm(f);}q.parse(w);return q;}});JSmarty.Compiler.Context=JSmarty.Classes.create({tags:null,blockElement:null,plainElement:null,iPlain:-1,ldelim:"{",rdelim:"}",className:"Context",set:function(d,I){this[d]=I;},get:function(d){return this[d];},init:function(){var d=JSmarty.Plugin["util.clone"];this.tags=[],this.blockElement={};this.plainElement=d(JSmarty.Compiler.PLAINELM);},setTree:function(q,I){var d=this.tags,i=this.plainElement;if(q in this.blockElement){if(I){if(q!=d.pop()){JSmarty.Logger.invoke("error","syntax error");}if(q in i&&this.iPlain==d.length){this.iPlain=-1;}}else{d.push(q);if(q in i&&this.iPlain==-1){this.iPlain=d.length-1;}}}return q;},isPlain:function(){return (0<=this.iPlain);},addElement:function(I,d){switch(I){case "block":this.blockElement[d]=true;break;case "plain":this.plainElement[d]=true;break;}},typeOf:function(d){var I=JSmarty.Plugin;switch(true){case (JSmarty.Compiler.isBuiltIn(d)):return "builtin";case (d in this.blockElement):return "block";case (I.isEnabled("function."+d,this.plugins_dir)):return "function";case (I.isEnabled("compiler."+d,this.plugins_dir)):return "compiler";}return "function";}});JSmarty.Compiler.Module=JSmarty.Classes.create({imp:-1,iap:-1,name:null,text:null,sPrefix:"$b.append(",sSuffix:");",sString:null,bTerminal:true,parse:function(d){return this;},prefix:function(){return this.sPrefix;},suffix:function(){return this.sSuffix;},isTerminal:function(){return this.bTerminal;},init:function(d){this.text=d;},toModify:function(){if(this.imp<0){return "{}";}var I,k,w=false;var d=JSmarty.Compiler.VALSYMBL;var q=this.text.slice(this.imp).split("");for(I=0,k=q.length;I<=k;I++){switch(q[I]){case "$":q[I]=d;break;case "\"":case "'":w=q[I++];while(q[I]!=w&&I<=k){I++;}if(k+1<I){this._error();}if(q[I-1]=="\\"){I--;}break;case ":":q[I]=(w)?",":"\":[,";w=true;break;case "|":q[I]=(w)?"],\"":"\":[],\"";w=false;break;}}q[I]=(w)?"":"\":[";return "{\""+q.join("")+"]}";},toParams:function(){if(this.iap<0){return "{}";}var I,w,k;var d=JSmarty.Compiler.VALSYMBL;var q=this.text.slice(this.iap).split("");outerloop:for(I=0,k=q.length;I<=k;I++){switch(q[I]){case "$":q[I]=d;break;case "=":q[I]=":";break;case " ":q[I++]=",";while(q[I]<=" "){q[I++]="";}break;case "\"":case "'":w=q[I++];while(q[I]!=w&&I<=k){++I;}if(k<I){new Error("template syntax error");}if(q[I-1]=="\\"){I--;}break;case "|":q=q.slice(0,I);this.imp=this.iap+I+1;breakouterloop;}}return "{"+q.join("")+"}";},toObject:function(){var d=/([^:,]+):('|"|)([^,]+)\2/g;return function(I){var i,q={};I=I.slice(1,I.length-1);while((i=d.exec(I))!=null){q[i[1]]=i[3];}return q;};}(),getText:function(){return this.escape(this.text);},getName:function(){return this.quote(this.name);},quote:function(d){return (d)?"'"+d+"'":"";},escape:function(d){return d.replace(/'/g,"\\'");},set:function(d,I){this[d]=I;},get:function(d){return this[d];},toString:function(){return this.sString;}});JSmarty.Compiler.Literal=JSmarty.Classes.create(JSmarty.Compiler.Module,{sPrefix:"",sSuffix:"",sString:"');",parse:function(){if(!this.isTerminal()){this.sPrefix="$b.modify(";this.sString=[this.toModify(),"'"];}return this;}});JSmarty.Compiler.String=JSmarty.Classes.create(JSmarty.Compiler.Module,{sString:"",parse:function(k){var d,I,q,i=this.sString;switch(true){case (i==""):q=this.getText();this.sString=this.quote(q);if(q==""){this.sPrefix=this.sString=this.sSuffix="";}return this;case (i!=""):d=this.toModify();I=this.escape(this.sString);this.sString="$b.append("+I+").modify("+d+");";this.sPrefix=this.sSuffix="";return this;}}});JSmarty.Compiler.Compiler=JSmarty.Classes.create(JSmarty.Compiler.Module,{sPrefix:"",sSuffix:"",parse:function(d){var I=JSmarty.Plugin.get("compiler."+this.getName().slice(1,-1));this.sString=I(this,d);return this;}});JSmarty.Compiler.Plainm=JSmarty.Classes.create(JSmarty.Compiler.Module,{parse:function(d){this.sPrefix=d.get("ldelim");this.sSuffix=d.get("rdelim");this.sString=this.getText();return this;}});JSmarty.Compiler.Plains=JSmarty.Classes.create(JSmarty.Compiler.Module,{sPrefix:"",sSuffix:"",sString:"",parse:function(){this.sString=this.getText();return this;}});JSmarty.Compiler.Plugin=JSmarty.Classes.create(JSmarty.Compiler.Module,{sPrefix:"",sSuffix:"",sString:"",parse:function(){this.sString=this.getText();return this;}});JSmarty.Compiler.Variable=JSmarty.Classes.create(JSmarty.Compiler.Module,{parse:function(){var d=this.toModify();var I=JSmarty.Compiler.VALSYMBL+this.get("name");this.sString=I+").modify("+d+"";return this;}});JSmarty.Compiler.Function=JSmarty.Classes.create(JSmarty.Compiler.Module,{sPrefix:"$b.plugin(",parse:function(d){this.sString=[this.getName(),this.toParams(),this.toModify()].toString();return this;}});JSmarty.Compiler.Ldelim=JSmarty.Classes.create(JSmarty.Compiler.Module,{sString:"$.left_delimiter"});JSmarty.Compiler.Rdelim=JSmarty.Classes.create(JSmarty.Compiler.Module,{sString:"$.right_delimiter"});JSmarty.Compiler.Strip=JSmarty.Classes.create(JSmarty.Compiler.Literal,{sString:"').replace(/\\n/g,''));",parse:function(d){this.getSuper("parse").call(this,d);if(!this.isTerminal()){this.sString+="'+('";}return this;}});JSmarty.Compiler.Block=JSmarty.Classes.create(JSmarty.Compiler.Module,{sPrefix:"$b.plugin(",parse:function(){if(this.isTerminal()){this.sPrefix="";this.sString="return $b.toString();}())";}else{this.sSuffix="(function(){var $b = new $B($);";this.sString=[this.getName(),this.toParams(),this.toModify(),""].toString();}return this;}});JSmarty.Compiler.Section=JSmarty.Classes.create(JSmarty.Compiler.Module,{sSuffix:"",parse:function(C){if(this.isTerminal()){this.sPrefix="";this.sString="};return $b.toString();}()));";return this;}var q=this.toObject(this.toParams());var i,d=q.name||"i";var I=new JSmarty.Classes.Buffer();var w=new JSmarty.Classes.Buffer();w.append(d,"=",q.start||0);w.append(d,"<=",q.max||isNaN(Number(q.loop))?q.loop+".length-1":q.loop);w.append(d,"+=",q.step||1);I.append("(function(){var ",d,", $b = new $B($);");I.appendIf(q.name)("$.$section.",q.name,"={total:0,index:-1,iteration:0};","var $l=$.$section.",q.name,";","$l.first=true,$l.last=false;","for(",w.toString(";"),"){$l.total++;};");I.append("for(",w.toString(";"),"){");I.appendIf(q.name)("$l.index++, $l.rownum = $l.iteration++;","$l.first=($l.index==0), $l.last=($l.iteration==$l.total);");this.sString=I.toString("\n");return this;}});JSmarty.Compiler.Sectionelse=JSmarty.Classes.create(JSmarty.Compiler.Module,{sPrefix:"",sSuffix:"",sString:"}; if(!$l.total){"});JSmarty.Compiler.Foreach=JSmarty.Classes.create(JSmarty.Compiler.Module,{sSuffix:"",parse:function(){if(this.isTerminal()){this.sPrefix="";this.sString="};return $b.toString();}()));";return this;}var d=new JSmarty.Classes.Buffer();var I=this.toObject(this.toParams());d.append("(function(){var $b = new $B($);");d.appendIf(I.name)("$.$foreach.",I.name,"={total:0,index:-1,iteration:0};","var $f=$.$foreach.",I.name,";","$f.first=true,$f.last=false;","for(var k in ",I.from,"){$f.total++;};");d.append("for(var k in ",I.from,"){");d.appendIf(I.key)("$v.",I.key,"=k;");d.appendIf(I.item)("$v.",I.item,"=",I.from,"[k];");d.appendIf(I.name)("$f.index++, $f.iteration++;","$f.first=($f.index==0), $f.last=($f.iteration==$f.total);");this.sString=d.toString("\n");return this;}});JSmarty.Compiler.Foreachelse=JSmarty.Classes.create(JSmarty.Compiler.Module,{sPrefix:"",sSuffix:"",sString:"}; if(!k){"});JSmarty.Compiler.If=JSmarty.Classes.create(JSmarty.Compiler.Module,{sSuffix:"",sPrefix:"",OPERATORS:{eq:"==",ne:"!=",neq:"!=",gt:">",lt:"<",ge:">=",gte:">=",le:"<=",lte:"<=",not:"!",and:"&&",or:"||",mod:"%"},parse:function(d){if(this.isTerminal()){this.sString="}\n";return ;}this.sString="if("+this.toExpression()+"){";},toExpression:function(){var I=new JSmarty.Classes.Buffer();var d=this.get("iap"),r=this.OPERATORS;var q,w,C,k=this.text.slice(this.iap).split("");outerloop:for(q=0,w=k.length;q<=w;q++){switch(k[q]){case "$":k[q++]=JSmarty.Compiler.VALSYMBL;break;case "\"":case "'":C=k[q++];while(k[q]!=C&&q<=w){++q;}if(w+1<q){this._error();}if(k[q-1]=="\\"){q--;}break;case " ":C="";while(k[++q]!=" "&&q<=w){C+=k[q],k[q]="";}if(w+1<q){this._error();}k[q]=((r[C])?r[C]:C)+" ";break;case "|":k.splice(q);breakouterloop;}}return I.append("(function(){ try{ return (",k.join(""),"); }catch(e){ return false; }; })()").toString();}});JSmarty.Compiler.Elseif=JSmarty.Classes.create(JSmarty.Compiler.If,{parse:function(){this.sString="}else if("+this.toExpression()+"){";return this;}});JSmarty.Compiler.Else=JSmarty.Classes.create(JSmarty.Compiler.Module,{sPrefix:"",sSuffix:"",sString:"}else{"});