// JScript File

String.prototype.trim = function() {
    var reExtraSpace = /^\s+(.*?)\s+$/;
    return this.replace(reExtraSpace,"$1");
};
function isInteger(e)
{
    var keynum
    var keychar
    var numcheck

    if(window.event) // IE
    {
        keynum = e.keyCode
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which
    }
    keychar = String.fromCharCode(keynum)
    numcheck = /[\d\b\.]/
    return numcheck.test(keychar)
}
/*
function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
        num = "0";
    
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    
    if(cents<10)
        cents = "0" + cents;
    
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
        
    return (((sign)?'':'-') + '$' + num + '.' + cents);
}
*/
function formatCurrency(num) {
    num = num.toString().replace(/\,/g,'');
    if(isNaN(num) || (num.trim().length == 0) || (num == 0))
        return "";
    
    sign = (num == (num = Math.abs(num)));
    num = Math.round(num).toString();
    
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
        
    return (((sign)?'':'-') + num);
}
function formatPercent(num) {
    num = num.toString().replace(/\,/g,'');
    if(isNaN(num) || (num.trim().length == 0))
        return "";
    
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    
    if(cents<10)
        cents = "0" + cents;
    
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
        
    return (((sign)?'':'-') + num + '.' + cents + '%');
}
function formatDecimal(num,scale) {
    num = num.toString().replace(/\,/g,'');
    if(isNaN(num) || (num.trim().length == 0))
        return "";
    
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*Math.pow(10,scale)+0.50000000001);
    cents = num%Math.pow(10,scale);
    num = Math.floor(num/Math.pow(10,scale)).toString();
    
    if(cents<10)
        cents = "0" + cents;
    
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
        
    return (((sign)?'':'-') + num + '.' + cents);
}
function getValueFromTextBox(textboxObj)
{
    var val = textboxObj.value.toString().replace(/\,/g,'');
    return parseFloat((val.trim().length == 0) ? "0" : val);
}
function changeInputValueBlankToZero(inputName)
{
    var i = document.getElementById(inputName);
    if(i.value.trim().length == 0)
        i.value = 0;
}
function formatTextbox(textboxObj)
{
    textboxObj.value=formatCurrency(textboxObj.value);
}
function formatPercentTextbox(textboxObj)
{
    textboxObj.value=formatDecimal(textboxObj.value,2);
}
function bodyOnLoadAction()
{
    calculateForm();
}
function textBoxOnBlurAction(textboxObj)
{
    formatTextbox(textboxObj);
    calculateForm();
}
function textBoxOnBlurAction_ConvertToPercent(textboxObj)
{
    formatPercentTextbox(textboxObj);
    calculateForm();
}

function calculateForm()
{
    var txtA1 = document.getElementById('A1');
    var txtA2 = document.getElementById('A2');
    var txtA3 = document.getElementById('A3');
    var txtA4 = document.getElementById('A4');
    
    var valA1 = getValueFromTextBox(txtA1);
    var valA2 = getValueFromTextBox(txtA2);
    var valA3 = getValueFromTextBox(txtA3);
    
    var valA4 = NaN;
    if(isNaN(valA1) || isNaN(valA2) || isNaN(valA3))
    {
        txtA4.value = "";
    }
    else
    {
        valA4 = MonthlyExpense(valA1,valA2,valA3);
        txtA4.value = formatCurrency(valA4);
    }
     
    var C1 = getValueFromTextBox(document.form1.C1);
    var C2 = getValueFromTextBox(document.form1.C2);
    var C3 = getValueFromTextBox(document.form1.C3);
    var C4 = getValueFromTextBox(document.form1.C4);
    var C5 = getValueFromTextBox(document.form1.C5);
    var CD = getValueFromTextBox(document.form1.CD);
    var D = getValueFromTextBox(document.form1.D);
	var Ctot = (C1 + C2 + C3 + C4 + C5) - CD;
	document.form1.Ctot.value = formatCurrency(Ctot);
}
function MonthlyExpense(PV, i, n)
{
    if(n > 0)
    {
		var nn = n/12;
        return (PV + ((i / 100) * nn * PV)) / n;
    }
    else
    {
        return 0;
    }
}

function calA() {
    var txtA = document.getElementById('A');
    var valA = getValueFromTextBox(txtA);
	var A = valA - (valA * document.form1.A0.value / 100);
	var D = valA * document.form1.A0.value / 100;
	document.form1.A1.value = formatCurrency(A);
	document.form1.D.value = formatCurrency(D);
	document.form1.C1.value = formatCurrency(D);
}
