if(typeof(ss)=='undefined')ss={};ss.i18n={currentLocale:null,defaultLocale:'en_US',lang:{},init:function(){this.currentLocale=this.detectLocale();},setLocale:function(locale){this.currentLocale=locale;},getLocale:function(){return(this.currentLocale)?this.currentLocale:this.defaultLocale;},_t:function(entity,fallbackString,priority,context){if(this.lang&&this.lang[this.getLocale()]&&this.lang[this.getLocale()][entity]){return this.lang[this.getLocale()][entity];}else if(this.lang&&this.lang[this.defaultLocale]&&this.lang[this.defaultLocale][entity]){return this.lang[this.defaultLocale][entity];}else if(fallbackString){return fallbackString;}else{return'';}},addDictionary:function(locale,dict){if(!this.lang[locale])this.lang[locale]={};for(entity in dict){this.lang[locale][entity]=dict[entity];}},getDictionary:function(locale){return this.lang[locale];},stripStr:function(str){return str.replace(/^\s*/,"").replace(/\s*$/,"");},stripStrML:function(str){var parts=str.split('\n');for(var i=0;i<parts.length;i++)
parts[i]=stripStr(parts[i]);return stripStr(parts.join(" "));},sprintf:function(S){if(arguments.length==1)return S;var nS="";var tS=S.split("%s");var args=[];for(var i=1,len=arguments.length;i<len;++i){args.push(arguments[i]);};for(var i=0;i<args.length;i++){if(tS[i].lastIndexOf('%')==tS[i].length-1&&i!=args.length-1)
tS[i]+="s"+tS.splice(i+1,1)[0];nS+=tS[i]+args[i];}
return nS+tS[tS.length-1];},detectLocale:function(){var rawLocale;var detectedLocale;var metas=document.getElementsByTagName('meta');for(var i=0;i<metas.length;i++){if(metas[i].attributes['http-equiv']&&metas[i].attributes['http-equiv'].nodeValue.toLowerCase()=='content-language'){rawLocale=metas[i].attributes['content'].nodeValue;}}
if(!rawLocale)rawLocale=this.defaultLocale;var rawLocaleParts=rawLocale.match(/([^-|_]*)[-|_](.*)/);if(rawLocale.length==2){for(compareLocale in ss.i18n.lang){if(compareLocale.substr(0,2).toLowerCase()==rawLocale.toLowerCase()){detectedLocale=compareLocale;break;}}}else if(rawLocaleParts){detectedLocale=rawLocaleParts[1].toLowerCase()+'_'+rawLocaleParts[2].toUpperCase();}
return detectedLocale;},addEvent:function(obj,evType,fn,useCapture){if(obj.addEventListener){obj.addEventListener(evType,fn,useCapture);return true;}else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r;}else{alert("Handler could not be attached");}}};ss.i18n.addEvent(window,"load",function(){ss.i18n.init();});