// JavaScript Document

var guestCount = 0;
var attending = "";

window.onload = prepareForm;
window.onunload = clearForm();

function prepareForm() {
	
	var acceptRad=document.getElementById("acceptRadio");
	acceptRad.onclick = function(){
          return Accept();
        };

	var guestsSelect=document.getElementById("guests");
	//guestsSelect.onfocus = function(){
          //return checkGuests(this.value);
       // };
	guestsSelect.onchange = function(){
          return checkGuests(); //Can you leave out the argument the function is expecting?
        };
		//Couldn't use this.value and then charAt(0) because IE wasn't catching any value

	var declineRad=document.getElementById("declineRadio");
	declineRad.onclick = function(){
          return decline();
        };

	var rsvpSubBut=document.getElementById("rsvpSubmit");
	rsvpSubBut.onclick = function(){
          return validateForm();
        };

	var rsvpResetBut=document.getElementById("rsvpReset");
	rsvpResetBut.onclick = function(){
          return clearForm();
        };
}

function validateForm() {
	
	errorMsg = "";
	hideErrors();
	
	var eventElements = document.getElementsByName("event[]");

	for (var i=0; i<eventElements.length; i++) {
	    if (eventElements[i].checked == true) {
			document.getElementById("eventError").style.visibility = "hidden";
			errorMsg = "";
			break;
		}
		document.getElementById("eventError").style.visibility = "visible";
		errorMsg = "yes";	
	}
					
	if (document.rsvpForm.email1.value != document.rsvpForm.email2.value){
		document.getElementById("mail2Error").style.visibility = "visible";
		errorMsg = "yes";
	}
	else if (document.rsvpForm.email1.value == "") {
		document.getElementById("mail1Error").style.visibility = "visible";
		errorMsg = "yes";
	}
	
	if (attending == "") {
		document.getElementById("attendingError").style.visibility = "visible";
		errorMsg = "yes";
	}
	
	if (attending == "yes" && guestCount == 0) {
		document.getElementById("guestsError").style.visibility = "visible";
		errorMsg = "yes";
	}
		
	j=guestCount+1;

	for (i=1;i<j;i++){
		firstname=document.getElementById("guest" + i + "First").value;
		lastname=document.getElementById("guest" + i + "Last").value;
		if (firstname == "" || lastname == "") {
			document.getElementById("name" + i + "Error").style.visibility = "visible";
			errorMsg = "yes";
		}	
		
	}
	
	if (errorMsg != "") {
		document.getElementById("submitError").style.visibility = "visible";
	}	
	
	if (errorMsg=="") {
		return(true);
	}

return(false);
	
}

function Accept(){
	document.getElementById("guests").disabled = false;
	document.getElementById("attending").style.color = "#333";
	attending="yes";
	document.getElementById("decline_help").className = "";
	//document.getElementById("decline_help").style.color = "#333";
}


function decline(){
	document.getElementById("guests").disabled = true;
	document.getElementById("attending").style.color = "#cac8bb";
	checkGuests(1);
	attending="no";
	document.getElementById("decline_help").className = "highlight";
}

function checkGuests(guests){
	if (guests == 1){
	numOfGuests=guests;//.charAt(0);
	} else {
	numOfGuests=document.getElementById("guests").selectedIndex;
	}
	for (i=1;i<5;i++){
			document.getElementById("guest" + i + "First").disabled = true;
			document.getElementById("guest" + i + "Last").disabled = true;
			document.getElementById("guest" + i).style.color = "#cac8bb";
	}

	numOfGuests=parseFloat(numOfGuests);
	j=numOfGuests+1;

	for (i=1;i<j;i++){
		document.getElementById("guest" + i + "First").disabled = false;
		document.getElementById("guest" + i + "Last").disabled = false;
		document.getElementById("guest" + i).style.color = "#333";
	}

guestCount=numOfGuests;
}

function clearForm() {

//enables all the guest name fields:
	for (i=1;i<5;i++){
		document.getElementById("guest" + i + "First").disabled = false;
		document.getElementById("guest" + i + "Last").disabled = false;
		document.getElementById("guest" + i).style.color = "#333";
	}	
	
hideErrors();
}

function hideErrors() {
	document.getElementById("eventError").style.visibility = "hidden";
	document.getElementById("mail1Error").style.visibility = "hidden";
	document.getElementById("mail2Error").style.visibility = "hidden";
	document.getElementById("attendingError").style.visibility = "hidden";
	document.getElementById("guestsError").style.visibility = "hidden";
	document.getElementById("submitError").style.visibility = "hidden";
	
	for (i=1;i<5;i++) {
	document.getElementById("name" + i + "Error").style.visibility = "hidden";
	}
}