//<script language="JavaScript">

// On enlève les séparateurs aux numéros de téléphone
// séparateurs recherchés : espace / - .
function EnleveSep(tel) {
	var tmp = "" + tel;
	tmp = tmp.replace(/ |\/|-|\./g, "");
	return tmp;
}

// Validation d'un numéro de téléphone
// Teste s'il s'agit d'une collection d'au moins 9 chiffres (sans espace)
// précédée d'un '+'
// S'il commence par '+330' => supprime le zéro
//
// Retourne une chaîne vide en cas d'erreur de validation
// retourne "+" s'il manque le plus
// Retourne la chaîne, éventuellement modifiée sinon
function valideNumPortable (tel) {

	// on commence par supprimer les séparateurs éventuels
	tel = EnleveSep(tel);
	
	if ( tel.search(/^\+[1-9][0-9]{8,}$/) < 0) {
		return "";
	}
	// numéro français avec un 0 en trop
	//if (tel.substr(0, 4) == "+330") {
	//	tel = "+33" + tel.substr(4);
	//}
	// Pour la France on vérifie un peu plus
	if (tel.substr(0, 3) == "+33") {
		if ( tel.search(/^\+33[67][0-9]{8}$/) < 0) {
			return "";
		}
	}
	// suppression des numéros GlobalStar
	if (tel.substr(0,8) == "+3363800"  || tel.substr(0,7) == "+336400")	return "";

	return tel;
}
function valideNum (tel) {

	// on commence par supprimer les séparateurs éventuels
	tel = EnleveSep(tel);
	
	if ( tel.search(/^\+[1-9][0-9]{8,}$/) < 0) {
		return "";
	}
	// numéro français avec un 0 en trop
	//if (tel.substr(0, 4) == "+330") {
	//	tel = "+33" + tel.substr(4);
	//}
	// Pour la France on vérifie un peu plus
	if (tel.substr(0, 3) == "+33") {
		if ( tel.search(/^\+33[1-9][0-9]{8}$/) < 0) {
			return "";
		}
	}
	return tel;
}
function valideLogin(login) {
	if (login.search(/^[-A-Za-z0-9]{0,8}$/) < 0) {
		return 1; 
	}
	else return 0;
}
function valideAlias(alias) {
	if (alias.search(/^[-A-Za-z0-9_]{1,15}$/) < 0) {
		return 1; 
	}
	else return 0;
}
function validePasswd(pass) {
	if (pass.search(/^[-A-Za-z0-9_]{6,12}$/) < 0) {
		return 1;
	}
	else return 0;	
}
function valideEmetteur(emetteur) {
	if (emetteur.search(/^[-A-Za-z0-9_ .']{1,11}$/) < 0) {
		return false;
	}
	else return true;	
}


function valideEmail(email){
	if (email.search(/^[-a-zA-Z0-9_][-a-zA-Z0-9._]*[-a-zA-Z0-9_]@[-a-zA-Z0-9_]+(\.[-a-zA-Z0-9_]+)*\.[a-zA-Z]{2,6}$/) < 0) {
		return "";
	}
	else {
		return email;
	}
}


// car parseInt ne marche pas sur '08' (mais marche sur '07')
function myParseInt(str) {
	var res, ch, ix;
	res = 0;
	for(ix = 0; ix < str.length; ix++) {
		ch = str.charAt(ix);
		if (ch < '0' || ch > '9')	return NaN;
		res = res*10 + (ch - '0');
	}
	return res;
}

// nombre de jours d'un mois
function nbJoursDuMois(mois, annee) {
	var jmax = 31;
	if (mois == 4 || mois == 6 || mois == 9 || mois == 11) {
		jmax = 30;		
	}
	if (mois == 2) {
		if ((annee % 4) == 0) jmax = 29;
		else jmax = 28;
	}
	return jmax;
}

// Validation d'une date
// vérifie la cohérence du triplet
// retourne true si OK, false sinon
function valideDateJMA(jour, mois, annee) {
	if (isNaN(jour) || isNaN(mois) || isNaN(annee))	return false;
	if (mois < 1 || mois > 12)		return false;
	var jmax = nbJoursDuMois(mois, annee);
	if (jour < 1 || jour > jmax)	return false;
	return true;
}

// Validation d'une date
// vérifie que la date saisie est du format jour/mois/annee
// avec jour et mois sur 1 ou 2 chiffres et année sur 4 chiffres
// retourne la date formatée si OK, une chaîne vide sinon
function valideDate(dstr) {
	var jour, mois, annee;
	if (dstr.search(/^([0-3]?[0-9])\/([0-1]?[0-9])\/((19|20)[0-9]{2})$/) <  0) {
		return "";
	}
	jour = parseInt(RegExp.$1, 10);
	mois = parseInt(RegExp.$2, 10);
	annee = parseInt(RegExp.$3, 10);
	if (!valideDateJMA(jour, mois, annee))	return "";
	/**** OC 28/12/2010 on n'a pas besoin a priori de limiter l'année
	var today = new Date();
	var maxy = today.getFullYear() + 1;
	if ( annee < 1900 || annee > maxy) {
			return "";
	}
	*/
	return RegExp.$1 + "/" + RegExp.$2 + "/" + String(annee);
}

function valideDatetime(dstr) {
	var jour, mois, annee, heure, minute;
	if (dstr.indexOf(' ') < 0)	{		dstr += ' 00:00';	}
	if (dstr.search(/^([0-3]?[0-9])\/([0-1]?[0-9])\/((19|20)[0-9]{2}) ([0-2]?[0-9]):([0-5]?[0-9])$/) <  0) {
		return "";
	}
	jour = parseInt(RegExp.$1, 10);
	mois = parseInt(RegExp.$2, 10);
	annee = parseInt(RegExp.$3, 10);
	heure = parseInt(RegExp.$5, 10);
	minute = parseInt(RegExp.$6, 10);
	if (!valideDateJMA(jour, mois, annee))	return "";
	if (isNaN(heure) || heure < 0 || heure > 23)	return "";
	if (isNaN(minute) || minute < 0 || minute > 59)	return "";
	var today = new Date();
	var maxy = today.getFullYear();
	if ( annee < 1900 || annee > maxy) {
			return "";
	}
	return RegExp.$1 + "/" + RegExp.$2 + "/" + String(annee) + " " + RegExp.$5 + ":" + RegExp.$6;
}

function valide2Date(dstr1,dstr2) {
	var jour1, mois1, annee1;
	var jour2, mois2, annee2;
	if (dstr1.search(/^([0-3]?[0-9])\/([0-1]?[0-9])\/((19|20)[0-9]{2})$/) <  0) {
		return false;
	}
	jour1 = myParseInt(RegExp.$1);
	mois1 = myParseInt(RegExp.$2);
	annee1 = myParseInt(RegExp.$3);
	if (dstr2.search(/^([0-3]?[0-9])\/([0-1]?[0-9])\/((19|20)[0-9]{2})$/) <  0) {
		return false;
	}
	jour2 = myParseInt(RegExp.$1);
	mois2 = myParseInt(RegExp.$2);
	annee2 = myParseInt(RegExp.$3);
	
	if(annee1>annee2 || annee1==annee2 && mois1>mois2 || annee1==annee2 && mois1==mois2 && jour1>jour2)
		return false;
	else return true;
}

// compare deux dates de type jj/mm/aaaa hh:mm
function valide2Datetime(dstr1,dstr2) {
	var jour1, mois1, annee1, heure1, minute1;
	var jour2, mois2, annee2, heure2, minute2;
	if (dstr1.indexOf(' ') < 0)	{		dstr1 += ' 00:00';	}
	if (dstr1.search(/^([0-3]?[0-9])\/([0-1]?[0-9])\/((19|20)[0-9]{2}) ([0-2]?[0-9]):([0-5]?[0-9])$/) <  0) {
		return false;
	}
	jour1 = parseInt(RegExp.$1, 10);
	mois1 = parseInt(RegExp.$2, 10);
	annee1 = parseInt(RegExp.$3, 10);
	heure1 = parseInt(RegExp.$5, 10);
	minute1 = parseInt(RegExp.$6, 10);
	if (!valideDateJMA(jour1, mois1, annee1))	return false;
	if (isNaN(heure1) || heure1 < 0 || heure1 > 23)	return false;
	if (isNaN(minute1) || minute1 < 0 || minute1 > 59)	return false;

	if (dstr2.indexOf(' ') < 0)	{		dstr2 += ' 00:00';	}
	if (dstr2.search(/^([0-3]?[0-9])\/([0-1]?[0-9])\/((19|20)[0-9]{2}) ([0-2]?[0-9]):([0-5]?[0-9])$/) <  0) {
		return "";
	}
	jour2 = parseInt(RegExp.$1, 10);
	mois2 = parseInt(RegExp.$2, 10);
	annee2 = parseInt(RegExp.$3, 10);
	heure2 = parseInt(RegExp.$5, 10);
	minute2 = parseInt(RegExp.$6, 10);
	if (!valideDateJMA(jour2, mois2, annee2))	return false;
	if (isNaN(heure2) || heure2 < 0 || heure2 > 23)	return false;
	if (isNaN(minute2) || minute2 < 0 || minute2 > 59)	return false;
	
	if(annee1 > annee2) return false;
	if(annee1 < annee2)	return true;
	if(mois1 > mois2)	return false;
	if(mois1 < mois2)	return true;
	if(jour1 > jour2)	return false;
	if(jour1 < jour2)	return true;
	if(heure1 > heure2)	return false;
	if(heure1 < heure2)	return true;
	if(minute1 > minute2)	return false;
	
	return true;
}

//</script>

