//************************************
//*			MAIN JS		 *
//************************************


/////////////////////// Verification de l'immatriculation
function Parcours_Num_imma(nombre)
{
	for(var i = 0; i < nombre.length; i++)
	{
		var car = nombre.substring(i, i+1);
		if(car < '0' || car > '9')
		{
			return 0;
		}
	}
	return 1;
}
function Parcours_Alpha_imma(nombre)
{
	for(var i = 0; i < nombre.length; i++)
	{
		var car = nombre.substring(i, i+1);
		car = car.toLowerCase();
		if(car < 'a' || car > 'z')
		{
			return 0;
		}
	}
	return 1;
}
function Parcours_Alpha_dep(nombre)
{
	for(var i = 0; i < nombre.length; i++)
	{
		var car = nombre.substring(i, i+1);
		car = car.toLowerCase();
		if(car < 'a' || car > 'b')
		{
			return 0;
		}
	}
	return 1;
}



function Verif_NumCadre(numero)
{
	if(numero.value == 0)
	{
		alert('Ce numéro de cadre n\'est pas valide.');
		numero.focus();
		return false;
	}

	if(no_caract_speciaux(numero) == 0)
	{
		numero.focus();
		numero.value = "";
		return false;
	}

	var chaine = numero.value;

		for (var i = 0; i < chaine.length ; i++) 
 		      {
      	    		      if (chaine.charAt(i)=='\,' ||
					    chaine.charAt(i)=='\;' ||
					    chaine.charAt(i)=='\:' ||
					    chaine.charAt(i)=='\.')
					{
      			      	alert('\nATTENTION\nles caractères spéciaux   \!\?\;\#\,\"\'\%\/\£\$  etc...\nsont interdits');
     	      				numero.value = ""; 
     	      				numero.focus();
						return false;
					}
			}

	return true;
}



function VerifImmatCycl(argument)
{

	var immatriculation = argument.value;
	var immatriculation_longueur = immatriculation.length;

	if((immatriculation == 0)||(immatriculation == ''))
	{
	alert('Votre immatriculation n\'est pas valide');
		argument.value = "";
		argument.focus();
		return false;
	}

	if(no_caract_speciaux(argument) == 0)
	{
		argument.focus();
		immatriculation = "";
		return false;
	}

	var chaine = immatriculation;

		for (var i = 0; i < chaine.length ; i++) 
 		      {
      	    		      if (chaine.charAt(i)=='\,' ||
					    chaine.charAt(i)=='\;' ||
					    chaine.charAt(i)=='\:' ||
					    chaine.charAt(i)=='\.')
					{
      			      	alert('\nATTENTION\nles caractères spéciaux   \!\?\;\#\,\"\'\%\/\£\$  etc...\nsont interdits');
     	      				immatriculation = ""; 
     	      				argument.focus();
						return false;
					}
			}


	return true;
    }




/////////////////////// fin Verification de l'immatriculation

function Verification_Date(argument)
{
//fonction verif de date generique qui verifie le format d'une date
//et renvoi simplement 0 si mauvais format ou 1 si ok (Pas de Alert ds la fct)

	var date_saisie = argument.value;

	var longueur_date_saisie = date_saisie.length;
	if(longueur_date_saisie != 8)
	{
		argument.value = "";
		argument.focus();
		return 0;
	}

	var annee_date_saisie = date_saisie.substring(4,8);
	var mois_date_saisie = date_saisie.substring(2,4);
	var jour_date_saisie = date_saisie.substring(0,2);


	if(NewParcours_Num(annee_date_saisie) == 0)
	{			
		argument.value = "";
		argument.focus();
		return 0;
	}
	
	if(annee_date_saisie < 1900)
	{			
		argument.value = "";
		argument.focus();
		return 0;
	}
	
	if(NewParcours_Num(mois_date_saisie) == 0)
	{
		argument.value = "";
		argument.focus();
		return 0;
	}
	if(NewParcours_Num(jour_date_saisie) == 0)
	{
		argument.value = "";
		argument.focus();
		return 0;
	}

	var unit_mois = date_saisie.substring(3,4);
	var dizaine_mois = date_saisie.substring(2,3);
	var unit_jour = date_saisie.substring(1,2);
	var dizaine_jour = date_saisie.substring(0,1);
	
	if((Nozero(unit_jour) == 0 && Nozero(dizaine_jour) == 0) || (Nozero(unit_mois) == 0 && Nozero(dizaine_mois) == 0))
	{
		argument.value = "";
		argument.focus();
		return 0;
	}

	// bissextile 

	var Jours_Par_Mois = new Indicateur_Mois(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if(((annee_date_saisie % 4 == 0) && (annee_date_saisie % 100 != 0)) || (annee_date_saisie % 400 == 0))
	{
		Jours_Par_Mois[1] = 29;
	}

	if(mois_date_saisie > 12)
	{
		argument.value = "";
		argument.focus();
		return 0;
	}
	if(jour_date_saisie > Jours_Par_Mois[mois_date_saisie - 1])
	{
		argument.value = "";
		argument.focus();
		return 0;
	}

	var date_saisie_traitee = annee_date_saisie + mois_date_saisie + jour_date_saisie;
	date_saisie_traitee = parseInt(date_saisie_traitee);

	return 1;
}

function Nozero(nombre)
{
	for(var i = 0; i < nombre.length; i++)
	{
		var car = nombre.substring(i, i+1);
		if(car < '1' || car > '9')
		{
			return 0;
		}
	}

	return 1;
}

function NewParcours_Num(nombre)
{
	for(var i = 0; i < nombre.length; i++)
	{
		var car = nombre.substring(i, i+1);
		if(car < '0' || car > '9')
		{
			return 0;
		}
	}

	return 1;
}

function SupSpace(argument)
{
	var nombre = argument.value;
	var pos=nombre.indexOf(' ');
	if (pos!=-1) 
	        {
	        argument.value='';
	        for (var i = 0; i < nombre.length ; i++) 
	                {
	                if (nombre.charAt(i)==' ')
	                        {
	                        argument.value=argument.value+'';
	                        }	
	                else
	                        {
	                        argument.value=argument.value+nombre.charAt(i);
	                        }
	                }
	        }
}
 
 

function nombre_sansEspace(argument)
{
	var nombre = argument.value;
	var pos=nombre.indexOf(' ');

	for(var i = 0; i < nombre.length; i++)
	{
		var car = nombre.substring(i, i+1);
		if((car != ' ')&&(car < '0' || car > '9'))
		{
			return 0;
		}
	}
	if (pos!=-1) 
	        {
	        argument.value='';
	        for (var i = 0; i < nombre.length ; i++) 
	                {
	                if (nombre.charAt(i)==' ')
	                        {
	                        argument.value=argument.value+'';
	                        }	
	                else
	                        {
	                        argument.value=argument.value+nombre.charAt(i);
	                        }
	                }
	        }
}



function no_caract_speciaux(argument)
{
	var chaine = argument.value;
	var pos=chaine.indexOf('\'');

	for (var i = 0; i < chaine.length ; i++) 
 		      {
/*
chaine.charAt(i)=='\\' ||
chaine.charAt(i)=='\!' ||
chaine.charAt(i)=='\?' ||
chaine.charAt(i)=='\(' ||
chaine.charAt(i)=='\)' ||
chaine.charAt(i)=='\°' ||
chaine.charAt(i)=='\*' ||
chaine.charAt(i)=='\@' ||
chaine.charAt(i)=='\+' ||
chaine.charAt(i)=='\=' ||
chaine.charAt(i)=='\_' ||
chaine.charAt(i)=='\/'
*/
      	    		      if (chaine.charAt(i)=='\"' ||
					    chaine.charAt(i)=='\<' ||
					    chaine.charAt(i)=='\§' ||
					    chaine.charAt(i)=='\%' ||
					    chaine.charAt(i)=='\>' ||
					    chaine.charAt(i)=='\^' ||
					    chaine.charAt(i)=='\&' ||
					    chaine.charAt(i)=='\#' ||
					    chaine.charAt(i)=='\|' ||
					    chaine.charAt(i)=='\]' ||
					    chaine.charAt(i)=='\[' ||
					    chaine.charAt(i)=='\¤' ||
					    chaine.charAt(i)=='\$' ||
					    chaine.charAt(i)=='\£' ||
					    chaine.charAt(i)=='\^' ||
					    chaine.charAt(i)=='\{' ||
					    chaine.charAt(i)=='\}' ||
					    chaine.charAt(i)=='\µ' ||
					    chaine.charAt(i)=='\`' ||
					    chaine.charAt(i)=='\~' ||
					    chaine.charAt(i)=='\:')
					{
      			      	alert('\nATTENTION\ncertains caractères spéciaux  \#\"\'\%\/\£\$  etc...\nsont interdits');
     	      				argument.focus();
						return 0;
					}
			}
	if (pos!=-1) 
	        {
	        argument.value='';
	        for (var i = 0; i < chaine.length ; i++) 
	                {
	                if (chaine.charAt(i)=='\'')
	                        {
	                        argument.value=argument.value+' ';
	                        }	
	                else
	                        {
	                        argument.value=argument.value+chaine.charAt(i);
	                        }
	                }
	        }
}




function Parcours_Num(nombre, chaine)
{
	for(var i = 0; i < nombre.length; i++)
	{
		var car = nombre.substring(i, i+1);
		if(car < '0' || car > '9')
		{
			alert('La zone ' + chaine + ' doit etre un nombre');
			return 0;
		}
	}

	return 1;
}

function Parcours_Alpha(nombre, chaine)
{
	for(var i = 0; i < nombre.length; i++)
	{
		var car = nombre.substring(i, i+1);
		car = car.toLowerCase();
		if(car < 'a' || car > 'z')
		{
			alert('Format incorrect');
			return 0;
		}
	}

	return 1;
}

function Parcours_Email(email)
{
	var flag_separateur = 0;
	var flag_separateur_point = 0;
	var taille = email.length;
	taille = taille-1;

	if ((email.indexOf(".") == -1) ||(email.indexOf("@") == -1))
	{
		alert("Votre email n\'est pas valide");
		return 0;
	}


	if (email.indexOf("@") < 1)
	{
		//au moins un char avant @
		alert("Votre email n\'est pas valide");
		return 0;
	}
	else
	{
		//au moins un char entre @ et .

		var SuiteArob = email.substring(email.indexOf("@"), email.length);

			if (SuiteArob.indexOf(".") < 2)
			{
			alert("Votre email n\'est pas valide");
			return 0;
			}
	}

	for(var i = 0; i < email.length; i++)
	{
		var car = email.substring(i, i+1);
		car = car.toLowerCase();
		
		if ((i == taille)&& (car == '.'))
		{
				alert("Votre email n\'est pas valide");
				return 0;
		}

		
		
		if(car == '@')
		{
			flag_separateur = flag_separateur + 1;

			if(flag_separateur > 1)
			{
				alert("Votre email n\'est pas valide");
				return 0;
			}
		}

		if((flag_separateur == 1) && (car == '.'))
		{
			flag_separateur_point = flag_separateur_point + 1;
		}
		
		if((car < 'a' || car > 'z') &&
		   (car < '0' || car > '9') &&
		   (car != '_') &&
		   (car != '-') &&
		   (car != '.') &&
		   (car != '@')
		  )
		   
		{
			alert("Votre email n\'est pas valide");
			return 0;
		}
	}

	if((flag_separateur == 0) || (flag_separateur_point == 0))
	{
		alert("Votre email n\'est pas valide");
		return 0;
	}
	
	return 1;
}



function Rech_Retour_Chariot(nombre, chaine)
{
	for(var i = 0; i < nombre.length; i++)
	{
		var car = nombre.substring(i, i+1);
		if(car == "\n")
		{
			alert("Retour chariot détecté");
			return 1;
		}
	}

	return 1;
}



function Indicateur_Mois(m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11)
{
	this[0] = m0;
	this[1] = m1;
	this[2] = m2;
	this[3] = m3;
	this[4] = m4;
	this[5] = m5;
	this[6] = m6;
	this[7] = m7;
	this[8] = m8;
	this[9] = m9;
	this[10] = m10;
	this[11] = m11;
}

function Verification_Date_Anterieure(argument)
{
	var date_saisie = argument.value;

	var longueur_date_saisie = date_saisie.length;
	if(longueur_date_saisie != 8)
	{
		alert('Format de date incorrect');
		argument.value = "";
		argument.focus();
		return 0;
	}

	var annee_date_saisie = date_saisie.substring(4,8);
	var mois_date_saisie = date_saisie.substring(2,4);
	var jour_date_saisie = date_saisie.substring(0,2);


	if(Parcours_Num(annee_date_saisie, 'Annee') == 0)
	{			
		argument.value = "";
		argument.focus();
		return 0;
	}
	
	if(annee_date_saisie < 1900)
	{			
		alert("La date ne peut\n pas être antérieure à 1900");
		argument.value = "";
		argument.focus();
		return 0;
	}
	
	if(Parcours_Num(mois_date_saisie, 'Mois') == 0)
	{
		argument.value = "";
		argument.focus();
		return 0;
	}
	if(Parcours_Num(jour_date_saisie, 'Jour') == 0)
	{
		argument.value = "";
		argument.focus();
		return 0;
	}

	// bissextile 

	var Jours_Par_Mois = new Indicateur_Mois(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if(((annee_date_saisie % 4 == 0) && (annee_date_saisie % 100 != 0)) || (annee_date_saisie % 400 == 0))
	{
		Jours_Par_Mois[1] = 29;
	}

	if(mois_date_saisie > 12)
	{
		alert('Format de date incorrect');
		argument.value = "";
		argument.focus();
		return 0;
	}
	if(jour_date_saisie > Jours_Par_Mois[mois_date_saisie - 1])
	{
		alert('Format de date incorrect');
		argument.value = "";
		argument.focus();
		return 0;
	}

	var date_saisie_traitee = annee_date_saisie + mois_date_saisie + jour_date_saisie;
	date_saisie_traitee = parseInt(date_saisie_traitee);

	return 1;
	
}

function Verification_Date_Posterieure(argument)
{
	var date_saisie = argument.value;

	var longueur_date_saisie = date_saisie.length;
	if(longueur_date_saisie != 8)
	{
		alert('Format de date incorrect');
		argument.value = "";
		argument.focus();
		return 0;
	}

	var annee_date_saisie = date_saisie.substring(4,8);
	var mois_date_saisie = date_saisie.substring(2,4);
	var jour_date_saisie = date_saisie.substring(0,2);


	if(Parcours_Num(annee_date_saisie, 'Annee') == 0)
	{			
		argument.value = "";
		argument.focus();
		return 0;
	}
	
	if(annee_date_saisie < 1900)
	{			
		alert("La date ne peut\n pas être antérieure à 1900");
		argument.value = "";
		argument.focus();
		return 0;
	}
	
	if(Parcours_Num(mois_date_saisie, 'Mois') == 0)
	{
		argument.value = "";
		argument.focus();
		return 0;
	}
	if(Parcours_Num(jour_date_saisie, 'Jour') == 0)
	{
		argument.value = "";
		argument.focus();
		return 0;
	}


	var Jours_Par_Mois = new Indicateur_Mois(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if(((annee_date_saisie % 4 == 0) && (annee_date_saisie % 100 != 0)) || (annee_date_saisie % 400 == 0))
	{
		Jours_Par_Mois[1] = 29;
	}

	if(mois_date_saisie > 12)
	{
		alert('Format de date incorrect');
		argument.value = "";
		argument.focus();
		return 0;
	}
	if(jour_date_saisie > Jours_Par_Mois[mois_date_saisie - 1])
	{
		alert('Format de date incorrect');
		argument.value = "";
		argument.focus();
		return 0;
	}

	var date_saisie_traitee = annee_date_saisie + mois_date_saisie + jour_date_saisie;
	date_saisie_traitee = parseInt(date_saisie_traitee);


	return 1;
	
}



/**************
//ATTENTION : 2 fonctions similaires 
//Comparaison_Date_Permis_Date_Naissance : pour permis B et AL
//Comparaison_PermisA_Date_Naissance : pour permis A car si obtenu avant 01/04/73 =16ans 
 *****************/

function Comparaison_Date_Permis_Date_Naissance(date_permis, date_naissance, age_requis)
{
	var date_permis_saisie = date_permis.value;

	var annee_date_permis_saisie = date_permis_saisie.substring(4,8);
	var mois_date_permis_saisie = date_permis_saisie.substring(2,4);
	var jour_date_permis_saisie = date_permis_saisie.substring(0,2);


	var date_naissance_saisie = date_naissance.value;
	var annee_date_naissance_saisie = date_naissance_saisie.substring(4,8);
	var mois_date_naissance_saisie = date_naissance_saisie.substring(2,4);
	var jour_date_naissance_saisie = date_naissance_saisie.substring(0,2);
	
	if(annee_date_permis_saisie <= annee_date_naissance_saisie)
	{

		document.form.page.value='err2';
		document.form.submit();
	}

	var diff = annee_date_permis_saisie - annee_date_naissance_saisie;
	if (mois_date_permis_saisie < mois_date_naissance_saisie)
	diff = diff -1;

	if((mois_date_naissance_saisie == mois_date_permis_saisie) && (jour_date_permis_saisie < jour_date_naissance_saisie))
	{
		diff = diff -1;
	}

	if(diff < age_requis)
	{
		alert('Votre date de permis n\'est pas valide');
		date_permis.value = "";
		date_permis.focus();
		document.form.suite.value = 1;
		return false;
		
	}
	else
	{
		document.form.suite.value = 2; 
	}
	return true;
}


/*    //se distingue de la fonction Comparaison_Date_Permis_Date_Naissance par le fait
      //  que le permis A pouvait être obtenu a 16 ans avant le 01 avril 73  */

function Comparaison_PermisA_Date_Naissance(date_permisA, date_naissance)
{
	var date_permisA_saisie = date_permisA.value;

	var annee_date_permisA_saisie = date_permisA_saisie.substring(4,8);
	var mois_date_permisA_saisie = date_permisA_saisie.substring(2,4);
	var jour_date_permisA_saisie = date_permisA_saisie.substring(0,2);


	var date_naissance_saisie = date_naissance.value;
	var annee_date_naissance_saisie = date_naissance_saisie.substring(4,8);
	var mois_date_naissance_saisie = date_naissance_saisie.substring(2,4);
	var jour_date_naissance_saisie = date_naissance_saisie.substring(0,2);
	

	var test_a_effectuer = "normal";

	if(annee_date_permisA_saisie < 1973)
	{
		test_a_effectuer = "avant73";
	}

	if(annee_date_permisA_saisie == 1973 && mois_date_permisA_saisie < 04)
	{
		test_a_effectuer = "avant73";
	}


	if(annee_date_permisA_saisie <= annee_date_naissance_saisie)
	{

		document.form.page.value='err2';
		document.form.submit();
	}

	var diff = annee_date_permisA_saisie - annee_date_naissance_saisie;
	if (mois_date_permisA_saisie < mois_date_naissance_saisie)
	diff = diff -1;

	if((mois_date_naissance_saisie == mois_date_permisA_saisie) && (jour_date_permisA_saisie < jour_date_naissance_saisie))
	{
		diff = diff -1;
	}

	if (test_a_effectuer == "avant73")
	{

		if(diff < 16)
		{
			alert('Votre date de permis n\'est pas valide');
			date_permisA.value = "";
			date_permisA.focus();
			document.form.suite.value = 1;
			return false;
		}
		else
		{
			document.form.suite.value = 2; 
		}
	}
	if (test_a_effectuer == "normal")
	{

		if(diff < 18)
		{
			alert('Votre date de permis n\'est pas valide');
			date_permisA.value = "";
			date_permisA.focus();
			document.form.suite.value = 1;
			return false;
		}
		else
		{
			document.form.suite.value = 2; 
		}
	}
	
	return true;
}




function Verification_Age_Min(argument, borne, indice)
{

	var annee_courante = annee_sys
	var mois_courant = mois_sys
	var jour_courant = jour_sys


	var date_saisie = argument.value;
	var annee_date_saisie = date_saisie.substring(4,8);
	var mois_date_saisie = date_saisie.substring(2,4);
	var jour_date_saisie = date_saisie.substring(0,2);

	if(annee_date_saisie > annee_courante)
	{
		if(indice == 0)
		{
			alert('La date ne doit pas être\n postérieure à la date du jour');
			argument.value = "";
			argument.focus();
		}

		return 0;
	}

	var diff = annee_courante - annee_date_saisie;
	if (mois_courant < mois_date_saisie)
	diff = diff -1;

	if((mois_courant == mois_date_saisie) && (jour_courant < jour_date_saisie))
	{
		diff = diff -1;
	}

	

	if(diff < borne)
	{
		if(indice == 0)
		{
		document.form.page.value='err2';
		document.form.submit();
		}

		return 0;
	}

	return 1;
}

function Verification_Age_Max(argument, borne, indice)
{

	var annee_courante = annee_sys
	var mois_courant = mois_sys
	var jour_courant = jour_sys


	var date_saisie = argument.value;

	var annee_date_saisie = date_saisie.substring(4,8);
	var mois_date_saisie = date_saisie.substring(2,4);
	var jour_date_saisie = date_saisie.substring(0,2);

	if(annee_date_saisie > annee_courante)
	{
		if(indice == 0)
		{
			alert('La date ne doit pas être\n postérieure à la date du jour');
			argument.value = "";
			argument.focus();
		}

		return 0;
	}

	var diff = annee_courante - annee_date_saisie;
	if (mois_courant < mois_date_saisie)
	diff = diff -1;

	if((mois_courant == mois_date_saisie) && (jour_courant < jour_date_saisie))
	{
		diff = diff -1;
	}

	if(diff > borne)
	{
		if(indice == 0)
		{
		document.form.page.value='err2';
		document.form.submit();
		}

		return 0;
	}

	return 1;
}


function Comparaison_Date_Permis_Deux_Ans(argument)
{

	var annee_courante = annee_sys
	var mois_courant = mois_sys
	var jour_courant = jour_sys



	var date_saisie = argument.value;
	var annee_date_saisie = date_saisie.substring(4,8);
	var mois_date_saisie = date_saisie.substring(2,4);
	var jour_date_saisie = date_saisie.substring(0,2);

	if(annee_date_saisie > annee_courante)
	{
		alert('La date ne doit pas être\n postérieure à la date du jour');
		return false;
	}

	var diff = annee_courante - annee_date_saisie;

	if (mois_courant < mois_date_saisie)
	{
	diff = diff -1;
	}

	if((mois_courant == mois_date_saisie) && (jour_courant < jour_date_saisie))
	{
		diff = diff -1;
	}

	

	if(diff < 2)
	{
		return true;
	}
	else
	{
		return false;
	}
}


