/**
 * Calculate Mortgage
 */
function updateMortgage()
{
    // Get info
    var _initialAmount = document.getElementById( 'initialAmount' ).value;
    var _term = document.getElementById( 'term' ).value;
    var _rate = document.getElementById( 'rate' ).value;
    
    // If valid input, calculate mortgage
    if( ( /^\d+$/.test( _initialAmount ) ) && ( /^\d+$/.test( _term ) ) && ( /^\d+[.]?\d*$/.test( _rate ) ) && parseFloat(_initialAmount) > 0 && parseFloat(_term) > 0 && parseFloat(_rate) > 0 ) 
    {
        // Calculate & Display
        var _paymentsPerYear = 12;
        var _totalPayments   = parseInt( _term * _paymentsPerYear );
    
        _rate = parseFloat( (_rate / 100) / _paymentsPerYear );
    
        var _foo = Math.pow( ( 1 + _rate ), ( -1 * _totalPayments ) );
    
        var _bar = _rate / ( 1 - ( _foo ) );
    
        var _monthlyPayment = parseFloat( _bar * _initialAmount );
        document.getElementById( 'monthlyRepayment' ).value = _monthlyPayment.toFixed( 2 );
        
        var _totalRepayment = parseFloat( _monthlyPayment * _totalPayments );
        document.getElementById( 'repayment' ).value = _totalRepayment.toFixed( 2 );
    
        var _totalInterest = parseFloat( _totalRepayment - _initialAmount );
        document.getElementById( 'interest' ).value = _totalInterest.toFixed( 2 );
    }
    // If invalid input alert user
    else
    {
        alert('You must enter a valid Mortgage Amount, Term & Rate.');
    }
}

function updateStampDuty()
{
    var _type = document.getElementById('stamptype').value;
    var _value = document.getElementById('propertyvalue').value;
    
    var regEx = new RegExp("[^0-9]");
    // Match numbers only
    if(_value.match(regEx))
    {
        alert("You must enter only digits for the propertyvalue.");
        return false;
    }
    
    var _duty = 0;
    if(_type == 'firstTime')
    {
        _duty = 0;
    }
    else
    {
        if(_value > 875000)
        {
            _duty += ((_value - 875000) * 0.09);
            _duty += (750000 * 0.07)
        }
        else if (_value > 125000)
        {
            _duty = ((_value - 125000) * 0.07)
        }
        else
        {
            _duty = 0;
        }
    }
    var num = new Number(_duty);
    document.getElementById('stampduty').value = num.toFixed(2);
}

/**
 * Limit Text in text area
 */
function limitText( limitField, limitNum )
{
    if ( limitField.value.length > limitNum )
    {
        limitField.value = limitField.value.substring( 0, limitNum );
    }
}
