﻿var pxReq = new prRequest();

function prRequest() {}

prRequest.prototype.PREFIX_CONTENT_TYPE = "Content-Type";
prRequest.prototype.FORM_URLENCODED = "application/x-www-form-urlencoded";

prRequest.prototype.newRequest = function(handlerStateChange) {
  var Result = null;
  try {
     Result = new XMLHttpRequest();
  } 
  catch (trymicrosoft) {
    try {
      Result = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (othermicrosoft) {
      try {
        Result = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch (failed) { return null; }
    }
  }

  this.initRequest(Result, handlerStateChange)
  return Result;
}

prRequest.prototype.setXmlHeader = function(request) {
  request.setRequestHeader(this.PREFIX_CONTENT_TYPE, this.FORM_URLENCODED);
}

prRequest.prototype.initRequest = function(request, handlerStateChange) {
    if (!request) return;
    request.onreadystatechange = handlerStateChange;
}

prRequest.prototype.post = function(request, url, synk) {
	if (!synk) request.open("POST", url, true);
	else request.open("POST", url, false);
    this.setXmlHeader(request);
}

prRequest.prototype.state = function(request) {
    if (request.readyState != 4) return 1;
    if (request.status != 200) return -1;    
    return 0;
}