//------------------------------------------------------------------------------
// JavaScript functions supporting operations on Cookies
// Author: fwo
//------------------------------------------------------------------------------

var Cookies = {
	DEFAULT_MULTI_COOKIE_SEPARATOR : "#",

	getCookie: function(name)
	{
		var arg		= name + '=';
		var alen	= arg.length;
		var	clen	= document.cookie.length;
		var i = 0;
		while (i<clen) {
			var j = i + alen;
			if (document.cookie.substring(i,j)==arg) return Cookies.getCookieVal(j);
			i = document.cookie.indexOf(" ",i) + 1;
			if (i==0) break;
			};
		return null;	
	},
	setCookie: function(name,value,path)
	{
		var str = name + "=" + value;
	  	if (path && path.length >0 ) str += ";path="+path;
		document.cookie = str;
	},
	setCookieParam: function(cookieName, paramName, value, path)
	{
		var s = Cookies.getCookie(cookieName);
		if (s!=null)
		{
			var i = s.indexOf(DEFAULT_MULTI_COOKIE_SEPARATOR + paramName + DEFAULT_MULTI_COOKIE_SEPARATOR);
			if (i!=-1)
			{
				var j = s.indexOf(DEFAULT_MULTI_COOKIE_SEPARATOR,i + paramName.length+2);
				if (j==-1) j=s.length;
				//if (i>0) i--;
				s = s.substr(0,i) + s.substr(j,s.length);
			}
		}
		else
		{
			s = "";
		}
		if (value!=null)
		{
			s += DEFAULT_MULTI_COOKIE_SEPARATOR + paramName + DEFAULT_MULTI_COOKIE_SEPARATOR + value;
		}
		Cookies.setCookie(cookieName,s,path);
	},
	getCookieParam: function(cookieName, paramName, defaultValue)
	{
		var s = Cookies.getCookie(cookieName);
		if (s!=null)
		{
			var i = s.indexOf(DEFAULT_MULTI_COOKIE_SEPARATOR + paramName + DEFAULT_MULTI_COOKIE_SEPARATOR);
			if (i!=-1)
			{
				var j = s.indexOf(DEFAULT_MULTI_COOKIE_SEPARATOR,i + paramName.length+2);
				if (j==-1) j=s.length;
				i += paramName.length+2
				return s.substr(i, j-i);
			}
			return defaultValue;
		}
		else
		{
			return defaultValue;
		}
	},
	getCookieVal : function (offset) 
	{
		var result = document.cookie.indexOf(";", offset);
		if (result==-1) result = document.cookie.length;
		// 2007-04-20, fwo, tomcat issue
		result = unescape(document.cookie.substring(offset,result));
		if (result.charAt(0)=='"' && result.charAt(result.length-1)=='"')
		 	result = result.substr(1,result.length-1);
		return result;
	},
	
	delCookie : function (name) 
	{
		if (Cookies.getCookie(name)) document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}
