/* http://www.codehouse.com/javascript/scripts/cjl/cookie/ */

function CJL_CookieUtil(name, duration, path, domain, secure)
	{
		this.affix = "";

		if (duration)
			{   	  
				var date = new Date();
				var curTime = new Date().getTime();

				date.setTime(curTime + (1000 * 60 * duration));
				this.affix = "; expires=" + date.toGMTString();
			}

		if( path )
			{
				this.affix += "; path=" + path;
			}

		if( domain )
			{
				this.affix += "; domain=" + domain;
			}

		if( secure )
			{
				this.affix += "; secure=" + secure;
			}


		function getValue()
			{
				var m = document.cookie.match(new RegExp("(" + name + "=[^;]*)(;|$)"));
		
				return m ? m[1] : null;   
			}
		
		this.cookieExists = function()
			{
				return getValue() ? true : false;
			}
		
		this.expire = function()
			{
				var date = new Date();
				date.setFullYear(date.getYear() - 1);
				document.cookie=name + "=noop; expires=" + date.toGMTString(); 
			}
		
		this.setSubValue = function(key, value)
			{
				var ck = getValue();
				
				if( /[;, ]/.test(value) )
					{
						//Mac IE doesn't support encodeURI
						value = window.encodeURI ? encodeURI(value) : escape(value);
					}
		
		
				if( value )
					{
						var attrPair = "@" + key + value;
						
						if( ck )
							{
								if( new RegExp("@" + key).test(ck) )
									{
										document.cookie =
										ck.replace(new RegExp("@" + key + "[^@;]*"), attrPair) + this.affix;
									}
								else
									{
										document.cookie =
										ck.replace(new RegExp("(" + name + "=[^;]*)(;|$)"), "$1" + attrPair) + this.affix;
									}
							}
						else
							{
								document.cookie = name + "=" + attrPair + this.affix;
							}
					}
				else
					{      
						if( new RegExp("@" + key).test(ck) )
							{
								document.cookie = ck.replace(new RegExp("@" + key + "[^@;]*"), "") + this.affix;
							}
					}
			}
		
		
		this.getSubValue = function(key)
			{	
				var ck = getValue();
		
				if( ck )
					{
						var m = ck.match(new RegExp("@" + key + "([^@;]*)"));
		
						if( m )
							{
								var value = m[1];
		
								if( value )
									{ 
										//Mac IE doesn't support decodeURI
										return window.decodeURI ? decodeURI(value) : unescape(value);
									}
							}
					}
			}
	}
