function JSmarty(){this.init()}JSmarty.prototype={config_dir:"configs",compile_dir:"templates_c",plugins_dir:["plugins"],template_dir:"templates",debug_tpl:"",debugging:false,debugging_id:"DEBUGMODE",debugging_ctrl:false,compile_check:true,force_compile:false,caching:0,cache_lifetime:3600,cache_modified_check:false,trusted_dir:[],left_delimiter:"{",right_delimiter:"}",compile_id:null,use_sub_dirs:false,default_modifiers:[],default_resource_type:"file",cache_handler_func:null,autoload_filters:null,config_class:"File",config_overwrite:true,config_booleanize:true,config_read_hidden:false,config_fix_newlines:true,compiler:null,compiler_file:"JSmarty/Compiler.js",compiler_class:"Compiler",default_template_handler_func:null,$vars:null,$foreach:null,$section:null,$filters:null,$version:"0.5.3",$template:null,assign:function(B,A){var C,D=this.$vars,E=JSmarty.Plugin["util.copy"];if(B instanceof Object){for(C in B){D[C]=B[C]}}else{if(B!=""){D[B]=E(A)}}return this},assign_by_ref:function(B,A){if(B!=""){this.$vars[B]=A}return this},append:function(D,C,A){var F,E,G,B=this.$vars[D];if(D instanceof Object){for(F in D){G=D[F];if(!(B instanceof Array)){B=this.$vars[F]=[]}if(A&&G instanceof Object){for(E in G){B[E]=G[E]}return}B[B.length]=G}}else{if(D!=""&&C!=void (0)){return}if(!(B instanceof Array)){B=this.$vars[D]=[]}if(A&&C instanceof Object){for(F in C){B[F]=C[F]}return}B[B.length]=C}return this},append_by_ref:function(D,C,A){var E,B=this.$vars[D];if(D!=""&&C!=void (0)){return}if(!(B instanceof Array)){B=this.$vars[D]=[]}if(A&&C instanceof Object){for(E in C){B[E]=C[E]}return}B[B.length]=C;return this},clear_assign:function(A){if(A instanceof Array){for(var B=0,C=A.length;B<C;B++){delete (this.$vars[A[B]])}return}if(A!=""){delete (this.$vars[A])}},clear_all_assign:function(){this.$vars={}},get_template_vars:function(A){return(A==void (0))?this.$vars:this.$vars[A]},clear_all_cache:function(){this.cache={}},clear_cache:function(A){this.cache[this.get_resource_name(A)]=null},is_cashed:function(A){return !!this.cache[this.get_resource_name(A)]},clear_compiled_tpl:function(A){JSmarty.Templatec.remove(this.get_resource_name(A))},fetch:function(A,E,C,B){A=this.get_resource_name(A);var D=JSmarty.Templatec;var F,G=[].concat(this.plugins_dir);var I,H=new JSmarty.Classes.Item(A);this.plugins_dir=JSmarty.Plugin.repos.concat(this.plugins_dir);if(this.is_debugging()){F=JSmarty.Logger;F.invoke("time")("EXECUTE");F.invoke("time")("COMPILE")}if(D.isCompiled(H,this.force_compile)||D.newTemplate(H.load(this),this.get_compiler())){if(this.is_debugging()){F.invoke("timeEnd")("COMPILE")}I=D.call(A,this)}if(B){JSmarty.System.outputString(I)}this.plugins_dir=G;if(this.is_debugging()){F("timeEnd")("EXECUTE")}return I},is_debugging:function(){if(!this.debugging&&this.debugging_ctrl){var A=JSmarty.System.getArgs(this.debugging_id);this.debugging=(A.toLowerCase()=="on")?true:false}return this.debugging},display:function(B,C,A){this.fetch(B,C,A,true)},template_exists:function(A){},init:function(){this.cache={};this.$vars={};this.$foreach={};this.$section={};this.$filters=[]},register_block:function(B,A){JSmarty.Plugin.set("block."+B,A)},unregister_block:function(A){JSmarty.Plugin.unset("block."+A)},register_function:function(B,A){JSmarty.Plugin.set("function."+B,A)},unregister_function:function(A){JSmarty.Plugin.unset("function."+A)},register_modifier:function(B,A){JSmarty.Plugin.set("modifier."+B,A)},unregister_modifier:function(A){JSmarty.Plugin.unset("modifier."+A)},register_resource:function(B,A){if(A instanceof Array&&A.length==4){JSmarty.Plugin.set("resource."+B,A)}else{this.trigger_error("malformed function-list for '"+B+"' in register_resource")}},unregister_resource:function(A){JSmarty.Plugin.unset("resource."+A)},register_compiler_function:function(B,A){JSmarty.Plugin.set("compiler."+B,A)},unregister_compiler_function:function(A){JSmarty.Plugin.unset("compiler."+A)},load_filter:function(A,B){},register_prefilter:function(A){var B=JSmarty.Plugin["util.global"]();JSmarty.Plugin.get("prefilter."+A,B[A])},unregister_prefilter:function(A){JSmarty.Plugin.unset("prefilter."+A)},register_postfilter:function(A){var B=JSmarty.Plugin["util.global"]();JSmarty.Plugin.set("postfilter."+A,B[A])},unregister_postfilter:function(A){JSmarty.Plugin.unset("postfilter."+A)},register_outputfilter:function(A){var B=JSmarty.Plugin["util.global"]();JSmarty.Plugin.set("outputfilter."+A,B[A])},unregister_outputfilter:function(A){JSmarty.Plugin.unset("outputfilter."+A)},trigger_error:function(A,B){JSmarty.Logger.invoke(B)(A)},get_compiler:function(){return this.compiler||function(A){A.compiler=new JSmarty[A.compiler_class](A);return A.compiler}(this)},get_resource_name:function(A){return(0<=A.indexOf(":"))?A:this.default_resource_type+":"+A}};JSmarty.$function=function(){return false};JSmarty.Classes={mixin:function(C,A){for(var B in A){C[B]=A[B]}if(A.hasOwnProperty("valueOf")){C.valueOf=A.valueOf}if(A.hasOwnProperty("toString")){C.toString=A.toString}return C},extend:function(A,C){function B(){}B.prototype=(C.prototype||C);A.prototype=new B();A.prototype.getSuper=function(D){return(D)?C.prototype[D]:C};return this},create:function($super,B){function A(){this.init.apply(this,arguments)}switch(arguments.length){case 1:this.mixin(A.prototype,$super);break;case 2:this.extend(A,$super).mixin(A.prototype,B);break}if(!A.prototype.init){A.prototype.init=JSmarty.$function}return A}};JSmarty.Classes.HashMap=JSmarty.Classes.create({$K:null,$V:null,$E:null,init:function(){this.clear()},get:function(A){return this.$V[this.$E[A]]},put:function(B,C){var A=this.size();this.$K[A]=B;this.$V[A]=C;this.$E[B]=A;return C},containsKey:function(A){return(A in this.$E)},containsValue:function(C){var B,A=this.$V;for(B=A.length-1;0<=B;B--){if(C==A[B]){return true}}return false},remove:function(B){var A=this.$E[B];this.$K.splice(A,1);this.$V.splice(A,1);this.doMapping()},clear:function(){this.$K=[];this.$V=[];this.$E={}},size:function(){return this.$V.length},clone:function(){return new JSmarty.Classes.HashMap(this)},values:function(){return[].concat(this.$V)},entrySet:function(){return[].concat(this.$E)},putAll:function(E){var B,D=this.size();var C=this.$K,A=this.$V;if(B in E){if(!this.containsKey(B)&&E.hasOwnProperty(B)){C[D++]=B;A[D++]=E[B]}}this.doMapping()},keySet:function(){return[].concat(this.$K)},isEmpty:function(){return(this.$V.length==0)},doMapping:function(){var B,C=this.$K,A=this.$E={};for(B=this.size()-1;0<=B;B--){A[C[B]]=B}}});JSmarty.Classes.History=JSmarty.Classes.create(JSmarty.Classes.HashMap,{put:function(A,B){switch(typeof(B)){case"number":B=new Number(B);break;case"string":B=new JSmarty.Classes.String(B);break}if(!B.timestamp){B.timestamp=JSmarty.System.timestamp()}return this.getSuper("put").call(this,A,B)}});JSmarty.Classes.Buffer=function(A){this.init(A)};JSmarty.Classes.Buffer.prototype=new String();JSmarty.Classes.mixin(JSmarty.Classes.Buffer.prototype,{init:function(B){var A=[];var C=Array.prototype.join;this.append=function(D){A[A.length]=C.call(arguments,"");return this};this.getRenderer=function(){return B};this.getContents=function(){return A}},plugin:function(D,G,A,C){var B,F=JSmarty.Plugin;var E=(C)?"block":"function";B=F.get(F.name(E,D),this.getRenderer().plugins_dir);this.getContents().push((!C)?B(G,this.getRenderer()):B(G,C,this.getRenderer()));return(A)?this.modify(A):this},modify:function(C,E){var D=JSmarty.Plugin,A=this.getRenderer().plugins_dir;var B,E=(arguments.length==1)?this.getContents().pop():E;for(B in C){C[B][0]=E;E=D.get("modifier."+B,A).apply(null,C[B])}this.getContents().push(E);return this},appendIf:function(A){return(A)?this.append:JSmarty.$function},appendUnless:function(A){return(A)?JSmarty.$function:this.append},valueOf:function(A){return this.getContents().join(A||"")},toString:function(A){return this.getContents().join(A||"")}});JSmarty.Classes.Item=JSmarty.Classes.create(JSmarty.Classes.HashMap,{init:function(A){var B=A.split(":");this.clear();this.put("type",B[0]);this.put("name",B[1]);this.put("namespace",A)},load:function(D){var C,B=JSmarty.Plugin;var A=D.plugins_dir;if(B.add("resource."+this.get("type"),A)){C=B.get("resource."+this.get("type"),A);this.put("isFailure",!(C[0](this.get("name"),this,D)&&C[1](this.get("name"),this,D)))}if(this.get("isFailure")){C=D.default_template_handler_func;switch(typeof(C)){case"function":this.put("isFailure",!C(this.get("type"),this.get("name"),this,D));break;default:D.trigger_error('default template handler function "this.default_template_handler_func" doesn\'t exist.');break}}return this}});JSmarty.Plugin={repos:["."],internals:"internals",additional:{php:true},namespaces:{modifier:true,compiler:true,block:true,"function":true},parse:function(A,E){var C=this.get("util.global");var B=this.realname(E);var D,G="return "+B+";";if(C(B)){this[E]=C()[B];return !!this[E]}try{if(A){A+="return "+B+";"}D=new Function(A||"return null;");this[E]=D()}catch(F){this[E]=null;JSmarty.Logger.invoke("error")(F)}return !!this[E]},set:function(B,A){this[B]=A},get:function(B,A){return this[B]||function(C){return(C.add(B,A))?C[B]:C.F}(this)},add:function(B,A){return(B in this)||this.parse(JSmarty.System.read(B+".js",A||this.internals),B)},unset:function(A){this[A]=null;delete (this[A])},name:function(A,B){return A+"."+B},realname:function(B){var A=B.split(".");if(this.additional[A[0]]){return A[1]}return["jsmarty"].concat(A).join("_")},isEnabled:function(B,A){return(B in this)?!!this[B]:this.add(B,A)},importer:function(){var C=this.get("util.global")();var B,D,A=[this.internals].concat(this.repos);for(B=arguments.length-1;0<=B;B--){D=arguments[B];if(this.add(D,A)){C[D.split(".")[1]]=this[D]}}C=null}};JSmarty.Plugin["util.global"]=function(A){return function(){var B,C;if(arguments.length==0){return A}for(B=C=arguments.length-1;0<=B;B--){if(arguments[B] in A){C--}}return(C==-1)}}(this);JSmarty.Plugin["util.tryout"]=function(A,B){while(!!A.length){try{return A[0]()}catch(C){A.splice(0,1)}}return B};JSmarty.Plugin["util.clone"]=function(B){function A(){}A.prototype=B;return new A()};JSmarty.Plugin["util.slice"]=function(D,C,B){var A=D.lastIndexOf(C);return(0<A)?(B)?D.slice(0,A):D.slice(A+1):null};JSmarty.Plugin["util.copy"]=function(B){switch(typeof(B)){case"object":switch(true){case (B instanceof Array):return[].concat(B);case (B instanceof Object):var A,C={},D=arguments.callee;for(A in B){C[A]=D(B[A])}return C}return null;case"undefined":return null;default:return B}};JSmarty.Plugin["util.bind"]=function(A,B){return function(){A.call(B)}};JSmarty.Plugin["resource.file"]=[function(A,B,C){B.put("src",JSmarty.System.read(A,C.template_dir));return !!(B.get("src"))},function(A,B,C){B.put("timestamp",JSmarty.System.time(A,C.template_dir));return !!(B.get("timestamp"))},function(){return true},function(){return true}];JSmarty.Logger={invoke:function(A){this.forName();return this.invoke(A)},forName:function(){var B={};var A=JSmarty.Plugin["util.global"]().console||{};switch(true){case (!!A.firebug):B={info:"log"};break;default:break}this.invoke=function(C){return(A[B[C]||C]||JSmarty.$function)};this.forName=JSmarty.$function}};JSmarty.Templatec=JSmarty.Classes.mixin(new JSmarty.Classes.History(),{call:function(A,B){return(this.get(A)||JSmarty.$function)(B)},isCompiled:function(A,B){if(B){return false}return this.containsKey(A.get("namespace"))},newTemplate:function(B,A){if(!B.get("isFailure")){try{var D=A.execute(B.get("src"));this.put(B.get("namespace"),new Function("$",D));return true}catch(C){JSmarty.Logger.invoke("error")(C,"from Templatec#newFunction")}}return false}});JSmarty.Navigator={newRequest:function(B){var A=JSmarty.Plugin["util.tryout"];return function(){return A(B,null)}}([function(){return new ActiveXObject("Msxml2.XMLHTTP.6.0")},function(){return new ActiveXObject("Msxml2.XMLHTTP.4.0")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest()}]),getCurrentScript:function(){var A=document.getElementsByTagName("script");return A[A.length-1]},addScriptTag:function(C,F,E){var D,B=JSmarty.Plugin.get("php.http_build_query");var A=document.createElement("script");A.src=(F)?C+"?"+B(F):C;for(D in E){A[D]=E[D]}document.getElementsByTagName("body")[0].appendChild(A);A=null},setEnviroment:function(){var F=JSmarty.Plugin["util.slice"];var C=this.getCurrentScript();var D,E,B,A=JSmarty.Classes;E=F(C.src,"/",true)||".";D=F(C.src,"?")||"";A.mixin(JSmarty.Plugin,{repos:[E+"/plugins"],internals:E+"/internals"});A.mixin(JSmarty.System,this.$SYSTEM);if(D!=""){JSmarty.prototype.compiler_class=D;B=document.createElement("script");B.src=E+"/JSmarty/"+D+".js";C.parentNode.insertBefore(B,null)}if(typeof(jQuery)!="undefined"){B=document.createElement("script");B.src=E+"/internals/system.jquery.js";C.parentNode.insertBefore(B,null)}this.Request=this.newRequest();C=null,this.$SYSTEM=null;this.setEnviroment=JSmarty.emptyFunction}};JSmarty.Navigator.$SYSTEM={read:function(D,F){var G=this.buildPath(D,F);var B,I,A,H,C=JSmarty.Navigator.Request;for(B=0,H=G.length;B<H;B++){try{C.open("GET",G[B],false);C.send("");if(C.status==200||C.status==0){A=C.responseText;I=C.getResponseHeader("last-modified");this.modified[D]=(I)?new Date(I).getTime():new Date().getTime();break}}catch(E){}finally{C.abort()}}return A||function(){JSmarty.Logger.invoke("info")("can't load the "+D,"from","System#read");return null}()},time:function(B,C){var A=this.modified;return A[B]||function(D){D.read(B,C);return A[B]||null}(this)},getArgs:function(B){var A={},C=String(location.search).slice(1);JSmarty.Plugin.get("php.parse_str")(C,A);return(B==void (0))?A:(A[B]==void (0))?null:A[B]},outputString:function(){document.write(Array.prototype.join.call(arguments,""))},loadScript:function(C,A){try{(new Function(this.read(C,A||"")))();return true}catch(B){JSmarty.Logger.invoke("error")(B,"from System#loadScript")}return false}};JSmarty.System={modified:{},buildPath:function(C,D){var B,A=[].concat(D);for(B=A.length-1;0<=B;B--){A[B]=A[B]+"/"+C}return A},getName:function(){var A=JSmarty.Plugin["util.global"];if(A("window","System")){return"gadget"}if(A("window","document")){return"browser"}},forName:function(A){switch(A){case"mustang":load("./internals/system."+A+".js");break;case"gadget":break;case"browser":JSmarty.Navigator.setEnviroment();break}},timestamp:function(A){return(A)?new Date(A).getTime():new Date().getTime()}};(function(A){A.forName(A.getName())})(JSmarty.System);