/*
Copyright (c) 2005, James Auldridge
All rights reserved.
Code licensed under the BSD License:
  http://www.jaaulde.com/license.php

Version 1.2
*/
var jimAuld = window.jimAuld || {};
jimAuld.utils = jimAuld.utils || {};
jimAuld.utils.cookies = {
	get: function(cookieName) {
		var cookieNameStart,valueStart,valueEnd,value;
		cookieNameStart = document.cookie.indexOf(cookieName+'=');
		if (cookieNameStart < 0) {return null;}
		valueStart = document.cookie.indexOf(cookieName+'=') + cookieName.length + 1;
		valueEnd = document.cookie.indexOf(";",valueStart);
		if (valueEnd == -1){valueEnd = document.cookie.length;}
		value = document.cookie.substring(valueStart,valueEnd );
		value = unescape(value);
		if (value == "") {return null;}
		return value;
	},
	set: function(cookieName,value,hoursToLive,path,domain,secure) {
		var expireString,timerObj,expireAt,pathString,domainString,secureString,setCookieString;
		if (!hoursToLive || typeof hoursToLive != 'number' || parseInt(hoursToLive)=='NaN'){
			expireString = "";
		}
		else {
			timerObj = new Date();
			timerObj.setTime(timerObj.getTime()+(parseInt(hoursToLive)*60*60*1000));
			expireAt = timerObj.toGMTString();
			expireString = "; expires="+expireAt;
		}
		pathString = "; path=";
		(!path || path=="") ? pathString += "/" : pathString += path;
		domainString = "; domain=";
		(!domain || domain=="") ? domainString += window.location.hostname : domainString += domain;
		(secure === true) ? secureString = "; secure" : secureString = "";
		value = escape(value);
		setCookieString = cookieName+"="+value+expireString+pathString+domainString;
		document.cookie = setCookieString;
	},
	del: function(cookieName,path,domain){
          (!path || !path.length) ? path="" : path=path;
          (!domain || !domain.length) ? domain="" : domain=domain;
		jimAuld.utils.cookies.set(cookieName,"",-8760,path,domain);
	},
	test: function(){
		jimAuld.utils.cookies.set('cT','acc');
		var runTest = jimAuld.utils.cookies.get('cT');
		if (runTest == 'acc'){
			jimAuld.utils.cookies.del('cT');
			testStatus = true;
		}
		else {
			testStatus = false;
		}
		return testStatus;
	}
};

