
function GenRegCode(cmd)
{

   var xmlHttpReq;

   xmlHttpReq = GetXMLHttpReqObject();
   if (xmlHttpReq == null)
   {
      alert ("Browser does not support HTTP Request");
      return;
   }

   var url = "../register.php";

   if (cmd == "POST") {
      xmlHttpReq.onreadystatechange = function() { ShowRecordChanged(xmlHttpReq); };
      xmlHttpReq.open("POST", url, true);
      xmlHttpReq.setRequestHeader('Content-type','application/x-www-form-urlencoded');

      var postCmd = "";

      var key;
      var val;
      for (i = 0; i < document.forms['genregcode'].elements.length; i++)
      {
         if (document.forms['genregcode'].elements[i].tagName == "INPUT")
         {
            key = document.forms['genregcode'].elements[i].id
            if (document.forms['genregcode'].elements[i].type == "checkbox")
               if (document.forms['genregcode'].elements[i].checked)
                  val = 1;
               else
                  val = 0;
            else
               val = document.forms['genregcode'].elements[i].value;
//            alert(key + "=" + val);
            if ((key == "PurchDate") || (key == "ContactDate"))
               val = formatDate(val);

            if (postCmd.length > 0)
               postCmd += "&";

            postCmd += key + "=" + val;
         }
      }

      xmlHttpReq.send(postCmd);
  }
}

function postData()
{
   if (valData()) {
      elem = document.getElementById( "Cmd" );
      elem.value = "Request"
      GenRegCode("POST");
   }
}

function valData()
{
   var elem;
   var valElem;
   var valid = true;

   elem = document.getElementById("User");
   valElem = document.getElementById("UserVal");
   if (strblank(elem.value)) {
      valid = false;
      valElem.innerHTML = "Required Field";
   }
   else
      valElem.innerHTML = "";

   elem = document.getElementById("Company");
   valElem = document.getElementById("CompanyVal");
   if (strblank(elem.value)) {
      valid = false;
      valElem.innerHTML = "Required Field";
   }
   else
      valElem.innerHTML = "";

   elem = document.getElementById("Email");
   valElem = document.getElementById("EmailVal");
   if (strblank(elem.value)) {
      valid = false;
      valElem.innerHTML = "Required Field";
   }
   else if (!valEmail(elem.value)) {
      valid = false;
      valElem.innerHTML = "Invalid Email";
   }
   else
      valElem.innerHTML = "";

   elem = document.getElementById("Phone");
   valElem = document.getElementById("PhoneVal");
   if (strblank(elem.value)) {
      valid = false;
      valElem.innerHTML = "Required Field";
   }
   else
      valElem.innerHTML = "";

   elem = document.getElementById("ProdId");
   valElem = document.getElementById("ProdIdVal");
   if (strblank(elem.value)) {
      valid = false;
      valElem.innerHTML = "Required Field";
   }
   else if (!valProdId(elem.value)) {
      valid = false;
      valElem.innerHTML = "Invalid Product Id";
   }
   else
      valElem.innerHTML = "";

   elem = document.getElementById("ProdVer");
   valElem = document.getElementById("ProdVerVal");
   if (strblank(elem.value)) {
      valid = false;
      valElem.innerHTML = "Required Field";
   }
   else
      valElem.innerHTML = "";

   return valid;

}

function strblank(str)
{
   var ch;
   var i;
   var blank = true;

   for (i = 0; i < str.length; i++) {
      ch = str.substr(i, 1);
      if (ch != " ")
         blank = false;
   }

   return(blank);
}

function valProdId(str)
{
   var prefix;
   var valid = false;
   var i;
   var num;

   if (str.length == 10) {
      prefix = str.substr(0, 2);

      num = parseInt(prefix, 10);
      if (!isNaN(num)) {
         if ((num >= 1) && (num <= 6)) {
            valid = true;
         }
      }
   }

   return(valid);
}

function valEmail(str)
{
   var i;
   var ch;
   var atCount = 0;
   var dotCount = 0;
   var retval = false;

   for (i = 0; i < str.length; i++) {
      ch = str.substr(i, 1);

      if (ch == "@")
         atCount++;
      if (ch == ".")
         dotCount++;
   }

   retval = ((atCount == 1) && (dotCount > 0))
   return retval;

}

function ShowRecordChanged(xmlHttpReq)
{
   var elem;
   var firstChar;

   try {
      if (xmlHttpReq.readyState == 4) {
         if (xmlHttpReq.status == 200) {
            firstChar = xmlHttpReq.responseText.substr(0, 1);
            elem = document.getElementById( "Response" );
            elem.innerHTML = xmlHttpReq.responseText;
         }
      }
   }
   catch( e ) {
      alert('Caught Exception: ' + e.description);
   }
}

function GetXMLHttpReqObject()
{
   var xmlHttpReq = null;

   if (window.XMLHttpRequest) { // Mozilla, Safari, ...
      xmlHttpReq = new XMLHttpRequest();

      if (xmlHttpReq.overrideMimeType) {
         xmlHttpReq.overrideMimeType('text/xml');
      }

   } else if (window.ActiveXObject) { // IE
      try {
         xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e) {
         try {
            xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch (e) {}
      }
   }

   return xmlHttpReq;
}
