var TrimPath;
(function(){
if(TrimPath==null){
TrimPath=new Object();
}
if(TrimPath.evalEx==null){
TrimPath.evalEx=function(_1){
return eval(_1);
};
}
var _2;
if(Array.prototype.pop==null){
Array.prototype.pop=function(){
if(this.length===0){
return _2;
}
return this[--this.length];
};
}
if(Array.prototype.push==null){
Array.prototype.push=function(){
for(var i=0;i<arguments.length;++i){
this[this.length]=arguments[i];
}
return this.length;
};
}
TrimPath.parseTemplate=function(_4,_5,_6){
if(_6==null){
_6=TrimPath.parseTemplate_etc;
}
var _7=_8(_4,_5,_6);
var _9=TrimPath.evalEx(_7,_5,1);
if(_9!=null){
return new _6.Template(_5,_4,_7,_9,_6);
}
return null;
};
try{
String.prototype.process=function(_a,_b){
var _c=TrimPath.parseTemplate(this,null);
if(_c!=null){
return _c.process(_a,_b);
}
return this;
};
}
catch(e){
}
TrimPath.parseTemplate_etc={};
TrimPath.parseTemplate_etc.statementTag="forelse|for|if|elseif|else|var|macro";
TrimPath.parseTemplate_etc.statementDef={"if":{delta:1,prefix:"if (",suffix:") {",paramMin:1},"else":{delta:0,prefix:"} else {"},"elseif":{delta:0,prefix:"} else if (",suffix:") {",paramDefault:"true"},"/if":{delta:-1,prefix:"}"},"for":{delta:1,paramMin:3,prefixFunc:function(_d,_e,_f,etc){
if(_d[2]!="in"){
throw new etc.ParseError(_f,_e.line,"bad for loop statement: "+_d.join(" "));
}
var _11=_d[1];
var _12="__LIST__"+_11;
return ["var ",_12," = ",_d[3],";","var __LENGTH_STACK__;","if (typeof(__LENGTH_STACK__) == 'undefined' || !__LENGTH_STACK__.length) __LENGTH_STACK__ = new Array();","__LENGTH_STACK__[__LENGTH_STACK__.length] = 0;","if ((",_12,") != null) { ","var ",_11,"_ct = 0;","for (var ",_11,"_index in ",_12,") { ",_11,"_ct++;","if (typeof(",_12,"[",_11,"_index]) == 'function') {continue;}","__LENGTH_STACK__[__LENGTH_STACK__.length - 1]++;","var ",_11," = ",_12,"[",_11,"_index];"].join("");
}},"forelse":{delta:0,prefix:"} } if (__LENGTH_STACK__[__LENGTH_STACK__.length - 1] == 0) { if (",suffix:") {",paramDefault:"true"},"/for":{delta:-1,prefix:"} }; delete __LENGTH_STACK__[__LENGTH_STACK__.length - 1];"},"var":{delta:0,prefix:"var ",suffix:";"},"macro":{delta:1,prefixFunc:function(_13,_14,_15,etc){
var _17=_13[1].split("(")[0];
return ["var ",_17," = function",_13.slice(1).join(" ").substring(_17.length),"{ var _OUT_arr = []; var _OUT = { write: function(m) { if (m) _OUT_arr.push(m); } }; "].join("");
}},"/macro":{delta:-1,prefix:" return _OUT_arr.join(''); };"}};
TrimPath.parseTemplate_etc.modifierDef={"eat":function(v){
return "";
},"escape":function(s){
return String(s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
},"capitalize":function(s){
return String(s).toUpperCase();
},"default":function(s,d){
return s!=null?s:d;
}};
TrimPath.parseTemplate_etc.modifierDef.h=TrimPath.parseTemplate_etc.modifierDef.escape;
TrimPath.parseTemplate_etc.Template=function(_1d,_1e,_1f,_20,etc){
this.process=function(_22,_23){
if(_22==null){
_22={};
}
if(_22._MODIFIERS==null){
_22._MODIFIERS={};
}
if(_22.defined==null){
_22.defined=function(str){
return (_22[str]!=undefined);
};
}
for(var k in etc.modifierDef){
if(_22._MODIFIERS[k]==null){
_22._MODIFIERS[k]=etc.modifierDef[k];
}
}
if(_23==null){
_23={};
}
var _26=[];
var _27={write:function(m){
_26.push(m);
}};
try{
_20(_27,_22,_23);
}
catch(e){
if(_23.throwExceptions==true){
throw e;
}
var _29=new String(_26.join("")+"[ERROR: "+e.toString()+(e.message?"; "+e.message:"")+"]");
_29["exception"]=e;
return _29;
}
return _26.join("");
};
this.name=_1d;
this.source=_1e;
this.sourceFunc=_1f;
this.toString=function(){
return "TrimPath.Template ["+_1d+"]";
};
};
TrimPath.parseTemplate_etc.ParseError=function(_2a,_2b,_2c){
this.name=_2a;
this.line=_2b;
this.message=_2c;
};
TrimPath.parseTemplate_etc.ParseError.prototype.toString=function(){
return ("TrimPath template ParseError in "+this.name+": line "+this.line+", "+this.message);
};
var _8=function(_2d,_2e,etc){
_2d=_30(_2d);
var _31=["var TrimPath_Template_TEMP = function(_OUT, _CONTEXT, _FLAGS) { with (_CONTEXT) {"];
var _32={stack:[],line:1};
var _33=-1;
while(_33+1<_2d.length){
var _34=_33;
_34=_2d.indexOf("{",_34+1);
while(_34>=0){
var _35=_2d.indexOf("}",_34+1);
var _36=_2d.substring(_34,_35);
var _37=_36.match(/^\{(cdata|minify|eval)/);
if(_37){
var _38=_37[1];
var _39=_34+_38.length+1;
var _3a=_2d.indexOf("}",_39);
if(_3a>=0){
var _3b;
if(_3a-_39<=0){
_3b="{/"+_38+"}";
}else{
_3b=_2d.substring(_39+1,_3a);
}
var _3c=_2d.indexOf(_3b,_3a+1);
if(_3c>=0){
_3d(_2d.substring(_33+1,_34),_31);
var _3e=_2d.substring(_3a+1,_3c);
if(_38=="cdata"){
_3f(_3e,_31);
}else{
if(_38=="minify"){
_3f(_40(_3e),_31);
}else{
if(_38=="eval"){
if(_3e!=null&&_3e.length>0){
_31.push("_OUT.write( (function() { "+_3e+" })() );");
}
}
}
}
_34=_33=_3c+_3b.length-1;
}
}
}else{
if(_2d.charAt(_34-1)!="$"&&_2d.charAt(_34-1)!="\\"){
var _41=(_2d.charAt(_34+1)=="/"?2:1);
if(_2d.substring(_34+_41,_34+10+_41).search(TrimPath.parseTemplate_etc.statementTag)==0){
break;
}
}
}
_34=_2d.indexOf("{",_34+1);
}
if(_34<0){
break;
}
var _35=_2d.indexOf("}",_34+1);
if(_35<0){
break;
}
_3d(_2d.substring(_33+1,_34),_31);
_42(_2d.substring(_34,_35+1),_32,_31,_2e,etc);
_33=_35;
}
_3d(_2d.substring(_33+1),_31);
if(_32.stack.length!=0){
throw new etc.ParseError(_2e,_32.line,"unclosed, unmatched statement(s): "+_32.stack.join(","));
}
_31.push("}}; TrimPath_Template_TEMP");
return _31.join("");
};
var _42=function(_43,_44,_45,_46,etc){
var _48=_43.slice(1,-1).split(" ");
var _49=etc.statementDef[_48[0]];
if(_49==null){
_3d(_43,_45);
return;
}
if(_49.delta<0){
if(_44.stack.length<=0){
throw new etc.ParseError(_46,_44.line,"close tag does not match any previous statement: "+_43);
}
_44.stack.pop();
}
if(_49.delta>0){
_44.stack.push(_43);
}
if(_49.paramMin!=null&&_49.paramMin>=_48.length){
throw new etc.ParseError(_46,_44.line,"statement needs more parameters: "+_43);
}
if(_49.prefixFunc!=null){
_45.push(_49.prefixFunc(_48,_44,_46,etc));
}else{
_45.push(_49.prefix);
}
if(_49.suffix!=null){
if(_48.length<=1){
if(_49.paramDefault!=null){
_45.push(_49.paramDefault);
}
}else{
for(var i=1;i<_48.length;i++){
if(i>1){
_45.push(" ");
}
_45.push(_48[i]);
}
}
_45.push(_49.suffix);
}
};
var _3d=function(_4b,_4c){
if(_4b.length<=0){
return;
}
var _4d=0;
var _4e=_4b.length-1;
while(_4d<_4b.length&&(_4b.charAt(_4d)=="\n")){
_4d++;
}
while(_4e>=0&&(_4b.charAt(_4e)==" "||_4b.charAt(_4e)=="\t")){
_4e--;
}
if(_4e<_4d){
_4e=_4d;
}
if(_4d>0){
_4c.push("if (_FLAGS.keepWhitespace == true) _OUT.write(\"");
var s=_4b.substring(0,_4d).replace("\n","\\n");
if(s.charAt(s.length-1)=="\n"){
s=s.substring(0,s.length-1);
}
_4c.push(s);
_4c.push("\");");
}
var _50=_4b.substring(_4d,_4e+1).split("\n");
for(var i=0;i<_50.length;i++){
_52(_50[i],_4c);
if(i<_50.length-1){
_4c.push("_OUT.write(\"\\n\");\n");
}
}
if(_4e+1<_4b.length){
_4c.push("if (_FLAGS.keepWhitespace == true) _OUT.write(\"");
var s=_4b.substring(_4e+1).replace("\n","\\n");
if(s.charAt(s.length-1)=="\n"){
s=s.substring(0,s.length-1);
}
_4c.push(s);
_4c.push("\");");
}
};
var _52=function(_53,_54){
var _55="}";
var _56=-1;
while(_56+_55.length<_53.length){
var _57="${",_58="}";
var _59=_53.indexOf(_57,_56+_55.length);
if(_59<0){
break;
}
if(_53.charAt(_59+2)=="%"){
_57="${%";
_58="%}";
}
var _5a=_53.indexOf(_58,_59+_57.length);
if(_5a<0){
break;
}
_3f(_53.substring(_56+_55.length,_59),_54);
var _5b=_53.substring(_59+_57.length,_5a).replace(/\|\|/g,"#@@#").split("|");
for(var k in _5b){
if(_5b[k].replace){
_5b[k]=_5b[k].replace(/#@@#/g,"||");
}
}
_54.push("_OUT.write(");
_5d(_5b,_5b.length-1,_54);
_54.push(");");
_56=_5a;
_55=_58;
}
_3f(_53.substring(_56+_55.length),_54);
};
var _3f=function(_5e,_5f){
if(_5e==null||_5e.length<=0){
return;
}
_5e=_5e.replace(/\\/g,"\\\\");
_5e=_5e.replace(/\n/g,"\\n");
_5e=_5e.replace(/"/g,"\\\"");
_5f.push("_OUT.write(\"");
_5f.push(_5e);
_5f.push("\");");
};
var _5d=function(_60,_61,_62){
var _63=_60[_61];
if(_61<=0){
_62.push(_63);
return;
}
var _64=_63.split(":");
_62.push("_MODIFIERS[\"");
_62.push(_64[0]);
_62.push("\"](");
_5d(_60,_61-1,_62);
if(_64.length>1){
_62.push(",");
_62.push(_64[1]);
}
_62.push(")");
};
var _30=function(_65){
_65=_65.replace(/\t/g,"    ");
_65=_65.replace(/\r\n/g,"\n");
_65=_65.replace(/\r/g,"\n");
_65=_65.replace(/^(\s*\S*(\s+\S+)*)\s*$/,"$1");
return _65;
};
var _40=function(_66){
_66=_66.replace(/^\s+/g,"");
_66=_66.replace(/\s+$/g,"");
_66=_66.replace(/\s+/g," ");
_66=_66.replace(/^(\s*\S*(\s+\S+)*)\s*$/,"$1");
return _66;
};
TrimPath.parseDOMTemplate=function(_67,_68,_69){
if(_68==null){
_68=document;
}
var _6a=_68.getElementById(_67);
var _6b=_6a.value;
if(_6b==null){
_6b=_6a.innerHTML;
}
_6b=_6b.replace(/&lt;/g,"<").replace(/&gt;/g,">");
return TrimPath.parseTemplate(_6b,_67,_69);
};
TrimPath.processDOMTemplate=function(_6c,_6d,_6e,_6f,_70){
return TrimPath.parseDOMTemplate(_6c,_6f,_70).process(_6d,_6e);
};
})();

