 /******** LIVE SUBMIT FORM  CONTRUCTOR. ********/
LiveSubmit = function () {
	// member variables
	this.http_request = false;	
	this.url = "";
	this.parameter = "";
	this.error = false;
	this.errorMessage = "";
	this.result = "";
    if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
         this.http_request = new XMLHttpRequest();
         if (this.http_request.overrideMimeType) {
            this.http_request.overrideMimeType('text/xml');
         }
    } else if (window.ActiveXObject) { // IE
         try {
            this.http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               this.http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!this.http_request) {
		  this.error = true;
		  this.errorMessage = "Cannot create XMLHTTP instance";
      }	
};
/* LiveSubmit POST. 
      var parameters = "mytextarea1=" + encodeURI( document.getElementById("mytextarea1").value ) +
                    "&mytextarea2=" + encodeURI( document.getElementById("mytextarea2").value );
*/
LiveSubmit.prototype.POST = function (url,parameters,runResponseFunc,resultType)
{
 if(!resultType) resultType = "XML";
 if(!runResponseFunc) runResponseFunc = function () {};
 this.http_request.open('POST', url, true);
 this.http_request.onreadystatechange = runResponseFunc; 
 this.http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 this.http_request.setRequestHeader("Content-length", parameters.length);
 this.http_request.setRequestHeader("Connection", "close");
 this.http_request.send(parameters);
};
/* LiveSubmit GET */
LiveSubmit.prototype.GET = function (url,runResponseFunc)
{
	if(!runResponseFunc) runResponseFunc = function () {};	
	this.http_request.open('GET', url, true);
    this.http_request.onreadystatechange =	runResponseFunc;
    this.http_request.send(null);
};
 /* LiveSubmit Response State Change */
/* Functions to handle browser incompatibilites */
LiveSubmit.eventElement = function (event) 
{
  if(isMoz)
  {
    return event.currentTarget;
  }
  else
  {
    return event.srcElement;
  }
};

LiveSubmit.addKeyListener = function (element, listener) 
{
  if (isSafari)
    element.addEventListener("keydown",listener,false);
  else if (isMoz)
    element.addEventListener("keypress",listener,false);
  else
    element.attachEvent("onkeydown",listener);
};
LiveSubmit.addListener = function (element, type, listener) 
{
  if(element.addEventListener)
  {
    element.addEventListener(type, listener, false);
  }
  else
  {
    element.attachEvent('on' + type, listener);
  }
};
LiveSubmit.removeListener = function (element, type, listener) 
{
  if(element.removeEventListener)
  {
    element.removeEventListener(type, listener, false);
  }
  else
  {
    element.detachEvent('on' + type, listener);
  }
};
/* Functions to handle browser incompatibilites */
if (navigator.userAgent.indexOf("Safari") > 0)
{
  isSafari = true;
  isMoz = false;
  isIE = false;
}
else if (navigator.product == "Gecko")
{
  isSafari = false;
  isMoz = true;
  isIE = false;
}
else
{
  isSafari = false;
  isMoz = false;
  isIE = true;
}
function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }

