

//
//
//
function ajax_call_server(url, vars)
{
	var xml = null;
 	
 	try
 	{
    	xml = new ActiveXObject("Microsoft.XMLHTTP");
	}
 	catch(exception)
 	{
    	xml = new XMLHttpRequest();
 	}

 	if(xml != null)
	{
		xml.open("GET", url + vars, false);
     	xml.send(null);
     	if (xml.status == 404) alert("Error 404: Incorrect url.");
     	return xml.responseText;
 	}
 	
 	alert("Your browser does not support XMLHTTP.");
 	return "";
}


//
//
//
function getRandomGame()
{
	postData('/includes/randomgame','randomgame',[],false);
}

var lastMode = 'alltime';
var lastModeX = 0;

//
//
//
function updateLeaderboard(argGame, argMode, argActive)
{
	if (argActive == 1)
	{
		postData('/includes/showleaderboard','leaderboard',['game|' + argGame,'mode|' + argMode],false);
		
		switch (argMode)
		{
			case 'today': offsetx = 0; break;
			case 'yesterday': offsetx = -40; break;
			case 'week': offsetx = -104; break;
			case 'month': offsetx = -166; break;
			case 'alltime': offsetx = -237; break;
		}

		document.getElementById('lbtab_' + lastMode).style.backgroundPosition = lastModeX + "px " + " 0px";
		document.getElementById('lbtab_' + argMode).style.backgroundPosition = offsetx + "px " + " -20px";
		
		lastMode = argMode;
		lastModeX = offsetx;
	}
	else
	{
		document.getElementById("leaderboard").innerHTML = "n/a";
	}
}


//
//
//
function addScore(argGame)
{
	var response = ajax_call_server("/includes/addscore", "?game=" + argGame + "&score=999");
 	document.getElementById("notice_text").innerHTML = response;
 	updateLeaderboard(argGame, "today", 1);
}


//
//
//
function scoreNotice(argParams)
{
	alert(' gameid: ' + argParams.gameID 
	+ ' boardid: ' + argParams.boardID 
	+ ' title: ' + argParams.title 
	+ ' sortorder: ' + argParams.sortOrder 
	+ ' scorelabel: ' + argParams.scoreLabel);
	
	//document.getElementById("notice_text").innerHTML = "great score!!";
}


//
//
//
function addFavorite(argGame)
{
	postData('/includes/addfavorite','notice_text',['game|' + argGame],false);
}


//
//
//
function deleteFavorite(argGame)
{
	postData('/includes/deletefavorite','notice_text',['game|' + argGame],false);
	postData('/includes/showfavorites','test',[],false);
}

//
//
//
function showFavorite(argGame)
{
	postData('/includes/showfavorites','test',[],false);
}

//
//
//
function postReview()
{
  	postData('/includes/postreview','notice_text',['reviewtext','reviewgame'],false);
  	postData('/includes/showreviews','minireviews',['reviewgame','page|1'],false);
 	document.getElementById("minireviewinput").innerHTML = "<h2>Thanks for your mini-review!</h2>";
}


//
//
//
function showReviews(argPage)
{
	postData('/includes/showreviews','minireviews',['reviewgame','page|' + argPage],false);
}


//
//
//
function addVerdict(argVerdict)
{
	postData('/includes/verdict',null,['reviewgame','verdict|' + argVerdict],true);
	//postData('/includes/verdict','notice_text',[argVerdict],false);
}


//
//
//
function showResults(argCategory, argPage)
{
	var response = ajax_call_server("/showresults", "?category=" + argCategory + "&page=" + argPage);
 	//alert(response);
 	document.getElementById("results").innerHTML = response;
}


//
//
//
function checkLogin()
{
	//postData('/checklogin','',['myusername','mypassword'],false);
}


//
//
//
function changeBoard(argID)
{
  	postData('/includes/leaderboardbig','board',['id|' + argID],false);
}


//
//
//
function setStyle(argValue)
{
	postData('/includes/setstyle',null,['style|' + argValue],false);
	window.location.reload();
}




//var poststr = "one=" + encodeURI(document.getElementById("one").value) +
 //                   "&two=" + encodeURI(document.getElementById("two").value);


//
//
//

var http_request = false;
var my_target;
var my_eval;
var my_callback;

function postData(url, argTarget, argParams, argEval)
{
	//alert(argParams);
		
      http_request = false;
      my_target = argTarget;
      my_eval = argEval;
           
      var parameters = '';
            
      for (var i = 0; i < argParams.length; i ++)
      {
      	  var splitstring = argParams[i].split('|');
      	  	  
      	  if (i > 0) parameters += '&';
      	  
      	  if (splitstring.length == 1) parameters += (argParams[i] + '=' + encodeURI(document.getElementById(argParams[i]).value));
      	  if (splitstring.length == 2) parameters += (splitstring[0] + '=' + encodeURI(splitstring[1]));
      }  
        
      //alert(parameters);
      
      if (window.XMLHttpRequest) // Mozilla, Safari,...
      {
         http_request = new XMLHttpRequest();
         
         if (http_request.overrideMimeType)
         {
         	http_request.overrideMimeType('text/html');
         }
      }
      else if (window.ActiveXObject) // IE
      {
         try
         {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         }
         catch (e)
         {
            try
            {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
         }
      }
      
      if (!http_request)
      {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
            
      //http_request.onreadystatechange = alertContents;
      http_request.open('POST', url + '.php', false); // true = async
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
      
      if (http_request.readyState == 4)
      {
         if (http_request.status == 200)
         {
            result = http_request.responseText;
            //alert(result);
                        
            if (my_eval && my_target != null) document.getElementById(my_target).innerHTML = eval(result);
            if (my_eval && my_target == null) eval(result);
            if (!my_eval && my_target != null) document.getElementById(my_target).innerHTML = result;
         }
         else
         {
            alert('There was a problem with the request.');
         }
      }
}

function alertContents()
{
}


//
//
//
function mouseHandler(argID, argState)
{
	if (argID == lockedtab) return; // active, so don't hilite
	
	var menu = document.getElementById("menu_" + argID);

	if  (argState == 0)
	{
		menu.style.backgroundImage = ["url('/img/strip menubar.png')"];
	}
	
	if  (argState == 1)
	{
		menu.style.backgroundImage = ["url('/img/theme" + style + "/strip menubar one.png')"];
	}	
}


//
//
//
function limitText()
{
	var myLimit = 180;
	var myTextField = document.getElementById('reviewtext');
	var myCounter = document.getElementById('counter');
			
	if (myTextField.value.length > myLimit)
	{
		myTextField.value = myTextField.value.substring(0, myLimit);
	}
	else
	{
		myCounter.innerHTML = myLimit - myTextField.value.length;
	}
}
