function checkSubmit(adverse, eg_rate, compare){
	var totalamt = "";
	var errors = "";
	var	dm = document.mortgage_calculator;
	var loan = stripCurrency(dm.loan_amount.value);
	var mortgage_years = dm.term.options[dm.term.selectedIndex].value;
	var mortgage_rate = dm.interest_rate.value;
	var mortgage_rate_new = dm.interest_rate_new.value;
	
	
	var cur = "";
	if(isNaN(loan) || loan == ""){
		errors += "A valid loan amount\n";
	}
	var rate_example = (eg_rate) ? eg_rate : 5.89;
	if(mortgage_rate == ""){
		errors += "A valid interest rate (e.g. "+rate_example+")\n";
	}
	
	
	// don't check on step 1
	if(!adverse){
		if(mortgage_rate_new == ""){
			errors += "A valid new interest rate (e.g. 5.79)\n";
		}
	}else{
		// check contact details
		if(dm.postcode.value == ""){
			errors += "Postcode of property\n";
		}
		if(dm.tel.value == ""){
			errors += "Telephone number\n";
		}
		if(dm.name.value == ""){
			errors += "Your name\n";
		}
	}
	
	if(errors.length > 0){
		alert("Please check the following fields are correct:\n\n"+errors+"\n");
	}else{
		if(adverse){
			dm.submit();
		}else{
			$("#repayments").hide();
			
			// send to global vars
			AH.Mortgage.term = mortgage_years;
			AH.Mortgage.interest_rate = mortgage_rate_new;
			AH.Mortgage.loan_amount = loan;
	
			
			// hide timer
			if(document.getElementById("timer")){
				document.getElementById("timer").style.display = "none";
			}
			//document.getElementById("repayments").style.display = "block";
			$("#repayments").slideDown('slow');
			// interest only
			var interest_only = Math.round(((loan*mortgage_years) *(mortgage_rate/100)) / (12 * mortgage_years));
			dm.i_current.value = cur + formatCurrency(interest_only);
			
			interest_only_new = Math.round(((loan*mortgage_years) *(mortgage_rate_new/100)) / (12 * mortgage_years));
			dm.i_new.value = cur + formatCurrency(interest_only_new);
			
					
			// repayment
			var rate_per_month = mortgage_rate/1200;
			var p = Math.pow(1+rate_per_month, (mortgage_years*12));
			var repay = Math.round(loan/((1-(1/p))/rate_per_month));
			
			var rate_per_month = mortgage_rate_new/1200;
			var p = Math.pow(1+rate_per_month, (mortgage_years*12));
			var repay_new = Math.round(loan/((1-(1/p))/rate_per_month));
			
			dm.r_current.value = cur + formatCurrency(repay);
			dm.r_new.value = cur + formatCurrency(repay_new);
			
			
			var difference_Str = " more";
			if(interest_only > interest_only_new){
				difference_Str = " less";
			}
			if(compare){
				// compare mortgage 1 and 2
				var arrange_fee_1 = stripCurrency(dm.fee_1.value);
				var arrange_fee_2 = stripCurrency(dm.fee_2.value);
				
				var period_1 = stripCurrency(dm.initial_period.options[dm.initial_period.selectedIndex].value);
				var period_2 = period_1;
			
				var total_1_i = ((interest_only * 12) * period_1) + arrange_fee_1;
				var total_1_r = ((repay * 12) * period_1) + arrange_fee_1;
				
				var total_2_i = ((interest_only_new * 12) * period_2) + arrange_fee_2;
				var total_2_r = ((repay_new * 12) * period_2) + arrange_fee_2;
		
				//output
				dm.total_1_i.value = cur + formatCurrency(total_1_i);
				dm.total_1_r.value = cur + formatCurrency(total_1_r);
				dm.total_2_i.value = cur + formatCurrency(total_2_i);
				dm.total_2_r.value = cur + formatCurrency(total_2_r);
				urchinTracker('/t/remortgage/comparison-calc/');
			}else{
				// calculate savings
				var i_month_saving = interest_only_new - interest_only;
				dm.i_month_saving.value = cur + formatCurrency(i_month_saving);
				dm.i_year_saving.value = cur + formatCurrency(i_month_saving*12);
				
				var r_month_saving = repay_new - repay;
				dm.r_month_saving.value = cur + formatCurrency(r_month_saving);
				dm.r_year_saving.value = cur + formatCurrency(r_month_saving*12);
				urchinTracker('/t/remortgage/savings-calc/');
			/*}else{
				dm.i_month_saving.value = "None";
				dm.i_year_saving.value = "None";
				dm.r_month_saving.value = "None";
				dm.r_year_saving.value = "None";
			}*/
			}
		}
	}
}