/*
 * @require jade.js
 */
jade.StringUtils=function(){};
jade.StringUtils.urlCharacters="',(,),!,~,*".split(",");jade.StringUtils.urlCodes="%27,%28,%29,%21,%7E,%2A".split(",");
jade.StringUtils.format=function(a){var b,c,d,e,f,h,i,g,j="",k;d=arguments;c=d[0]===void 0?"undefined":""+d[0];b="";h=1;for(e=0,f=c.length;e<f;e++)if(i=c.charAt(e),i=="%"){e++;i=c.charAt(e);switch(i){case "%":b+="%";continue;case "o":k=d[h];if(typeof k=="object"){b+="Object ";for(j in k)k.hasOwnProperty(j)&&(g=k[j],b+=""+j+"=",b+=typeof g=="object"?"Object":""+g,b+=" ");break}b+=""+d[h];break;default:b+=""+d[h]}h++}else b+=i;for(e=h,f=d.length;e<f;e++)b+=" "+d[e];return b};
jade.StringUtils.trim=function(a){return/^\s*([\s\S]*?)\s*$/.exec(a)[1]};
jade.StringUtils.leftTrim=function(a){return/^\s*([\s\S]*)/.exec(a)[1]};
jade.StringUtils.rightTrim=function(a){return/([\s\S]*?)\s*$/.exec(a)[1]};
jade.StringUtils.replaceAll=function(a,b,c){var d,e,f,h,i,g;if(!a)return a;if(b instanceof Array&&c instanceof Array){for(f=0,h=Math.min(b.length,c.length);f<h;f++)a=jade.StringUtils.replaceAll(a,b[f],c[f]);return a}i=""+b;g=""+c;for(e=0;(d=a.indexOf(i,e))!=-1;)a=a.substring(0,d)+g+a.substr(d+i.length),e=d+c.length;return a};
jade.StringUtils.escapeJSON=function(a){var b;b=jade.StringUtils.replaceAll(a,"\\","\\\\");b=jade.StringUtils.replaceAll(b,'"','\\"');return b=jade.StringUtils.replaceAll(b,"\n","\\n")};
jade.StringUtils.urlEncode=function(a){var b,c;b=encodeURIComponent(a);for(c=0;c<jade.StringUtils.urlCodes.length;c++)b=jade.StringUtils.replaceAll(b,jade.StringUtils.urlCharacters[c],jade.StringUtils.urlCodes[c]);return b};
jade.StringUtils.urlDecode=function(a){var b;return b=decodeURIComponent(a)};
jade.StringUtils.endsWith=function(a,b){return RegExp(b+"$").exec(a)==b};
jade.StringUtils.capitalizeFirstCharacter=function(a){return a.charAt(0).toUpperCase()+a.substring(1)};
jade.StringUtils.removeInvalidCSSCharacters=function(a,b){var c=!b?"":b;return jade.StringUtils.replaceAll(a,"#,{,},., ,>,!,;,:,\\,/,*".split(","),[c,c,c,c,c,c,c,c,c,c,c,c])};
jade.StringUtils.countSubstring=function(a,b){var c,d;d=c=0;for(c=a.indexOf(b,c);c>=0;)d++,c+=b.length,c=a.indexOf(b,c);return d};
jade.StringUtils.formatNumber=function(a,b,c,d){var e,f,h;b==null&&(b=0);c==null&&(c=jade.message("jade.decPoint"));d==null&&(d=jade.message("jade.thousandsSep"));f=a.toFixed(b).split(".");e=f[0];for(h=/(\d+)(\d{3})/;h.test(e);)e=e.replace(h,"$1"+d+"$2");f.length>1&&(e+=c+f[1]);return e};
jade.StringUtils.parseNumber=function(a,b,c){var d;b==null&&(b=jade.message("jade.decPoint"));c==null&&(c=jade.message("jade.thousandsSep"));d=a.replace(c,"");b!="."&&(d=d.replace(b,"."));return parseFloat(d)||0};
jade.StringUtils.formatPrice=function(a){var b,c,d,e,f;e=jade.message("jade.currency.format");b=+jade.message("jade.currency.decimals");c=jade.message("jade.currency.decPoint");d=jade.message("jade.currency.thousandsSep");f=jade.StringUtils.formatNumber(a,b,c,d);return jade.StringUtils.format(e,f)};
jade.StringUtils.createUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=Math.random()*16|0,c=a=="x"?b:b&3|8;return c.toString(16)})};
jade.StringUtils.ellipsisText=function(a,b){b=Math.max(4,b);a&&a.length>b&&(a=a.slice(0,b-3)+"...");return a};
