// Adds commas to numbers. E.g. 100000 becomes 100,000.
function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function checkEmail(email)
{
	if(email)
	{
		if(email.match(/^[A-Za-z0-9][A-Za-z0-9_\-\.]+@[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]\.[A-Za-z\.]{1,6}[A-Za-z]$/) && email.length < 256)
		{
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}

function checkPhone(phone)
{
	if(phone)
	{
		if(phone.match(/^[0-9extension\.\-\(\)\ ]{10,32}$/))
		{
			return true;
		} else {
			return false;
		}
	} else {
		return true;
	}
}

$(document).ready(function(){
	// Pull date object.
	date_object = new Date();
	
	// Populate years.
	$(".year").append($("<option></option>").val("").html("Year").attr("disabled", "disabled").attr("selected","selected"));
	
	for(year = date_object.getFullYear(); year >= 1900; year--)
	{
		$(".year").append(
			$("<option></option>").val(year).html(year)
		);
	}
	
	// Populate months.
	$(".month").append($("<option></option>").val("").html("Month").attr("disabled", "disabled").attr("selected","selected"));
	
	$(".month").append($("<option></option>").val("12").html("December"));
	$(".month").append($("<option></option>").val("11").html("November"));
	$(".month").append($("<option></option>").val("10").html("October"));
	$(".month").append($("<option></option>").val("09").html("September"));
	$(".month").append($("<option></option>").val("08").html("August"));
	$(".month").append($("<option></option>").val("07").html("July"));
	$(".month").append($("<option></option>").val("06").html("June"));
	$(".month").append($("<option></option>").val("05").html("May"));
	$(".month").append($("<option></option>").val("04").html("April"));
	$(".month").append($("<option></option>").val("03").html("March"));
	$(".month").append($("<option></option>").val("02").html("February"));
	$(".month").append($("<option></option>").val("01").html("January"));

	// Populate dates.
	$(".date").append($("<option></option>").val("").html("Date").attr("disabled", "disabled").attr("selected","selected"));
	
	for(date = 31; date >= 1; date--)
	{
		$(".date").append($("<option></option>").val(date).html(date));
	}
	
	// Populate loan balances for inquiry forms.
	$(".loanBalance").append($("<option></option>").val("").html("Loan Balance").attr("disabled", "disabled").attr("selected","selected"));
	$(".loanBalance").append($("<option></option>").val("0").html("Free &amp; Clear"));
	
	for(balance = 25000; balance < 500000; balance = balance + 25000)
	{
		range_value = balance + ":" + (balance + 24999);
		range_text = "Between $" + addCommas(balance) + ".00 and $" + addCommas((balance + 24999)) + ".00";
		
		$(".loanBalance").append($("<option></option>").val(range_value).html(range_text));
	}
	
	$(".loanBalance").append($("<option></option>").val("500000-6000000").html("Between $500,000.00 and $6,000,000.00"));
	
	// Populate property values for inquiry forms.
	$(".propertyValue").append($("<option></option>").val("0:24999").html("Less than $25,000.00"));
	
	for(value = 25000; value < 650000; value = value + 25000)
	{
		range_value = value + ":" + (value + 24999);
		range_text = "Between $" + addCommas(value) + ".00 and $" + addCommas((value + 24999)) + ".00";
		
		$(".propertyValue").append($("<option></option>").val(range_value).html(range_text));
	}
	
	$(".propertyValue").append($("<option></option>").val("650000+").html("Greather than $650,000.00"));
	
	/* Form selector. */
	
	// Hide forms.
	$(".formSelector").click(function(){
		$("#footer ul.forms li").slideUp("slow");
	});
	
	// Show form.
	$("#formSelectReverseMortgage").click(function(){
		$("#inquiryReverseMortgage").slideDown("slow");
	});
	
	$("#formSelectRefinance").click(function(){
		$("#inquiryRefinance").slideDown("slow");
	});
	
	$("#formSelectShortSale").click(function(){
		$("#inquiryShortSale").slideDown("slow");
	});
	
	$("#formSelectPurchase").click(function(){
		$("#inquiryPurchase").slideDown("slow");
	});
	
	/* Form validation. */
	
	// Reverse Mortgage Validation.
	$("#formReverseMortgageSubmit").click(function(){
		error_level = 0;
		
		if($("#formReverseMortgageFirstName").val().length < 1 || $("#formReverseMortgageFirstName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formReverseMortgageLastName").val().length < 1 || $("#formReverseMortgageLastName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formReverseMortgageCoFirstName").val().length < 0 || $("#formReverseMortgageCoFirstName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formReverseMortgageCoLastName").val().length < 0 || $("#formReverseMortgageCoLastName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		// Date objects.
		date_object = new Date();
		dob = new Date();
		
		year = $("#formReverseMortgageDateOfBirthYear").val();
		month = $("#formReverseMortgageDateOfBirthMonth").val();
		date = $("#formReverseMortgageDateOfBirthDate").val();
		
		dob.setFullYear(year, month - 1, date);
		
		if((dob.getFullYear() + 62) > date_object.getFullYear() || dob.getFullYear() < 0)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formReverseMortgageLoanBalance").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!checkPhone($("#formReverseMortgagePhoneNumber").val()) || $("#formReverseMortgagePhoneNumber").val().length < 1)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!checkEmail($("#formReverseMortgageEmailAddress").val()) || $("#formReverseMortgageEmailAddress").val().length < 1)
		{
			/* Helper Code Here. */
			error_level++;
		}
				
		if($("#formReverseMortgagePreferredContactMethod").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formReverseMortgagePreferredContactTime").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!error_level)
		{		
			$.post("/bin/forms/reversemortgage.php", $("#formReverseMortgage").serialize(), function(data)
			{
				switch(data)
				{
					case "1":
						alert("Your inquiry has been successfully sent.");
						$(".block1 input, .block2 input").val("");
						break;
					default:
						alert("Your inquiry could not be posted. Please be sure the form is properly filled out. Also, please note you must be 62 years of age or older in order to qualify for a reverse mortgage.");
						break;
				}
			});
		} else {
			alert("Your inquiry could not be posted. Please be sure the form is properly filled out. Also, please note you must be 62 years of age or older in order to qualify for a reverse mortgage.");
		}
	});
	
	// Refinance Validation.
	$("#formRefinanceSubmit").click(function(){
		error_level = 0;
		
		if($("#formRefinanceFirstName").val().length < 1 || $("#formRefinanceFirstName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formRefinanceLastName").val().length < 1 || $("#formRefinanceLastName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formRefinanceCoFirstName").val().length < 0 || $("#formRefinanceCoFirstName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formRefinanceCoLastName").val().length < 0 || $("#formRefinanceCoLastName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formRefinancePrimaryBalance").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formRefinanceEstimatedValue").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!checkPhone($("#formRefinancePhoneNumber").val()) || $("#formRefinancePhoneNumber").val().length < 1)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!checkEmail($("#formRefinanceEmailAddress").val()) || $("#formRefinanceEmailAddress").val().length < 1)
		{
			/* Helper Code Here. */
			error_level++;
		}
				
		if($("#formRefinancePreferredContactMethod").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formRefinancePreferredContactTime").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!error_level)
		{	
			$.post("/bin/forms/refinance.php", $("#formRefinance").serialize(), function(data)
			{
				switch(data)
				{
					case "1":
						alert("Your inquiry has been successfully sent.");
						$(".block1 input, .block2 input").val("");
						break;
					default:
						alert("Your inquiry could not be posted. Please be sure the form is properly filled out.");
						break;
				}
			});
		} else {
			alert("Your inquiry could not be posted. Please be sure the form is properly filled out.");
		}
	});
	
	// Short Sale Validation.
	$("#formShortSaleSubmit").click(function(){
		error_level = 0;
		
		if($("#formShortSaleFirstName").val().length < 1 || $("#formShortSaleFirstName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formShortSaleLastName").val().length < 1 || $("#formShortSaleLastName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formShortSaleCoFirstName").val().length < 0 || $("#formShortSaleCoFirstName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formShortSaleCoLastName").val().length < 0 || $("#formShortSaleCoLastName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formShortSalePrimaryBalance").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formShortSaleEstimatedValue").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formShortSaleReason").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!checkPhone($("#formShortSalePhoneNumber").val()) || $("#formShortSalePhoneNumber").val().length < 1)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!checkEmail($("#formShortSaleEmailAddress").val()) || $("#formShortSaleEmailAddress").val().length < 1)
		{
			/* Helper Code Here. */
			error_level++;
		}
				
		if($("#formShortSalePreferredContactMethod").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formShortSalePreferredContactTime").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!error_level)
		{			
			$.post("/bin/forms/shortsale.php", $("#formShortSale").serialize(), function(data)
			{
				switch(data)
				{
					case "1":
						alert("Your inquiry has been successfully sent.");
						$(".block1 input, .block2 input").val("");
						break;
					default:
						alert("Your inquiry could not be posted. Please be sure the form is properly filled out.");
						break;
				}
			});
		} else {
			alert("Your inquiry could not be posted. Please be sure the form is properly filled out.");
		}
	});
	
	// Purchase Validation.
	$("#formPurchaseSubmit").click(function(){
		error_level = 0;
		
		if($("#formPurchaseFirstName").val().length < 1 || $("#formPurchaseFirstName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formPurchaseLastName").val().length < 1 || $("#formPurchaseLastName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formPurchaseCoFirstName").val().length < 0 || $("#formPurchaseCoFirstName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formPurchaseCoLastName").val().length < 0 || $("#formPurchaseCoLastName").val().length > 100)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formPurchasePrimaryBalance").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formPurchasePurchasePrice").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formPurchaseDownpayment").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!checkPhone($("#formPurchasePhoneNumber").val()) || $("#formPurchasePhoneNumber").val().length < 1)
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!checkEmail($("#formPurchaseEmailAddress").val()) || $("#formPurchaseEmailAddress").val().length < 1)
		{
			/* Helper Code Here. */
			error_level++;
		}
				
		if($("#formPurchasePreferredContactMethod").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if($("#formPurchasePreferredContactTime").val() == "")
		{
			/* Helper Code Here. */
			error_level++;
		}
		
		if(!error_level)
		{		
			$.post("/bin/forms/purchase.php", $("#formPurchase").serialize(), function(data)
			{
				switch(data)
				{
					case "1":
						alert("Your inquiry has been successfully sent.");
						$(".block1 input, .block2 input").val("");
						break;
					default:
						alert("Your inquiry could not be posted. Please be sure the form is properly filled out.");
						break;
				}
			});
		} else {
			alert("Your inquiry could not be posted. Please be sure the form is properly filled out.");
		}
	});
});

