/*	---------------------------------------------------------------------
	FUNCTION NAME: addLoadEvent
	
	PURPOSE: Allows for multiple statements with for simulated onload
	events.  Should replace window.onload events, but will catch one
	provided window.onload appears before this.
---------------------------------------------------------------------	*/
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			func();
			if (oldonload) {
				oldonload();
			}
		}
	}
}



//	Cookie Functions -- Based on those written by Bill Dortch,
//	hIdaho Design <bdortch@hidaho.com>.
//	The following functions are released to the public domain.
//
//	**Note that it is possible to set multiple cookies with the same
//	name but different (nested) paths.  For example:
//
//	  SetCookie ("color","red",null,"/outer");
//	  SetCookie ("color","blue",null,"/outer/inner");
//
//	However, GetCookie cannot distinguish between these and will return
//	the first cookie that matches a given name.  It is therefore
//	recommended that you *not* use the same name for cookies with
//	different paths.  (Bear in mind that there is *always* a path
//	associated with a cookie; if you don't explicitly specify one,
//	the path of the setting document is used.)

function getCookieVal (offset) {
 	var endstr = document.cookie.indexOf (";", offset);
 	if (endstr == -1) {
 		endstr = document.cookie.length;
 	}
 	return unescape(document.cookie.substring(offset, endstr));
}

//	Function to return the value of the cookie specified by "name".
//	  name - String object containing the cookie name.
//	  returns - String object containing the cookie value, or null if
// 	the cookie does not exist.
//
function GetCookie (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 getCookieVal (j);
		}
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) {
			break;
		}
	}
 	return null;
}
 
//	Function to create or update a cookie.
//		name - String object containing the cookie name.
//		value - String object containing the cookie value.  May contain
// 		  any valid string characters.
//		[expires] - Date object containing the expiration data of the cookie.  If
//		  omitted or null, expires the cookie at the end of the current session.
//		[path] - String object indicating the path for which the cookie is valid.
//		  If omitted or null, uses the path of the calling document.
//		[domain] - String object indicating the domain for which the cookie is
//		  valid. If omitted or null, uses the domain of the calling document.
//		[secure] - Boolean (true/false) value indicating whether cookie transmission
//		  requires a secure channel (HTTPS).  
//
//	The first two parameters are required.  The others, if supplied, must
//	be passed in the order listed above.  To omit an unused optional field,
//	use null as a place holder.  For example, to call SetCookie using name,
//	value and path, you would code:
//
// 	SetCookie ("myCookieName", "myCookieValue", null, "/");
//
//	Note that trailing omitted parameters do not require a placeholder.
//
//	To set a secure cookie for path "/myPath", that expires after the
//	current session, you might code:
//
// 	SetCookie (myCookieVar, cookieValueVar, null, "/myPath", null, true);
//

function SetCookie (name,value,expires,path,domain,secure) {
 	document.cookie = name + "=" + escape (value) +
 	((expires) ? "; expires=" + expires.toGMTString() : "") +
 	((path) ? "; path=" + path : "") +
 	((domain) ? "; domain=" + domain : "") +
 	((secure) ? "; secure" : "");
}
 	
//	Function to delete a cookie. (Sets expiration date to start of epoch)
//	This version adds optional path and domain parameters to
//	the DeleteCookie function.  If you specify a path and/or domain
//	when creating (setting) a cookie**, you must specify the same
//	path/domain when deleting it, or deletion will not occur.
//
//		name -   String object containing the cookie name
//		path -   String object containing the path of the cookie to delete.  This MUST
// 	 	  be the same as the path used to create the cookie, or null/omitted if
// 	 	  no path was specified when creating the cookie.
//		domain - String object containing the domain of the cookie to delete.  This MUST
// 	 	 be the same as the domain used to create the cookie, or null/omitted if
// 	 	 no domain was specified when creating the cookie.
//

function DeleteCookie (name,path,domain) {
 	if (GetCookie(name)) {
 	document.cookie = name + "=" +
 	 	((path) ? "; path=" + path : "") +
 	 	((domain) ? "; domain=" + domain : "") +
 	 	"; expires=Thu, 01-Jan-70 00:00:01 GMT";
 	}
}
