
// 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 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.length>0) 
	{	
		t+='<img src="' + img + '" border="0" style="vertical-align: middle;"';
		if (alt && alt.length>0) 	t+=' alt="' + alt + '"';
		t+='>';
	
	}
	if (classe.length=0) classe="texte8";
	if (typeof(texte)=='string' && texte.length>0) 
	{
		if (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";
	window.open(src, name, param);
}

//------------------------
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 TRI_PARAM()
{
	this.ordre=4;
	this.affichage="liste";
	this.sens='DESC';
	this.nb_ordres=4;
	this.json_obj=null;
}

//-------------------------------- 
//ET 10/07/2005
function tri_maj_fleches(parametres)
{
	var i, img;
	
	for (i=1; i<=parametres.nb_ordres; i++)
	{
		img=document.images["ordre_"+i];
		if (!img) continue;
	
		if(parametres.ordre==i)
		{
			if(parametres.sens=="ASC") 
				img.src="../images/interface/fleche_vertebas.gif";
			else
				img.src="../images/interface/fleche_vertehaut.gif";
		}
		else	
			img.src="../images/interface/fleche_bleubas.gif";
	}
 }

//***************************
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(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 objet_classe_modifier(id_objet, classe, objet)
{
	if (!objet) objet = objet_adresse(id_objet);
	if (objet && typeof(objet.className)!='undefined')
		objet.className=classe;
}


//***************************
function fenetre_position(fenetre)
{
	var coords = {x: -1, y: -1, dx:0, dy:0};

	if (!fenetre)
	 fenetre=window;
	 
	if (fenetre.screenX != undefined)
	{
		coords.x = fenetre.screenX;
		coords.y = fenetre.screenY;
		return coords;
	}
	 
	if (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 (fenetre.outerWidth && 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 (document.documentElement.clientWidth!= undefined && internes && internes==1) 
	{
		dimensions.l = document.documentElement.clientWidth + dl_ie;	
		dimensions.h = document.documentElement.clientHeight+ dh_ie;
		return dimensions;
	}

	if (fenetre.document.body.clientWidth != undefined)
	{
		dimensions.l = fenetre.document.body.clientWidth + dl_ie;	
		dimensions.h = fenetre.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 || 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;
	
	//if (!liste) return(0);
	
	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) 
{
	if(!bouton_radio || !bouton_radio.length) return(-1);
	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 debug_objet (mode, separ)
{
	var m="DEBUG\r\n";
	var i;
	for(i=0; i<obj.length; i++)
	{
		m+=i + ' = ' + obj[i] + '    '; 
	}
	alert(m);
}


//------------------------
function debug_trace(cont, reset)
{
	var t, obj, h, m, s;
	var date_tmp;

	obj=objet_adresse("debug_trace")
	if (obj)
	{
		if (reset) t=""; else t=obj.innerHTML;

		date_tmp= new Date();
		h=date_tmp.getHours();
		if(h<10) h = "0"+h;
		m=date_tmp.getMinutes();
		if(m<10) m = "0"+m;
		s=date_tmp.getSeconds();
		if(s<10) s = "0"+s;

		obj.innerHTML=t + "<br>" + h + ":" + m + ":" + s + " " + cont;
	}
}

//---------------------------------------------
function formulaire_champ_propriete(formulaire, nom_champ, valeur_defaut, mode, param){

	var r=null;

	if (typeof(valeur_defaut)!='undefined') r=valeur_defaut;

	if (!formulaire) return(r);

	var champ=formulaire[nom_champ];
	if (!champ) return(r);

	var valeur=null;

	if (typeof(champ.value)!='undefined') valeur=champ.value;

	switch(mode){
		case "VALEUR" :
			return(valeur);
		case "REMPLI" :
			return(valeur.length>0);
	}

	return(r);
}

