function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

	/*
	 * Revision 1.4
	 * Author: LeAnn Roberts
	 * Date: September, 2003
	 * Note: Modified the if logic: Math.pow()
	 */
	function format_number(pnumber,decimals) 
	{  
	  if (isNaN(pnumber)) { return 0};  
	  if (pnumber=='') { return 0};  
	   
	  var IsNegative=(parseInt(pnumber)<0); 
	  if(IsNegative)pnumber=-pnumber; 

	  var snum = new String(pnumber);  
	  var sec = snum.split('.');  
	  var whole = parseInt(sec[0]);  
	  var result = '';  
	  if(sec.length > 1){  
	    var dec = new String(sec[1]);  
	    dec = parseInt(dec)/Math.pow(10,parseInt(dec.length-decimals-1)); 
	Math.round(dec); 
	dec = parseInt(dec)/10; 

	if(IsNegative) 
	{ 
	  var x = 0-dec; 
	      x = Math.round(x); 
	  dec = - x; 
	} 
	else 
	{ 
	      dec = Math.round(dec); 
	} 

	/* 
	 * If the number was rounded up from 9 to 10, and it was for 1 'decimal' 
	 * then we need to add 1 to the 'whole' and set the dec to 0. 
	 */ 
	if(dec==Math.pow(10, parseInt(decimals)))
	{ 
	  whole+=1; 
	  dec="0"; 
	} 

	    dec = String(whole) + "." + String(dec);  
	    var dot = dec.indexOf('.');  
	    if(dot == -1){  
	      dec += '.';  
	      dot = dec.indexOf('.');  
	    } 
	var l=parseInt(dot)+parseInt(decimals); 
	    while(dec.length <= l) { dec += '0'; }  
	    result = dec;  
	  } else{  
	    var dot;  
	    var dec = new String(whole);  
	    dec += '.';  
	    dot = dec.indexOf('.');  
	var l=parseInt(dot)+parseInt(decimals); 
	    while(dec.length <= l) { dec += '0'; }  
	    result = dec;  
	  }  
	  if(IsNegative)result="-"+result; 
	  return result;  
	}  


	function calculatePayments(lid)
	{
		var frm = document.mortgagecalcform;
		var principal = frm.principal.value;
		var interest = frm.interest.value;
		var amort = frm.amort.value;
		var tmpLangID = lid;
		if (frm.principal.value.length == 0 || frm.interest.value.length == 0 || frm.amort.value.length == 0)
		{
			if(tmpLangID == 'en'){
				alert('Please fill in the form completely and try again.');}
			else{
				alert('Veuillez remplir le formulaire au complet.');
			}
		}		
		else if (!IsNumeric(principal) || !IsNumeric(interest) || !IsNumeric(amort)) {
			if(tmpLangID == 'en'){
				alert('Invalid entries - Please try again.');  }
			else{
				alert('Invalid entries.');
			}
		}
		else
		{
			//calculate periodic interest rate
			var B = Math.pow(Math.pow((1+(interest/200)),2),(1/12))-1;

			//amort in months
			var C = amort * 12;

			var payments = (principal*B)/(1-Math.pow((1+B),(-C)));
			frm.monthly.value = '$' + format_number(payments,2);
		}
	}
	
	
	function calculatePayments2() 
	{
		var frm = document.mortgagecalcform;

		if (frm.oPrin.value <= 0 || frm.oRate.value <= 0 || frm.oTerm.value <= 0 || frm.oAmort.value <= 0 || frm.rTerm.value <= 0 || frm.rRate.value <= 0)
		{
			alert('Values must be non-empty greater than zero.');
			return false;
		}	
		if (frm.oTerm.value*1 < frm.rTerm.value*1)
		{
			alert('Original term must be greater than or equal to months to maturity.');
			return false;
		}	
		
		if ((frm.oTerm.value*1)>240) {
			alert('Original term must be less than 241 months');
			return false;
		}
	}