<!--

var whitespace = " \t\n\r";

validations = new Array();
validations[0] = ["document.getElementById('cafeselectform').fullname", "notname"];
validations[1] = ["document.getElementById('cafeselectform').phone", "isnumber"];
validations[2] = ["document.getElementById('cafeselectform').mobile", "validmobile"];
validations[3] = ["document.getElementById('cafeselectform').email", "validemail"];
validations[4] = ["document.getElementById('cafeselectform').further_info", "nofurther"];

function isEmpty(s)
{
	var i;
	if((s == null) || (s.length == 0))
	return true;
	for (i = 0; i < s.length; i++)
	{
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1)
			return false;
	}
	return true;
}

function isName(field)
{
	var i, c;
	var s = field.value;
	if (isEmpty(s))
	{
		alert("Please enter your full name.");
		field.focus();
		return false;
	}
	for (i = 0; i < s.length; i++)
	{
		c = s.charAt(i);
		if (isDigit(c))
		{
			alert("Name can not contain numbers.");
			field.focus();
			return false;
		}
	}
	return true;
}

function isEmail(field)
{
	var x = document.getElementById("cafeselectform").email.value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)) return true;
	else alert("You have not entered a valid email address.");
	//http://www.quirksmode.org/js/mailcheck.html
}

function isDigit(c)
{
	return ((c >= "0") && (c <= "9"))
}

function isPhone(field)
{
	var i, c;
	var s = field.value;
	if (isEmpty(s))
	{
		alert("Please enter your phone number.");
		field.focus();
		return false;
	}
	for (i = 0; i < s.length; i++)
	{
		c = s.charAt(i);
		if (!isDigit(c))
		{
			alert("Phone number can only contain numbers.");
			field.focus();
			return false;
		}
	}
	if (s.length > 10)
	{
		alert("The phone number you have supplied is too long.");
		return false;
	}
	if (s.length < 8)
	{
		alert("The phone number you supplied is not long enough.");
		return false;
	}
	return true;
}

function isMobile(field)
{
	var i, c;
	var s = field.value;	
	for (i = 0; i < s.length; i++)
	{
		c = s.charAt(i);
		if (!isDigit(c))
		{
			alert("Mobile number can only contain numbers.");
			field.focus();
			return false;
		}
	}		
	return true;
}

function top()
{
	var top1_checked = document.getElementById( 'top1' ).checked;
	var top2_checked = document.getElementById( 'top2' ).checked;
	var top3_checked = document.getElementById( 'top3' ).checked;
	var form_ok = false;
	if ( ( top1_checked == false ) && ( top2_checked == false ) && ( top3_checked == false ) )
	{
		window.alert( 'Please choose a top.' );
		return false;
	}
	return true;
}

function size()
{
	var size1_checked = document.getElementById( 'size1' ).checked;
	var size2_checked = document.getElementById( 'size2' ).checked;
	var size3_checked = document.getElementById( 'size3' ).checked;
	var size4_checked = document.getElementById( 'size4' ).checked;
	var size5_checked = document.getElementById( 'size5' ).checked;
	var size6_checked = document.getElementById( 'size6' ).checked;
	var size7_checked = document.getElementById( 'size7' ).checked;
	var size8_checked = document.getElementById( 'size8' ).checked;
	var size9_checked = document.getElementById( 'size9' ).checked;
	var size10_checked = document.getElementById( 'size10' ).checked;
	var size11_checked = document.getElementById( 'size11' ).checked;
	var size12_checked = document.getElementById( 'size12' ).checked;
	var form_ok = false;
	if ( ( size1_checked == false ) && ( size2_checked == false ) && ( size3_checked == false ) && ( size4_checked == false ) && ( size5_checked == false ) && ( size6_checked == false ) && ( size7_checked == false ) && ( size8_checked == false ) && ( size9_checked == false ) && ( size10_checked == false ) && ( size11_checked == false ) && ( size12_checked == false ) )
	{
		window.alert( 'Please choose a size.' );
		return false;
	}
	return true;
}

function colour()
{
	var colour1_checked = document.getElementById( 'colour1' ).checked;
	var colour2_checked = document.getElementById( 'colour2' ).checked;
	var colour3_checked = document.getElementById( 'colour3' ).checked;
	var colour4_checked = document.getElementById( 'colour4' ).checked;
	var colour5_checked = document.getElementById( 'colour5' ).checked;
	var colour6_checked = document.getElementById( 'colour6' ).checked;
	var colour7_checked = document.getElementById( 'colour7' ).checked;
	var colour8_checked = document.getElementById( 'colour8' ).checked;
	var colour9_checked = document.getElementById( 'colour9' ).checked;
	var colour10_checked = document.getElementById( 'colour10' ).checked;
	var colour11_checked = document.getElementById( 'colour11' ).checked;
	var colour12_checked = document.getElementById( 'colour12' ).checked;
	var colour13_checked = document.getElementById( 'colour13' ).checked;
	var colour14_checked = document.getElementById( 'colour14' ).checked;
	var colour15_checked = document.getElementById( 'colour15' ).checked;
	var colour16_checked = document.getElementById( 'colour16' ).checked;
	var form_ok = false;
	if ( ( colour1_checked == false ) && ( colour2_checked == false ) && ( colour3_checked == false ) && ( colour4_checked == false ) && ( colour5_checked == false ) && ( colour6_checked == false ) && ( colour7_checked == false ) && ( colour8_checked == false ) && ( colour9_checked == false ) && ( colour10_checked == false ) && ( colour11_checked == false ) && ( colour12_checked == false ) && ( colour13_checked == false ) && ( colour14_checked == false ) && ( colour15_checked == false ) && ( colour16_checked == false ) )
	{
		window.alert( 'Please choose a colour.' );
		return false;
	}
	return true;
}

function base()
{
	var base1_checked = document.getElementById( 'base1' ).checked;
	var base2_checked = document.getElementById( 'base2' ).checked;
	var base3_checked = document.getElementById( 'base3' ).checked;
	var base4_checked = document.getElementById( 'base4' ).checked;
	var base5_checked = document.getElementById( 'base5' ).checked;
	var base6_checked = document.getElementById( 'base6' ).checked;
	var base7_checked = document.getElementById( 'base7' ).checked;
	var base8_checked = document.getElementById( 'base8' ).checked;
	var base9_checked = document.getElementById( 'base9' ).checked;
	var base10_checked = document.getElementById( 'base10' ).checked;
	var base11_checked = document.getElementById( 'base11' ).checked;
	var base12_checked = document.getElementById( 'base12' ).checked;
	var form_ok = false;
	if ( ( base1_checked == false ) && ( base2_checked == false ) && ( base3_checked == false ) && ( base4_checked == false ) && ( base5_checked == false ) && ( base6_checked == false ) && ( base7_checked == false ) && ( base8_checked == false ) && ( base9_checked == false ) && ( base10_checked == false ) && ( base11_checked == false ) && ( base12_checked == false ) )
	{
		window.alert( 'Please choose a base.' );
		return false;
	}
	return true;
}

function check_type( top_id )
{
	var expected_types = new Array( 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3 );
	var error_messages = new Array( '', 'That top size is only available with a round top',
										'That top size is only available with a square top',
										'That top size is only available with a rectangular top' );
	var expected_type;
	var shape_element;

	expected_type = expected_types[ top_id ];

	shape_element = document.getElementById( 'top' + expected_type );

	if ( shape_element.checked == false )
	{
		window.alert( error_messages[ expected_type ] );

		document.getElementById( 'size' + top_id ).checked = false;
	}
}

function validate_cafeselectform()
{
	var i;
	var checkToMake;
	var field;

	for (i = 0; i < validations.length; i++)
	{
		checkToMake = validations[i][1];
		field = eval(validations[i][0]);
		switch (checkToMake)
		{
			case 'notname': if (!isName(field))
								return false;
							break;			
			case 'isnumber' : if (!isPhone(field))
								return false;
							break;			
			case 'validmobile' : if (!isMobile(field))
								return false;
							break;
			case 'validemail' : if (!isEmail(field))
								return false;
								break;	
			case 'nofurther': if (isEmpty(field.value))
								{
									alert("Please enter extra information including the required quantity.");
									field.focus();
									return false;
								}
							break;		
		}	
		
		{
			if ( document.getElementById( 'state' ).value == "" ) 
			{ 
				alert ( "Please select your state." ); 
				return false; 
			} 
		}
		
		{
			if (!top(top))
			return false;
		}	
		
		{
			if (!size(size))
			return false;
		}	
		
		{
			if (!colour(colour))
			return false;
		}	
		
		{
			if (!base(base))
			return false;
		}	
		
	}
		
	return true;
}

//-->

