// JavaScript Document
var num_children = 5;
var confirm_unload = true;
var membership_type = "";

window.onbeforeunload = function()
{
	if (confirm_unload)
		return "You will lose any unsaved information.";	
}

addLoadEvent(capture_login_enter);

function capture_login_enter()
{
	if (!document.generalForm.member_id)
	{
		document.getElementById("child_last_name").onkeypress= checkLoginEnter;
		document.getElementById("member_child_id").onkeypress= checkLoginEnter;
	}
}

function checkLoginEnter(e, obj)
{
	var keynum;
	var keychar;
	var numcheck;
	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	
	//keychar = String.fromCharCode(keynum);
	//numcheck = /\d/;
	//return !numcheck.test(keychar);
	if (keynum == 13)
	{
		membership_form_lookup();
		return false;
	}
	else
	{
		return true;
	}
}

function add_member_child()
{
	num_children++;
	
	var add_here = document.getElementById("more_member_children");
	
	var new_br = document.createElement("br");
	
	var new_first = document.createElement("input");
	new_first.name = "child_first_name_"+num_children;
	new_first.id = "child_first_name_"+num_children;
	new_first.className = "input_med clearout";
	new_first.title = "first name";
	new_first.value = "first name";
	new_first.onfocus = clearout;
	
	var new_space1 = document.createTextNode(" ");
	
	var new_last = document.createElement("input");
	new_last.name = "child_last_name_"+num_children;
	new_last.id = "child_last_name_"+num_children;
	new_last.className = "input_large clearout";
	new_last.title = "last name";
	new_last.value = "last name";
	new_last.onfocus = clearout;
	
	var new_space2 = document.createTextNode(" ");
	
	var new_birthdate = document.createElement("input");
	new_birthdate.name = "child_birthdate_"+num_children;
	new_birthdate.id = "child_birthdate_"+num_children;
	new_birthdate.className = "input_med clearout";
	new_birthdate.title = "mm/dd/yyyy";
	new_birthdate.value = "mm/dd/yyyy";
	new_birthdate.onfocus = clearout;
	
	add_here.appendChild(new_br);
	add_here.appendChild(new_first);
	add_here.appendChild(new_space1);
	add_here.appendChild(new_last);
	add_here.appendChild(new_space2);
	add_here.appendChild(new_birthdate);
}

function toggle_gift_membership_form(is_checked)
{
	var membership_form = document.getElementById("gift_membership_form");
	if (is_checked)
		membership_form.style.display = "";
	else
		membership_form.style.display = "none";		
}

function toggle_member_login(dsply)
{
	//don't show or hide stuff if they've already logged in
	if (document.generalForm.member_id)
		return;
	
	document.getElementById("membership_member_login").style.display = dsply;
	if (dsply == "")
		document.getElementById("child_last_name").focus();
	document.getElementById("toggleable_part").style.display = (dsply=="") ? "none" : "";
}

function doSubmit(objForm)
{
	try
	{
		var validate = new Array();
		validate.push(new Array("parent_first_name", "Parent First Name"));
		validate.push(new Array("parent_last_name", "Parent Last Name"));
		validate.push(new Array("address1", "Address Line 1"));
		validate.push(new Array("city", "City"));
		validate.push(new Array("state", "State"));
		validate.push(new Array("zip_code", "Zip Code"));
		validate.push(new Array("phone", "Phone"));
		validate.push(new Array("email", "Email"));
		
		//validate member children
		var child_validation = new Array();
	
		for (var i=0; i<objForm.elements.length; i++)
		{
			//if this is the first child, or if any other child has one of the three fields filled in, require first name and birthdate
			if ((objForm.elements[i].name == "child_first_name_1"
					|| (objForm.elements[i].value != "" 
						&& objForm.elements[i].value != objForm.elements[i].title)
				)
				&& (objForm.elements[i].name.indexOf("child_first_name_") != -1 
					|| objForm.elements[i].name.indexOf("child_last_name_") != -1 
					|| objForm.elements[i].name.indexOf("child_birthdate_") != -1)
				)
			{
				var last_pos = objForm.elements[i].name.lastIndexOf("_");
				var child_n = objForm.elements[i].name.substr(last_pos+1);
				if (!child_validation[child_n])
				{
					child_validation[child_n] = "Y";	//this child has already been validated;
					validate.push(new Array("child_first_name_"+child_n, "Child "+child_n+" First Name"));
					validate.push(new Array("child_birthdate_"+child_n, "Child "+child_n+" Birthdate"));
				}
			}
		}
		
		
		var max_children = 0;
		if (document.getElementById("membership_level_1").checked)
			max_children = 1;
		else if (document.getElementById("membership_level_2").checked)
			max_children = 2;
		else if (document.getElementById("membership_level_3").checked)
			max_children = 3;
		
		//if they have more children than allowed by membership_level, and they've not chosen membership_level_3, make them fix it
		if ((child_n > max_children && max_children != 3) || child_n < max_children)
		{
			var msg = "It appears that you have entered information for "+child_n+" member child";
			if (child_n > 1)
				msg += "ren";
			msg += ".\nPlease choose a Level ";
			for (var m=0; m<child_n && m<3; m++)
				msg += "I";
			msg += " Membership, or add/remove children to match your selected level.";
			alert(msg);
			return false;
		}
		
		//if they've checked gift membership, validate all gift fields
		if (objForm.gift_membership.checked)
		{
			validate.push(new Array("gift_purchaser_name", "Gift Purchaser Name"));
			validate.push(new Array("gift_address", "Gift Purchaser Address"));
			validate.push(new Array("gift_city", "Gift Purchaser City"));
			validate.push(new Array("gift_state", "Gift Purchaser State"));
			validate.push(new Array("gift_zip_code", "Gift Purchaser Zip Code"));
			validate.push(new Array("gift_phone", "Gift Purchaser Phone"));
			validate.push(new Array("gift_email", "Gift Purchaser Email"));
		}
		
		for (var j=0; j<validate.length; j++)
		{
			var validate_this = document.getElementById([validate[j][0]]);
			if (validate_this.value == "" || validate_this.value == validate_this.title)
			{
				alert("Please enter a value for "+validate[j][1]);
				validate_this.focus();
				return false;
			}
		}
		
		for (var k=0; k<objForm.elements.length; k++)
		{
			if (objForm.elements[k].type == "text" && objForm.elements[k].value == objForm.elements[k].title)
			{
				objForm.elements[k].value = "";
			}
		}
		
		confirm_unload = false;	//don't display unload message
		return true;
	}
	catch (e)
	{
		for (var k=0; k<objForm.elements.length; k++)
		{
			if (objForm.elements[k].type == "text" && objForm.elements[k].value == objForm.elements[k].title)
			{
				objForm.elements[k].value = "";
			}
		}
		
		//alert(validate[j][0]+"\n"+e);	
		alert("Sorry, an error occured while trying to submit your form.\nPlease print and complete this form and bring it in to Treehouse and we'll process your membership right away.");
		return false;
	}
}

var validate_running = false;
function membership_form_lookup()
{
	var child_last_name = document.getElementById("child_last_name").value;
	var member_child_id = document.getElementById("member_child_id").value;
	
	if (child_last_name == "")
	{
		alert("Please fill in a value for Child Last Name.");
		return false;
	}
	
	if (member_child_id == "")
	{
		alert("Please fill in a value for Member Number.");
		return false;
	}
	
	if (document.generalForm.membership_type_renewal.checked)
	{
		membership_type = "renewal";
	}
	else if (document.generalForm.membership_type_upgrade.checked)
	{
		membership_type = "upgrade";
	}
	else
	{
		alert("You must select renewal or upgrade in order to look up curent member information.");
		return false;
	}
	
	var vars = 'task=ajax_update&child_last_name='+child_last_name+'&member_child_id='+member_child_id;
	
	validate_running = true;
	document.getElementById("membership_form_lookup_button").className = "disabled_button";
	new Ajax.Request("/inc/ajax_membership_form_lookup.php", 
	{ 
		method: 'post', 
		postBody: vars,
		onComplete: membership_form_response
	});
}

function membership_form_response(req)
{
	document.getElementById("membership_form_lookup_button").className = "leaf_button";
	validate_running = false;
	
	if (req.responseText == "SUCCESS")
	{
		confirm_unload = false;	//don't display unload message
		top.location.href = "/membership_form.php?task=lookup&membership_type="+membership_type;	
	}
	else
	{
		alert("Sorry, we couldn't find a member account with that last name and member number.");
	}
}

function save_for_later()
{
	document.generalForm.task.value = "save_for_later";
	if (doSubmit(document.generalForm))
		document.generalForm.submit();
}
