var difHttp;

var myMap, myOffset, myLayout, myDifficulty;

var myOffset=0, myUser="";

// Recent

function getRecentScores()
{
	var m = document.getElementById('map');
	var d = document.getElementById('difficulty');
	
	startScoreDownload(d.value, m.value, myLayout, 0);
}

function startRecentScoreDownload(off)
{	
	if (off < 0)
	{
		off = 0;
	}
	else if ( (off % 15) != 0)
	{
		off -= (off % 15);
	}
	
	myOffset = off;
	
	loginHttp = getXMLHTTPRequest();
	var u = "ajax.php?action=newScores&user=" + myUser + "&offset=" + myOffset;
	
	queryAJAX(loginHttp, u, getRecentScoreRequest);
}

function startRecentScoreDownloadWithUser(off,user)
{	
	if (off < 0)
	{
		off = 0;
	}
	else if ( (off % 15) != 0)
	{
		off -= (off % 15);
	}
	
	myOffset = off;
	myUser = user;
	loginHttp = getXMLHTTPRequest();
	queryAJAX(loginHttp, "ajax.php?action=newScores&user=" + myUser + "&offset=" + off, getRecentScoreRequest);
}

function getRecentScoreRequest()
{
	var dest = document.getElementById('scoreArea');
	
	if (loginHttp.readyState == 4)
    {
        if(loginHttp.status == 200)
        {
            var response = loginHttp.responseXML;
            
            var positions = response.getElementsByTagName("position");
            var names = response.getElementsByTagName("name");
            var difficultys = response.getElementsByTagName("difficulty");
						var levels = response.getElementsByTagName("level");
						var scores = response.getElementsByTagName("score");
            var layouts = response.getElementsByTagName("layout");
            var lNames = response.getElementsByTagName("lName");
            
            var txt = "<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">";
            
            txt += "<tr style=\"background-color:#DBDBDB\">";
          		
          		txt += "<th>Layout</th>";
          		txt += "<th>Name</th>";
          		txt += "<th>Difficulty</th>";
          		txt += "<th>Wave</th>";
          		txt += "<th>Score</th>";
          		
          		txt += "</tr>";
            
            for (var x = 0; x < positions.length; x++)
            {
            	txt += "<tr>";
          		
          		txt += "<td style=\"border-top:1px solid black;text-align:center\"><a href=\"layouts.php?layout="+layouts[x].childNodes[0].nodeValue+"\" title=\"view map\">"+ lNames[x].childNodes[0].nodeValue +"</a></td>";
          		txt += "<td style=\"border-top:1px solid black;text-align:center\"><a href=\"#\" onClick=\"javascript:startRecentScoreDownloadWithUser(0,'" + names[x].childNodes[0].nodeValue + "')\">"+ names[x].childNodes[0].nodeValue +"</td>";
          		var dif = difficultys[x].childNodes[0].nodeValue;
          		var dName = "Unknown";
          		switch (dif)
          		{
          			case '0':
          			dName = "Easy";
          			break;
          			case '1':
          			dName = "Normal";
          			break;
          			case '2':
          			dName = "Medium";
          			break;
          			case '3':
          			dName = "Hard";
          			break;
          			case '4':
          			dName = "Extreme";
          			break;
          		}
          		txt += "<td style=\"border-top:1px solid black\">"+ dName +"</td>";
          		
          		txt += "<td style=\"border-top:1px solid black\">";
          		
          		
          		txt +=  levels[x].childNodes[0].nodeValue;
          		if (levels[x].childNodes[0].nodeValue > 100)
          		{
          			txt += "<img src=\"images/score_warning.png\" title=\"This submission is incorrect, the max wave count is 100, for more info please check the forum\"/>";
          		}
          		txt += "</td>";
          	
          		txt += "<td style=\"border-top:1px solid black\">"+ scores[x].childNodes[0].nodeValue +"</td>";
          		
          		txt += "</tr>";
          	}
            
			txt += "</table>"
			
			txt += "Viewing results " + myOffset + "-" + (myOffset + positions.length) + " ";
			
			if (myOffset > 0)
			{
				txt += "(<a href=\"#\" onClick=\"javascript:startRecentScoreDownload("+(myOffset-15)+")\" title=\"Previous results\">Previous 15</a>)";
			}
			
			
			
			if (positions.length == 15)
			{
				txt += "(<a href=\"#\" onClick=\"javascript:startRecentScoreDownload("+(myOffset+15)+")\" title=\"Next results\">Next 15</a>)";
			}
			
            dest.innerHTML = txt;

			key = response;
        }
    }
    else
    {
    	dest.innerHTML = '<img title="Loading, please wait" src="http://www.mgatelabs.com/images/loader.gif"/>';
    }
}

// Single Layout

function getScore()
{
	var m = document.getElementById('map');
	var d = document.getElementById('difficulty');
	
	startScoreDownload(d.value, m.value, myLayout, 0);
}

function startScoreDownload(dif, map, lay, off)
{
	myMap = map;
	myOffset = off;
	myLayout = lay;
	myDifficulty = dif;
	
	loginHttp = getXMLHTTPRequest();
	queryAJAX(loginHttp, "ajax.php?action=getScores&difficulty="+dif+"&map="+map+"&layout="+lay+"&offset="+off, getScoreRequest);
}

function getScoreRequest()
{
	var dest = document.getElementById('scoreArea');
	
	if (loginHttp.readyState == 4)
    {
        if(loginHttp.status == 200)
        {
            var response = loginHttp.responseXML;
            
            var positions = response.getElementsByTagName("position");
            var names = response.getElementsByTagName("name");
            var difficultys = response.getElementsByTagName("difficulty");
						var levels = response.getElementsByTagName("level");
						var scores = response.getElementsByTagName("score");
            
            var txt = "<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">";
            
            txt += "<tr style=\"background-color:#DBDBDB\">";
          		
          		txt += "<th>Position</th>";
          		txt += "<th>Name</th>";
          		txt += "<th>Difficulty</th>";
          		txt += "<th>Waves</th>";
          		txt += "<th>Score</th>";
          		
          		txt += "</tr>";
            
            for (var x = 0; x < positions.length; x++)
            {
            	txt += "<tr>";
          		
          		txt += "<td style=\"border-top:1px solid black\">"+ positions[x].childNodes[0].nodeValue +"</td>";
          		txt += "<td style=\"border-top:1px solid black\">"+ names[x].childNodes[0].nodeValue +"</td>";
          		var dif = difficultys[x].childNodes[0].nodeValue;
          		var dName = "Unknown";
          		switch (dif)
          		{
          			case '0':
          			dName = "Easy";
          			break;
          			case '1':
          			dName = "Normal";
          			break;
          			case '2':
          			dName = "Medium";
          			break;
          			case '3':
          			dName = "Hard";
          			break;
          			case '4':
          			dName = "Extreme";
          			break;
          		}
          		txt += "<td style=\"border-top:1px solid black\">"+ dName +"</td>";
          		//txt += "<td style=\"border-top:1px solid black\">"+ levels[x].childNodes[0].nodeValue +"</td>";
          		
          		txt += "<td style=\"border-top:1px solid black\">";
          		txt +=  levels[x].childNodes[0].nodeValue;
          		if (levels[x].childNodes[0].nodeValue > 100)
          		{
          			txt += "<img src=\"images/score_warning.png\" title=\"This submission is incorrect, the max wave count is 100, for more info please check the forum\"/>";
          		}
          		txt += "</td>";
          		
          		txt += "<td style=\"border-top:1px solid black\">"+ scores[x].childNodes[0].nodeValue +"</td>";
          		
          		txt += "</tr>";
          	}
            
			
            dest.innerHTML = txt;

						key = response;
        }
    }
    else
    {
    	dest.innerHTML = '<img title="Loading, please wait" src="http://www.mgatelabs.com/images/loader.gif"/>';
    }
}
