//////////////////////////////////////////////////////////////////////////////////////////////
// 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_mail(mail) 
// remplace_virgule(champ)
// remplace_point(champ)
//////////////////////////////////////////////////////////////////////////////////////////////

function Trim(nStr){
	return nStr.replace(/(^\s*)|(\s*$)/g, "");
}

// Vérification qu'un champ n'est pas vide
function  verif_non_vide(champ)
{
	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("Une valeur doit être sélectionnée");
		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))
			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 'réelle' non conforme");
		champ.focus();
		champ.select();
		return false;
	}
	else 
	{
		if(Number(nbVirg) > Number(1))
		{
			alert("Valeur 'réelle' non conforme");
			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 : '2001'.");
				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 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);
	}
}
