
   function openWindow(filename, windowname) {
      window.open(filename, windowname,
                  'height=425,width=760,resizable,scrollbars=1,menubar=0,toolbar=1',false);
   }//openWindow()




   function showError(msg) {

      var div_element = document.getElementById("insert_error_msg");

      div_element.innerHTML = "<FONT COLOR='#E9563E'>" + msg + "</FONT>";


   }//showError()





   function hideError() {

      var div_element = document.getElementById("insert_error_msg");

      div_element.innerHTML = "<BR>";


   }//hideError()







   function clearErrors(form) {

      for (var i=0; i < form.elements.length; i++) {
          form.elements[i].style.backgroundColor="#FFFFFF";
      }

      hideError();

   }//clearErrors()



   function sendError(element, msg) {

      showError(msg);
      element.style.backgroundColor="#E9563E";
      element.focus();

   }//sendError()




   function isMissing(element) {
      if (element.value==null || element.value=="" ) return true;
      else return false;

   }//isMissing()







   function isBadEmail(element) {

      var reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

      if (reg.test(element.value)) {
          return false;
      }

      return true;

   }//isBadEmail()









   function isBadPhone(element) {


      var temp_phone = element.value;

      temp_phone = (temp_phone).replace(/\s/g, '');

      temp_phone2 = (temp_phone).replace(/[\+\(\)\-]/g, '');


      if (temp_phone2.length < 7) {
         return true;
      }


      var reg = /^\+?([0-9\-\(\)])+$/;

      if (reg.test(temp_phone)) {
          return false;
      }

      return true;



   }//isBadPhone()






   function isBadZipCode(element) {


      element.value = (element.value).replace(/\s/g, '');

      var reg = /^[0-9]{5,5}\-?([0-9][0-9][0-9][0-9])?$/;

      if (reg.test(element.value)) {
          return false;
      }

      return true;

   }//isBadZipCode()








   function validateForm(form) {

      clearErrors(form);

      if (isMissing(form.name)) {
         sendError(form.name, "Please enter your name.");
         return false;
      }



      if (!isMissing(form.email)) {
         if (isBadEmail(form.email)) {
            sendError(form.email, "The email address appears to be invalid.  Please try again.");
            return false;
         }
      }




      if (!isMissing(form.phone)) {
         if (isBadPhone(form.phone)) {
            sendError(form.phone, "The phone number is incorrect.  Please try again.");
            return false;
         }
      }




      if (!isMissing(form.email) || !isMissing(form.phone)) return true;




      var incomplete_address_msg = "Please include a complete address if you " +
                                   "are using your address as your preferred " +
                                   "contact method.";

      if (!isMissing(form.address1) ||
          !isMissing(form.address2) ||
          !isMissing(form.city)     ||
          !isMissing(form.zipcode)  ||
          (form.state.selectedIndex != 0)) {

         if (isMissing(form.address1)) {
            sendError (form.address1, incomplete_address_msg);
            return false;
         }
         if (isMissing(form.city)) {
            sendError (form.city, incomplete_address_msg);
            return false;
         }
         if (form.state.selectedIndex == 0) {
            sendError (form.state, incomplete_address_msg);
            return false;
         }
         if (isMissing(form.zipcode)) {
            sendError (form.zipcode, incomplete_address_msg);
            return false;
         }
         else {
            if (isBadZipCode(form.zipcode)) {
               sendError(form.zipcode, "Please include a valid zipcode.");
               return false;
            }
         }//else
      }//if
      else {
         sendError(form.email, "Please provide at least one form of contact -- " +
                                "email, phone or address.  Thanks!"); 
         return false;
      }



      return true;

   }//validate_form()

