/**
 * Fonctions javascript de controle des formulaires
 * 
 * @author Styleo	
 * @copyright Styleo
 */
function marquer_champ(champ){
	champ.style.border = '1px solid red';
}


function isMailValide (champ) {
	var str = champ.value;
	var regexp = new RegExp("^[a-zA-Z0-9_\\-\\.]{2,}@[a-zA-Z0-9\\-_\\.]{2,}\\.[a-zA-Z]{2,4}$", "g");
	
	if(!regexp.test(str)) {
		return false;
	}
	
	return true;
}

function is_numeric(num) {	
	var str2 = num.value;
	var totregex = new RegExp("^[0-9-.]*$","g");
	
	if(!totregex.test(str2)) {
		return false;
	}
	
	return true;
}

/**
 * Redirection temporaire vers CGL pour le calculateur
 * @param form
 * @return
 */
function redirection(){
	// ancien lien vers étape 1 <a href="etape1">
	//alert('Bonjour, vous allez etre redirige vers le site cartegrise-enligne.com, merci de votre visite.');
	window.setTimeout("location=('http://www.cartegrise-enligne.com/achat-carte-grise.php');",3000);
}

/**
 * Controle du formulaire de récupération du mot de passe
 * @param form
 * @return
 */
function recup_mdp_control(form) {
	if(form.elements['mail'].value=="") {
		alert("Veuillez saisir une adresse email.");
		return false;
	}
	
	if(!isMailValide(form.elements['mail'])){
		alert("L'adresse email saisie n'est pas valide.");
		return false;
	}
	
	return true;
}

/**
 * Controle du formulaire de login
 * @param form
 * @return
 */
function login_control(form) {
	if(form.elements['mail'].value=="" || form.elements['mdp'].value=="") {
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
	}
	
	if(!isMailValide(form.elements['mail'])){
		alert("L'adresse email saisie n'est pas valide.");
		return false;
	}
	
	return true;
}

/**
 * 
 * @param id
 * @return
 */

function client_control(form) {
	if(!controle_form(form.elements['mail'])){
		return false;
	}
	
	/*
	if(!isMailValide(form.elements['mail'])){
		marquer_champ(form.elements['mail']);
		alert("L'adresse email saisie n'est pas valide.");		
		return false;
	} else {
		form.elements['mail'].style.border = '';
	}*/
	
	if(form.elements['mdp'].value != form.elements['confirm'].value) {
		marquer_champ(form.elements['mdp']);
		marquer_champ(form.elements['confirm']);
		alert("Les mots de passe saisis ne sont pas identiques.");
		return false;
	} else {
		form.elements['mdp'].style.border = '';
		form.elements['confirm'].style.border = '';
	}
	
	if(form.elements['tel'].value=="" && form.elements['mobile'].value=="") {
		marquer_champ(form.elements['tel']);
		marquer_champ(form.elements['mobile']);
		alert("Vous devez saisir au minimum un numéro de téléphone (fixe ou mobile).");
		return false;
	} else {
		form.elements['tel'].style.border = '';
		form.elements['mobile'].style.border = '';
	}
	
	
	return true;
			
}

/**
 * 
 * @param id
 * @return
 */

function pro_control(form) {
	if(form.elements['raison_soc'].value==""
		||form.elements['prenom'].value==""
		|| form.elements['nom'].value==""
		|| form.elements['adresse1'].value==""
		|| form.elements['cp'].value==""
		|| form.elements['ville'].value==""
		|| form.elements['siret'].value==""
		|| form.elements['tva_intra'].value==""
		|| form.elements['ape'].value==""
		|| (form.elements['tel'].value=="" && form.elements['mobile'].value=="") 
		|| form.elements['mail'].value==""
		|| form.elements['mdp'].value==""
		|| form.elements['confirm'].value==""
		) {
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
	}
	
	if(!isMailValide(form.elements['mail'])){
		marquer_champ(form.elements['mail']);
		alert("L'adresse email saisie n'est pas valide.");		
		return false;
	} else {
		form.elements['mail'].style.border = '';
	}
	
	if(form.elements['mdp'].value != form.elements['confirm'].value) {
		marquer_champ(form.elements['mdp']);
		marquer_champ(form.elements['confirm']);
		alert("Les mots de passe saisis ne sont pas identiques.");
		return false;
	} else {
		form.elements['mdp'].style.border = '';
		form.elements['confirm'].style.border = '';
	}
	
	return true;
			
}

/**
 * Javascript de controle pour le middle office
 */

function client_control_modif(form) {
	if(form.elements['prenom'].value==""
		|| form.elements['nom'].value==""
		|| form.elements['adresse1'].value==""
		|| form.elements['cp'].value==""
		|| form.elements['ville'].value==""
		|| (form.elements['tel'].value=="" && form.elements['mobile'].value=="") 
		|| form.elements['mail'].value==""
		) {
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
	}
	
	if(!isMailValide(form.elements['mail'])){
		marquer_champ(form.elements['mail']);
		alert("L'adresse email saisie n'est pas valide.");		
		return false;
	} else {
		form.elements['mail'].style.border = '';
	}
	
	return true;
}


function client_control_modif_mdp(form) {
	
	if(form.elements['pass'].value==""
		|| form.elements['confirm'].value==""
		) {
		
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
		
	}
	
	if(form.elements['pass'].value != form.elements['confirm'].value) {
		marquer_champ(form.elements['pass']);
		marquer_champ(form.elements['confirm']);
		alert("Les mots de passe saisis ne sont pas identiques.");
		return false;
	} else {
		form.elements['pass'].style.border = '';
		form.elements['confirm'].style.border = '';
	}
	
	return true;
}


function controle_certificat(form) {
	if(form.elements['marque'].value==""
		|| form.elements['date'].value==""
		) {
		
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;		
	}	
	
	/*
	 * Controle des champs d'adresse 
	 * 	lorsqu'ils sont affichés
	 */
	if((form.elements['select_demarches'].value==22	|| form.elements['select_demarches'].value==21)
		&& 
		( form.elements['nom'].value==""
		  || form.elements['adresse1'].value==""
		  || form.elements['cp'].value==""
		  || form.elements['ville'].value==""			
		)) {
		
		alert("Veuillez renseigner tous les champs obligatoires SVP.");
		return false;
		
	}
	
	return true;
	
}

function getParent(child,tag) {
  if(child != null) {
	  var parent = child.parentNode;
	  if(parent != null) {
		  while(parent!=null && parent.tagName != tag ) {
			  parent = parent.parentNode;
		  }
	  }
	  return parent;
  }
  return null;
}

/**
 * Script de controle de formulaire,
 * 
 * tous les champs dont l'id commence par required_ sont obligatoires
 * @return
 */
 // fonction de contrôle du middle office
 function controle_form_middle(form) {
	var retour = true;
	//var email = document.getElementsById('email');
	
	/**
	 * Parcours des éléments INPUT de la page
	 */
	var listOfInput = document.getElementsByTagName('INPUT');
	
	var numberOfInput = listOfInput.length;
	for(var i=0;i<numberOfInput;i++){		
		listOfInput[i].style.border = "";
		if(listOfInput[i].id.substr(0,9) == 'required_') {
			var div_parent = getParent(listOfInput[i],'DIV');		
			if(listOfInput[i].value=="" && div_parent != null && div_parent.style.display != 'none') {		
				listOfInput[i].style.border = "1px red solid";			
				retour = false;
			}
		}
	}
	
	if(!isMailValide(form.elements['email'])){
		marquer_champ(form.elements['email']);
		alert("L'adresse email saisie n'est pas valide.");		
		return false;
	} else {
		form.elements['email'].style.border = '';
	}
	
	if(!is_numeric(form.elements['cp'])){
		marquer_champ(form.elements['cp']);
		alert("Le code postal ne doit contenir que des chiffres.");		
		return false;
	} else {
		form.elements['cp'].style.border = '';
	}
	
		if(!is_numeric(form.elements['tel'])){
		marquer_champ(form.elements['tel']);
		alert("Le numéro de téléphone ne doit contenir que des chiffres sans espaces.");		
		return false;
	} else {
		form.elements['tel'].style.border = '';
	}
	
			if(!is_numeric(form.elements['agrement'])){
		marquer_champ(form.elements['agrement']);
		alert("Le numéro d'agrémentation ne doit contenir que des chiffres.");		
		return false;
	} else {
		form.elements['agrement'].style.border = '';
	}
	
			if(!is_numeric(form.elements['habilitation'])){
		marquer_champ(form.elements['habilitation']);
		alert("Le numéro d'habilitation ne doit contenir que des chiffres.");		
		return false;
	} else {
		form.elements['habilitation'].style.border = '';
	}
	
	/**
	 * Parcours des éléments TEXTAREA de la page
	 */
	listOfInput = document.getElementsByTagName('TEXTAREA');
	
	numberOfInput = listOfInput.length;
	for(var j=0;j<numberOfInput;j++){		
		listOfInput[j].style.border = "";
		
		var div_parent = getParent(listOfInput[j],'DIV');
		if(listOfInput[j].id.substr(0,9) == 'required_' && listOfInput[j].value=="" && div_parent != null && div_parent.style.display != 'none') {
			listOfInput[j].style.border = "1px red solid";

			retour = false;
		}
	}
	
	if(!retour) {
		alert("Veuillez remplir tous les champs requis, SVP.");
		return false;
	}
	

	
	return true;
}
 
 
//fonction de contrôle du formulaire d'inscription du 1er partenaire
function controle_form(form) {
	var retour = true;
	//var email = document.getElementsById('email');
	
	/**
	 * Parcours des éléments INPUT de la page
	 */
	var listOfInput = document.getElementsByTagName('INPUT');
	
	var numberOfInput = listOfInput.length;
	for(var i=0;i<numberOfInput;i++){		
		listOfInput[i].style.border = "";
		if(listOfInput[i].id.substr(0,9) == 'required_') {
			var div_parent = getParent(listOfInput[i],'DIV');		
			if(listOfInput[i].value=="" && div_parent != null && div_parent.style.display != 'none') {		
				listOfInput[i].style.border = "1px red solid";			
				retour = false;
			}
		}
	}
	
		if(form.elements['annuaire'].checked==false&&form.elements['achat'].checked==false){
			alert("Vous devez sélectionner au moins un type de partenariat, merci.");		
			return false;
		} 
	
	if(!isMailValide(form.elements['email'])){
		marquer_champ(form.elements['email']);
		alert("L'adresse email saisie n'est pas valide.");		
		return false;
	} else {
		form.elements['email'].style.border = '';
	}
	
	if(!is_numeric(form.elements['cp'])){
		marquer_champ(form.elements['cp']);
		alert("Le code postal ne doit contenir que des chiffres.");		
		return false;
	} else {
		form.elements['cp'].style.border = '';
	}
	
		if(!is_numeric(form.elements['tel'])){
		marquer_champ(form.elements['tel']);
		alert("Le numéro de téléphone ne doit contenir que des chiffres sans espaces.");		
		return false;
	} else {
		form.elements['tel'].style.border = '';
	}
	
	if(form.elements['confpass'].value!=form.elements['pass'].value){
		marquer_champ(form.elements['pass']);
		marquer_champ(form.elements['confpass']);
		alert("le mot de passe et votre confirmation sont different, merci de retaper votre mot de passe.");		
		return false;
	} else {
		form.elements['pass'].style.border = '';
		form.elements['confpass'].style.border = '';
	}
	/**
	 * Parcours des éléments TEXTAREA de la page
	 */
	listOfInput = document.getElementsByTagName('TEXTAREA');
	
	numberOfInput = listOfInput.length;
	for(var j=0;j<numberOfInput;j++){		
		listOfInput[j].style.border = "";
		
		var div_parent = getParent(listOfInput[j],'DIV');
		if(listOfInput[j].id.substr(0,9) == 'required_' && listOfInput[j].value=="" && div_parent != null && div_parent.style.display != 'none') {
			listOfInput[j].style.border = "1px red solid";

			retour = false;
		}
	}
	
	if(!retour) {
		alert("Veuillez remplir tous les champs requis, SVP.");
		return false;
	}
	

	
	return true;
}

//fonction de contrôle dédié au calculateur
function controle_calculateur(email) {
	
	var retour = true;
	
	/**
	 * Parcours des éléments INPUT de la page
	 */
	var listOfInput = document.getElementsByTagName('INPUT');
	
	var numberOfInput = listOfInput.length;
	for(var i=0;i<numberOfInput;i++){		
		listOfInput[i].style.border = "";
		if(listOfInput[i].id.substr(0,9) == 'required_') {
			var div_parent = getParent(listOfInput[i],'DIV');		
			if(listOfInput[i].value=="" && div_parent != null && div_parent.style.display != 'none') {		
				listOfInput[i].style.border = "1px red solid";			
				retour = false;
			}
		}
	}
	
	/**
	 * Parcours des éléments TEXTAREA de la page
	 */
	listOfInput = document.getElementsByTagName('TEXTAREA');
	
	numberOfInput = listOfInput.length;
	for(var j=0;j<numberOfInput;j++){		
		listOfInput[j].style.border = "";
		
		var div_parent = getParent(listOfInput[j],'DIV');
		if(listOfInput[j].id.substr(0,9) == 'required_' && listOfInput[j].value=="" && div_parent != null && div_parent.style.display != 'none') {
			listOfInput[j].style.border = "1px red solid";

			retour = false;
		}
	}
	
	if(!retour) {
		alert("Veuillez remplir tous les champs requis, SVP.");
		return false;
	}
	
	if(email && email != null) {		
		if(!isMailValide(email)){
			email.style.border = "1px red solid";
			alert("L'adresse email saisie n'est pas valide.");
			return false;
		}
	}
	
	return true;
}

//fonction de test des partenaires 5 max
function count_chkBox()
{
var dbRes = [];
var nbre_check = 0;
var dbEl = document.getElementsByName("cg_partenaire_id[]");
for (i=0; i<dbEl.length; i++) {
		if (dbEl[i].checked) 
		{
		dbRes.push(dbEl[i].value);
		nbre_check ++ ;
		}	
	}
	
	if(dbRes.length>5){	
		alert(dbRes.length + " partenaires ont eté cochés, merci d\'en cocher 5 au maximum.");
		return false;
	}
	else{
		return true;
	}
 
}


function compare_date(datetest) {
	
   var date = datetest;
   var jour = date.substring(0,2);
   var mois = date.substring(3,5);
   var annee = date.substring(6,10)
	
	// Mise en place de la première date
	d1 = new Date(0);
	d1.setFullYear(2004, 5, 1)
	
	// Mise en place de la seconde date
	d2 = new Date(0);
	// on enleve un mois afin de faire correspondre les dates JS qui commencent à zéro avec l'autre encodage des dates ou 1 = jan
	mois = mois-1;
	d2.setFullYear(annee, mois, jour)
	//alert(d1);
	//alert(d2);
	if(d1 > d2)
		return true;
	else if(d1 < d2)
		return false;
	else
		return false;
	}
	
function compare_date_futur(datetest) {
	
   var date = datetest;
   var jour = date.substring(0,2);
   var mois = date.substring(3,5);
   var annee = date.substring(6,10);
   var annee2;
	
	// récupération de la date du jour
	d1 = new Date();
	
	annee2 = d1.getFullYear();
	//alert(annee2);
	// Date de première mise en circulation
	d2 = new Date(0);
	// on enleve un mois afin de faire correspondre les dates JS qui commencent à zéro avec l'autre encodage des dates ou 1 = jan
	mois = mois-1;
	d2.setFullYear(annee, mois, jour)

	if(d2 > d1) {
		alert('Votre date de mise en circulation ne pas être dans le futur');
		return false; }
	else
		return true;
}

function compare_date_FNI(datetest) {
	
   var date = datetest;
   var jour = date.substring(0,2);
   var mois = date.substring(3,5);
   var annee = date.substring(6,10)
	
	//Mise en place de la première date
	d1 = new Date(0);
	d1.setFullYear(2009, 3, 15)
	
	//Mise en place de la seconde date
	d2 = new Date(0);
	//On enleve un mois afin de faire correspondre les dates JS qui commencent à zéro avec l'autre encodage des dates ou 1 = jan
	mois = mois-1;
	d2.setFullYear(annee, mois, jour)


	if(d2 > d1) {
		alert('Un véhicule dans le système d\'immatriculation FNI ne peut pas avoir été mis en circulation après le 15 avril 2009.');
		return false; }
	else
		return true;
}


//formulaire de controle des éléments en plus dans le calculateur  boutique en ligne

function controle_form_docu_calcul(form) {
	var retour = true;
	//alert(form.elements['vehicule_type'].value);	
	
	// Paramètre email du client pour le mode recevoir par mail
	var emailInput = document.getElementById("required_email");
	if (emailInput) {
		if(emailInput.value==""){
			alert("Merci de renseigner votre adresse email.");		
			return false;
		}				
		else if (!isMailValide(emailInput)) {
			alert("Merci de renseigner une adresse email valide");		
			return false;
		}
	}
	
	if(form.application_type.value==1){
		if(form.cv.value==""){
			
			if(form.elements['vehicule_type'].value!=7&&form.elements['vehicule_type'].value!=11&&form.elements['vehicule_type'].value!=5){
				alert("Merci de renseigner une puissance fiscale.");		
			return false;
			}
		}			
	}
	/*if(form.application_type.value!=4){
		if(form.elements['num_serie'].value==''){
			alert("Merci de renseigner le numéro de série de votre véhicule (VIN).");		
			return false;
		}
	}*/
	
	if(form.elements['modele'].value==''){
		alert("Merci de renseigner le modèle de votre véhicule (par ex. Mégane).");		
		return false;
	}
	
	if(form.elements['marque'].value==''){
		alert("Merci de renseigner la marque de votre véhicule (par ex. Renault).");		
		return false;
	}
	
	/*if(form.elements['kilometrage'].value==''){
		alert("Merci de renseigner le kilométrage de votre véhicule.");		
		return false;
	}*/
	
	/*if(isNaN(form.elements['kilometrage'].value)==true){
		alert("Merci de ne renseigner que des chiffres sans espaces dans le champs kilométrage.");		
		return false;
	}*/
	

	
	if(form.elements['first_immat'].value==''&&form.elements['vehicule_type'].value!=7&&form.elements['vehicule_type'].value!=5&&form.elements['application_type'].value!=2&&form.elements['application_type'].value!=3&&form.elements['application_type'].value!=4&&form.elements['vehicule_type'].value!=11){
		alert("Merci de renseigner la date de mise en circulation de votre véhicule.");			
		return false;
	}
	
	//bloquer la box pour le cas société et cotitulaire

	if(form.application_type.value==3){
	
		if(form.elements['societe'][1].checked==true||form.elements['cotitulaire'][1].checked==true){
			alert(form.application_type.value);
			alert("Vous ne pouvez pas être une société ou cotitulaire pour un changement de status matrimonial !");		
			return false;
		} 

	}
	
		if(form.elements['societe'][1].checked==false&&form.elements['societe'][0].checked==false){
			alert("Merci de répondre à la question : vous êtes une société.");		
			return false;
		} 
		
		if((form.application_type.value!=2)&&(form.application_type.value!=4)){
			if(form.elements['achatpro'][1].checked==false&&form.elements['achatpro'][0].checked==false){
				alert("Merci de répondre à la question :  Vous avez acheté le véhicule à un professionnel de l\'automobile");		
				return false;
			} 
		}
		
		if(form.elements['achatpro'][0].checked==true&&form.elements['neuf_occasion'][0].checked==true){
			alert("Vous ne pouvez pas avoir acheté un véhicule neuf à un particulier.");		
			return false;
		} 
		
		if(form.elements['hebergement'][1].checked==false&&form.elements['hebergement'][0].checked==false){
			alert("Merci de répondre à la question :  Vous êtes mineur ou hébergé (chez un(e) ami(e) / vos parents) ");		
			return false;
		} 
		
		if(form.elements['cotitulaire'][1].checked==false&&form.elements['cotitulaire'][0].checked==false){
			alert("Merci de répondre à la question : Existe-t-il un co-titulaire sur ce véhicule (2 acquéreurs) ?");		
			return false;
		} 
		
	if(form.elements['societe'][1].checked==true&&form.elements['hebergement'][1].checked==true&&form.elements['cotitulaire'][1].checked==true){
		alert("Vous ne pouvez pas être une société et être hébergé et/ou cotitulaire en même temps.");		
		return false;
	} 
	
	if(!retour) {
		alert("Veuillez remplir tous les champs requis, SVP.");
		return false;
	}
		
	return true;
}



//fonction de contrôle du formulaire de documents dynamiques et le calculateur de taxe
function controle_form_docu(form) {
	var retour = true;
	
	//alert(form.elements['reception'][0].checked);
	//alert(form.elements['reception'][1].value);

	// 02/011/2012 Sandro: Rajout d'un test sur le format de la date 
	//alert(document.getElementById("mise_en_circulation").style.display);
	var block_date_mise_en_circulation = document.getElementById("mise_en_circulation");
	if (block_date_mise_en_circulation.style.display != "none") // Si le bloc est affiché (pour ne pas faire de "if  vehicule_type != 5 7 et 11)
	{
		var firstimmat = form.elements['first_immat'].value;
		if ((firstimmat.length) == 0) { // Si la date est vide
			alert("Merci de renseigner la date de mise en circulation de votre véhicule.");		
			return false;
		}
	
		var reg=new RegExp("^[0-9]{2}[/]{1}[0-9]{2}[/]{1}[0-9]{4}$","g");
		if (!reg.test(firstimmat)) // Si la date est au mauvais format
		{
			alert("Le format de la date de mise en circulation est incorrect (jj/mm/aaaa).");	
			return false;
		}
	}
	
	compare_date_futur(form.elements['first_immat'].value);
	
	if(form.elements['application_type'].value==1){
		if(form.elements['cv'].value==""){
			
			if(form.elements['vehicule_type'].value!=7&&form.elements['vehicule_type'].value!=11&&form.elements['vehicule_type'].value!=5){
				alert("Merci de renseigner une puissance fiscale.");		
			return false;
			}
		}			
	}
	
			if (form.elements['co2'].value!="") {
				if (isNaN(form.elements['co2'].value)== true) {
					alert("Merci de ne renseigner le taux de CO2 qu\'avec des chiffres sans espaces.");		
					return false;
				}
			}
			
						if (form.elements['cv'].value!="") {
				if (isNaN(form.elements['cv'].value)== true) {
					alert("Merci de ne renseigner la puissance fiscale qu\'avec des chiffres sans espaces.");		
					return false;
				}
			}

		
	//  Pour les plaques le css "text-transform" affiche bien en majuscule mais la value reste en minuscule
	form.elements['immat_siv1'].value = form.elements['immat_siv1'].value.toUpperCase();
	form.elements['immat_siv3'].value = form.elements['immat_siv3'].value.toUpperCase();
	form.elements['immat_fni2'].value = form.elements['immat_fni2'].value.toUpperCase();	
		
	if ((!form.elements['neuf_occasion'][0].checked)&&(!form.elements['neuf_occasion'][2].checked)){
		if (!form.elements['est_immatriculation_SIV'][0].checked&&!form.elements['est_immatriculation_SIV'][1].checked) {
			alert ('Merci de sélectionner votre système d\'immatriculation (FNI ou SIV).');
			return false;
		}	
	
		if (form.elements['est_immatriculation_SIV'][0].checked) {
			if(form.elements['immat_siv1'].value==""||form.elements['immat_siv2'].value==""||form.elements['immat_siv3'].value==""){
				alert ('Merci de renseigner votre numéro d\'immatriculation SIV.');
				return false;
			}
		}
		
		if (form.elements['est_immatriculation_SIV'][1].checked) {
			if (!compare_date_FNI(form.elements['first_immat'].value)) {return false;}
			
			if(form.elements['vehicule_type'].value==7){
				alert ('Votre cyclomoteur ne peut pas être dans le système d\'immatriculation FNI, merci de sélectionner le système SIV. \n \n ATTENTION : Si votre cyclomoteur n\'a pas de carte grise, merci de vous rapprocher de la préfecture de votre département, cette démarche ne pouvant pas être effectuée par Internet.');
				return false;
			}
			if(form.elements['immat_fni1'].value==""||form.elements['immat_fni2'].value==""||form.elements['immat_fni3'].value==""){
				alert ('Merci de renseigner votre numéro d\'immatriculation FNI.');
				return false;
			}		
		}

	}
	
	if (form.elements['est_immatriculation_SIV'][0].checked) {
		if(form.elements['immat_siv1'].value!=""||form.elements['immat_siv2'].value!=""||form.elements['immat_siv3'].value!=""){
		
			var reg = /[^A-Z]+/; 
			if (reg.test(form.elements['immat_siv1'].value) || reg.test(form.elements['immat_siv3'].value)){
				alert("Le numéro d'immatriculation n'est pas correct. Format accepté: 'AA-123-BB'.");
				return false;
			}
		
			if(isNaN(form.elements['immat_siv2'].value)){
				alert("Le numéro d'immatriculation n'est pas correct. Format accepté: 'AA-123-BB'.");
				return false;
			}
		}
	}
	
	if (form.elements['est_immatriculation_SIV'][1].checked) {
		if(form.elements['immat_fni1'].value!=""||form.elements['immat_fni2'].value!=""||form.elements['immat_fni3'].value!=""){
	
			if(isNaN(form.elements['immat_fni1'].value)||isNaN(form.elements['immat_fni3'].value)){
				alert("Le numéro d'immatriculation n'est pas correct. Format accepté: '1111 AA 11'.");
				return false;
			}
		
			var reg = /[^A-Z]+/; 
			if (reg.test(form.elements['immat_fni2'].value)) {
				alert("Le numéro d'immatriculation n'est pas correct. Format accepté: '1111 AA 11'.");
				return false;
			}		
		}
	}
		
	if(form.elements['nom_demarche'].value=="Demande d'immatriculation (neuf/occasion)"){
		
		if(form.elements['cv'].value==""){
			
			if(form.elements['vehicule_type'].value!=7&&form.elements['vehicule_type'].value!=11&&form.elements['vehicule_type'].value!=5){
				alert("Merci de renseigner une puissance fiscale.");		
			return false;
			}
		}
	
		if(form.elements['first_immat'].value==""){
			
			if(form.elements['vehicule_type'].value!=5&&form.elements['vehicule_type'].value!=7&&form.elements['vehicule_type'].value!=11){
				alert("Merci de renseigner la date de mise en circulation de votre véhicule.");		
				return false;
				
			}
		}	
		
		if(form.elements['vehicule_type'].value>=1&&form.elements['vehicule_type'].value<=2&&form.elements['reception'][0].checked){
			
			if (compare_date(form.elements['first_immat'].value)==false&&form.elements['co2'].value=="") {
				alert("Merci de renseigner un taux de CO2 valide.");		
				return false;
			}
			
			if (compare_date(form.elements['first_immat'].value)==false&&form.elements['co2'].value=="") {			
				if(((isNaN(form.elements['co2'].value)==true||form.elements['co2'].value==""||form.elements['co2'].value==0)&&form.elements['neuf_occasion'][2].checked==false)||form.elements['cv'].value>=8){
					alert("Merci de renseigner un taux de CO2 valide.");		
					return false;
				}
			}
				
		}
		
		
	}
	
	//bloquer la box pour le cas société et cotitulaire
	if(form.elements['nom_demarche'].value=="Changement de statut matrimonial"){
	
		if(form.elements['societe'][1].checked==true||form.elements['cotitulaire'][1].checked==true){
			alert("Vous ne pouvez pas être une société ou cotitulaire pour un changement de status matrimonial !");		
			return false;
		} 

	}
		
	if(form.elements['societe'][1].checked==true&&form.elements['hebergement'][1].checked==true&&form.elements['cotitulaire'][1].checked==true){
		alert("Vous ne pouvez pas être une société et être hébergé et/ou cotitulaire en même temps.");		
		return false;
	} 

	if(form.elements['societe'][1].checked==true&&form.elements['hebergement'][1].checked==true&&form.elements['cotitulaire'][1].checked==false){
		alert("Vous ne pouvez pas être une société et être hébergé en même temps.");		
		return false;
	} 
	
	if(form.elements['societe'][1].checked==true&&form.elements['hebergement'][1].checked==false&&form.elements['cotitulaire'][1].checked==true){
		alert("Vous ne pouvez pas être une société et cotitulaire en même temps.");		
		return false;
	}	
	
		if(form.elements['societe'][1].checked==false&&form.elements['societe'][0].checked==false){
		alert("Merci de répondre à la question : vous êtes une société.");		
		return false;
	} 
	
	if((form.elements['application_type'].value!=2)&&(form.elements['application_type'].value!=4)){
		if(form.elements['achatpro'][1].checked==false&&form.elements['achatpro'][0].checked==false){
			alert("Merci de répondre à la question :  Vous avez acheté le véhicule à un professionnel de l\'automobile");	
			return false;
		} 
	}
	
	if(form.elements['hebergement'][1].checked==false&&form.elements['hebergement'][0].checked==false){
		alert("Merci de répondre à la question :  Vous êtes mineur ou hébergé (chez un(e) ami(e) / vos parents) ");		
		return false;
	} 
	
	if(form.elements['cotitulaire'][1].checked==false&&form.elements['cotitulaire'][0].checked==false){
		alert("Merci de répondre à la question : Existe-t-il un co-titulaire sur ce véhicule (2 acquéreurs) ?");		
		return false;
	} 

	if(!retour) {
		alert("Veuillez remplir tous les champs requis, SVP.");
		return false;
	}
		
	return true;
}

function hide_dialog_cg(){
	var dialogcg = document.getElementById("dialog_cg");
	if (dialogcg) dialogcg.style.display = "none";
	
	var btn_calculer = document.getElementById("btn_calculer");
	if (btn_calculer) btn_calculer.style.display = "block";
}
