﻿/// <reference path="..\global\globals.js" />
/// <reference path="loadEvents.js" />
/// <reference path="..\global\paging.js" />

Page.Ajax.Handlers.UpdateUsersTable = function(t)
    {
        Page.Soap.Verify(t);
        // Retrieve details     
        Page.Data.offset = t.PageOffset;
        Page.Data.totalEntities = t.TotalEntities;
        Page.Data.orientation = t.PageOrder;
        Page.Data.order =  t.PageOrderSubject;
        Page.Search.Searching = t.IsSearch.IsSearch == "true" ? true : false;
        if(t.IsSearch.SearchText != null) Page.Search.Keywords = t.IsSearch.SearchText;

        Page.Pagination.Data.CurrentPage = (t.PageOffset/Page.Data.limit);
       
        if(Math.round(Page.Pagination.Data.CurrentPage)<Page.Pagination.Data.CurrentPage)
        {
            Page.Pagination.Data.CurrentPage = Math.round(Page.Pagination.Data.CurrentPage);
        }else{
            Page.Pagination.Data.CurrentPage = Math.round(Page.Pagination.Data.CurrentPage)+1;
        }
        
        if(Page.teamAlias)
        {
            window.changeTitle(Page.teamAlias + " > Page " + Page.Pagination.Data.CurrentPage + " > Contributor List");
        }else{
            window.changeTitle("Page " + Page.Pagination.Data.CurrentPage + " > Contributor List");
        }
         if(Page.Search.Searching) $("headerSpanSearch").innerHTML = "Found " + Page.Data.totalEntities + " result(s). You searched for <i>&#147;" + Page.Search.Keywords.ToASCII() + "&#148;</i>"; 
        
        // Get data holder
        var tableBody = Page.Data.dataTable;
        tableBody.ClearChildren();

         var alt = 1;
         for (var i = 0; i < t.Users.length; i++)
         {
	        // Create row element
	        var row = document.createElement('tr');
	        tableBody.appendChild(row);
        	
    	    // Build up an array of elements
    	    var columns = new Array().PopulateWithObjects(11,"td");
    	    
            for(colNum = 0; colNum < columns.length; colNum++) row.appendChild(columns[colNum]);
           
  	
	        
            /* ############################### COMPARE */
            var inputs = new Array().PopulateWithObjects(1,"input");
            inputs[0].type = "checkbox";
            inputs[1].type = "hidden";
	        inputs[1].value =  "usr" + ":" + t.Users[i].TeamId + ":" + t.Users[i].Alias;
	        for(var n=0;n<inputs.length;n++) columns[0].appendChild(inputs[n]);
            /* ################################ END COMPARE */
            
            
            columns[1].innerHTML = (Page.Data.offset + i + 1);
            columns[2].innerHTML = t.Users[i].Rank;
            columns[3].innerHTML = t.Users[i].RankOverall;

            if (t.Users[i].Rank - t.Users[i].RankLastWeek != 0)
            {
                columns[4].appendChild(isHigher(t.Users[i].Rank - t.Users[i].RankLastWeek));
                columns[4].innerHTML += t.Users[i].Rank - t.Users[i].RankLastWeek;
            }
            if (t.Users[i].Rank - t.Users[i].RankLastMonth != 0)
            {
                columns[5].appendChild(isHigher(t.Users[i].Rank-t.Users[i].RankLastMonth));
                columns[5].innerHTML += t.Users[i].Rank - t.Users[i].RankLastMonth;	        
            }
            // Rank
	        columns[6].innerHTML = "<a href=\"userDetails.aspx?alias="+escape(t.Users[i].Alias)+"&amp;teamId="+t.Users[i].TeamId+"\">" + t.Users[i].Alias + "</a>";
	        if(t.Users[i].LastUpdate>0) columns[7].innerHTML = t.Users[i].LastUpdate;
	        if(t.Users[i].RollingDay>0) columns[8].innerHTML =  t.Users[i].RollingDay; 
	        if(t.Users[i].RollingWeek>0) columns[9].innerHTML =  t.Users[i].RollingWeek; 
	        if(t.Users[i].Points>0) columns[10].innerHTML = t.Users[i].Points;
	        if(t.Users[i].Wu>0) columns[11].innerHTML = t.Users[i].Wu;

           // Style
	        columns[6].className = "aLeft";

    	    columns[0].className =  "score" + Page.Colours.GetColourName(Page.Colours.Users,t.Users[i].RollingWeek);
            // Does prettyness
            row.className += "alt" + alt;
    		
            // little if
            if(alt==1){	  alt = 2;	 }else{	 alt = 1;  }    
        }
        
        // Generate numbers
        Page.Pagination.Build.PageNumbers();
        Page.Comparison.Events.AttachComparisonClickEvents();

        // Stop loading
       Page.Ajax.Dequeue();
    };