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