var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject() 
{
  var xmlHttp;
  try
  {
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {} // ignore potential error
    }
  }
  if (!xmlHttp)
    displayError("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}

function displayError($message)
{
    alert("Error encountered: \n" + $message);
}

function doCheck(torid)
{
  serverName = 'http://www.torrentreactor.net/';
  // only continue if xmlHttp isn't void
  if (xmlHttp)
  {
    // if we received non-null parameters, we add them to cache in the
    // form of the query string to be sent to the server for validation
    try
    {
      // continue only if the XMLHttpRequest object isn't busy
      // and the cache is not empty
      if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0))
      {
      	iconMore = document.getElementById('icon_more');
      	if(iconMore)
      		iconMore.style.display='none';
      	iconWait = document.getElementById('icon_wait');
      	if(iconWait)
      		iconWait.style.display='inline';
        xmlHttp.open("GET", serverName+"check.php?id="+torid, true);
        xmlHttp.onreadystatechange = handleRequestStateChange;
        xmlHttp.send(null);
      }
    }
    catch (e)
    {
      displayError(e.toString());
    }
  }
  return false;
}

function handleRequestStateChange() 
{
  if (xmlHttp.readyState == 4) 
  {
    if (xmlHttp.status == 200) 
    {
      try
      {
        readResponse();
      }
      catch(e)
 
      {
        displayError(e.toString());
      }
    }
    else
    {
      displayError(xmlHttp.statusText);
    }
  }
}

function readResponse()
{
  // retrieve the server's response 
  var response = xmlHttp.responseText;
 // alert(response);
  // server error?
  if (response.indexOf("ERRNO") >= 0 
      || response.indexOf("error:") >= 0
      || response.length == 0)
    throw(response.length == 0 ? "Server error." : response);
  // get response in XML format (assume the response is valid XML)
  responseXml = xmlHttp.responseXML;
  // get the document element
  xmlDoc = responseXml.documentElement;
  if (xmlDoc.getElementsByTagName("error") && xmlDoc.getElementsByTagName("error")[0])
  {
  	displayError(xmlDoc.getElementsByTagName("error")[0].firstChild.data);
	return;
  }
  if (xmlDoc.getElementsByTagName("seeds") && xmlDoc.getElementsByTagName("leechers"))
  {
  	seedsSpan = document.getElementById("seeds");
	leechersSpan = document.getElementById("leechers");
	imgMore = document.getElementById("icon_more");
	imgWait = document.getElementById("icon_wait");	
	if(imgMore)
		imgMore.style.display='inline';
	if(imgWait)
		imgWait.style.display='none';
	seedsSpan.innerHTML = xmlDoc.getElementsByTagName("seeds")[0].firstChild.data;
	leechersSpan.innerHTML = xmlDoc.getElementsByTagName("leechers")[0].firstChild.data;
  }else
  {
  	displayError('Error checking torrent!');
  }

}