function calculateTotal ()
{
	var frm = document.bkfrm;
	var unused = "++ unused ++";
	
	var badges = parseInt(frm.adults.options[frm.adults.selectedIndex].value) +
			 		parseInt(frm.children.options[frm.children.selectedIndex].value);
	if (badges > frm.adults.options.length)
		badges = frm.adults.options.length;
	var ii = 1;
	while (ii <= badges)
	{
		var txt = frm.elements['badge' + ii++];
		txt.disabled = false;
		if (txt.value == unused)
			txt.value = "";
	}
	while (ii <= frm.adults.options.length)
	{
		var txt = frm.elements['badge' + ii++];
		txt.disabled = true;
		txt.value = unused;
	}
	
	frm.childmeals.disabled = !frm.children.selectedIndex;
		
	frm.adqty.value = frm.adults.options[frm.adults.selectedIndex].value;
	frm.chqty.value = frm.children.options[frm.children.selectedIndex].value;
	frm.admlqty.value = (frm.adultmeals.checked)? frm.adqty.value : 0;
	frm.chmlqty.value = (frm.childmeals.checked)? frm.chqty.value : 0;
	
	frm.adtot.value = frm.adqty.value * frm.adprice.value;
	frm.chtot.value = frm.chqty.value * frm.chprice.value;
	frm.admltot.value = frm.admlqty.value * frm.admlprice.value;
	frm.chmltot.value = frm.chmlqty.value * frm.chmlprice.value;
	
	frm.total.value = parseInt(frm.adtot.value) + parseInt(frm.chtot.value) + parseInt(frm.admltot.value) + parseInt(frm.chmltot.value);
	
	return true;
}

function firstBadge ()
{
	var frm = document.bkfrm;
	frm.badge1.value = frm.nameQZ.value + ' ' + frm.surnameQZ.value;
	return true;
}

function loadPage ()
{
	calculateTotal ();
	if (document.bkfrm.badge1.value.strip().length == 0)
		firstBadge ();
	return true;
}

function xvalidate (frm)
{
	return true;
	/*if (!validate (frm))
		return false;
	if (!validateTickets (frm))
		return false;
	if (!validateBadges (frm))
		return false;
	if (!validatePayment (frm))
		return false;
	return true;*/
}

function validateTickets (frm)
{
	var badges = parseInt(frm.adults.options[frm.adults.selectedIndex].value) +
			parseInt(frm.children.options[frm.children.selectedIndex].value);
	if (badges <= frm.adults.options.length)
		return true;
	
	var msg = "The online booking system handles a maximum\n";
	msg += "of " + frm.adults.options.length + " tickets at a time. Please either:\n";
	msg += "\nA: Select a smaller number of tickets\n";
	msg += "(you can return to this form to book the remainder)\n";
	msg += "\nor\n";
	msg += "\nB: Contact us directly to make a block booking.";
	window.alert (msg);
	return false;
}

function validateBadges (frm)
{
	var badges = parseInt(frm.adults.options[frm.adults.selectedIndex].value) +
			parseInt(frm.children.options[frm.children.selectedIndex].value);
	for (var ii = 1; ii <= badges; ii++)
	{
		var txt = frm.elements['badge' + ii];
		var s = txt.value.strip();
		if (s.length == 0 || !validateNameInternal (s))
		{
			window.alert ("You have not entered a valid name for ticket " + ii);
			txt.focus ();
			return false;
		}
	}
	return true;
}

function validatePayment (frm)
{
	for (var ii = 0; ii < frm.paymt.length; ii++)
		if (frm.paymt[ii].checked)
			return true;
		
	window.alert ("You must select a payment method");
	return false;
}

