function getXMLHTTPRequest()
{
  try
  {
    req = new XMLHttpRequest();
  }
  catch(err1)
  {
    try
    {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (err2)
    {
      try
      {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (err3)
      {
        req = false;
      }
    }
  }

  return req;
}

var http = getXMLHTTPRequest();

function listProducts(category, target)
{
  var myurl = 'getModule.php?page=products&categoryID='+category;
  myRand = parseInt(Math.random()*999999999999999);
  var modurl = myurl+"&rand="+myRand;
  http.open("GET", modurl, true);

  http.onreadystatechange = function()
  {
    if (http.readyState == 4)
    {
      if(http.status == 200)
      {
        document.getElementById(target).innerHTML = http.responseText;
      }
    } else
    {
      document.getElementById(target).innerHTML = '<img src="anim.gif"> Loading';
    }
  }

  http.send(null);
}

function listFeatured(category, target)
{
  var myurl = 'getModule.php?page=products&featured=1&categoryID='+category;
  myRand = parseInt(Math.random()*999999999999999);
  var modurl = myurl+"&rand="+myRand;
  http.open("GET", modurl, true);

  http.onreadystatechange = function()
  {
    if (http.readyState == 4)
    {
      if(http.status == 200)
      {
        document.getElementById(target).innerHTML = http.responseText;
      }
    } else
    {
      document.getElementById(target).innerHTML = '<img src="anim.gif"> Loading';
    }
  }

  http.send(null);
}

function getProduct(product, target)
{
  var myurl = 'getModule.php?page=product&productID='+product;
  myRand = parseInt(Math.random()*999999999999999);
  var modurl = myurl+"&rand="+myRand;
  http.open("GET", modurl, true);
  http.onreadystatechange = function()
  {
    if (http.readyState == 4)
    {
      if(http.status == 200)
      {
        document.getElementById(target).innerHTML = http.responseText;
      }
    } else
    {
      document.getElementById(target).innerHTML = '<div align="center"><img src="anim.gif"> Loading</div>';
    }
  }

  http.send(null);
}

function getModule(module, target, vars)
{
  var vars_add = "";

  if (vars!=null)
  {
    var i = 0;
    for (i=0; i<vars.length; i++)
    {
      if (isArray(vars[i]))
      {
        vars_add += vars[i][0]+'='+vars[i][1]+'&';
      } else
      {
        vars_add += vars[i]+'='+document.getElementById(vars[i]).value+'&';
        document.getElementById(vars[i]).value = '';
      }
    }
  }


  var myurl = 'getModule.php?page='+module+'&'+vars_add;  
  myRand = parseInt(Math.random()*999999999999999);
  var modurl = myurl+"&rand="+myRand;
  http.open("GET", modurl, true);
  http.onreadystatechange = function()
  {
    if (http.readyState == 4)
    {
      if(http.status == 200)
      {
        document.getElementById(target).innerHTML = http.responseText;
      }
    } else
    {
      document.getElementById(target).innerHTML = '<div align="center"><img src="anim.gif"> Loading</div>';
    }
  }

  http.send(null);
}

function loadPage(page, target)
{
  var myurl = page+'.php';
  myRand = parseInt(Math.random()*999999999999999);
  var modurl = myurl+"?rand="+myRand;
  http.open("GET", modurl, true);
  http.onreadystatechange = function()
  {
    if (http.readyState == 4)
    {
      if(http.status == 200)
      {
        document.getElementById(target).innerHTML = http.responseText;
      } else
      if (http.status == 404)
      {
        document.getElementById(target).innerHTML = '<div align="center" style="color: #FF0000">This page is not available at the moment. Please try again later.</div>';
      }

    } else
    {
      document.getElementById(target).innerHTML = '<div align="center"><img src="anim.gif"> Loading</div>';
    }
  }

  http.send(null);
}

function isArray(obj)
{
if (obj.constructor.toString().indexOf("Array") == -1)
  return false; else
  return true;
}