
 // ELEMENT DECLENCHE PAR INIT

//
// Gestion du menu top

function montre(id) {
	if( id != null ) {
		if (document.getElementById(id)) {
			document.getElementById(id).style.display="block";
		} else if (document.all) {
			document.all[id].style.display="block";
		} else if (document.layers) {
			document.layers[id].display="block";
		}
	}
}

function cache(id) {
	if (document.getElementById(id)) {
	document.getElementById(id).style.display="none";
	} else if (document.all) {
	document.all[id].style.display="none";
	} else if (document.layers) {
	document.layers[id].display="none";
	}
}

// Gestion du menu top
//

// affiche ou cache un element
function aff_cache(d){
	if (document.getElementById) {
		var gt = document.getElementById(d);
	} else if (document.all) {
		var gt =  document.all[d];
	} else if (document.layers) {
		var gt = document.layers[d];
	}

	if (Element.visible(gt) ==true) {
	Element.hide(gt);
	} else {
	Element.show(gt);
	}
}

function aff_cache_plus_minus(d,e,template) {
	if (document.getElementById) {
		var gt = document.getElementById(d);
		var ge = document.getElementById(e);
	} else if (document.all) {
		var gt =  document.all[d];
		var ge =  document.all[e];
	} else if (document.layers) {
		var gt = document.layers[d];
		var ge = document.layers[e];
	}
	if (Element.visible(gt) ==true) {
	Element.hide(gt);
	ge.src='template/' + template + '/img/plus.png';
	} else {
	Element.show(gt);
	ge.src='template/' + template + '/img/minus.png';
	}

}
/* Control de la présence du menu pour deonnextion si absent. se produit lors timeout session appelé par setinterval */
function control_presence_menu(){
	//deconnexion si ajax menu non chargé
// 	var r=document.getElementById('ssheader_block_menu');
// 	g = r.getElementsByTagName('a');
// 	if (g.length<=1) window.location='index.php';
}

/* Fonction d'appel via ajax, par passage arg en get tableau impossible. */
function upload_ajax(id,funct,act,param,sortie){
	 var url = 'appel_fct.php';
	var pars = 'funct=' + funct +'&act=' + act + '&sortie=' + sortie + '&vars=' + param  ;
        var myAjax = new Ajax.Updater(id, url, {method:'post', postBody:pars, encoding:'utf-8', evalScripts:true,
				Success: function(){
				var ter = getElementById(id);
				ter.innerHTML =  r.reponseText;
				lightwindowInit(false);
				},
				Failure:  function(){
				var ter = getElementById(id);
				ter.innerHTML = function(t){execFailed(t, obj);} ;
				},
				Complete:  function(){
				var ter = getElementById(id);
				ajax_load(id);
					}
				});
// if (document.getElementById('lightwindow_overlay') !=null) setTimeout ("lightwindowInit(false)",280);
}


/* BLOCK
 Appel ajax New Version en remplacement fonction upload_ajax. */
function up_ajax_id(id,funct,act,param,sortie){
	var url = 'appel_fct.php';
	var pars = 'funct=' + funct +'&act=' + act + '&sortie=' + sortie + '&vars=' + param  ;
        var myAjax = new Ajax.Updater(id, url, {method:'post', postBody:pars, encoding:'utf-8', evalScripts:true,
				Success: function(){
				var ter = getElementById(id);
				ter.innerHTML =  r.reponseText;
				lightwindowInit(false);
				},
				Failure:  function(){
				var ter = getElementById(id);
				ter.innerHTML = function(t){execFailed(t, obj);} ;
				},
				Complete:  function(){
				var ter = getElementById(id);
				ajax_load(id);
					}
				});

}

/* Prend en charge l'apparition des backournd et box en focntion du contexte */
function ajax(box,funct,act,param,sortie) {
	montre('onload');
	if (box=='form_ajax_txt') {
		montre('backgd');
		ajax_load('form_ajax_txt'); // document.getElementById('form_ajax_txt').innerHTML='';
		montre('form_ajax');
		up_ajax_id(box, funct , act, param, sortie );
		setTimeout ("cache('onload')", 2500);
	}
	else if (box=='retour_ajax_txt') {
// 		montre('backgd');
		ajax_load('retour_ajax_txt'); //document.getElementById('retour_ajax_txt').innerHTML='';
		montre('retour_ajax');
		up_ajax_id(box, funct , act, param, sortie );
		setTimeout ("cache('onload')", 1000);
		setTimeout ("cache('retour_ajax')", 2500);
	}
	else {
		up_ajax_id(box, funct , act, param, sortie );
		setTimeout ("cache('onload')", 1000);
	}
	return false;
}

/* Fin BLOCK */




 // ELEMENT DECLENCHE PAR INIT
 //
 //
 //
/*
function addLoadEvent(func)
{
   var oldonload = window.onload;
   if(typeof window.onload != 'function')
   {
      window.onload = func;
   }
   else
   {
      window.onload = function()
      {
         oldonload();
         func();
      }
   }
}*/


 //
 //
 //
 // ELEMENT DECLENCHE PAR BOUTON

//
// AJAX

function cache_t(id,t){
if (t ==null) t = 1500;
setTimeout ("cache('" + id + "')", t);
}

 function execFailed(t, obj)
 {
         obj.innerHTML   = "La modification n'a pas fonctionné.";
         cleanUp(obj);
 }

function add_close(destination,txt, html) {
	var liensretour= document.getElementById('form_ajax_nav');
	if (html !=null) liensretour.innerHTML ='<a href= "' + destination + '" title= "' + txt + '" Onclick="function(){' + html + '; return false; }" > ' + txt + ' </a>';
	else liensretour.innerHTML ='<a href= "' + destination + '" title= "' + txt + '"  > ' + txt + ' </a>';
}

//  Produite la gestion de l'affichage du liens de retour lors gestion ajax
function add_link_nav(destination,txt, html) {
	var liensretour= document.getElementById('droit_nav');
	if (html !=null) liensretour.innerHTML ='<a href= "' + destination + '" title= "' + txt + '" Onclick="function(){' + html + '; return false; }" > ' + txt + ' </a>';
	else liensretour.innerHTML ='<a href= "' + destination + '" title= "' + txt + '"  > ' + txt + ' </a>';
}
function add_link_nav2(id,destination,txt, html) {
	var objajax = document.getElementById(id);
	var obj_liensretour = document.createElement("div");
	obj_liensretour.setAttribute('id','form_ajax_nav_dyn');
	if (html !=null) obj_liensretour.innerHTML ='<p><a href= "' + destination + '" title= "' + txt + '" Onclick="function(){ ' + html + '; return false; }" > ' + txt + ' </a></p>';
	else obj_liensretour.innerHTML ='<p><a href= "' + destination + '" title= "' + txt + '"  > ' + txt + ' </a></p>';
	objajax.insertBefore(obj_liensretour, objajax.firstChild);
}

/* Place image on load dans l'element en chargement */
function ajax_load(id){
	var div = document.getElementById(id);
	div.innerHTML = '<p style="text-align:center;">'+ajax_img_loading+'</p>';
}




// AJAX
//


//
// Gestion navi
// function navi() {
var xOffset=6
var yOffset=5

var affiche = false; // La variable i nous dit si le bloc est visible ou non
var w3c=document.getElementById && !document.all;
var ie=document.all;

if (ie||w3c) {
var laBulle
}

function ietruebody(){ // retourne le bon corps...
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function deplacer(e) {
	if(affiche){
	var curX = (w3c) ? e.pageX : event.x + ietruebody().scrollLeft;
	var curY = (w3c) ? e.pageY : event.y + ietruebody().scrollTop;

	var winwidth = ie && !window.opera ? ietruebody().clientWidth : window.innerWidth - 20;
	var winheight = ie && !window.opera ? ietruebody().clientHeight : window.innerHeight - 20;

	var rightedge = ie && !window.opera ? winwidth - event.clientX - xOffset : winwidth - e.clientX - xOffset;
	var bottomedge = ie && !window.opera ? winheight - event.clientY - yOffset : winheight - e.clientY - yOffset;

	var leftedge = (xOffset < 0) ? xOffset*(-1) : -1000

	// modifier la largeur de l'objet s'il est trop grand...
	if(laBulle.offsetWidth > winwidth / 3){
	laBulle.style.width = winwidth / 3
	}

	// si la largeur horizontale n'est pas assez grande pour l'info bulle
	if(rightedge < laBulle.offsetWidth){
	// bouge la position horizontale de sa largeur � gauche
	laBulle.style.left = curX - laBulle.offsetWidth + "px"
	} else {
	if(curX < leftedge){
	laBulle.style.left = "5px"
	} else{
	// la position horizontale de la souris
	laBulle.style.left = curX + xOffset + "px"
	}
	}

	// m�me chose avec la verticale
	if(bottomedge < laBulle.offsetHeight){
	laBulle.style.top = curY - laBulle.offsetHeight - yOffset + "px"
	} else {
	laBulle.style.top = curY + yOffset + "px"
	}
	}
}
function showTooltip(text) {
	if (w3c||ie){
	laBulle = document.all ? document.all["bulle"] : document.getElementById ? document.getElementById("bulle") : ""
	laBulle.innerHTML = "<div class=\"info\">" +text+"</div>"; // fixe le texte dans l'infobulle
	laBulle.style.visibility = "visible"; // Si il est cach�e (la verif n'est qu'une securit�) on le rend visible.
	affiche = true;
	}
}
function hideTooltip() {
	if (w3c||ie){
	affiche = false
	laBulle.style.visibility="hidden" // avoid the IE6 cache optimisation with hidden blocks
	laBulle.style.top = '-100000px'
	laBulle.style.backgroundColor = ''
	laBulle.style.width = ''
	}
}
document.onmousemove = deplacer; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.

// public method for url encoding
	function encode_utf8 (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n < string.length; n++) {

			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}

		}

		return utftext;
	}
	function decode_utf8 (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

		    c = utftext.charCodeAt(i);

		    if (c < 128) {
			string += String.fromCharCode(c);
			i++;
		    }
		    else if((c > 191) && (c < 224)) {
			c2 = utftext.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		    }
		    else {
			c2 = utftext.charCodeAt(i+1);
			c3 = utftext.charCodeAt(i+2);
			string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		    }

		}

		return string;
	}