/* Client-side access to querystring name=value pairs
	Version 1.3
	28 May 2008
	
	License (Simplified BSD):
	http://adamv.com/dev/javascript/qslicense.txt
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}

function checkEmail(email) {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)){
return (true);
}
return (false);
}

function validateContactForm(frm) {
  var err = "";
  if (frm.cust_fname.value=="") {err += "\n   - Your 'First Name' is a required field.";}  
  if (frm.cust_lname.value=="") {err += "\n   - Your 'Last Name' is a required field.";}  
  if (frm.email.value=="") {
	err += "\n   - Your 'Email Address' is a required field.";
  }
  else {
	if (checkEmail(frm.email.value)==false) {
		err += "\n   - Invalid email address.";
	}
  }
  if (err!="") {
	  window.alert("Sorry, please correct the following error(s) and try again:\n___________________________________________\n" + err);

	  return false;
	}
	else {
		frm.submit();
	};
}


function validateContact(frm) {
  var err = "";
  if (frm.txtname.value=="") {err += "\n   - Your 'Contact Name' is a required field.";}  
  if (frm.txtdealer.value=="") {err += "\n   - Your 'Dealership Name' is a required field.";}  
  if (frm.txtaddress.value=="") {err += "\n   - Your 'Address' is a required field.";}  
  if (frm.txtcity.value=="") {err += "\n   - Your 'City' is a required field.";}  
  if (frm.state.value=="") {err += "\n   - Your 'Province/State' is a required field.";}  
  if (frm.txtzip.value=="") {err += "\n   - Your 'Postal Code/Zip Code' is a required field.";}  
  if ((frm.phone1.value=="") || (frm.phone2.value=="") || (frm.phone3.value=="")) {err += "\n   - Your 'Phone Number' is a required field.";}  
  if (frm.txtemail.value=="") {
	err += "\n   - Your 'Email Address' is a required field.";
  }
  else {
	if (checkEmail(frm.txtemail.value)==false) {
		err += "\n   - Invalid email address.";
	}
  }
  if (err!="") {
	  window.alert("Sorry, please correct the following error(s) and try again:\n___________________________________________\n" + err);

	  return false;
	}
	else {
		frm.submit();
	};
}

function validateWebsiteEval(frm) {
  var err = "";
  if (frm.txtname.value=="") {err += "\n   - Your 'Contact Name' is a required field.";}  
  if (frm.txtdealer.value=="") {err += "\n   - Your 'Dealership Name' is a required field.";}  
  if (frm.txtwebsite.value=="") {err += "\n   - Your 'Website' is a required field.";}  
  if (frm.txtaddress.value=="") {err += "\n   - Your 'Address' is a required field.";}  
  if (frm.txtcity.value=="") {err += "\n   - Your 'City' is a required field.";}  
  if (frm.state.value=="") {err += "\n   - Your 'Province/State' is a required field.";}  
  if (frm.txtzip.value=="") {err += "\n   - Your 'Postal Code/Zip Code' is a required field.";}  
  if ((frm.phone1.value=="") || (frm.phone2.value=="") || (frm.phone3.value=="")) {err += "\n   - Your 'Phone Number' is a required field.";}  
  if (frm.txtemail.value=="") {
	err += "\n   - Your 'Email Address' is a required field.";
  }
  else {
	if (checkEmail(frm.txtemail.value)==false) {
		err += "\n   - Invalid email address.";
	}
  }
  if (err!="") {
	  window.alert("Sorry, please correct the following error(s) and try again:\n___________________________________________\n" + err);

	  return false;
	}
	else {
		frm.submit();
	};
}

	
function validateDominationEval(frm) {
  var err = "";
  if (frm.txtDealership.value=="") {err += "\n   - Your 'Dealership Name' is a required field.";}  
  if (frm.txtname.value=="") {err += "\n   - Your 'Contact Name' is a required field.";}  
  if (frm.txtaddress.value=="") {err += "\n   - Your 'Address' is a required field.";}  
  if (frm.txtcity.value=="") {err += "\n   - Your 'City' is a required field.";}  
  if (frm.txtprovince.value=="") {err += "\n   - Your 'Province/State' is a required field.";}  
  if (frm.txtpostalcode.value=="") {err += "\n   - Your 'Postal Code/Zip Code' is a required field.";}  
  if (frm.txtdaytimephone.value=="") {err += "\n   - Your 'Daytime Phone Number' is a required field.";}  
  if (frm.txtemail.value=="") {
	err += "\n   - Your 'Email Address' is a required field.";
  }
  else {
	if (checkEmail(frm.txtemail.value)==false) {
		err += "\n   - Invalid email address.";
	}
  }
  if (err!="") {
	  window.alert("Sorry, please correct the following error(s) and try again:\n___________________________________________\n" + err);

	  return false;
	}
	else {
		frm.submit();
	};
}


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"} 


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;
}

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 (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 you have read the Privacy Policy and agree to the Terms & Conditions";frm.chkCorrect2.className="errorform"; valid=false;} else {frm.chkCorrect2.className=""} 

if (valid==false){
	alert(alertString);
}	
else {
	frm.hdnForm.value="YES";
	frm.submit();
}
}

function hideShowPrevious(oElem) {
	if (oElem.value!="") {
		if (isNaN(oElem.value)==true) {
			alert("Please enter a valid number.");
		}
		else {
			var prevInfo = document.getElementById("trPrevInfo");
			var prevProv = document.getElementById("trPrevProv");
			var prevAddress = document.getElementById("trPrevAddress");
			var prevCity = document.getElementById("trPrevCity");
			var prevDuration = document.getElementById("trPrevDuration");

			if (oElem.value < 2) {
				prevInfo.style.display = "block";
				prevProv.style.display = "block";
				prevAddress.style.display = "block";
				prevCity.style.display = "block";
				prevDuration.style.display = "block";
			}
			else {
				prevInfo.style.display = "none";
				prevProv.style.display = "none";
				prevAddress.style.display = "none";
				prevCity.style.display = "none";
				prevDuration.style.display = "none";
			}
		}
	}
	
}

function hideShowPreviousEmp(oElem) {
	if (oElem.value!="") {
		if (isNaN(oElem.value)==true) {
			alert("Please enter a valid number.");
		}
		else {
			var prevEmpInfo = document.getElementById("trEmpInfo");
			var prevEmpName = document.getElementById("trEmpName");
			var prevEmpOcc = document.getElementById("trEmpOcc");
			var prevEmpIncome = document.getElementById("trEmpIncome");
			var prevEmpDuration = document.getElementById("trEmpDuration");

			if (oElem.value < 2) {
				prevEmpInfo.style.display = "block";
				prevEmpName.style.display = "block";
				prevEmpOcc.style.display = "block";
				prevEmpIncome.style.display = "block";
				prevEmpDuration.style.display = "block";
			}
			else {
				prevEmpInfo.style.display = "none";
				prevEmpName.style.display = "none";
				prevEmpOcc.style.display = "none";
				prevEmpIncome.style.display = "none";
				prevEmpDuration.style.display = "none";
			}
		}
	}
}




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"); 

//textboxes
var elemRentAmount = document.forms[0].txtMonthlyAmount;

if (sel.options[sel.selectedIndex].value!="") {
	switch (sel.options[sel.selectedIndex].value) {
		
		case "Rent": {
			elemRequiredMonthlyAmount.style.visibility = 'visible';

			elemRent.style.display = 'block';
			elemMortgage.style.display = 'none'; 

			elemRentAmount.text = "";
			elemRentAmount.disabled = false;
			elemRentAmount.style.backgroundColor = 'white';
			elemRentAmount.style.borderColor = '#BEC0C2';
			elemRentAmount.focus();

			break;
		}
		case "Own": {
			//show 'mortgage monthly amount label
			elemMortgage.style.display = 'block';
			elemRent.style.display = 'none';

			//enable all required fields
			elemRequiredMonthlyAmount.style.visibility = 'visible';

			elemRentAmount.text = "";
			elemRentAmount.disabled = false;
			elemRentAmount.style.backgroundColor = 'white';
			elemRentAmount.style.borderColor = '#BEC0C2';
			elemRentAmount.focus();

			break;
		}
		default: {
			elemRequiredMonthlyAmount.style.visibility = 'hidden';

			elemRentAmount.disabled = true;
			elemRentAmount.style.backgroundColor = 'lightGrey';
			elemRentAmount.style.borderColor = 'Black';

			break;
		}
	}
}
else {
	elemRequiredMonthlyAmount.style.visibility = 'hidden';
	
	elemRentAmount.disabled = true;
	elemRentAmount.style.backgroundColor = 'lightGrey';
	elemRentAmount.style.borderColor = 'Black';
	
}
}