//cookiemanager.js

var CookieManager = {
	getCookie : function(name){
		var _cookies = document.cookie.split(';');
		for(var i = 0; i < _cookies.length; i++ ){
			var _cookie = _cookies[i];
			var _value = CookieManager._getValue(_cookies[i], name);
			if(_value != ""){
				return _value;
			}
		}
		return null;
	},
	setCookie : function(name, value){
		var expires = arguments[2] ? arguments[2] : null;
		var path = arguments[3] ? arguments[3] : null;  
		var domain = arguments[4] ? arguments[4] : null;  
		var secure = arguments[5] ? arguments[5] : false;
		
		document.cookie = name + "=" + escape (value) + 
		((expires == null) ? "" : ("; expires=" + expires)) + 
		((path == null) ? "" : ("; path=" + path)) +  
		((domain == null) ? "" : ("; domain=" + domain)) +    
		((secure == true) ? "; secure" : "");
	},
	deleteCookie : function(name){
		var expires = CookieManager.setExpiration(-1);
		CookieManager.setCookie(name, "", expires)
	},
	setExpiration : function(iTimeframe){
		var milliseconds = 1000;
		var date = new Date();
		var pattern = "d"; // default to days
		var factor = 1;
		
		if(arguments[1] && arguments[1].match(/^(s|m|h|d)$/)){
			pattern = arguments[1];
		}
		switch(pattern){
			case "s": //seconds
				factor = 1;
				break;
			case "m": //minutes
				factor = 60;
				break;
			case "h": //hours
				factor = 3600;
				break;
			case "d": //days, default
			default:
				factor = 86400;
				break;
		}
		milliseconds *= (iTimeframe * factor);
		date.setTime(date.getTime() + milliseconds);
		return date.toGMTString();
	},
	_getValue : function(sIn, sName){
		var _name = sName + "=";
		_in = sIn.replace(/^\s*([^\s].*)$/, "$1");
		if(_in.indexOf(_name) == 0){
			return _in.substring(_name.length, _in.length);
		}
		return "";
	}
}

