﻿var IVA = 20;
var numeroDecimali = 3;
var totali = new Array(0,0,0,0,0,0,0);
/*
PriProd_CalcTotValore   0
SecProd_CalcTotValore   1
TerProd_CalcTotValore   2
Tot_CostoManodopera     3
Tot_TotAltri            4
CostoIndSingolo         5
TariffaServizio         6
*/

function EseguiCalcolo(id){    
    switch (id) { 
	    case 'PriProd_CostoListino': 
	    case 'PriProd_MediaSconto': 
        case 'PriProd_NServEff': 
            AggiornaCostoProdotto('PriProd_CostoListino', 'PriProd_MediaSconto', 'PriProd_NServEff', 'PriProd_CalcTotValore', 0);
	    break;
	    
	    case 'SecProd_CostoListino': 
	    case 'SecProd_MediaSconto': 
	    case 'SecProd_NServEff': 
	        AggiornaCostoProdotto('SecProd_CostoListino', 'SecProd_MediaSconto', 'SecProd_NServEff', 'SecProd_CalcTotValore', 1);
	    break;

	    case 'TerProd_CostoListino':
	    case 'TerProd_MediaSconto':  
        case 'TerProd_NServEff': 
            AggiornaCostoProdotto('TerProd_CostoListino', 'TerProd_MediaSconto', 'TerProd_NServEff', 'TerProd_CalcTotValore', 2);
	    break;
	    
	    case 'totAddetti':
	    case 'oreMensili':  
        case 'stipendi': 
        case 'durataServ': 
            AggiornaCostoDipendenti();
	    break;
	    
	    case 'Affitto':
	    case 'Mutuo':  
	    case 'Rimborsi': 
        case 'Ammortamenti': 
        case 'UtenzeTel': 
	    case 'UtenzeEle':
	    case 'UtenzeGas':  
	    case 'UtenzeAcq': 
        case 'Commercialista': 
        case 'Postali':
        case 'SIAE': 
        case 'Altri':
            AggiornaCostoAltri();
            AggiornaCostoIndirettoSingolo();
	    break;
	    
	    case 'NumSevAnn':
            AggiornaCostoIndirettoSingolo();
	    break;
    }
    
    if (trim(document.getElementById('UtileDesiderato').value) != "" && (totali[0] + totali[1] + totali[2] + totali[3] + totali[4] + totali[5]) != 0)
        AggiornaTariffa();
}

function AggiornaTariffa(){
    var auxStr = document.getElementById('UtileDesiderato').value.replace(",", ".");
    var NumServ = parseFloat(auxStr == "" ? 0 : auxStr);
    
    var lordo = totali[5] * (NumServ / 100) * 2;
    var superTot = parseFloat(totali[0]) + parseFloat(totali[1]) + parseFloat(totali[2]) + parseFloat(totali[3]) + parseFloat(totali[5]) + parseFloat(lordo);
    var przIva = superTot * (IVA / 100);
    totali[6] = superTot + przIva;
    
    //Tariffa
    var numDecCalcolato = totali[6].toString().length;
    if (totali[6].toString().indexOf(".") != -1) {
        if ((totali[6].toString().indexOf(".") + numeroDecimali) <= (totali[6].toString().length)) numDecCalcolato = totali[6].toString().indexOf(".") + numeroDecimali;
     }
    document.getElementById('Tariffa').innerHTML = "&euro; " + totali[6].toString().substr(0, numDecCalcolato + 1).replace(".", ","); // Prendo solo i primi 3 decimali.    
}

function AggiornaCostoIndirettoSingolo(){
    var auxStr = document.getElementById('NumSevAnn').value.replace(",", ".");
    var NumServ = parseFloat(auxStr == "" ? 1 : auxStr);
    
    totali[5] = totali[4] / NumServ;

    //Totale
    var numDecCalcolato = totali[5].toString().length;
    if (totali[5].toString().indexOf(".") != -1) {
        if ((totali[5].toString().indexOf(".") + numeroDecimali) <= (totali[5].toString().length)) numDecCalcolato = totali[5].toString().indexOf(".") + numeroDecimali;
     }
    document.getElementById('CostoIndSingolo').innerHTML = "&euro; " + totali[5].toString().substr(0, numDecCalcolato + 1).replace(".", ","); // Prendo solo i primi 3 decimali.
}

function AggiornaCostoAltri(){
    var auxStr = document.getElementById('Affitto').value.replace(",", ".");
    var Aff = parseFloat(auxStr == "" ? 0 : auxStr);

    auxStr = document.getElementById('Mutuo').value.replace(",", ".");
    var Mut = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('Rimborsi').value.replace(",", ".");
    var Rim = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('Ammortamenti').value.replace(",", ".");
    var Amm = parseFloat(auxStr == "" ? 0 : auxStr);

    auxStr = document.getElementById('UtenzeTel').value.replace(",", ".");
    var Tel = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('UtenzeEle').value.replace(",", ".");
    var Ele = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('UtenzeGas').value.replace(",", ".");
    var Gas = parseFloat(auxStr == "" ? 0 : auxStr);    
    
    auxStr = document.getElementById('UtenzeAcq').value.replace(",", ".");
    var Acq = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('Commercialista').value.replace(",", ".");
    var Comm = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('Postali').value.replace(",", ".");
    var Pos = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('SIAE').value.replace(",", ".");
    var SIA = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('Altri').value.replace(",", ".");
    var Altr = parseFloat(auxStr == "" ? 0 : auxStr);

    totali[4] = Aff + Mut + Rim + Amm + Tel + Ele + Gas + Acq + Comm + Pos + SIA + Altr;
    
    //Totale
    var numDecCalcolato = totali[4].toString().length;
    if (totali[4].toString().indexOf(".") != -1) {
        if ((totali[4].toString().indexOf(".") + numeroDecimali) <= (totali[4].toString().length)) numDecCalcolato = totali[4].toString().indexOf(".") + numeroDecimali;
     }
    document.getElementById('Tot_TotAltri').innerHTML = "&euro; " + totali[4].toString().substr(0, numDecCalcolato + 1).replace(".", ","); // Prendo solo i primi 3 decimali.
}


function AggiornaCostoDipendenti(){
    var auxStr = document.getElementById('totAddetti').value.replace(",", ".");
    var totAdd = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('oreMensili').value.replace(",", ".");
    var totOre = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('stipendi').value.replace(",", ".");
    var totStip = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById('durataServ').value.replace(",", ".");
    var totDurata = parseFloat(auxStr == "" ? 0 : auxStr);
    
    if (totStip == 0 ||  totOre == 0 || totAdd == 0 || totDurata == 0)
        totali[3] = 0;
    else
        totali[3] = totStip / totOre / totAdd / 60 * totDurata;
    
    //Totale
    var numDecCalcolato = totali[3].toString().length;
    if (totali[3].toString().indexOf(".") != -1) {
        if ((totali[3].toString().indexOf(".") + numeroDecimali) <= (totali[3].toString().length)) numDecCalcolato = totali[3].toString().indexOf(".") + numeroDecimali;
     }
    document.getElementById('Tot_CostoManodopera').innerHTML = "&euro; " + totali[3].toString().substr(0, numDecCalcolato + 1).replace(".", ","); // Prendo solo i primi 3 decimali.
}

function AggiornaCostoProdotto(id_listino, id_media, id_NServ, id_tot, ArrayIndex){    
    var auxStr = document.getElementById(id_listino).value.replace(",", ".");
    var costo = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById(id_media).value.replace(",", ".");
    var sconto = parseFloat(auxStr == "" ? 0 : auxStr);
    
    auxStr = document.getElementById(id_NServ).value.replace(",", ".");
    var NumServ = parseFloat(auxStr == "" ? 1 : auxStr);
    
    var tot = costo/100*(100-sconto)/NumServ;
    totali[ArrayIndex] = tot;
    
    //Totale
    var numDecCalcolato = tot.toString().length;
    if (tot.toString().indexOf(".") != -1) {
        if ((tot.toString().indexOf(".") + numeroDecimali) <= (tot.toString().length)) numDecCalcolato = tot.toString().indexOf(".") + numeroDecimali;
     }
    document.getElementById(id_tot).innerHTML = "&euro; " + tot.toString().substr(0, numDecCalcolato + 1).replace(".", ","); // Prendo solo i primi 3 decimali.
    
    //Super totale
    numDecCalcolato = (parseFloat(totali[0]) + parseFloat(totali[1]) + parseFloat(totali[2])).toString().length;
    var superTot = parseFloat(totali[0]) + parseFloat(totali[1]) + parseFloat(totali[2]);
    if (superTot.toString().indexOf(".") != -1) {
        if ((superTot.toString().indexOf(".") + numeroDecimali) <= (superTot.toString().length)) numDecCalcolato = superTot.toString().indexOf(".") + numeroDecimali;
     }
    document.getElementById('Tot_CostoDirettoApp').innerHTML = "&euro; " + superTot.toString().substr(0, numDecCalcolato + 1).replace(".", ","); // Prendo solo i primi 3 decimali.
}
