/*
	Advances the focus to field as specified by parameter 'nextFieldId' 
	if the number of characters of input equals parameter 'lengthOfInput'.
	
	If did not specify a field id to advance to, will just return.
	If length of input is less than or equal to 0, will just return.
*/

function moveToNextInputField(inputFieldId, nextFieldId, lengthOfInput)
{
	if ( (null == inputFieldId) || (null == nextFieldId) )
		return;
		
	if (0 >= lengthOfInput)
		return;

	if (lengthOfInput == document.getElementById(inputFieldId).value.length)
		document.getElementById(nextFieldId).focus();
}

/*
	Registers the required fields to the Validations object
	Returns True or False if all required fields have been entered
	and are of valid format.
*/
function validateForm()
{
	var validated = true;
	var validations = new Array();	
	var highlightField = true;
	var errorMessageId = "errorMessage";
	var errorMessage = "One or more required form fields are either empty or are missing selections.  Required fields are marked in red, below.  Please review the form, correct as needed, and try sending again.";

	validations.push(validation.required("firstName", errorMessageId, errorMessage, highlightField, errorMessageId));
	validations.push(validation.required("lastName", errorMessageId, errorMessage, highlightField, errorMessageId));
	validations.push(validation.required("email", errorMessageId, errorMessage, highlightField, errorMessageId));
	validations.push(validation.required("verifyEmail", errorMessageId, errorMessage, highlightField, errorMessageId));
	validations.push(validation.required("companyName", errorMessageId, errorMessage, highlightField, errorMessageId));
	validations.push(validation.required("areaCode", errorMessageId, errorMessage, highlightField, errorMessageId));
	validations.push(validation.required("numberSet1", errorMessageId, errorMessage, highlightField, errorMessageId));
	validations.push(validation.required("numberSet2", errorMessageId, errorMessage, highlightField, errorMessageId));
	validations.push(validation.required("zip", errorMessageId, errorMessage, highlightField, errorMessageId));
	
	var areasOfInterestCheckboxes = YAHOO.util.Dom.getElementsByClassName("checkbox", "input", "areasOfInterestOptions");
	var numberOfAreasOfInterestChecked = 0;
	
	for (var i = 0; i < areasOfInterestCheckboxes.length; i++)
	{
		if (areasOfInterestCheckboxes[i].checked)
			numberOfAreasOfInterestChecked++;
	}
	
	for (var v in validations) 
		validated = validated && validations[v];

	validated = validated && (0 < numberOfAreasOfInterestChecked);

	if (false == validated)
	{
		validation.message(errorMessageId, errorMessage);
		validation.highlightLabel(validated, errorMessageId);
		
		document.getElementById(errorMessageId).style.display = "block";
		document.getElementById("instructionMessage").style.display = "none";
	}
	else
	{
		document.getElementById(errorMessageId).style.display = "none";
		document.getElementById("instructionMessage").style.display = "block";
	}
	
	if (true == validated)
		mailForm();
}

function formSubmitSuccess()
{
	var formDiv = document.getElementById("form");
	var formSubmitDiv = document.getElementById("formSubmit");

	if (undefined == formDiv)
		return;
		
	if (undefined != formDiv)
		formDiv.style.display = "none";

	if (undefined != formSubmitDiv)
		formSubmitDiv.style.display = "none";

	var headerElement = document.getElementById("header");
		headerElement.innerHTML = "Thank you for contacting Heart4kids.org.";
		
	var subTitleElement = document.getElementById("subTitle");
		subTitleElement.innerHTML = "Someone from our organization will give you a personal response as soon as possible.";
		
	var introElement = document.getElementById("intro");
		introElement.innerHTML = "Sed mi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec sagittis nulla nonA \
								  diam. Quisque felis ligula, elementum vel, malesuada ac, aliquet vel, libero. Morbi vehicula mattis mauris. Etiam \
								  sapien. \
								  <br /> \
								  Mauris non ipsum. Nullam vulputate elementum diam. Vestibulum eget ipsum ac enim congue porttitor. Aliquam \
								  eleifend leo ut nibh. Donec aliquet est non turpis. Nunc a mauris in pede elementum sollicitudin.";

	var exploreDiv = document.getElementById("explore");
	
	if (undefined != exploreDiv)
		exploreDiv.style.display = "block";
}

function formSubmitFailure()
{
	var formDiv = document.getElementById("form");
	var formSubmitDiv = document.getElementById("formSubmit");

	if (undefined == formDiv)
		return;
		
	if (undefined != formDiv)
		formDiv.style.display = "none";

	if (undefined != formSubmitDiv)
		formSubmitDiv.style.display = "none";

	var headerElement = document.getElementById("header");
		headerElement.innerHTML = "We're Sorry.";
		headerElement.style.display = "block";
		
	var subTitleElement = document.getElementById("subTitle");
		subTitleElement.innerHTML = "An error occurred.  Please try again later.";
		subTitleElement.style.display = "block";
		
	var introElement = document.getElementById("intro");
		introElement.innerHTML = "Sed mi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec sagittis nulla nonA \
								  diam. Quisque felis ligula, elementum vel, malesuada ac, aliquet vel, libero. Morbi vehicula mattis mauris. Etiam \
								  sapien. \
								  <br /> \
								  Mauris non ipsum. Nullam vulputate elementum diam. Vestibulum eget ipsum ac enim congue porttitor. Aliquam \
								  eleifend leo ut nibh. Donec aliquet est non turpis. Nunc a mauris in pede elementum sollicitudin.";
		introElement.style.display = "block";

	var exploreDiv = document.getElementById("explore");
	
	if (undefined != exploreDiv)
		exploreDiv.style.display = "block";
}

var callback =
{
	success: mailFormResult,
	failure: formSubmitFailure,
	timeout: 5000
};

function mailFormResult(o)
{
	if ( (o.responseText !== undefined) && (0 < o.responseText.length) )
	{
		var responseText = o.responseText;
		
		if (1 == responseText)
			formSubmitSuccess();
		else
			formSubmitFailure();
	}
}

function mailForm()
{
	var firstName = document.getElementById("firstName").value;
	var lastName = document.getElementById("lastName").value;
	var phone = document.getElementById("phoneNumber").value;
	var emailAddress = document.getElementById("email").value;
	var verifyEmail = document.getElementById("verifyEmail").value;
	var volunteer = document.getElementById("volunteer").checked;
	var donor = document.getElementById("donor").checked;
	var sponsor = document.getElementById("sponsor").checked;
	var missionTripVolunteer = document.getElementById("missionTripVolunteer").checked;
	var freeText = document.getElementById("freeText").value;
	
	var urlString = "php/mailForm.php?firstName=" + firstName + "&lastName=" + lastName + "&emailAddress=" + emailAddress
	 				+ "&phone=" + phone + "&verifyEmail=" + verifyEmail + "&volunteer=" + volunteer + "&donor=" + donor
					+ "&sponsor=" + sponsor + "&missionTripVolunteer=" + missionTripVolunteer + "&freeText=" + freeText;
	var request = YAHOO.util.Connect.asyncRequest('GET', urlString, callback);
}

