// JavaScript Document
var mulligan_fee = 0;
var golfer_fee = 0;

function update_fee(obj, fv)	//fv = functional_value of the field_value row
{
	if (fv != "custom")
	{
		fv = parseInt(fv);
		golfer_fee = fv;
		
		if (mulligan_fee > 50 && golfer_fee == 175)
		{
			alert("You cannot purchase a Mulligan Package for more golfers than are included in your Golf Registration Type.");
			document.generalForm.elements["field_id-21"].selectedIndex = 0;
			mulligan_fee = 0;
		}
		
		//add on any mulligan package fees
		fv += mulligan_fee;
		document.getElementById("registration_fee").innerHTML = "$"+number_format(fv);
	}
	else
	{
		//they can't have any mulligans with this package
		document.generalForm.elements["field_id-21"].selectedIndex = 0;
		mulligan_fee = 0;
		golfer_fee = 0;
		
		fv = "Prize Donation or Contribution - No Fee";
		document.getElementById("registration_fee").innerHTML = fv;
	}
	
	if (!document.generalForm.elements["fee"])
	{
		var myhidden = document.createElement("input");
		myhidden.setAttribute("type", "hidden");
		myhidden.setAttribute("name", "fee");
		myhidden.setAttribute("value", fv);
		document.generalForm.appendChild(myhidden);
	}
	else
	{
		document.generalForm.fee.value = fv;
	}
}

function update_mulligan_package(obj, fv)	//fv = functional_value of the field_value row
{	
	var dashpos = obj.options[obj.selectedIndex].text.indexOf("-");
	var cleaned = obj.options[obj.selectedIndex].text.substr(0, dashpos);
	
	var re = RegExp(/[^0-9]/ig)
	var num = cleaned.replace(re, '');
	var num_mulligans = parseInt(num);
		
	if (!isNaN(num_mulligans))
		mulligan_fee = 50 * num_mulligans;
	else
		mulligan_fee = 0;
		
	if (mulligan_fee != 0 && golfer_fee == 0)
	{
		alert("You must select a Golf Registration Type that includes at least one golfer in order to purchase a Mulligan Package.");
		obj.selectedIndex = 0;
		mulligan_fee = 0;
		return;
	}
	else if (mulligan_fee > 50 && golfer_fee == 175)
	{
		alert("You cannot purchase a Mulligan Package for more golfers than are included in your Golf Registration Type.");
		obj.selectedIndex = 0;
		mulligan_fee = 0;
		return;
	}
	
	var total_fee = mulligan_fee + golfer_fee;
	document.getElementById("registration_fee").innerHTML = "$"+number_format(total_fee);
	
	if (!document.generalForm.elements["fee"])
	{
		var myhidden = document.createElement("input");
		myhidden.setAttribute("type", "hidden");
		myhidden.setAttribute("name", "fee");
		myhidden.setAttribute("value", total_fee);
		document.generalForm.appendChild(myhidden);
	}
	else
	{
		document.generalForm.fee.value = total_fee;
	}
}

function update_num_guests(obj, fv)	//since fv is the field_value_id, let's just get the text of the selected option
{
	var num_guests = obj.options[obj.selectedIndex].text;
	var fee = num_guests * 100;
	document.getElementById("registration_fee").innerHTML = "$"+number_format(fee);
	
	if (!document.generalForm.elements["fee"])
	{
		var myhidden = document.createElement("input");
		myhidden.setAttribute("type", "hidden");
		myhidden.setAttribute("name", "fee");
		myhidden.setAttribute("value", fee);
		document.generalForm.appendChild(myhidden);
	}
	else
	{
		document.generalForm.fee.value = fee;
	}
}

//for use with num_member_tickets and num_non_member_tickets
function update_registration_fee(obj, fv)	//fv = functional_value of the field_value row
{
	var register_num_member_tickets = getElementsByClass("register_num_member_tickets");
	var register_num_non_member_tickets = getElementsByClass("register_num_non_member_tickets");
	
	var fee = 0;
	
	if (register_num_member_tickets.length == 1)
	{
		var member_fee = register_num_member_tickets[0].options[register_num_member_tickets[0].selectedIndex].text;
		if (member_fee != "n/a")
		{
			fee += member_fee * 3;	
		}
	}
	if (register_num_non_member_tickets.length == 1)
	{
		var non_member_fee = register_num_non_member_tickets[0].options[register_num_non_member_tickets[0].selectedIndex].text;
		if (non_member_fee != "n/a")
		{
			fee += non_member_fee * 10;	
		}
	}
	
	document.getElementById("registration_fee").innerHTML = "$"+fee.toFixed(2);
	
	if (!document.generalForm.elements["fee"])
	{
		var myhidden = document.createElement("input");
		myhidden.setAttribute("type", "hidden");
		myhidden.setAttribute("name", "fee");
		myhidden.setAttribute("value", fee);
		document.generalForm.appendChild(myhidden);
	}
	else
	{
		document.generalForm.fee.value = fee;
	}
}

var validate_running = false;
function register_validate_member()
{
	document.getElementById("validate_member_button").className = "disabled_button";
	document.getElementById("validate_member_button").value = "Please wait...";
	
	var num_member_tickets = getElementsByClass("register_num_member_tickets");
	if (!num_member_tickets || num_member_tickets.length == 0)
	{
		alert("Sorry, we can't look up members right now. Please try again later.");
		document.getElementById("validate_member_button").className = "leaf_button";
		document.getElementById("validate_member_button").value = "UPDATE";
		return;
	}
	num_member_tickets = num_member_tickets[0];
	
	if (num_member_tickets.options[num_member_tickets.selectedIndex].text == "n/a")
	{
		validate_running = true;
		var child_last_name = document.getElementById("child_last_name").value;
		var member_child_id = document.getElementById("member_child_id").value;
		
		var vars = 'task=ajax_update&child_last_name='+child_last_name+'&member_child_id='+member_child_id;
		
		new Ajax.Request("/inc/ajax_validate_member.php", 
		{ 
			method: 'post', 
			postBody: vars,
			onComplete: register_validate_member_response
		});

		return false;	//this is needed so page doesn't refresh
	}
	else	//don't really validated
	{
		document.getElementById("validate_member_button").className = "leaf_button";
		document.getElementById("validate_member_button").value = "UPDATE";
	}
}

function register_validate_member_response(req)
{
	document.getElementById("validate_member_button").className = "leaf_button";
	document.getElementById("validate_member_button").value = "UPDATE";
	
	response_split = req.responseText.split("*@@@*");
	if (response_split.length > 1 && response_split[1]=="SUCCESS")
	{
		var num_member_tickets = getElementsByClass("register_num_member_tickets");
		if (!num_member_tickets || num_member_tickets.length == 0)
		{
			alert("Fail");
			return;
		}
		var member_tickets = num_member_tickets[0];
		
		for (var i=0; i<member_tickets.length; i++)
		{
			member_tickets.remove(i);
		}
		
		var allowed_tickets = parseInt(response_split[2]);
		
		if ($("#registration_id").val() == 19)
			allowed_tickets += 2;
		
		for (var i=0; i<=allowed_tickets; i++)
		{
			opt = document.createElement("option");
			opt.value = i;
			opt.text = i;
			try
			{
				member_tickets.add(opt,null); // standards compliant
			}
			catch(ex)
			{
				member_tickets.add(opt); // IE only
			}
		}
		alert("Verified! You may now purchase up to "+allowed_tickets+" member tickets if available.");
	}
	else if (response_split.length > 1 && response_split[1]=="FAILURE")
	{
		alert("Sorry, we could not find a member with the last name and member number you entered. If you need, please call us at 801-394-9663 for more information.");
	}
	else
	{
		//document.write(req.responseText);
		alert(req.responseText+" There was an error trying to find the member you requested. Please refresh this page and try again.");
	}
	validate_running = false;
}

addLoadEvent(register_capture_login_enter);

function register_capture_login_enter()
{
	if (document.getElementById("child_last_name") && !document.generalForm.member_id)
	{
		document.getElementById("child_last_name").onkeypress = register_checkLoginEnter;
		document.getElementById("member_child_id").onkeypress = register_checkLoginEnter;
	}
}

function register_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)
	{
		register_validate_member();
		return false;
	}
	else
	{
		return true;
	}
}

function trySubmit(objForm)
{
	if (document.getElementById("tickets_left"))
	{
		var num_tickets_left = document.getElementById("tickets_left").value;
		var register_num_member_tickets = getElementsByClass("register_num_member_tickets");
		var register_num_member_parents = getElementsByClass("register_num_member_parents");
		var register_num_non_member_tickets = getElementsByClass("register_num_non_member_tickets");
		
		var num_tickets = 0;
		
		if (register_num_member_tickets.length == 1)
		{
			var member_tickets = register_num_member_tickets[0].options[register_num_member_tickets[0].selectedIndex].text;
			if (member_tickets != "n/a")
			{
				num_tickets += parseInt(member_tickets);	
			}
		}
		if (register_num_non_member_tickets.length == 1)
		{
			var non_member_tickets = register_num_non_member_tickets[0].options[register_num_non_member_tickets[0].selectedIndex].text;
			if (non_member_tickets != "n/a")
			{
				num_tickets += parseInt(non_member_tickets);	
			}
		}
		if (register_num_member_parents.length == 1)
		{
			var member_parents = register_num_member_parents[0].options[register_num_member_parents[0].selectedIndex].text;
			if (member_parents != "n/a")
			{
				num_tickets += parseInt(member_parents);	
			}
		}
		
		if (num_tickets_left < num_tickets)
		{
			var msg = "Sorry, there ";
			if (num_tickets_left == 1)
				msg += "is only 1 open spot left."
			else
				msg += "are only "+num_tickets_left+" open spots left."
			alert(msg);
			return false;
		}
		return true;
	}
	return true;
}

function update_tickets_8(obj, fv)	//fv = functional_value of the field_value row
{
	var tmp_fee = 0;
	
	if ($("input:radio:checked").length == 0)
	{
		$("input:radio:first").attr("checked", "checked");
	}
	else if ($("input:radio:first").attr("checked"))	//since tickets
	{
		var member_tickets = $("select:first").children("option:selected").attr("value");
		tmp_fee = member_tickets * 3;
	}
	else	//family ticket is selected
	{
		tmp_fee = 10;	
	}
	
	document.getElementById("registration_fee").innerHTML = "$"+tmp_fee.toFixed(2);
	
	if (!document.generalForm.elements["fee"])
	{
		var myhidden = document.createElement("input");
		myhidden.setAttribute("type", "hidden");
		myhidden.setAttribute("name", "fee");
		myhidden.setAttribute("value", tmp_fee);
		document.generalForm.appendChild(myhidden);
	}
	else
	{
		document.generalForm.fee.value = tmp_fee;
	}
}

//function to run after page loads
$(document).ready(function()
{
	if ($("input:radio").length>0 && $("input:radio:checked").length == 0)
	{
		$("input:radio:first").attr("checked", "checked");
	}
});

function update_ftb_tickets(obj, fv)	//fv = functional_value of the field_value row
{
	var tmp_fee = 0;
	
	var ftb_member_tickets = parseInt($(".ftb_member_tickets option:selected").text());
	var ftb_non_member_tickets = parseInt($(".ftb_non_member_tickets option:selected").text());
	
	if (isNaN(ftb_member_tickets))
		ftb_member_tickets = 0;
	
	if (ftb_member_tickets > 4)
		tmp_fee  += 40;
	else
		tmp_fee += ftb_member_tickets*10;
	tmp_fee += ftb_non_member_tickets*15;
	document.getElementById("registration_fee").innerHTML = "$"+tmp_fee.toFixed(2);
	
	if (!document.generalForm.elements["fee"])
	{
		var myhidden = document.createElement("input");
		myhidden.setAttribute("type", "hidden");
		myhidden.setAttribute("name", "fee");
		myhidden.setAttribute("value", tmp_fee);
		document.generalForm.appendChild(myhidden);
	}
	else
	{
		document.generalForm.fee.value = tmp_fee;
	}
}


