﻿//Function to update all the costs,
//updated a billion times now, ffs,
//all values, client ids and costs
//are pulled from a script block in the user control
//which are pulled form the survey object
function updateCosts(){
    var employees = parseInt(quoteData.employeesTXT.value);
    if(isNaN(employees) || employees < 1){
        alert("Please specify the numbers of employees.");
        return;
    }
    var currentCost = quoteData.costSetupAdmin;
    
    //check and update benchmarking
    if(quoteData.benchmark.CB.checked){
        if(quoteData.benchmark.PNL.style.display != 'block'){
            quoteData.benchmark.std.CB.checked = true;
            quoteData.benchmark.similar.CB.checked = false;
            quoteData.benchmark.custom.CB.checked = false;
        }
        quoteData.benchmark.std.LBL.style.marginTop = '18px';
        quoteData.benchmark.similar.LBL.style.display = 'block';
        quoteData.benchmark.custom.LBL.style.display = 'block';
        quoteData.benchmark.PNL.style.display  = 'block';
        
        //go down into standard
        if(quoteData.benchmark.std.CB.checked){
            currentCost += quoteData.benchmark.std.cost;
            quoteData.benchmark.std.LBL.innerHTML = formatCurrency(quoteData.benchmark.std.cost);
        }
        else
            quoteData.benchmark.std.LBL.innerHTML = formatCurrency(0);

        //then similar
        if (quoteData.benchmark.similar.CB.checked) {
            currentCost += quoteData.benchmark.similar.cost;
            quoteData.benchmark.similar.LBL.innerHTML = formatCurrency(quoteData.benchmark.similar.cost);
        }
        else
            quoteData.benchmark.similar.LBL.innerHTML = formatCurrency(0);

        //and then customised
        if(quoteData.benchmark.custom.CB.checked){
            currentCost += quoteData.benchmark.custom.cost;
            quoteData.benchmark.custom.LBL.innerHTML = formatCurrency(quoteData.benchmark.custom.cost);
        }
        else
            quoteData.benchmark.custom.LBL.innerHTML = formatCurrency(0);
            
    }
    else {
        quoteData.benchmark.custom.LBL.style.display = 'none';
        quoteData.benchmark.similar.LBL.style.display = 'none';
        quoteData.benchmark.PNL.style.display = 'none';
        quoteData.benchmark.std.LBL.innerHTML = formatCurrency(0);
        quoteData.benchmark.std.LBL.style.marginTop = '0';
    }
    
    if(quoteData.demographic.CB.checked){
        var demoCost = 0;
        if(employees <= 50)
            demoCost = quoteData.demographic.cost[0];
        else if(employees <= 100)
            demoCost = quoteData.demographic.cost[1];
        else if(employees <= 250)
            demoCost = quoteData.demographic.cost[2];
        else if(employees <= 500)
            demoCost = quoteData.demographic.cost[3];
        else if(employees <= 1000)
            demoCost = quoteData.demographic.cost[4];
        else if(employees <= 1500)
            demoCost = quoteData.demographic.cost[5];
        else if(employees <= 2000)
            demoCost = quoteData.demographic.cost[6];
        else if(employees <= 2500)
            demoCost = quoteData.demographic.cost[7];
        else if(employees <= 3000)
            demoCost = quoteData.demographic.cost[8];
        else if(employees <= 3500)
            demoCost = quoteData.demographic.cost[9];
        else if(employees <= 4000)
            demoCost = quoteData.demographic.cost[10];
        else if(employees <= 4500)
            demoCost = quoteData.demographic.cost[11];
        else if(employees <= 5000)
            demoCost = quoteData.demographic.cost[12];
            
        if(demoCost > 0){
            currentCost += demoCost;
            quoteData.demographic.LBL.innerHTML = formatCurrency(demoCost);
        }
        else
            quoteData.demographic.LBL.innerHTML = "POA";
    }
    else
        quoteData.demographic.LBL.innerHTML = formatCurrency(0);
        
    //check add extra questions
    if(quoteData.extra.CB.checked){
        quoteData.extra.PNL.style.display = 'block';
        var extraCost = 0;
        switch(quoteData.extra.DDL.selectedIndex){
            case 0: extraCost = quoteData.extra.cost.costExtra10; break;
            case 1: extraCost = quoteData.extra.cost.costExtra20; break;
            case 2: extraCost = quoteData.extra.cost.costExtra50; break;
        }
        if(extraCost > 0){
            currentCost += extraCost;
            quoteData.extra.LBL.innerHTML  = formatCurrency(extraCost);
        }
        else
            quoteData.extra.LBL.innerHTML = "POA";
    }
    else {
        quoteData.extra.PNL.style.display = 'none';
        quoteData.extra.LBL.innerHTML = formatCurrency(0);
    }
    
    //check trending
    if(quoteData.trending.CB.checked){
        currentCost += quoteData.trending.cost;
        quoteData.trending.LBL.innerHTML = formatCurrency(quoteData.trending.cost);    
    }
    else
        quoteData.trending.LBL.innerHTML = formatCurrency(0);



    var caCost = 0;
    //check key driver detailed first, force check key driver if so
    if (quoteData.keyDriverDetailed.CB.checked) {
        quoteData.keyDriver.CB.disabled = true;
        quoteData.keyDriver.CB.checked = true;
        quoteData.keyDriver.LBL.innerHTML = formatCurrency(0);

        quoteData.commentsAnalysis.CB.disabled = true;
        quoteData.commentsAnalysis.CB.checked = true;
        quoteData.commentsAnalysis.LBL.innerHTML = formatCurrency(0);
        quoteData.commentsAnalysis.PNL.style.display = 'none';

        quoteData.keyDriverDetailed.PNL.style.display = 'block';
        switch (quoteData.keyDriverDetailed.DDL.selectedIndex) {
            case 0:
                {
                    if (employees <= 500)
                        caCost = quoteData.keyDriverDetailed.costReport.cost500;
                    else if (employees <= 1500)
                        caCost = quoteData.keyDriverDetailed.costReport.cost1500;
                    else if (employees <= 3000)
                        caCost = quoteData.keyDriverDetailed.costReport.cost3000;
                    else if (employees <= 5000)
                        caCost = quoteData.keyDriverDetailed.costReport.cost5000;
                    else
                        caCost = 0;
                    break;
                }
            case 1:
                {
                    if (employees <= 500)
                        caCost = 0;
                    else if (employees <= 1500)
                        caCost = 0;
                    else if (employees <= 3000)
                        caCost = quoteData.keyDriverDetailed.costReportDemographic.cost3000;
                    else if (employees <= 5000)
                        caCost = quoteData.keyDriverDetailed.costReportDemographic.cost5000;
                    else
                        caCost = 0;
                    break;
                }
        }

        if (caCost > 0) {
            currentCost += caCost;
            quoteData.keyDriverDetailed.LBL.innerHTML = formatCurrency(caCost);
        }
        else
            quoteData.keyDriverDetailed.LBL.innerHTML = "POA";
            
        
        
        
    } //if not detailed key driver, check for stock key driver
    else {
        quoteData.keyDriverDetailed.PNL.style.display = 'none';
        if (quoteData.keyDriver.CB.checked && quoteData.keyDriver.CB.disabled) {
            quoteData.keyDriver.CB.disabled = false;
            quoteData.keyDriver.CB.checked = false;
            quoteData.keyDriverDetailed.DDL.selectedIndex = 0;
            quoteData.keyDriverDetailed.LBL.innerHTML = formatCurrency(0);
        }
        else if (quoteData.keyDriver.CB.checked) {
            //key driver is checked, but key driver detailed isn't
            currentCost += quoteData.keyDriver.cost;
            quoteData.keyDriverDetailed.LBL.innerHTML = formatCurrency(0);
            quoteData.keyDriver.LBL.innerHTML = formatCurrency(quoteData.keyDriver.cost);
        }
        else {
            //neither key driver or key driver detailed is checked, make sure they are all enabled
            quoteData.keyDriverDetailed.LBL.innerHTML = formatCurrency(0);
            quoteData.keyDriver.LBL.innerHTML = formatCurrency(0);
            quoteData.keyDriver.CB.disabled = false;
        }

        //comments analysis

        var caCost = 0;
        //check comments analysis
        if (quoteData.commentsAnalysis.CB.checked && quoteData.commentsAnalysis.CB.disabled) {
            quoteData.commentsAnalysis.CB.disabled = false;
            quoteData.commentsAnalysis.CB.checked = false;
            quoteData.commentsAnalysis.PNL.style.display = 'none';
            quoteData.commentsAnalysis.DDL.selectedIndex = 0;
        }
        else if (quoteData.commentsAnalysis.CB.checked) {
            quoteData.commentsAnalysis.PNL.style.display = 'block';


            switch (quoteData.commentsAnalysis.DDL.selectedIndex) {
                case 0:
                    {
                        if (employees <= 500)
                            caCost = quoteData.commentsAnalysis.costReport.cost500;
                        else if (employees <= 1500)
                            caCost = quoteData.commentsAnalysis.costReport.cost1500;
                        else if (employees <= 3000)
                            caCost = quoteData.commentsAnalysis.costReport.cost3000;
                        else if (employees <= 5000)
                            caCost = quoteData.commentsAnalysis.costReport.cost5000;
                        else
                            caCost = 0;
                        break;
                    }
                case 1:
                    {
                        if (employees <= 500)
                            caCost = 0;
                        else if (employees <= 1500)
                            caCost = 0;
                        else if (employees <= 3000)
                            caCost = quoteData.commentsAnalysis.costReportDemographic.cost3000;
                        else if (employees <= 5000)
                            caCost = quoteData.commentsAnalysis.costReportDemographic.cost5000;
                        else
                            caCost = 0;
                        break;
                    }
            }

            if (caCost > 0) {
                currentCost += caCost;
                quoteData.commentsAnalysis.LBL.innerHTML = formatCurrency(caCost);
            }
            else
                quoteData.commentsAnalysis.LBL.innerHTML = "POA";
        }
        else {
            quoteData.commentsAnalysis.PNL.style.display = 'none';
            quoteData.commentsAnalysis.DDL.selectedIndex = 0;
            quoteData.commentsAnalysis.LBL.innerHTML = formatCurrency(0);
     
        }
    }
  
    
    //check presentation
    if(quoteData.presentation.CB.checked){
        currentCost += quoteData.presentation.cost;
        quoteData.presentation.LBL.innerHTML    = formatCurrency(quoteData.presentation.cost);
    }
    else
        quoteData.presentation.LBL.innerHTML = formatCurrency(0);
    
    //update the main shit
    quoteData.subTotalLBL.innerHTML = formatCurrency(currentCost);
    quoteData.gstLBL.innerHTML = formatCurrency(currentCost * quoteData.costTax);
    quoteData.totalLBL.innerHTML = formatCurrency( (currentCost * quoteData.costTax) + currentCost);           
}
