/*
function a_remplacer_langue(a, langue_courante, langue_nouvelle) {
	var resultat = a;
	if(right(a, langue_courante.length) == langue_courante) {
		a = left(a, a.length - langue_courante.length) + langue_nouvelle;
	}
	return(resultat);
}
*/
// Mettre une chaine en majuscule
function ucase(str_text) {
	return(str_text.toUpperCase());
}

// Enlever les espaces a gauche
function ltrim(s) {
   return s.replace(/^\s+/, "");
}

// Enlever les espaces a droite
function rtrim(s) {
   return s.replace(/\s+$/, "");
}

// Enlever les espaces a gauche et a droite
function trim(s) {
   return rtrim(ltrim(s));
}

function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function montrer_cacher(id) {
	try{
		var obj = document.getElementById(id);
		if(obj.style.display == 'none') {
			obj.style.display = '';
		} else {
			obj.style.display = 'none';
		}
	}
	catch(e) {
	}
}


var obj_fenetre_popup_modale = null;

// Forcer le focus sur la fenetre modale
// Utilise pour les navigateurs qui n'ont pas 'showModalDialog'
function fenetre_popup_principale_focus() {
	try {
		obj_fenetre_popup_modale.focus();
	}
	catch(e) {
	}
}

// Ouvrir une fenetre modale
function fenetre_popup_modale(url, largeur, hauteur, pos_x, pos_y) {
	//var obj_fenetre_popup_modale = null;
	var parametres = '';
	var x, y;
	// On verifie si on peut utiliser showModalDialog ou non
	if (window.showModalDialog) {
		// Preparer les parametres de largeur et de hauteur du popup
		parametres = 'dialogWidth:' + largeur + 'px;dialogHeight:' + hauteur + 'px;';
		// Preparer eventuellement les parametres de position x et y (sinon, on centre le popup)
		if(arguments.length >= 5) {
			// Utiliser la position (x,y) fournie
			parametres += 'center:no;dialogLeft:' + pos_x + 'px;dialogTop:' + pos_y + 'px;';
		} else {
			// Centrer par defaut
			parametres += 'center:yes';
		}
		// Ouvrir le popup
		obj_fenetre_popup_modale = window.showModalDialog(url,"obj_fenetre_popup_modale",parametres);
		//obj_fenetre_popup_modale.focus();
		// Au retour du popup, verifier si on a une valeur de retour er l'evaluer (cela peut etre une fonction avec parametres)
		if(obj_fenetre_popup_modale != 'undefined' && obj_fenetre_popup_modale != null) {
			eval(obj_fenetre_popup_modale);
		}
	} else {
		// Ouvrir le popup avec les parametres de largeur et de hauteur
		obj_fenetre_popup_modale = window.open(url,"obj_fenetre_popup_modale","width=" + largeur + ",height=" + hauteur + ",toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,modal=yes");
		obj_fenetre_popup_modale.moveTo(x,y);
		// Deplacer eventuellementle popup a une position donnee (sinon, on centre le popup)
		if(arguments.length >= 5) {
			obj_fenetre_popup_modale.moveTo(pos_x,pos_y);
		} else {
			x = (screen.width / 2) - ((largeur / 2) + 10);
			y = (screen.height / 2) - ((hauteur / 2) + 20);
			obj_fenetre_popup_modale.moveTo(x,y);
		}
		// Initialiser le onfocus de la fenetre principale (pour retourner toujours au popup)
		if (window.addEventListener) {
			window.addEventListener("focus",fenetre_popup_principale_focus,false);
		} else if (window.attachEvent) { 
			window.attachEvent("onfocus",fenetre_popup_principale_focus);
		}
	}
	return(obj_fenetre_popup_modale);
}

// Obtenir la valeur de l'option selectionee d'un bouton radio a partir de son nom (pas de son id)
// Renvoie false si il n'est pas trouvé ou bien qu'aucune option n'est selectionnee
function lire_bouton_radio(str_nom) {
	var str_valeur = false;
	var obj, i, taille;
	
	obj = document.getElementsByName(str_nom);
	
	if(!obj)
		return false;
		
	taille = obj.length;
	
	for(i=0; i<taille; i++)
	{ 
		if (obj[i].checked) { 
			str_valeur = obj[i].value; 
		} 
	} 

	return str_valeur;
}

// Obtenir la valeur de l'option selectionee d'un bouton radio a partir de son nom (pas de son id)
// Renvoie false si il n'est pas trouvé ou bien qu'aucune option n'est selectionnee
function selectionner_bouton_radio(str_nom, str_valeur) {
	var obj, i, taille;
	
	obj = document.getElementsByName(str_nom);
	
	if(!obj)
		return false;
		
	taille = obj.length;

	for(i=0; i<taille; i++)
	{ 
		if (obj[i].value == str_valeur) { 
			obj[i].checked = true; 
			break;
		} 
	} 
}


function formulaire_est_date(str_valeur) 
{
	var boo_resultat = true;
	var boo_bisextil = false;
	var tab_mois = new Array();
	tab_mois[1] = 31;
	tab_mois[2] = 28;
	tab_mois[3] = 31;
	tab_mois[4] = 30;
	tab_mois[5] = 31;
	tab_mois[6] = 30;
	tab_mois[7] = 31;
	tab_mois[8] = 31;
	tab_mois[9] = 30;
	tab_mois[10] = 31;
	tab_mois[11] = 30;
	tab_mois[12] = 31;
	var str_msg_erreur="";
	var x = str_valeur;
	var filter  = /([0-9][0-9])\/([0-9][0-9])\/([1-9][0-9][0-9][0-9])/;
	var res = filter.exec(x);
	if (!formulaire_est_tableau(res)) 
	{
		boo_resultat = false;
	} else {
		if(res[3] < 1900 || res[3] > 2200) {
			boo_resultat = false;
		}
		if(boo_resultat) {
			if(res[2] < 1 || res[2] > 12) {
				boo_resultat = false;
			}
			if(boo_resultat) {
				if(formulaire_est_bisextile(res[3])) {
					tab_mois[2] = 29; 
				}
				if(res[1] < 1 || res[1] > tab_mois[parseInt(res[2],10)]) {
					boo_resultat = false;
				}
			}
		}
	}
	return(boo_resultat);
}		


function formulaire_est_bisextile(str_year) 
{
	var int_dif = str_year-2000;
	if(int_dif<0) {
		int_dif*=-1;
	}
	if(int_dif%4==0) {
		return true;
	} else {
		return false;
	}
} 	

function formulaire_est_tableau(obj)
{
	try {
   if (obj.constructor.toString().indexOf("Array") == -1)
	  return false;
   else
	  return true;
	}
	catch(e) {
		return false;
	}
}

function champ_afficher_description(id_champ, description) {
	var obj = document.getElementById(id_champ + '_description');
	if(trim(description) != '' && trim(description) != '&nbsp;') {
		obj.className = 'champ_description';
		obj.innerHTML = description;
	} else {
		obj.className = '';
		obj.innerHTML = '';
	}
}

function urlencode(str) {
	str = escape(str);
	str = str.replace('+', '%2B');
	str = str.replace('%20', '+');
	str = str.replace('*', '%2A');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	return str;
}

function urldecode(str) {
	str = str.replace('+', ' ');
	str = unescape(str);
	return str;
}