simplexhr={
  data:0,
  doxhr:function(url){
    if(!document.getElementById || !document.createTextNode){return;}
    var request;
    try{
      request = new XMLHttpRequest();
    }catch(error){
      try{
        request = new ActiveXObject("Microsoft.XMLHTTP");
      }catch(error){
        return true;
      }
    }
    request.onreadystatechange=function(){
      if(request.readyState == 4){
        if (request.status && /200|304/.test(request.status))
        {
          simplexhr.retrieved(request);
        } else{
          simplexhr.failed(request);
        }
      }
    }
    request.open('get',url,true);
    request.setRequestHeader('If-Modified-Since','Wed, 05 Apr 2006 00:00:00 GMT');
    request.send(null);
    return false;
  },
  retrieved:function(requester){
   	simplexhr.data = eval('('+requester.responseText+')');
    tt_Init();
    return false;
  },
  failed:function(requester){
    alert('The XMLHttpRequest failed. Status: '+requester.status);
    return true;
  }
}

function windowLoad()
{
  simplexhr.doxhr('/includes/tiesjson.php?Id=' + Id);
  /*ReloadTables(); */
  //ResetBorders();
}

function ToolTipText(TieNo)
{
  var Tie = simplexhr.data.Ties[TieNo];
  var Tip = '';
  if (!Tie.Entrant1Name.length || !Tie.Entrant2Name.length)
  {
    return Tip;
  }
  var TieDate = Tie.Date;
  if (TieDate.length > 0)
  {
    TieDate = new Date(TieDate.substr(0,4), TieDate.substr(5,2)-1, TieDate.substr(8,2));
    Tip += TieDate.toLocaleDateString() + '<br />';
  }
  Tip += Tie.Entrant1Name;
  if (Tie.Entrant1Club.length)
  {
    Tip += ' (' + Tie.Entrant1Club + ')';
  }
  switch (Tie.Status)
  {
  case 'Won by 1':
    Tip += '<br /><em>beat</em>';
    break;
  case 'Won by 2':
    Tip += '<br /><em>lost to</em>';
    break;
  default:
    Tip += '<br /><em>v</em>';
    break;
  }
  Tip += '<br />' + Tie.Entrant2Name;
  if (Tie.Entrant2Club.length)
  {
    Tip += ' (' + Tie.Entrant2Club + ')';
  }
  if (Tie.Entrant1Score.length && Tie.Entrant2Score.length)
  {
    Tip += '<br />' + Tie.Entrant1Score + ' - ' + Tie.Entrant2Score;
  }
  else if (Tie.Entrant1Score.length)
  {
    Tip += '<br />' + Tie.Entrant1Score;
  }
  else if (Tie.Entrant2Score.length)
  {
    Tip += '<br />' + Tie.Entrant2Score;
  }
  if (Tie.Venue.length)
  {
    Tip += '<br /><em>at ' + Tie.Venue + '</em>';
  }
  return Tip;
}

/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/	
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

function ReloadTables()
{
  var i;
  var newDraw = new Object;
  var draws = getElementsByClassName('draw', 'table');
  for (i in draws)
  {
    newDraw = draws[i];
    draws[i].parentNode.replaceChild(newDraw, draws[i]);
  }
}

function ResetBorders()
{
  var i, j, k, tableRows, tableCells;
  var draws = getElementsByClassName('draw', 'table');
  var Solid = "solid black 1px";
  var Dashed = "dashed gray 1px";
  //alert(draws.length + " draws found");
  for (i = 0; i < draws.length; i++)
  {
    tableRows = draws[i].rows;
    //alert("Draw " + i + ": " + tableRows.length + " rows found");
    for (j = 0; j < tableRows.length; j++)
    {
      tableCells = tableRows[j].cells;
      //alert("Draw " + i + ", Row " + j + ": " + tableCells.length + " cells found");
      for (k = 0; k < tableCells.length; k++)
      {
        //alert("Draw " + i + ", Row " + j + ", Cell " + k + ": " + "Class " + tableCells[k].className);
        switch (tableCells[k].className)
        {
        case "drawround":
        case "drawwinner":
          tableCells[k].style.borderTop = Solid;
          tableCells[k].style.borderRight = Solid;
          tableCells[k].style.borderLeft = Solid;
          break;
        case "drawdate":
          tableCells[k].style.borderRight = Solid;
          tableCells[k].style.borderBottom = Solid;
          tableCells[k].style.borderLeft = Solid;
          break;
        case "drawnameodd":
          tableCells[k].style.borderTop = Solid;
          tableCells[k].style.borderBottom = Dashed;
          tableCells[k].style.borderLeft = Solid;
          break;
        case "drawnameeven":
          tableCells[k].style.borderTop = Dashed;
          tableCells[k].style.borderBottom = Solid;
          tableCells[k].style.borderLeft = Solid;
          break;
        case "drawscoreodd":
          tableCells[k].style.borderTop = Solid;
          tableCells[k].style.borderRight = Solid;
          tableCells[k].style.borderBottom = Dashed;
          break;
        case "drawscoreeven":
          tableCells[k].style.borderTop = Dashed;
          tableCells[k].style.borderRight = Solid;
          tableCells[k].style.borderBottom = Solid;
          break;
        case "drawhcapodd":
        case "drawclubodd":
          tableCells[k].style.borderTop = Solid;
          tableCells[k].style.borderBottom = Dashed;
          break;
        case "drawhcapeven":
        case "drawhclubeven":
          tableCells[k].style.borderTop = Dashed;
          tableCells[k].style.borderBottom = Solid;
          break;
        case "drawvenue":
          tableCells[k].style.borderTop = Solid;
          tableCells[k].style.borderRight = Solid;
          tableCells[k].style.borderBottom = Solid;
          break;
        case "drawnamewinner":
        case "drawwinnername":
          tableCells[k].style.borderTop = Solid;
          tableCells[k].style.borderRight = Solid;
          tableCells[k].style.borderBottom = Solid;
          tableCells[k].style.borderLeft = Solid;
          break;
        } 
      }
    }
  }
}

window.onload = windowLoad;

