﻿

function ajaxGet(callback, url, xmlmode, arg) {

  var http_request = initializeAjax(xmlmode);
  
  if (callback)
    http_request.onreadystatechange = function() { callback(http_request, arg); };
    
  var uncacheURL = '';
  if (url.indexOf('?') > -1 ) {
    uncacheURL = url + '&' + Math.random();
  } else {
    uncacheURL = url + '?' + Math.random();
  }
  http_request.open('GET', uncacheURL, true);
  http_request.setRequestHeader('If-Modified-Since', 'Wed, 15 Nov 1995 00:00:00 GMT');
  http_request.setRequestHeader("Content-type", "application/xml");
  http_request.send(" ");
}

function ajaxPost(callback, url, parameters, xmlmode, arg) {
  
  var http_request = initializeAjax(xmlmode);

  if (callback)
    http_request.onreadystatechange = function() { callback(http_request, arg); };
    
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}





function initializeAjax(xmlmode) {

  var httpreq = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    httpreq = new XMLHttpRequest();
    if (xmlmode==true && httpreq.overrideMimeType) {
      httpreq.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) { // IE
    try {
      httpreq = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        httpreq = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }

  return httpreq;
}

/*
  getInnerText function courtesy of Martin Honnen
  http://www.thescripts.com/forum/threadedpost582930.html
*/
function GetInnerText (node) {
  if (typeof node.textContent != 'undefined')
  {
    return node.textContent;
  }
  else if (typeof node.innerText != 'undefined')
  {
    return node.innerText;
  }
  else if (typeof node.text != 'undefined')
  {
    return node.text;
  }
  else
  {
    switch (node.nodeType)
    {
      case 3:
      case 4:
        return node.nodeValue;
        break;
      case 1:
      case 11:
        var innerText = '';
        for (var i = 0; i < node.childNodes.length; i++)
        {
          innerText += GetInnerText(node.childNodes[i]);
        }
        return innerText;
        break;
      default:
        return '';
    }
  }
} 
function _GetInnerText(node)
{
	 return (node.textContent || node.innerText || node.text) ;
}
