/*  reports.js
 *  (c) 2007 Free Flow Data 
 *
 *  Functions used in reports area.
 *
/*--------------------------------------------------------------------------*/

function fr_addValues(valuesToAdd, elementToUpdate) {
    var theSum, temp, success;
    theSum = 0;
    success = true;
    for (var i = 0; i < valuesToAdd.length; i++) {
        temp = document.getElementById(valuesToAdd[i]).value;
        if (temp == "") {
            temp = 0;
        }
        temp = Math.round(parseFloat(temp));
        if (isNaN(temp)) {
            temp = 0;
            //break;
        }
        document.getElementById(valuesToAdd[i]).value = temp;
        theSum += temp;
    }
    if (elementToUpdate != "") {
        document.getElementById(elementToUpdate).innerHTML = theSum;
    }
    if (elementToUpdate == "total_assets" || elementToUpdate == "total_liabilities") {
        fr_computeNetAssets();
    }
}

function fr_computeNetAssets() {
    var total_assets = parseFloat(document.getElementById("total_assets").innerHTML);
    var total_liabilities = parseFloat(document.getElementById("total_liabilities").innerHTML);
    if(isNaN(total_assets)) {
        total_assets = 0;
    }
    if(isNaN(total_liabilities)) {
        total_liabilities = 0;
    }
    document.getElementById("net_assets").innerHTML = total_assets - total_liabilities;
}

function fr_addExpenseColumns(idChanged) {
    var lastThree = idChanged.substr(idChanged.length-3, 3);
    
    fr_addValues(total_expenses_ps_elements, 'total_expenses_ps');
    fr_addValues(total_expenses_mg_elements, 'total_expenses_mg');
    fr_addValues(total_expenses_fr_elements, 'total_expenses_fr');
    fr_addExpenseRow(idChanged);
    $('total_expenses').innerHTML = parseInt($('total_expenses_ps').innerHTML) + parseInt($('total_expenses_mg').innerHTML) + parseInt($('total_expenses_fr').innerHTML);
}

function fr_addExpenseRow(idChanged) {
    var baseName = idChanged.substr(0, idChanged.length-3);
    var rowTotal = 0;
    for (var i = 0; i < total_expenses_ps_elements.length; i++) {
        if (total_expenses_ps_elements[i].indexOf(baseName) == 0) {
            rowTotal += parseInt(document.getElementById(total_expenses_ps_elements[i]).value);
        }
        if (total_expenses_mg_elements[i].indexOf(baseName) == 0) {
            rowTotal += parseInt(document.getElementById(total_expenses_mg_elements[i]).value);
        }
        if (total_expenses_fr_elements[i].indexOf(baseName) == 0) {
            rowTotal += parseInt(document.getElementById(total_expenses_fr_elements[i]).value);
        }
    }
    document.getElementById(baseName + "_total").innerHTML = rowTotal;
}

function fr_addAllExpenseRows() {
    for (var i = 0; i < total_expenses_ps_elements.length; i++) {
        fr_addExpenseRow(total_expenses_ps_elements[i]);
    }
}

function ie_text_focus(input_element) {
    if (navigator.appName == "Microsoft Internet Explorer") {
        var range = input_element.createTextRange();
        var length = input_element.value.length;
        range.collapse(true);
        range.moveEnd('character', length);
        range.moveStart('character', 0);
        range.select();
    }
} 

function validate_financial_report() {
    if ($('conservation').value != '0') {
        if (parseInt($('conservation_protect_percent').value) + parseInt($('conservation_reconnect_percent').value) + parseInt($('conservation_restore_percent').value) != 100) {
            alert("The conservation percentages in the Volunteer Hours section (lines 57a, b and c) must total 100");
            $('conservation_protect_percent').focus();
            $('conservation_protect_percent').style.backgroundColor = "#FEF";
            $('conservation_protect_percent').style.borderColor = "#C00";
            $('conservation_reconnect_percent').style.backgroundColor = "#FEF";
            $('conservation_reconnect_percent').style.borderColor = "#C00";
            $('conservation_restore_percent').style.backgroundColor = "#FEF";
            $('conservation_restore_percent').style.borderColor = "#C00";
            return false;
        }
    }
    return true;
}
