var noStateArray = new Array( "AK", "HI", "PR" );
var stateArray = filterStates();

function testValues( form ) { // show values of the form at the time the function is called
	var results = ""
	results += "email: " +  form.email.value + "\n";
	results += "fname: " +  form.fname.value + "\n";
	results += "lname: " +  form.lname.value + "\n";
	results += "addr1: " +  form.addr1.value + "\n";
	results += "addr2: " +  form.addr2.value + "\n";
	results += "city: " +  form.city.value + "\n";
	results += "zip: " +  form.zip.value + "\n";
	results += "phone: " +  form.phone.value + "\n";
	results += "gender: " +  getGender( form ) + "\n";
	results += "dob: " +  form.dob.value + "\n";
	results += "state: " +  form.state.value + "\n";
	results += "country: " +  form.country.value + "\n";
	results += "braun_optin: " +  form.braun_optin.checked + "\n";
	alert( results );
}

function submitThis( form ) { // if entries are filled and valid, concatenate phone and dob and submit; otherwise return false
	var testForm = false;
	detSubmit = determineSubmit( form );
	if( detSubmit ) {
		alert( detSubmit );
		if( testForm ) testValues( form );
		return false;
	} else {
		form.phone.value = form.phone1.value + '' + form.phone2.value + '' + form.phone3.value;
		form.dob.value = form.dobm.value + '' + form.dobd.value + '' + form.doby.value;
		if( testForm ) {
			testValues( form );
			return false;
		} else {
			return true;
		}
	}
}

function cnnPageOnload() { // generate the dropdowns
	populateDropdown( cnnGetObject( 'dobm' ), 1, 12, "des" );
	populateDropdown( cnnGetObject( 'dobd' ), 1, 31, "des" );
	populateDropdown( cnnGetObject( 'doby' ), 1900, 2005, "asc" );
	populateStateDropdown( cnnGetObject( 'state' ), stateArray );
}

function allFilled( form ) { // when necessary fields are empty, return an error message to alert user
	var error = "";
	if( form.email.value == "" )			error = "Please enter your email address";
	else if( form.fname.value == "" )		error = "Please enter your first name";
	else if( form.lname.value == "" )		error = "Please enter your last name";
	else if( form.addr1.value == "" )		error = "Please enter your mailing address";
	else if( form.city.value == "" )		error = "Please enter your city";
	else if( form.zip.value == "" )			error = "Please enter your zip code";
	else if( form.phone1.value == "" )		error = "Please enter your area code";
	else if( form.phone2.value == "" )		error = "Please enter the first 3 digits of your 7 digit phone number";
	else if( form.phone3.value == "" )		error = "Please enter the last 4 digits of your 7 digit phone number";
	else if( !IsGender( form ) )			error = "Please select your gender";
	else if( form.dobm.value == "" )		error = "Please enter your month of birth";
	else if( form.dobd.value == "" )		error = "Please enter your day of birth";
	else if( form.doby.value == "" )		error = "Please enter your year of birth";
	else if( form.state.value == "" )		error = "Please select your state";
	else if( form.country.value == "" )		error = "Please select your country";
	return error;
}

function giveWarning( form ) { // determines if the applicant is eligible
	var result = "";
	var ageLimitAge = 21;

	// error messages
	var tooYoung = "We're sorry, you must be " + ageLimitAge.toString() + " years of age to enter.";
	var notEmail = "Your email address should follow this format: someone@somewhere.[com,org,mil,net,biz,tv,etc.]";
	var wrongState = "You must be a legal resident of the contiguous United States or the District of Columbia to enter.";
	var wrongCountry = "You must be a legal resident of the contiguous United States or the District of Columbia to enter.";

	if( form.country.value.toLowerCase() == "other" ) { result = wrongCountry; }
	else if( form.state.value.toLowerCase() == "other" ) { result = wrongState; }
	else if( isTooYoung( form, ageLimitAge ) ) { result = tooYoung; }
	else if( isValidDate( form.dobm.value, form.dobd.value, form.doby.value ) != "" ) { result = isValidDate( form.dobm.value, form.dobd.value, form.doby.value ); }
	else if( !isValidEmail( form.email.value ) ) { result = notEmail; }

	return result;
}
