  /*
  Innovation Software Group
  www.innovation-software.com
  scripting:soulshiver
  
  USAGE
  <div id="contactForm" style="width:350px;height:350px;background-color:#ffffff;border:#666666 1px solid;overflow:hidden;">Please fill out this form.</div>
  < script type="text/javascript">
    function onSubmit(){
      var element=document.getElementById("contactForm");
      sendRequest(element,"name=pablo&status=illegal");
    };
  < /script>
  //
  Expects xml response from the server
  i.e
  <?xml version="1.0" encoding="UTF-8"?>
  <response type="(1 for OK,-1 for ERROR)">themessage</response>
  */
  var _request;
  var _requestElement;
  var _requestTimeout;
  function onRespCancel(){
      clearTimeout(_requestTimeout);
      if(_request)_request.abort();
      _requestTimeout=-1;
      onRespHandle(null);
  };
  function onRespHandle(xResponse){
      if(xResponse!=null){
        var msg;
        try{
            var xml=xResponse.responseXML;
            var es=xml.getElementsByTagName('response');
            if(es!=undefined || es.length>0){
        		  var type=es[0].getAttribute('type');
        		  msg=es[0].firstChild.data;
        		  if(type==1){_requestElement.innerHTML=msg;return;}
        		}else{
        		  msg="There was an error while unexpected response from the server.<br>Please try again later.";
        		}
      	}catch(exception){
      	   msg="There was an error while parsing the response.<br>Please try again later.";
        }
        var goBackC=document.createElement("a");
        goBackC.req=_requestElement;
        goBackC.onclick=function(){
            this.req.innerHTML=this.req._oldHTML;
    	      this.style.cursor="default";
    	      this.title=this.req._oldtitle;
    	      try{
              this.req.onReload();
            }catch(exception){}
	      }
	      goBackC.innerHTML="<input class=\"button\" type=\"button\" value=\"Back\">";
	      goBackC.style.cursor="pointer";
	      goBackC._oldtitle=goBackC.title;
    	  goBackC.title="Click here to go back to your previous state.";    
	      _requestElement._oldHTML=_requestElement.innerHTML;
	      _requestElement.innerHTML=msg+"<br><br>";
	      _requestElement.appendChild(goBackC);
      }else{
          if(_requestTimeout==-1)alert("The request timed out.\nPlease try again later.");
      }
  };
  function sendRequest(element,params){
      _requestElement=element;
      try{
          try{
              _request=new ActiveXObject("Microsoft.XMLHTTP");
          }catch(exception){
              _request=new XMLHttpRequest();
          }
          _requestTimeout=setTimeout("onRespCancel();",10000);
          _request.open('POST','isgcontact.php',true);
    	    _request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	    _request.onreadystatechange=function(){
    	    			if(_request.readyState==4){
    	    			    clearTimeout(_requestTimeout);
                    if(_request.status==200 || _request.status==0){}
                    onRespHandle(_request);
                }
          };
          _request.send(params);
          return true;
      }catch(exception){
          return false;
      }
  };
