// <!--

var newWin = null;

function array_push(value)
{
	this[this.length] = value;
}

Array.prototype.push = array_push;

function forceReload()
{
	if (document.layers) window.location.reload(true);
}

function empty(str)
{
	return (str == "") ? true : false;
}

function trim(str)
{
	return str.replace(/^\s+|\s+$/g, "");
}

function stripWhitespace(text)
{
	return text.replace(/ /g, "");
}

function validateArg(arg)
{
	if ((arg == null) || (arg == "undefined") || (empty(arg)) || (arg.length < 1)) return false;
	else return true;
}

function validateFloat(arg)
{
	if (arg.indexOf(".") != -1)
	{
		var s = arg.split(".");
		if (s.length > 2) return false;
		
		for (var i = 0; i < s.length; i++)
		{
			if (!validateInt(s[i], true))
				return false;
		}
	}
	else {
		if (!validateInt(arg))
			return false;
	}
	
	return true;
}

function validateInt(arg, allowZero)
{
	for (var i = 0; i < arg.length; i++)
	{
		if (isNaN(arg.charAt(i)) || arg.charAt(i) == " ")
			return false;
	}
	if (!allowZero && (arg == 0)) return false;
	return true;
}

function validateEmailAddress(email)
{
	var invalidChars = '!#$%^*()+{}[]|/:;"\'\\>?<,';
	var email = stripWhitespace(email);
	var at = email.indexOf("@");
	var dot = email.lastIndexOf(".");
	
	if (email.length < 1) {
		return false;
	}
	else if (at < 1 || dot < 3 || dot == email.length -1 || (dot - at) < 2) {
		return false;
	}
	else {
		for (var i = 0; i < email.length; i++) {
			if (invalidChars.indexOf(email.charAt(i)) != -1) {
				return false;
			}
		}
	}
	return true;
}

function formatCurrency(num)
{
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num * 100 + 0.50000000001);
	cents = num % 100;
	num = Math.floor(num/100).toString();
	if (cents < 10) cents = "0" + cents;
	
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	{
		num = num.substring(0, num.length - (4 * i + 3)) + ',' + 
		num.substring(num.length-(4 * i + 3));
	}
	
	return (((sign) ? '' : '-') + num + '.' + cents);
}

function getQueryString(obj)
{
	var args = new Object();
	var qString = obj.location.search.substring(1);
	var argsArray = qString.split("&");

	for (var i = 0; i < argsArray.length; i++)
	{
		var pos = argsArray[i].indexOf('=');
		if (pos == -1) continue;
		var argName = argsArray[i].substring(0, pos);
	 	var value = argsArray[i].substring(pos + 1);
		args[argName] = unescape(value);
	}
	return args;
}

function launchNewWin(URL, windowName, windowWidth, windowHeight, scrollbars)
{
	var xposition = 400; 
	var yposition = 300;
	
    if ((parseInt(navigator.appVersion) >= 4 ))
    {
        xposition = (screen.width - windowWidth) / 2;
        yposition = (screen.height - windowHeight) / 2;
    }
	
	if (!scrollbars) var scrollbars = 0;
	
    var args = "width=" + windowWidth + ","
	    	+ "height=" + windowHeight + ","
	    	+ "location=0,"
		    + "menubar=0,"
		    + "scrollbars=" + scrollbars + ","
		    + "status=0,"
		    + "titlebar=0,"
		    + "hotkeys=0,"
		    + "screenx=" + xposition + ","
		    + "screeny=" + yposition + ","
		    + "left=" + xposition + ","
		    + "top=" + yposition;
		
	if (newWin != null && !newWin.closed) newWin.close();
	
	newWin = window.open(URL, windowName, args);
	if (newWin) newWin.focus();
}

function handleSelectOnload(formObj, selectName, override)
{
	var queryString = getQueryString(document);
	var value = queryString[selectName];
	var selectObj;
	var optionID;
	
	if (document.forms[formObj])
	{
		selectObj = document.forms[formObj][selectName];
		optionID = (override && !validateArg(value)) ?  override : value;
	}
	else return;
	
	for (var i = 0; i < selectObj.options.length; i++)
	{
		if (selectObj.options[i].value == optionID)
		{
			selectObj.selectedIndex = i;
		}
	}
}

function setSelect(formName, selectName, arg)
{ 
	var formObj = document.forms[formName];
	var selectObj = formObj[selectName];
	
	if (!selectObj) return;
	
	for (var i = 0; i < selectObj.options.length; i++)
	{
		if (selectObj.options[i].value == arg)
		{
			selectObj.options[i].selected = true;
		}
	}
}

function setMultipleSelect(formName, selectName, values, delim)
{
	if (values.length < 1) return;
	if (!delim) delim = ',';
	var arr = values.split(delim);
	
	for (var i = 0; i < arr.length; i++)
	{
		setSelect(formName, selectName, arr[i]);
	}
}

function getMultipleSelectValues(formName, selectName, delim)
{
	var formObj = document.forms[formName];
	var selectObj = formObj[selectName];
	var arr = new Array();
	
	for (var i = 0; i < selectObj.options.length; i++)
	{
		if (selectObj.options[i].selected)
		{
			arr.push(selectObj.options[i].value);
		}
	}
	
	if (arr.length < 1) return '';
	
	if (arr[0].length < 1) arr.shift();
	
	return arr.join(delim);
}

function createRequestObject()
{
	return (navigator.appName == "Microsoft Internet Explorer") ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
}

function formData2QueryString(docForm)
{
	var strSubmitContent = '';
	var formElem;
	var strLastElemName = '';
	
	for (i = 0; i < docForm.elements.length; i++)
	{
		formElem = docForm.elements[i];
		
		switch (formElem.type)
		{
			case 'text':
			case 'hidden':
			case 'password':
			case 'textarea':
			case 'select-one':
			
				strSubmitContent += formElem.name + '=' + escape(formElem.value) + '&';
			break;
				
			case 'radio':
			
				if (formElem.checked) strSubmitContent += formElem.name + '=' + escape(formElem.value) + '&';
			break;
				
			case 'checkbox':
			
				if (formElem.checked)
				{
					if (formElem.name == strLastElemName)
					{
						if (strSubmitContent.lastIndexOf('&') == strSubmitContent.length - 1)
						{
							strSubmitContent = strSubmitContent.substr(0, strSubmitContent.length - 1);
						}

						strSubmitContent += ',' + escape(formElem.value);
					}
					else {
						strSubmitContent += formElem.name + '=' + escape(formElem.value);
					}
					strSubmitContent += '&';
					strLastElemName = formElem.name;
				}
			break;
		}
	}
	
	strSubmitContent = strSubmitContent.substr(0, strSubmitContent.length - 1);
	
	return strSubmitContent;
}

function elementExists(elementName) 
{
    try 
    {
        var obj = document.getElementById(elementName); 
        return true; 
    }
    catch(e)
    {
        return false; 
    }    
}

function sendAjaxRequest(method, url, handler, data)
{	
	if (!data) data = null;
	
	http.open(method, url);
	http.onreadystatechange = handler;
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http.send(data);
}

 // -->