// <script language="JavaScript" src="code/utilities.js"></script>
// <script language="JavaScript" src="../code/utilities.js"></script>

function setCookie(name, value, expires, path, domain, secure) 
{ 
	var today, expiresDate; 

	today = new Date(); 
	today.setTime(today.getTime()); 
	if (expires) expires *= 1000 * 60 * 60 * 24; 
	expiresDate = new Date(today.getTime() + expires);

	document.cookie = name + "=" + escape(value) + 
		((expires) ? ";expires=" + expiresDate.toGMTString() : "") + 
		((path) ? ";path=" + path : "" ) + ((domain) ? ";domain=" + domain : "" ) + ((secure) ? ";secure" : ""); 
} 

function getCookie(name) 
{ 
	var start, len, end; 

	start = document.cookie.indexOf(name + "="); 
	len = start + name.length + 1; 
	if ((!start) && (name != document.cookie.substring(0, name.length))) return(""); 
	if (start == -1) return("");
	end = document.cookie.indexOf(";", len); 
	if (end == -1) end = document.cookie.length; 
	return (unescape(document.cookie.substring(len, end))); 
} 

function delCookie(name, path, domain) 
{ 
	if (getCookie(name)) 
		document.cookie = name + "=" + ((path) ? ";path=" + path : "") + 
		((domain) ? ";domain=" + domain : "") + ";expires=Thu, 01-Jan-1970 00:00:01 GMT"; 
} 

function getFile(file)
{
	var objXml, data;

	data = "";
	objXml = new ActiveXObject("Microsoft.XMLHTTP"); 
	objXml.open("GET", file, false); 
	objXml.onreadystatechange = function() {if (objXml.readyState == 4) data = objXml.responseText;}
 	objXml.send(null); 
	return(data);
}

function handleError(type, url, line)
{
	alert("Error:" + type + " on line " + line);
}

function writeMessage(text, id)
{
	document.getElementById(id).innerHTML = '<font color="#FF0000" size="2" face="Arial"><strong>' + 
			text + '</strong></font>';
	return;
}

function isLetter(x)
{
	return(x == "a" || x == "b" || x == "c" || x == "d" || x == "e" || x == "f" || x == "g" || 
			 x == "h" || x == "i" || x == "j" || x == "k" || x == "l" || x == "m" || x == "n" || 
			 x == "o" || x == "p" || x == "q" || x == "r" || x == "s" || x == "t" || x == "u" || 
			 x == "v" || x == "w" || x == "x" || x == "y" || x == "z" || 
			 x == "A" || x == "B" || x == "C" || x == "D" || x == "E" || x == "F" || x == "G" || 
			 x == "H" || x == "I" || x == "J" || x == "K" || x == "L" || x == "M" || x == "N" || 
			 x == "O" || x == "P" || x == "Q" || x == "R" || x == "S" || x == "T" || x == "U" || 
			 x == "V" || x == "W" || x == "X" || x == "Y" || x == "Z");
}

function isDigit(x)
{
	return(x == "0" || x == "1" || x == "2" || x == "3" || x == "4" || 
			 x == "5" || x == "6" || x == "7" || x == "8" || x == "9");
} 

function replaceAll(x, a, b)
{
	var z;

	z = "";

	if (x != null && x != "")
	{
		z = x;
		while (z.search(a) != -1) z = z.replace(a, b);
	}

	return(z);
}

function stripString(x)
// Removes non-alphanumeric characters from the beginning and end of a string
{
	var i, xStart, xEnd;

	if (x != null && x != "")
	{
		for (i = 0, xStart = 0; i < x.length; i++)
			if (!isLetter(x.substr(i, 1)) && !isDigit(x.substr(i, 1)))
				xStart++;
			else
				break;

		for (i = x.length - 1, xEnd = x.length - 1; i >= 0; i--)
			if (!isLetter(x.substr(i, 1)) && !isDigit(x.substr(i, 1)))
				xEnd--;
			else
				break;

		return((xStart > xEnd) ? "" : x.substr(xStart, xEnd - xStart + 1));
	}
	else
		return("");
}

function stripQuotes(x)
// Removes single and double quote characters from a string
{
	var i, y, z;

	y = "";

	if (x != null && x != "")
		for (i = 0; i < x.length; i++)
		{
			z = x.substr(i, 1);
			if (z != "\"" && z != "\'") y += z;
		}

	return(y);
}
