/*
 * @require jade.js
 */
jade.StringUtils=function(){};jade.StringUtils.urlCharacters=["'","(",")","!","~","*"];
jade.StringUtils.urlCodes=["%27","%28","%29","%21","%7E","%2A"];jade.StringUtils.format=function(g){var n,l,a,d,j,m,h,k,e,b;
a=arguments;l=a[0]===undefined?"undefined":a[0].toString();n="";m=1;for(d=0,j=l.length;
d<j;d++){h=l.charAt(d);if(h=="%"){d++;h=l.charAt(d);switch(h){case"%":n+="%";continue;
case"o":b=a[m];if(typeof(b)=="object"){n+="Object ";for(e in b){k=b[e];n+=e.toString()+"=";
if(typeof(k)=="object"){n+="Object"}else{n+=k.toString()}n+=" "}break}n+=a[m].toString();
break;default:n+=a[m].toString()}m++;continue}n+=h}for(d=m,j=a.length;d<j;d++){n+=" "+a[d]
}return n};jade.StringUtils.trim=function(a){return new RegExp("^\\s*([\\s\\S]*?)\\s*$").exec(a)[1]
};jade.StringUtils.leftTrim=function(a){return new RegExp("^\\s*([\\s\\S]*)").exec(a)[1]
};jade.StringUtils.rightTrim=function(a){return new RegExp("([\\s\\S]*?)\\s*$").exec(a)[1]
};jade.StringUtils.replaceAll=function(b,e,d){var f,g,c,a;if(!b){return b}if((e instanceof Array)&&(d instanceof Array)){for(c=0,a=Math.min(e.length,d.length);
c<a;c++){b=jade.StringUtils.replaceAll(b,e[c],d[c])}return b}g=0;while((f=b.indexOf(e,g))!=-1){b=b.substring(0,f)+d+b.substr(f+e.length);
g=f+d.length}return b};jade.StringUtils.escapeJSON=function(b){var a;a=jade.StringUtils.replaceAll(b,"\\","\\\\");
a=jade.StringUtils.replaceAll(a,'"','\\"');a=jade.StringUtils.replaceAll(a,"\n","\\n");
return a};jade.StringUtils.urlEncode=function(b){var a,c;a=encodeURIComponent(b);
for(c=0;c<this.urlCodes.length;c++){a=jade.StringUtils.replaceAll(a,this.urlCharacters[c],this.urlCodes[c])
}return a};jade.StringUtils.urlDecode=function(b){var a;a=decodeURIComponent(b);return a
};jade.StringUtils.endsWith=function(a,b){return(new RegExp(b+"$").exec(a)==b)};jade.StringUtils.capitalizeFirstCharacter=function(a){return a.charAt(0).toUpperCase()+a.substring(1)
};jade.StringUtils.removeInvalidCSSCharacters=function(a,c){var b=(!c)?"":c;return jade.StringUtils.replaceAll(a,["#","{","}","."," ",">","!",";",":","\\","/","*"],[b,b,b,b,b,b,b,b,b,b,b,b])
};jade.StringUtils.countSubstring=function(c,b){var d,a;d=0;a=0;d=c.indexOf(b,d);
while(d>=0){a++;d+=b.length;d=c.indexOf(b,d)}return a};