//////////////////////////////////////////////////////////////////////////////////////////////
// verif_egal(champ1, champ2, lib)
// verif_non_vide(champ)
// verif_non_vide2(champ, lib)
// verif_non_zero(champ)
// verif_select(champ, lib)
// message_select(champ, lib)
// verif_interval(champ, min, max)
// verif_interval_date(champ)
// verif_minmax(champmin, champmax)
// verif_millesime(millesime)
// verif_int_virgule_only(champ)
// verif_int_only(champ)
// verif_num_only(champ)
// verif_num_neg_only(champ)
// verif_date_valide2(jour, mois, annee)
// verif_date_entiere_valide(dateentiere)
// verif_date_valide(jour, mois, annee)
// verif_date(dates)
// verif_mail(mail) 
// remplace_virgule(champ)
// remplace_point(champ)
//////////////////////////////////////////////////////////////////////////////////////////////

// véfification que les contenus de 2 champs sont égaux
function verif_egal(champ1, champ2, lib)
{
	if(champ1.value != champ2.value)
	{
		alert(lib);
		champ1.focus();
		champ1.select();
		return(false);
	}
	else return true;
}

// Vérification qu'un champ n'est pas vide
function verif_non_vide(champ)
{
	//if(champ.value == "" || champ.value == 0)
	if (champ.value == "")
	{
		alert("Le champ doit être renseigné");
		champ.focus();
		champ.select();
		return(false);
	}
	else return true;
}

function verif_non_vide2(champ, lib)
{
	if (champ.value == "")
	{
		var msg;
		msg = "Le champ '" + lib + "' doit être renseigné."
		alert(msg);
		champ.focus();
		champ.select();
		return(false);
	}
	else return true;
}

// Vérification qu'un champ n'est pas à 0
function verif_non_zero(champ)
{
	if (champ.value == 0)
	{
		alert("La valeur doit être différente de 0");
		champ.focus();
		champ.select();
		return(false);
	}
	else return true;
}

// vérification qu'un champ est bien sélectionné (combo/liste)
function verif_select(champ, lib)
{
	if ((champ.value == "") || (champ.value == 0))
	{
		alert(lib);
		champ.focus();
		return(false);
	}
	else return true;
}

function message_select(champ, lib)
{
	var str, ret;
	str = "";
	if ((champ.value == "") || (champ.value == 0))
	{
		ret = confirm(str);
		if (ret == true)
			return(true);
		else
			return false;
			
	}
	else return true;
}

// vérification de la valeur d'un champ dans un intervalle de données
function verif_interval(champ, min, max)
{
	var str;
	var valeur = champ.value;
	if (Number(valeur) < min || Number(valeur) > max)
	{
		str = "La valeur doit être comprise entre la valeur '"+ min +"' et la valeur '" + max + "'";
		alert(str);
		champ.focus();
		champ.select();
		return(false);
	}
	return(true); 
}

//Test si la valeur du millesime est comprise entre 1900 et l'année en cours
function verif_interval_date(champ)
{
	today = new Date();
	var year = today.getYear();
	var valeur = champ.value;
	var str;
	min = 1980;
	max = year;
	
	if (champ.value != "" && champ.value != "0")
	{
		if(Number(valeur) < min || Number(valeur) > max)
		{
			str= "L'intervalle de date est erroné";
			alert(str);
			champ.focus();
			champ.select();
			return(false);
		}
	}
	return true;
}

// vérification que la valeur max est > à la min
function verif_minmax(champmin, champmax)
{
	var valmin = champmin.value;
	var valmax = champmax.value;
	
	if (Number(valmin) >= Number(valmax))
	{
		alert("La valeur MAX doit être supérieure à la valeur MIN.");
		champmin.focus();
		champmin.select();
		return(false);
	}
	return(true); 
}


function verif_millesime(millesime)
{
var str = millesime.value;
var ch = 0;
var ch2 = 0;
var cpt_annee = 0 ;
var longueur;

var str2="";

longueur = str.length;

// retire la ou les dernieres virgules si y sont
while (str.charAt(longueur-1)==',') {
	longueur = longueur-1;
	}

// retire les doubles virgules
for(i=0 ; i< longueur ;i++)
	{
	ch = str.charAt(i)
	str2 = str2 + ch;
	ch2 = str.charAt(i+1);
	//if ((ch<>','){
	//	cpt = cpt + 1;
	//	}
	
	if ((ch==',') && (ch2 == ',')) 
		{
		i=i+1;
		}
	}
return str2;
}

// vérification qu'un champ contient uniquement des chiffres ou une virgule
function verif_int_virgule_only(champ)
{
	var num = "0123456789.,";
	var str = champ.value;
	var allValid = true;
	
	for (i = 0; i < str.length;  i++)
	{
		ch = str.charAt(i);
		for(j=0; j < num.length; j++)
		{
			if(ch == num.charAt(j))
				break;
		}
		if( j == num.length)
		{
			allValid = false;
			break;
		}
	}
	if(!allValid)
	{
		alert("Valeur saisie non conforme");
		champ.focus();
		champ.select();
		return false;
	}
	else
		return(true);
}


// vérification que le contenu d'un champ est un nombre entier
function verif_int_only(champ)
{
	var num = "0123456789";
	var str = champ.value;
	var allValid = true;
	for (i = 0; i < str.length;  i++)
	{
		ch = str.charAt(i);
		for(j=0; j < num.length; j++)
		{
			if(ch == num.charAt(j))
				break;
		}
		if( j == num.length)
		{
			allValid = false;
			break;
		}
	}
	if(!allValid)
	{
		alert("Valeur non conforme");
		champ.focus();
		champ.select();
		return(false);
	}
	else
		return(true);
}

// vérification que le contenu d'un champ est un nombre réel
function verif_num_only(champ)
{
	var num = "0123456789.,";
	var nbVirg = 0;
	var str = champ.value;
	var allValid = true;
	for (i = 0; i < str.length;  i++)
	{
		ch = str.charAt(i);
		if ((ch == num.charAt(10)) || (ch == num.charAt(11)))
			nbVirg = nbVirg + 1;
		for (j=0; j < num.length; j++)
			if (ch == num.charAt(j))
				break;
		if (j == num.length)
		{
			allValid = false;
			break;
		}
	}
	if(!allValid)
	{
		alert("Attention : champ numérique non conforme !\nSaisissez une valeur de type '9,5' ou '99.5' par exemple.");
		champ.focus();
		champ.select();
		return false;
	}
	else 
	{
		if(Number(nbVirg) > Number(1))
		{
			alert("Attention : champ numérique non conforme !\nSaisissez une valeur de type '9,5' ou '99.5' par exemple.");
			champ.focus();
			champ.select();
			return(false);
		}			
	}
	return(true);
}

// vérification que le contenu d'un champ est un nombre réel
function verif_num_neg_only(champ)
{
	var num = "0123456789.,-";
	var nbVirg = 0;
	var str = champ.value;
	var allValid = true;
	for (i = 0; i < str.length;  i++)
	{
		ch = str.charAt(i);
		if(ch == num.charAt(10))
			nbVirg = nbVirg + 1;
		for(j=0; j < num.length; j++)
			if(ch == num.charAt(j))
				break;
		if( j == num.length)
		{
			allValid = false;
			break;
		}
	}
	if(!allValid)
	{
		alert("Valeur non conforme");
		champ.focus();
		champ.select();
		return false;
	}
	else 
	{
		if(Number(nbVirg) > Number(1))
		{
			alert("Valeur non conforme");
			champ.focus();
			champ.select();
			return(false);
		}			
	}
	return(true);
}

// vérification de la validité d'une date
function verif_date_valide2(jour, mois, annee)
{
	if (jour.value == 0)
	{
		return(true);
	}
	
	var datelimite = new Date(Number(annee.value), Number(mois.value)-1, Number(jour.value));
	jour.value = datelimite.getDate();
	mois.value = datelimite.getMonth() + 1;
	annee.value = datelimite.getYear();
	var datejour = new Date();
	if (datelimite >= datejour)
	{
		alert("Date non valide.");
		jour.focus();
		jour.select();
		return(false);
	}
	return(true);
}


function verif_date_entiere_valide(dateentiere)
{
var Aujourdhui;
Aujourdhui = new Date();
Aujourdhui.getDate();

var strDate;
strDate = dateentiere.value;
if (strDate.length == 0) { 
	alert("Date non valide.");
	dateentiere.focus();
	dateentiere.select();
	return(false); 
}
else {
	var i;
	i = strDate.indexOf("/");		// recherche caractère '/' dans la date
	if (i != 0) {
		var jour;
		jour = strDate.substr(0, i);	// traitement du JOUR
		if (Number(jour) == 0) {
			alert("Date non valide.");
			dateentiere.focus();
			dateentiere.select();
			return(false);
		}
		
		strDate = strDate.substr(i+1, 255);
		i = strDate.indexOf("/");		// recherche caractère '/' dans la date
		if (i != 0) {
			var annee, mois;
			mois = strDate.substr(0, i);	// traitement du MOIS
			if ((Number(mois) == 0) || (Number(mois) > 12)) {
				alert("Date non valide.");
				dateentiere.focus();
				dateentiere.select();
				return(false);
			}
			annee = Number(strDate.substr(i+1, 255));	// traitement de l'ANNEE
			if (annee < 100) { 
				alert("Date non valide. Veuillez préciser l'année sur 4 caractères. Exemple : '2007'.");
				dateentiere.focus();
				dateentiere.select();
				return(false);
			}
			if (annee < Aujourdhui.getFullYear)
			{
				alert("Date non valide. L'année est inférieure à l'année en cours.");
				dateentiere.focus();
				dateentiere.select();
				return(false);
			}
			
			// maintenant, on vérifie la validité de la date
			var datelimite = new Date(annee, Number(mois)-1, Number(jour));
			if (datelimite < Aujourdhui)
			{
				alert("La date doit être supérieure ou égale à la date du jour.");
				dateentiere.focus();
				dateentiere.select();
				return(false);
			}
			else {
				return(true);
			}
		}
		else {
			alert("Date non valide.");
			dateentiere.focus();
			dateentiere.select();
			return(false);
		}
	}
	else {
		alert("Date non valide.");
		dateentiere.focus();
		dateentiere.select();
		return(false);
	}
}
return(true);
}

// vérification de la validité d'une date
function verif_date_valide(jour, mois, annee)
{
	if (jour.value == 0)
	{
		return(true);
	}
	
	var datelimite = new Date(Number(annee.value), Number(mois.value)-1, Number(jour.value));
	jour.value = datelimite.getDate();
	mois.value = datelimite.getMonth() + 1;
	annee.value = datelimite.getYear();
	var datejour = new Date();
	if (datelimite <= datejour)
	{
		alert("Date non valide.");
		jour.focus();
		jour.select();
		return(false);
	}
	return(true);
}


// vérification de la validité d'une date
function verif_date0(dates)
{
	//alert(dates);
	if (dates.value == "") {
		return(true);
	} else {
		var dateverif = new Date(dates.value);
		//alert(dateverif);
		if (dateverif == "NaN")
		{
			alert("Date non valide.");
			dates.focus();
			dates.select();
			return(false);
		}
		return(true);
	}
}


function verif_date(dates) {
var dateaverifier = dates.value;

// Je regarde tout d'abord si la chaîne n'est pas vide, sinon pas la peine d'aller plus loin
if (dateaverifier != "") {
	return true;
}

// J'utilise split pour créer un tableau dans lequel je récupère les jour mois année
// J'attends bien sûr une date formatée en JJ/MM/AAAA
var ladate = (dateaverifier).split("/")

// Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) {
	alert("Date non valide : " + dateaverifier);
	dates.focus();
	dates.select();
	return false
}

// Sinon, c'est maintenant que je crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
var unedate = new Date(eval(ladate[2]), eval(ladate[1])-1, eval(ladate[0]));

// Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
var annee = unedate.getYear();
if ((Math.abs(annee)+"").length < 4) annee = annee + 1900;

// Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
if ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2]))) {
	return true;
} else {
	alert("Date non valide : " + dateaverifier);
	dates.focus();
	dates.select();
	return false;
}
}

// vérification de la validité d'une adresse email
function verif_mail(mail) 
{
var a;
a = mail.value;
if (a.length == 0)
{
	testm = true;
}
else
{
	testm = false ;
	for (var j=1 ; j<(a.length) ; j++) 
	{
		if (a.charAt(j)=='@') 
		{ 
			if (j<(a.length-4))
			{ 
				for (var k=j ; k<(a.length-2) ; k++) 
				{ 
					if (a.charAt(k)=='.') testm = true; 
				} 
			} 
		} 
	} 
	if (testm==false)
	{
		alert("Adresse e-mail non conforme."); 
		mail.select();
		mail.focus();
	}
	else 
	{
		// ligne suivante non obligatoire
		// alert('Merci , envoi des informations.');
	}
}
return testm ; 
}


// remplacement de ',' par '.'
function remplace_virgule(champ)
{
	var i, ch, str;
	str = champ.value;
	i = str.indexOf(",");
	if (i > 0) 
	{
		champ.value = str.substr(0, i) + "." + str.substr(i+1, 255);
	}
}


// remplacement de '.' par ','
function remplace_point(champ)
{
	var i, ch, str;
	str = champ.value;
	i = str.indexOf(".");
	if (i > 0) 
	{
		champ.value = str.substr(0, i) + "," + str.substr(i+1, 255);
	}
}

