// Author: Josh Rosenbaum

function IGAjaxRequest(url, params) {
  var xmlhttp;

  if(!params){
    return;
  }

  if (!params['method']){
    return;
  }

  var method = params['method'];
  var vars = params['parameters'];
  var finishedFunction = params['onComplete'];

  try {
    xmlhttp = new XMLHttpRequest();
  }catch(e){
    try{
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){
      try{
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      }catch(e){
	xmlhttp = null;
      }
    }
  }

  if (xmlhttp == null){
    return null;
  }

  method = method.toUpperCase();

  this.transport = xmlhttp;

  try {
    if (method == "GET"){
      xmlhttp.open(method, url + "?" + vars, true);
      vars = null;
    }else{
      xmlhttp.open(method, url, true);
      xmlhttp.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
      xmlhttp.setRequestHeader("Content-Type",
			       "application/x-www-form-urlencoded");
    }
    xmlhttp.onreadystatechange = function(){
      if (xmlhttp.readyState == 4) {
	finishedFunction(xmlhttp);
      }
    };
    xmlhttp.send(vars);

  }catch(e){
    return null;
  }

  return this;
}
