﻿var timeoutID = 0;
var oldHtmlLeaderboard;
var leaderboardType = "TopBuddies";
var rankType = "Weekly";
var leaderboardSize = 10;
var totalItems = 0;

function OnCompletedLB(jsonResult) {
    try {
        oldHtmlLeaderboard = $get("dResult").cloneNode(true); // save current html before retrieving new one
        $get("dResult").innerHTML = jsonResult.Html;
        totalItems = jsonResult.TotalRows;
        // setLeaderboard(leaderboardType);
        if (leaderboardType == "TopBuddies") {
            leaderboardSize = 10;
            if (totalItems > 0) {
                document.getElementById("sTotalBuddies").style.display = "none";
                document.getElementById("sTotalFoundBuddies").style.display = "block";
            }
            else {
                document.getElementById("sTotalFoundBuddies").style.display = "none";
                document.getElementById("sTotalBuddies").style.display = "block";
            }
        }
        flashTable(oldHtmlLeaderboard, $get("dResult"));
    }
    catch (ex) { }
}

function OnErrorLB(e) {

}

function setRankType(_rankType) {
    var aWeekly = $get("aWeekly");
    var aMonthly = $get("aMonthly");
    var aOverall = $get("aOverall");

    if (aWeekly && aMonthly) {
        aWeekly.className = '';
        aMonthly.className = '';
    }

    if (aOverall) {
        aOverall.className = '';
    }

    $get("a" + _rankType).className = 'active';

    rankType = _rankType;
    getLeaderboard();
}

function setLeaderboard(type) {
    leaderboardType = type;

    // set active tab on leaderboard
    document.getElementById("aTopTraders").className = "";
    document.getElementById("aTopBuddies").className = "";

    var topLinks = document.getElementById('topLinks');
    var legend = document.getElementById("lbLegend");

    if (type == "TopBuddies") {
        if (topLinks) topLinks.style.display = "block";
        if (legend) legend.style.display = "none";
        leaderboardSize = 10;
        document.getElementById("sTotalPlayers").style.display = "none";
        if (totalItems > 0) {
            document.getElementById("sTotalBuddies").style.display = "none";
            document.getElementById("sTotalFoundBuddies").style.display = "block";
        }
        else {
            document.getElementById("sTotalFoundBuddies").style.display = "none";
            document.getElementById("sTotalBuddies").style.display = "block";
        }
    }
    else {
        if (topLinks) topLinks.style.display = "none";
        if (legend) legend.style.display = "block";
        leaderboardSize = 10;
        document.getElementById("sTotalBuddies").style.display = "none";
        document.getElementById("sTotalFoundBuddies").style.display = "none";
        document.getElementById("sTotalPlayers").style.display = "block";
        //document.getElementById("aViewRankings").href = "/Private/Trading/Rankings.aspx?TournamentID=" + document.getElementById(tournamentSelected).value ;

        
    }

    getLeaderboard();
    document.getElementById("a" + type).className = "active";
}

//function getLeaderboard()
//{
//    try 
//    {
//        var t = document.getElementById(tournamentSelected);
//        NTRN.UI.WallStreetSurvivor.WebServices.LeaderboardService.GetLeaderboard(leaderboardType, leaderboardSize, t.value, rankType, OnCompletedLB, OnErrorLB);
//    }
//    catch(e) {}
//}




function formatPrices(divHtml) {
    var rows = divHtml.getElementsByTagName("tr");
    for (var x = 0; x < rows.length - 1; x++) {
        var rowId = rows[x].id;
        var userName = rowId.substring(2);
        var accountValue = document.getElementById("av_" + userName);
        accountValue.innerHTML = accountValue.innerHTML.replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,");
    }
}

// Compare previous data with current to find which symbol had a price change
function flashTable(oldHtml, newHtml, cellIndexToCompare) {
    try {
        if (oldHtml.innerHTML != '') {
            var oldRows = oldHtml.getElementsByTagName("tr");
            var newRows = newHtml.getElementsByTagName("tr");
            for (var i = 0; i < oldRows.length - 1; i++) {
                for (var x = 0; x < newRows.length - 1; x++) {
                    if (oldRows[i].id == newRows[x].id) {
                        // ie
                        var oldPrice, newPrice, oldImgObj, newImgObj;
                        if (navigator.appName == "Microsoft Internet Explorer") {
                            oldPrice = oldRows[i].childNodes[2].childNodes[5].innerHTML;
                            newPrice = newRows[x].childNodes[2].childNodes[5].innerHTML;
                            oldImgObj = oldRows[x].childNodes[2].childNodes[3].firstChild;
                            newImgObj = newRows[x].childNodes[2].childNodes[3].firstChild;
                        }
                        else // firefox
                        {
                            oldPrice = oldRows[i].childNodes[5].childNodes[7].innerHTML;
                            newPrice = newRows[x].childNodes[5].childNodes[7].innerHTML;
                            oldImgObj = oldRows[x].childNodes[5].childNodes[5].firstChild;
                            newImgObj = newRows[x].childNodes[5].childNodes[5].firstChild;
                        }
                        //alert('old: ' + parseFloat(oldPrice.replace(/[^0-9\.]/g,"")) + ' ---- ' + 'new: ' + parseFloat(newPrice.replace(/[^0-9\.]/g,"")));

                        if (parseFloat(oldPrice.replace(/[^0-9\.]/g, "")) > parseFloat(newPrice.replace(/[^0-9\.]/g, ""))) {
                            newImgObj.src = "/Images/red-arrow.gif";
                        }
                        else if (parseFloat(oldPrice.replace(/[^0-9\.]/g, "")) < parseFloat(newPrice.replace(/[^0-9\.]/g, ""))) {
                            newImgObj.src = "/Images/green-arrow.gif";
                        }
                        else {
                            newImgObj.src = oldImgObj.src;
                        }
                    }
                }
            }
        }
    }
    catch (e) { }

    //setTimeout("resetColors()", 2000);
}

// Reset colors by change className for each Price Cell
function resetColors() {
    var rows = $get("dResult").getElementsByTagName("tr");
    for (var i = 1; i < rows.length - 2; i++) {
        //rows[i].className = "bg-open-positions-alternate";
    }
}
