function swapImgRestore() { 
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function preloadImages() { 
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { 
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function swapImage() { 
  var i,j=0,x,a=swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function swap(){
	if (document.images){
		for (var x=0;
			x<swap.arguments.length;
			x+=2) {
			document[swap.arguments[x]].src = eval(swap.arguments[x+1] + ".src");
		}
	}
}

function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

// To cover IE 5.0's lack of the push method
Array.prototype.push = function(value) {
  this[this.length] = value;
}

function show_hide(obj) {
	var elm = document.getElementById(obj);
	
	var myObjColl = getElementsByClassName('stats', 'tr')
	for (var i = 0, j = myObjColl.length; i < j; i++) {
	   if(myObjColl[i] != elm)
	   myObjColl[i].style.display = 'none'
	}
	var myObjColl = getElementsByClassName('results', 'tr')
	for (var i = 0, j = myObjColl.length; i < j; i++) {
	   if(myObjColl[i] != elm)
	   myObjColl[i].style.display = 'none'
	}
	
	
	
	if(elm.style.display == 'none' || elm.style.display == '') {
		if(navigator.appName == "Microsoft Internet Explorer")
			elm.style.display = 'inline'
		else
			elm.style.display = 'table-row'
	}
	else
		elm.style.display = 'none'
	
	
}

function hide_all() {
	
	var myObjColl = getElementsByClassName('stats', 'tr')
	for (var i = 0, j = myObjColl.length; i < j; i++) {
	   myObjColl[i].style.display = 'none'
	}
	var myObjColl = getElementsByClassName('results', 'tr')
	for (var i = 0, j = myObjColl.length; i < j; i++) {
	   myObjColl[i].style.display = 'none'
	}
	
}

function do_archive (uri) {
	y = document.getElementById('archive').year_of_competition
	document.location.href = uri + y.options[y.selectedIndex].value + '/';
}


/* AJAX Stuff here */

var XMLHttpRequestObject = new Array();

function GetResults(game_id, language, div_id)
{
	if (XMLHttpRequestObject == null)
	{
		XMLHttpRequestObject = new Array();
	}
	
	if(XMLHttpRequestObject[game_id] != null)
	{
		return;
	}
	
	var requestObject = GetXMLHttpRequest();
	if (requestObject)
	{
		XMLHttpRequestObject[game_id] = new Object();
		XMLHttpRequestObject[game_id].requestObject = requestObject;
		
		requestObject.onreadystatechange = new Function ("OnGetResultsProcess('" + game_id + "', '" + div_id + "')");
		
		var params = "game_id=" + game_id + "&language=" + language; 
		
		var url = "/get_goals.php?" + params;
		
		requestObject.open("GET", url, true);

		requestObject.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded; charset=UTF-8" );
		requestObject.send("");
		
		var divContainer = document.getElementById('td_' + div_id);
		if (divContainer)
		{
			divContainer.innerHTML = '<div align="center"><img src="/images/loading.gif" style="margin: 10px" /></div>';
		}
	}
}

function GetStats(game_id, language, div_id)
{
	if (XMLHttpRequestObject == null)
	{
		XMLHttpRequestObject = new Array();
	}
	
	if(XMLHttpRequestObject[game_id] != null)
	{
		return;
	}
	
	var requestObject = GetXMLHttpRequest();
	if (requestObject)
	{
		XMLHttpRequestObject[game_id] = new Object();
		XMLHttpRequestObject[game_id].requestObject = requestObject;
		
		requestObject.onreadystatechange = new Function ("OnGetResultsProcess('" + game_id + "', '" + div_id + "')");
		
		var params = "game_id=" + game_id + "&language=" + language; 
		
		var url = "/get_stats.php?" + params;
		
		requestObject.open("GET", url, true);

		requestObject.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded; charset=UTF-8" );
		requestObject.send("");
		
		var divContainer = document.getElementById('td_' + div_id);
		if (divContainer)
		{
			divContainer.innerHTML = '<div align="center"><img src="/images/loading.gif" style="margin: 10px" /></div>';
		}
	}
}


function OnGetResultsProcess(game_id, div_id)
{
	if (XMLHttpRequestObject[game_id] != null &&
		XMLHttpRequestObject[game_id].requestObject &&
		XMLHttpRequestObject[game_id].requestObject.readyState == 4) 
	{
		if (XMLHttpRequestObject[game_id].requestObject.status == 200) 
		{
			var result = XMLHttpRequestObject[game_id].requestObject.responseText;
			if (result == "busy")
			{
				alert("The server is busy. Try again.");
				XMLHttpRequestObject[game_id] = null;
			}
			else
			{
				var divContainer = document.getElementById('td_' + div_id);
				if (divContainer)
				{
					divContainer.innerHTML = result;
				}
				XMLHttpRequestObject[game_id] = null;
			}
		}
		else
		{
			alert("Request failed: " + XMLHttpRequestObject[game_id].requestObject.status + " status returned");
		}
	}
}

function GetXMLHttpRequest() 
{
	var object = null;
	
	if (window.ActiveXObject) 
	{
		try
		{
			object = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
		}
		
		if (object == null)
		{
			try
			{
				object = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
			}
		}
	}
	else if (window.XMLHttpRequest) 
	{
		object = new XMLHttpRequest();
	} 
	
	if (object == null)
	{
		alert("Your browser does not support AJAX");
	}
	
	return object;
}

function view_more(more_link, more_content) {
  document.getElementById(more_link).style.display = 'none'
  document.getElementById(more_content).style.display = 'block'
}

function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}