//////////////////////////////////////////////////////////////////////////
var oldEnough = 18; // change this variable to change the age requirement!
//////////////////////////////////////////////////////////////////////////

function country_check() {
  if (document.join.fields_country.options[document.join.fields_country.selectedIndex].value == "US:United States of America" ||
        document.join.fields_country.options[document.join.fields_country.selectedIndex].value == "-") {
    return;
  } else {
    //We are not from the united states.
    self.location = "./form_int.html?fields_country=" + escape(document.join.fields_country.options[document.join.fields_country.selectedIndex].value) + "&source=" + escape(document.join.source.value);
  }
}


function check() {
    var t = document.join.elements.length
<!--    var c = 0 -->
   if (document.join.opt_universalstudios.checked) {
        c = 1
       }
    for (var i = 0; i < t; i++) {
        if (document.join.elements[i].name == "fields_opt_movies") {
                document.join.elements[i].checked = c;
                }
        if (document.join.elements[i].name == "fields_opt_video_dvd") {
                document.join.elements[i].checked = c;
                }
                if (document.join.elements[i].name == "fields_opt_ppv") {
                document.join.elements[i].checked = c;
                }
                if (document.join.elements[i].name == "fields_opt_tv") {
                document.join.elements[i].checked = c;
                }
                if (document.join.elements[i].name == "fields_opt_music") {
                document.join.elements[i].checked = c;
                }
        if (document.join.elements[i].name == "fields_opt_orlando") {
                document.join.elements[i].checked = c;
                }
        if (document.join.elements[i].name == "fields_opt_hollywood") {
                document.join.elements[i].checked = c;
                }
                if (document.join.elements[i].name == "fields_opt_japan") {
                document.join.elements[i].checked = c;
                }
                if (document.join.elements[i].name == "fields_opt_homevideo") {
                document.join.elements[i].checked = c;
                }
                if (document.join.elements[i].name == "fields_opt_spain") {
                document.join.elements[i].checked = c;
                }
                if (document.join.elements[i].name == "fields_opt_beijing") {
                document.join.elements[i].checked = c;
                }
                if (document.join.elements[i].name == "fields_opt_spencer") {
                document.join.elements[i].checked = c;
                }
                if (document.join.elements[i].name == "fields_opt_store") {
                document.join.elements[i].checked = c;
                }
        }
}

function uncheck() {
    if (document.join.opt_universalstudios.checked) {
        document.join.opt_universalstudios.checked = 0
    }
}

function check_genre() {
    var t = document.join.elements.length
<!--    var d = 0 -->
   if (document.join.genre_all.checked) {

        d = 1
       }
    for (var i = 0; i < t; i++) {
        if (document.join.elements[i].name == "fields_genre_action") {
                document.join.elements[i].checked = d;
                }
        if (document.join.elements[i].name == "fields_genre_adventure") {
                document.join.elements[i].checked = d;
                }
        if (document.join.elements[i].name == "genre_art") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_comedy") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_drama") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_family") {
                document.join.elements[i].checked = d;
                }
        if (document.join.elements[i].name == "fields_genre_foreign") {
                document.join.elements[i].checked = d;
                }
        if (document.join.elements[i].name == "fields_genre_horror") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_scifi") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_romance") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_suspense") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "genre_teen") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_animation") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_children") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_independent") {
                document.join.elements[i].checked = d;
                }
                if (document.join.elements[i].name == "fields_genre_shorts") {
                document.join.elements[i].checked = d;
                }
        }
}

function uncheck_genre() {
    if (document.join.genre_all.checked) {
        document.join.genre_all.checked = 0
    }
}

function submitForm() {
  if (navigator.appName.indexOf("WebTV")== -1) {
    // if client is NOT WebTV, validate form
    if (checkFields() == true) {
        // check the fields
        // alert('ready for the database');

      if (checkAge() == true) {
      // if they're old enough
        return true;

      } else if (checkAge() == false) {
        setCookie();
        alert("We're sorry, but we are unable to accept registrations from children under the age of " + oldEnough + ".  Thank you and please enjoy the rest of our site.");
        document.join.reset();
        window.top.close();
        //return false;
      }
    } else {
      return false;
    }

  } else {
    // skip validation for WebTV
    return true;
  }
}

function onLoad() {
  var the_cookie = document.cookie;
  var some_data = unescape(the_cookie);
  var pos = some_data.indexOf("age_test_cookie_name");
  self.focus();             
  //alert(the_cookie);
  if (pos != -1) {
    alert("The birth date you previously entered indicates you are under the age of " + oldEnough + ". Therefore, we are unable to add you to our database.");
    window.top.close();
  }
}

function setCookie() {
  var theDate  = new Date();
  var tmfn = theDate.getTime() + (30 * 60 * 1000);
  theDate.setTime(tmfn);
  document.cookie = "age_test_cookie_name=Invalid; expires="+theDate.toGMTString ();
  //alert("age_test_cookie_name=Invalid; expires="+theDate.toGMTString());
}


function checkAge() {
  var today = new Date();
  var TODAY_month = today.getMonth()+1;
  var TODAY_day = today.getDate();
  var TODAY_year = today.getFullYear();


  // we age them forward in time the minimum years and see if the valid date
  // is in the future.
  var valid_year;
  valid_year = oldEnough + parseInt(document.join.fields_birth_year.value)
  if ( TODAY_year < valid_year ) {
    return false;
  } else if ( TODAY_year == valid_year) {
    // same year, let's check the month
    if ( TODAY_month < document.join.fields_birth_month.value ) {
      return false;
    } else if ( TODAY_month == document.join.fields_birth_month.value ) {
      // same month, check the day
      if (TODAY_day < document.join.fields_birth_day.value) {
        return false;
      }
    }
  }
  return true;
}

function checkFields() {
  missinginfo = "";

   if ((document.join.fields_birth_year.value < 1850) ||
         (document.join.fields_birth_month.value < 1) ||
         (document.join.fields_birth_day.value < 1)) {
     //1850 was chosen to make sure they don't put bogus dates.
     //It's improbable, but possible for people over 100 to fill
     //out the form, but no one who is 150.
     missinginfo += "\n     - You must complete the birthdate and use a 4 digit birth year.";
   }
  if (document.join.fields_country.options[document.join.fields_country.selectedIndex].value == "-") {
    missinginfo += "\n     - Country is a required field";
  } 
  if (document.join.fields_firstname.value == "") {
    missinginfo += "\n     - First Name is a required field";
    }
  if (document.join.fields_lastname.value == "") {
    missinginfo += "\n     - Last Name is a required field";
  }
  if ( (document.join.fields_gender[0].checked == false) &&  
        (document.join.fields_gender[1].checked == false)) {
    missinginfo += "\n     - Gender is a required field";
  }
  
  if (document.join.fields_address1.value == "") {
    missinginfo += "\n     - Address is a required field";
  }
  if (document.join.fields_city.value == "") {
    missinginfo += "\n     - City is a required field";
  }
  if (document.join.fields_state.options[document.join.fields_state.selectedIndex].value == "-") {
    missinginfo += "\n     - State is a required field";
  }
  if (document.join.fields_telephone.value == "") {
    missinginfo += "\n     - Telephone is a required field";
  }
  var pattern = /\d{3}\-\d{3}\-\d{4}/;
  var telephone_match = document.join.fields_telephone.value.match(pattern);
  if (telephone_match == null) {
    missinginfo += "\n     - Telephone must be in the format 555-818-1212";
  }

  if (document.join.fields_zip.value == "") {
    missinginfo += "\n     - Zip Code is a required field.";
  } else if (isNaN(document.join.fields_zip.value) || (document.join.fields_zip.value.length != 5) ) {
    missinginfo += "\n     - Zip Code must be a 5 digit number";
  }
  if (document.join.emailaddr.value == "")	{
    missinginfo += "\n     - Email is a required field";
  } else if ((document.join.emailaddr.value.indexOf('@') == -1) || 
        (document.join.emailaddr.value.indexOf('.') == -1)) {
    missinginfo += "\n     - Email should take the format: myname@myisp.com";
  }
  if ((document.join.emailaddr.value.indexOf(',') != -1)) {
    missinginfo += "\n     - Commas are not allowed in email addresses";
  }
  if ((document.join.emailaddr.value.indexOf(';') != -1)) {
    missinginfo += "\n     - Semicolons are not allowed in email addresses";
  }
  if ((document.join.emailaddr.value.indexOf(':') != -1)) {
    missinginfo += "\n     - Colons are not allowed in email addresses";
  }
  if ((document.join.emailaddr.value.indexOf('&') != -1)) {
    missinginfo += "\n     - Ampersands are not allowed in email addresses";
  }
  if ((document.join.emailaddr.value.indexOf(' ') != -1)) {
    missinginfo += "\n     - Spaces are not allowed in email addresses";
  }



  if (missinginfo != "") {
    missinginfo ="_____________________________\n" + "Sorry, we were couldn't process your sign request because:\n" +
    missinginfo + "\n_____________________________" + "\nPlease re-enter and submit again!";
    alert(missinginfo);
  } else {
    return true;
  }
}
