﻿var applyGroupping = function (viz) {
    var grid = viz.ui.grid;
    var rootTable = grid.get_masterTableView().HeaderRow.parentNode;
    var row = grid.get_masterTableView().HeaderRow;

    var length = $(row).children('th').length;

    $(rootTable).prepend("<tr id='grouppingRow'></tr>");
    var i = 0;
    var j = 0;
    var totalSpan = 0;
    do {
        var group = grouppingParams[j];
        if ((group != undefined) && (group.position == i)) {
            $("#grouppingRow").append("<th class='rgHeader' scope='col' colspan='" + group.length + "' style='text-align:center'>" + group.text + "</th>");
            i += group.length;
            totalSpan += group.length;
            j++;
        }
        else {
            var orig = $(row).find('th').eq(totalSpan);
            var th = orig.clone();
            th.attr('rowSpan', 2);
            $("#grouppingRow").append(th);
            orig.remove();
            i++;
        }
    }
    while (i < length);
}

function CurrencyFormatted(amount) {
    var i = parseFloat(amount);
    if (isNaN(i)) { i = 0.00; }
    var minus = '';
    if (i < 0) { minus = '-'; }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    if (s.indexOf('.') < 0) { s += '.0000'; }
    if (s.indexOf('.') == (s.length - 2)) { s += '0'; }
    s = minus + s;
    return s;
}

function CommaFormatted(amount) {
    var delimiter = ","; // replace comma if desired
    var a = amount.split('.', 2)
    var d = a[1];
    var i = parseInt(a[0]);
    if (isNaN(i)) { return ''; }
    var minus = '';
    if (i < 0) { minus = '-'; }
    i = Math.abs(i);
    var n = new String(i);
    var a = [];
    while (n.length > 3) {
        var nn = n.substr(n.length - 3);
        a.unshift(nn);
        n = n.substr(0, n.length - 3);
    }
    if (n.length > 0) { a.unshift(n); }
    n = a.join(delimiter);
    if (d.length < 1) { amount = n; }
    else { amount = n + '.' + d; }
    amount = minus + amount;
    return amount;
}
