// Ajax framework (rudimentary) for v5 customer UI ajax.
// shana

// ajaxTimeStamp parameter is to avoid browser caching

// cross-browser Http Request Object
function getAjaxXMLHttpRequestObject(){

  var XMLHttpRequestObject = false;
  try {
    XMLHttpRequestObject = new ActiveXObject("MSXML2.XMLHTTP");
  }
  catch (exception1){
    try {
       XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(exception2){
       XMLHttpRequestObject = false;
    }
  }

  if(!XMLHttpRequestObject && window.XMLHttpRequest){
    XMLHttpRequestObject = new XMLHttpRequest();
  }

  return XMLHttpRequestObject;
}

function setAjaxPostNoResponseFunction(reqObj, url, paramStr){

  var tmpStr = (paramStr == "")? "ajaxTimeStamp=" : "&ajaxTimeStamp=";
  tmpStr += new Date().getTime();
  paramStr += tmpStr;
  if(reqObj){
    reqObj.open("POST", url);
    reqObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 
    reqObj.onreadystatechange = function () {
      if(reqObj.readyState == 4 && reqObj.status == 200) {
         ; // do nothing with response - if any
      }
    }
    reqObj.send(paramStr);
  }
}

function setAjaxGetNoResponseFunction(reqObj, url, paramStr){

  var tmpStr = (paramStr == "")? "ajaxTimeStamp=" : "&ajaxTimeStamp=";
  tmpStr += new Date().getTime();
  paramStr += tmpStr;

  url += "?" + paramStr
  if(reqObj){
    reqObj.open("GET", url);
    reqObj.onreadystatechange = function () {
      if(reqObj.readyState == 4 && reqObj.status == 200) {
         ; // do nothing with response - if any
      }
    }
    reqObj.send(null);
  }
}

function setAjaxPostTextFunction(reqObj, target_id, url, paramStr){  // uuencode paramStr ??

  var tmpStr = (paramStr == "")? "ajaxTimeStamp=" : "&ajaxTimeStamp=";
  tmpStr += new Date().getTime();
  paramStr += tmpStr;
  if(reqObj){
     reqObj.open("POST", url);
     reqObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 
     reqObj.onreadystatechange = function () {
       if(reqObj.readyState == 4 && reqObj.status == 200) {
         var tmpObj = document.getElementById(target_id);
         if(tmpObj){
            tmpObj.innerHTML = reqObj.responseText;
         }
       }
     }
     reqObj.send(paramStr);
  }
}

// This function does not allow for parameters. I don't want to
// update it and break existing calls to it. -MK 2006.12.12
function setAjaxGetTextFunction(reqObj, target_id, url) {
 
  url += "?ajaxTimeStamp=" + new Date().getTime();
  if(reqObj){
    reqObj.open("GET", url);
    reqObj.onreadystatechange = function () {
      if(reqObj.readyState == 4 && reqObj.status == 200){
        var tmpObj = document.getElementById(target_id);
        if(tmpObj){
           tmpObj.innerHTML = reqObj.responseText;
        }
      } 
    }
    reqObj.send(null);
  }
}

