var giEmail = 0;

function validForm(){
	var bFocus = false;
	var sAlertCss = 'osb_form_element_alert';
	var sMessage = '';
	var sCustomerExistance = '';

	// reinitialisation des input en alerte (cas d'une seconde tentative de validation)
	$('email_address').className = '';
	$('email_address_confirmation').className = '';
	$('password').className = '';
	$('password_confirmation').className = '';
	$('customer_is_professionnal').className = '';
	$('customer_is_private').className = '';
	$('company_name').className = '';
	$('customer_title').className = '';
	$('name').className = '';
	$('surname').className = '';
	$('phone_1').className = '';
	$('phone_2').className = '';
	$('fax_number').className = '';
	$('vat_number').className = '';	
	$('address').className = '';
	$('city').className = '';
	$('zip_code').className = '';
	$('country').className = '';
	$('accept_sales_conditions').className = '';
	$('address_phone_number').className = '';

	// test type de client
		// test email
		if(!checkEmail($('email_address').value)){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['EMAIL_ADDRESS']+ '</span><br />';
			$('email_address').className = sAlertCss;
			if (! bFocus) {
				$('email_address').focus();
				bFocus = true;
			}
		}
		
		
		// test confirmation email
		if($('email_address').value.toLowerCase() != $('email_address_confirmation').value.toLowerCase()){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['EMAIL_ADDRESS_CONFIRMATION']+ '</span><br />';
			$('email_address_confirmation').className = sAlertCss;
			if (! bFocus) {
				$('email_address_confirmation').focus();
				bFocus = true;
			}
		}
		
		// si sMessage est vide, alors test de l'unicité du mail
		if(sMessage==''){
			checkEmailUniqueness();

			// test sur giEmail
			if(giEmail != 0){
				sMessage += '<span style="margin-left: 30px;">'+gaLabels['EMAIL_ADDRESS_NOT_UNIQUE']+ '</span><br />';
				$('email_address').className = sAlertCss;
				if (! bFocus) {
					$('email_address').focus();
					bFocus = true;
				}
			}
		}	
			
		// test mot de passe
		if($F('password').length < 6){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['PASSWORD']+ '</span><br />';
			$('password').className = sAlertCss;
			if (! bFocus) {
				$('password').focus();
				bFocus = true;
			}
		}	
			
		// test confirmation mot de passe
		if($('password').value != $('password_confirmation').value){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['PASSWORD_CONFIRMATION']+ '</span><br />';
			$('password_confirmation').className = sAlertCss;
			if (! bFocus) {
				$('password_confirmation').focus();
				bFocus = true;
			}
		}	
		
		// test ssi professionnel
		if($('customer_is_professionnal').checked){
			// test nom de la societe
			if($F('company_name') ==  ''){
				sMessage += '<span style="margin-left: 30px;">'+gaLabels['COMPANY_NAME']+ '</span><br />';
				$('company_name').className = sAlertCss;
				if (! bFocus) {
					$('company_name').focus();
					bFocus = true;
				}
			}
		}
			
		// test civilite
		if($('customer_title').value == ''){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['CUSTOMER_TITLE']+ '</span><br />';
			$('customer_title').className = sAlertCss;
			if (! bFocus) {
				$('customer_title').focus();
				bFocus = true;
			}
		}	
		
		// test prenom
		if(!checkNotNull($('name').value)){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['SURNAME']+ '</span><br />';
			$('name').className = sAlertCss;
			if (! bFocus) {
				$('name').focus();
				bFocus = true;
			}
		}		
			
		// test nom
		if(!checkNotNull($('surname').value)){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['NAME']+ '</span><br />';
			$('surname').className = sAlertCss;
			if (! bFocus) {
				$('surname').focus();
				bFocus = true;
			}
		}	

		// test numero de telephone 1
		if ((! checkNotNull($('phone_1').value)) || (! checkPhoneNumber($('phone_1').value, 'all_countries'))) {
				sMessage += '<span style="margin-left: 30px;">' + gaLabels['PHONE_1'] + '</span><br />';
				$('phone_1').className = sAlertCss;
				if (! bFocus) {
					$('phone_1').focus();
					bFocus = true;
				}
		}
		
		// test numero de telephone 2
		if (checkNotNull($('phone_2').value)) {
			if (! checkPhoneNumber($('phone_2').value, 'all_countries')) {
				sMessage += '<span style="margin-left: 30px;">' + gaLabels['PHONE_2'] + '</span><br />';
				$('phone_2').className = sAlertCss;
				if (! bFocus) {
					$('phone_2').focus();
					bFocus = true;
				}
			}
		}
		
		// test fax
		if($('fax_number').value != ''){
			if(!checkPhoneNumber($('fax_number').value, 'all_countries')){
				sMessage += '<span style="margin-left: 30px;">'+gaLabels['FAX_NUMBER']+ '</span><br />';
				$('fax_number').className = sAlertCss;
				if (! bFocus) {
					$('fax_number').focus();
					bFocus = true;
				}
			}
		}			

		// ligne adresse
		if(!checkNotNull($('address').value)){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['ADDRESS']+ '</span><br />';
			$('address').className = sAlertCss;
			if (! bFocus) {
				$('address').focus();
				bFocus = true;
			}
		}
									
		// test code postal
		if(!checkZipCode($('zip_code').value, $('country').value)){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['ZIP_CODE']+ '</span><br />';
			$('zip_code').className = sAlertCss;
			if (! bFocus) {
				$('zip_code').focus();
				bFocus = true;
			}
		}

		// test ville
		if(!checkNotNull($('city').value)){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['CITY']+ '</span><br />';
			$('city').className = sAlertCss;
			if (! bFocus) {
				$('city').focus();
				bFocus = true;
			}
		}	

		// test pays
		if($('country').value == ''){
			sMessage += '<span style="margin-left: 30px;">'+gaLabels['COUNTRY']+ '</span><br />';
			$('country').className = sAlertCss;
			if (! bFocus) {
				$('country').focus();
				bFocus = true;
			}
		}
		
		// test numero de telephone de l'adresse doit etre teste
		if (checkNotNull($('address_phone_number').value)) {
			// verifie le format du numero de telephone
			if (! checkPhoneNumber($('address_phone_number').value, $('country').value)) {
				sMessage += '<span style="margin-left: 30px;">' + gaLabels['ADDRESS_PHONE'] + '</span><br />';
				$('address_phone_number').className = sAlertCss;
				if (! bFocus) {
					$('address_phone_number').focus();
					bFocus = true;
				}
			}
		}

		// verification des cgv
		if (! $('accept_sales_conditions').checked) {
			sMessage += '<span style="margin-left: 30px;">' + gaLabels['CGV'] + '</span><br />';
			$('accept_sales_conditions').className = sAlertCss;
			if (! bFocus) {
				$('accept_sales_conditions').focus();
				bFocus = true;
			}
		}

	// si sMessage vide alors il n y a pas d erreur -> on peut submiter
	if(sMessage==''){
		$('type_action').value = 'save_registration';
		
		// cryptage du mot de passe
		hasher_mdp('password');
		
		// on vide l'input de la confirmation du mot de passe
		$('password_confirmation').value = '';
		
		$('registration_form').submit();
	}
	else{
		sMessage = gaLabels['CHECK_FOLLOWING_INPUT'] + '<br />' + sMessage;
		displayMessage(sMessage);
	}
}