// Martin Galpin (2009)
// martin@number66.net
// www.number66.net


//
// Preset championships are is a crude comma-separated string that can be tokenized easily
// 
var presets = [];
presets[0] = "750MC UK Formula Vee|Snetterton=1,Castle Combe=1,Brands Hatch=1,Cadwell Park=2,Anglesey=1,Silverstone=1,Oulton Park=1,Donington Park=1";
presets[1] = "National Formula Ford 1600|Anglesey=1,Snetterton=1,Pembrey=1,Silverstone=1,Oulton Park=1,Knockhill=1,Castle Combe=1,Mondello Park=1";
presets[2] = "My season (Martin Galpin)|Anglesey=1,Brands Hatch=1,Snetterton=1,Pembrey=1,Silverstone=2,Oulton Park=1,Knockhill=1,Castle Combe=2,Mondello Park=1";
presets[3] = "British Formula Ford|Oulton Park=1,Donington Park=1,Rockingham=1,Knockhill=1,Snetterton=1,Silverstone=1,Brands Hatch=3,Castle Combe=1";
presets[4] = "BTCC or Support (FRenault, G50...)|Brands Hatch=2,Thruxton=1,Donington Park=1,Oulton Park=1,Croft=1,Snetterton=1,Knockhill=1,Silverstone=1,Rockingham=1";
presets[5] = "Formula Jedi (2008)|Snetterton=1,Silverstone=1,Oulton Park=1,Cadwell Park=1,Brands Hatch=1,Anglesey=1,Donington Park=1";
presets[6] = "Formula Palmer Audi|Donington Park=1,Brands Hatch=2,Silverstone=2,Oulton Park=1,Snetterton=1";
presets[7] = "North West Formula Ford|Anglesey=3,Oulton Park=4,Silverstone=1";
presets[8] = "Midlands South Formula Ford|Silverstone=2,Snetterton=1,Donington Park=1,Mallory Park=2,Brands Hatch=1";

function changePreset() 
{
	var box = document.getElementById('presets');
	
	if( box.value == 'Select...' ) return;

	for(var i = 0; i < presets.length; i++)
	{
		if(presets[i].substring(0, box.value.length) == box.value)
		{
		  	// a quick hack to put my postcode if my preset is selected
			if( box.value == "My season (Martin Galpin)" )
			{
				document.getElementById('postcode').value = "CO7 9SH";
			}

		  	setPreset(presets[i]);
			break;
		}
	}
}

function setPreset(str)
{
	// we need to reset all the inputs and quantity boxes to default
	reset();		

	// parse preset string and apply circuits/quantity
	str = str.substring(str.indexOf('|')+1, str.length);
	var toks = str.split(',');
	for(var i = 0; i < toks.length; i++ )
	{
	  	var circuit = toks[i].substring(0, toks[i].indexOf('='));
		var quantity = toks[i].substring(toks[i].indexOf('=')+1, toks[i].length);

	  	var safeCircuitName = circuit.replace( ' ', '_' );
		document.getElementById(safeCircuitName).checked = true;
		document.getElementById(safeCircuitName+'_Quantity').value = quantity;	
	}
}

function checkboxChanged(id)
{
	var chkbox = document.getElementById(id);
	if( !chkbox.checked ) 
	{
		document.getElementById(id+'_Quantity').value = "0";
	}
	else
	{
		document.getElementById(id+'_Quantity').value = "1";	  
	}
}

function reset()
{
	var inputs = document.getElementsByTagName('input');
	for(var i = 0; i < inputs.length; i++)
	{
		if( inputs[i].type == 'checkbox' )
		{
			inputs[i].checked = false;
		}
		else if( inputs[i].type == 'text' )
		{
			if( inputs[i].id.indexOf('_') > 0 )
			{
				inputs[i].value = "0";
			}
		}
	} 
}

function validateForm()
{
  	var message = '';
	var atLeastOneCircuit = false;

	if( document.getElementById( 'postcode' ).value == '' )
	{
	  	message += "- Please enter a postcode.\n";
	}
	
	var inputs = document.getElementsByTagName('input');
	for(var i = 0; i < inputs.length; i++)
	{
		if( inputs[i].type == 'checkbox' )
		{
			if( inputs[i].checked )
			{
			  	// now check the quantity is > 0
				if( parseInt( document.getElementById( inputs[i].id+'_Quantity' ).value ) > 0 )
				{
					atLeastOneCircuit = true;
				} 
			}
		}
	}

	if( !atLeastOneCircuit )
	{
	  	message += "- You must select at least ONE circuit for ONE visit!\n";
	}

	// validation errors
	if( message != '' )
	{
		alert(message);
		return false;
	}

	return true;
}
