



// ****************** POPUP GLISSANT ************************************************

/*var taillebg = monImage.width //largeur popup
var invtaillebg = (-taillebg)
taillebg = taillebg +5
var position_x = invtaillebg

var position_y = (screen.height-monImage.height-10)/2 //(hauteur ecran - hauteur image)/2*/


var fermeture; //pour l'ordre de fermeture
var ouverture_apres_fermeture;
var position_x;
var position_y;
var largeur_popup_glissante;
var invtaille;
var dist_max_bord_page;
var activ_pop;

function init_popup_glissante(largeur_popup_glissante_init,position_x_init,position_y_init,dist_max_bord_page_init,ouverture_apres_fermeture_init)
{
	fermeture=false;
	ouverture_apres_fermeture=ouverture_apres_fermeture_init;
	position_x=position_x_init;
	position_y=position_y_init;
	largeur_popup_glissante=largeur_popup_glissante_init;
	invtaille=(-largeur_popup_glissante);
	dist_max_bord_page=dist_max_bord_page_init;
}

// A mettre pour l'ouverture de la popup : window.onload = ouvrir_popup_glissante; suivi de la création du div
function ouvrir_popup_glissante()//à chaque lancement de la page
{
	if (fermeture==true) {window.clearTimeout(deactiv_pop);}
	//alert("position_x: "+position_x+" position_y: "+position_y+" largeur_popup_glissante: "+largeur_popup_glissante);
	document.getElementById("popup_glissante_context").style.top = position_y;
	document.getElementById("popup_glissante_context").style.left = position_x;
	document.getElementById("popup_glissante_context").style.visibility = 'visible';
	if (position_x < dist_max_bord_page ) //Distance maxi du bord de la page
	{
		position_x=position_x+1.5; //déplacement de la position x
		activ_pop = setTimeout("ouvrir_popup_glissante()",1);//vitesse de déplacement à l'ouverture, plus c'est grand moins la vitesse est élévée
	}
	else
	{
		deactiv_pop = setTimeout("fermer_popup_glissante()",10000);
	}
}

function fermer_popup_glissante()//lorsqu'on clique sur la croix
{
	fermeture=true;

	if(activ_pop)
	{
		window.clearTimeout(activ_pop);
		document.getElementById("popup_glissante_context").style.top = position_y;
		document.getElementById("popup_glissante_context").style.left = position_x;

		if (position_x > invtaille-6 )
		{
			position_x=position_x-1.5;//déplacement de la position x
			deactiv_pop = setTimeout("fermer_popup_glissante()",1);//vitesse de déplacement à la fermeture, plus c'est grand moins la vitesse est élévée
		}
		else if(ouverture_apres_fermeture)
		{
			activ_pop = setTimeout("ouvrir_popup_glissante()",20000)
		}
	}
}

// ****************************************************************

function possede_antipop()
{
	var popwin = window.open('about:blank', 'poptest', 'width=0,height=0');

	if (popwin)
	{
		popwin.close();
		return false;
	}
	return true;
}


// a supprimer (systeme de changement du titre de la fenetre lorsque l'on change
// de page fille : on mete le titre de la page courante dans la page parente)
// parent.document.title=document.title;


function noclick()
{
	if (event.button==2)
	{
		alert('Tous droits réservés');
	}
}

function trap()
{
	if(document.images)
		for(i=0;i<document.images.length;i++)
		{
			document.images[i].onmousedown = noclick;
		}
}

//document.onmousedown=trap;



function verifmail(mail) //verifie si la syntaxe du mail est bonne
{
	var at = mail.indexOf("@"); //recupere l'indice du caractere--ds le if, il faut que ce soit au moins le 3eme car, sinon @<2 donne faux----ex: 12@
	var pt = mail.lastIndexOf(".");  //recupere l'indice du point----il faut qu'il y ait au moins 2 caractere apres le point,sinon, indice+3 est superieur à la chaine----ex: 123@12.12, indice du point=6 ==>6+3>8
	var caracts_interdits = false;

	if(mail.indexOf(" ") >= 0) caracts_interdits = true;

	if(mail=="")
	{
		//alert("Veuillez entrer une adresse e-mail");
		return true;
	}

	//il faut au moins 3 caracteres devant l'@, 2 apres le point et 2 entre l'@ et le point
	//ex 12@12.12

	if((at < 2) || (pt+3 > mail.length) || (pt < at+3) || caracts_interdits || isEmailAdress(mail) == false)
	{
		alert("Veuillez entrer une adresse mail sous la forme xx@xx.xx");
		return false;
	}
	return true;
}

function verifNomDomaine(obj_dom,www_verif,libelle) // monsite.com ou www.monsite.com si le param 'www_verif' est à true
{
	var dom = obj_dom.value;

	if(obj_dom && dom != "")
	{
		var www = dom.indexOf("www");
		var first_pt = dom.indexOf(".");
		var last_pt = dom.lastIndexOf(".");
		var taille_extension_min = 2; // com,org,de,fr
		var ext = dom.substr(last_pt+1);
		var wrong = false;

		if(www_verif)
		{
			if(www == -1) wrong = true;
			if(first_pt == -1) wrong = true;
			if(first_pt != 3) wrong = true;
		}

		if(last_pt == -1) wrong = true;



		if(ext.length < taille_extension_min) wrong = true;

		if(wrong)
		{
			var str	= libelle+" doit être de la forme: ";
			if(www_verif)
				str += "www.nom_du_site.domaine (ex. www.monsite.fr)";
			else
				str += "nom_du_site.domaine (ex. monsite.fr)";
			alert(str);
			obj_dom.focus();
			return false;
		}
	}
	return true;
}

/*
	Vérifie si une date est correctement saisie. Et si elle doit être saisie,
	vérifie qu'elle l'est.
	- paramètres:
		* obj_date_j:	l'objet contenant le jour (controle input en fait) ou directement la valeur corresp. au jour
		* obj_date_m: 	l'objet contenant le mois (controle input en fait) ou directement la valeur corresp. au mois
		* obj_date_a: 	l'objet contenant l'année (controle input en fait) ou directement la valeur corresp. à l'année
		* lbl_date:		Nom de la date qui s'affichera dans les messages d'alerte.
		* lgr_annee:	Nombre de caratères de l'année (2 ou 4 en gén.)
		* oblig:		True si elle doit être saisie, false sinon.
		* par_objet:	True si ce sont des références d'objet qui sont passées en paramètre, false si ce sont des valeurs.
*/

function verif_date_new(obj_date_j,obj_date_m,obj_date_a,lbl_date,lgr_annee,oblig,parObjet)
{
	if(parObjet)
	{
		var date_j = obj_date_j.value;
		var date_m = obj_date_m.value;
		var date_a = obj_date_a.value;
	}
	else
	{
		var date_j = obj_date_j;
		var date_m = obj_date_m;
		var date_a = obj_date_a;
	}

	if(isEmpty(date_j) && isEmpty(date_m) && isEmpty(date_a))
	{
		if(oblig)
		{
			alert("Veuillez saisir la date "+ lbl_date +"!");
			if(parObjet)
				obj_date_j.focus();
			return false;
		}
	}
	else
	{
		if(isNaN(date_j) == true || date_j == "" || date_j.indexOf("-") != -1 || date_j.indexOf("+") != -1 || date_j.indexOf(".") != -1 || date_j.indexOf(",") != -1 || date_j.length != 2)
		{
			alert("Veuillez saisir un jour correct pour la date "+ lbl_date +"!");
			if(parObjet)
				obj_date_j.focus();
			return false;
		}
		else if(isNaN(date_m) == true || date_m == "" || date_m.indexOf("-") != -1 || date_m.indexOf("+") != -1 || date_m.indexOf(".") != -1 || date_m.indexOf(",") != -1 || date_m.length != 2)
		{
			alert("Veuillez saisir un mois correct pour la date "+ lbl_date +"!");
			if(parObjet)
				obj_date_m.focus();
			return false;
		}
		else if(isNaN(date_a) == true || date_a == "" || date_a.indexOf("-") != -1 || date_a.indexOf("+") != -1 || date_a.indexOf(".") != -1 || date_a.indexOf(",") != -1 || date_a.length != lgr_annee)
		{
			alert("Veuillez saisir une année correct pour la date "+ lbl_date +"!");
			if(parObjet)
				obj_date_a.focus();
			return false;
		}
		else
		{
			if(date_j <= 0 || date_j > 31 || date_m <= 0 || date_m > 12 || date_a <= 0)
			{
				alert("La date "+ lbl_date +" est incorrecte!");
				if(parObjet)
					obj_date_j.focus();
				return false;
			}
		}
	}
	return true;
}

function verif_date_new_simple(obj_date_j,obj_date_m,obj_date_a,lgr_annee,oblig,parObjet)
{
	if(parObjet)
	{
		var date_j = obj_date_j.value;
		var date_m = obj_date_m.value;
		var date_a = obj_date_a.value;
	}
	else
	{
		var date_j = obj_date_j;
		var date_m = obj_date_m;
		var date_a = obj_date_a;
	}

	if(isEmpty(date_j) && isEmpty(date_m) && isEmpty(date_a))
	{
		if(oblig)
			return 1; // date obligatoire
	}
	else
	{
		if(isNaN(date_j) == true || date_j == "" || date_j.indexOf("-") != -1 || date_j.indexOf("+") != -1 || date_j.indexOf(".") != -1 || date_j.indexOf(",") != -1 || date_j.length != 2)
			return 2; // jour saisi incorrect
		else if(isNaN(date_m) == true || date_m == "" || date_m.indexOf("-") != -1 || date_m.indexOf("+") != -1 || date_m.indexOf(".") != -1 || date_m.indexOf(",") != -1 || date_m.length != 2)
			return 3; // mois saisi incorrect
		else if(isNaN(date_a) == true || date_a == "" || date_a.indexOf("-") != -1 || date_a.indexOf("+") != -1 || date_a.indexOf(".") != -1 || date_a.indexOf(",") != -1 || date_a.length != lgr_annee)
			return 4; // année saisie incorrecte
		else
		{
			if(date_j <= 0 || date_j > 31 || date_m <= 0 || date_m > 12 || date_a <= 0)
				return 5; // date saisie incorrecte
		}
	}
	return 0;
}

function verif_date(date_j,date_m,date_a,lbl_date)
{
	return verif_date_new(date_j,date_m,date_a,lbl_date,2,false,false);
}

function verif_heure_new(obj_heure_h,obj_heure_m,lbl_heure,oblig,parObjet)
{
	if(parObjet)
	{
		var heure_h = obj_heure_h.value;
		var heure_m = obj_heure_m.value;
	}
	else
	{
		var heure_h = obj_heure_h;
		var heure_m = obj_heure_m;
	}

	if(isEmpty(heure_h) && isEmpty(heure_m))
	{
		if(oblig)
		{
			alert("Veuillez saisir l'heure "+ lbl_heure +"!");
			if(parObjet)
				obj_heure_h.focus();
			return false;
		}
	}
	else
	{
		if(isNaN(heure_h) == true || heure_h == "" || heure_h.indexOf("-") != -1 || heure_h.indexOf("+") != -1 || heure_h.indexOf(".") != -1 || heure_h.indexOf(",") != -1 || heure_h.length != 2)
		{
			alert("Veuillez saisir une heure correcte pour l'heure "+ lbl_heure +"!");
			if(parObjet)
				obj_heure_h.focus();
			return false;
		}
		else if(isNaN(heure_m) == true || heure_m == "" || heure_m.indexOf("-") != -1 || heure_m.indexOf("+") != -1 || heure_m.indexOf(".") != -1 || heure_m.indexOf(",") != -1 || heure_m.length != 2)
		{
			alert("Veuillez saisir un nombre de minutes correct pour l'heure "+ lbl_heure +"!");
			if(parObjet)
				obj_heure_m.focus();
			return false;
		}
		else
		{
			if(heure_h < 0 || heure_h > 23 || heure_m < 0 || heure_m > 59)
			{
				alert("L'heure "+ lbl_heure +" est incorrecte!");
				if(parObjet)
					obj_heure_h.focus();
				return false;
			}
		}
	}
	return true;
}

function verif_heure(heure_h,heure_m,lbl_heure)
{
	return verif_heure_new(heure_h,heure_m,lbl_heure,false,false);
}
function comparer_dates(jour1,mois1,annee1,jour2,mois2,annee2,libelle_alerte,op)
{
	if(op != ">" && op != ">=" && op != "<" && op != "<=" && op != "==")
		return false;

	if(jour2 != "" && mois2 != "" && annee2 != "")
	{
		var date1 = new Date(annee1,mois1,jour1);
		var date2 = new Date(annee2,mois2,jour2);
		var res = false;

		//alert(date1+" "+date2);
		if(op == ">")
			res = (date1 > date2);
		else if (op == ">=")
			res = (date1 >= date2);
		else if (op == "<")
			res = (date1 < date2);
		else if (op == "<=")
			res = (date1 <= date2);

		if(res)
			return true;
		alert(libelle_alerte);
		return false;
	}
	else
		return true;
}

function verif_date2_sup_date1(jour1,mois1,annee1,jour2,mois2,annee2)
{
	mois1--;
	mois2--;
	if(annee1.length == 2)
		annee1 = "20"+annee1;
	if(annee2.length == 2)
		annee2 = "20"+annee2;
	return comparer_dates(jour1,mois1,annee1,jour2,mois2,annee2,"La date de début doit être antérieure à la date de fin","<=");
}

/* retourne le jour précédent une date donnée.
La date donnée peut etre au format String aaaammjj ou sous forme d'objet date (par défaut)
Préciser aussi le format du retour (date - 1 jour)
*/
function operation_date(nb_jours,date_ref,format_in,format_out)
{
	var jour_prec=null;

	if(date_ref != "" && ! isNaN(nb_jours))
	{
		if(format_in == "aaaammjj")
			var ts=Date.parse(new Date(date_ref.substr(0,4),date_ref.substr(4,2)-1,date_ref.substr(6,2)));
		else
			var ts=Date.parse(date_ref);

		var date_tmp;

		ts=ts+(nb_jours * 24 * 3600 * 1000); // 1 jour de moins
		date_tmp=new Date(ts);

		if(format_out == "aaaammjj")
		{
			var jj=date_tmp.getDate();
			var mm=date_tmp.getMonth()+1;
			var aaaa=date_tmp.getYear();

			if(jj < 10)
				jj="0"+jj;
			if(mm < 10)
				mm="0"+mm;
			jour_prec=aaaa+""+mm+""+jj;
		}
		else
			jour_prec=date_tmp;

	}
	return jour_prec;
}

function get_jour_dans_semaine(date_ref)
{
	var maintenant = new Date();
	if(date_ref == "")
		var jour_dans_semaine = maintenant.getDay();
	else
		var jour_dans_semaine = (new Date(date_ref.substr(0,4),date_ref.substr(4,2)-1,date_ref.substr(6,2))).getDay();

	var jour_semaine = new Array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");
	return jour_semaine[jour_dans_semaine];
}

function get_prem_jour_semaine(date_ref)
{
	if(date_ref != "")
	{
		var jour_curr=get_jour_dans_semaine(date_ref);
		var date_prem_jour=date_ref;
		var ts=0;
		var date_tmp;

		ts=Date.parse(new Date(date_ref.substr(0,4),date_ref.substr(4,2)-1,date_ref.substr(6,2)));
		while(jour_curr != "lundi")
		{
			ts=ts-(1 * 24 * 3600 * 1000); // 1 jour de moins
			date_tmp=new Date(ts);

			var jj=date_tmp.getDate();
			var mm=date_tmp.getMonth()+1;
			var aaaa=date_tmp.getYear();

			if(jj < 10)
				jj="0"+jj;
			if(mm < 10)
				mm="0"+mm;

			date_prem_jour=aaaa+""+mm+""+jj;
			jour_curr=get_jour_dans_semaine(date_prem_jour);
			ts=Date.parse(new Date(date_prem_jour.substr(0,4),date_prem_jour.substr(4,2)-1,date_prem_jour.substr(6,2)));
		}
		return date_prem_jour;
	}
}

function est_entier_positif(n)
{
	if(isNaN(n))
		return false;
	if(n.indexOf("-") != -1)
		return false;
	if(n.indexOf("+") != -1)
		return false;
	if(n.indexOf(".") != -1)
		return false;
	return true;
}


function trim(string)
{
	return string.replace(/(^\s*)|(\s*$)/g,'');
}


/**Méthode vérifiant que le champ soit bien une date*/
function isDate(valeur){
   var re = /^\d{1}\d{1}\/\d{1}\d{1}\/\d{1}\d{1}\d{1}\d{1}$/;

   if(!re.test(valeur)){
        alert("Vous n'avez pas saisie une date !!!");
        return false;
   }
   return true;
}

/**Méthode vérifiant que le champ soit une adresse email*/
function isEmailAdress(valeur){
   var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

   if(!re.test(valeur)){
        alert("Veuillez saisir une adresse email valide.");
        return false;
   }
   return true;
}

/**Méthode vérifiant que le champ ne soit pas vide*/
function isEmpty(valeur){
   //var re = /^\S+$/;
	var re = /^\s*$/;

   if(re.test(valeur)){
        return true;
   }
   return false;
}


/**Méthode vérifiant que la valeur saisie soit bien un entier*/
function isInteger(valeur){
   var re = /^\d+$/;

    if(!re.test(valeur)){
       // alert("Vous n'avez pas saisie d'entier !!!");
       return false;
   }
   return true;
}

/**Méthode vérifiant que le champ soit bien un réel*/
function isReal(valeur){
   var re = /^\d+([\.|,])?\d+$/;

   if(!re.test(valeur)){
        //alert("Vous n'avez pas saisie un réel !!!");
        return false;
   }
   return true;
}

/* utiliser: verif_login_et_pass(obj_login,obj_pass,lgr_mini_login,lgr_mini_pass) */
function verif_login_pass(login,pass,lgr_mini_login,lgr_mini_pass)
{
	if(isEmpty(login))
	{
		alert('Veuillez saisir un identifiant.');
		return false;
	}

	if(isEmpty(pass))
	{
		alert('Veuillez saisir un mot de passe.');
		return false;
	}

	if(login.length < lgr_mini_login)
	{
		alert("L'identifiant doit être constitué d'au moins "+lgr_mini_login+" caractère(s)");
		return false;
	}

	if(pass.length < lgr_mini_pass)
	{
		alert("Le mot de passe doit être constitué d'au moins "+lgr_mini_pass+" caractère(s)");
		return false;
	}
	return true;
}

function est_lettre(car,casse)
{
	if(casse == 0) // minuscule
		return ((car >= 'a' && car <= 'z') || car == '_');
	else if(casse == 1) // majuscule
		return ((car >= 'A' && car <= 'Z') || car == '_');
	else if(casse == 2) // les 2
		return ((est_lettre(car,0) || est_lettre(car,1)) || car == '_');
}

function est_chiffre(car)
{
	return (car >= 0 && car <= 9);
}

function contient_lettres_et_chiffres(chaine,casse)
{
	var car = '';

	for(var i=0; i<chaine.length;  i++)
	{
		car = chaine.charAt(i);
		if(( ! est_lettre(car,casse) && ! est_chiffre(car)) || car == ' ')
			return false;
	}
	return true;
}

function contient_caractere(chaine,car_comp)
{
	var car = '';

	for(var i=0; i<chaine.length;  i++)
	{
		car = chaine.charAt(i);
		if(car == car_comp)
			return true;
	}
	return false;
}

function verif_pass(obj_pass,lgr_mini_pass,is_obj)
{
	var pass = "";

	if(is_obj)
		pass = obj_pass.value;
	else
		pass = obj_pass;

	if(isEmpty(pass))
	{
		alert('Veuillez saisir un mot de passe.');
		if(is_obj)
			obj_pass.focus();
		return false;
	}
	if( ! contient_lettres_et_chiffres(pass,2))
	{
		alert("Le mot de passe ne doit contenir que des lettres et/ou des chiffres");
		if(is_obj)
			obj_pass.focus();
		return false;
	}
	if(pass.length < lgr_mini_pass && lgr_mini_pass > 0)
	{
		alert("Le mot de passe doit être constitué d'au moins "+lgr_mini_pass+" caractère(s)");
		if(is_obj)
			obj_pass.focus();
		return false;
	}

	return true;
}

function verif_login_et_pass(obj_login,obj_pass,lgr_mini_login,lgr_mini_pass)
{
	var login = "";

	if(!obj_login || !obj_pass)
		return true;

	login = obj_login.value;

	if(isEmpty(login))
	{
		alert('Veuillez saisir un identifiant.');
		obj_login.focus();
		return false;
	}
	if( ! contient_lettres_et_chiffres(login,2))
	{
		alert("L'identifiant ne doit contenir que des lettres et/ou des chiffres");
		obj_login.focus();
		return false;
	}
	if(login.length < lgr_mini_login && lgr_mini_login > 0)
	{
		alert("L'identifiant doit être constitué d'au moins "+lgr_mini_login+" caractère(s)");
		obj_login.focus();
		return false;
	}

	return verif_pass(obj_pass,lgr_mini_pass,true);
}

/*
	1. Remplace les guillemets par des simples cotes
	2. Vérifie s'il y a un contenu (seulement si le champ texte doit être saisie)
	3. Vérifie si le contenu est une adresse mail valide (seulement si le champ texte accueil la saisie d'une adresse mail)
*/
function verif_champ_texte(obj_champ,nom_champ,is_oblig,is_mail)
{
	var vide = "";

	if(!obj_champ)
		return true;

	obj_champ.value = trim(obj_champ.value);
	vide = isEmpty(obj_champ.value);

	if(!vide) /* remplace les guillemets par 2 simples cotes */
		obj_champ.value = obj_champ.value.replace(/["]/g,"''");

	if(obj_champ.value.indexOf('&') >= 0)
	{
		if(nom_champ != "")
			alert("Le champ '"+nom_champ+"' ne peut contenir le caractère '&'");
		obj_champ.focus();
		return false;
	}

	if(is_oblig)
	{
		if(vide)
		{
			if(nom_champ != "")
				alert("Veuillez saisir le champ "+nom_champ);
			obj_champ.focus();
			return false;
		}
	}

	if(is_mail && !vide)
	{
		if(! verifmail(obj_champ.value))
		{
			obj_champ.focus();
			return false;
		}
	}

	return true;
}

/************** POPUP DIV telepoche *******************/

var testie4=document.all&&navigator.userAgent.indexOf("Opera")==-1;
var testns6=document.getElementById&&!document.all;
var testns4=document.layers;
var posx;
var posy;
var menuobj;

function init_popup(largeur_popup_pixel)
{
	if(largeur_popup_pixel == "")
		largeur_popup_pixel = 200; // defaut
	document.write ( "<style>.menuskin{ position:absolute; width:"+largeur_popup_pixel+"px; z-index:100; visibility:hidden; }</style>" );

	if (testns4 || testns6)
	{
		window.captureEvents(Event.MOUSEMOVE);
		window.onmousemove = coordonnee;
	}
}

function coordonnee(e)
{
	posx = e.pageX;
	posy = e.pageY;
}

function montrer_popup(contenu,x_offset,y_offset)
{
	if (!document.all && !document.getElementById && !document.layers) return;

	if(x_offset == "")
		x_offset = 0;
	if(y_offset == "")
		y_offset = 0;

	menuobj=testie4? document.all.popmenu : testns6? document.getElementById("popmenu") : testns4? document.popmenu : "";
	menuobj.thestyle=(testie4||testns6)? menuobj.style : menuobj;

	var contenuHTML = contenu;

	if (testie4||testns6)
		menuobj.innerHTML=contenuHTML;
	else
	{
		menuobj.document.write('<layer name=popmenu bgColor=#E6E6E6 width=200>'+contenuHTML+'</layer>');
		menuobj.document.close();
	}

	menuobj.contentwidth=(testie4||testns6)? menuobj.offsetWidth : menuobj.document.popmenu.document.width;
	menuobj.contentheight=(testie4||testns6)? menuobj.offsetHeight : menuobj.document.popmenu.document.height;
	eventX= ( testie4? event.clientX : (testns6||testns4) ? posx : 0 ) + x_offset;
	eventY= ( testie4? event.clientY : (testns6||testns4) ? posy : 0 ) + y_offset;

	//Find out how close the mouse is to the corner of the window
	var rightedge=testie4? document.body.clientWidth-eventX : window.innerWidth-eventX;
	var bottomedge=testie4? document.body.clientHeight-eventY : testns6 ? document.body.clientHeight+window.pageYOffset-eventY : window.innerHeight-eventY;

	//if the horizontal distance isn't enough to accomodate the width of the context menu
	//move the horizontal position of the menu to the left by it's width
	if (rightedge<menuobj.contentwidth)
	{
	eventX -= 20;
		menuobj.thestyle.left=testie4? document.body.scrollLeft+eventX-menuobj.contentwidth : testns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth;
		menuobj.innerHTML += "";
	}
	else
	{
		menuobj.thestyle.left=testie4? document.body.scrollLeft+eventX : testns6? window.pageXOffset+eventX : eventX;
		menuobj.innerHTML += "";
	}

	//same concept with the vertical position
	if (bottomedge<menuobj.contentheight)
	{
		eventY -= 20;
		menuobj.thestyle.top=testie4? document.body.scrollTop+eventY-menuobj.contentheight : testns6? eventY-menuobj.contentheight : eventY-menuobj.contentheight;
		menuobj.innerHTML += "";
	}
	else
	{
		menuobj.thestyle.top=testie4? document.body.scrollTop+eventY : testns6? eventY : eventY;
		menuobj.innerHTML += "";
	}

	menuobj.thestyle.visibility="visible";
	return false;
}

function cacher_popup()
{
	if ( menuobj && (testie4||testns6||testns4) )
		menuobj.thestyle.visibility=(testie4||testns6)? "hidden" : "hide";
}

if (testie4||testns6) document.onclick=cacher_popup;

if (document.getElementById||document.all)
{
	document.write("<div id='popmenu'  STYLE='z-index:1; left: 0px; visibility: hidden; position: absolute; top: 0px'>");
	document.write("</div>");
}
else
{
	document.write("<layer position='absolute' name='popmenu' left='0' top='0' visibility='hide'>");
   	document.write("</layer>");
}

function verifLength(Target,nb_car_max)
{
	if(Target)
	{
		StrLength = Target.value.length;
		if (StrLength > nb_car_max)
		{
			Target.value = Target.value.substring(0,nb_car_max)
			alert("Vous avez atteint la limite de "+nb_car_max+" caractères");
			CharsLeft = nb_car_max;
			return false;
		}
		else
		{
			CharsLeft = StrLength;
			return true;
		}
	}
	return false;
}

/**************** Date complète mercredi 12 janvier 2001 par ex. ******************/
function fait_Array(n) {
  this.length = n;
  return this;
}

aMois = new fait_Array(12);
aMois[1] = "janvier";
aMois[2] = "février";
aMois[3] = "mars";
aMois[4] = "avril";
aMois[5] = "mai";
aMois[6] = "juin";
aMois[7] = "juillet";
aMois[8] = "août";
aMois[9] = "septembre";
aMois[10] = "octobre";
aMois[11] = "novembre";
aMois[12] = "décembre";

aJours = new fait_Array(7);
aJours[1] = "Dimanche";
aJours[2] = "Lundi";
aJours[3] = "Mardi";
aJours[4] = "Mercredi";
aJours[5] = "Jeudi";
aJours[6] = "Vendredi";
aJours[7] = "Samedi";

function date_long(nDate) {
  var nEr = nDate.getDate();
  if (nEr == 1) nEr += "er";
  var nJour = aJours[nDate.getDay() + 1];
  var nMois = aMois[nDate.getMonth() + 1];
  var nAnnee = nDate.getYear();
  if (nAnnee < 100) nAnnee += 2000;
  if (nAnnee > 100&&nAnnee < 2000) nAnnee += 1900;
  return nJour + " " + nEr + " " + nMois + " " + nAnnee;
}


function get_liste_objets_coches(obj_chk)
{
	var s = '';

	if(obj_chk.length)
	{
			for(var i=0;i<obj_chk.length;i++)
			{
				if(obj_chk[i].checked)
					s += obj_chk[i].value+',';
			}
	}
	else
	{
		if(obj_chk.checked)
			s += obj_chk.value;
	}

	return s;
}


function getValCookie(offset)
{
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function getCookie (name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg) return getValCookie(j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;
}

function setCookie (name,value,expires,path,domain,secure) {
	document.cookie = name + "=" + escape (value); // escape: important pr les espaces

	if(expires != "null")
		document.cookie += ((expires) ? "; expires=" + expires.toGMTString() : "");
	document.cookie +=	((path) ? "; path=" + path : "") +
						((domain) ? "; domain=" + domain : "") +
						((secure) ? "; secure" : "");
}

function toucheEntreeAppuyee(evenement)
{
	var touche_appuyee;

	if(navigator.appName == "Netscape")
		touche_appuyee = evenement.which;
	else
		touche_appuyee = window.event.keyCode;

	if(touche_appuyee == 13)
		return true;
	return false;
}

function a_voir_calcul_espace_utilisable_fenetre()
{
	var largeur = 0, hauteur = 0;
	if( typeof( window.innerWidth ) == 'number' )
	{
		largeur = window.innerWidth;
	  	hauteur = window.innerHeight;
	}
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
	{
		largeur = document.documentElement.clientWidth;
	  	hauteur = document.documentElement.clientHeight;
	}
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
	{
		largeur = document.body.clientWidth;
	  	hauteur = document.body.clientHeight;
	}
	else
	{
		largeur = -1;
	  	hauteur = -1;
	}
}

function largeur_fenetre()
{

 if (window.innerWidth) return window.innerWidth;
 else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
 else return 0;
}

function hauteur_fenetre()
{
 if (window.innerHeight) return window.innerWidth;
 else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
 else return 0;
}

function Browser()
{
	//alert(window.onresize);

    d=document;
    this.agt=navigator.userAgent.toLowerCase();
    this.major = parseInt(navigator.appVersion);
    this.dom=(d.getElementById)?1:0;
    this.ns=(d.layers);
    this.ns4up=(this.ns && this.major >=4);
    this.ns6=(this.dom&&navigator.appName=="Netscape");
    this.op=(window.opera? 1:0);
    this.ie=(d.all);
    this.ie4=(d.all&&!this.dom)?1:0;
    this.ie4up=(this.ie && this.major >= 4);
    this.ie5=(d.all&&this.dom);
    this.win=((this.agt.indexOf("win")!=-1) || (this.agt.indexOf("16bit")!=-1));
    this.mac=(this.agt.indexOf("mac")!=-1);
	this.liste_plugins = "";
	this.largeur_utile = largeur_fenetre(); //screen.availWidth;
	this.hauteur_utile = hauteur_fenetre(); //screen.availHeight;
	this.resolution_x = screen.width;
	this.resolution_y = screen.height;
	this.accepteCookies = (navigator.cookieEnabled) ? true : false;
	if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled)
	{
 		document.cookie = "petitTest";
  		this.accepteCookies = (document.cookie.indexOf("petitTest") != -1) ? true : false;
  	}

	var pluginlist = "";

	if (this.ie && this.win){
		pluginlist = "";
		pluginlist += detectIE("Adobe.SVGCtl","SVG Viewer");
		pluginlist += detectIE("SWCtl.SWCtl.1","Shockwave Director");
		pluginlist += detectIE("ShockwaveFlash.ShockwaveFlash.1","Shockwave Flash");
		pluginlist += detectIE("rmocx.RealPlayer G2 Control.1","RealPlayer");
		pluginlist += detectIE("QuickTimeCheckObject.QuickTimeCheck.1","QuickTime");
		pluginlist += detectIE("MediaPlayer.MediaPlayer.1","Windows Media Player");
		pluginlist += detectIE("PDF.PdfCtrl.5","Acrobat Reader");
	}
	if (this.ns || !this.win){
		nse = "";
		for (var i=0;i<navigator.mimeTypes.length;i++){
			nse += navigator.mimeTypes[ i ].type.toLowerCase();
		}
		pluginlist = "";
		pluginlist += detectNS("image/svg-xml","SVG Viewer");
		pluginlist += detectNS("application/x-director","Shockwave Director");
		pluginlist += detectNS("application/x-shockwave-flash","Shockwave Flash");
		pluginlist += detectNS("audio/x-pn-realaudio-plugin","RealPlayer");
		pluginlist += detectNS("video/quicktime","QuickTime");
		pluginlist += detectNS("application/x-mplayer2","Windows Media Player");
		pluginlist += detectNS("application/pdf","Acrobat Reader");
	}

	this.liste_plugins = pluginlist;

	function detectIE(ClassID,name){
		result = false;
		//document.write("<SCRIPT LANGUAGE=VBScript> on error resume next  result = IsObject(CreateObject('Adobe.SVGCtl'))</SCRIPT>");
		window.execScript("On Error Resume Next : Set test = CreateObject('"+ClassID+"') : If Err.Number = 0 Then : result = true :Else : result = false : End if", "VBScript");
		if (result){
			return name+',';
		}else{
			return '';
		}
	}

	function detectNS(ClassID,name) { n = ""; if (nse.indexOf(ClassID) != -1) if (navigator.mimeTypes[ClassID].enabledPlugin != null) n = name+","; return n; }

	pluginlist += navigator.javaEnabled() ? "Java," : "";
	if (pluginlist.length > 0) pluginlist = pluginlist.substring(0,pluginlist.length-1);

	//document.write(pluginlist);
	//SAMPLE USAGE- detect "Flash"
	//if (pluginlist.indexOf("Flash")!=-1)
	//document.write("You have flash installed")
};

var navigateur = new Browser();

function resize_browser()
{
	navigateur.largeur_utile = largeur_fenetre();
	navigateur.hauteur_utile = hauteur_fenetre();
	navigateur.resolution_x = screen.width;
	navigateur.resolution_y = screen.height;
}

/* Le journal du net: permet de récupérer un chemin vers un élément de la page sans se soucier du navigateur. */
function recupereChemin(id)
{
	/* Variables à mettre en global pour éviter de tester à chaque appel de cette fonction */
	var nn4 = (document.layers) ? true : false
	var ie5 = (document.all) ? true : false
	var dom = (document.getElementById && !document.all) ? true : false

  	if (nn4)
  	{
	  	chemin = document.layers[id];
  	}
  	else if (ie5)
  	{
	  	chemin = document.all[id];
  	}
  	else
  	{
	  	chemin = document.getElementById(id);
  	}
  	return chemin;
}

function get_descript_status_http(status)
{
	if(status == 100) return "Continue";
	if(status == 101) return "Switching protocols";
	if(status == 200) return "OK";
	if(status == 201) return "Created";
	if(status == 202) return "Accepted";
	if(status == 203) return "Non-Authoritative Information";
	if(status == 204) return "No Content";
	if(status == 205) return "Reset Content";
	if(status == 206) return "Partial Content";
	if(status == 300) return "Multiple Choices";
	if(status == 301) return "Moved Permanently";
	if(status == 302) return "Found";
	if(status == 303) return "See Other";
	if(status == 304) return "Not Modified";
	if(status == 305) return "Use Proxy";
	if(status == 307) return "Temporary Redirect";
	if(status == 400) return "Bad Request";
	if(status == 401) return "Unauthorized";
	if(status == 402) return "Payment Required";
	if(status == 403) return "Forbidden";
	if(status == 404) return "Not Found";
	if(status == 405) return "Method Not Allowed";
	if(status == 406) return "Not Acceptable";
	if(status == 407) return "Proxy Authentication Required";
	if(status == 408) return "Request Timeout";
	if(status == 409) return "Conflict";
	if(status == 410) return "Gone";
	if(status == 411) return "Length Required";
	if(status == 412) return "Precondition Failed";
	if(status == 413) return "Request Entity Too Large";
	if(status == 414) return "Request-URI Too Long";
	if(status == 415) return "Unsupported Media Type";
	if(status == 416) return "Requested Range Not Suitable";
	if(status == 417) return "Expectation Failed";
	if(status == 500) return "Internal Server Error";
	if(status == 501) return "Not Implemented";
	if(status == 502) return "Bad Gateway";
	if(status == 503) return "Service Unavailable";
	if(status == 504) return "Gateway Timeout";
	if(status == 505) return "HTTP Version Not Supported";

	return "";
}

/*
readyState :
	0 (uninitialized)	non initialisé
	1 (loading)	début du transfert des données
	2 (loaded)	données transférées
	3 (interactive)	les données reçues sont accessibles en partie
	4 (complete)	les données sont complètement accessibles
*/

function test_ajax(param)
{
	var xhr_object = null;
	var methode="POST";

	if(window.XMLHttpRequest) // Firefox
   		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // Internet Explorer
   		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
	{ // XMLHttpRequest non supporté par le navigateur
   		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
   		return;
	}

	if(methode == "GET")
		xhr_object.open("GET", "/atooentreprise/test_ajax.php?param="+param, true);
	else if (methode == "POST")
		xhr_object.open("POST", "/atooentreprise/test_ajax.php", true);

	xhr_object.onreadystatechange = function()
	{
		//alert(xhr_object.readyState);
		if(xhr_object.readyState == 4)
		{
			//alert(xhr_object.status); // status HTTP
			alert(xhr_object.responseText);
		}
	}

	if(methode == "GET")
		xhr_object.send(null);
	else if (methode == "POST")
	{
		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr_object.send("param="+param);
	}
}

function init_connexion_ajax()
{
	var xhr_object = null;

	if(window.XMLHttpRequest) // Firefox
   		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // Internet Explorer
   		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
	{ // XMLHttpRequest non supporté par le navigateur
   		alert("Fonctionnalité non supportée. Active-X Error.");
   		return null;
	}
	return xhr_object;
}

// execute une requete et retourne le résultat. Uniquement en méthode POST.
// Attention ici c'est en mode synchrone (attends la fin du script pour continuer)
function exec_requete(req,param)
{


	var xhr_object = init_connexion_ajax();

	// xhr_object.setTimeouts(timeout);

	xhr_object.open("POST", "/atooentreprise/ajax.php", false); // false pour synchrone

	xhr_object.onreadystatechange = function()
	{
		if(xhr_object.readyState == 4)
		{
			//alert(xhr_object.responseText);
		}
	}

	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("req="+req+"&param="+param);

	return xhr_object.responseText;
}

function do_sql(sql)
{
	var xhr_object = init_connexion_ajax();

	xhr_object.open("POST", "/atooentreprise/ajax.php", false); // false pour synchrone

	xhr_object.onreadystatechange = function()
	{
		if(xhr_object.readyState == 4)
		{
			//alert(xhr_object.responseText);
		}
	}

	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("req=DO_SQL&sql="+sql);

	return xhr_object.responseText;
}

function do_sql_one_field_result(sql)
{
	var xhr_object = init_connexion_ajax();

	xhr_object.open("POST", "/atooentreprise/ajax.php", false); // false pour synchrone

	xhr_object.onreadystatechange = function()
	{
		if(xhr_object.readyState == 4)
		{
			//alert(xhr_object.responseText);
		}
	}

	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("req=DO_SQL_ONE_FIELD_RESULT&sql="+sql);

	return xhr_object.responseText;
}

function do_sql_mult_field_result(sql,separateur)
{
	var xhr_object = init_connexion_ajax();

	xhr_object.open("POST", "/atooentreprise/ajax.php", false); // false pour synchrone

	xhr_object.onreadystatechange = function()
	{
		if(xhr_object.readyState == 4)
		{
			//alert(xhr_object.responseText);
		}
	}

	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("req=DO_SQL_MULT_FIELD_RESULT&sql="+sql+"&separateur="+separateur);

	return xhr_object.responseText;
}



