﻿var textboxes;
var titles;
var Room;

function checkForEnter(event) {


    if ((event.keyCode == 13) || (event.keyCode == 40)) // Enter: 13, DownArrow: 40
    {
        if (($(this).is('textarea')) && (event.keyCode == 13)) return true;
        currentBoxNumber = textboxes.index(this);
        currentBoxNumber++;
        if (textboxes[currentBoxNumber] == null) currentBoxNumber = 0;
        textboxes[currentBoxNumber].focus()
        textboxes[currentBoxNumber].select();
        event.preventDefault();
        return false;
    }
    else if (event.keyCode == 38)   // UpArrow: 38
    {
        currentBoxNumber = textboxes.index(this);
        if (currentBoxNumber == 0) currentBoxNumber = textboxes.length;
        currentBoxNumber--;
        textboxes[currentBoxNumber].focus()
        textboxes[currentBoxNumber].select();
        event.preventDefault();
        return false;
    }
   
    
       
        return true
    
   
        
    
}

function totalColumn(col) {
    var total = 0.0;
    var tcol = $.map(col, (function(a) { return $(a).text(); }));
    $.each(tcol, function(n, value) { total = total + (1.0 * value); });

    return total;
}


function totalRow() {
    var td = $(this).parent();
    var wt = $(td).siblings('.Weight');
    var cbf = $(td).siblings('.CBF');
    var twt = $(td).siblings('.TotalWeight');
    var tcbf = $(td).siblings('.TotalCBF');

    var qty = ($.trim($(this).val()).length > 0) ? $(this).val() : "0";
    if (qty == 0) {
        $(this).val('');
        $(twt).text('');
        $(tcbf).text('');
    }
    else {
        $(twt).text(wt.text() * qty);
        $(tcbf).text(cbf.text() * qty);
    }
    
    var twcol = $('#' + Room + ' .TotalWeight').filter(function() { return ($(this).text().length); }).get();
    var roomWeight = totalColumn(twcol);
    var tccol = $('#' + Room + ' .TotalCBF').filter(function() { return ($(this).text().length); }).get();
    var roomCBF = totalColumn(tccol);


    var roomName = $('table#' + Room + ' th.TableTitle').text();
    var sCell = $('table.SummaryTable td').filter(function() { return ($(this).text() == roomName); });
    var sRow = $(sCell).parent();
   (roomWeight ==0) ? $('td.weight', $(sRow)).text("") : $('td.weight', $(sRow)).text(roomWeight);
   (roomCBF == 0) ? $('td.CBF', $(sRow)).text("") : $('td.CBF', $(sRow)).text(roomCBF);



    //GRAND TOTAL
    var grandtwcol = $('table.SummaryTable .weight').filter(function() { return ($(this).text().length); }).get();
    var totalWeight = totalColumn(grandtwcol);
    var grandtccol = $('table.SummaryTable .CBF').filter(function() { return ($(this).text().length); }).get();
    var totalCBF = totalColumn(grandtccol);


    (totalWeight == 0) ? $('table.SummaryTable td.TOTAL_WEIGHT').text("") : $('table.SummaryTable td.TOTAL_WEIGHT').text(totalWeight);
    (totalCBF == 0) ? $('table.SummaryTable td.TOTAL_CBF').text("") : $('table.SummaryTable td.TOTAL_CBF').text(totalCBF);


   
    
    
    
//END GRAND TOTAL
}

function MakeSummaries() {
    titles = $('.TableTitle').get();
    titles.sort(function(a, b) { 
        if ($(a).text() == $(b).text()) return 0;
        if ($(a).text() < $(b).text()) return -1;
        return 1;
     });

     var sTable = "\n<table class='SummaryTable'>\n<tr><th colspan='6' class='TableTitle'>Household Areas</th></tr>\n<tr><th>Room</th><th>Weight</th><th>CBF</th></tr>\n";
    $.each(titles, function(n, t) {
            sTable += "<tr><td class='Room'>"
            + $(t).text()
            + "</td><td class='weight'></td><td class='CBF'></td></tr>\n"; 
        });
    sTable += "<tr><td class='TOTAL'>T O T A L</td><td class='TOTAL_WEIGHT'></td><td class='TOTAL_CBF'></td></tr>\n";
    sTable += "</table>\n\n";
    $('.Output').html(sTable);
}

function ChangeRooms() {
    var roomName = $(this).text();
    var tables = $('table.WeightsTable');
    var wTable = $(tables).filter(function() { return ($('th.TableTitle', this).text() == roomName); });
    Room = wTable.attr('id');
    $(tables).css('display', 'none');
    $('table#' + Room).css('display', '');
}

$(function() {
    $('.divSummaries').prepend("<div class='Output'></div>");
    MakeSummaries();

    Room = 'Attic';
    $('table.WeightsTable').not('#' + Room).css('display', 'none');
    $('tr:even td').addClass('darkerRow');

    var inp = $('.qty');
    $(inp).val('');
    $(inp).keyup(totalRow);
    $(inp).blur(function() {
        $('.highlightBack').removeClass('highlightBack');
    });
    $(inp).focus(function() {
        $('td', $(this).parent().parent()).addClass('highlightBack');
    });

    textboxes = $('.qty');
    if ($.browser.mozilla) { $(textboxes).keypress(checkForEnter); }
    else { $(textboxes).keydown(checkForEnter); }

    $('table.SummaryTable td.Room').hover(
        function() { $(this).css('cursor', 'pointer'); },
        function() { $(this).css('cursor', 'default'); }
    );
    $('table.SummaryTable td.Room').click(ChangeRooms);

});



