/**
 * Cookie utility object
 */

var Cookie = {

MAX_SIZE: 4096,

get: function(name) {
	var start = document.cookie.indexOf( name + "=" );
	if(start == -1) {
		return null;
	}
	if(start > 0) {
		var prevChar = document.cookie.charAt(start-1);
		if(prevChar != ' ' && prevChar != ';') {
			return null;
		}
	}
	var mid = start + name.length + 1;
	var end = document.cookie.indexOf( ';', mid );
	if (end == -1) {
		end = document.cookie.length;
	}
	return unescape( document.cookie.substring(mid, end) );
},

set: function(name, value, timeout, path, domain, secure) {
	var expiry, expiryStr;
	if (timeout) {
		expiry = new Date();
		expiry.setTime( expiry.getTime() + timeout );
		expiryStr = expiry.toGMTString();
	}

	var cookie = Cookie._build(name, value, expiryStr, path, domain, secure);
	document.cookie = cookie;

	return cookie.length;
},

remove: function( name, path, domain, secure ) {
	var val = Cookie.get(name);
	if (val) {
		document.cookie = Cookie._build(name, '', 'Thu, 01-Jan-1970 00:00:01 GMT', path, domain, secure);
	}
},

_build: function( name, value, expiry, path, domain, secure) {
	return name + '=' + Cookie.encode(value)
	 + (expiry ? ';expires=' + expiry : '')
	 + (path ? ';path=' + path : '')
	 + (domain ? ';domain=' + domain : '')
	 + (secure ? ';secure' : '');
},

check: function() {
	var retrieveVal, name = '__cookietest', value = '__testval';

	Cookie.set(name, value);
	retrieveVal = Cookie.get(name);
	Cookie.remove(name);

	return retrieveVal == value;
},

encode: function(value) {
	return value.replace(/%/g,'%25').replace(/,/g,'%2C').replace(/;/g,'%3B').replace(/=/g,'%3D');
}

};  // End Cookie //
