function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

/* Cette fonction controle le format de la chaine de caractère passé en paramètre.
 Cette fonction retourne true si le format est 'hh:mm' sinon false.
 textToTest : Chaîne de caractères à tester.
*/
function isTime(textToTest) {
	var re =/^\d{1,2}/
	hour=textToTest.match(re)
	if (hour==null || hour[0]<0 || hour[0]>=24)
		return false
	re = /:\d{2}$/		
	var minute=textToTest.match(re)
	if (minute==null) return false
	minute=minute[0].substr(1)
	if (minute[0]<0 || minute[0]>=60)
		return false
			
	return true 
	
}

/* Cette fonction effectue la methode replace sur la string srcText
	autant de fois que cela est possible.
	srcText : Texte source
	regExpToReplace : Expression regulière à remplacer
	replacingText : Texte qui remplace
*/
function replaceAll(srcText, regExpToReplace, replacingText) {
	var oldSrcText=''
	for (;oldSrcText!=srcText; oldSrcText=srcText,srcText=srcText.replace(regExpToReplace, replacingText)) {}
	
	return srcText
}

function returnTime(dateToUse) {
	var timeToReturn = new Date(dateToUse)

	return timeToReturn.getHours() +':' +timeToReturn.getMinutes()
}

function returnDate(dateToUse) {
	var re = /^\d{1,2}\/\d{2}\/\d{4}/
	
	return dateToUse.match(re)
}

function FormatageDate(dateToFormat) {
	var jour = dateToFormat.getDate()
	if ((String (jour)).length==1) jour = "0" +String (jour)
	var mois = (dateToFormat.getMonth()+1)
	if ((String (mois)).length==1) mois = "0" +String (mois)
	return jour +'/' +mois +'/' +dateToFormat.getFullYear()
}

function InitialiseJour(oneDate) {
	var index = oneDate.indexOf('/');
	var oldIndex = 0;
	return  oneDate.substring(oldIndex, index);
}

function InitialiseMois(oneDate) {
	var index = oneDate.indexOf('/');
	var oldIndex = index;
	index = oneDate.indexOf('/', index+1);
	return oneDate.substring(oldIndex +1, index);
}

function InitialiseAnnee(oneDate) {
	var index = oneDate.indexOf('/');
	index = oneDate.indexOf('/', index+1);
	return oneDate.substring(index +1);
}

// Cette fonction retourne true si la chaine de caracteres est une date valide
function isDate(text) {
	if (text.length < 10) {
		return false;
	}
	var jour=InitialiseJour(text)
		, mois=InitialiseMois(text)-1
		, annee=InitialiseAnnee(text);

	var newDate = new Date(annee, mois, jour);

	return text==FormatageDate(newDate);
}

function controleDate (elementName) {
	var text = MM_findObj(elementName, false).value
	if (text!="" && !isDate(text)) {
		return false;
	}

	return true;
}

// Cette fonction est identique à isDate mais return true si le paramètre = ''
function controleDateCB (elementName) {
	var text = '01/' +MM_findObj(elementName, false).value
	if (text!="" && !isDate(text)) {
		return false;
	}

	return true;
}

function nomMois(numMois) {
	var tabNomMois = new Array ('Janvier', 'Février', 'Mars', 'Avril'
			, 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre'
			, 'Octobre', 'Novembre', 'Décembre');
	return (numMois>=0 && numMois<12 ? tabNomMois[numMois] : "");
}
