// JavaScript Document

// Fonction Chargement Images
function preload()
{
	var imgs = new Array(
						 "images/accueil.png","images/accueil-over.png","images/quisommesnous.png","images/quisommesnous-over.png","images/commentcamarche.png","images/commentcamarche-over.png","images/contacteznous.png","images/contacteznous-over.png","images/moncompte.png","images/moncompte-over.png","images/go.png","images/go-over.png","images/valider.png","images/valider-over.png","images/retour.png","images/retour-over.png","images/adobepdf.png","images/sinscrire.png","images/sinscrire-over.png"
						 );
	for (var i = 0; i < imgs.length; i++ ){ var tmp = imgs[i]; (imgs[i] = new Image()).src = tmp; }
}

// Fonction Vérification Chaine
function verif_chaine(valeur_champ,choix_chaine)
{
 	 var checkStr = valeur_champ.value;
 	 var allValid = true;

 	 switch (choix_chaine)
	 {
		case 'alphamin' : var checkOK = "0123456789abcdefghijklmnopqrstuvwxyz"; break;
		case 'alphamaj' : var checkOK = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; break;
		case 'chiffre'  : var checkOK = "0123456789"; break;
		case 'telephone': var checkOK = "0123456789.-/ "; break;
		case 'email'    : var checkOK = "0123456789.-_@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; break;
		case 'immat'	: var checkOK = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-"; break;
		case 'date'		: var checkOK = "0123456789/"; break;
 	 }

	 for (i=0; i<checkStr.length; i++)
	 {
		ch = checkStr.charAt(i);
	 	for (j=0; j<checkOK.length; j++)
	   	    if (ch == checkOK.charAt(j)) break;
	   	    if (j == checkOK.length){ allValid = false; break; }
 	 }
 	 return allValid;
}

// Fonction Vérification Date
function verif_date(valeur_champ)
{
	var separateur = "/";
	var date  = valeur_champ.value;
	var jour  = date.substring(0,2);
	var mois  = date.substring(3,5);
	var annee = date.substring(6);
	var sep1  = date.substring(2,3);
	var sep2  = date.substring(5,6);
	if ((isNaN(jour)) || (jour < 1) || (jour > 31)){ return (false); }
	if ((isNaN(mois)) || (mois < 1) || (mois > 12)){ return (false); }
	if ((isNaN(annee)) || (annee.length != 4)){ return (false); }
	if ((sep1 != separateur) || (sep2 != separateur)){ return (false); }

	var date2 = new Date(annee,mois-1,jour);
	jour2  = date2.getDate();
	mois2  = date2.getMonth()+1;
	annee2 = date2.getFullYear();
	if ((jour != jour2) || (mois != mois2) || (annee != annee2)){ return (false); }
	return (true);
}

// Fonction Vérification Mail
function verif_mail(valeur_mail)
{
	var allValid = true;
	if (!verif_chaine(valeur_mail,'email')) allValid = false;
	else if (valeur_mail.value.indexOf("@") == -1) allValid = false;
	return allValid;
}

// Fonction Vérification Immatriculation SIV
function verif_SIV(immat)
{
	var allValid = true;
	var expression_SIV = new RegExp("^(w|W|[a-zA-Z]{2})( )*-( )*[0-9]{3}( )*-( )*[a-zA-Z]{2}$","gi");
	if (!expression_SIV.test(immat))
	{	
		var expression2_SIV = new RegExp("^(w|W|[a-zA-Z]{2})( )*([0-9]{3})( )*([a-zA-Z]{2})$","gi");
    	if (!expression2_SIV.test(immat))
		{		
			var expression3_SIV = new RegExp("^[a-zA-Z]{1,2}( )*[0-9]{2,3}( )*[a-zA-Z]$","gi");
			if (!expression3_SIV.test(immat))
			{
				allValid = false;
			}
		}
    }
    return allValid;
}

// Fonction Vérification Immatriculation FNI
function verif_FNI(immat)
{
	var allValid = true;
	var expression_FNI = new RegExp("^[1-9][0-9]{1,4}( )*[a-zA-Z]{1,3}( )*(0[1-9]|[1-9][0-9]|[1-9][0-9][0-6]|2a|2b)$","gi");
	if (!expression_FNI.test(immat)) allValid = false;
	return allValid;
}

// Fonction Vérification Immatriculation
function verif_immatriculation(immat)
{
	var allValid = true;
	if (!verif_SIV(immat)){ if (!verif_FNI(immat)) allValid = false; }
	return allValid;
}

// Fonction Alerte
function alerte(valeur_champ,nom_champ)
{
	alert("Veuillez renseigner le champ : \""+nom_champ+"\".");
	valeur_champ.focus();
	return (false);
}

//Fonction Validation Contact
function valid_contact(theForm)
{
	if (theForm.contact_nom.value == "") return (alerte(theForm.contact_nom,'Nom'));
	if (theForm.contact_mail.value == "") return (alerte(theForm.contact_mail,'Mail'));
	if (theForm.contact_message.value == "") return (alerte(theForm.contact_message,'Message'));
	if (theForm.contact_valid.value == "") return (alerte(theForm.contact_valid,'Validation'));
	if (!(confirm('Envoyer mon message ?'))) return (false);
	return (true);
}

// Fonction Validation Inscription
function valid_inscription(theForm)
{
	if ((theForm.inscription_mail.value == "") || (!verif_mail(theForm.inscription_mail))) return (alerte(theForm.inscription_mail,'Votre adresse mail'));
	if ((theForm.inscription_confirm_mail.value == "") || (!verif_mail(theForm.inscription_confirm_mail))) return (alerte(theForm.inscription_confirm_mail,'Confirmer votre adresse mail'));
	if (theForm.inscription_mail.value != theForm.inscription_confirm_mail.value) return (alerte(theForm.inscription_confirm_mail,'Les mails sont diff\351rents'));
	if ((theForm.inscription_passe.value == "") || (theForm.inscription_passe.value.length != 8))return (alerte(theForm.inscription_passe,'Votre mot de passe'));
	if ((theForm.inscription_confirm_passe.value == "") || (theForm.inscription_confirm_passe.value.length != 8)) return (alerte(theForm.inscription_confirm_passe,'Confirmer votre mot de passe'));
	if (theForm.inscription_passe.value != theForm.inscription_confirm_passe.value) return (alerte(theForm.inscription_confirm_passe,'Les mots de passe sont diff\351rents'));

	/* Récupération Valeur Inscription Type */
	for (var i=0; i<theForm.inscription_type.length; i++){ if (theForm.inscription_type[i].checked) break; }
	if (theForm.inscription_type[i].value == 'professionnel')
	{
		if (theForm.inscription_raison_sociale.value == "") return (alerte(theForm.inscription_raison_sociale,'Raison Sociale'));
		if ((theForm.inscription_siret.value == "") || (theForm.inscription_siret.value.length != 14) || (!verif_chaine(theForm.inscription_siret,'chiffre'))) return (alerte(theForm.inscription_siret,'Siret (14 chiffres)'));
		if ((theForm.inscription_tva.value == "") || (!verif_chaine(theForm.inscription_tva,'alphamaj'))) return (alerte(theForm.inscription_tva,'TVA intra (lettres majuscules + chiffres)'));
		if ((theForm.inscription_ape.value == "") || (!verif_chaine(theForm.inscription_ape,'alphamaj'))) return (alerte(theForm.inscription_ape,'APE (lettres majuscules + chiffres)'));
	}
		
	if (theForm.inscription_nom.value == "") return (alerte(theForm.inscription_nom,'Nom'));
	if (theForm.inscription_prenom.value == "") return (alerte(theForm.inscription_prenom,'Pr\351nom'));
	if (theForm.inscription_adresse1.value == "") return (alerte(theForm.inscription_adresse1,'Adresse'));
	if ((theForm.inscription_cp.value == "") || (theForm.inscription_cp.value.length != 5) || (!verif_chaine(theForm.inscription_cp,'chiffre'))) return (alerte(theForm.inscription_cp,'Code Postal'));
	if (theForm.inscription_ville.value == "") return (alerte(theForm.inscription_ville,'Ville'));
	if ((theForm.inscription_tel_fixe.value == "") || (!verif_chaine(theForm.inscription_tel_fixe,'telephone'))) return (alerte(theForm.inscription_tel_fixe,'T\351l\351phone Fixe'));
	if (theForm.inscription_validation.value == "") return (alerte(theForm.inscription_validation,'Validation'));
	if (!(confirm('Valider mon inscription ?'))) return (false);
	return (true);
}

// Fonction Validation Mot de Passe
function valid_motdepasse(theForm)
{
	if ((theForm.motdepasse_mail.value == "") || (!verif_mail(theForm.motdepasse_mail))) return (alerte(theForm.motdepasse_mail,'Mail'));
	if (!(confirm('Valider la g\351n\351ration d\'un nouveau mot de passe ?'))) return (false);
}

// Fonction Chargement Images Région
function preload_region()
{
	var imgs = new Array(
						 "images/region-nord.png","images/region-picardie.png","images/region-hautenormandie.png","images/region-iledefrance.png","images/region-bassenormandie.png","images/region-bretagne.png","images/region-paysdelaloire.png","images/region-centre.png","images/region-poitou.png","images/region-limousin.png","images/region-champagne.png","images/region-lorraine.png","images/region-alsace.png","images/region-bourgogne.png","images/region-franchecomte.png","images/region-rhonealpes.png","images/region-paca.png","images/region-corse.png","images/region-languedoc.png","images/region-midi.png","images/region-aquitaine.png",
						 "images/prix-init.png","images/prix-cheval.png","images/prix-nord.png","images/prix-picardie.png","images/prix-hautenormandie.png","images/prix-iledefrance.png","images/prix-bassenormandie.png","images/prix-bretagne.png","images/prix-paysdelaloire.png","images/prix-centre.png","images/prix-poitou.png","images/prix-limousin.png","images/prix-champagne.png","images/prix-lorraine.png","images/prix-alsace.png","images/prix-bourgogne.png","images/prix-franchecomte.png","images/prix-rhonealpes.png","images/prix-paca.png","images/prix-corse.png","images/prix-languedoc.png","images/prix-midi.png","images/prix-aquitaine.png"
						 );
	for (var i = 0; i < imgs.length; i++){ var tmp = imgs[i]; (imgs[i] = new Image()).src = tmp; }
	document.getElementById('affiche_cheval').src = './images/prix-init.png';
}

// Fonction Affiche Prix Région
function affiche_prix(region)
{
	if (affiche_prix.arguments.length < 1)
	{
		document.getElementById('region_france').style.display = 'none';
		document.getElementById('affiche_cheval').src = './images/prix-init.png';
	}
	else
	{
		document.getElementById('affiche_region').src = './images/region-'+region+'.png';
		document.getElementById('affiche_cheval').src = './images/prix-'+region+'.png';
		document.getElementById('region_france').style.display = 'block';
	}
}

// Fonction Initialisation Display
function init_display(tab_display)
{
	for (var i = 0; i < tab_display.length; i++){ document.getElementById(tab_display[i]).style.display = 'none'; }
}

// Fonction Display
function display(calque)
{
	document.getElementById(calque).style.display = document.getElementById(calque).style.display == 'none'?'block':'none';
}

// Fonction Gestion Formulaire
function gere_controle(controleur,controle,masquer)
{
	var objControleur	= document.getElementById(controleur);
	var objControle		= document.getElementById(controle);
	if (masquer == '1') objControle.style.visibility = (objControleur.checked == true)?'visible':'hidden';
	else objControle.disabled = (objControleur.checked == true)?false:true;
	return true;
}

function gestion_professionnel(controleur,masquer)
{
	gere_controle(controleur,'inscription_raison_sociale',masquer);
	gere_controle(controleur,'inscription_siret',masquer);
	gere_controle(controleur,'inscription_tva',masquer);
	gere_controle(controleur,'inscription_ape',masquer);
}

// Fonction Visibility
function visibility(calque,masquer)
{
	document.getElementById(calque).style.visibility = (masquer == '1')?'visible':'hidden';
	return true;
}

// Fonction Test Visibility
function test_visibility(calque)
{
	resultat = (document.getElementById(calque).style.visibility == 'visible')?true:false;
	return resultat;
}

/*************************************************/
/* CHANGEMENT DE PROPRIETAIRE */
/*************************************************/
// Fonction Initialisation Visibility Propriétaire
function init_visibility_proprietaire(valeur_genre)
{
	switch (valeur_genre)
	{
		case '1'  :
					visibility('form-ptac','0'); visibility('form-neufoccas','1'); visibility('form-immat','1'); visibility('form-mec','1');
					visibility('form-reception','1'); visibility('form-puissance','1'); visibility('form-energie','1'); visibility('form-tauxco2','1');
					break;
		case '2'  :
		case '10' :
					visibility('form-ptac','0'); visibility('form-neufoccas','1'); visibility('form-immat','1'); visibility('form-mec','1');
					visibility('form-reception','0'); visibility('form-puissance','1'); visibility('form-energie','1'); visibility('form-tauxco2','0');
					break;
		case '3'  :
		case '4'  :
					visibility('form-ptac','1'); visibility('form-neufoccas','1'); visibility('form-immat','1'); visibility('form-mec','1');
					visibility('form-reception','0'); visibility('form-puissance','1'); visibility('form-energie','1'); visibility('form-tauxco2','0');
					break;
		case '5'  :
		case '11' :			
					visibility('form-ptac','0'); visibility('form-neufoccas','1'); visibility('form-immat','1'); visibility('form-mec','1');
					visibility('form-reception','0'); visibility('form-puissance','0'); visibility('form-energie','0'); visibility('form-tauxco2','0');
					break;
		case '7'  :
					visibility('form-ptac','0'); visibility('form-neufoccas','1'); visibility('form-immat','1'); visibility('form-mec','1');
					visibility('form-reception','0'); visibility('form-puissance','0');	visibility('form-energie','0'); visibility('form-tauxco2','0');		
					break;
		case '6'  :
		case '8'  :
		case '9'  :			
					visibility('form-ptac','0'); visibility('form-neufoccas','1'); visibility('form-immat','1'); visibility('form-mec','1');
					visibility('form-reception','0'); visibility('form-puissance','1');	visibility('form-energie','0'); visibility('form-tauxco2','0');
					break;
		default   :
					visibility('form-ptac','0'); visibility('form-neufoccas','1'); visibility('form-immat','1'); visibility('form-mec','1');
					visibility('form-reception','1'); visibility('form-puissance','1'); visibility('form-energie','1'); visibility('form-tauxco2','1');
					break;
	}
}

// Fonction Validation Changement Proprietaire
function valid_changement_proprietaire(theForm)
{
	// DEPARTEMENT
	if (theForm.form_cg_departement.value == "") return (alerte(theForm.form_cg_departement,'D\351partement'));
	// PTAC
	if (test_visibility('form-ptac'))
	{ if (theForm.form_cg_ptac.value == "") return (alerte(theForm.form_cg_ptac,'PTAC')); }
	// IMMATRICULATION
	if (test_visibility('form-immat'))
	{ if ((theForm.form_cg_immat.value == "") || (!verif_immatriculation(theForm.form_cg_immat.value))) return (alerte(theForm.form_cg_immat,'Immatriculation')); }
	else theForm.form_cg_immat. value = "";
	// MISE EN CIRCULATION
	if (test_visibility('form-mec'))
	{ if ((theForm.form_cg_mec.value == "") || (!verif_date(theForm.form_cg_mec))) return (alerte(theForm.form_cg_mec,'Mise en circulation (jj/mm/aaaa)')); }
	else theForm.form_cg_mec.value = "";
	// PUISSANCE FISCALE
	if (test_visibility('form-puissance'))
	{ if ((theForm.form_cg_puissance.value == "") || (!verif_chaine(theForm.form_cg_puissance,'chiffre'))) return (alerte(theForm.form_cg_puissance,'Puissance Fiscale')); }
	else theForm.form_cg_puissance.value = "";
	// TAUX CO2
	if (test_visibility('form-tauxco2'))
	{ if ((theForm.form_cg_tauxco2.value == "") || (!verif_chaine(theForm.form_cg_tauxco2,'chiffre'))) return (alerte(theForm.form_cg_tauxco2,'Taux CO2')); }
	else theForm.form_cg_tauxco2.value = "";
	
	if (!(confirm('Valider les informations ?'))) return (false);
	return (true);
}


/*************************************************/
/* CHANGEMENT DE SITUATION */
/*************************************************/
// Fonction Validation Changement Situation
function valid_changement_situation(theForm)
{
	// DEMARCHE
	if (theForm.form_cg_demarche.value == "") return (alerte(theForm.form_cg_demarche,'D\351marche'));
	// DEPARTEMENT
	if (theForm.form_cg_departement.value == "") return (alerte(theForm.form_cg_departement,'D\351partement'));
	// IMMATRICULATION
	if ((theForm.form_cg_immat.value == "") || (!verif_immatriculation(theForm.form_cg_immat.value))) return (alerte(theForm.form_cg_immat,'Immatriculation'));
	// NOMBRE DE CHANGEMENTS
	if ((theForm.form_cg_demarche.value == "domicile") && (verif_SIV(theForm.form_cg_immat.value)) && (!test_visibility('form-changement'))) { visibility('form-changement','1'); return (false); }
	else visibility('form-changement','0');
	// TYPE IMMATRICULATION
	if (verif_SIV(theForm.form_cg_immat.value)) theForm.type_immat.value = "SIV";
	else if (verif_FNI(theForm.form_cg_immat.value)) theForm.type_immat.value = "FNI";
	else theForm.type_immat.value = "";
	if (!(confirm('Valider les informations ?'))) return (false);
	return (true);
}


/*************************************************/
/* DEMANDE DE DUPLICATA */
/*************************************************/
// Fonction Initialisation Visibility Duplicata
function init_visibility_duplicata(valeur_genre)
{
	switch (valeur_genre)
	{
		case '1'  :
		case '2'  :
		case '3'  :
		case '4'  :
					visibility('form-mec','0'); visibility('form-puissance','0'); visibility('form-energie','1');
					break;
		case '5'  :
		case '7'  :
		case '8'  :
		case '9'  :
		case '10' :
		case '11' :
					visibility('form-mec','0'); visibility('form-puissance','0'); visibility('form-energie','0');
					break;
		case '6'  :
					visibility('form-mec','1'); visibility('form-puissance','1'); visibility('form-energie','0');
					break;
		default   :
					visibility('form-mec','0'); visibility('form-puissance','0'); visibility('form-energie','1');
					break;
	}
}

// Fonction Validation Demande Duplicata
function valid_demande_duplicata(theForm)
{
	// DEPARTEMENT
	if (theForm.form_cg_departement.value == "") return (alerte(theForm.form_cg_departement,'D\351partement'));
	// IMMATRICULATION
	if ((theForm.form_cg_immat.value == "") || (!verif_immatriculation(theForm.form_cg_immat.value))) return (alerte(theForm.form_cg_immat,'Immatriculation'));
	if ((theForm.form_cg_genre.value == "7") && (!verif_SIV(theForm.form_cg_immat.value))) return (alerte(theForm.form_cg_immat,'Immatriculation'));
	// MISE EN CIRCULATION
	if (test_visibility('form-mec'))
	{ if ((theForm.form_cg_mec.value == "") || (!verif_date(theForm.form_cg_mec))) return (alerte(theForm.form_cg_mec,'Mise en circulation (jj/mm/aaaa)')); }
	else theForm.form_cg_mec.value = "";
	// PUISSANCE FISCALE
	if (test_visibility('form-puissance'))
	{ if ((theForm.form_cg_puissance.value == "") || (!verif_chaine(theForm.form_cg_puissance,'chiffre'))) return (alerte(theForm.form_cg_puissance,'Puissance Fiscale')); }
	else theForm.form_cg_puissance.value = "";
	// ENERGIE
	if (!test_visibility('form-energie')) theForm.visible_energie.value = 0;
	// TYPE IMMATRICULATION
	if (verif_SIV(theForm.form_cg_immat.value)) theForm.type_immat.value = "SIV";
	else if (verif_FNI(theForm.form_cg_immat.value)) theForm.type_immat.value = "FNI";
	else theForm.type_immat.value = "";
	if (!(confirm('Valider les informations ?'))) return (false);
	return (true);
}
