/* ****************************************************

	Application: YHA
	
	File: mod_membership_finder.js
	
	Type: Javascript Source
	
	Desc: javascript go to with membership finder module membership/modules/mod_membership_finder.cfm
	
	Comments: 
	
	Author: Danielle Baty
	Date:  22/09/07
	Version: 1.0.0
	
	***** Modification Details *****
	
	DATE 	 	NAME 	 	MODIFICATION
	18/09/08	Beenish		Commented out condition showing family option for under 18 student
**************************************************** */



window.onload = function(event)
{
	$('membership-pick').show();
	
}

// checks f at least one of a set of radios is selected
	function isEmptyRadio(field)
	{
	 	for (var i=0; i<field.length; i++)
		{
			if (field[i].checked)
				return false;
		}
		return true;
	}
	function getRadioValue(field)
	{
	 	for (var i=0; i<field.length; i++)
		{
			if (field[i].checked)
				return field[i].value;
		}
		return "";
	}
	function toggleDisplay(div,showDiv)
	{
		if (showDiv == true) {
			div.style.display = "block";
		}
		else {
			div.style.display = "none";
		}
	}
	function getSuitableMembershipDiv(optionName)
	{
		return document.getElementById('membership-suitable-' + optionName);
	}
	function getMembershipFieldDiv(optionName)
	{
		return document.getElementById('membership-' + optionName);
	}
	function membershipFieldIsDisplayed(optionName)
	{
		if (getMembershipFieldDiv(optionName).style.display == "block") {
			return true;
		} else {
			return false;
		}		
	}
	function isActiveOption(optionName,arActiveOptions)
	{
		for (var i=0;i<arActiveOptions.length;i++)
		{
			if (arActiveOptions[i] == optionName) {
				return true;
			}
		}
		return false;
	}
	function showSuitable(suitableList)
	{
		var optionList = "YHA-membership,YHA-family,YHA-family-youth,student-identity,youth-travel,hostelling-international";
		if (suitableList.length > 0)
			var arSuitable = suitableList.split(",");
		else {
			var arSuitable = new Array();
		}
		var arOptions = optionList.split(",");

		if (arSuitable.length == 0)
		{
			document.getElementById("membership-suitable").style.display = "none";
		} else {
			//display appropriate heading for number of suitable options
			var singular = document.getElementById('membership-suitable-heading-singular');
			var plural = document.getElementById('membership-suitable-heading-plural');
			if (arSuitable.length > 1)
			{
				toggleDisplay(singular,false);
				toggleDisplay(plural,true);

			} else {
				toggleDisplay(singular,true);
				toggleDisplay(plural,false);
			}
			//display suitable options

			for (var i=0;i<arOptions.length;i++)
			{
				//alert(arOptions[i] + ' ' + isActiveOption(arOptions[i],arSuitable));
				if (isActiveOption(arOptions[i],arSuitable))
				{
					toggleDisplay(getSuitableMembershipDiv(arOptions[i]),true);
				} else {
					toggleDisplay(getSuitableMembershipDiv(arOptions[i]),false);
				}
			}
			document.getElementById("membership-suitable").style.display = "block";
		}
	}
	function showMembershipOptions(displayOptionList)
	{
		var optionList = "resident,joining,age,student";
		var arDisplayOptions = displayOptionList.split(",");
		arOptions = optionList.split(",");
		//display selected options
		for (var i=0;i<arOptions.length;i++)
		{
			if (isActiveOption(arOptions[i],arDisplayOptions))
			{
				toggleDisplay(getMembershipFieldDiv(arOptions[i]),true);
			} else {
				toggleDisplay(getMembershipFieldDiv(arOptions[i]),false);
			}
		}
	}
	
	function submitMembershipFinder(objForm)
	{
		var message = "";
		
		if (isEmptyRadio(objForm.resident)) {
			message += "Please select if you are an Australian resident.\n";
		}
		if (message == "" && membershipFieldIsDisplayed("joining"))
		{
			if (isEmptyRadio(objForm.joining))
			{
				message += "Please select if you will be joining as an individual or family.\n";
			}
		}
		if (message == "" && membershipFieldIsDisplayed("age"))
		{
			if (isEmptyRadio(objForm.age))
			{
				message += "Please select your age.\n";
			}
		}
		if (message == "" && membershipFieldIsDisplayed("student"))
		{
			if (isEmptyRadio(objForm.student))
			{
				message += "Please select if you are a full time student.\n";
			}
		}
		
		if (message != "")
		{
			alert(message);
			message = "";
		} else {
			suitableList = getSuitableOptionList(objForm);
			showSuitable(suitableList);			
		}

		return false;
	}

	function toggleMembershipDisplay(objForm,objField)
	{
		var message = "";
		
		
		//they have changed their selection so hide the results.
		$('membership-suitable').hide();
		
			
		if (objField.name == "resident")
		{
			if (!isEmptyRadio(objForm[objField.name])) {
				if (getRadioValue(objForm[objField.name]) == "yes") {
					//go to next question
					//showMembershipOptions("resident,joining,age,student");
					showMembershipOptions("resident,joining");
				} else { //international resident
					showMembershipOptions("resident");
					submitMembershipFinder(objForm);						
				}
			}
		} else if (objField.name == "joining")
		{
			if (!isEmptyRadio(objForm[objField.name])) {
				if (getRadioValue(objForm[objField.name]) == "individual") {
					//go to next question
					//showMembershipOptions("resident,joining,age,student");					
					showMembershipOptions("resident,joining,age");
				} else { //family membership
					showMembershipOptions("resident,joining");
					submitMembershipFinder(objForm);						
				}
			}
		} else if (objField.name == "age") {
			// no toggle
			showMembershipOptions("resident,joining,age,student");
			
			
			
			if( $('student_yes').checked || $('student_no').checked )
			{
				submitMembershipFinder(objForm);
			}
		} else if (objField.name == "student")
		{
			//no toggle
			submitMembershipFinder(objForm);	
		}		
	}
	
	function getSuitableOptionList(objForm)
	{
		var message = "";
				
		if (getRadioValue(objForm["resident"]) == "no") {
			return "hostelling-international";
		} else if (getRadioValue(objForm["joining"]) == "family") {
			return "YHA-family";
		} else { 
		
			var showOptionList = "YHA-membership";
			var age = getRadioValue(objForm["age"]);
			var student = getRadioValue(objForm["student"]);

			if (student == "yes") {
				showOptionList += ",student-identity";
			}
			if (age == "under18" || age == "under26") {
				showOptionList += ",youth-travel";
			}
			/*if (student == "yes" && age == "under18") {
				showOptionList += ",YHA-family-youth";
			}*/
			return showOptionList;			
		}		
	}

