/*************************************************************
* Page: employers.js v 1.2  
* Description: employers registration & edit validation
* 
* Hospitality Recruitment - Online Strategies
* Copyright (C) 2005 Online Strategies, All rights reserved
* Email  info@hospitalityonline.co.uk
* 
* Note: Commented out secret question and answer validation as per changes for new application process
*       21.02.2005
*************************************************************/
// Start Validation function
function validate(e){
	if ((VALIDATE_EMPLOYERS == 0 && JAVASCRIPT_ON == 1) || (VALIDATE_EMPLOYERS == 0 && JAVASCRIPT_ON == 0)){ // override javascript
		// Send the form through without Javascript DEBUG
		return true;
	}
	else if ((VALIDATE_EMPLOYERS == 1 && JAVASCRIPT_ON == 1) || (VALIDATE_EMPLOYERS == 1 && JAVASCRIPT_ON == 0)){ // Validate the form
		// Trim the data to make sure there is no white space
		String.prototype.trim = function()
		{
			return this.replace(/^\s*|\s*$/g, '');
		}
		
		var grp, focus_el = null, msg = '';
		if (location.pathname == "/employers_registration/" || location.pathname == "/edit" || location.pathname == "/edit/"){
			// title must be filled in
			e.title.value = e.title.value.trim();
			if (e.title.selectedIndex == 0)
			{
				msg += error[0];
				focus_el = focus_el || e.title;
			}		
			// First Name is_empty
			e.first_name.value = e.first_name.value.trim();
			if (is_empty(e.first_name))
			{
				msg += error[1];
				focus_el = focus_el || e.first_name;
			}
			// Surname is empty
			e.surname.value = e.surname.value.trim();
			if (is_empty(e.surname))
			{
				msg += error[2];
				focus_el = focus_el || e.surname;
			}
			
			// EMAIL *********************************************
			// Must give a valid email
			e.email.value = e.email.value.trim();
			if (is_empty(e.email))
			{
				msg += error[3];
				focus_el = focus_el || e.email;
			}
		}
			// Must be correct format
			e.email.value = e.email.value.trim();
			if (!is_empty(e.email))
			{
				if(!is_valid_email(e.email))
				{
					msg += error[5];
					focus_el = focus_el || e.email;
				}
			}

			// TELEPHONE ******************************************
			// if telephone field is filled in make sure its a number
			e.telephone.value = e.telephone.value.trim();
			if (is_empty(e.telephone))
			{
				msg += error[6];
				focus_el = focus_el || e.telephone;
			}
			// Must be correct format
			e.telephone.value = e.telephone.value.trim();
			if (!is_empty(e.telephone))
			{
				if(!is_valid_phone1(e.telephone) )
				{
					msg += error[7];
					focus_el = focus_el || e.telephone;
				}
				if ( is_valid_phone1(e.telephone) && e.telephone.value.length < 8 ) {	
					msg += error[63];
					focus_el = focus_el || e.telephone;						
				}
			}
			// Company name is empty
			e.company_name.value = e.company_name.value.trim();
			if (is_empty(e.company_name))
			{
				msg += error[10];
				focus_el = focus_el || e.company_name;
			}
			// Position in company
			e.position_in_company.value = e.position_in_company.value.trim();
			if (is_empty(e.position_in_company))
			{
				msg += error[9];
				focus_el = focus_el || e.position_in_company;
			}
			
			// Address line 1 must be filled in
			e.address_line_1.value = e.address_line_1.value.trim();
			if (is_empty(e.address_line_1))
			{
				msg += error[20];
				focus_el = focus_el || e.address_line_1;
			}
			// Town is empty
			e.town.value = e.town.value.trim();
			if (is_empty(e.town))
			{
				msg += error[21];
				focus_el = focus_el || e.town;
			}
			// Postcode is empty or more than 10 chars
			e.postcode.value = e.postcode.value.trim();
			if ((is_empty(e.postcode)) || (e.postcode.value.length > 10))
			{
				msg += error[22];
				focus_el = focus_el || e.postcode;
			}
			// Country is not selected
			e.country.value = e.country.value.trim();
			if (e.country.selectedIndex == 0)
			{
				msg += error[24];
				focus_el = focus_el || e.region;
			}
			// country must be selected
			if (e.country.selectedIndex != 0)
			{	
				e.region.value = e.region.value.trim();
				if (e.country.selectedIndex == 1 && e.region.selectedIndex == 0)
				{
					msg += error[49];
					focus_el = focus_el || e.region;
				}
				e.t_regions.value = e.t_regions.value.trim();
				if (e.country.selectedIndex != 1 && e.country.selectedIndex != 0 && is_empty(e.t_regions)) 
				{
					msg += error[50];
					focus_el = focus_el || e.t_regions;
				}
			}
		/**********************************************************************/
		
		
		// USERNAME *******************************************
		// Username is empty

		e.username.value = e.username.value.trim();
		if (is_empty(e.username))
		{
			msg += error[25];
			focus_el = focus_el || e.username;
		}
		// Username formatted incorrectly
		e.username.value = e.username.value.trim();
		if (!is_empty(e.username) && (e.username.value.length < PASSWORD_MIN || e.username.value.length > PASSWORD_MAX))
		{
			msg += error[26];
			focus_el = focus_el || e.username;
		}
		// PASSWORD ********************************************
		/* PASSWORD VALICATION START HERE */
		// password empty
		e.password.value = e.password.value.trim();
		if (is_empty(e.password))
		{
			msg += error[55];
			focus_el = focus_el || e.password;
		}
		// password empty
		e.password.value = e.password.value.trim();
		if (!is_empty(e.password) && is_empty(e.confirm_password))
		{
			msg += error[56];
			focus_el = focus_el || e.confirm_password;
		}
		// password empty
		e.password.value = e.password.value.trim();
		if (!is_empty(e.password) && !is_empty(e.confirm_password))
		{
			// password's dont match
			e.password.value = e.password.value.trim();
			if (e.password.value != e.confirm_password.value)
			{
				msg += error[27];
				focus_el = focus_el || e.password;
			}
		
			// password incorrectly formattted
			e.password.value = e.password.value.trim();
			if (e.password.value.length < PASSWORD_MIN || e.password.value.length > PASSWORD_MAX)
			{
				msg += error[28];
				focus_el = focus_el || e.password;
			}
		}

		// Terms and conditions must be checked
		e.terms.value = e.terms.value.trim();
		if (is_checked(e.terms))
		{
			msg += error[32];
			focus_el = focus_el || e.terms;
		}
	
		// If there is an error then send through an alert (var msg) and return false
		if (msg != '')
		{
			var prefix = "The form has been incorrectly completed:\n\n";
			alert(prefix + msg);
			if (focus_el.focus)
			{
				focus_el.focus();
			}
			return false;
		}

		// If there are no errors send through the form and process it.
		if (CHANGE_PROCESS == 1){
			showprocess('show','hide');
		}
		else {
			document.getElementbyId('sub').disabled = true;
		}
		return true;
	}
	else {
		// There has been an error
		alert ("Error reported to: " + ADMIN_EMAIL);
		return false;
	}
}