/********************\
  GSSI Cookies script
\********************/

if (! GSSI) { var GSSI = {}; };

GSSI.Cookies =  {
	_readcookies: function () {
		var cookiestring = "" + document.cookie;
		var cookiesplit = cookiestring.split("; ")
		var singlearray;
		
		GSSI.Cookies._collection = {};
		
		for (var i=0; i<cookiesplit.length; i++) {
			var singlearray = cookiesplit[i].split("=");
			GSSI.Cookies._collection[ singlearray[0] ] = singlearray[1];
		};
	},
	
	get: function( key ) {
		return GSSI.Cookies._collection[ key ];
	},

	count: function( ) {
		var c = 0;
		for( var key in GSSI.Cookies._collection ) {
			c++;
		}
		return c;
	},

	set: function( key, value, days, hours, minutes, path ) {
		key = "" + key;
		if (key == "") { return false; };
		
		value = "" + value;
		
		var expirystring = "";
		
		if ( days || hours || minutes ) {
			var expiry = new Date();
			
			expiry.setTime( expiry.getTime() + ((0+days)*24*60*60*1000) + ((0+hours)*60*60*1000) + ((0+minutes)*60*1000) );
			expirystring = "; expires="+expiry.toGMTString();
		};
		
		var pathstring = "; path=";
		if ( path ) {
			pathstring += "" + path;
		} else {
			pathstring += "/";
		};
		
		document.cookie = "" + key + "=" + value + expirystring + pathstring;
		GSSI.Cookies._readcookies();
		return true;
	},
	
	remove: function(key) {
		document.cookie = "" + key + "=; expires=" + GSSI.Cookies._removedatestring + "; path=/";
		GSSI.Cookies._readcookies();
	},

	clear: function() {
		for( var key in GSSI.Cookies._collection ) {
			document.cookie = "" + key + "=; expires=" + GSSI.Cookies._removedatestring + "; path=/";
		};
		GSSI.Cookies._readcookies();
	}

};

GSSI.Cookies._removedatestring = ( new Date(0) ).toGMTString();
GSSI.Cookies._readcookies();

