function fieldsAreEqual(field1, field2)
{
        var F1 = field1;
        var F2 = field2;
        if(F1.value != F2.value)
        {
                F1.value = "";
                F2.value = "";
                F1.focus();
                return false;
        }
		else
		{
			return true;
		}
}


/************************************************************************************/


function isMinLen(field1, len)
{
        var F1 = field1;
		var iLength = len;

        if(F1.value.length < iLength)
        {
                F1.value = "";
                F1.focus();
                return false;
        }
		else
		{
			return true;
		}
}


/************************************************************************************/



function reqFieldsPopulated()
{
	for(i=0; i<arguments.length; i++)
	{
		if(arguments[i].value == null || arguments[i].value == "")
		{	
			return false;
		}
	}
	return true;
}


/************************************************************************************/



function isNumeric(a)
{
	var inputVal = a;
	if(inputVal == null || inputVal == "")
	{
		inputVal = "notSpecified";
	}
	for(i=0; i < inputVal.length; i++)
	{	
		var charPos = inputVal.charAt(i);
		if(charPos < "0" || charPos > "9")
		{			
			return false;
		}
	}
	return true;
}


function isNumericOrDash(a)
{
	var inputVal = a;
	if(inputVal == null || inputVal == "")
	{
		inputVal = "notSpecified";
	}
	for(i=0; i < inputVal.length; i++)
	{	
		var charPos = inputVal.charAt(i);
		if(charPos != "-" && (charPos < "0" || charPos > "9"))
		{			
			return false;
		}
	}
	return true;
}

/************************************************************************************/



function isAlpha(a)
{
	var inputVal = a.toLowerCase();
	for(i=0; i < inputVal.length; i++)
	{	
		var charPos = inputVal.charAt(i);
		if(charPos < "a" || charPos > "z")
		{
			return false;
		}
	}
	return true;
}


/************************************************************************************/



function isAlphaNumeric(a)
{
	var inputVal = a.toLowerCase();
	var ok = true;
	for(i=0; i < inputVal.length; i++)
	{	
		var charPos = inputVal.charAt(i);
	
		if( (charPos < "a" || charPos > "z") && (charPos < "0" || charPos > "9") )
		{
			return false;
		}
	}
	return true;
}


/************************************************************************************/



function isAlphaNumericDotOrDash(a)
{
	var inputVal = a.toLowerCase();

	for(i=0; i < inputVal.length; i++)
	{	
		var charPos = inputVal.charAt(i);
	
		if( (charPos < "a" || charPos > "z") && (charPos < "0" || charPos > "9") && !( charPos == "." || charPos == "-"))
		{
			return false;
		}
	}
	return true;
}


/************************************************************************************/

function isAlphaNumericDotDashOrUnderscore(a)
{
	var inputVal = a.toLowerCase();

	for(i=0; i < inputVal.length; i++)
	{	
		var charPos = inputVal.charAt(i);
	
		if( (charPos < "a" || charPos > "z") && (charPos < "0" || charPos > "9") && !( charPos == "." || charPos == "-" || charPos == "_" || charPos == "+"))
		{
			return false;
		}
	}
	return true;
}

/************************************************************************************/


function isValidEmail(a)
{
	// Modified 01/15/01 - Trevor Wencl
	// Makes sure there is one and only one @ symbol and is not the first char
	//	There must be at least one "." after the @ symbol
	// The string before the @ and the string after the @ must be AlphaNumeric, a - or . 
	
	str = a;
	if(str == null || str == "")
	{
		// str = "notSpecified";
		// alert(" notSpecified");
		return false;
	}

	// *** @ symbol stuff ***
	// there must be one and only one @ symbol and cannot be the first char 
	// the "." later will ensure that it isn't the last char
	var atSymbolIndex = str.indexOf("@",0);

	if(atSymbolIndex == 0)
	{
		// the @ symbol is the first character
		// alert("the @ symbol is the first character");
		return false;
	}
	if(atSymbolIndex == -1)
	{
		// no @ symbol
		// alert("no @ symbol");
		return false;
	}

	var secondAtSymbolIndex = str.indexOf("@",atSymbolIndex +1);

	if(secondAtSymbolIndex >= 0)
	{
		// there are 2 @ symbols
		// alert("there are 2 @ symbols");
		return false;
	}

	var preAtSymbolStr = str.substring(0, atSymbolIndex);
	var postAtSymbolStr = str.substring(atSymbolIndex +1, str.length);

	//alert("atSymbolIndex = " + atSymbolIndex);	
	//alert("str.length = " + str.length);	
	//alert("preAtSymbolStr = " + preAtSymbolStr);
	//alert("postAtSymbolStr = " + postAtSymbolStr);

	// dot stuff
	// make sure there is a ".xxx" to the right of the @ symbol
	var dotIndex = postAtSymbolStr.indexOf(".");
	// alert("dotIndex = " + dotIndex );
	// alert(" -- postAtSymbolStr.length = " + postAtSymbolStr.length );
	if(dotIndex == -1 || dotIndex == postAtSymbolStr.length -1 )
	{
		// no "." was found to the right of the @ symbol
		// alert("no extention was found to the right of the @ symbol");
		return false;
	}	

	// *** spaces stuff ***
	var spaces = str.indexOf(" ",0);
	if(spaces >= 0)
	{ 
		// spaces were found
		// alert("spaces were found");
		return false;
	}
	

	if( !(isValidMailBox(preAtSymbolStr) && isAlphaNumericDotOrDash(postAtSymbolStr)))
	{
		return false;
	}

	return true;
}


/************************************************************************************/

/* isValidMailBox(a)
** Trevor Wencl 02/26/01 
** start and end char is alphanumeric, the rest is alphanumeric, dash, dot, or underscore */
function isValidMailBox(a)
{
	var str = a;
	if(isAlphaNumericDotDashOrUnderscore(str) == false)
	{
		alert("Mail box names can only contain letters, numbers, dashes, dots or underscores");
		return false;
	}
	
	var firstChar = str.substring(0, 1);
	var lastChar = str.substring(str.length - 1, str.length);
	//alert("firstChar = " + firstChar);
	//alert("lastChar = " + lastChar);

	if( !(isAlphaNumeric(firstChar)) || !(isAlphaNumeric(lastChar)) )
	{
		alert("The first and last charaters must be alphanumeric");
		return false;
	}

	return true;
}





/************************************************************************************/



function isValidURL(u)
{
	beginURL = u.substring(0,7);
	if ((beginURL != "http://") && (beginURL != "https:/"))
	{
		return false;
	}
}


/************************************************************************************/


function isValidUSStateName(field)
{
	sStateName = field.value.toUpperCase();	

	// States array
	var USStates = new Array(54)
	USStates[0] = "ALABAMA"
	USStates[1] = "ALASKA"
	USStates[2] = "ARIZONA"
	USStates[3] = "ARKANSAS"
	USStates[4] = "CALIFORNIA"
	USStates[5] = "COLORADO"
	USStates[6] = "CONNECTICUT"
	USStates[7] = "DELAWARE"
	USStates[8] = "DISTRICT OF COLUMBIA"
	USStates[9] = "FLORIDA"
	USStates[10] = "GEORGIA"
	USStates[11] = "HAWAII"
	USStates[12] = "IDAHO"
	USStates[13] = "ILLINOIS"
	USStates[14] = "INDIANA"
	USStates[15] = "IOWA"
	USStates[16] = "KANSAS"
	USStates[17] = "KENTUCKY"
	USStates[18] = "LOUISIANA"
	USStates[19] = "MAINE"
	USStates[20] = "MARYLAND"
	USStates[21] = "MASSACHUSETTS"
	USStates[22] = "MICHIGAN"
	USStates[23] = "MINNESOTA"
	USStates[24] = "MISSISSIPPI"
	USStates[25] = "MISSOURI"
	USStates[26] = "MONTANA"
	USStates[27] = "NEBRASKA"
	USStates[28] = "NEVADA"
	USStates[29] = "NEW HAMPSHIRE"
	USStates[30] = "NEW JERSEY"
	USStates[31] = "NEW MEXICO"
	USStates[32] = "NEW YORK"
	USStates[33] = "NORTH CAROLINA"
	USStates[34] = "NORTH DAKOTA"
	USStates[35] = "OHIO"
	USStates[36] = "OKLAHOMA"
	USStates[37] = "OREGON"
	USStates[38] = "PENNSYLVANIA"
	USStates[39] = "RHODE ISLAND"
	USStates[40] = "SOUTH CAROLINA"
	USStates[41] = "SOUTH DAKOTA"
	USStates[42] = "TENNESSEE"
	USStates[43] = "TEXAS"
	USStates[44] = "UTAH"
	USStates[45] = "VERMONT"
	USStates[46] = "VIRGINIA"
	USStates[47] = "WASHINGTON"
	USStates[48] = "WEST VIRGINIA"
	USStates[49] = "WISCONSIN"
	USStates[50] = "WYOMING"
	USStates[51] = "AA"
	USStates[52] = "AE"
	USStates[53] = "AP"

	for(i=0; i < USStates.length; i++)
	{
		if(sStateName == USStates[i])
		{	
			//alert(sStateName + "is equal to " + USStates[i])
			return true;
		}
	}

	return false;
}


/************************************************************************************/



function isValidUSStateCode(field)
{
	sStateCode = field.value.toUpperCase();

	// States array
	var USStatesCodes = new Array(54)
	USStatesCodes[0] = "AL"
	USStatesCodes[1] = "AK"
	USStatesCodes[2] = "AZ"
	USStatesCodes[3] = "AR"
	USStatesCodes[4] = "CA"
	USStatesCodes[5] = "CO"
	USStatesCodes[6] = "CT"
	USStatesCodes[7] = "DE"
	USStatesCodes[8] = "DC"
	USStatesCodes[9] = "FL"
	USStatesCodes[10] = "GA"
	USStatesCodes[11] = "HI"
	USStatesCodes[12] = "ID"
	USStatesCodes[13] = "IL"
	USStatesCodes[14] = "IN"
	USStatesCodes[15] = "IA"
	USStatesCodes[16] = "KS"
	USStatesCodes[17] = "KY"
	USStatesCodes[18] = "LA"
	USStatesCodes[19] = "ME"
	USStatesCodes[20] = "MD"
	USStatesCodes[21] = "MA"
	USStatesCodes[22] = "MI"
	USStatesCodes[23] = "MN"
	USStatesCodes[24] = "MS"
	USStatesCodes[25] = "MO"
	USStatesCodes[26] = "MT"
	USStatesCodes[27] = "NE"
	USStatesCodes[28] = "NV"
	USStatesCodes[29] = "NH"
	USStatesCodes[30] = "NJ"
	USStatesCodes[31] = "NM"
	USStatesCodes[32] = "NY"
	USStatesCodes[33] = "NC"
	USStatesCodes[34] = "ND"
	USStatesCodes[35] = "OH"
	USStatesCodes[36] = "OK"
	USStatesCodes[37] = "OR"
	USStatesCodes[38] = "PA"
	USStatesCodes[39] = "RI"
	USStatesCodes[40] = "SC"
	USStatesCodes[41] = "SD"
	USStatesCodes[42] = "TN"
	USStatesCodes[43] = "TX"
	USStatesCodes[44] = "UT"
	USStatesCodes[45] = "VT"
	USStatesCodes[46] = "VA"
	USStatesCodes[47] = "WA"
	USStatesCodes[48] = "WV"
	USStatesCodes[49] = "WI"
	USStatesCodes[50] = "WY"
	USStatesCodes[51] = "AA"
	USStatesCodes[52] = "AE"
	USStatesCodes[53] = "AP"

	for(i=0; i < USStatesCodes.length; i++)
	{
		if(sStateCode == USStatesCodes[i])
		{
			return true;
		}
	}
	
	return false;
}


/************************************************************************************/



function convertState(a)
{
	sConvertVal = a.toUpperCase();
	sConvertNewVal = "";

	// States array
	var USStatesCodes = new Array(54)
	USStatesCodes["ALABAMA"] = "AL"
	USStatesCodes["ALASKA"] = "AK"
	USStatesCodes["ARIZONA"] = "AZ"
	USStatesCodes["ARKANSAS"] = "AR"
	USStatesCodes["CALIFORNIA"] = "CA"
	USStatesCodes["COLORADO"] = "CO"
	USStatesCodes["CONNECTICUT"] = "CT"
	USStatesCodes["DELAWARE"] = "DE"
	USStatesCodes["DISTRICT OF COLUMBIA"] = "DC"
	USStatesCodes["FLORIDA"] = "FL"
	USStatesCodes["GEORGIA"] = "GA"
	USStatesCodes["HAWAII"] = "HI"
	USStatesCodes["IDAHO"] = "ID"
	USStatesCodes["ILLINOIS"] = "IL"
	USStatesCodes["INDIANA"] = "IN"
	USStatesCodes["IOWA"] = "IA"
	USStatesCodes["KANSAS"] = "KS"
	USStatesCodes["KENTUCKY"] = "KY"
	USStatesCodes["LOUISIANA"] = "LA"
	USStatesCodes["MAINE"] = "ME"
	USStatesCodes["MARYLAND"] = "MD"
	USStatesCodes["MASSACHUSETTS"] = "MA"
	USStatesCodes["MICHIGAN"] = "MI"
	USStatesCodes["MINNESOTA"] = "MN"
	USStatesCodes["MISSISSIPPI"] = "MS"
	USStatesCodes["MISSOURI"] = "MO"
	USStatesCodes["MONTANA"] = "MT"
	USStatesCodes["NEBRASKA"] = "NE"
	USStatesCodes["NEVADA"] = "NV"
	USStatesCodes["NEW HAMPSHIRE"] = "NH"
	USStatesCodes["NEW JERSEY"] = "NJ"
	USStatesCodes["NEW MEXICO"] = "NM"
	USStatesCodes["NEW YORK"] = "NY"
	USStatesCodes["NORTH CAROLINA"] = "NC"
	USStatesCodes["NORTH DAKOTA"] = "ND"
	USStatesCodes["OHIO"] = "OH"
	USStatesCodes["OKLAHOMA"] = "OK"
	USStatesCodes["OREGON"] = "OR"
	USStatesCodes["PENNSYLVANIA"] = "PA"
	USStatesCodes["RHODE ISLAND"] = "RI"
	USStatesCodes["SOUTH CAROLINA"] = "SC"
	USStatesCodes["SOUTH DAKOTA"] = "SD"
	USStatesCodes["TENNESSEE"] = "TN"
	USStatesCodes["TEXAS"] = "TX"
	USStatesCodes["UTAH"] = "UT"
	USStatesCodes["VERMONT"] = "VT"
	USStatesCodes["VIRGINIA"] = "VA"
	USStatesCodes["WASHINGTON"] = "WA"
	USStatesCodes["WEST VIRGINIA"] = "WV"
	USStatesCodes["WISCONSIN"] = "WI"
	USStatesCodes["WYOMING"] = "WY"
	USStatesCodes["AA"] = "AA"
	USStatesCodes["AE"] = "AE"
	USStatesCodes["AP"] = "AP"

	// States array
	var USStates = new Array(54)
	USStates["AL"] = "ALABAMA"
	USStates["AK"] = "ALASKA"
	USStates["AZ"] = "ARIZONA"
	USStates["AR"] = "ARKANSAS"
	USStates["CA"] = "CALIFORNIA"
	USStates["CO"] = "COLORADO"
	USStates["CT"] = "CONNECTICUT"
	USStates["DE"] = "DELAWARE"
	USStates["DC"] = "DISTRICT OF COLUMBIA"
	USStates["FL"] = "FLORIDA"
	USStates["GA"] = "GEORGIA"
	USStates["HI"] = "HAWAII"
	USStates["ID"] = "IDAHO"
	USStates["IL"] = "ILLINOIS"
	USStates["IN"] = "INDIANA"
	USStates["IA"] = "IOWA"
	USStates["KS"] = "KANSAS"
	USStates["KY"] = "KENTUCKY"
	USStates["LA"] = "LOUISIANA"
	USStates["ME"] = "MAINE"
	USStates["MD"] = "MARYLAND"
	USStates["MA"] = "MASSACHUSETTS"
	USStates["MI"] = "MICHIGAN"
	USStates["MN"] = "MINNESOTA"
	USStates["MS"] = "MISSISSIPPI"
	USStates["MO"] = "MISSOURI"
	USStates["MT"] = "MONTANA"
	USStates["NE"] = "NEBRASKA"
	USStates["NV"] = "NEVADA"
	USStates["NH"] = "NEW HAMPSHIRE"
	USStates["NJ"] = "NEW JERSEY"
	USStates["NM"] = "NEW MEXICO"
	USStates["NY"] = "NEW YORK"
	USStates["NC"] = "NORTH CAROLINA"
	USStates["ND"] = "NORTH DAKOTA"
	USStates["OH"] = "OHIO"
	USStates["OK"] = "OKLAHOMA"
	USStates["OR"] = "OREGON"
	USStates["PA"] = "PENNSYLVANIA"
	USStates["RI"] = "RHODE ISLAND"
	USStates["SC"] = "SOUTH CAROLINA"
	USStates["SD"] = "SOUTH DAKOTA"
	USStates["TN"] = "TENNESSEE"
	USStates["TX"] = "TEXAS"
	USStates["UT"] = "UTAH"
	USStates["VT"] = "VERMONT"
	USStates["VA"] = "VIRGINIA"
	USStates["WA"] = "WASHINGTON"
	USStates["WV"] = "WEST VIRGINIA"
	USStates["WI"] = "WISCONSIN"
	USStates["WY"] = "WYOMING"
	USStates["AA"] = "AA"
	USStates["AE"] = "AE"
	USStates["AP"] = "AP"

	if(sConvertVal.length > 2)
	{
		sConvertNewVal = USStatesCodes[sConvertVal]
	}
	else if(sConvertVal.length == 2)
	{
		sConvertNewVal = USStates[sConvertVal]
	}

	return sConvertNewVal;
}


/************************************************************************************/



function prepopulate(fieldToCopy)
{
	sConvertVal = fieldToCopy;	
	return sConvertVal;
}


/************************************************************************************/



function isOnlyNumbers(n)
{
	var validChars = "0123456789";
	for (i=0; i<n.length; i++)
	{
		if (validChars.indexOf(n.substring(i, i+1)) == -1)
		{
			return false;
		}
	}
}



function isValidUSPostalCode(postalCode)
{
	// is US, must be numerical and 7 digit min
	if(postalCode.value.length < 5) {
		return false;		
	}

	if(isNumericOrDash(postalCode.value) == true) {
		return true;
	} else {
		return false;
	}

	return false;
}
