function checkAgeCookie(tofile)
{
  underage = document.cookie;

  if (underage.indexOf('EmailAge') > -1) {
    window.location = tofile;
  }
}

function setAgeCookie()
{
  today = new Date();
  tomorrow = new Date();
  tomorrow.setTime(today.getTime()+(60*60*24*1000));
  document.cookie='EmailAge=true; path=/; expires=' + tomorrow.toGMTString();
}

function under13(form)
{
  var now = new Date();
  var thisMonth = now.getMonth() + 1;
  var thisDay = now.getDate();
  var thisYear = now.getFullYear();
  var birthMonth = form.birth_month.value;
  var birthDay = form.birth_date.value;
  var birthYear = form.birth_year.value;
  var user_age = thisYear - birthYear;
  var minimum_year = 13;

  if (user_age < minimum_year) {
    return true;
  }
  if (user_age > minimum_year) {
    return false;
  }
  if (thisMonth < birthMonth) {
    return true;
  }
  if (thisMonth > birthMonth) {
    return false;
  }
  if (thisDay < birthDay) {
    return true;
  }
  return false;
}


function isBlank(s)
{
  for( var i=0;i<s.length;i++ ) {
    var c = s.charAt(i);
    if( (c != ' ') && (c != '\n') && (c != '\t') )
      return false;
  }
  return true;
}


/* I got this function from "http://javascript.internet.com/forms/check-email.html".  I 
   took the comments out to conserve space.  You can look at the comments from the example
   at the URL above.  This basically checks ALL standard W3C email address formats.
*/
function checkEmailAddress( emailStr )
{

  var emailPat=/^(.+)@(.+)$/
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
  var validChars="\[^\\s" + specialChars + "\]"
  var quotedUser="(\"[^\"]*\")"
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
  var atom=validChars + '+'
  var word="(" + atom + "|" + quotedUser + ")"
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

  var matchArray=emailStr.match(emailPat)

  if (matchArray==null) {
    return false
  }

  var user=matchArray[1]
  var domain=matchArray[2]

  if (user.match(userPat)==null) {
      return false
  }

  var IPArray=domain.match(ipDomainPat)
  if (IPArray!=null) {
      for (var i=1;i<=4;i++) {
        if (IPArray[i]>255) {
      return false
        }
      }
      return true
  }

  var domainArray=domain.match(domainPat)
  if (domainArray==null) {
      return false
  }


  var atomPat=new RegExp(atom,"g")
  var domArr=domain.match(atomPat)
  var len=domArr.length
  if (domArr[domArr.length-1].length<2 || 
      domArr[domArr.length-1].length>3) {
     return false
  }

  // Make sure there's a host name preceding the domain.
  if (len<2)
    return false

  return true;
}


function check_feedback(form)
{
  checkAge2(form);

  if ( isBlank(form.firstname.value) ) {
    window.alert("Please enter your first name.");
    form.firstname.focus();
    return false;
  }
  else if ( isBlank(form.lastname.value) ) {
    window.alert("Please enter your last name.");
    form.lastname.focus();
    return false;
  }
  else if ( isBlank(form.city.value) ) {
    window.alert("Please enter your city.");
    form.city.focus();
    return false;
  }
  else if (form.state_province.options[form.state_province.options.selectedIndex].value == "-1") {
    window.alert("Please choose your state.");
    form.state_province.focus();
    return false;
  }
  else if ( isBlank(form.zip.value) ) {
    window.alert("Please enter your zip code.");
    form.zip.focus();
    return false;
  }
  else if (form.age.options[form.age.options.selectedIndex].value == "none") {
    window.alert("Please choose your age.");
    form.age.focus();
    return false;
  }
  else if ( isBlank(form.emaila.value) ) {
    alert("Please enter your email address.");
    form.emaila.focus();
    return false;
  }
  else if ( isBlank(form.emailb.value) ) {
    alert("Please verify your email address.");
    form.emailb.focus();
    return false;
  }
  else if ( form.emaila.value != form.emailb.value ) {
    alert("Your email address does not match. Please verify your email.");
    form.emaila.focus();
    return false;
  }
  else if ( !checkEmailAddress(form.emaila.value) ) {
    form.emailb.value = "";
    window.alert("Please enter a valid email address.");
    form.emaila.focus();
    return false;
  }
  else if ( isBlank(form.comments.value) ) {
    window.alert("Please enter a comment.");
    form.comments.focus();
    return false;
  }
  
  if(form.offersChk.checked){
    form.offers.value='Yes';
  }else{
    form.offers.value='No';
  }
}


function check_contactus(form)
{
  checkAge(form);

  if(form.sf_gender.options[form.sf_gender.options.selectedIndex].value == "M") 
  {
    form.sf_title.value = "Mr.";
  }
  else 
  {
    form.sf_title.value = "Ms.";
  }

  if ( isBlank(form.sf_first_nme.value) ) {
    window.alert("Please enter your first name.");
    form.sf_first_nme.focus();
    return false;
  }
  if ( isBlank(form.sf_last_nme.value) ) {
    window.alert("Please enter your last name.");
    form.sf_last_nme.focus();
    return false;
  }
  if ( isBlank(form.sf_city.value) ) {
    window.alert("Please enter your city.");
    form.sf_city.focus();
    return false;
  }
  if (form.sf_state_cd.options[form.sf_state_cd.options.selectedIndex].value == "-1") {
    window.alert("Please choose your state.");
    form.sf_state_cd.focus();
    return false;
  }
  if ( isBlank(form.sf_postal_cd.value) ) {
    alert("Please enter your Postal/Zip code.");
    form.sf_postal_cd.focus();
    return false;
  }
  if (form.sf_age.options[form.sf_age.options.selectedIndex].value == "none") {
    window.alert("Please choose your age.");
    form.sf_age.focus();
    return false;
  }
  if ( isBlank(form.sf_email_addr.value) ) {
    alert("Please enter your email address.");
    form.sf_email_addr.focus();
    return false;
  }
  if ( isBlank(form.email_addr_confirm.value) ) {
    alert("Please verify your email address.");
    form.email_addr_confirm.focus();
    return false;
  }
  if ( form.sf_email_addr.value != form.email_addr_confirm.value ) {
    alert("Your email address does not match. Please verify your email.");
    form.sf_email_addr.focus();
    return false;
  }
  if ( !checkEmailAddress(form.sf_email_addr.value) ) {
    form.email_addr_confirm.value = "";
    window.alert("Please enter a valid email address.");
    form.sf_email_addr.focus();
    return false;
  }
  if ( isBlank(form.cf_comment.value) ) {
    window.alert("Please enter a comment.");
    form.cf_comment.focus();
    return false;
  }
}



function check_newsletter(form)
{
  checkAge(form);

  if(form.sf_gender.options[form.sf_gender.options.selectedIndex].value == "M") 
  {
    form.sf_title.value = "Mr.";
  }
  else
  {
    form.sf_title.value = "Ms.";
  }

  if ( isBlank(form.sf_first_nme.value) ) {
    window.alert("Please enter your first name.");
    form.sf_first_nme.focus();
    return false;
  }
  if ( isBlank(form.sf_last_nme.value) ) {
    window.alert("Please enter your last name.");
    form.sf_last_nme.focus();
    return false;
  }
  if ( isBlank(form.sf_email_addr.value) ) {
    alert("Please enter your email address.");
    form.sf_email_addr.focus();
    return false;
  }
  if ( isBlank(form.email_addr_confirm.value) ) {
    alert("Please verify your email address.");
    form.email_addr_confirm.focus();
    return false;
  }
  if ( form.sf_email_addr.value != form.email_addr_confirm.value ) {
    alert("Your email address does not match. Please verify your email.");
    form.sf_email_addr.focus();
    return false;
  }
  if ( !checkEmailAddress(form.sf_email_addr.value) ) {
    form.email_addr_confirm.value = "";
    window.alert("Please enter a valid email address.");
    form.sf_email_addr.focus();
    return false;
  }
  if ( isBlank(form.sf_postal_cd.value) ) {
    window.alert("Please enter a zip.");
    form.sf_postal_cd.focus();
    return false;
  }
  if (form.sf_age.options[form.sf_age.options.selectedIndex].value == "none" || form.sf_age.options[form.sf_age.options.selectedIndex].value == "0") {
    window.alert("Please choose your age.");
    form.sf_age.focus();
    return false;
  }
}



// Pop up to randomly display surveys to users.
function survey_popup() 
{
  if (document.cookie.indexOf("FIRMp54614542unload=true")==-1 && Math.random()<0.10)
  {
    document.cookie = "FIRMp54614542unload=true;path=/;Expires=Mon, 30 Dec 2002 06:00:00 UTC";
    document.cookie = "FIRMp54975716unload=true;path=/;Expires=Mon, 30 Dec 2002 06:00:00 UTC";
    document.cookie = "FIRMp54989743unload=true;path=/;Expires=Mon, 30 Dec 2002 06:00:00 UTC";
    document.cookie = "FIRMp55097824unload=true;path=/;Expires=Mon, 30 Dec 2002 06:00:00 UTC";
    window.open("http://survey.confirmit.com/wi/p54614542/i.asp", "","height=480,width=680,scrollbars=yes");  
  }
}

//First check the user's age and redirect if they are under 13.
function checkAge(form){
  if (form.sf_age.options[form.sf_age.options.selectedIndex].value == "under13") {
    setAgeCookie();
    window.location.href = form.underageURL.value;
    return false;
  }
}

//First check the user's age and redirect if they are under 13.
function checkAge2(form){
  if (form.age.options[form.age.options.selectedIndex].value == "under13") {
    setAgeCookie();
    window.location.href = form.underageURL.value;
    return false;
  }
}
