// JavaScript by Mauro Strione
// mstrione@invap.net


//MASK RELATED FUNCTIONS
function autoMask(field, event, sMask) {

        var KeyTyped = String.fromCharCode(getKeyCode(event));
        var targ = getTarget(event);
        keyCount = targ.value.length;

	if(keyCount == sMask.length)
	{
		return false;
	}
      if ((sMask.charAt(keyCount+1) != '#') && (sMask.charAt(keyCount+1) != 'A' ) )
      {
         field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
         return false;
      }

        if (sMask.charAt(keyCount) == '*')
                return true;

        if (sMask.charAt(keyCount) == KeyTyped)
        {
                return true;
        }

        if ((sMask.charAt(keyCount) == '#') && isNumeric(KeyTyped))
           return true;

        if ((sMask.charAt(keyCount) == 'A') && isAlpha(KeyTyped))
         return true;

      if ((sMask.charAt(keyCount+1) == '?') )
      {
         field.value = field.value + KeyTyped + sMask.charAt(keyCount+1);
         return true;
      }
      if (KeyTyped.charCodeAt(0) < 32) return true;
    return false;
}
 function getTarget(e) {
  // IE5
   if (e.srcElement) {
        return e.srcElement;
   }
    if (e.target) {
        return e.target;
   }
 }

  function getKeyCode(e) {
 //IE5
 if (e.srcElement) {
        return e.keyCode
 }
  // NC5
  if (e.target) {
   return e.which
  }
 }

 function isNumeric(c)
{
        var sNumbers = "01234567890";
        if (sNumbers.indexOf(c) == -1)
                return false;
        else return true;

}

function isAlpha(c)
{
        var lCode = c.charCodeAt(0);
        if (lCode >= 65 && lCode <= 122 )
          {
                return true;
         }
        else
        return false;
}

function isPunct(c)
{
        var lCode = c.charCodeAt(0);
        if (lCode >= 32 && lCode <= 47 )
          {
                return true;
         }
        else
        return false;

}

//MORTGAGE RELATED FUNCTIONS
function calculateMortgage() 
{
	
	_form = document.formMortgage; 
	_PropertyPrice = _form.PropertyPrice.value;
	_PurchaseFees = _PropertyPrice*0.11;
	//form.PurchaseFees.value = PurchaseFees;
	document.getElementById('PurchaseFees').innerHTML = _PurchaseFees;
	
	_TotalPurchaseCost = parseFloat(_PurchaseFees) + parseFloat(_PropertyPrice);
	//form.TotalPurchaseCost.value = TotalPurchaseCost;
	document.getElementById('TotalPurchaseCost').innerHTML = _TotalPurchaseCost;
	
	_Index = _form.Percentage.selectedIndex;
	_FinancingRequired = _PropertyPrice *  parseInt (_form.Percentage.options[_Index].value) / 100;
	//form.FinancingRequired.value = FinancingRequired;
	document.getElementById('FinancingRequired').innerHTML = _FinancingRequired;
	
	_InCash = _TotalPurchaseCost - _FinancingRequired;
	//form.InCash.value = InCash;
	document.getElementById('InCash').innerHTML = _InCash;

	_AnnualInterestRate = _form.InterestRate.value/100; 
	_Index = _form.NumberOfYears.selectedIndex;
	_Years= _form.NumberOfYears.options[_Index].value; 
	_MonthRate= _AnnualInterestRate/12; 
	_NumPayments= _Years*12; 
	_MonthPayment = Math.floor((_FinancingRequired*_MonthRate)/(1-Math.pow((1+_MonthRate),(-1*_NumPayments)))*100)/100 
	//form.MonthlyPayment.value=MonthPayment 
	document.getElementById('MonthlyPayment').innerHTML = _MonthPayment;
} 
