function validateVote(f) {
 
    var message = '';
	var emailregex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;    
	var dobregex = /^([0-9]){2}(\/){1}([0-9]){2}(\/)([0-9]){4}$/;	

  	var player = '';
	for (var i=0, n= f.player.length; i < n; i++) {
    	if (f.player[i].checked) {
			player = f.player[i].value;
		}
 	}
	if ( player == '') {
		message += 'Please choose a surfer to vote for.\n';
	}
	
	if (f.firstname.value == '') {
        message += 'Please fill in your first name.\n';
    }
 
    if (f.surname.value == '') {
        message += 'Please fill in your surname.\n';
    }
 
    if (f.email.value == '') {
        message += 'Please fill in your email address.\n';
    } else {
		if ( !(emailregex.test(f.email.value)) ) {
			message += 'Please fill in a valid email address.\n';
		}
	}
	
    if (f.dob.value == '') {
        message += 'Please tell us your date of birth.\n';
    } else {
		if ( !(dobregex.test(f.dob.value)) ) {
			message += 'You have not formatted the DOB correctly and we cannot process your vote. Please try again.\n';
		}
	}
 
 	var gender = '';
	for (var i=0, n= f.gender.length; i < n; i++) {
    	if (f.gender[i].checked) {
			gender = f.gender[i].value;
		}
 	}
	if ( gender == '') {
		message += 'Please tell us if you\'re male or female.\n';
	}

		
    if (f.address1.value == '') {
        message += 'Please tell us your address.\n';
    }
	
    if (f.suburb.value == '') {
        message += 'Please fill in your suburb.\n';
    }
	
	var selected_option = f.state.options[f.state.selectedIndex].value; 
	if ( (selected_option.length<1 || selected_option == "") ) {
        message += 'Please tell us which state you live in.\n';		
	}
  
    if (f.postcode.value == '') {
        message += 'Please tell us your postcode.\n';
    } else {
		if ( (isNaN(f.postcode.value)) || (f.postcode.value.length != 4) ) {
			message += 'You have not formatted your postcode correctly and we cannot process your vote. Please try again.\n';
		}
	}

	 if (f.phone.value != '') {
		if ( (isNaN(f.phone.value)) || (f.phone.value.length > 10) || (f.phone.value.length < 8) ) {
			message += 'You have not formatted your phone number correctly and we cannot process your vote. Please try again.\n';
		}
	}
	
	if (f.mobilecomm.checked) {
		if (f.mobile.value == '') {
			message += 'Please enter your mobile phone number.\n';
		}
	}
	
	 if (f.mobile.value != '') {
		if ( (isNaN(f.mobile.value)) || (f.mobile.value.length != 10) ) {
			message += 'You have not formatted your mobile phone number correctly and we cannot process your vote. Please try again.\n';
		}
	}

	if (f.answer.value == '') {
		message += "Please tell us why the surfer you're voting for deserve to be the next Waves Black Knight.\n";
	}
	
	if (message == '') {
    } else {
        alert(message);
        return false;
    }
}

function validateTellafriend(f) {
 
    var message = '';
	var emailregex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;    
 
    if (f.name.value == '') {
        message += 'Please fill in your name.\n';
    }
 
    if (f.email.value == '') {
        message += 'Please fill in your email address.\n';
    } else {
		if ( !(emailregex.test(f.email.value)) ) {
			message += 'Please fill in a valid email address for your email.\n';
		}
	}
	
    if (f.friend_name_1.value == '') {
        message += 'Please fill in friend\'s name 1.\n';
    }
 
    if (f.friend_email_1.value == '') {
        message += 'Please fill in friend\'s email 1.\n';
    } else {
		if ( !(emailregex.test(f.friend_email_1.value)) ) {
			message += 'Please fill in a valid email address for Friend\'s Email 1.\n';
		}
	}

    if (f.friend_email_2.value != '') {
		if ( !(emailregex.test(f.friend_email_2.value)) ) {
			message += 'Please fill in a valid email address for Friend\'s Email 2.\n';
		}
	}
	
    if (f.friend_email_3.value != '') {
		if ( !(emailregex.test(f.friend_email_3.value)) ) {
			message += 'Please fill in a valid email address for Friend\'s Email 3.\n';
		}
	}
	
	if (message == '') {
    } else {
        alert(message);
        return false;
    }
}