var Lang=function(){var Lang=function(defaultLang,currentLang){this.defaultLang=defaultLang||"en";this.currentLang=defaultLang||"en";this._start();if(currentLang!==this.currentLang){this.change(currentLang)}};Lang.prototype.pack={};Lang.prototype.attrList=["title","alt","placeholder"];Lang.prototype.loadPack=function(packPath){if(packPath){$('').appendTo("head")}else{throw"Cannot load language pack, no file path specified!"}};Lang.prototype._start=function(){var arr=$(":not(html)[lang]"),arrCount=arr.length,elem;while(arrCount--){elem=$(arr[arrCount]);if(elem.attr("lang")===this.defaultLang){this._storeAttribs(elem);this._storeContent(elem)}}};Lang.prototype._storeAttribs=function(elem){var attr,attrObj;for(attr in this.attrList){if(this.attrList.hasOwnProperty(attr)){if(elem.attr(attr)){attrObj=elem.data("lang-attr")||{};attrObj[attr]=elem.attr(attr);elem.data("lang-attr",attrObj)}}}};Lang.prototype._storeContent=function(elem){if(elem.is("input")){switch(elem.attr("type")){case"button":case"submit":case"reset":elem.data("lang-val",elem.val());break}}else{elem.data("lang-html",elem.html())}};Lang.prototype._translateAttribs=function(elem,lang){var attr,attrObj=elem.data("lang-attr")||{},translation;for(attr in attrObj){if(attrObj.hasOwnProperty(attr)){if(elem.attr(attr)){if(lang!==this.defaultLang){translation=this.translate(attrObj[attr],lang);if(translation){elem.attr(attr,translation)}}else{elem.attr(attr,attrObj[attr])}}}}};Lang.prototype._translateContent=function(elem,lang){var langNotDefault=lang!==this.defaultLang,translation;if(elem.is("input")){switch(elem.attr("type")){case"button":case"submit":case"reset":if(langNotDefault){translation=this.translate(elem.data("lang-val"),lang);if(translation){elem.val(translation)}}else{elem.val(elem.data("lang-val"))}break}}else{if(langNotDefault){translation=this.translate(elem.data("lang-html"),lang);if(translation){elem.html(translation)}}else{elem.html(elem.data("lang-html"))}}};Lang.prototype.change=function(lang){if(this.currentLang!=lang){this.update(lang)}this.currentLang=lang;var arr=$(":not(html)[lang]"),arrCount=arr.length,elem;while(arrCount--){elem=$(arr[arrCount]);if(elem.attr("lang")!==lang){this._translateAttribs(elem,lang);this._translateContent(elem,lang);elem.attr("lang",lang)}}};Lang.prototype.translate=function(text,lang){lang=lang||this.currentLang;var translation="";if(lang!=this.defaultLang){translation=this.pack[lang].token[text];if(!translation){translation=this._regexMatch(lang,text)}return translation||text}else{return text}};Lang.prototype._regexMatch=function(lang,text){var arr=this.pack[lang].regex,arrCount=arr.length,arrIndex,item,regex,expressionResult;for(arrIndex=0;arrIndex