// Brings up a help window.
function help (url)
{
    var pad = screen.availWidth * 0.1;
    var width = screen.availWidth * 0.4
    var height = screen.availHeight - (pad * 2)
    var left = screen.availWidth - width - pad;
    var top = pad;
 
    var win = window.open (url, "help",
            "width=" + width + "," +
            "height=" + height + "," +
            "left=" + left + "," +
            "top=" + top + "," +
            "menubar=yes,scrollbars=yes");
 
    // Brings it to the front.
    if (win != null)
        win.focus();
}

function printWindow(url, height, width)
{
	var params="";
	if( height )
		params = "height=" + height;

	if( width )
		params += ",width=" + width;

	var newWindow = window.open(url, "", params);
}


function openWindow(url, height, width)
{
	var params="";
	if( height )
		params = "height=" + height;

	if( width )
		params += ",width=" + width;

	var newWindow = window.open("http://" + url, "", params);
}

// removes trailing spaces from string
function rtrim(string) 
{
	return string.replace(/\s+$/gi, "");
}

// removes leading spaces from string
function ltrim(string) 
{
	return string.replace(/^\s*/gi, "");
}

// removes trailing and leading spaces from string
function trim(string) 
{
	return ltrim(rtrim(string)); 
}

// Returns whether a date is valid.  Dates are mm/dd/yyyy.
function validDate (date)
{
	// Note: Unfortunately, many browsers do not support split.
	var i = 0;
	var l = 0;

	i = date.indexOf("/", i);
	var month = date.substr(0, i);

	l = i; i = date.indexOf("/", i+1);
	var day = date.substr(l+1, i-l-1);
	
	var year = date.substr(i+1);

	if (year == "") return false;
	if (day == "") return false;
	if (month == "") return false;

	if (isNaN(year)) return false;
	if (isNaN(day)) return false;
	if (isNaN(month)) return false;

	if (year < 1900 || year > 9999) return false;
	if (month < 1 || month > 12) return false;
	if (day < 1 || day > 31) return false;

	return true;
}

// Returns true if a GIF or a JPG.
function gifOrJpg (text)
{
	var extension = getExtension(text);

	if (extension == ".GIF" || extension == ".JPG")
		return true;

	return false;
}

// Returns the file part of a path (or last directory if no file is given).
function filePart (text)
{
	var cut_at = text.lastIndexOf('/');

	if (cut_at == -1)
		cut_at = text.lastIndexOf('\\');

	return text.substr(cut_at + 1);
}

// Returns an upper-cased extension.
function getExtension (text)
{
	return text.substr(text.lastIndexOf('.')).toUpperCase();
}
// returns amount formatted with .00
// need to be able to handle rounding
function formatCurrency(amt)
{
	var sign;
	var cents;
	
	if( isNaN(amt) )
		amt = "0";
		
	sign = (amt == (amt = Math.abs(amt)));
	
	amt = Math.floor(amt * 100 + 0.50000000001);
	
	cents = amt % 100;
	
	amt = Math.floor(amt/100).toString();
	
	if(cents<10)
		cents = "0" + cents;
		
	for( var i = 0; i < Math.floor((amt.length - (1+i))/3); i++)
		amt = amt.substring(0, amt.length - (4*i+3)) + 
			  amt.substring(amt.length - (4*i+3));
		
	return (sign ? '' : '-') + amt + '.' + cents;

}
// formats a field to currency
function formatCurrencyField(field)
{
	field.value = formatCurrency(field.value);
}

// formats a fields value to a formated phone number
function formatPhoneField(field)
{
	var result = "";
	
	for( var i=0; i < field.value.length; i++ )
	{
		if( !isNaN( field.value.charAt(i) ) )
			result += field.value.charAt(i);
	}
	
	switch( result.length )
	{
		case 7:
			field.value = result.substr(0, 3) + "-" + result.substr(3);
			break;
		
		case 10:
			field.value = result.substr(0, 3) + "-" +
						  result.substr(3, 3) + "-" + 
						  result.substr(6);
			break;
					 
		case 11:
			field.value = result.substr(0, 1) + "-" +
						  result.substr(1, 3) + "-" + 
						  result.substr(4, 3) + "-" + 
						  result.substr(7);
			break;
	}
}
// highlight and set focus to a field
function selectField(field)
{
	if( field.type == "text" )
		field.select();
	
	field.focus();
}

// highlights first non-button/non-hidden field
function selectFirstField(form)
{
	for( var i=0; i < form.elements.length; i++ )
	{
		if( form.elements[i].type != "hidden" && 
			form.elements[i].type != "submit" && 
			form.elements[i].type != "button" &&
			form.elements[i].disabled == false )
		{
			selectField( form.elements[i] );
			return;
		}
	}	
}

// function enables the fields passed in
function enableFields()
{
	for( var i=0; i < arguments.length; i++ )
		if( arguments[i] ) 
			arguments[i].disabled = false;
}
