function name_errors()
{
	var name = trim(document.forms[0].firstName.value);
	var surname = trim(document.forms[0].lastName.value);

	return (document.forms[0].title.selectedIndex == 0 
		|| name == "" || name.toLowerCase() == "forename" || !isValidName(name) 
		|| surname == "" || surname.toLowerCase() == "surname" || !isValidName(surname));
}

function isValidName(s)
{
	// valid names should contain only a-z, A-Z, '-' and ' '
	var regexPattern = new RegExp(/[^-a-z\s]/ig);
	return !regexPattern.test(s);
}

function resetLabels()
{
	if (document.forms[0].firstName.value == "")
		document.forms[0].firstName.value = "Forename";
		
	if (document.forms[0].lastName.value == "")
		document.forms[0].lastName.value = "Surname";
}

function clearFirstNameLabel()
{
	if (document.forms[0].firstName.value == "Forename")
	{
		document.forms[0].firstName.value = "";
	}
}

function clearLastNameLabel()
{
	if (document.forms[0].lastName.value == "Surname")
	{
		document.forms[0].lastName.value = "";
	}
}

function password1_errors()
{
	return !validate_password(document.forms[0].password1.value);
}

function password2_errors()
{
	return (document.forms[0].password1.value != document.forms[0].password2.value)
}

function validate_password(pwd)
{
	if (!(pwd.length >= 6) && (pwd.length <=14))
		return false;
		
	if (pwd.indexOf(' ') != -1)
		return false;
		
	return true;
}

function dob_errors()
{
    var isDateInvalid = (document.forms[0].dayDob.selectedIndex == 0 || document.forms[0].monthDob.selectedIndex == 0 || document.forms[0].yearDob.selectedIndex == 0);

    if (isDateInvalid)
        return true;

    year_DOB = (1899 + document.forms[0].yearDob.selectedIndex);
    month_DOB = (document.forms[0].monthDob.selectedIndex);
    day_DOB = (document.forms[0].dayDob.selectedIndex);

    date_DOB = month_DOB + "/" + day_DOB + "/" + year_DOB;

    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;

    isDateValid = date_DOB.match(new RegExp(RegExPattern));
	return !(isDateValid);
}

function is_eighteen_errors()
{
	var day = document.forms[0].dayDob.value;
	var month = document.forms[0].monthDob.value-1;
	var year = document.forms[0].yearDob.value;
	var applicantDob = new Date(year, month, day, 0, 0, 0, 0);

	var today = new Date();
	var eighteenYearsAgo = new Date();
	eighteenYearsAgo.setFullYear(today.getFullYear()-18);	
	
	return applicantDob > eighteenYearsAgo;
}