//ex: argumentsString = "health=50&name=Rickard"
//method should be either POST or GET, POST when something is sent, GET if something is just requested
function AjaxCall(method, url, argumentsArray, functionToHandleResponseString, functionToHandleError)
{
/*
  try {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
  } catch (e) {
    alert("Permission UniversalBrowserRead denied.");
  }
*/
  var xmlHttp = null;
  try {
    // Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  } catch(e) {
    // Internet Explorer
    try {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); //Msxml2.XMLHTTP
    } catch(e) {
      try {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        alert("Your browser does not support AJAX!");
        return false;
      }
    }
  }
  if (!xmlHttp) {
    alert('Error, cannot create XMLHTTP instance in AjaxCall()');
	return false;
  }
  
  //if(xmlHttp.overrideMimeType) xmlHttp.overrideMimeType("text/xml");
  
  xmlHttp.onreadystatechange =
  function()
  {
    if(xmlHttp.readyState==4) {
      if(xmlHttp.status == 200) {
        if(1 == 1) {
          var XMLdoc = null;
		} else if(window.ActiveXObject){ // If IE Windows
		  //alert('ie fix');
          var XMLdoc = new ActiveXObject("Microsoft.XMLDOM");
          XMLdoc.loadXML(xmlHttp.responseText);
        } else {
          var XMLdoc = xmlHttp.responseXML;
        }

      if(functionToHandleResponseString != null)  functionToHandleResponseString(xmlHttp.responseText, XMLdoc);
      } else {
		if(functionToHandleError != null)  functionToHandleError(xmlHttp.status, xmlHttp.statusText, method, url, argumentsArray, functionToHandleResponseString, functionToHandleError);
      }
    }
  }
  
  var argumentsString = '';
  if(argumentsArray) {
    for(var i = 0; i < argumentsArray.length; i++) {
      if(i != 0)  argumentsString += '&';
      argumentsString += encodeURIComponent (argumentsArray[i][0])+'='+encodeURIComponent (argumentsArray[i][1]);
    }
  }
 // alert('ajaxcall '+argumentsString); //debug
	
  if(method == "POST") {
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
    xmlHttp.setRequestHeader('Content-length', argumentsString.length);
    xmlHttp.setRequestHeader('Connection', 'close');
	xmlHttp.setRequestHeader("Accept-Charset","UTF-8");
	xmlHttp.send(argumentsString);
  } else if(method == "GET") {
    if(argumentsString)  argumentsString = '?'+argumentsString;
    xmlHttp.open("GET", url+argumentsString, true);
    xmlHttp.send(null);
} else {
    alert("Error, wrong method argument given to the funtion AjaxCall");
	return false;
  }
  
  return xmlHttp;
}

