var errorimage = new Image(); errorimage.src = "/gifs/validerror.gif";
var blankimage = new Image(); blankimage.src = "/gifs/validnoerror.gif";
var digits = "1234567890";
var defaultEmptyOK = false;

function validateform(f)
{
        var erroronform = "";
	if(f.sender_name)
	{
        	if (isWhitespace(f.sender_name.value))
        	{
                	document.getElementById('sender_name_label').style.color='red';
                	document.getElementById('sender_name_label').style.fontWeight='bold';
                	erroronform="yes";
        	}
        	else
        	{
                	document.getElementById('sender_name_label').style.color='green';
                	document.getElementById('sender_name_label').style.fontWeight='normal';
        	}
	}
	else
	{
		if(isWhitespace(f.sender_first_name.value) && isWhitespace(f.sender_last_name.value))
		{
                	document.getElementById('sender_first_name_label').style.color='red';
                	document.getElementById('sender_first_name_label').style.fontWeight='bold';
                	document.getElementById('sender_last_name_label').style.color='red';
                	document.getElementById('sender_last_name_label').style.fontWeight='bold';
                	erroronform="yes";
		}
		else
		{
                	document.getElementById('sender_first_name_label').style.color='green';
                	document.getElementById('sender_first_name_label').style.fontWeight='normal';
                	document.getElementById('sender_last_name_label').style.color='green';
                	document.getElementById('sender_last_name_label').style.fontWeight='normal';
		}
	}
        if (isWhitespace(f.sender_street_address.value))
        {
                document.getElementById('sender_street_address_label').style.color='red';
                document.getElementById('sender_street_address_label').style.fontWeight='bold';
                erroronform="yes";
        }
        else
        {
                document.getElementById('sender_street_address_label').style.color='green';
                document.getElementById('sender_street_address_label').style.fontWeight='normal';
        }
        if (isWhitespace(f.sender_city.value))
        {
                document.getElementById('sender_city_label').style.color='red';
                document.getElementById('sender_city_label').style.fontWeight='bold';
                erroronform="yes";
        }
        else
        {
                document.getElementById('sender_city_label').style.color='green';
                document.getElementById('sender_city_label').style.fontWeight='normal';
        }
        if (isWhitespace(f.sender_state.value))
        {
                document.getElementById('sender_state_label').style.color='red';
                document.getElementById('sender_state_label').style.fontWeight='bold';
                erroronform="yes";
        }
        else
        {
                document.getElementById('sender_state_label').style.color='green';
                document.getElementById('sender_state_label').style.fontWeight='normal';
        }
        if (isWhitespace(f.sender_zip_code.value))
        {
                document.getElementById('sender_zip_code_label').style.color='red';
                document.getElementById('sender_zip_code_label').style.fontWeight='bold';
                erroronform="yes";
        }
        else
        {
                document.getElementById('sender_zip_code_label').style.color='green';
                document.getElementById('sender_zip_code_label').style.fontWeight='normal';
        }
        if ((isWhitespace(f.sender_home_phone.value) || !(isAtLeastTenDigits(f.sender_home_phone.value))) && (isWhitespace(f.sender_work_phone.value) || !(isAtLeastTenDigits(f.sender_work_phone.value))))
        {
                document.getElementById('sender_home_phone_label').style.color='red';
                document.getElementById('sender_work_phone_label').style.color='red';
                document.getElementById('sender_home_phone_label').style.fontWeight='bold';
                document.getElementById('sender_work_phone_label').style.fontWeight='bold';
                erroronform="yes";
        }
        else
        {
                document.getElementById('sender_home_phone_label').style.color='green';
                document.getElementById('sender_work_phone_label').style.color='green';
                document.getElementById('sender_home_phone_label').style.fontWeight='normal';
                document.getElementById('sender_work_phone_label').style.fontWeight='normal';
        }
        if (!(isEmail(f.sender_email.value,false)))
        {
                document.getElementById('sender_email_label').style.color='red';
                document.getElementById('sender_email_label').style.fontWeight='bold';
                erroronform="yes";
        }
        else
        {
                document.getElementById('sender_email_label').style.color='green';
                document.getElementById('sender_email_label').style.fontWeight='normal';
        }
	if (isWhitespace(f.credit_card_number.value) && isWhitespace(f.house_account_number.value))
	{
                document.getElementById('credit_card_number_label').style.color='red';
                document.getElementById('credit_card_number_label').style.fontWeight='bold';
                document.getElementById('house_account_number_label').style.color='red';
                document.getElementById('house_account_number_label').style.fontWeight='bold';
                erroronform="yes";
	}
	else
	{
                document.getElementById('credit_card_number_label').style.color='green';
                document.getElementById('credit_card_number_label').style.fontWeight='normal';
                document.getElementById('house_account_number_label').style.color='green';
                document.getElementById('house_account_number_label').style.fontWeight='normal';
	}
	if(!(isWhitespace(f.credit_card_number.value)) && f.credit_card_number.value.substring(0,1) != '*')
	{
		if(!(isCreditCard(f.credit_card_number.value)))
		{
	               	document.getElementById('credit_card_number_label').style.color='red';
                	document.getElementById('credit_card_number_label').style.fontWeight='bold';
                	erroronform="yes";
		}
		else
		{
                	document.getElementById('credit_card_number_label').style.color='green';
                	document.getElementById('credit_card_number_label').style.fontWeight='normal';
		}
		if(isWhitespace(f.credit_card_expiration_month.value) || isWhitespace(f.credit_card_expiration_year.value))
		{
                	document.getElementById('expiration_date_label').style.color='red';
                	document.getElementById('expiration_date_label').style.fontWeight='bold';
                	erroronform="yes";
		}
		else
		{
                	document.getElementById('expiration_date_label').style.color='green';
                	document.getElementById('expiration_date_label').style.fontWeight='normal';
		}
	}
        if (erroronform == "yes")
        {
		f.validimage.src = "/gifs/validerror.gif";
		f.validimage2.src = "/gifs/validerror.gif";
                return false;
        }
}
function isEmpty(s)
{
        return ((s == null) || (s.length == 0))
}
function isWhitespace (s)
{
        var whitespace = " \t\n\r";
        var i;
        if (isEmpty(s)) return true;
        for (i = 0; i < s.length; i++)
        {
                var c = s.charAt(i);
                if (whitespace.indexOf(c) == -1) return false;
        }
        return true;
}
function getRadioButtonValue (radio)
{
	for (var i = 0; i < radio.length; i++)
	{
		if (radio[i].checked) { break }
	}
	if(i==radio.length)
	{
		return "";
	}
	else
	{
		return radio[i].value
	}
}
function reformat (s)
{
	var arg;
	var sPos = 0;
	var resultString = "";
	for (var i = 1; i < reformat.arguments.length; i++)
	{
		arg = reformat.arguments[i];
		if (i % 2 == 1) resultString += arg;
		else
		{
			resultString += s.substring(sPos, sPos + arg);
			sPos += arg;
		}
	}
	return resultString;
}
function reformatUSPhone (USPhone)
{
	return (reformat (USPhone, "(", 3, ") ", 3, "-", 4))
}
function stripCharsNotInBag (s, bag)
{
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++)
	{
		var c = s.charAt(i);
		if (bag.indexOf(c) != -1) returnString += c;
	}
	return returnString;
}
function checkUSPhone (theField, emptyOK)
{
        if (checkUSPhone.arguments.length == 1) emptyOK = defaultEmptyOK;
        if ((emptyOK == true) && (isEmpty(theField.value))) return true;
        else
        {
                var normalizedPhone = stripCharsNotInBag(theField.value, digits)
                if(normalizedPhone.length == 7) normalizedPhone= "   "+normalizedPhone;
                if((normalizedPhone.length == 11) && (normalizedPhone.charAt(0) == "1"))
                {
                        var tmpvar = normalizedPhone.substring(1,normalizedPhone.length);
                        normalizedPhone = tmpvar;
                }
                if(!(isWhitespace(normalizedPhone)) && normalizedPhone.length == 10)
                {
                        theField.value = reformatUSPhone(normalizedPhone)
                }
                return true;
        }
}
function isAtLeastTenDigits(s)
{
        var normalizedPhone=stripCharsNotInBag(s,digits);
        if(normalizedPhone.length < 10) return false;
        return true;
}
function isEmail (s)
{
	if (isEmpty(s))
		if (isEmail.arguments.length == 1) return defaultEmptyOK;
		else return (isEmail.arguments[1] == true);
                if(s.indexOf("&") != -1) return false;
                if(s.indexOf("#") != -1) return false;
                if(s.indexOf("!") != -1) return false;
                if(s.indexOf("%") != -1) return false;
                if(s.indexOf("*") != -1) return false;
                if(s.indexOf("(") != -1) return false;
                if(s.indexOf(")") != -1) return false;
                if(s.indexOf("^") != -1) return false;
		if (isWhitespace(s)) return false;
		var i = 1;
		var sLength = s.length;
		while ((i < sLength) && (s.charAt(i) != "@"))
		{
			i++
		}
		if ((i >= sLength) || (s.charAt(i) != "@")) return false;
		else i += 2;
		while ((i < sLength) && (s.charAt(i) != "."))
		{
			i++
		}
		if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
		else return true;
}
function isCreditCard(st)
{
	if (st.length > 19)
		return (false);
	sum = 0; mul = 1; l = st.length;
	for (i = 0; i < l; i++)
	{
		digit = st.substring(l-i-1,l-i);
		tproduct = parseInt(digit ,10)*mul;
		if (tproduct >= 10)
			sum += (tproduct % 10) + 1;
		else
			sum += tproduct;
		if (mul == 1)
			mul++;
		else
			mul--;
	}
	if ((sum % 10) == 0)
		return (true);
	else
		return (false);
}

