﻿function Order(table, column, asc) 
{
    var data = new Array(0);
    var rowData = null;
    for (var i = 0; i < table.rows[0].cells.length; i++) 
    {
        if (document.getElementById("column" + i + "ASCBut") != null) 
        {
            document.getElementById("column" + i + "ASCBut").src = "img/ASCInActive.gif";
            document.getElementById("column" + i + "DESCBut").src = "img/DESCInActive.gif";
        }
    }
    for (var i = 0; i < table.rows.length; i++) 
    {
        if ((table.rows[i].className.toUpperCase() == "RankingTable2DataOddRowStyle".toUpperCase()) || (table.rows[i].className.toUpperCase() == "RankingTable2DataEvenRowStyle".toUpperCase())) 
        {
            rowData = new Array(0);
            for (var j = 0; j < table.rows[i].cells.length; j++) 
            {
                if (isNaN(table.rows[i].cells[j].innerHTML.replace(',', ''))) 
                {
                    rowData[rowData.length] = table.rows[i].cells[j].innerHTML;
                }
                else 
                {
                    rowData[rowData.length] = parseFloat(table.rows[i].cells[j].innerHTML.replace(',', ''));
                }
            }
            for (var j = 0; j < table.rows[i].cells.length; j++) 
            {
                rowData[rowData.length] = table.rows[i].cells[j].innerHTML;
            }
            data[data.length] = rowData;
        }
    }
    for (var i = 0; i < data.length; i++) 
    {
        var SelInx = i;
        for (var j = i + 1; j < data.length; j++) 
        {
            if (asc) 
            {
                if (data[j][column] < data[SelInx][column]) 
                {
                    SelInx = j;
                }
            }
            else 
            {
                if (data[j][column] > data[SelInx][column]) 
                {
                    SelInx = j;
                }
            }
        }
        if (SelInx != i) 
        {
            var w = data[i];
            data[i] = data[SelInx];
            data[SelInx] = w;
        }
    }
    var rowInx = 0;
    for (var i = 0; i < table.rows.length; i++) 
    {
        if ((table.rows[i].className.toUpperCase() == "RankingTable2DataOddRowStyle".toUpperCase()) || (table.rows[i].className.toUpperCase() == "RankingTable2DataEvenRowStyle".toUpperCase())) 
        {
            for (var j = 0; j < table.rows[i].cells.length; j++) 
            {
                table.rows[i].cells[j].innerHTML = data[rowInx][j + (data[rowInx].length / 2)];
            }
            rowInx++;
        }
    }
    if (asc) 
    {
        document.getElementById("column" + column + "ASCBut").src = "img/ASCActive.gif";
    }
    else 
    {
        document.getElementById("column" + column + "DESCBut").src = "img/DESCActive.gif";
    }
  
}

function CheckColumn(table, column) 
{
    for (var i = 0; i < table.rows[0].cells.length; i++) 
    {
        document.getElementById("column" + i + "Checker").className = "RankingTable2UncheckedColumtTextStyle";
    }
    document.getElementById("column" + column + "Checker").className = "RankingTable2CheckedColumnHederStyle";
    onCheckFunctionLink(column);
}

var onCheckFunctionLink = null;

function RenderRankingTable2(colsNames, isSorting, isChecked, dataRows, totalRows, containerId, onCheckFunction, checkedColumn) 
{
    onCheckFunctionLink = onCheckFunction;
    var cont = document.getElementById(containerId);
    var str = "";
    str += "<table id=\"rankigTable1\" style=\"border-collapse: collapse;\" class=\"RankingTable2Style\">";

    str += "<tr class=\"RankingTable2HeaderRowStyle\">";
    for (var i = 0; i < colsNames.length; i++) 
    {
        str += "<td class=\"RankingTable2HeaderColumnStyle\">";
        str += "<table style=\"border-collapse: collapse;\">";
        str += "<tr>";
        if (isChecked[i]) 
        {
            str += "<td id=\"column" + i + "Checker\" class=\"RankingTable2UncheckedColumtTextStyle\" align=\"center\" style=\"cursor:pointer;\" onmouseover=\"this.style.textDecoration = 'underline';\" onmouseout=\"this.style.textDecoration = 'none';\" onclick=\"CheckColumn(document.getElementById('rankigTable1'), " + i + ");\">";
        }
        else 
        {
            str += "<td id=\"column" + i + "Checker\" class=\"RankingTable2UncheckedColumtTextStyle\" align=\"center\">";
        }
        str += colsNames[i];
        str += "</td>";
        str += "<td>";
        str += "<table>";
        str += "<tr>";
        str += "<td>";
        if (isSorting[i]) 
        {
            str += "<img id=\"column" + i + "ASCBut\" border=\"0px\" src=\"img/ASCInActive.gif\" style=\"cursor:pointer;\" onclick=\"Order(document.getElementById('rankigTable1'), " + i + ", true);\" />";
        }
        str += "</td>";
        str += "</tr>";
        str += "<tr>";
        str += "<td>";
        if (isSorting[i]) 
        {
            str += "<img id=\"column" + i + "DESCBut\" border=\"0px\" src=\"img/DESCInActive.gif\" style=\"cursor:pointer;\" onclick=\"Order(document.getElementById('rankigTable1'), " + i + ", false);\" />";
        }
        str += "</td>";
        str += "</tr>";
        str += "</table>";
        str += "</td>";
        str += "</tr>";
        str += "</table>";
        str += "</td>";    
    }
    str += "</tr>";

    for (var i = 0; i < dataRows.length; i++) 
    {
        if (((i + 1) % 2) == 1) 
        {
            str += "<tr class=\"RankingTable2DataOddRowStyle\">";
        }
        else 
        {
            str += "<tr class=\"RankingTable2DataEvenRowStyle\">";
        }
        for (var j = 0; j < dataRows[i].length; j++) 
        {
            if (j != 0) 
            {
                str += "<td class=\"RankingTable2DataCellStyle\">";
            }
            else 
            {
                str += "<td class=\"RankingTable2FirstDataCellStyle\">";
            }
            str += dataRows[i][j];
            str += "</td>";
        }
        str += "</tr>";
    }

    for (var i = 0; i < totalRows.length; i++) 
    {
        str += "<tr class=\"RankingTable2TotalRowStyle\">";
        for (var j = 0; j < totalRows[i].length; j++) 
        {
            if (j != 0) 
            {
                str += "<td class=\"RankingTable2TotalRowCellStyle\">";
            }
            else 
            {
                str += "<td class=\"RankingTable2TotalRowFirstCellStyle\">";
            }
            str += totalRows[i][j];
            str += "</td>";
        }
        str += "</tr>";
    }

    str += "</table>";
    cont.innerHTML = str;
    if (checkedColumn > 0) 
    {
        CheckColumn(document.getElementById('rankigTable1'), checkedColumn);
    }
    Order(document.getElementById('rankigTable1'), 0, true);
} 
