/**
Ajax functions
**/

/**
 synchronous (blocking)
**/ 
function getDataSync(url)
{

  var req = GetXmlHttpObject();
  req.open('GET', url, false); //set to false here to wait for the response
  req.send(null);
  return req.responseText;
}
//returns status of a file -- 404 if file does not exist
function FileStatus(url)
{
  var req = GetXmlHttpObject();
  req.open('GET', url, false); //set to false here to wait for the response
  req.send(null);
  return req.status;
}

//async data post
function postDataAsync(url, data, div, CallBack)
{
  var req = GetXmlHttpObject();
  if (req)
  {
    req.open('POST', url, true); //set to false here to wait for the response
    req.setRequestHeader("Content-type", "text/xml");
    req.setRequestHeader("Content-length", data.length);
    req.setRequestHeader("Connection", "close");
    req.send(data);
    req.onreadystatechange = function()
    {
      if (req.readyState == 4)
      {
        getId(div).innerHTML = req.responseText;
        eval(CallBack); 
      }
    }
  }
  
}

/**
async (non blocking)
**/    
function getDataAsync(url, div, CallBack)
{
  var req = GetXmlHttpObject();
  if (req)
  {
    req.open('GET', url, true);
    req.send(null);
    req.onreadystatechange = function()
    {
      if (req.readyState == 4)
      {
        getId(div).innerHTML = req.responseText;
        eval(CallBack); 
      }
    }
  }
} 



    var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0;
    var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0;
    var is_ie7 = (navigator.appVersion.indexOf("MSIE 7")!=-1) ? 1 : 0;
    var is_opera = ((navigator.userAgent.indexOf("Opera6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0;
    //netscape, safari, mozilla behave the same???
    var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0;

    function GetXmlHttpObject() {
        var objXmlHttp = null;    //Holds the local xmlHTTP object instance

        //Depending on the browser, try to create the xmlHttp object
        if (window.ActiveXObject){
            //The object to create depends on version of IE
            //If it isn't ie5, then default to the Msxml2.XMLHTTP object
            var strObjName = 'Microsoft.XMLHTTP'; //(is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP.5.0';
            
            //Attempt to create the object
            try{
                objXmlHttp = new ActiveXObject(strObjName);
                //objXmlHttp.onreadystatechange = handler;
            }
            catch(e){
            //Object creation errored
                alert('Old version of IE detected, this page may not behave as expected. Verify that active scripting and activeX controls are enabled');
                return;
            }
        }
        else if (is_opera){
            //Opera has some issues with xmlHttp object functionality
            alert('Opera detected. The page may not behave as expected. Use Firefox or Internet Explorer');
            return;
        }
        else{
            // Mozilla | Netscape | Safari
            objXmlHttp = new XMLHttpRequest();
            //objXmlHttp.onload = handler;
            //objXmlHttp.onerror = handler;
        }
        
        //Return the instantiated object
        return objXmlHttp;
    }
  