function validateCreditApplication(frm) {
var alertString="Please Enter: ";
var valid=true;

if (check(frm.txtFirst_Name.value))						{alertString += "\n - First Name";frm.txtFirst_Name.className="errorform"; valid=false;} else {frm.txtFirst_Name.className="form"}
if (check(frm.txtLast_Name.value))						{alertString += "\n - Last Name";frm.txtLast_Name.className="errorform"; valid=false;} else {frm.txtLast_Name.className="form"}

if (check(frm.cboDobMonth.value) && check(frm.cboDobDay.value) && check(frm.cboDobYear.value)) {
	alertString += "\n - Birth Date"; valid=false;
	frm.cboDobMonth.className="errorform";
	frm.cboDobDay.className="errorform";
	frm.cboDobYear.className="errorform";
}
else {
	if (check(frm.cboDobMonth.value))						{alertString += "\n - Birth Month";frm.cboDobMonth.className="errorform"; valid=false;} else {frm.cboDobMonth.className=""}
	if (check(frm.cboDobDay.value))							{alertString += "\n - Birth Day";frm.cboDobDay.className="errorform"; valid=false;} else {frm.cboDobDay.className=""} 
	if (check(frm.cboDobYear.value))						{alertString += "\n - Birth Year";frm.cboDobYear.className="errorform"; valid=false;} else {frm.cboDobYear.className=""} 
}

if (check(frm.cboMarital_Status.value))					{alertString += "\n - Marital Status";frm.cboMarital_Status.className="errorform"; valid=false;} else {frm.cboMarital_Status.className=""} 
if (check(frm.txtHomeTelephone.value))					{alertString += "\n - Home Telephone";frm.txtHomeTelephone.className="errorform"; valid=false;} else {frm.txtHomeTelephone.className="form"} 

if (check(frm.txtEmployer.value))						{alertString += "\n - Current Employer Name";frm.txtEmployer.className="errorform"; valid=false;} else {frm.txtEmployer.className="form"} 
if (check(frm.txtOccupation.value))						{alertString += "\n - Current Occupation";frm.txtOccupation.className="errorform"; valid=false;} else {frm.txtOccupation.className="form"} 
if (check(frm.txtGross_Monthly_Income.value))			{alertString += "\n - Current Gross Income";frm.txtGross_Monthly_Income.className="errorform"; valid=false;} else {frm.txtGross_Monthly_Income.className="form"} 

var empCurrentDurationValid = true;
if (check(frm.txtEmployerYears.value) && check(frm.txtEmployerMonths.value)) {
	alertString += "\n - Current Duration of Employment"; valid=false;
	frm.txtEmployerYears.className="errorform";
}
else {
	frm.txtEmployerYears.className="form";

	if (!isNaN(frm.txtEmployerYears.value)) {
		//valid year entered
		if (frm.txtEmployerYears.value<=1) {
			//less than 2yrs
			empCurrentDurationValid = false;
		}
	}
	else {
		if (!check(frm.txtEmployerYears.value)) {
			//years is invalid
			alertString += "\n - A valid number for Current Years of Employment"; valid=false;
			frm.txtEmployerYears.className="errorform";
		}
		else {
			if (check(frm.txtEmployerMonths.value)) {
				//less than 2yrs
				empCurrentDurationValid = false;
			}
		}
	}
}

if (!empCurrentDurationValid) {
	var reqPrevEmpName = document.getElementById("reqPrevEmpName"); 
	var reqPrevEmpOcc = document.getElementById("reqPrevEmpOcc"); 
	var reqPrevEmpIncome = document.getElementById("reqPrevEmpIncome"); 
	var reqPrevEmpDuration = document.getElementById("reqPrevEmpDuration"); 

	reqPrevEmpName.style.visibility = 'visible';
	reqPrevEmpOcc.style.visibility = 'visible';
	reqPrevEmpIncome.style.visibility = 'visible';
	reqPrevEmpDuration.style.visibility = 'visible';

	if (check(frm.txtPrevEmployer.value))					{alertString += "\n - Previous Employer Name";frm.txtPrevEmployer.className="errorform"; valid=false;} else {frm.txtPrevEmployer.className="form"} 
	if (check(frm.txtPrevOccupation.value))					{alertString += "\n - Previous Occupation";frm.txtPrevOccupation.className="errorform"; valid=false;} else {frm.txtPrevOccupation.className="form"} 
	if (check(frm.txtPrevGross_Monthly_Income.value))		{alertString += "\n - Previous Gross Income";frm.txtPrevGross_Monthly_Income.className="errorform"; valid=false;} else {frm.txtPrevGross_Monthly_Income.className="form"} 
	if (check(frm.txtPrevEmployerYears.value))				{alertString += "\n - Previous Duration of Employment";frm.txtPrevEmployerYears.className="errorform"; valid=false;} else {frm.txtPrevEmployerYears.className="form"} 
}

if (check(frm.cboResidence.value))						{alertString += "\n - Current Residence";frm.cboResidence.className="errorform"; valid=false;} else {frm.cboResidence.className=""} 
if (check(frm.txtStreet_Number.value))					{alertString += "\n - Current Street #";frm.txtStreet_Number.className="errorform"; valid=false;} else {frm.txtStreet_Number.className="form"} 
if (check(frm.txtStreet_Name.value))					{alertString += "\n - Current Street Name";frm.txtStreet_Name.className="errorform"; valid=false;} else {frm.txtStreet_Name.className="form"} 
if (check(frm.cboStreetType.value))						{alertString += "\n - Current Street Suffix";frm.cboStreetType.className="errorform"; valid=false;} else {frm.cboStreetType.className="form"} 
if (check(frm.txtCity.value))							{alertString += "\n - Current City";frm.txtCity.className="errorform"; valid=false;} else {frm.txtCity.className="form"} 
if (check(frm.cboProvince.value))						{alertString += "\n - Current Province";frm.cboProvince.className="errorform"; valid=false;} else {frm.cboProvince.className="form"} 
if (check(frm.txtPostal_Code.value))					{alertString += "\n - Current Postal Code";frm.txtPostal_Code.className="errorform"; valid=false;} else {frm.txtPostal_Code.className="form"} 

var addCurrentDurationValid = true;
if (check(frm.txtAddress_Years.value) && check(frm.txtAddress_Months.value)) {
	alertString += "\n - Current Duration of Residence"; valid=false;
	frm.txtAddress_Years.className="errorform";
}
else {
	frm.txtAddress_Years.className="form";

	if (!isNaN(frm.txtAddress_Years.value)) {
		//valid year entered
		if (frm.txtAddress_Years.value<=1) {
			//less than 2yrs
			addCurrentDurationValid = false;
		}
	}
	else {
		if (!check(frm.txtAddress_Years.value)) {
			//years is invalid
			alertString += "\n - A valid number for Current Years of Residence"; valid=false;
			frm.txtAddress_Years.className="errorform";
		}
		else {
			if (check(frm.txtAddress_Months.value)) {
				//less than 2yrs
				addCurrentDurationValid = false;
			}
		}
	}
}

if (!addCurrentDurationValid) {
	var reqPrevProvince = document.getElementById("reqPrevProvince"); 
	var reqPrevAddress = document.getElementById("reqPrevAddress"); 
	var reqPrevCity = document.getElementById("reqPrevCity"); 
	var reqPrevAddress_Duration = document.getElementById("reqPrevAddress_Duration"); 

	reqPrevProvince.style.visibility = 'visible';
	reqPrevAddress.style.visibility = 'visible';
	reqPrevCity.style.visibility = 'visible';
	reqPrevAddress_Duration.style.visibility = 'visible';

	if (check(frm.txtPrevStreet_Number.value))				{alertString += "\n - Previous Street #";frm.txtPrevStreet_Number.className="errorform"; valid=false;} else {frm.txtPrevStreet_Number.className="form"} 
	if (check(frm.txtPrevStreet_Name.value))				{alertString += "\n - Previous Street Name";frm.txtPrevStreet_Name.className="errorform"; valid=false;} else {frm.txtPrevStreet_Name.className="form"} 
	if (check(frm.cboPrevStreetType.value))					{alertString += "\n - Previous Street Suffix";frm.cboPrevStreetType.className="errorform"; valid=false;} else {frm.cboPrevStreetType.className="form"} 
	if (check(frm.txtPrevCity.value))						{alertString += "\n - Previous City";frm.txtPrevCity.className="errorform"; valid=false;} else {frm.txtPrevCity.className="form"} 
	if (check(frm.cboPrevProvince.value))					{alertString += "\n - Previous Province";frm.cboPrevProvince.className="errorform"; valid=false;} else {frm.cboPrevProvince.className="form"} 
	if (check(frm.txtPrevAddress_Years.value))				{alertString += "\n - Previous Duration of Residence";frm.txtPrevAddress_Years.className="errorform"; valid=false;} else {frm.txtPrevAddress_Years.className="form"} 
}

if (frm.cboResidence.options[frm.cboResidence.selectedIndex].value!="") {
	var txtRentAmount = frm.txtMonthlyAmount;
	var txtMortgageBalance = frm.txtBalanceRemainingOnMortgage;
	var txtValueofHouse = frm.txtValueOfHouse;

	switch (frm.cboResidence.options[frm.cboResidence.selectedIndex].value) {
		
		case "Rent": {
			if (check(txtRentAmount.value))						{alertString += "\n - Monthly Rent Amount";txtRentAmount.className="errorform"; valid=false;} else {txtRentAmount.className="form"} 
			break;
		}
		case "Own": {
			if (check(txtRentAmount.value))						{alertString += "\n - Monthly Mortgage Amount";txtRentAmount.className="errorform"; valid=false;} else {txtRentAmount.className="form"} 
			if (check(txtMortgageBalance.value))				{alertString += "\n - Balance Remaining on Mortgage";txtMortgageBalance.className="errorform"; valid=false;} else {txtMortgageBalance.className="form"} 
			if (check(txtValueofHouse.value))					{alertString += "\n - Approx. Value of House";txtValueofHouse.className="errorform"; valid=false;} else {txtValueofHouse.className="form"} 
			break;
		}
		default: {
			break;
		}
	}
}
else {
	alertString += "\n - Residence"; valid=false;
}

if (check(frm.cboPurchase_or_Lease.value))				{alertString += "\n - Purchase or Lease info";frm.cboPurchase_or_Lease.className="errorform"; valid=false;} else {frm.cboPurchase_or_Lease.className=""} 
if (check(frm.cboAmount_Requested.value))				{alertString += "\n - Approximate Amount Requested";frm.cboAmount_Requested.className="errorform"; valid=false;} else {frm.cboAmount_Requested.className=""} 
if (check(frm.cboDo_You_Have_a_Trade.value))			{alertString += "\n - If you have a Trade-In";frm.cboDo_You_Have_a_Trade.className="errorform"; valid=false;} else {frm.cboDo_You_Have_a_Trade.className=""} 

if (frm.chkCorrect1.checked==false)						{alertString += "\n - You must agree for us to run your credit report before proceeding";frm.chkCorrect1.className="errorform"; valid=false;} else {frm.chkCorrect1.className=""} 
if (frm.chkCorrect2.checked==false)						{alertString += "\n - You must agree that all of the information stated above is correct";frm.chkCorrect2.className="errorform"; valid=false;} else {frm.chkCorrect2.className=""} 

if (valid==false){
	alert(alertString);
}	
else {
	frm.submit();
}
}

function LTrim( value ) {
var re = /\s*((\S+\s*)*)/;
return value.replace(re, "$1");
}

function RTrim( value ) {
var re = /((\s*\S+)*)\s*/;
return value.replace(re, "$1");
}

// Removes leading and ending whitespaces
function check(value) {
if (LTrim(RTrim(value))!="") 
	return false;
else 
	return true;
}

function changeResidence(sel) {
//label for rent
var elemMortgage = document.getElementById("objMortgageAmount"); 
var elemRent = document.getElementById("objRentAmount"); 

//required fields
var elemRequiredMonthlyAmount = document.getElementById("reqMonthlyAmount"); 
var elemRequiredBalanceRemainingOnMortgage = document.getElementById("reqBalanceRemainingOnMortgage"); 
var elemRequiredValueofHouse = document.getElementById("reqValueOfHouse"); 

//textboxes
var elemRentAmount = document.forms[0].txtMonthlyAmount;
var elemMortgageBalance = document.forms[0].txtBalanceRemainingOnMortgage;
var elemValueofHouse = document.forms[0].txtValueOfHouse;

if (sel.options[sel.selectedIndex].value!="") {
	switch (sel.options[sel.selectedIndex].value) {
		
		case "Rent": {
			elemRequiredMonthlyAmount.style.visibility = 'visible';
			elemRequiredBalanceRemainingOnMortgage.style.visibility = 'hidden';
			elemRequiredValueofHouse.style.visibility = 'hidden';

			elemRent.style.display = 'block';
			elemMortgage.style.display = 'none'; 

			elemRentAmount.text = "";
			elemRentAmount.disabled = false;
			elemRentAmount.style.backgroundColor = 'white';
			elemRentAmount.style.borderColor = '#BEC0C2';
			elemRentAmount.focus();

			elemMortgageBalance.text = "";
			elemMortgageBalance.disabled = true;
			elemMortgageBalance.style.backgroundColor = 'lightGrey';
			elemMortgageBalance.style.borderColor = 'Black';

			elemValueofHouse.text = "";
			elemValueofHouse.disabled = true;
			elemValueofHouse.style.backgroundColor = 'lightGrey';
			elemValueofHouse.style.borderColor = 'Black';

			break;
		}
		case "Own": {
			//show 'mortgage monthly amount label
			elemMortgage.style.display = 'block';
			elemRent.style.display = 'none';

			//enable all required fields
			elemRequiredMonthlyAmount.style.visibility = 'visible';
			elemRequiredBalanceRemainingOnMortgage.style.visibility = 'visible';
			elemRequiredValueofHouse.style.visibility = 'visible';

			elemRentAmount.text = "";
			elemRentAmount.disabled = false;
			elemRentAmount.style.backgroundColor = 'white';
			elemRentAmount.style.borderColor = '#BEC0C2';
			elemRentAmount.focus();

			elemMortgageBalance.text = "";
			elemMortgageBalance.disabled = false;
			elemMortgageBalance.style.backgroundColor = 'white';
			elemMortgageBalance.style.borderColor = '#BEC0C2';

			elemValueofHouse.text = "";
			elemValueofHouse.disabled = false;
			elemValueofHouse.style.backgroundColor = 'white';
			elemValueofHouse.style.borderColor = '#BEC0C2';

			break;
		}
		default: {
			elemRequiredMonthlyAmount.style.visibility = 'hidden';
			elemRequiredBalanceRemainingOnMortgage.style.visibility = 'hidden';
			elemRequiredValueofHouse.style.visibility = 'hidden';

			elemRentAmount.disabled = true;
			elemRentAmount.style.backgroundColor = 'lightGrey';
			elemRentAmount.style.borderColor = 'Black';
			
			elemMortgageBalance.text = "";
			elemMortgageBalance.disabled = true;
			elemMortgageBalance.style.backgroundColor = 'lightGrey';
			elemMortgageBalance.style.borderColor = 'Black';

			elemValueofHouse.text = "";
			elemValueofHouse.disabled = true;
			elemValueofHouse.style.backgroundColor = 'lightGrey';
			elemValueofHouse.style.borderColor = 'Black';

			break;
		}
	}
}
else {
	elemRequiredMonthlyAmount.style.visibility = 'hidden';
	elemRequiredBalanceRemainingOnMortgage.style.visibility = 'hidden';
	elemRequiredValueofHouse.style.visibility = 'hidden';

	elemRentAmount.disabled = true;
	elemRentAmount.style.backgroundColor = 'lightGrey';
	elemRentAmount.style.borderColor = 'Black';
	
	elemMortgageBalance.text = "";
	elemMortgageBalance.disabled = true;
	elemMortgageBalance.style.backgroundColor = 'lightGrey';
	elemMortgageBalance.style.borderColor = 'Black';

	elemValueofHouse.text = "";
	elemValueofHouse.disabled = true;
	elemValueofHouse.style.backgroundColor = 'lightGrey';
	elemValueofHouse.style.borderColor = 'Black';
}
}
