function validate_form()
{
	if (document.userform.clients_siret.value == "")
	{
		alert('Please supply your Company Number (SIRET)!');
		document.userform.clients_siret.focus();
		return false;
	}
	if (document.userform.clients_ape.value == "")
	{
		alert('Please supply your Company Activity Code (APE)!');
		document.userform.clients_ape.focus();
		return false;
	}
	if (document.userform.clients_tvanum.value == "")
	{
		alert('Please supply your Company VAT Number!');
		document.userform.clients_tvanum.focus();
		return false;
	}
	// Type entreprise
	if (document.userform.clients_statutsociete.value == "")
	{
		alert('Please supply your Company status');
		document.userform.clients_statutsociete.focus()
		return false;
	}
	// validate email
	if (document.userform.clients_email.value == "")
	{
		alert('Please specify your email!');
		document.userform.clients_email.focus()
		return false;
	}
	else {
		var invalidchars = " /:,;"
		for (i=0;i<invalidchars.length;i++) {
			if (document.userform.clients_email.value.indexOf(invalidchars.charAt(i),0) > -1) {
				alert("Invalid characters have been found, please enter a valid email.");
				document.userform.clients_email.focus();
				return false;
			}
		}
		var atpos = document.userform.clients_email.value.indexOf("@",1)
		if (atpos == -1) {
			alert("Invalid email!");
			document.userform.clients_email.focus();
			return false;
		}
		var perpos = document.userform.clients_email.value.indexOf(".",atpos)
		if (perpos == -1) {
			alert("Invalid email!");
			document.userform.clients_email.focus();
			return false;
		}
		if (perpos+3 > document.userform.clients_email.value.length) {
			alert("Invalid email!");
			document.userform.clients_email.focus();
			return false;
		}
	}


	// validate password
	if (document.userform.clients_pass.value == "")
	{
		alert('Please specify your password!');
		document.userform.clients_pass.focus()
		return false;
	}

	// validate confirm password
	if (document.userform.clients_passverif.value == "")
	{
		alert('Please specify your password!');
		document.userform.clients_passverif.focus()
		return false;
	}

	// validate password & confirm password
	if (document.userform.clients_pass.value != document.userform.clients_passverif.value)
	{
		alert('The specified passwords do not match!');
		document.userform.clients_pass.value = ""
		document.userform.clients_passverif.value = ""
		document.userform.clients_pass.focus()
		return false;
	}

	var s = document.userform.clients_pass.value;
  	if (s.length < 6 || s.length > 30)
	{
	   alert ('Your Password must be between 6 and 30 characters.');
	   document.userform.clients_pass.focus();
	   return false;
	}

	// validate password, only alphanumeric characters allowed
	if (/\W/.test(document.userform.clients_pass.value))
	{
	   	alert ('Your password can only contain letters (a-Z) and numbers (0-9).');
		document.userform.clients_pass.value = ""
		document.userform.clients_passverif.value = ""
		document.userform.clients_pass.focus()
		return false;
	}

	// validate password, at least 1 letter
	if (!/[a-zA-Z]/.test(document.userform.clients_pass.value))
	{
	   alert ('Your Password must contain at least 1 letter (a-Z).');
	   document.userform.clients_pass.focus();
	   return false;
	}

	//validate password, at least 1 number
	if (!/\d/.test(document.userform.clients_pass.value))
	{
	   alert ('Your Password must contain at least 1 number (0-9).');
	   document.userform.clients_pass.focus();
	   return false;
	}

	// validate password criteria (6 < length 30, at least 1 letter, at least 1 number)
	// cannot be the same as the email address
	var email_ucase = document.userform.clients_email.value;
	email_ucase = email_ucase.toUpperCase();

	var password_ucase = document.userform.clients_pass.value;
	password_ucase = password_ucase.toUpperCase();

  	if (email_ucase == password_ucase)
	{
	   alert ("Your Email address and Password cannot be the same.");
	   document.userform.clients_pass.focus();
	   return false;
	}
	// validate  Company
	if (document.userform.clients_societe.value == "")
	{
		alert('Please specify your Company name!');
		document.userform.clients_societe.focus();
		return false;
	}
	// validate  Prenom
	if (document.userform.clients_prenom.value == "")
	{
		alert('Please specify your first name!');
		document.userform.clients_prenom.focus();
		return false;
	}

	// validate  name
	if (document.userform.clients_nom.value == "")
	{
		alert('Please specify your name!');
		document.userform.clients_nom.focus();
		return false;
	}
	// validate address (street address)
	if (document.userform.clients_adresse1.value == "")
	{
		alert('Please specify your address!');
		document.userform.clients_adresse1.focus()
		return false;
	}

	// validate city
	if (document.userform.clients_ville.value == "")
	{
		alert('Please specify your city!');
		document.userform.clients_ville.focus()
		return false;
	}
	// validate zip
	if (document.userform.clients_cp.value == "")
	{
		alert('Please specify your zip!');
		document.userform.clients_cp.focus()
		return false;
	}
	// validate Country
	if (document.userform.clients_paysid.value == "")
	{
		alert('Please specify your country!');
		document.userform.clients_paysid.focus()
		return false;
	}
	// validate Phone
	if (document.userform.clients_tel.value == "")
	{
		alert('Please specify your phone!');
		document.userform.clients_tel.focus()
		return false;
	}
	// since we got to here, we past all validation routines, then continue
	return true;
}