/* Validation */

// required field name => field readable label
var a = new Array();

// form 1 (index.php) required fields
a["loan_amount"] = "Requested Loan Amount";
a["product"] = "Requested Loan Type";
a["borrower_prefix"] = "Prefix";
a["borrower_fname"] = "First Name";
a["borrower_lname"] = "Last Name";
a["prop_address"] = "Property Address";
a["prop_city"] = "City";
a["prop_state"] = "State";
a["prop_zip"] = "Zip Code";
a["d_area"] = "Home Area Code";
a["d_phone"] = "Home Phone";
a["dw_area"] = "Work Area Code";
a["dw_phone"] = "Work Phone";
a["email"] = "Email Address";
a["p_value"] = "Current Property Value";
a["p_descr"] = "Property Type";
a["p_purpose"] = "Property Purpose";
a["len_1m"] = "First Mortgage Lender";
a["bal_1m"] = "First Mortgage Balance";
a["pay_1m"] = "First Mortgage Payment";
a["rate_1m_part1"] = "First Mortgage Interest 1";
a["rate_1m_part2"] = "First Mortgage Interest 2";
a["fix_var_1m"] = "First Mortgage Fixed/Variable";
a["coborrower_ind"] = "CoBorrower Information";
a["income"] = "Annual Income";
a["cred_hist"] = "Credit History Rating";

// form 2 (page2.php) required fields
a["p_price"] = "Original Purchase Price";
a["p_years"] = "Years In Home";
a["mailing_address"] = "Mailing Address";
a["mailing_city"] = "Mailing City";
a["mailing_state"] = "Mailing State";
a["mailing_zip"] = "Mailing Zip";
a["len_2m"] = "Second Mortgage Lender";
a["bal_2m"] = "Second Mortgage Balance";
a["pay_2m"] = "Second Mortgage Payment";
a["rate_2m_part1"] = "Second Mortgage Interest 1";
a["rate_2m_part2"] = "Second Mortgage Interest 2";
a["fix_var_2m"] = "Second Mortgage Fixed/Variable";
a["coborrower_prefix"] = "Coborrower Prefix";
a["coborrower_fname"] = "Coborrower First Name";
a["coborrower_lname"] = "Coborrower Last Name";
a["co_income"] = "Coborrower Income";
a["emp_status"] = "Your Employment Status";
a["emp_name"] = "Your Employer Name";
a["how_long"] = "Years Employed";
a["co_emp_status"] = "Coborrower Employment Status";
a["co_emp_name"] = "Coborrower Employer Name";
a["co_how_long"] = "Coborrower Years Employed";
a["debt_amt"] = "Debt Amount";
a["debt_min_pay"] = "Debt Minimum Payment";
a["house_pmt_rating"] = "House Payment On Time";
a["discharge"] = "Bankruptcy Discharged";
a["adtl_inc_desc1"] = "Additional Income Description 1";
a["adtl_inc_amt1"] = "Additional Income Amount 1";
a["adtl_inc_desc2"] = "Additional Income Description 2";
a["adtl_inc_amt2"] = "Additional Income Amount 2";
a["adtl_inc_desc3"] = "Additional Income Description 3";
a["adtl_inc_amt3"] = "Additional Income Amount 3";
a["ssn"] = "Your SSN";
a["co_ssn"] = "Coborrower SSN";

function validate1(f)
{
	var nFields = f.elements.length;
	var error = "The following fields are required:\n";
	var isError = false;
	
	for (i=0;i<nFields;i++)
	{
		switch (f.elements[i].name)
		{
			case "len_1m":
			case "bal_1m":
			case "pay_1m":
			case "rate_1m_part1":
			case "rate_1m_part2":
			case "fix_var_1m":
			
				if (f.first_mortgage_ind.checked && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}		
			
			break;
			
			default:
			
				if (isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
			
			break;
		}
	}
	
	if (isError)
	{
		alert(error);
		return false;
	}
	
	return true;
}

function validate2(f)
{
	var nFields = f.elements.length;
	var error = "The following fields are required:\n";
	var isError = false;
	
	for (i=0;i<nFields;i++)
	{
		switch (f.elements[i].name)
		{	
			case "len_1m":
			case "bal_1m":
			case "pay_1m":
			case "rate_1m_part1":
			case "rate_1m_part2":
			case "fix_var_1m":
			
				if (f.first_mortgage_ind && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}		
			
			break;
			
			case "mailing_address":
			case "mailing_city":
			case "mailing_state":
			case "mailing_zip":
			
				if (!f.mailing_address_ind.checked && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "len_2m":
			case "bal_2m":
			case "pay_2m":
			case "rate_2m_part1":
			case "rate_2m_part2":
			case "fix_var_2m":
			
				if (f.second_mortgage_ind.checked && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "coborrower_prefix":
			case "coborrower_fname":
			case "coborrower_lname":
			case "co_income":
			case "co_emp_status":
			
				if (f.coborrower_ind.value=="Y" && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "how_long":
			
				if ((f.emp_status.value=="1" || f.emp_status.value=="2")  && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "emp_name":
			
				if ((f.emp_status.value=="1" || f.emp_status.value=="2" || f.emp_status.value=="3" || f.emp_status.value=="4")  && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "co_how_long":
			
				if ((f.co_emp_status.value=="1" || f.co_emp_status.value=="2")  && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "co_emp_name":
			
				if ((f.co_emp_status.value=="1" || f.co_emp_status.value=="2" || f.co_emp_status.value=="3" || f.co_emp_status.value=="4")  && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "debt_amt":
			case "debt_min_pay":
			
				if (f.debt_ind.checked && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "discharge":
			
				if (f.bankruptcy.checked && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "adtl_inc_desc1":
			case "adtl_inc_amt1":
			
				if (f.adtl_inc_count.value > 0 && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "adtl_inc_desc2":
			case "adtl_inc_amt2":
			
				if (f.adtl_inc_count.value > 1 && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
			
			break;
			
			case "adtl_inc_desc3":
			case "adtl_inc_amt3":
			
				if (f.adtl_inc_count.value > 2 && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
			
			break;
			
			case "ssn":
			
				if (f.credit_pull_perm.checked && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			case "co_ssn":
			
				if (f.credit_pull_perm.checked && f.coborrower_ind.value == "Y" && isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
				
			break;
			
			default:
			
				if (isEmpty(f.elements[i].value) && keyExists(f.elements[i].name, a))
				{
					isError = true;
					error += a[f.elements[i].name] + "\n";
				}
			
			break;
		}
	}
	
	if (isError)
	{
		alert(error);
		return false;
	}
	
	return true;
}

function isEmpty(str)
{
	return (str.length == 0 || str == null || str == "0") ? true : false;
}

function keyExists(k, a)
{	
	for (x in a)
	{
		if (x == k)
		{
			return true;
		}
	}
	
	return false;
}