function calculate(myForm) {
   var errors='';
   if(myForm.amount.value<1)
      errors += "Invalid mortgage amount\nPlease enter a non-zero value.\n\n";
   if(myForm.rate.value<1 || myForm.rate.value>100)
      errors += "Invalid interest rate\nPlease enter a value between 1 and 100.\n\n";
   if((myForm.mtype[1].checked == true)&&(errors.length == 0)) {
      if(myForm.term.value<1) {
         errors += "Invalid term of mortgage\nPlease enter a non-zero value.\n\n";
         alert(errors);
      }else {
         //do the calc for repayment mortgages in here
         var myPayment=0;
         myRate=1+(myForm.rate.value/100);
         myRate=Math.pow(myRate,(1/12));
         myTerm=myForm.term.value*12;
         myMortgage=myForm.amount.value;
         var x = Math.pow(myRate,myTerm);
         //fix dividing by zero where interest rate is set at 0 by if else
         if(x==1) { myPayment = (myMortgage/myTerm); }
         else { myPayment=((myMortgage*x)*(1-myRate))/(1-x) }
         myForm.interest.value=moneyFormat(Math.round(myPayment*100)/100);
      }
   } else if((myForm.mtype[0].checked == true) && (errors.length == 0)) {
      //do calculation for interest only mortages here
      myForm.interest.value = moneyFormat((myForm.amount.value*(myForm.rate.value/100))/12);
   } else { alert(errors); }
}
function moneyFormat(expr) {
   var decplaces = 2;
   var myString = "" + Math.round((eval(expr)) * Math.pow(10,decplaces));
   while (myString.length <= decplaces) { myString = "0" + myString; }
   var decpoint = myString.length - decplaces;
   return myString.substring(0,decpoint) + "." + myString.substring(decpoint, myString.length);
}