/*
JSCache 1.2
JSCacheForms (updated)

(c) 2007-2009 Jarek Kostrz
e-mail: jkostrz@gmail.com
www: http://jscache.ajaxin.pl
http://creativecommons.org/licenses/by/2.5/pl/
W przypadku użycia komercyjnego proszę o informację o tym fakcie.

In package:
http://www.json.org/json.js on Public Domain
*/

if(!Object.prototype.toJSONString){Array.prototype.toJSONString=function(){var a=[],i,l=this.length,v;for(i=0;i<l;i+=1){v=this[i];switch(typeof v){case'object':if(v){if(typeof v.toJSONString==='function'){a.push(v.toJSONString());}}else{a.push('null');}break;case'string':case'number':case'boolean':a.push(v.toJSONString());}}return'['+a.join(',')+']';};Boolean.prototype.toJSONString=function(){return String(this);};Date.prototype.toJSONString=function(){function f(n){return n<10?'0'+n:n;}return'"'+this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z"';};Number.prototype.toJSONString=function(){return isFinite(this)?String(this):'null';};Object.prototype.toJSONString=function(){var a=[],k,v;for(k in this){if(typeof k==='string'&&Object.prototype.hasOwnProperty.apply(this,[k])){v=this[k];switch(typeof v){case'object':if(v){if(typeof v.toJSONString==='function'){a.push(k.toJSONString()+':'+v.toJSONString());}}else{a.push(k.toJSONString()+':null');}break;case'string':case'number':case'boolean':a.push(k.toJSONString()+':'+v.toJSONString());}}}return'{'+a.join(',')+'}';};(function(s){var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};s.parseJSON=function(filter){var j;function walk(k,v){var i;if(v&&typeof v==='object'){for(i in v){if(Object.prototype.hasOwnProperty.apply(v,[i])){v[i]=walk(i,v[i]);}}}return filter(k,v);}if(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/.test(this.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,''))){j=eval('('+this+')');return typeof filter==='function'?walk('',j):j;}throw new SyntaxError('parseJSON');};s.toJSONString=function(){if(/["\\\x00-\x1f]/.test(this)){return'"'+this.replace(/[\x00-\x1f\\"]/g,function(a){var c=m[a];if(c){return c;}c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}return'"'+this+'"';};})(String.prototype);}
function JSCache(){var storage=typeof localStorage!='undefined'?localStorage:globalStorage[location.hostname];this.storage=storage;this._e=function(t){n=new Date().getTime();if(t||(t-n)>0){return 0}return 1},this.save=function(i,t,o){if(o=="")o={};if(this._e()||o.overwrite){if(o.ttl){t.ttl=new Date(new Date().getTime()+o.ttl*1000).getTime();var x=this;setTimeout(function(){x.remove(i)},o.ttl*1000)}this.storage.setItem(i,t.toJSONString())}},this.get=function(i){if(this.storage.getItem(i)){q=this.storage.getItem(id).value.parseJSON();if(this._e(q.ttl))return null;else return q}},this.remove=function(i){this.storage.removeItem(i)}}
JSCache.prototype.upData=function(q){for(a in q){if(isNaN(a)&&a!="toJSONString")this.check(a,q[a])}},JSCache.prototype.check=function(o,i){var s=eval("this.storage."+o);if(s){if(s=='true'){if($(i).type=='checkbox'||$(i).type=='radio'){$(i).checked='checked'}}else if($(i).type=='text'||$(i).nodeName=='TEXTAREA'){$(i).value=s}else if($(i).nodeName=='SELECT'){$(i).options[s].selected='selected'}else if($(i).nodeType==1){$(i).innerHTML=s}else{if($(i).type=='checkbox'||$(i).type=='radio')$(i).checked=''}}}
