

/*
 * ----------------------------- JSTORAGE -------------------------------------
 * Copyright (c) 2010 Andris Reinman, andris.reinman@gmail.com
 * Project homepage: www.jstorage.info
 */
(function(g){function m(){if(e.jStorage)try{d=n(String(e.jStorage))}catch(a){e.jStorage="{}"}else e.jStorage="{}";j=e.jStorage?String(e.jStorage).length:0}function k(){try{e.jStorage=o(d);if(b){b.setAttribute("jStorage",e.jStorage);b.save("jStorage")}j=e.jStorage?String(e.jStorage).length:0}catch(a){}}function l(a){if(!a||typeof a!="string"&&typeof a!="number")throw new TypeError("Key name must be string or numeric");return true}if(!g||!(g.toJSON||Object.toJSON||window.JSON))throw Error("jQuery, MooTools or Prototype needs to be loaded before jStorage!");
var d={},e={jStorage:"{}"},b=null,j=0,o=g.toJSON||Object.toJSON||window.JSON&&(JSON.encode||JSON.stringify),n=g.evalJSON||window.JSON&&(JSON.decode||JSON.parse)||function(a){return String(a).evalJSON()},f=false;_XMLService={isXML:function(a){return(a=(a?a.ownerDocument||a:0).documentElement)?a.nodeName!=="HTML":false},encode:function(a){if(!this.isXML(a))return false;try{return(new XMLSerializer).serializeToString(a)}catch(c){try{return a.xml}catch(h){}}return false},decode:function(a){var c="DOMParser"in
window&&(new DOMParser).parseFromString||window.ActiveXObject&&function(h){var i=new ActiveXObject("Microsoft.XMLDOM");i.async="false";i.loadXML(h);return i};if(!c)return false;a=c.call("DOMParser"in window&&new DOMParser||window,a,"text/xml");return this.isXML(a)?a:false}};g.jStorage={version:"0.1.5.0",set:function(a,c){l(a);if(_XMLService.isXML(c))c={_is_xml:true,xml:_XMLService.encode(c)};d[a]=c;k();return c},get:function(a,c){l(a);if(a in d)return typeof d[a]=="object"&&d[a]._is_xml&&d[a]._is_xml?
_XMLService.decode(d[a].xml):d[a];return typeof c=="undefined"?null:c},deleteKey:function(a){l(a);if(a in d){delete d[a];k();return true}return false},flush:function(){d={};k();try{window.localStorage.clear()}catch(a){}return true},storageObj:function(){function a(){}a.prototype=d;return new a},index:function(){var a=[],c;for(c in d)d.hasOwnProperty(c)&&a.push(c);return a},storageSize:function(){return j},currentBackend:function(){return f},storageAvailable:function(){return!!f},reInit:function(){var a;
if(b&&b.addBehavior){a=document.createElement("link");b.parentNode.replaceChild(a,b);b=a;b.style.behavior="url(#default#userData)";document.getElementsByTagName("head")[0].appendChild(b);b.load("jStorage");a="{}";try{a=b.getAttribute("jStorage")}catch(c){}e.jStorage=a;f="userDataBehavior"}m()}};(function(){if("localStorage"in window)try{if(window.localStorage){e=window.localStorage;f="localStorage"}}catch(a){}else if("globalStorage"in window)try{if(window.globalStorage){e=window.globalStorage[window.location.hostname];
f="globalStorage"}}catch(c){}else{b=document.createElement("link");if(b.addBehavior){b.style.behavior="url(#default#userData)";document.getElementsByTagName("head")[0].appendChild(b);b.load("jStorage");var h="{}";try{h=b.getAttribute("jStorage")}catch(i){}e.jStorage=h;f="userDataBehavior"}else{b=null;return}}m()})()})(window.jQuery||window.$);
