function doValidate()
{
 
  var valid = "true";
  if (!(FormValidationElementHasValue(document.subscribe.firstname)))
  {
    alert( "First Name is a required field" );
    document.subscribe.firstname.focus();
    valid = "false";
    return false;
  }

  if (!(FormValidationElementHasValue(document.subscribe.lastname)))
  {
    alert( "Last Name is a required field" );
    document.subscribe.lastname.focus();
    valid = "false";
    return false;
  }

  if (!(FormValidationElementHasValue(document.subscribe.email)))
  {
    alert( "Email Address is a required field" );
    document.subscribe.email.focus();
    valid = "false";
    return false;
  }

 var emailFilter=/^.+@.+\..{2,3}$/;

 if (!(emailFilter.test(document.subscribe.email.value))) 

  {
    alert( "Invalid email address" );
    document.subscribe.email.focus();
    valid = "false";
    return false;
  }

  
  if (!(FormValidationElementHasValue(document.subscribe.drinkname)))
  {
    alert( "Drink Name is a required field" );
    document.subscribe.drinkname.focus();
    valid = "false";
    return false;
  }
  if (!(FormValidationElementHasValue(document.subscribe.drinkname)))
  {
    alert( "Drink Name is a required field" );
    document.subscribe.drinkname.focus();
    valid = "false";
    return false;
  }
  if (!(FormValidationElementHasValue(document.subscribe.ingredients)))
  {
    alert( "Ingredients is a required field" );
    document.subscribe.ingredients.focus();
    valid = "false";
    return false;
  }
  if (!(FormValidationElementHasValue(document.subscribe.instructions)))
  {
    alert( "Instructions is a required field" );
    document.subscribe.instructions.focus();
    valid = "false";
    return false;
  }

}

function FormValidationElementHasValue(formElementObject)
{
  if (!(FormValidationCanValidateElement(formElementObject)))
  {
    return false;
  }
  if ((formElementObject.type == "file") ||
      (formElementObject.type == "text") ||
      (formElementObject.type == "textarea") ||
      (formElementObject.type == "password"))
  {
    return FormValidationIsStringEmpty(formElementObject.value) ? false : true;
  }
  else if ((formElementObject.type == "select-one") ||
           (formElementObject.type == "select-multiple"))
  {
    if (formElementObject.selectedIndex < 0)
    {
      return false;
    }
    if (FormValidationIsStringEmpty(formElementObject.options[formElementObject.selectedIndex].value))
    {
      return false;
    }
  }
  else if ((formElementObject.type == "checkbox") ||
           (formElementObject.type == "radio") ||
           (formElementObject.length))
  {
    if (formElementObject.length)
    {
      for (var i = 0; i < formElementObject.length; i++)
      {
        if (formElementObject[i].checked)
        {
          return true;
        }
      }
      return false;
    }
    else
    {
      return formElementObject.checked;
    }
  }
  return true;
}

function FormValidationCanValidateElement(formElementObject)
{
  if (formElementObject.length)
  {
    return true;
  }
  if (!(formElementObject.type))
  {
    return false;
  }
  if (formElementObject.type == "button")
  {
    return false;
  }
  if (formElementObject.type == "hidden")
  {
    return false;
  }
  if (formElementObject.type == "image")
  {
    return false;
  }
  if (formElementObject.type == "reset")
  {
    return false;
  }
  if (formElementObject.type == "submit")
  {
    return false;
  }
  return true;
}

function FormValidationIsStringEmpty(stringValue)
{
  if (stringValue == "")
  {
    return true;
  }
  if (/^\s+$/.test(stringValue))
  {
    return true;
  }
  return false;
}

