var req;

var lastStaffStatus = 0;

function processReqChange()
{
  if (typeof req != 'object') return;

  // only if req shows "complete"
  if (req.readyState == 4)
  {
    // only if "OK"
    if (req.status == 200) {
        // ...processing statements go here...
    response = req.responseXML.documentElement;

    if (response.getElementsByTagName('callback'))
    {
      method = response.getElementsByTagName('callback')[0].firstChild.data;
    }

    eval(method + '(response)');
    } else {
//            alert("There was a problem retrieving the XML data:n" + req.statusText);
    }
    req.abort();
  }
}

function loadXMLDoc(url, onStateChangeFunc)
{
  onStateChangeFunc = onStateChangeFunc || 0;
  // branch for native XMLHttpRequest object
  if (window.XMLHttpRequest)
  {
    if (!req)
    {
      req = new XMLHttpRequest();
    }

    if (req.readyState == 0)
    {
      if (onStateChangeFunc != 0)
      {
        req.onreadystatechange = onStateChangeFunc; //processReqChange;
      }
      req.open("GET", url, true, "", "");
      req.send(null);
    }
  // branch for IE/Windows ActiveX version
  }
  else if (window.ActiveXObject)
  {
    if (!req)
    {
      req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (req)
    {
      if (req.readyState == 0)
      {
        if (onStateChangeFunc != 0)
        {
          req.onreadystatechange = onStateChangeFunc; //processReqChange;
        }
        req.open("GET", url, true, "", "");
        req.send();
      }
    }
  }
}

var supportStatusTimer = window.setTimeout("checkStaffStatusJS()",100);

function checkStaffStatusJS()
{
  url  = 'imXmlServices.php?method=checkSupportStatus&callback=callback_setSupportStatusSimple&noxml';
  loadXMLDoc(url, callback_setSupportStatus2);
  supportStatusTimer = window.setTimeout("checkStaffStatusJS()",5000);
//  alert("checking");
}

function callback_setSupportStatus2()
{
  if (typeof req != 'object') return;

  if (req.readyState == 4)
  {
    if (req.status == 200)
    {
      response = req.responseText;
      setSupportStatus(response);
    }
    req.abort();
  }
}

function callback_setSupportStatus(response)
{
  var result;
  if (response.getElementsByTagName('result'))
  {
    if (response.getElementsByTagName('info')[0].firstChild)
    {
      result = response.getElementsByTagName('info')[0].firstChild.data;
    }
    else
    {
      result = 0;
    }
    setSupportStatus(result);
  }
}


function setSupportStatus(status)
{
  if (document.getElementById('supportOnline').value != status)
  {
    document.getElementById('supportOnline').value = status;
    if (status == 1)
    {
      document.getElementById('speak').style.backgroundImage = "url(images/picExpert.gif)"; //online
    }
    else
    {
      document.getElementById('speak').style.backgroundImage = "url(images/picExpert.gif)"; //offline
    }
  }
}


