var Bright = 'hl';
var Default= '';



function hl(el, style){el.className = style;}

function notEmpty(elem, err) 
{
    var str = elem.value;

    if(str == null || str.length == 0) 
	{
		hl(elem, Bright);
		errorString+=err; 
		elem.focus();
		return false;
	}
	else 
	{
		hl(elem,Default);
		return true;
	}
}

function validEmail(elem, err)
{
    if(elem.value.length > 0)
	{
		var str = elem.value;
	    var splitted = str.match("^(.+)@(.+)$");

	    if(splitted !== null && splitted[1] !== null)
		{
	    	var regexp_user=/^\"?[\w-_\.]*\"?$/;
		    if(splitted[1].match(regexp_user) !== null && splitted[2] !== null)
			{
		    	var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
				var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
				if((splitted[2].match(regexp_domain) !== null) || (splitted[2].match(regexp_ip) !== null))
				{
					hl(elem,Default);
					return true;
				}
			}
		
		}
	}
	hl(elem, Bright);
	errorString+=err;
	elem.focus();
	return false;
}

function isChecked(elem, err)
{
	if (elem.checked)
	{
		hl(elem,Default);
		return true;
	}
	hl(elem, Bright);
	errorString+=err;
	elem.focus();
	return false;
}

function customVal(err)
{
	if ((document.forms.booking.activity1.checked+document.forms.booking.activity2.checked+document.forms.booking.activity3.checked+document.forms.booking.activity4.checked+document.forms.booking.activity5.checked)>=2)
	{
		return true;
	}
	errorString+=err;
	document.forms.booking.activity1.focus();
	return false;
}

	

function validateForm(formname)
{
	errorString = "Please fill in following fields:     \n-------------------------------\n";

	var Results = [
	notEmpty(formname.title, 'First name \n'), 
	notEmpty(formname.full_name, 'Full Name\n'), 
	notEmpty(formname.address, 'Address\n'), 
	notEmpty(formname.tel_day, 'Day Phone\n'), 
	validEmail(formname.email, 'Email (should be valid)\n'),
	notEmpty(formname.date, 'Date of Adventure Break\n'), 
	customVal('Please select at least 2 activity sessions\n'), 
	notEmpty(formname.nights, 'How many nights do you plan to stay\n'), 
	notEmpty(formname.meals, 'Which meals you require...\n'), 
	notEmpty(formname.dietary, 'Special dietary needs\n'), 
	notEmpty(formname.time_of_arrival, 'Approx arrival time\n'), 
	notEmpty(formname.total_cost, 'Amount Payable now\n'),
	isChecked(formname.agree, 'I agree to the T&C\'s')
	];

	if (Results[0] && Results[1] && Results[2] && Results[3] && Results[4] && Results[5] && Results[6] && Results[7] && Results[8] && Results[9] && Results[10] && Results[11] && Results[12])
	{
		return true;
	}
	else
	{
		alert(errorString);
		return false;
	}
}