// Conrôle de numéricité ------------------------------------
function errNum(zNum) {
	var sValidChar = "1234567890";
		for (var iCharPos = 0; iCharPos < zNum.length; iCharPos++)
			if (sValidChar.indexOf(zNum.charAt(iCharPos)) == -1)
				return true;
		return false;
}

function errPass(zPass) {
	var sValidChar = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (var iCharPos = 0; iCharPos < zPass.length; iCharPos++)
			if (sValidChar.indexOf(zPass.charAt(iCharPos)) == -1)
				return true;
		return false;
}

// Syntaxe Email --------------------------------------------
function CharEmailOk(zChar) {
	var sChar = "";
	var aChar = "";
	var sValidChar  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_@.";
	for (var iCharPos = 0; iCharPos <zChar.length; iCharPos++)
		if (sValidChar.indexOf(zChar.charAt(iCharPos)) != -1)
			sChar = sChar + zChar.charAt(iCharPos);
	if (sChar == zChar)
		return true;
	else
		return false;
}

function trim(value) {
    return value.replace(/^\s*|\s*$/g, "");
}

function syntaxEmail(zChar) {
    return trim(zChar).match(/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i);
}

// Numéro de Sociétaire -------------------------------------
function isNaNum(zChar) {
	var sChar = "";
	var aChar = "";
	var sValidChar  = "0123456789";
	for (var iCharPos = 0; iCharPos <zChar.length; iCharPos++)
		if (sValidChar.indexOf(zChar.charAt(iCharPos)) != -1)
			sChar = sChar + zChar.charAt(iCharPos);
	if (sChar == zChar)
		return true;
	else
		return false;
}

function isAlpha(zChar) {
	var sChar = "";
	var aChar = "";
	var sValidChar  = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjklmnpqrstuvwxyz";
	for (var iCharPos = 0; iCharPos <zChar.length; iCharPos++)
		if (sValidChar.indexOf(zChar.charAt(iCharPos)) != -1)
			sChar = sChar + zChar.charAt(iCharPos);
	if (sChar == zChar)
	return true;
	else
	return false;
}

function isValidRefSoc(dChar) {
	aChar=dChar.substring(0,dChar.length-1);
	bChar=dChar.substring(12,13);
	if (isNaNum(aChar))
		return isAlpha(bChar);
	else
	return false;
}

// Initialisation d'un champ Select -------------------------
function initSelect(param,valeur) {
	for(i=0;i<param.options.length;i++)
		if (param.options[i].value==valeur)
			param.options[i].selected=true;
}

// Initialisation d'un champs Radio -------------------------
function initRadio(monform,param,valeur) {
	
	for(i=0;i<document.forms[monform].elements[param].length;i++)
        	if (document.forms[monform].elements[param][i].value==valeur)
          		document.forms[monform].elements[param][i].checked="checked";
}

// Controle de la date --------------------------------------
function controlerDate(valeur) {
// contrôle la valeur d'un champ comme une date au format JJ/MM/AAAA (séparateur /, ., -)

   var ok = false;
   // vérifie le format date
   ctl = /^(\d\d?)[\/](\d\d?)[\/](\d{4,})$/;
   var tab = valeur.match(ctl);

   // vérifie si la date existe réellement (dates valables du 1/10/1582 au 31/7/275760)
   if (tab) {
   
         var unedate = new Date(tab[3], parseInt(tab[2], 10)-1, tab[1]);
    
         if ((unedate.getFullYear() == tab[3]) && (unedate.getMonth() == tab[2]-1) && (unedate.getDate() == tab[1])) ok = true;
   }    
   return ok;
}

// Calcul de l'age du Capitaine ------------------------------
function CalculAge(UneDate) {
	var nbj = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);

	// Attention, en javascript les mois commencent à zéro
	// var datedeb = new Date(1963,07,28,01,00,00); 		// Année, Mois, Jour, Heure, Minutes, Secondes

	ctl = /^(\d\d?)[\/\-\.](\d\d?)[\/\-\.](\d{4,})$/;
	var tab = UneDate.match(ctl);

	var datedeb = new Date(tab[3], parseInt(tab[2], 10)-1, tab[1]);

	var datefin = new Date();

	aad = datedeb.getFullYear();
	mmd = datedeb.getMonth()+1;
	jjd = datedeb.getDate();
	hhd = datedeb.getHours();
	mnd = datedeb.getMinutes();
	ssd = datedeb.getSeconds();

	aaf = datefin.getFullYear();
	mmf = datefin.getMonth()+1;
	jjf = datefin.getDate();
	hhf = datefin.getHours();
	mnf = datefin.getMinutes();
	ssf = datefin.getSeconds();

	// if (aaf < 1800) {aaf = aaf+1800;}
	// if (aad < 1800) {aad = aad+1800;}

	if (aaf%4 == 0) {nbj[2] = 29;}
	if ((aaf%100 == 0) && (aaf%400 != 0)) {nbj[2] = 28;}
	if (ssf < ssd) {ssf = ssf + 60; mnf = mnf-1;}
	if (mnf < mnd) {mnf = mnf + 60; hhf = hhf-1;}
	if (hhf < hhd) {hhf = hhf + 24; jjf = jjf-1;}
	if (jjf < jjd) {jjf = jjf + nbj[mmf]; mmf = mmf-1;}
	if (mmf < mmd) {mmf = mmf + 12; aaf = aaf-1;}

	// mes=(aaf-aad)+" ans "+(mmf-mmd)+" mois "+(jjf-jjd)+" jours "+(hhf-hhd)+" heures "+(mnf-mnd)+" minutes "+(ssf-ssd)+" secondes";
	// document.write("Date début : "+datedeb+"<br>Date de fin : "+datefin+"<br>");
	// document.write(mes);

	return(aaf-aad);
}
