sessvars=function(){var a={};a.$={prefs:{memLimit:2e3,autoFlush:true,crossDomain:false,includeProtos:false,includeFunctions:false},parent:a,clearMem:function(){for(var a in this.parent)if(a!="$")this.parent[a]=undefined;this.flush()},usedMem:function(){a={};return Math.round(this.flush(a)/1024)},usedMemPercent:function(){return Math.round(this.usedMem()/this.prefs.memLimit)},flush:function(a){var b,c={},e=this.$$;a=a||top;for(var d in this.parent)c[d]=this.parent[d];c.$=this.prefs;e.includeProtos=this.prefs.includeProtos;e.includeFunctions=this.prefs.includeFunctions;b=this.$$.make(c);if(a!=top)return b.length;if(b.length/1024>this.prefs.memLimit)return false;a.name=b;return true},getDomain:function(){var a=location.href;a=a.split("///").join("//");a=a.substring(a.indexOf("://")+3).split("/")[0];while(a.split(".").length>2)a=a.substring(a.indexOf(".")+1);return a},debug:function(b){var b=b||this,c=arguments.callee;if(!document.body){setTimeout(function(){c(b)},200);return}b.flush();var a=document.getElementById("sessvarsDebugDiv");if(!a){a=document.createElement("div");document.body.insertBefore(a,document.body.firstChild)}a.id="sessvarsDebugDiv";a.innerHTML='<div style="line-height:20px;padding:5px;font-size:11px;font-family:Verdana,Arial,Helvetica;z-index:10000;background:#FFFFCC;border: 1px solid #333;margin-bottom:12px"><b style="font-family:Trebuchet MS;font-size:20px">sessvars.js - debug info:</b><br/><br/>Memory usage: '+b.usedMem()+" Kb ("+b.usedMemPercent()+'%)&nbsp;&nbsp;&nbsp;<span style="cursor:pointer"><b>[Clear memory]</b></span><br/>'+top.name.split("\n").join("<br/>")+"</div>";a.getElementsByTagName("span")[0].onclick=function(){b.clearMem();location.reload()}},init:function(){var a={},b=this;try{a=this.$$.toObject(top.name)}catch(e){a={}}this.prefs=a.$||b.prefs;if(this.prefs.crossDomain||this.prefs.currentDomain==this.getDomain())for(var d in a)this.parent[d]=a[d];else this.prefs.currentDomain=this.getDomain();this.parent.$=b;b.flush();var c=function(){b.prefs.autoFlush&&b.flush()};if(window.addEventListener)addEventListener("unload",c,false);else if(window.attachEvent)window.attachEvent("onunload",c);else this.prefs.autoFlush=false}};a.$.$$={compactOutput:false,includeProtos:false,includeFunctions:false,detectCirculars:true,restoreCirculars:true,make:function(b,a){this.restore=a;this.mem=[];this.pathMem=[];return this.toJsonStringArray(b).join("")},toObject:function(x){if(!this.cleaner)try{this.cleaner=new RegExp('^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t])+?$')}catch(a){this.cleaner=/^(true|false|null|\[.*\]|\{.*\}|".*"|\d+|\d+\.\d+)$/}if(!this.cleaner.test(x))return{};eval("this.myObj="+x);if(!this.restoreCirculars||!alert)return this.myObj;if(this.includeFunctions){var x=this.myObj;for(var i in x)if(typeof x[i]=="string"&&!x[i].indexOf("JSONincludedFunc:")){x[i]=x[i].substring(17);eval("x[i]="+x[i])}}this.restoreCode=[];this.make(this.myObj,true);var r=this.restoreCode.join(";")+";";eval('r=r.replace(/\\W([0-9]{1,})(\\W)/g,"[$1]$2").replace(/\\.\\;/g,";")');eval(r);return this.myObj},toJsonStringArray:function(b,a){if(!a)this.path=[];a=a||[];var i;switch(typeof b){case"object":this.lastObj=b;if(this.detectCirculars){for(var e=this.mem,h=this.pathMem,c=0;c<e.length;c++)if(b===e[c]){a.push('"JSONcircRef:'+h[c]+'"');return a}e.push(b);h.push(this.path.join("."))}if(b){if(b.constructor==Array){a.push("[");for(var c=0;c<b.length;++c){this.path.push(c);c>0&&a.push(",\n");this.toJsonStringArray(b[c],a);this.path.pop()}a.push("]");return a}else if(typeof b.toString!="undefined"){a.push("{");var f=true;for(var c in b){if(!this.includeProtos&&b[c]===b.constructor.prototype[c])continue;this.path.push(c);var g=a.length;!f&&a.push(this.compactOutput?",":",\n");this.toJsonStringArray(c,a);a.push(":");this.toJsonStringArray(b[c],a);if(a[a.length-1]==i)a.splice(g,a.length-g);else f=false;this.path.pop()}a.push("}");return a}return a}a.push("null");return a;case"unknown":case"undefined":case"function":if(!this.includeFunctions){a.push(i);return a}b="JSONincludedFunc:"+b;a.push('"');var d=["\n","\\n","\r","\\r",'"','\\"'];b+="";for(var c=0;c<6;c+=2)b=b.split(d[c]).join(d[c+1]);a.push(b);a.push('"');return a;case"string":this.restore&&b.indexOf("JSONcircRef:")==0&&this.restoreCode.push("this.myObj."+this.path.join(".")+"="+b.split("JSONcircRef:").join("this.myObj."));a.push('"');var d=["\n","\\n","\r","\\r",'"','\\"'];b+="";for(var c=0;c<6;c+=2)b=b.split(d[c]).join(d[c+1]);a.push(b);a.push('"');return a;default:a.push(String(b));return a}}};a.$.init();return a}()
