

function calcButtonClick(form) {
        var la = form.loan_amt.value ;
        if ( isNaN(la) || la < 1 || form.loan_amt.value.length == 0) {
            alert ("Please enter your required Loan Amount");
            form.loan_amt.focus(); }
        else {
            calculatePayment(form);
        }
}

function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function formatCur( str ) {
	var l = str.length;
    var x = str.indexOf('.');
    if ( x == 0 ) { return str + '0.' + str; }
    if ( x < 0 ) { return str + '.00'; }
    if ( l-x == 2 ) { return str + '0'; }
    return str;
}

function calculatePayment(form) {
        var ir = 1;   // 1% interest per month
        
        var repay = rMonths = repCount = 0;
		var rPeriodStr = ' monthly';
		
        loanAmt = form.loan_amt.value;
		loanAmt = roundNumber(loanAmt,2);
		
        var s=form.r_period;
        for( i=0; i<s.length; i++ ) { if( s.options[i].selected ) { rPeriod = s.options[i].value; break; }  }   // 'W' weekly or 'M' monthly

        var s=form.repay_months;
        for( i=0; i<s.length; i++ ) { if( s.options[i].selected ) { rMonths = s.options[i].value; break; }  }  // No of months to repay the loan over
		
        repCount = rMonths;
		
        if( rPeriod == 'W' ) {    // Switch repayments and interest to weekly 
	        repCount = repCount * 4;
	        if( rMonths == 12 ) { repCount += 4; }		// 52 payments in a year
	        if( rMonths == 24 ) { repCount += 8; }		// 104 payments in 2 years
	        if( rMonths == 36 ) { repCount += 12; }     // 156 payments in 3 years
	        ir = 0.23;
	        rPeriodStr = ' weekly';
	    } 

        intRate = (ir/100);
        repay = Math.floor(( loanAmt * intRate ) / (1-Math.pow(1+intRate,( -1 * repCount)))*100)/100;

        repay = roundNumber(repay,2);
        totalPay = repay * repCount;
        totalPay = roundNumber(totalPay,2);
        
        repStr = formatCur( repay.toString() );
        totStr = formatCur( totalPay.toString() );
        
        str = '\u00A3 ' + loanAmt.toString() + ' is repaid with ' + repCount.toString() + rPeriodStr + ' repayments of about \u00A3 ' + repStr ;
        str = str + '\nThe total payable is about \u00A3 ' + totStr;
        
        form.dText.value = str;
    }
