// NEED TO MAKE VALIDATION MORE UNIVERSAL
function validateTextField() {
  var displayMessage = "";

  var name = stringTrim(document.TrioForm.NAME.value);
  var city = stringTrim(document.TrioForm.CITY.value);
  var state = stringTrim(document.TrioForm.STATE.value);
  var zip = stringTrim(document.TrioForm.ZIP.value);
  var email = stringTrim(document.TrioForm.EMAIL.value);
  var domain = document.TrioForm.DOMAIN_REGISTERED;
  var domainVal = validateInput(domain, '', 'radioButton');
  var webAddress = stringTrim(document.TrioForm.CURRENT_WEB_ADDRESS.value);
//  var photo = document.TrioForm.PHOTOS_OR_ARTWORK;
//  var photoVal = validateInput(photo, '', 'radioButton');
//  var numPhoto = document.TrioForm.NUM_OF_ART_OR_PHOTOS_PROVIDING.value;
  var need = document.TrioForm.NEED_WEB_HOSTING;
  var needVal = validateInput(need, '', 'radioButton');
  var description = stringTrim(document.TrioForm.DESCRIPTION_of_SITE.value);
  var phone = stringTrim(document.TrioForm.PHONE_AREA_CODE.value) + stringTrim(document.TrioForm.PHONE_BOX1.value) + stringTrim(document.TrioForm.PHONE_BOX2.value);
  var fax = stringTrim(document.TrioForm.FAX_AREA_CODE.value) + stringTrim(document.TrioForm.FAX_BOX1.value) + stringTrim(document.TrioForm.FAX_BOX2.value);

  if (!validateInput(name, '', 'string')) displayMessage += "Please enter a NAME.\n";
  if (!validateInput(city, '', 'string')) displayMessage += "Please enter a CITY.\n";
  if (!validateInput(state, 2, 'string')) displayMessage += "Please enter a STATE.\n";
  if (!validateInput(zip, 5, 'number')) displayMessage += "Please enter a ZIP CODE.\n";
  if (phone.length != 0 && !validateInput(phone, '', 'phone')) displayMessage += "Please enter a valid 10-Digit PHONE NUMBER.\n";
  if (fax.length != 0 && !validateInput(fax, '', 'phone')) displayMessage += "Please enter a valid 10-Digit FAX NUMBER.\n";
  if (!validateInput(email, '', 'email')) displayMessage += "Please enter an EMAIL ADDRESS.\n";
  if (domainVal == "") displayMessage += "Please select YES or NO to Domain Registered.\n";
  if (domainVal == "YES" && !validateInput(webAddress, '', 'URL')) displayMessage += "Please enter a web address (example: http://www.triocollective.com).\n";
//  if (photoVal == "YES" && !validateInput(numPhoto, '', "number")) displayMessage += "Please enter the number of photos/artwork you will be providing.\n";
  if (needVal == "") displayMessage += "Please select YES or NO to Need Web Hosting.\n";
  if (description == "") displayMessage += "Please enter a DESCRIPTION.\n";

  if (displayMessage != '')
    alert(displayMessage);
  else
    document.TrioForm.submit();
}

function validateInput(string, size, type) {
   size = (size == "" ? "1," : parseInt(size));
   switch (type) {
      case "string":
         var check = new RegExp("^.{" + size + "}$");
         return check.test(string);
      case "number":
         var check = new RegExp("^[0-9]{" + size + "}$");
         return check.test(string);
      case "phone":
         var check = /^(\d{3})(-|\*|\.| ){0,1}(\d{3})(-|\*|\.| ){0,1}(\d{4})$/;
         return check.test(string);
      case "URL":
         var check = /(\w{3})(\.)(\w+)(\.)(\w{3})/;
         return check.test(string);
      case "email":
         var check = /(\w+)(\@)(\w+)(\.)(\w{3})/g;
         return check.test(string);
      case "radioButton":
         var check = "";
         var len = string.length;
         for(var i=0; i<len; i++) {
            if (string[i].checked) {
               check = string[i].value;
               break;
            }
         }
         return check;
      default:
         return false;
   }
}

function stringTrimLeft(s) {return((typeof(s) != "string") ? null : s.replace(/^ +/, ""));}

function stringTrimRight(s) {return((typeof(s) != "string") ? null : s.replace(/ +$/, ""));}

function stringTrim(s) {return((typeof(s) != "string") ? null : stringTrimRight(stringTrimLeft(s)));}