//newsletter form functions

var whitespace = " \t\n\r";
var iEmail = "This field must be a valid email address (like user@aol.com). Please reenter it now."

function stripCharsInBag (s, bag)
{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function isEmpty(s)
{
  return ((s == null) || (s.length == 0))
}
function isWhitespace (s)
{ var i;

  if (isEmpty(s)) return true;

  for (i = 0; i < s.length; i++)
  {   
    var c = s.charAt(i);
    if (whitespace.indexOf(c) == -1) return false;
  }
  return true;
}

function checkString (theField, s, emptyOK)
{
    if (checkString.arguments.length == 2) emptyOK = false;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    if (isWhitespace(theField.value)) 
       return warnEmpty (theField, s);
    else return true;
}

function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    // is s whitespace?
    if (isWhitespace(s)) return false;
    var i = 1;
    var sLength = s.length;
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;
    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }
    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function checkEmail (theField, emptyOK)
{
    theField.value = stripCharsInBag(theField.value," ");

    if (checkEmail.arguments.length == 1) emptyOK = false;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else if (!isEmail(theField.value, false)) 
       return warnInvalid (theField, iEmail);
    else return true;
}

function warnInvalid (theField, s)
{   theField.focus()
    theField.select()
    alert(s)
    return false
}

function warnEmpty (theField, s)
{
    alert(mPrefix + s + mSuffix)
    theField.focus()
    return false
}

function nl_clearBox(box)
{
   if( box.value == "First Name" || box.value == "Last Name" || box.value == "Email Address" )
      box.value = "";
}

function nl_setDefault(box,type)
{
   if( box.value == "" )
   {
      if( type == "F" )
         box.value = "First Name";
      else if( type == "L" )
         box.value = "Last Name";
      else if( type == "E" )
         box.value = "Email Address";
   }
}

function nl_validateGeneralInfo()
{
  var formx = document.newsletterForm;
  
  if( formx.txtFirstName.value.indexOf("First Name") != -1 )
  {
     alert("Please enter your first name");
     return false;
  }
  
  if( formx.txtLastName.value.indexOf("Last Name") != -1 )
  {
     alert("Please enter your last name");
     return false;
  }
  
  if( formx.txtEmail.value.indexOf(",") != -1 )
  {
     alert("Email address cannot contain commas");
     return false;
  }
  
  return (
          checkString(formx.elements["txtFirstName"],"  [First Name]  ") &&
          checkString(formx.elements["txtLastName"],"  [Last Name]  ") &&
          checkEmail(formx.elements["txtEmail"])
       )
}

function nl_validate()
{
   if (nl_validateGeneralInfo())
   {
      document.newsletterForm.elements["hdnSubmit"].value = "clicked";
      document.newsletterForm.submit()
   }
   
   return false;
}  
