var settings;
$(document).ready(function() { 
	settings = jQuery.extend({
		form: "#loan_calculator",
		loan_amount_min: 4999,
		loan_amount_max: 100000,
		loan_amount_error: "Incorrect loan value",
		loan_term_min: 1,
		loan_term_max: 10,
		loan_term_error: "Incorrect loan term",
		interest_rate_min: 1,
		interest_rate_max: 50,
		interest_rate_error: "Incorrect interest rate",
		loaded: false,
		arr_field_defaults: new Array(),
		arr_field_errors: new Array()
	 }, settings);
	jQuery.checkLoanCalculatorValues( $( this ), settings );
});


jQuery.checkLoanCalcFieldValues = function(obj, settings) {
	
	var str_field_max_value = eval(settings[obj.attr("id") + "_max"]);
	var str_field_min_value = eval(settings[obj.attr("id") + "_min"]);
	var str_field_error_value = settings[obj.attr("id") + "_error"];
	var bln_valid_min = false;
	var bln_valid_max = false;
	var bln_completely_valid = false;
	
	if (str_field_min_value) {
		if (Number(obj.attr("value")) >= str_field_min_value) {
			bln_valid_min = true;
			//alert("minimum is valid");
		}
		else {
			obj.attr({ style: "border: 2px solid red" })
			obj.attr({ value: str_field_error_value });
			obj.fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100);	
		}
	}
		
	if (str_field_max_value) {
		if (Number(obj.attr("value")) <= str_field_max_value) {
			bln_valid_max = true;	
			//alert("maximum is valid");
		}
		else {
			obj.attr({ style: "border: 2px solid red" });
			obj.attr({ value: str_field_error_value });
			obj.fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100);
		}
	}
	
	if ((bln_valid_min) && (bln_valid_max)) {
		//Result is within range
		if (!isNaN(obj.attr("value"))) {
			bln_completely_valid = true;
		}	
	}
	
	if (bln_completely_valid) {
		//alert("completely valid");
		obj.css({ 'border' : "0px" });
		//jQuery.calculatePayment();
	}
}

jQuery.checkLoanCalculatorValues = function(obj, settings) {
	if (settings.loaded == false) {
		settings.loaded = true;
		//First load
		$("#loan-calculator-container").fadeIn(1000);
		
		$(settings.form).find("input[type='text']").each(function() {
				//set the default field values so know whether they have changed
				settings.arr_field_defaults[settings.arr_field_defaults.length] = $(this).attr("value");
		});
		
		$(settings.form).find("input[type='text']").each(function( int_count ) {
			$(this).focus(function() {  
				if ($(this).attr("value") != settings.arr_field_defaults[int_count]) {
					//We know the field has a value, now we need to check it's the correct parameters
					var str_error_value = settings[$(this).attr("id") + "_error"];
					if (str_error_value == $(this).attr("value")) {
						$(this).attr({ value: "" });
					}	
				}
				else {
					$(this).attr({ value: "" });
				}
			});
			
			$(this).change(function() {
				var tmp_value = $(this).attr("value").split('%').join("");
				tmp_value = tmp_value.split('$').join("");     
				tmp_value = tmp_value.split(' ').join("");
				$(this).attr({ value: tmp_value });
			});
			
			$(this).blur(function() {
				if (($(this).attr("value") != "") && ($(this).attr("value") != settings.arr_field_defaults[int_count])) {
					//We know the field has a value, now we need to check it's the correct parameters
					jQuery.checkLoanCalcFieldValues($(this), settings);
				}
				else {
					$(this).attr({ value: settings.arr_field_defaults[int_count] });
				}
			});
		});
	}
}

jQuery.calculatePayment = function() {
	var princ = $("#loan_amount").attr("value");
	var intRate = ($("#interest_rate").attr("value") / 100) / 12;
	var months = Number($("#loan_term").attr("value") * 12);
	var formula = Math.round(Math.floor((princ*intRate)/(1-Math.pow(1+intRate,(-1*months)))*100)/100);

	if (!isNaN(formula)) {
		$("#monthly_repayments").attr({ 'value' : "$" + formula + " / m"});
	}
	else {
		$("#monthly_repayments").attr({ 'value' : '' });
	}
	//form.principle.value = princ;
	//form.monthly_repayments.value = months;
}


$(document).ready(function() {
	$("#finance-button-img").click(function() {
		var str_temp_content = "<br>";
		//if () {
		//}
		
		//alert(settings.loan_amount_defaults);
		
		/*$(settings.form).find("input[type='text']").each(function() {
			
		}*/
		
		//alert(settings.arr_field_defaults[0]);
		
		if ($("#loan_amount").attr("value") != settings.arr_field_defaults[0]) {
			str_temp_content += "Loan Amount: $" + $("#loan_amount").attr("value") + "<br>";
		}
		else {
			str_temp_content += "Loan Amount: Not entered<br>";
		}
		
		if ($("#loan_term").attr("value") != settings.arr_field_defaults[1]) {
			str_temp_content += "Loan Term: " + $("#loan_term").attr("value") + " yrs<br>";
		}
		else {
			str_temp_content += "Loan Term: Not entered<br>";
		}
		
		if ($("#interest_rate").attr("value") != settings.arr_field_defaults[2]) {
			str_temp_content += "Interest Rate: " + $("#interest_rate").attr("value") + "%<br>";
		}
		else {
			str_temp_content += "Interest Rate: Not entered<br>";
		}
		if ($("#loan_deposit").attr("value") != settings.arr_field_defaults[3]) {
			str_temp_content += "Loan Deposit: $" + $("#loan_deposit").attr("value") + "<br>";
		}
		else {
			str_temp_content += "Loan Deposit: Not entered<br>";
		}
		str_temp_content += "Monthly Repayments: " + $("#monthly_repayments").attr("value") + "<br>";
		
		$("#str_finance_information").attr({ value: str_temp_content });
		
		submitFormData = function() {
			if (($("#str_finance_information").attr("value") != "") && ($("#str_finance_information").attr("value").length > 0)) {
				$(settings.form).submit();
			}
		}
		tmp = setInterval("submitFormData()",500);    
	});
});

