 



 

function CreateXmlHttp()
{
  var xmlhttp = false;
  if(window.XMLHttpRequest)
  {
    try
    {
      xmlhttp = new XMLHttpRequest();
    }
    catch(e)
    {
      xmlhttp = false;
    }
  }
  else if(window.ActiveXObject)
  {
    try
    {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP")
    }
    catch (e)
    {
      try
      {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
      }
      catch (e2)
      {
        xmlhttp = false
      }
    }
  }
  return xmlhttp;
}

function HttpRequest(url,target,script,xmlparserfunc,post)
{
  var xmlhttp = CreateXmlHttp();
  if(xmlhttp)
  {
    var get = false;
    var params = "";
    if(post)
    {
      var components = url.split('?');
      if(components.length > 1)
      {
        params = components[1];
        xmlhttp.open("POST", components[0], true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.setRequestHeader("Content-length", params.length);
        xmlhttp.setRequestHeader("Connection", "close");
      }
      else
      {
        get = true;
      }
    }
    else
    {
      get = true;
    }
    if(get)
    {
      var paramchar = '&';
      if(url.indexOf('?') == -1)
        paramchar = '?';
      xmlhttp.open("GET", url+paramchar+'timesessioncounter='+new Date(), true);
    }
    xmlhttp.onreadystatechange = function() {
      if(xmlhttp.readyState == 4)
      {
        if(target)
        {
          if(target.innerHTML)
          {
            target.innerHTML = xmlhttp.responseText;
          }
          else
          {
            target = document.getElementById(target);
            if(target)
            {
              if(target.value)
              {
                target.value = xmlhttp.responseText;
              }
              else
              {
                target.innerHTML = xmlhttp.responseText;
              }
            }
          }
        } 
        if(xmlparserfunc)
        {
          xmlparserfunc(xmlhttp.responseXML);
        }
        if(script)
          eval(script);
        xmlhttp.abort();
        delete xmlhttp;
      }
    }
    xmlhttp.send(params);
    return true;
  }
  else
  {
    return false;
  }
}

var gxmlhttp = false;
var gxmlqueue;
var gxmlactive = false;
var gxmlentry;
var gxmlindex = 0;
var gxmlskip = 'targetsomintefinns';
var gxmlskipindex = 1998877;

function XmlQEntryDone()
{
  if(gxmlqueue)
  {
    if(gxmlindex < gxmlqueue.length)
    {
      window.setTimeout('DoXmlQueue()',0);
    }
    else
    {
      gxmlindex = 0;
      gxmlqueue.length = 0;
      gxmlactive = false;
      gxmlskipindex = 1998877;
    }
  }
}

function XmlCallback()
{
  try 
  {
    if(gxmlhttp.readyState == 4)
    {
      var target = gxmlentry[1];
      if(target)
      {
        if(target.innerHTML)
        {
          target.innerHTML = gxmlhttp.responseText;
        }
        else
        {
          var tempTarget = document.getElementById(target);
          if(tempTarget)
          {
            tempTarget.innerHTML = gxmlhttp.responseText;
          }
        }
      }
      var xmlparserfunc = gxmlentry[4];
      if(xmlparserfunc)
      {
        xmlparserfunc(gxmlhttp.responseXML);
      }
      var script = gxmlentry[2];
      if(script)
        eval(script);
      XmlQEntryDone();
    }
  }
  catch(e)
  {
  }
}

function DoXmlQueue()
{
  gxmlactive = true;
  while(gxmlindex < gxmlqueue.length && gxmlhttp)
  {
    gxmlentry = gxmlqueue[gxmlindex++];
    {
      if(gxmlentry[0] == 'submit')
      {
        gxmlentry[1].submit();
        return;
      }
      else
      {
        var paramchar = '&';
        if(gxmlentry[0].indexOf('?') == -1)
          paramchar = '?';
        var url = gxmlentry[0]+paramchar+'timesessioncounter='+escape(new Date());
        if(gxmlentry[3])
        {
          url = gxmlentry[3](url);
        }
        gxmlhttp.open("GET", url, true);
        gxmlhttp.onreadystatechange = XmlCallback;
        gxmlhttp.send("");
        return;
      }
    }
  }
}

function trimQ(target)
{
  var tempq = new Array();
  var entries;
  var start = gxmlindex;
  if(start > 0)
  {
    start--;
  }
  try
  {
    for(i = start ; i < gxmlqueue.length; i++)
    {
      entries = gxmlqueue[i];
      if(entries[1] != target || i == gxmlindex - 1)
        tempq.push(gxmlqueue[i]);
    }
  }
  catch(err)
  {
   //alert('fel '+err);
  }
  gxmlqueue = tempq;
  gxmlindex -= start;
}
function QHttpRequest(url,target,script,urlprocessorfunc,xmlparserfunc)
{
  if(!gxmlhttp)
  {
    gxmlhttp = CreateXmlHttp();
    gxmlqueue = new Array();
  }
  var entry = new Array();
  entry[0] = url;
  entry[1] = target;
  entry[2] = script;
  entry[3] = urlprocessorfunc;
  entry[4] = xmlparserfunc;
  gxmlqueue[gxmlqueue.length] = entry;
  if(!gxmlactive)
  {
    DoXmlQueue();
  }
}

function QAbortCurrentRequest()
{
  if(gxmlhttp)
  {
    XmlQEntryDone();
    //gxmlhttp.abort();
  }
}

function QFormSubmit(form)
{
  QHttpRequest('submit',form);
}

