
// sous ie5 undefined n'est pas defini
if (typeof(undefined)=='undefined') var undefined="undefined";


//**************************
function systeme_recuperer()
{

if (navigator.appVersion.indexOf("Win") != -1)
	return("WIN");

if (navigator.appVersion.indexOf("Mac")!=-1)
	return("MAC");

return("UNKNOW");

}

//**************************
function navigateur_recuperer()
{

	if ( navigator.appName == 'Microsoft Internet Explorer')
	{
		if (navigator.userAgent.indexOf('MSIE 5.5')>0)	return("IE55");
		if (navigator.userAgent.indexOf('MSIE 5')>0)	return("IE5");
		if(document.all) return("IE4");
	}
	if ( navigator.appName == 'Netscape')
	{
		if(document.getElementById) return("NS6");
		if (document.layers) return("NS4");
	}

return("UNKNOW");

}

//------------------------
function texte_lire(cle_code_texte)
{
	var txt="";

	try
	{
		txt=eval("TXT_" + cle_code_texte);
	}
	//si pas défini, on retourne la cle
	catch (e)
	{
		txt=cle_code_texte;
	}
	return(txt);
}


//------------------------
function lien_html(url, img, texte, alt, classe, param, id)
{
	var t;
	t="";
	if (url.length>0)
	{
		t+='<a '
		if (id && id.length>0) t+=' id="' + id + '"'

		t+=' href="' + url + '">';
	}
	if (img && img.length>0)
	{
		t+='<img src="' + img + '" border="0" style="vertical-align: middle;"';
		if (alt.length>0) 	t+=' alt="' + alt + '"';
		t+='>';

	}
	if (classe.length=0) classe="texte8";
	if (texte && texte.length>0)
	{
		if (img && img.length>0) t+='&nbsp;';
		t+='<span class="' + classe + '">' + texte + '</span>';
	}
	if (url.length>0)
		t+="</a>";
	return(t);
}

//------------------------
function fenetre_ouvrir(src,name,w,h, param2)
{
	var new_window, param;

	param = "height=" + h + ",width=" + w;
	if (param2 && param2.length>0)
		param += "," + param2;
	else
		param += ",resizable=yes,scrollbars";

	// pour debug
	//param +=",locationbar=yes,status=yes";
	new_window=window.open(src, name, param);
	//new_window.focus();
	return new_window ;
}

//------------------------
function fenetre_fermer()
{
if(window.opener)
	try
	{
		window.opener.focus();
	}
	catch (e)
	{
	}

window.close();
}

//------------------------
// recharge la fenetre appelante et met le focus
function fenetre_appelante_recharger()
{
if (window.opener.document.formulaire && window.opener.document.formulaire.submit)
	window.opener.document.formulaire.submit();
else
	window.opener.location.reload(true);

window.opener.focus();
}

//------------------------
// recharge la fenetre appelante
function fenetre_appelante_rafraichir()
{
if (window.opener.document.formulaire && window.opener.document.formulaire.submit)
	window.opener.document.formulaire.submit();
else
	window.opener.location.reload(true);
}


//*********************************
function fenetre_modale_ouvrir(url,arguments,style)
{
	if(window.showModalDialog)
	{
		return(window.showModalDialog(url,arguments,style));
	}
	else
	{
		alert("Internet Explorer est requis pour exploiter cette fonctionnalité!");
		return -1;
	}
}


//***************************
function objet_adresse(id_objet)
{
if (document.getElementById)
	return(document.getElementById(id_objet));
if(document.all)
	return(document.all(id_objet));

if(document.layers)
	return(document.layers[id_objet]);

return null;
}

//***************************
function objet_position (objet)
{
	var obj;
	var coords = {x: -1, y: -1};

	obj=objet;

	if (obj == null)
		return coords;

	if (document.layers)
	{
		coords.x=obj.x;
		coords.y=obj.y;
	    return coords;
	}
	if(typeof(obj.offsetLeft)!=undefined)
	{
		coords.x=0;
		coords.y=0;
	    while (obj)
	    {
			coords.x += obj.offsetLeft;
			coords.y += obj.offsetTop;
			obj = obj.offsetParent;
		}
	    return coords;
	}
	return coords;
}


//***************************
function objet_positionner(objet, x, y)
{
	var obj;

	obj=objet;

	if (obj == null)
		return;

	if (x==null || x=="") x=objet_position (obj).x;
	if (y==null || y=="") y=objet_position (obj).y;


	if (obj.style && obj.style.left!=undefined)
	{
		obj.style.left = x;
		obj.style.top  = y;
		obj.style.posLeft = x;
		obj.style.posTop = y;
		return;
	}

	if (obj.pixelLeft!=undefined)
	{
		obj.pixelLeft = x;
		obj.pixelTop  = y;
		return;
	}


	if (obj.left!=undefined)
	{
		obj.left = x;
		obj.top  = y;
	}
	if (document.layers)
	{
		obj.moveTo(x, y);
		return;
	}
}



//---------------------------------------
function objet_cacher(id_objet, objet)
{
	if ( !objet ) objet = objet_adresse(id_objet);

	if ( objet )
	{
		objet.style.visibility = 'hidden' ;
		objet.style.display = "none" ;
	}
}


//---------------------------------------
function objet_montrer(id_objet, objet)
{
	if ( !objet ) objet = objet_adresse(id_objet);

	if ( objet && objet.style)
	{
		objet.style.visibility = 'visible' ;
		objet.style.display = "block" ;
	}
}

//---------------------------------------
/* les règles de l'art du display :
html, body, p, div, h1, h2, h3, h4, h5, h6,
ul, ol, dl, dt, dd, blockquote, address, pre,
listing, plaintext, xmp, menu, dir, isindex, hr, map,
multicol, center, frameset, marquee {display: block;}

li {display: list-item;}

area, base, basefont, head, meta, script, style, title,
noembed, noscript, param, noframes {display: none;}

table {display: table;}
caption {display: table-caption;}
tr {display: table-row;}
col {display: table-column;}
colgroup {display: table-column-group;}
tbody {display: table-row-group;}
thead {display: table-header-group;}
tfoot {display: table-footer-group;}
td {display: table-cell;}
th {display: table-cell;}

le reste {display: inline;}
*/

//---------------------------------------
function objet_montrer_mode(id_objet, mode, objet, mode_ie)
{
var isIE=document.all;

	if ( !objet ) objet = objet_adresse(id_objet);

	// sous ie tout est à block
	if (isIE)
	{
		if (mode_ie)
			mode=mode_ie;
		else
			mode="block";
	}
	if (objet && objet.style)
	{
		objet.style.visibility = 'visible' ;
		objet.style.display = mode;
	}
}


//---------------------------------------
function objet_affichage_basculer(id_objet, objet)
{
	if (!objet) objet = objet_adresse(id_objet);

	if (!objet)	return;

	if (objet.style.visibility == 'visible')
		objet_cacher(id_objet, objet);
	else
		objet_montrer(id_objet, objet);
}


//---------------------------------------
function objet_visible(id_objet, objet)
{
	if (!objet) objet = objet_adresse(id_objet);

	return(objet && objet.style.visibility == 'visible')
}


//---------------------------------------
function objet_affichage_basculer_mode(id_objet, mode, objet)
{
	if (!objet) objet = objet_adresse(id_objet);

	if (!objet)	return;

	if (objet.style.visibility == 'visible')
		objet_cacher(id_objet, objet);
	else
		objet_montrer_mode(id_objet, mode, objet);
}



//***************************
function fenetre_position(fenetre)
{
	var coords = {x: -1, y: -1, dx:0, dy:0};

	if (!fenetre)
	 fenetre=window;

	if (typeof(fenetre.screenX) != 'undefined')
	{
		coords.x = fenetre.screenX;
		coords.y = fenetre.screenY;
		return coords;
	}

	if (typeof(fenetre.screenLeft) != 'undefined')
	{
		coords.x = fenetre.screenLeft;
		coords.y = fenetre.screenTop;
		// bidouille pour avoir les bonnes valeurs sous IE
		window.moveTo(5000, 0);
		coords.dx= fenetre.screenLeft-5000;
		coords.dy= fenetre.screenTop;
		coords.x-= coords.dx;
		coords.y-= coords.dy;
		window.moveTo(coords.x, coords.y);
		return coords;
	}

	return coords;
}

//***************************
function fenetre_positionner(fenetre, x, y)
{
	if (!fenetre) fenetre=window;
	if (x<0 || y<0)
	{
		var coor;
		coor = fenetre_position(fenetre);
		if (x<0) x=coor.x;
		if (y<0) y=coor.y;
	}
	fenetre.moveTo(x, y);
}

//***************************
function fenetre_centrer(fenetre, largeur, hauteur)
{
var dimensions, x, y;

if (!fenetre) fenetre=self;

dimensions = fenetre_dimensions(fenetre);
//alert("l="+dimensions.l + " h="+dimensions.h);
x= (screen.availWidth-dimensions.l)/2;
y= (screen.availHeight-dimensions.h)/2;
if (y<0) y=0;

fenetre.moveTo(x,y);
}

//***************************
function fenetre_maximiser(fenetre, largeur, hauteur, dl_ie, dh_ie)
{
	var dimensions, x, y, l, h;

	if (!fenetre) fenetre=window;

	dimensions = fenetre_dimensions(fenetre, null, null, 1);
	l=dimensions.l;
	h=dimensions.h;
	if (!dl_ie || dl_ie==undefined) dl_ie=28;
	if (!dh_ie || dh_ie==undefined) dh_ie=51;

	if (largeur==1) l= screen.availWidth;
	if (largeur==2) l= Math.min (screen.availWidth, fenetre.document.body.clientWidth + dl_ie);
	if (hauteur==1) h= screen.availHeight;
	if (hauteur==2) h= Math.min (screen.availHeight, fenetre.document.body.clientHeight + dh_ie);
	fenetre_dimensionner(fenetre, l, h);
}


//***************************
function fenetre_dimensions(fenetre, dl_ie, dh_ie, internes)
{
	var dimensions = {l:-1, h:-1};

	if (!fenetre)
		 fenetre=window;

	if (typeof(fenetre.outerWidth)  != 'undefined')
	{
		dimensions.l = fenetre.outerWidth;
		dimensions.h = fenetre.outerHeight;
		return dimensions;
	}

	// sous ie il n'est pas possible d'avoir la taille de la fenêtre externe
	// on a la taille de la partie affichage (sans la barre d'outil et le cadre)
	// dl_ie et dh_ie servent pour les corrections manuelles
	// 28 et 51 sont les valeur par défaut pour une popup
	if (!dl_ie || dl_ie==undefined) dl_ie=28;
	if (!dh_ie || dh_ie==undefined) dh_ie=51;


	if (typeof(document.documentElement.clientWidth)!= 'undefined' && internes && internes==1)
	{
		dimensions.l = document.documentElement.clientWidth + dl_ie;
		dimensions.h = document.documentElement.clientHeight+ dh_ie;
		return dimensions;
	}

	if (typeof(document.body) != 'undefined' && typeof(document.body.clientWidth) != 'undefined')
	{
		dimensions.l = document.body.clientWidth + dl_ie;
		dimensions.h = document.body.clientHeight+ dh_ie;
		return dimensions;
	}

	return dimensions;
}


//***************************
function fenetre_dimensionner(fenetre, l, h)
{

	if (l<0 || h<0)
	{
		var dimensions;
		dimensions = fenetre_dimensions(fenetre);
		if (l<0) l=dimensions.l;
		if (h<0) h=dimensions.h;
	}
	fenetre.resizeTo(l, h);
}



//***************************
function document_hauteur()
{
	 if (document.body.scrollHeight!=undefined)
	     return document.body.scrollHeight;
	if (document.height!=undefined)
	       return parseInt(document.height);
return(-1);
}

//**************************
function document_largeur()
{
	if (document.body.clientWidth !=undefined)
	 return(parseInt(document.body.clientWidth));

	if (document.width !=undefined)
	 return(parseInt(document.width));

return(-1);
}

//***************************
function imprimer()
{
if (window.print)
	window.print();
else
	{
    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
	document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
//    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box
    WebBrowser1.ExecWB(6, 1);
	WebBrowser1.outerHTML = "";
	return;
  }
return;
}

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

function deuxpos(chiffre)
{
	if (chiffre.length<2)
		chiffre="0"+chiffre;
	return chiffre;
}

//------------------------
function aleatoire()
{
return Math.floor(Math.random()* 100000000)+1;
}

//***************************
// diminue la taille de l'image si celle si dépasse
function image_diminuer(image, l, h)
{
var dl=1, dh=1, il, ih, new_l, new_h;

if (!image)
	return;
il=image.width;
ih=image.height;

//alert( il + ", " + ih + "->" + l + ", " +h);
if (il<= l && ih<=h) return;

if (l>0)
	dl=l-il;
if (h>0)
	dh=h-ih;

if (dl<0 || dh<0)
	{
	if (l*ih > h*il)
		{
		new_l= il*h/ih;
		new_h= h;
		}
	else
		{
		new_l= l;
		new_h= ih*l/il;
		}
	image.width=new_l;
	image.height=new_h;
	}

}


// ------------------------------------------------
// ET 06/07/05
// retourne le nombre d'occurences de la valeur dans la liste

function liste_valeur_existe(liste, valeur, separateur)
{
	var elements, i;
	var nb_occurences;

	if (liste.length<=0) return(0);

	nb_occurences=0;
	elements = liste.split(separateur) ;
	for(i = 0; i <elements.length ; i++)
	{
		if (valeur == elements[i]) nb_occurences++;
	}
	return(nb_occurences);
}

// ------------------------------------------------
function liste_valeur_position(liste, valeur, separateur)
{
	var elements, i;

	if (liste.length<=0) return(-1);

	elements = liste.split(separateur) ;
	for(i = 0; i <elements.length ; i++)
	{
		if (valeur == elements[i]) return(i);
	}
	return(-1);
}

// ------------------------------------------------
// ET 07/07/05
// ET 16/09/05 possibilité d'ajouter une liste dans une liste
function liste_valeur_ajouter(liste, valeur, separateur, accepter_doublon)
{
	var tab, i, new_liste, separ;

	new_liste=liste;
	separ="";
	if (!valeur || valeur.length<=0) return(0);
	valeur+="";
	tab = valeur.split(separateur) ;
	for(i = 0; i <tab.length ; i++)
	{
		if (accepter_doublon || !liste_valeur_existe(liste, tab[i], separateur))
		{
			if (new_liste.length>0) new_liste= new_liste + separateur
			new_liste+=tab[i];
		}
	}
	return(new_liste);
}

// ------------------------------------------------
// ET 07/07/05
// ET 16/09/05 possibilité de supprimer une liste dans une liste
function liste_valeur_supprimer(liste, valeur, separateur, position)
{
	var elements, i, new_liste, separ, a_supprimer, ok;

	new_liste="";
	separ="";
	liste+="";

	elements = liste.split(separateur);

	if (position!=null && position>=0)
		a_supprimer="";
	else
	{
		position=-1;
		a_supprimer=separateur + valeur + separateur;
	}

	for(i = 0; i <elements.length ; i++)
	{
		if (position>=0)
			ok=(position!=i);
		else
			ok=(a_supprimer.indexOf(separateur + elements[i] + separateur)<0);

		if (ok)
		{
			new_liste+=separ+elements[i];
			separ=separateur;
		}
	}
	return(new_liste);
}


// ------------------------------------------------
function bouton_radio_valeur(bouton_radio)
{
	var i;

	i=bouton_radio_elt_select(bouton_radio)
	if (i>=0) return(bouton_radio[i].value)
	return("");
}

// ------------------------------------------------
function bouton_radio_elt_select(bouton_radio)
{
	var i;
    for (i=0; i<bouton_radio.length;i++)
    {
		if (bouton_radio[i].checked)   return(i)
	}
	return(-1);
}

// ------------------------------------------------
function bouton_radio_valeur_selectionner(bouton_radio, valeur)
{
	var i;

    for (i=0; i<bouton_radio.length;i++)
    {
		if (bouton_radio[i].value==valeur)
		{
			bouton_radio[i].checked=true;
			return(i);
		}

	}
	return(-1);
}


// ----------------------------------------------------------------------------
function combo_valeur_selectionner(obj, valeur)
{
	var i;

	if (!obj || !obj.options)
		return;
	for (i=0; i<obj.options.length; i++)
	{
		if (obj.options[i].value == valeur)
			obj.options[i].selected = true ;
	}
}



// ----------------------------------------------------------------------------
function pause(ms)
{
	date = new Date();
	var curDate = null;

	do
	{
		curDate = new Date();
	}
	while(curDate-date < ms);
}


// ------------------------------------------------------
	function objet_debug (obj, mode, separ)
	{
		var m="DEBUG\r\n";

		for (var i in obj)
		{
			m+=i + ' = ' + obj[i] + '    ';
		}
		alert(m);
	}

	
	
	
///////////////////////////////////////DETECTION DU PROTOCOLE/////////////////////////////////////////////////////////////
function uri() 
	{ 
		var p, h, u; 
		p = location.protocol;
		h = location.hostname;
		u = location.href;
		
		switch (p)
			{
				case 'http:':return true; //Signifie que l'on vient d'internet
				break;
				case 'file:':return false;//Signifie que l'on vient du CD-ROM
				break;
				default:return true;
			}		
			
	} 
