
var lenderPolicyCalc = new Calculator(1e6, 0, 0);
var ownerPolicyCalc = new Calculator(1e6, 0, 0);

lenderPolicyCalc.addRule(0, 1.5e5, 0, 1e3, 3);
lenderPolicyCalc.addRule(1.5e5, 3e5, 1.5e5, 1e3, 2.5);
lenderPolicyCalc.addRule(3e5, 5e5, 3e5, 1e3, 2.25);
lenderPolicyCalc.addRule(5e5, 1e6, 5e5, 1e3, 2);

ownerPolicyCalc.addRule(0, 1e5, 0, 1e3, 4);
ownerPolicyCalc.addRule(1e5, 1.5e5, 1e5, 1e3, 3.25);
ownerPolicyCalc.addRule(1.5e5, 3e5, 1.5e5, 1e3, 2.5);
ownerPolicyCalc.addRule(3e5, 1e6, 3e5, 1e3, 2.25);

function calculate(){
	var form = document.getElementById('form');
	//form values
	var salePrice = Calculator.cleanAndRound(form.elements['price'].value);
	var mortgageAmount = Calculator.cleanAndRound(form.elements['mortgage'].value);
	var examFee = parseFloat(form.elements['examFee'].value);
	var closingFee = parseFloat(form.elements['closingFee'].value);
	var courierFee = parseFloat(form.elements['courierFee'].value);
	var nameSearch = parseFloat(form.elements['nameSearch'].value);
	var platDrawing = parseFloat(form.elements['platDrawing'].value);
	var recordingServiceFee = parseFloat(form.elements['recordingServiceFee'].value);
	var conservationFee = parseFloat(form.elements['conservationFee'].value);
	
	//calculated values
	var lenderPolicy = lenderPolicyCalc.calculate(mortgageAmount, 1e3);
	var ownerPolicy = ownerPolicyCalc.calculate(salePrice, 1e3);
	if(lenderPolicy == null || ownerPolicy == null){
		salePrice = 0;
		mortgageAmount = 0;
		lenderPolicy = 0;
		ownerPolicy = 0;
		alert('For policies over $&nbsp;1,000,000, please call our Customer Resource Center at 952-888-6353 for special pricing.');
	}	
	ownerPolicy += lenderPolicy > 0 ? 50 : 0;
	ownerPolicy = ownerPolicy - lenderPolicy;
	var combinationRate = ownerPolicy + lenderPolicy;
	var stewartCost = closingFee + courierFee + nameSearch + platDrawing + recordingServiceFee+ examFee ;
	var taxRate = .0023;
	var registrationTax = Calculator.roundToHundredths(mortgageAmount * taxRate);
	var totalCost = combinationRate + stewartCost;// + conservationFee + registrationTax;
	
	//update form
	form.elements['price'].value = Calculator.formatNumber(salePrice);
	form.elements['mortgage'].value = Calculator.formatNumber(mortgageAmount);
	form.elements['ownerPolicy'].value = Calculator.formatNumber(ownerPolicy);
	form.elements['lenderPolicy'].value = Calculator.formatNumber(lenderPolicy);
	form.elements['combinationRate'].value = Calculator.formatNumber(combinationRate);
	form.elements['stewartCost'].value = Calculator.formatNumber(stewartCost);
	form.elements['registrationTax'].value = Calculator.formatNumber(registrationTax);
	form.elements['totalCost'].value = Calculator.formatNumber(totalCost);
}

