// <!--
function numToCurrency(sNum)
{
  var sDecSep = ".";
  var sThousandSep = ",";
  var nPos = sNum.indexOf('.');
  var nNeg = sNum.indexOf('-');
  var nLen = parseInt(sNum, 10).toString().length;

  if (nPos > 0)
    sNum = sNum.substr(0,nPos) + sDecSep + strValue.substr(nPos + 1, sNum.length - nPos);
  else
    nPos = sNum.length;
    
  if (nNeg == -1)
  {
    while (nLen > 3)
    {
      nPos -= 3;
      sNum = sNum.substr(0,nPos) + sThousandSep + sNum.substr(nPos, sNum.length - nPos + 1);
      nLen -= 3;
    }
  }
  else
  {
    while (nLen > 4)
    {
      nPos -= 3;
      sNum = sNum.substr(0,nPos) + sThousandSep + sNum.substr(nPos, sNum.length - nPos + 1);
      nLen -= 3;
    }
  }
  return sNum;
}

function checkValue(chkInput)
{
  chkInput.value = isNaN(parseInt(chkInput.value)) ? 0:parseInt(chkInput.value);
}

function calculate(evt)
{
  var calcform;
  calcform = document.calcform;
  
  // monthly income
  monthly_income = isNaN(parseInt(calcform.income_salary.value)) ? 0 : parseInt(calcform.income_salary.value);
  monthly_income += isNaN(parseInt(calcform.income_benefits.value)) ? 0 : parseInt(calcform.income_benefits.value);
  monthly_income += isNaN(parseInt(calcform.income_other.value)) ? 0 : parseInt(calcform.income_other.value);
  
  // monthly fixed outgoings
  monthly_outgoing_fixed = isNaN(parseInt(calcform.outgoingsfix1.value)) ? 0 : parseInt(calcform.outgoingsfix1.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix2.value)) ? 0 : parseInt(calcform.outgoingsfix2.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix3.value)) ? 0 : parseInt(calcform.outgoingsfix3.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix4.value)) ? 0 : parseInt(calcform.outgoingsfix4.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix5.value)) ? 0 : parseInt(calcform.outgoingsfix5.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix6.value)) ? 0 : parseInt(calcform.outgoingsfix6.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix7.value)) ? 0 : parseInt(calcform.outgoingsfix7.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix8.value)) ? 0 : parseInt(calcform.outgoingsfix8.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix9.value)) ? 0 : parseInt(calcform.outgoingsfix9.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix10.value)) ? 0 : parseInt(calcform.outgoingsfix10.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix11.value)) ? 0 : parseInt(calcform.outgoingsfix11.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix12.value)) ? 0 : parseInt(calcform.outgoingsfix12.value);
  monthly_outgoing_fixed += isNaN(parseInt(calcform.outgoingsfix13.value)) ? 0 : parseInt(calcform.outgoingsfix13.value);
  
  // monthly credit outgoings
  monthly_outgoing_credit = isNaN(parseInt(calcform.outgoingscred1.value)) ? 0 : parseInt(calcform.outgoingscred1.value);
  monthly_outgoing_credit += isNaN(parseInt(calcform.outgoingscred2.value)) ? 0 : parseInt(calcform.outgoingscred2.value);
  monthly_outgoing_credit += isNaN(parseInt(calcform.outgoingscred3.value)) ? 0 : parseInt(calcform.outgoingscred3.value);
  monthly_outgoing_credit += isNaN(parseInt(calcform.outgoingscred4.value)) ? 0 : parseInt(calcform.outgoingscred4.value);
  monthly_outgoing_credit += isNaN(parseInt(calcform.outgoingscred5.value)) ? 0 : parseInt(calcform.outgoingscred5.value);
  monthly_outgoing_credit += isNaN(parseInt(calcform.outgoingscred6.value)) ? 0 : parseInt(calcform.outgoingscred6.value);
  monthly_outgoing_credit += isNaN(parseInt(calcform.outgoingscred7.value)) ? 0 : parseInt(calcform.outgoingscred7.value);
  monthly_outgoing_credit += isNaN(parseInt(calcform.outgoingscred8.value)) ? 0 : parseInt(calcform.outgoingscred8.value);
  
  // calc totals
  monthly_outgoing_total = monthly_outgoing_fixed + monthly_outgoing_credit;
  monthly_surplus_total = monthly_income - monthly_outgoing_total;

  // fill total fields with values
  calcform.total_income.value = numToCurrency(parseInt(monthly_income, 10).toString());
  calcform.total_credit.value = numToCurrency(parseInt(monthly_outgoing_credit, 10).toString());
  calcform.total_fixed.value = numToCurrency(parseInt(monthly_outgoing_fixed, 10).toString());

  calcform.total_monthincome.value = numToCurrency(parseInt(monthly_income, 10).toString());
    
  calcform.total_monthoutgoing_credit.value = numToCurrency(parseInt(monthly_outgoing_credit, 10).toString());
  calcform.total_monthoutgoing_fixed.value = numToCurrency(parseInt(monthly_outgoing_fixed, 10).toString());
  calcform.total_monthoutgoing.value = numToCurrency(parseInt(monthly_outgoing_total, 10).toString());
  
  calcform.total_surplus.value = numToCurrency(parseInt(monthly_surplus_total, 10).toString());
}
// -->