function nonblankCheck(object,label)
{
  var ok = (object.value != "");
  if(!ok){
    alert("You must specify a "+label+".");
    object.focus();
  }
  return ok;
}

function emailCheck(object,label)
{
  var ok = nonblankCheck(object,label+" e-mail address");
  if(ok){
    if(object.value.indexOf("@") == -1){
     alert("Your "+label+" e-mail address is missing the @ symbol.");
     ok = false;
    }
    else if(object.value.indexOf(".") == -1){
     alert("Your "+label+" e-mail address is missing the period (.).");
     ok = false;
    }
    else if(object.value.indexOf(" ") != -1){
     alert("Your "+label+" e-mail address contains a space.");
     ok = false;
    }
  }
  if(!ok)
    object.focus();
  return ok;
}

function dongleIDCheck(object)
{
  var ok = nonblankCheck(object,"dongle number");
  if(ok){
    if(object.value.indexOf("#") != -1){
      alert("Your dongle number is incorrect.\nYou have not supplied a number.");
      ok = false;
    }
    else if(object.value.length != 17){
      alert("Your dongle number is incorrect.\nYou may have left out a character.");
      ok = false;
    }
  }
  if(!ok)
    object.focus();
  return ok;
}

function requesterCheck(object)
{
  var ok = true;
  var i;
  for(i = 0; i < object.length; ++i){
    if(object.elements[i].name == "requester_name"){
      ok = nonblankCheck(object.requester_name,"requester name") &&
           emailCheck(object.requester_email,"requester");
      break;
    }
  }
  return ok;
}

function dongleCheck(object)
{
  var ok = true;
  var i;
  for(i = 0; i < object.length; ++i){
    if(object.elements[i].name == "dongleid"){
      ok = dongleIDCheck(object.dongleid);
//      && dongletypeCheck(object.dongletype);
      break;
    }
  }
  return ok;
}

function requiredFormCheck()
{
  var ok = true;
 
  ok = nonblankCheck(document.contactForm.contact_name,"contact name");
  if(ok) 
    ok = emailCheck(document.contactForm.contact_email,"contact");
  if(ok)
    ok = nonblankCheck(document.contactForm.contact_organization,"contact organization");
  if(ok)
    ok = requesterCheck(document.contactForm);
  if(ok)
    ok = dongleCheck(document.contactForm);

  return ok;
}

function formCheck()
{
  ok = requiredFormCheck();
  return ok;
}

function generateContactForm(method, action, submitfcn, isrequest, isdongle)
{
  var s = "<STYLE type=\"text/css\">"+
          "<!--  /* Allows specification of style rules so that older browsers won't "+
          "      choke on them */"+
          "   .required  { color: red; font-weight: bold; }"+
          " -->"+
          "</STYLE>\n"+
          "<FORM name=\"contactForm\" ";
  if("" != method){
    s = s+"method=\""+method+"\" ";
  }
  if("" != action){
    s = s+"action=\""+action+"\" ";
  }
  if("" != submitfcn){
    s = s+"onsubmit=\"return "+submitfcn+"()\" "
  }
  s = s+">\n"+
      " <TABLE cellspacing=5 border=0 "+
      " summary=\"table for obtaining contact information\">\n"+
      "  <COL align=\"right\" span=1>\n"+
      "  <COL align=\"left\" span=2>\n"+
      "  <COL align=\"right\" span=1>\n"+
      "  <COL align=\"left\" span=1>\n";
  if(isdongle){
    s = s+"  <TR>\n"+
      "   <TD><SPAN class=\"required\">*</SPAN>Dongle number:</TD>\n"+
      "   <TD><INPUT type=\"text\" name=\"dongleid\" value=\"CRY-STR-###-###-X\" size=20 maxlength=17></TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD><SPAN class=\"required\">*</SPAN>Dongle Type:</TD>\n"+
      "   <TD><TABLE><TR>\n"+
      "     <TD><LABEL><INPUT type=\"radio\" name=\"dongletype\" value=\"usb\" checked>USB</LABEL></TD></TR><TR>\n"+
      "     <TD height=\"20\"><IMG src=\"/images/software/Marx_USB.jpg\" alt=\"Dongle that attaches to a USB port.\"></TD>\n"+
      "   </TR></TABLE></TD>\n"+
      "   <TD>&nbsp;</TD>\n"+
      "   <TD><TABLE><TR>\n"+
      "     <TD><LABEL><INPUT type=\"radio\" name=\"dongletype\" value=\"parallel\">Parallel</LABEL></TD></TR><TR>\n"+
      "     <TD><IMG src=\"/images/software/Marx_Parallel.jpg\" alt=\"Dongle that attaches to a parallel/printer port.\"></TD>\n"+
      "   </TR></TABLE></TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>&nbsp;</TD>\n"+
      "  </TR>\n";
  }
  s = s+
      "  <TR>\n"+
      "   <TD><SPAN class=\"required\">*</SPAN>Contact name:</TD>\n"+
      "   <TD><INPUT name=\"contact_name\" type=\"text\"></TD>\n"+
      "   <TD>&nbsp;&nbsp;</TD>\n";
  if(isrequest){
    s = s+
      "   <TD><SPAN class=\"required\">*</SPAN>Requester name:</TD>\n"+
      "   <TD><INPUT name=\"requester_name\" type=\"text\"></TD>\n";
  }
  s = s+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD><SPAN class=\"required\">*</SPAN>Contact e-mail:</TD>\n"+
      "   <TD><INPUT name=\"contact_email\" type=\"text\"></TD>\n"+
      "   <TD>&nbsp;&nbsp;</TD>\n";
  if(isrequest){
    s = s+
      "   <TD><SPAN class=\"required\">*</SPAN>Requester e-mail:</TD>\n"+
      "   <TD><INPUT name=\"requester_email\" type=\"text\"></TD>\n";
  }
  s = s+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD><SPAN class=\"required\">*</SPAN>Organization:</TD>\n"+
      "   <TD><INPUT name=\"contact_organization\" type=\"text\"></TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>Address:</TD>\n"+
      "   <TD><INPUT name=\"contact_address1\" type=\"text\"></TD>\n"+
      "   <TD>&nbsp;&nbsp;</TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>&nbsp;</TD>\n"+
      "   <TD><INPUT name=\"contact_address2\" type=\"text\"></TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>&nbsp;</TD>\n"+
      "   <TD><INPUT name=\"contact_address3\" type=\"text\"></TD>\n"+
      "   <TD colspan=2>&nbsp;&nbsp;</TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>City:</TD>\n"+
      "   <TD><INPUT name=\"contact_city\" type=\"text\"></TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>State/Province:</TD>\n"+
      "   <TD><INPUT name=\"contact_state\" type=\"text\"></TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>Zip/Postal Code:</TD>\n"+
      "   <TD><INPUT name=\"contact_zip\" type=\"text\"></TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>Country:</TD>\n"+
      "   <TD><INPUT name=\"contact_country\" type=\"text\"></TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>TEL:</TD>\n"+
      "   <TD><INPUT name=\"contact_tel\" type=\"text\"></TD>\n"+
      "  </TR>\n"+
      "  <TR>\n"+
      "   <TD>FAX:</TD>\n"+
      "   <TD><INPUT name=\"contact_fax\" type=\"text\"></TD>\n"+
      "  </TR>\n"+
      " </TABLE>\n";
  if("" != method){
    s = s+"<INPUT type=\"submit\" value=\"Submit Request\">\n"+
        "<INPUT type=\"reset\" value=\"Reset Form\">\n";
  }
  s = s+"</FORM>\n";
  document.write(s);
  return;
}

function generateDongleRequestContactForm(method, action, submitfcn)
{
  generateContactForm(method,action,submitfcn,true,true);
}

function generateRequestContactForm(method, action, submitfcn)
{
  generateContactForm(method,action,submitfcn,true,false);
}

function generateDongleContactForm(method, action, submitfcn)
{
  generateContactForm(method,action,submitfcn,false,true);
}

function doFormCheck()
{
  if(formCheck()){
    if(1 == doFormCheck.arguments.length)
      window.location = doFormCheck.arguments[0];
  }
  return;
}
 
function doFormCheckAndPost()
{
  if(formCheck()){
    if(1 == doFormCheckAndPost.arguments.length)
      document.contactForm.action = doFormCheckAndPost.arguments[0];
    document.contactForm.method = "POST";
    document.contactForm.submit();
 }
 return;
}
 
function doRequiredFormCheck()
{
 if(requiredFormCheck()){
    if(1 == doRequiredFormCheck.arguments.length)
      window.location = doRequiredFormCheck.arguments[0];
 }
 return;
}

function doRequiredFormCheckAndPost()
{
  if(requiredFormCheck()){
    if(1 == doRequiredFormCheckAndPost.arguments.length)
      document.contactForm.action = doRequiredFormCheckAndPost.arguments[0];
    document.contactForm.method = "POST";
    document.contactForm.submit();
 }
 return;
}
 

