﻿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;
        if (leaderboardType=="TopBuddies")
        {
            leaderboardSize = 10;
            if (totalItems > 0)
            {
                document.getElementById("sTotalBuddies").style.display = "none"; 
            }
            else 
            {
                document.getElementById("sTotalBuddies").style.display = "block";
            }
        }

        if (jsonResult.TournamentEnded) {
            $('.lbUserAvatar').hide();
            $('.lbLastTradedSymbol').hide();
        }
        //flashTable(oldHtmlLeaderboard, $get("dResult")); 
    }   
    catch(ex){}
}

function OnErrorLB(e)
{
   
}

function setRankType(_rankType)
{
    var aWeekly = $get("aWeekly");
    var aMonthly = $get("aMonthly");
    var aOverall = $get("aOverall");
    var aShowRankings = $get("aShowRankings");
    
    if (aWeekly && aMonthly) 
    {
        aWeekly.className = '';
        aMonthly.className = '';
    }

    if (aOverall) {
        aOverall.className = '';
    }

    $get("a" + _rankType).className = 'current';
    rankType = _rankType;

    aShowRankings.href = '/Private/Trading/Rankings.aspx?t=' + rankType + '&type=' + leaderboardType;
    
    getLeaderboard();
}

function setLeaderboard(type) {
    leaderboardType = type;
    
    // set active tab on leaderboard
    document.getElementById("aTopTraders").className = "";
    document.getElementById("aTopBuddies").className = "";

    var legend = document.getElementById("lbLegend");

    if (type=="TopBuddies")
    {
        leaderboardSize = 10;
        if (totalItems > 0)
        {
            document.getElementById("sTotalBuddies").style.display = "none"; 
        }
        else 
        {
            document.getElementById("sTotalBuddies").style.display = "block";
        }
    }
    else
    {
        document.getElementById("sTotalBuddies").style.display = "none"; 
        leaderboardSize = 10;
    }
    
    getLeaderboard();
    document.getElementById("a" + type).className = "current";
    var aShowRankings = $get("aShowRankings");
    aShowRankings.href = '/Private/Trading/Rankings.aspx?t=' + rankType + '&type=' + type;
}




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";
    }
}
