function calc_GenerateResultHTML(zarobkiObj)
{
    var monthIdx = 0;
    var rv       = '';
    var rv2      = '';
    var sums     = new Array();

    for (i = 0; i <= 10; i++)
    {
        sums[i] = 0;
    }

    /* header */
    rv = '<table class="results" border="1" width="100%"><tbody>'
        + '<tr class="header"><td colspan="5">koszty pracownika</td></tr>'
        + '<tr class="header"><td>&nbsp;</td>' /*<td>brutto</td>*/ + '<td>ZUS</td>'
            + '<td>zdrowotne<br/>(NFZ)</td><td>zaliczka<br/>podatku</td><td>netto</td>'
            + '</tr>';
/*    rv2 = '<table class="results"><tbody>'
        + '<tr class="header"><td colspan="4">koszty pracodawcy</td></tr>'
        + '<tr class="header"><td></td><td>ZUS</td><td>FP +<br/>FG¦P</td><td>suma</td>';
*/

    /* payables */
    for (monthIdx = 0; monthIdx < 12; monthIdx++)
    {
        rv = rv
            + '<tr><td align="right" width="10">' + (monthIdx+1)+'.'
 //           + '</td><td align="right">' + MONEY_toString100Groszy(zarobkiObj.inPAY_brutto[monthIdx])
            + '</td><td align="right">' + MONEY_toString100Groszy(zarobkiObj.outPracownikZUS[monthIdx])
            + '</td><td align="right">' + MONEY_toString100Groszy(zarobkiObj.outPracownikZdrowotne[monthIdx])
            + '</td><td align="right">' + MONEY_toString100Groszy(zarobkiObj.outZaliczka[monthIdx])
            + '</td><td align="right"><b>' + MONEY_toString100Groszy(zarobkiObj.outNetto[monthIdx])
            + '</b></td></tr>';

  /*      rv2 = rv2
            + '<tr><td>' + (monthIdx+1)
            + '</td><td>' + MONEY_toString100Groszy(zarobkiObj.outPracodawcaZUS[monthIdx])
            + '</td><td>' + MONEY_toString100Groszy(zarobkiObj.outPracodawcaFundusze[monthIdx])
            + '</td><td><b>' + MONEY_toString100Groszy(zarobkiObj.outAll[monthIdx])
            + '</b></td></tr>';
*/
        sums[0]  = sums[0]  + zarobkiObj.inPAY_brutto[monthIdx];
        sums[1]  = sums[1]  + zarobkiObj.outPracownikZUS[monthIdx];
        sums[2]  = sums[2]  + zarobkiObj.outPracownikZdrowotne[monthIdx];
        sums[3]  = sums[3]  + zarobkiObj.outZaliczka[monthIdx];
        sums[4]  = sums[4]  + zarobkiObj.outNetto[monthIdx];
        //sums[5]  = sums[5]  + zarobkiObj.outPracodawcaZUS[monthIdx];
        //sums[6]  = sums[6]  + zarobkiObj.outPracodawcaFundusze[monthIdx];
       // sums[7] = sums[7] + zarobkiObj.outAll[monthIdx];
    }

    /* first table */
    rv = rv
        + '<tr class="header"><td align="center">='
        + '</td>';
    var begin = '';
    var end   = '';
    for (i = 1; i <= 4; i++)
    {
        if (i == 4)
        {
            begin = '<b>';
            end = '</b>';
        }
        rv = rv + '<td align="right">' + begin + MONEY_toString100Groszy(NUMBER_roundToDecimals(sums[i], 2)) + end + '</td>';
    }
    rv = rv + '</tr></tbody></table>';

    /* second table */
   /* rv2 = rv2
        + '<tr class="header"><td>+'
        + '</td>';
    begin = '';
    for (; i <= 10; i++)
    {
        if (i == 10)
        {
            begin = '<b>';
            end = '</b>';
        }
        rv2 = rv2 + '<td>' + begin + MONEY_toString100Groszy(NUMBER_roundToDecimals(sums[i], 2)) + end + '</td>';
    }
    rv2 = rv2 + '</tr></tbody></table>';*/

    return rv;//       + '<br/>'        + rv2;
}

function calc_valueChange(elem)
{
    document.getElementById('calc_result').innerHTML = '';
    var zarobkiObj = new ZarobkiObject();
    var outValue = '';
    var dbgValue = '';
    var i;
    var ok = 1;
    var errorString = '';

    /* if entering "all_months" field, then insert to all months */
    if (elem == document.getElementById('calcZarobki_Dodaj'))
    {
        calcZarobki_InsertToAllMonths();
    }

    /* get year and deal type */

    if (!document.getElementById('calcZarobki_Year').value)
        document.getElementById('calcZarobki_Year').value = 0;
        
    zarobkiObj.inYear               = NUMBER_parseInput(document.getElementById('calcZarobki_Year').value);
    
    
    
    
	var inDealType                  = 0;//NUMBER_parseInput(document.getElementById('calcZarobki_DealType').value);
    var inPracaWSiedzibiePracodawcy = (document.getElementById('calcZarobki_PracaWSiedzibiePracodawcy').checked) ? 1 : 0;
   // var inKogoUbezpieczamy          = NUMBER_parseInput(document.getElementById('calcZarobki_KogoUbezpieczamy').value);

    for (i = 0; i < 12; i++)
    {
        
        zarobkiObj.inPAY_brutto[i] = NUMBER_parseInput(document.getElementById('calcZarobki_Dodaj').value);
    
        /*var zarobki = NUMBER_parseInput(document.getElementById('calcZarobki_month' + i).value);
        if (zarobki == '')
        {
            ok = 0;
            errorString = 'podaj poprawnie zarobki dla wszystkich miesięcy';
        }
        else
        {
            zarobkiObj.inPAY_brutto[i] = zarobki;
        }*/
    }

    /* show proper input blocks */
    /*document.getElementById('calcZarobki_BlockUmowaOPraceCheckboxes').style.display     = (inDealType == 0) ? 'block' : 'none';
    document.getElementById('calcZarobki_BlockKosztyUzyskaniaPrzychodu').style.display  = (inDealType != 0) ? 'block' : 'none';
    document.getElementById('calcZarobki_BlockPracaWSiedzibiePracodawcy').style.display = (inDealType != 0) ? 'block' : 'none';
    document.getElementById('calcZarobki_BlockWypadkowePercent').style.display          =
        ((inDealType == 0) || (inPracaWSiedzibiePracodawcy)) ? 'block' : 'none';
    document.getElementById('calcZarobki_BlockKogoUbezpieczamy').style.display = (inDealType == 2) ? 'block' : 'none';
    document.getElementById('calcZarobki_BlockDobrowolneUbezpieczenieChorobowe').style.display =
        ((inDealType == 2) && (inKogoUbezpieczamy == 0)) ? 'block' : 'none';*/

    /* some commons */
    zarobkiObj.inZUS_wypadkoweOn      = 1;//(document.getElementById('calcZarobki_PracaWSiedzibiePracodawcy').checked) ? 1 : 0;
    zarobkiObj.inZUS_wypadkowePercent = NUMBER_roundToDecimals(NUMBER_parseInput(document.getElementById('calcZarobki_WypadkowePercent').value) * 0.01, 4);
   // zarobkiObj.inPercentWorkCost      = NUMBER_parseInput(document.getElementById('calcZarobki_KosztyUzyskaniaPrzychodu').value);

    /* handle proper content */
    switch (inDealType)
    {
        case 0: /* umowa o prace */
            zarobkiObj.inMarriedTax           = (document.getElementById('calcZarobki_Married').checked) ? 1 : 0;
            zarobkiObj.inProfitCorrectionOn   = 1;
            zarobkiObj.inStandardWorkCost     = (document.getElementById('calcZarobki_CostIncreased').checked) ? 0 : 1;
            zarobkiObj.inIncreasedWorkCost    = (document.getElementById('calcZarobki_CostIncreased').checked) ? 1 : 0;
            zarobkiObj.inPercentWorkCost      = 0;
            zarobkiObj.inZUS_pracownikEROn    = 1;
            zarobkiObj.inZUS_pracodawcaZUSOn  = 1;
            zarobkiObj.inZUS_wypadkoweOn      = 1;
            zarobkiObj.inZUS_choroboweOn      = 1;
            zarobkiObj.inZUS_zdrowotneOn      = 1;
            break;
       /* case 1: // umowa o dzielo
            break;
        case 2: // umowa zlecenie 
            switch (inKogoUbezpieczamy)
            {
                case 0:
                    zarobkiObj.inZUS_pracownikEROn   = 1;
                    zarobkiObj.inZUS_pracodawcaZUSOn = 1;
                    zarobkiObj.inZUS_choroboweOn     = (document.getElementById('calcZarobki_DobrowolneUbezpieczenieChorobowe').checked) ? 1 : 0;
                    zarobkiObj.inZUS_zdrowotneOn     = 1;
                    break;
                case 1:
                    zarobkiObj.inZUS_zdrowotneOn     = 1;
                    zarobkiObj.inZUS_pracodawcaZUSOn = 1;
                    break;
                case 2:
                    break;
            }
            break;*/
    }

    /* go calculations */
    zarobkiObj.process();

    //dbgValue = zarobkiObj.getDebugString() + '<br/>';
    outValue = calc_GenerateResultHTML(zarobkiObj);

    document.getElementById('calc_result').innerHTML = dbgValue + outValue;
    document.getElementById('calc_error').innerHTML = errorString + '<br/>';
}

function calcZarobki_InsertToAllMonths()
{/*
    var i;
    for (i = 0; i < 12; i++)
    {
        document.getElementById('calcZarobki_month' + i).value = document.getElementById('calcZarobki_Dodaj').value;
    }*/
    calc_valueChange(null);
}

function calculate()
{
    calc_valueChange(null);
}

