		
// JavaScript Document

///////////////////////////////////////////////////////////////////////////////////////
// POP-UP

function MM_openBrWindow(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
}

///////////////////////////////////////////////////////////////////////////////////////
// MENU REROUTAGE

function MM_jumpMenu(targ,selObj,restore){ //v3.0
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if (restore) selObj.selectedIndex=0;
}

///////////////////////////////////////////////////////////////////////////////////////
// GOTO URL

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}		

///////////////////////////////////////////////////////////////////////////////////////
// BBCODE

var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexp = new RegExp("[\r]","gi");

function storeCaret(selec)
{
	if (isMozilla) 
	{
	// Si on est sur Mozilla

		oField = document.forms['formulaire'].elements['texte'];

		objectValue = oField.value;

		deb = oField.selectionStart;
		fin = oField.selectionEnd;

		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

	//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
			
		oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
		oField.selectionStart = strlen(objectValueDeb);
		oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]");
		oField.focus();
		oField.setSelectionRange(
			objectValueDeb.length + selec.length + 2,
			objectValueDeb.length + selec.length + 2);
	}
	else
	{
	// Si on est sur IE
		
		oField = document.forms['formulaire'].elements['texte'];
		var str = document.selection.createRange().text;

		if (str.length>0)
		{
		// Si on a selectionne du texte
			var sel = document.selection.createRange();
			sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
			sel.collapse();
			sel.select();
		}
		else
		{
			oField.focus(oField.caretPos);
		//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
			oField.focus(oField.value.length);
			oField.caretPos = document.selection.createRange().duplicate();
			
			var bidon = "%~%";
			var orig = oField.value;
			oField.caretPos.text = bidon;
			var i = oField.value.search(bidon);
			oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
			var r = 0;
			for(n = 0; n < i; n++)
			{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
			pos = i + 2 + selec.length - r;
			//placer(document.forms['news'].elements['newst'], pos);
			var r = oField.createTextRange();
			r.moveStart('character', pos);
			r.collapse();
			r.select();

		}
	}
}

// REQUETE AJAX
function makeRequest(url,id_niveau,id_ecrire){
	var http_request = false;
		//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Abandon :( Impossible de créer une instance XMLHTTP');
            return false;
        }
        http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse
		// lancement de la requete
		http_request.open('POST', url, true);
		//changer le type MIME de la requête pour envoyer des données avec la méthode POST ,  !!!! cette ligne doit etre absolument apres http_request.open('POST'....
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		obj=document.getElementById(id_niveau);
		data="dpt="+obj.value;
        http_request.send(data);
}

function traitementReponse(http_request,id_ecrire) {
	var affich="";
	if (http_request.readystate == 3) {
		document.getElementById(id_ecrire).innerHTML = "<img src=\"../media/pics/loading_admin.gif\" alt=\"Merci de patienter\"/>&nbsp;merci&nbsp;de&nbsp;patienter...";
		}
	else if (http_request.readyState == 4) {if (http_request.status == 200) {
			// cas avec reponse de PHP en mode texte:
			// chargement des elements reçus dans la liste
			var affich_list=http_request.responseText;
				document.getElementById(id_ecrire).innerHTML = affich_list;
		} 
		else {
                alert('Un probleme est survenu avec la requete.');
        }
    }
}


//****************************
// Transfert une ligne de la liste Origine à la liste Destination
function TransfertListe(idOrigine, idDestination)
{	var objOrigine = document.getElementById(idOrigine);
	var objDestination = document.getElementById(idDestination);
	if (objOrigine.options.selectedIndex<0) return false;
	if (VerifValeurDansListe(idDestination, objOrigine.options[objOrigine.options.selectedIndex].value, true)) return false;
	var ADeplacer = new Option(objOrigine.options[objOrigine.options.selectedIndex].text, objOrigine.options[objOrigine.options.selectedIndex].value);
	objDestination.options[objDestination.length]=ADeplacer;
	//objOrigine.options[objOrigine.options.selectedIndex]=null;
}


//*****************************
// Ajout item dans liste de choix
function ajouter(idDestination){ 
 var nouvel_element = new Option(document.formulaire.ip.value,document.formulaire.ip.value,false,false);
 if (VerifValeurDansListe(idDestination, document.formulaire.ip.value, true)) {
	 	document.formulaire.ip.value = "";
		return false; }
 if (document.formulaire.ip.value == "" || document.formulaire.ip.value == " ") { alert('Saisir un mot-cl\351 !'); 
 		document.formulaire.ip.value = "";
 		return false; }
		
 else { 	document.formulaire.tags.options[document.formulaire.tags.length] = nouvel_element;
 			document.formulaire.ip.value = "";
			return true; }
		
}

function effacer(){
var compteselect=0;
	for(yo=0;yo<document.formulaire.tags.length;yo++){
		if(document.formulaire.tags.options[yo].selected == true){
		compteselect++;
		}
		if(compteselect>0){
			for(yo=0;yo<document.formulaire.tags.length;yo++){
				if(document.formulaire.tags.options[yo].selected == true){
				document.formulaire.tags.options[yo] = null;
				}
			}
		effacer();
		}
	}
}



// Vérifie la présence de Valeur dans IdListe
function VerifValeurDansListe(IdListe, Valeur, blnAlerte) {
	var objListe = document.getElementById(IdListe);
	for (i=objListe.length-1;i>=0;i--) if (objListe.options[i].value == Valeur) {if (blnAlerte) alert('Mot-cl\351 d\351j\340 choisi !'); return true;}
	return false;
}

// Cache ou montre un DIV
function montrer(object) {
   if (document.getElementById)
       document.getElementById(object).style.display = 'block';
       }

function cacher(object) {
   if (document.getElementById)
       document.getElementById(object).style.display = 'none';
       }


