function checkDate(jour, mois) {
	var m = mois.options[mois.selectedIndex].value;
	var j = jour.options[jour.selectedIndex].value;
	if ((m==4 || m==6 || m==9 || m==11) && j==31) {
		jour.options[29].selected = true;
	} 
	else if (m==2 && j>28) {
		jour.options[27].selected = true;
	}
}

function compareDate(jour1, mois1, annee1, jour2, mois2, annee2) {
	var d1 = new Date(annee1.options[annee1.selectedIndex].value, mois1.options[mois1.selectedIndex].value, jour1.options[jour1.selectedIndex].value);
	var d2 = new Date(annee2.options[annee2.selectedIndex].value, mois2.options[mois2.selectedIndex].value, jour2.options[jour2.selectedIndex].value);
	if (d1>d2) {
		alert("La première date est supérieur à la seconde");
		annee2.focus();
		return false;	
	}
	return true;
}

function testURL(obj) {
	var lien = obj.value;
	if (lien != "") {
		if (lien.substr(0, 7) != "http://") lien = "http://" + lien;
		window.open(lien);
	} else {
		alert("Vous devez préciser une URL");
		obj.focus();
	}
}

function setNow(jour, mois, annee) {
	var date = new Date();
	jour.options[date.getDate() - 1].selected = true;
	mois.options[date.getMonth()].selected = true;
	annee.options[date.getYear() - 2000].selected = true;	
}

function setLater(jour, mois, annee) {
	jour.options[30].selected = true;
	mois.options[11].selected = true;
	annee.options[10].selected = true;	
}

function myOpen(URL, nom, features) {
  window.open(URL, nom, features);
}

function estPresent(obj, nom) {
	return maFonction(obj, true, nom, -1, "");
}

function estPresent(obj, nom, taille) {
	return maFonction(obj, true, nom, taille, "");
}

function estPresent(obj, nom, taille, type) {
	return maFonction(obj, true, nom, taille, type);
}

function estValide(obj, nom) {
	return maFonction(obj, false, nom, -1, "");
}

function estValide(obj, nom, taille) {
	return maFonction(obj, false, nom, taille, "");
}

function estValide(obj, nom, taille, type) {
	return maFonction(obj, false, nom, taille, type);
}

function maFonction(obj, presence, nom, taille, type) {
	if (presence && obj.value == "") {
		alert("Vous devez préciser le champ '" + nom + "'.");
		obj.focus();
		return false;
	}
	if (taille != -1 && obj.value.length > taille) {
		alert("Le champ '" + nom + "' est trop long.\nMaximum " + taille + " caractères.");
		obj.focus();
		return false;		
	}
	if (type == "int") {
		var temp = parseInt(obj.value);
		if (isNaN(temp)) {
			alert("Le champ '" + nom + "' n'est pas un nombre entier.");
			obj.focus();
			return false;	
		}
		obj.value = temp
	}
	else if (type == "float") {
		var temp = parseFloat(obj.value);
		if (isNaN(temp)) {
			alert("Le champ '" + nom + "' n'est pas un nombre décimal.");
			obj.focus();
			return false;
		}
		obj.value = temp			
	}
	else if (obj.value != "" && type == "email") {
		var i = obj.value.indexOf("@",2);
		var j = obj.value.indexOf(".", i + 3);
		if ((i == -1) || (j == -1) || (j + 3 > obj.value.length)) {
			alert("Le champ '" + nom + "' n'est pas un email valide.");
			obj.focus();
			return false;			
		}		
	}
	return true;
}

function DeplaceCritere(from, to) {
	index=0;
	while (index<from.options.length) {
		if (from.options[index].selected) {
			var newElem = new Option(from.options[index].text, from.options[index].value);
			to.options[to.length]=newElem;
			from.options[index]=null;
		}
		else {
			index++;
		}
	}
	Trie(to);
}

function Trie(obj) {
	modif = true;
	while (modif) {
		modif = false;
  		for (var i=0; i<(obj.options.length-1); i++) {
			if (obj.options[i].text > obj.options[i+1].text) {
				tempTxt = obj.options[i].text;
        		tempVal = obj.options[i].value;
        		obj.options[i].text=obj.options[i+1].text;
        		obj.options[i].value=obj.options[i+1].value;
        		obj.options[i+1].text=tempTxt;
        		obj.options[i+1].value=tempVal;
		    	modif=true;
			}
		}
	}
}

