/** * class to manage cookies */ var Cookie = { /** * set a document cookie * @param name string * @param value mixed * @param expiresec string */ set : function (name, value, expiresec ) { /*var exdate=new Date(); exdate.setDate(exdate.getDate() + 1); document.cookie = name + "=" + escape(value) + ";expires="+exdate.toGMTString()+"; path=/";*/ var expires = ""; if (typeof expiresec == "undefined") expiresec = 86400 ; if (expiresec) { var date = new Date(); date.setTime(date.getTime()+(expiresec*1000)); expires = "; expires="+date.toGMTString(); } document.cookie = name+"="+escape(value)+expires+"; path=/"; }, /** * get a single document cookie * @param name string * @return string */ get : function (name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length)); } return null; /*if (document.cookie.length > 0) { start = document.cookie.indexOf(name + '='); if (start!=-1) { start = start + name.length + 1; end = document.cookie.indexOf(';', start); if (end == -1) end = document.cookie.length; return unescape(document.cookie.substring(start, end)); } } return '';*/ }, /** * get all document cookies * @return object */ getAll : function () { var cookies = ''; cookies = document.cookie.replace(/\;/g, ', ' ).replace(/=/g, ' : '); cookies = cookies.split(','); for (i in cookies) { data = cookies[i].split(':'); data[1] = '"' + Cookie._trim(data[1]) + '"'; cookies[i] = data.join(':'); } cookies = eval('({' + cookies.join(',', cookies) + '})'); for (i in cookies) { cookies[i] = unescape(cookies[i]); } return cookies; }, /** * checks if cookie exists * @param name string * @return bool */ isSet : function (name) { return Cookie.get(name) ? true : false; }, _trim : function (text) { return text.replace(/^\s*|\s*$/g, ''); }, /** * removes cookie by name * @param name string */ remove : function (name) { if (Cookie.isSet(name)) { Cookie.set(name, ''); } else { return false; } }, /** * updates existing cookie * @param name string * @param value mixed */ update : function (name, value) { Cookie.set(name, value); } }