function isNumeric(val) {
    var numb = '0123456789';
    for (i=0; i<val.length; i++) {
        if (numb.indexOf(val.charAt(i),0) == -1) return false;
    }
    return true;
}


function calc(form) {
    
    var form = document.getElementById("calculator");
    
    /* if (formvalid()) { */ 
	if (true) {

/*
		var	bondperk = 7;
    var bondbase = 172.5;
		var contaxlimitA = 150001;
		var contaxlimitB = 250001;
		var contaxlimitC = 99999999;
		var contaxpercA = 0.02;
		var contaxpercB = 0.025;
		var contaxpercC = 0.03;
		var advocatefee = 0.0075;
		var advocatebase = 202.5;
		var regfee = 135.50;
*/
    var purchase = form.ipurchase.value;  

		var mortgage = form.imortgage.value;  

		var type =  form.itype.selectedIndex ;  

		var years = form.iyears.value;    

		var annualinterest = form.iinterest.value;  
		if (annualinterest > 1) {annualinterest /= 100};
		var monthlyinterest = annualinterest / 12;   

		//var calculate =  form.icalculate.selectedIndex ;  
		var calculate =  0 ;  
		var bond = form.imortgage.value;
		var bondpay = 0;
		if (bond > 0) {           
			var bond000 = Math.round(bond/1000);
			if (bond > (bond000 * 1000)) {bond000 = bond000 + 1};
			var bondpay = (bond000 * bondperk) + bondbase;
		}

		if (purchase < contaxlimitC) {conveyancepay = purchase * contaxpercC};
		if (purchase < contaxlimitB) {conveyancepay = purchase * contaxpercB};
		if (purchase < contaxlimitA) {conveyancepay = purchase * contaxpercA};

		advocatepay = (purchase * advocatefee) + advocatebase;

		totalpay = bondpay + conveyancepay + advocatepay + regfee;

		var base = 1;
		var base2 = 1;
		var mbase = 1 + monthlyinterest;
		var ybase = 1 + annualinterest;

        for (i=0; i<years; i++) {
            base2 = base2 * ybase;
        }

        for (i=0; i<years * 12; i++) {
            base = base * mbase;
        }

		if (type == 0) {
			//Repayment
			if (calculate == 0) {           
				// Monthly interest
				var monthlypayment = (mortgage * monthlyinterest / ( 1 - (1/base)));
            } else {      
				// Annual interest 
				var monthlypayment = ((mortgage * monthlyinterest*12 / ( 1 - (1/base2))/12));
			}
		}
		else {  
			//Interest only 
			var monthlypayment = (mortgage * monthlyinterest);
		}
	
        form.iinterest.value = floor(document.getElementById("calculator").iinterest.value);
		
        form.cbondfee.value = floor(bondpay);
		form.cconveyancefee.value = floor(conveyancepay);
		form.cadvocatefee.value = floor(advocatepay);
		form.cregistrationfee.value = floor(regfee);
		form.ctotalfee.value = floor(totalpay);
		
        if (monthlypayment && isNumeric(floor(monthlypayment))) {
            //window.alert(floor(monthlypayment));
            form.cmonthly.value = floor(monthlypayment);
        }
  	} else {
		form.cbondfee.value = "0";
		form.cconveyancefee.value = "0";
		form.cadvocatefee.value = "0";
		form.cregistrationfee.value = "0";
		form.ctotalfee.value = "0";
		
        form.cmonthly.value = "0";
		form.ctotalmortgage.value = "0";
        form.cmonthlypayment.value = "0";
        }
	}

function formvalid() {
    var form = document.getElementById("calculator");

    if (form.ipurchase.value == "") {
		alert("Please enter a purchase amount.");
		form.item("ipurchase").focus();
		return false;
	}
    if (isNaN(form.ipurchase.value) || form.ipurchase.value <= 0 || form.ipurchase.value > 99999999) {
		alert("Please enter a valid purchase amount (1 to 99999999).");
		form.ipurchase.focus();
		return false;
	}

	if (form.imortgage.value == "") {
        alert("Please enter a mortgage amount.");
		form.imortgage.focus();
        return false;
    }
    if (isNaN(form.imortgage.value) || form.imortgage.value <= 0 || form.imortgage.value > 99999999) {
		alert("Please enter a valid mortgage amount (1 to 99999999).");
		form.imortgage.focus();
		return false;
	}

	if (form.iyears.value == "") {
		alert("Please enter a duration.");
		form.iyears.focus();
		return false;
	}
	if (isNaN(form.iyears.value) || form.iyears.value <= 0 || form.iyears.value > 99) {
		alert("Please enter a valid duration (1 to 99).");
		form.iyears.focus();
		return false;
	}

	if (form.iinterest.value == "") {
		alert("Please enter an interest rate.");
		form.iinterest.focus();
		return false;
	}
	if (isNaN(form.iinterest.value) || form.iinterest.value <= 0 || form.iinterest.value > 100) {
		alert("Please enter a valid interest rate (0.01 to 100.00).");
		form.iinterest.focus();
		return false;
	}

	if (form.ipurchase.value == 0 || form.imortgage.value == 0 || form.iyears.value == 0 || form.iinterest.value == 0) {
		return false;
    }

	return true;
}

function resetform(form) { 
    var form = document.getElementById("calculator");

    form.ipurchase.value = "0";
    form.imortgage.value = "0";
    form.itype.value = "r";
    form.iyears.value = "0";
    form.iinterest.value = "0";
    //form.icalculate.value = "m";

    form.cbondfee.value = "0";
    form.cconveyancefee.value = "0";
    form.cadvocatefee.value = "0";
    form.cregistrationfee.value = "0";
    form.ctotalfee.value = "0";
    form.cmonthly.value = "0";
}

function floor(number) {
  return Math.floor(number*100)/100;
}

