function check_form(form) {
	var prepop = false;
	var elements;
	
	// New User Form
	if (form.name == "form_newuser") {
		
		// First Name
		if (form.name_first.value == "") {
			alert("Your First Name is required, please fill it in.");
			form.name_first.focus();
			return false;
		}
		
		// Last Name
		if (form.name_last.value == "") {
			alert("Your Last Name is required, please fill it in.");
			form.name_last.focus();
			return false;
		}
		
		// E-Mail Address
		if (form.email.value == "") {
			alert("Your E-Mail Address is required, please fill it in.");
			form.email.focus();
			return false;
		}
		
		// Password
		if (form.password.value == "") {
			alert("A Password is required, please fill it in.");
			form.password.focus();
			return false;
		}
		
		// Password (Confirmation)
		if (form.password_verify.value != form.password.value) {
			alert("Your Password Confirmation doesn't match, please retype it");
			form.password_verify.value = "";
			form.password_verify.focus();
			return false;
		}
		
		// Address Line 1
		/*if (form.addr_line_1.value == "") {
			alert("Your Address is required, please fill it in.");
			form.addr_line_1.focus();
			return false;
		}*/
		
		// City
		if (form.city.value == "") {
			alert("Your City is required, please fill it in.");
			form.city.focus();
			return false;
		}
		
		// State
		if (form.state.value == "") {
			alert("Your State is required, please fill it in.");
			form.state.focus();
			return false;
		}
		
		// ZIP
		if (form.zip.value == "") {
			alert("Your ZIP is required, please fill it in.");
			form.zip.focus();
			return false;
		}
		
		// DOB Month
		if (form.dob_month.value == "") {
			alert("Your Month of Birth is required, please fill it in.");
			form.dob_month.focus();
			return false;
		}
		
		// DOB Day
		if (form.dob_day.value == "") {
			alert("Your Day of Birth is required, please fill it in.");
			form.dob_day.focus();
			return false;
		}
		
		// DOB Year
		if (form.dob_year.value == "") {
			alert("Your Year of Birth is required, please fill it in.");
			form.dob_year.focus();
			return false;
		}
		
		// Age Verification
		var now = new Date();
		var dob = new Date();
		var dobMin = new Date();
		
		dob.setYear(form.dob_year.value);
		dob.setMonth(form.dob_month.value - 1);
		dob.setDate(form.dob_day.value);
		dobMin.setYear(now.getFullYear() - 13);
		
		if (dob.getTime() > dobMin.getTime()) {
			alert("You must be 13 years or older to register.");
			form.dob_month.focus();
			return false;
		}
		
		// ToS
		if (form.tos.checked == false) {
			alert("You must Agree to the Terms of Use and Official Rules before continuing.");
			form.tos.focus();
			return false;
		}
	
	// Edit User Form
	} else if (form.name == "form_edituser") {
		
		// First Name
		if (form.name_first.value == "") {
			alert("Your First Name is required, please fill it in.");
			form.name_first.focus();
			return false;
		}
		
		// Last Name
		if (form.name_last.value == "") {
			alert("Your Last Name is required, please fill it in.");
			form.name_last.focus();
			return false;
		}
		
		// E-Mail Address
		if (form.email.value == "") {
			alert("Your E-Mail Address is required, please fill it in.");
			form.email.focus();
			return false;
		}
		
		// Password (Confirmation)
		if (form.password_verify.value != form.password.value) {
			alert("Your Password Confirmation doesn't match, please retype it");
			form.password_verify.value = "";
			form.password_verify.focus();
			return false;
		}
		
		// Address Line 1
		/*if (form.addr_line_1.value == "") {
			alert("Your Address is required, please fill it in.");
			form.addr_line_1.focus();
			return false;
		}*/
		
		// City
		if (form.city.value == "") {
			alert("Your City is required, please fill it in.");
			form.city.focus();
			return false;
		}
		
		// State
		if (form.state.value == "") {
			alert("Your State is required, please fill it in.");
			form.state.focus();
			return false;
		}
		
		// ZIP
		if (form.zip.value == "") {
			alert("Your ZIP is required, please fill it in.");
			form.zip.focus();
			return false;
		}
		
		// DOB Month
		if (form.dob_month.value == "") {
			alert("Your Month of Birth is required, please fill it in.");
			form.dob_month.focus();
			return false;
		}
		
		// DOB Day
		if (form.dob_day.value == "") {
			alert("Your Day of Birth is required, please fill it in.");
			form.dob_day.focus();
			return false;
		}
		
		// DOB Year
		if (form.dob_year.value == "") {
			alert("Your Year of Birth is required, please fill it in.");
			form.dob_year.focus();
			return false;
		}
		
		// Age Verification
		var now = new Date();
		var dob = new Date();
		var dobMin = new Date();
		
		dob.setYear(form.dob_year.value);
		dob.setMonth(form.dob_month.value - 1);
		dob.setDate(form.dob_day.value);
		dobMin.setYear(now.getFullYear() - 13);
		
		if (dob.getTime() > dobMin.getTime()) {
			alert("You must be 13 years or older to register.");
			form.dob_month.focus();
			return false;
		}
	
	// Login
	} else if (form.name == "form_login") {
	
		// Login
		if (form.login.value == "" || form.login.value == "e-mail") {
			alert("Please fill in your E-Mail Address.");
			form.login.value = "";
			form.login.focus();
			return false;
		}
	
		// Pass
		if (form.pass.value == "" || form.pass.value == "****") {
			alert("Please fill in your Password.");
			form.login.pass = "";
			form.pass.focus();
			return false;
		}
		
	// Add Song
	} else if (form.name == "form_add_song") {
		
		// Artist, Song & Why
		elements = document.getElementsByTagName("textarea");
		for(i=0; i < elements.length; i++) {
			if (elements[i].className == "top_textarea" && (elements[i].value != "Why I Chose this Song" && elements[i].value != "")) {
				prepop = true;
			}
		}
		
		if (!prepop && (form.artist.value == "Artist Name" || form.artist.value == "" || form.song.value == "Song Name" || form.song.value == "" || form.why.value == "Why I Chose this Song" || form.why.value == "")) {
			alert("Please select a song from the list or enter both an Artist, Song title and why you chose it.");
			form.focus();
			return false;
		}
		
		// Too many songs
		if (form.count.value >= 10) {
			alert("You can only have 10 items in your playlist, please delete a song first.")
			return false;
		}
		
	// Submit Playlist
	} else if (form.name == "form_playlist") {
		
		// Login Check
		if (!form.login) {
			alert("You must Login or Create an Account before submitting your playlist.");
			document.form_login.login.focus();
			return false;
		}
		
		// Too few songs
		if (form.count.value < 7) {
			alert("You must have 7 items in your playlist before you can submit it. You currently have "+form.count.value+".");
			return false;
		}
		
	// Send to a Friend
	} else if (form.name == "form_email") {
		
		// Your Name
		if (form.sender.value == "") {
			alert("Your Name is required, please fill it in.");
			form.sender.focus();
			return false;
		}
		
		// Your E-mail
		if (form.email_from.value == "") {
			alert("Your E-Mail Address is required, please fill it in.")
			form.email_from.focus();
			return false;
		}
		
		// Recipient's Name
		if (form.recipient.value == "") {
			alert("The Recipient's Name is required, please fill it in.")
			form.recipient.focus();
			return false;
		}
		
		// Recipient's E-mail
		if (form.email_to.value == "") {
			alert("The Recipient's E-Mail Address is required, please fill it in.");
			form.email_to.focus();
			return false;
		}
		
	// Dedicate Your Playlist
	} else if (form.id == "form_dedicate") {
	
		// Your Name
		if (form.sender.value == "") {
			alert("Your Name is required, please fill it in.");
			form.sender.focus();
			return false;
		}
		
		// Your E-mail
		if (form.email_from.value == "") {
			alert("Your E-Mail Address is required, please fill it in.")
			form.email_from.focus();
			return false;
		}
		
		// Friend's Name
		if (form.recipient.value == "") {
			alert("Friend's Name is required, please fill it in.")
			form.recipient.focus();
			return false;
		}
		
		// Friend's E-mail
		if (form.email_to.value == "") {
			alert("Friend's E-Mail is required, please fill it in.");
			form.email_to.focus();
			return false;
		}
		
		// Dedicate Message
		if (form.message.value == "") {
			alert("Dedicate Message is required, please fill it in.");
			form.message.focus();
			return false;
		}
	
	// Add Themed Song
	} else if (form.id == "form_add_themed_song") {
		
		// Song
		if (form.song.value == "") {
			alert("Song is required, please fill it in.");
			form.song.focus();
			return false;
		}
		
		// Artist
		if (form.artist.value == "") {
			alert("Artist is required, please fill it in.");
			form.artist.focus();
			return false;
		}
		
		// Why
		if (form.why.value == "") {
			alert("Why you chose this song is required, please fill it in.");
			form.why.focus();
			return false;
		}
		
		// Too many songs
		if (form.count.value >= 10) {
			alert("You can only have 10 items in your playlist, please delete a song first.")
			return false;
		}
	
	// Submit Theme
	} else if (form.id == "form_theme") {
		
		// First Name
		if (form.name_first.value == "") {
			alert("First Name is required, please fill it in.");
			form.name_first.focus();
			return false;
		}
		
		// Last Name
		if (form.name_last.value == "") {
			alert("Last Name is required, please fill it in.");
			form.name_last.focus();
			return false;
		}
		
		// E-Mail
		if (form.email.value == "") {
			alert("E-mail is required, please fill it in.");
			form.email.focus();
			return false;
		}
		
		// Theme Name
		if (form.title.value == "") {
			alert("Theme Name is required, please fill it in.");
			form.title.focus();
			return false;
		}
		// Why
		if (form.why.value == "") {
			alert("Why I Chose This Theme is required, please fill it in.");
			form.why.focus();
			return false;
		}

	// No Form Found
	} else {
		alert("Form \""+form.name+"\" can't be found");
	}
	
	return true;
}

function toggle(id) {
	
	var element = document.getElementById(id);
	var elements;
	
	// Clear others
	elements = document.getElementsByTagName("textarea");
	for(i=0; i < elements.length; i++) {
		if (elements[i].className == "top_textarea" && elements[i].id != id) {
			elements[i].value = "Why I Chose this Song";
			elements[i].style.display = "none";
		}
	}
	
	// Show
	if (element.style.display == "none" || !element.style.display) {
		element.style.display = "inline";
		return true;
	
	// Hide
	} else {
		element.style.display = "none";
		return false;
	}
}