// Convertit les caractères non HTML par des vrais (&qqch) sauf les espaces insécables et les & et < et >
function convertHtml(str) {
	var thtml = new Array("&aacute;", "&acirc;", "&acute;", "&aelig;", "&agrave;", "&aring;", "&atilde;", "&auml;",
				"&brvbar;", "&ccedil;", "&cedil;", "&cent;", "&copy;", "&deg;", "&divide;", "&eacute;", "&ecirc;",
				"&egrave;", "&eth;", "&euml;", "&frac12;", "&frac14;", "&frac34;", "&iacute;", "&icirc;", "&iexcl;",
				"&igrave;", "&iquest;", "&iuml;", "&laquo;", "&macr;", "&micro;", "&middot;", "&not;", "&ntilde;",
				"&oacute;", "&ocirc;", "&ograve;", "&ordf;", "&ordm;", "&oslash;", "&otilde;", "&ouml;", "&para;", "&plusmn;",
				"&pound;", "&raquo;", "&reg;", "&sect;", "&shy;", "&sup1;", "&sup2;", "&sup3;", "&szlig;", "&thorn;",
				"&times;", "&uacute;", "&ucirc;", "&ugrave;", "&uml;", "&uuml;", "&yacute;", "&yen;", "&yuml;" , "", "");
	var ttxt = new Array("á", "â", "´", "æ", "à", "å", "ã", "ä",
				"¦", "ç", "¸", "¢", "©", "°", "÷", "é", "ê",
				"è", "ð", "ë", "½", "¼", "¾", "í", "î", "¡",
				"ì", "¿", "ï", "«", "¯", "µ", "·", "¬", "ñ",
				"ó", "ô", "ò", "ª", "º", "ø", "õ", "ö", "¶", "±",
				"£", "»", "®", "§", "­", "¹", "²", "³", "ß", "þ",
				"×", "ú", "û", "ù", "¨", "ü", "ý", "¥", "ÿ" , "\n", "\r");
	var el;
	var reg;
	for(i=0 ; i < ttxt.length ; i++) {
		reg = new RegExp(ttxt[i]);
		el=str.split(reg);
		str=el.join(thtml[i]);
	}
	return str;
}

// Lance une boite de dialogue proposant 3 choix : oui, non, ou annuler
// renvoie ensuite 1 pour oui, 0 pour non et -1 pour annuler
function confirmYesNoCancel(txt, hauteur) {
	var sFeatures;
	sFeatures = "dialogHeight:"+hauteur+"px;dialogWidth:450px;help:no;scroll:no;status:no";

	var aArguments;
	aArguments = new Array();

	return window.showModalDialog("_msgbox.php?message="+txt+"&type=1&titre=Confirmation", aArguments, sFeatures);
}

function contrainte(type) {
	var e=window.event;
	key=e.keyCode;
	var resultat=true;
	if(key==9) return true;
	switch (type)
	{
		case 'G':
			resultat=(key!='"'.charCodeAt());
			break;
		case 'N':	// numeriques uniquement
			resultat=(key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'T':	// numeriques uniquement + espace + '+' + ()
			resultat=(key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key=='+'.charCodeAt()) || (key=='('.charCodeAt()) ||(key==')'.charCodeAt()) || (key==32) || (key==8) || (key==13) || (key==27);
			break;
		case 'D':	// décimaux uniquement
			resultat=(key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key==8) || (key==27) || (key==','.charCodeAt()) || (key=='.'.charCodeAt()) || (key==13);
			break;
		case 'U':	// majuscules uniquement
			resultat=(key>='A'.charCodeAt() && key<='Z'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'L':	// minuscules uniquement
			resultat=(key>='a'.charCodeAt() && key<='z'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'a':	// alphabétique.
			resultat=(key>='A'.charCodeAt() && key<='Z'.charCodeAt()) || (key>='a'.charCodeAt() && key<='z'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'A':	// alphanumérique.
			resultat=(key>='A'.charCodeAt() && key<='Z'.charCodeAt()) || (key>='a'.charCodeAt() && key<='z'.charCodeAt()) || (key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'S':	// alphanumérique avec espaces & - (adresse, ville, nom...).
			resultat=(key>='A'.charCodeAt() && key<='Z'.charCodeAt()) || (key>='a'.charCodeAt() && key<='z'.charCodeAt()) || (key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key==8) || (key==13) || (key==32) || (key==45) || (key==27);
			break;
	}
	return resultat;
}

function contrainte2(e,type) {
	e=e?e:window.event;
	key=e.keyCode?e.keyCode:e.which;
	var resultat=true;
	if(key==9) return true;
	switch (type)
	{
		case 'G':
			resultat=(key!='"'.charCodeAt());
			break;
		case 'N':	// numeriques uniquement
			resultat=(key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'T':	// numeriques uniquement + espace + '+' + ()
			resultat=(key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key=='+'.charCodeAt()) || (key=='('.charCodeAt()) ||(key==')'.charCodeAt()) || (key==32) || (key==8) || (key==13) || (key==27);
			break;
		case 'D':	// décimaux uniquement
			resultat=(key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key==8) || (key==27) || (key==','.charCodeAt()) || (key=='.'.charCodeAt()) || (key==13);
			break;
		case 'U':	// majuscules uniquement
			resultat=(key>='A'.charCodeAt() && key<='Z'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'L':	// minuscules uniquement
			resultat=(key>='a'.charCodeAt() && key<='z'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'a':	// alphabétique.
			resultat=(key>='A'.charCodeAt() && key<='Z'.charCodeAt()) || (key>='a'.charCodeAt() && key<='z'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'A':	// alphanumérique.
			resultat=(key>='A'.charCodeAt() && key<='Z'.charCodeAt()) || (key>='a'.charCodeAt() && key<='z'.charCodeAt()) || (key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key==8) || (key==13) || (key==27);
			break;
		case 'S':	// alphanumérique avec espaces & - (adresse, ville, nom...).
			resultat=(key>='A'.charCodeAt() && key<='Z'.charCodeAt()) || (key>='a'.charCodeAt() && key<='z'.charCodeAt()) || (key>='0'.charCodeAt() && key<='9'.charCodeAt()) || (key==8) || (key==13) || (key==32) || (key==45) || (key==27);
			break;
	}
	return resultat;
}


/**
* fonction permettant d'introduire un delay dans l'execution d'un code javascript
*/
function delay(timer) {
	var today=new Date();
	var now=today.getTime();
	var today2; now2;

	while (1)
	{
	today2=new Date();
	var now2=today2.getTime();
	if (now2-now>=timer) {break;}
	}
}

/**
* Fonction de changement du sous-titre d'une page
*/
function set_sstitre(txt){
	document.getElementById('sstitrepage').innerHTML=txt;
}

/**
*
*/
function get_fenSauve()  {
	return window.open('about:blank', 'sauve', 'titlebar=0,location=0,menubar=0,resizable,scrollbars=0,statusbar=0,width=200, height=30, top='+window.screenTop+' left='+window.screenLeft);
}

/**
* Fonction qui créer une miniature d'une image
* @param $taille : la taille en px2 désirée
* @param $l : la largeur d'origine du fichier
* @param $h : la hauteur d'origine du fichier
* @return dim[] : 1 tableau contenant la nouvelle largeur (0) et la nouvelle hauteur (1)
*/
function get_taillePx2(taille,l,h){
	ratio=l/h;
	nl=Math.sqrt(taille*ratio);
	nh=Math.sqrt(taille/ratio);
	dim=new Array();
	dim[0]=nl;
	dim[1]=nh;
	return dim;
}

/**
* Vire les espaces avant et après une chaine
*/
function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function toUpAll(o) {
	o.value=o.value.toUpperCase();
}

function toUpFirst(o) {
	var txt=o.value.toLowerCase();
	var charToSplit=new Array("-", "'", " ");

	for(var k=0 ; k < charToSplit.length ; k++) {
		var mots=txt.split(charToSplit[k]);
		var res="";
		var i=0;
		for(i=0 ; i < mots.length-1 ; i++) {
			res += upFirstWord(mots[i])+charToSplit[k];
		}
		res += upFirstWord(mots[i]);
		txt=res;
	}

	o.value=txt;
	return true;

	function upFirstWord(s) {
		if(s=="") return "";
		return s.charAt(0).toUpperCase() + s.substr(1);
	}
}

function verif_tel_js(champ){
	var TelOk=/^[+()0-9\s]{10,}$/;
	Controle=champ.value;
	if (!TelOk.test(Controle) && Controle!=""){
		alert(messageTelNomConforme);
		champ.focus();
	}
}

function verif_mail_js(champ){
	var EmailOk=/^.+@.+\..+$/;
	Controle=champ.value;
	if (!EmailOk.test(Controle) && Controle!=""){
		alert(messageMailNomConforme);
		champ.focus();
	}
}