var NS4 = (navigator.appName.indexOf("Netscape")>=0 && !document.getElementById)? true : false;
var IE4 = (document.all && !document.getElementById)? true : false;
var IE5 = (document.getElementById && document.all)? true : false;
var NS6 = (document.getElementById && navigator.appName.indexOf("Netscape")>=0 )? true: false;
var W3C = (document.getElementById)? true : false;

// Detection du navigateur, version et os
// Browser name: BrowserDetect.browser
// Browser version: BrowserDetect.version
// OS name: BrowserDetect.OS
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
//alert(BrowserDetect.browser);

top.focus();

// Ecrit dans le document
function wdoc(str) {
	document.write(str);
}

// Ouvre fenetre pour l'image agrandit
function fenetre(theURL,Targ) {
        fen = window.open(theURL, Targ, 'titlebar=no,status=no,location=no,scrollbars=no,toolbar=no,menubar=no,resizable=yes,width=250,height=200');
        if (!fen.opener) fen.opener = self;
}

function fen(theURL,Targ,Param) {
        window.open(theURL, Targ, Param);
}

// Execute une fonction javascript ou renvoi vers une url
function urlexec(adr) {
        if(adr.substr(0,10) == "javascript") {
                eval(adr);
        } else {
                document.location = adr;
        }
}

// Fonction floatval()
function floatval(mixed_var) {
	return (parseFloat(mixed_var) || 0);
}

// Fonction intval()
function intval( mixed_var, base ) {
	var tmp;
 
	if( typeof( mixed_var ) == 'string' ){
		tmp = parseInt(mixed_var*1);
		if(isNaN(tmp) || !isFinite(tmp)){
			return 0;
		} else{
			return tmp.toString(base || 10);
		}
	} else if( typeof( mixed_var ) == 'number' && isFinite(mixed_var) ){
		return Math.floor(mixed_var);
	} else{
		return 0;
	}
}

// Modification de la taille des polices de caracteres sur la page
var tgs = new Array( 'div','td','tr','a');	// Tags affectes
var szs = new Array( 'xx-small','x-small','small','medium','large','x-large','xx-large' );
var startSz = 2;
function ts(trgt,inc) {
	if (!document.getElementById) return
	var d = document,cEl = null,sz = startSz,i,j,cTags;
	
	sz += inc;
	if ( sz < 0 ) sz = 0;
	if ( sz > 6 ) sz = 6;
	startSz = sz;
		
	if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ];

	cEl.style.fontSize = szs[ sz ];

	for ( i = 0 ; i < tgs.length ; i++ ) {
		cTags = cEl.getElementsByTagName( tgs[ i ] );
		for ( j = 0 ; j < cTags.length ; j++ ) cTags[ j ].style.fontSize = szs[ sz ];
	}
}

// Ouvre fenetre pour affichage image avec redimensionnement automatique
function pimage(img, alt, title) { 
	// Compatible IE5+ / NN6+ / Mozilla
	pfen = window.open('','Image','width=10,height=10,toolbar=no,scrollbars=no,resizable=no,status=no,menubar=no,locations=no,directories=no');
	pfen.document.write("<html><head><title>"+title+"</title>"); 
	pfen.document.write("<script type=\"text/javascript\">function presize() { if (document.images[0].complete) { window.resizeTo(document.images[0].width+10,document.images[0].height+58); window.focus();} else { setTimeout('presize()',1000) } }</"+"script></head>");
	pfen.document.write("<body onload='presize()' onblur='window.close()' onclick='window.close()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0>"); 
	pfen.document.write("<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" height=\"100%\"><tr><td valign=\"middle\" align=\"center\">");
	pfen.document.write("<img src=\""+img+"\" border=\"0\" alt=\""+alt+"\" title=\""+title+"\">");
	pfen.document.write("</th><tr></table></body></html>"); 
	pfen.document.close(); 
} 

// Ouvre fenetre popup
function popup(theURL, Targ, Opt, Top, Left, Width, Height) {
	var param="resizable=";
	if (Opt&1){param+="yes"} else {param+="no";}
	param+=",scrollbars=";
	if (Opt&2){param+="yes"} else {param+="no";}
	param+=",directories=";
	if (Opt&4){param+="yes"} else {param+="no";}
	param+=",locations=";
	if (Opt&8){param+="yes"} else {param+="no";}
	param+=",status=";
	if (Opt&16){param+="yes"} else {param+="no";}
	param+=",toolbar=";
	if (Opt&32){param+="yes"} else {param+="no";}
	param+=",menubar=";
	if (Opt&64){param+="yes"} else {param+="no";}
	if (Top>0) param+=",top="+Top;
	if (Left>0) param+=",left="+Left;
	if (Width>0) param+=",width="+Width;
	if (Height>0) param+=",height="+Height;
        fen = window.open(theURL, Targ, param);
        if (!fen.opener) fen.opener = self;
}

// Affiche ou fait disparaitre un DIV
var vadivo = null,vadivcpt = null;
function fdiv() {
	var vadiv;
	if (vadiv = document.getElementById(vadivo)) {
		vadiv.style.display = "none";
		vadivo = null;
                if(vadivcpt) clearTimeout(vadivcpt);
		vadivcpt = null;
	}
}
function adiv(obj,type) {
	var vadiv;
	if (vadiv = document.getElementById(obj)) {
		if(type==0 || (type==2 && vadiv.style.display == "block")) {
			vadiv.style.display = "none";
		} else if(type>2) {
			if(type==4 && vadivo == obj) {
				vadiv.style.display = "none";
				vadivo = null;
			} else {
				if(vadivo) fdiv();
				vadivo = obj;
				vadiv.style.display = "block";
                		if(vadivcpt) clearTimeout(vadivcpt);
				if(type>4) vadivcpt = setTimeout("fdiv()",type);
			}
		} else {
			vadiv.style.display = "block";
		}
	}
}

// Interdit la selection de texte
function disableselect(e){ return false; }
function reEnable(){ return true; }
function noselect() {
	document.onselectstart=new Function ("return false");	//if IE4+
	if (NS6){ document.onmousedown=disableselect; document.onclick=reEnable; }	//if NS6
}

// Interdit le click droit
function noclick() {
	var mssg="";
	function clickIE() {if (document.all) {(mssg);return false;}}
	function clickNS(e) {if (document.layers||(document.getElementById&&!document.all)) {if (e.which==2||e.which==3) {(mssg);return false;}}}
	if (document.layers) {document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
	else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
	document.oncontextmenu=new Function("return false")
}

function checkcgv(theurl,msg) {
	if (document.cgv) {
		if (document.cgv.cgv) {
			if (document.cgv.cgv.checked) {
				document.location = theurl;
			} else {
				if (msg.length>0) alert(msg);
			}
		}
	}
}

// Ajouter une adresse dans le bookmark (IE)
function addbookmark(TheUrl,Titre){ if (document.all) window.external.AddFavorite(TheUrl,Titre); }

// Menu Dynamique specifique
var dmcpt,dmelm;
function dmenu(obj) {
        dhmenu();
        if (dmelm = document.getElementById(obj)) {
                dmelm.style.display = "block";
                dmelm.style.zIndex = "10";
                dmelm.onmouseover = dimenu;
                dmelm.onmouseout = domenu;
                dmcpt = setTimeout("dhmenu()",1000);
 
/*
                if (elm = document.getElementById("mifrm")) {
                        elm.style.display = "block";
                        //elm.style.pixelTop = dmelm.style.pixelTop;
                        //elm.style.pixelLeft = dmelm.style.pixelLeft;
                        elm.style.top = dmelm.style.top;
                        elm.style.left = dmelm.style.left;
                        elm.style.width = dmelm.style.width;
                        elm.style.height = dmelm.style.height;
                        elm.style.margin = dmelm.style.margin;
                }
*/
        }
}
function dimenu(e) {
	if(BrowserDetect.browser == "Firefox") var obj = e.target;
	else var obj = window.event.srcElement;
 
        if (obj!=dmelm) obj = obj.parentNode;
        if (obj!=dmelm) obj = obj.parentNode;
        if (obj!=dmelm) obj = obj.parentNode;
        if (obj==dmelm) {
                clearTimeout(dmcpt);
                //dmcpt = setTimeout("dhmenu()",500);
        }
}
function domenu(e) {
	if(BrowserDetect.browser == "Firefox") var obj = e.target;
	else var obj = window.event.srcElement;
 
        //if (type) clearTimeout(dmcpt);
        dmcpt = setTimeout("dhmenu()",500);
}
function dhmenu() {
        if (dmelm) {
                dmelm.style.display = "none";
        //        if (elm = document.getElementById("mifrm")) {
         //               elm.style.display = "none";
          //      }
        }
}
// ------------ Fin de menu dynamique specifique --------------

// ROLLOVER pour les Menus

var cpt,niv1, niv2, niv3, niv4, niv5;

function rollhide(obj,niv) {
	if (niv<6 && niv5) { if (obj.id.search(niv5.id.substr(0,niv5.id.length-1))) { niv5.style.display = "none";niv5 = null; } }
	if (niv<5 && niv4) { if (obj.id.search(niv4.id.substr(0,niv4.id.length-1))) { niv4.style.display = "none";niv4 = null; } }
	if (niv<4 && niv3) { if (obj.id.search(niv3.id.substr(0,niv3.id.length-1))) { niv3.style.display = "none";niv3 = null; } }
	if (niv<3 && niv2) { if (obj.id.search(niv2.id.substr(0,niv2.id.length-1))) { niv2.style.display = "none";niv2 = null; } }
	if (niv<2 && niv1) { if (obj.id.search(niv1.id.substr(0,niv1.id.length-1))) { niv1.style.display = "none";niv1 = null; } }
}
function rollhide1() {
	if (niv5) { niv5.style.display = "none";niv5 = null; }
	if (niv4) { niv4.style.display = "none";niv4 = null; }
	if (niv3) { niv3.style.display = "none";niv3 = null; }
	if (niv2) { niv2.style.display = "none";niv2 = null; }
	if (niv1) { niv1.style.display = "none";niv1 = null; }
}
function rollmenu(obj,type,dyn) {
	var niv;

	if (!obj.className) obj = obj.parentNode;
	if (obj.className == "mbout")
	{
		if (obj.className != "mnoroll" && obj.className != "mroll" && obj.className != "mclick") obj = obj.parentNode;
		if (obj.className != "mnoroll" && obj.className != "mroll" && obj.className != "mclick") obj = obj.parentNode;
		if (obj.className != "mnoroll" && obj.className != "mroll" && obj.className != "mclick") obj = obj.parentNode;
		if (obj.className != "mnoroll" && obj.className != "mroll" && obj.className != "mclick") obj = obj.parentNode;

		if (obj.className == "mnoroll" || obj.className == "mroll" || obj.className == "mclick") {
			if (type) clearTimeout(cpt);
			else cpt = setTimeout("rollhide1()",500);

			if (type == 1) obj.className = "mroll";
			else if (type == 2) obj.className = "mclick";
			else obj.className = "mnoroll";

			if (dyn) {
				if (niv = document.getElementById(obj.id+"n")) {
					if (niv.className == "niv1") { if (niv1) rollhide(obj,1);niv1 = niv; }
					else if (niv.className == "niv2") { if (niv2) rollhide(obj,2);niv2 = niv; }
					else if (niv.className == "niv3") { if (niv3) rollhide(obj,3);niv3 = niv; }
					else if (niv.className == "niv4") { if (niv4) rollhide(obj,4);niv4 = niv; }
					else if (niv.className == "niv5") { if (niv5) rollhide(obj,5);niv5 = niv; }

					if (type) niv.style.display = "block";
				}
				else rollhide(obj,1);
			}
		}
	}
}
function roverd(e) {
	if(BrowserDetect.browser == "Firefox") var obj = e.target;
	else var obj = window.event.srcElement;
	rollmenu(obj,1,1);
}
function routd(e) {
	if(BrowserDetect.browser == "Firefox") var obj = e.target;
	else var obj = window.event.srcElement;
	rollmenu(obj,0,1);
}
function rover(e) {
	if(BrowserDetect.browser == "Firefox") var obj = e.target;
	else var obj = window.event.srcElement;
	rollmenu(obj,1,0);
}
function rout(e) {
	if(BrowserDetect.browser == "Firefox") var obj = e.target;
	else var obj = window.event.srcElement;
	rollmenu(obj,0,0);
}
function rdown(e) {
	if(BrowserDetect.browser == "Firefox") var obj = e.target;
	else var obj = window.event.srcElement;
	rollmenu(obj,2,0);
}
function rup(e) { 
	if(BrowserDetect.browser == "Firefox") var obj = e.target;
	else var obj = window.event.srcElement;
	rollmenu(obj,2,0);
}
function rmenu(obj,dyn) {
	var melm = document.getElementById(obj);
	if (dyn) {
		melm.onmouseover = roverd;
		melm.onmouseout = routd;
	}
	else {
		melm.onmouseover = rover;
		melm.onmouseout = rout;
	}
	melm.onmouseup = rup;
	melm.onmousedown = rdown;
}

// Affichage dynamique de la date et de l'heure
function dateheure(obj,type) {
	var Digital=new Date();
	var hours=Digital.getHours();
	var minutes=Digital.getMinutes();
	var seconds=Digital.getSeconds();
	var day=Digital.getDate();
	var month=(Digital.getMonth())+1;
	var year=Digital.getFullYear();
	var myElem = document.getElementById(obj);
	var lheure = "";

	if (hours==0) hours=12;
	if (minutes<=9) minutes="0"+minutes;
	if (seconds<=9) seconds="0"+seconds;
	if (type&1) lheure=day+ "/" +month+ "/" +year;
	if (type&1 && type&2) lheure=lheure+ " - ";
	if (type&2) lheure=lheure +hours+ ":" +minutes+ ":" +seconds;
	myElem.innerHTML = lheure;
	cpt=(setTimeout("dateheure(\""+obj+"\","+type+")",1000));
}

// ******************** URLEncode les values des champs d'un formulaire ***************************
function FormEncode(name) {
	var i,param = "";
	var obj = document.forms[name];
	if (obj) {
		elements = obj.length;

		for (i = 0; i < elements; i++) {
			// alert(obj.elements[i].name + " = " + obj.elements[i].value + " : " + obj.elements[i].checked);
			if (param.length > 0) param += "&";
			if (obj.elements[i].type == "checkbox" || obj.elements[i].type == "radio") {
				if (obj.elements[i].checked) param += obj.elements[i].name + "=" + encodeURIComponent(obj.elements[i].value);	// ne prend en compte que si selectionner
			} else {
				param += obj.elements[i].name + "=" + escape(obj.elements[i].value);
				//param += obj.elements[i].name + "=" + encodeURIComponent(obj.elements[i].value);
			}
		}
	}
	// alert(param);
	return(param);
}
// ********** URLEncode les values des champs d'un formulaire et les envoi vers une URL en AJAX *****************
function FormPost(id,url,name) {
	url += "?" + FormEncode(name);
	getHObjetById(id,url);
}

// ******************** Fonctions AJAX ***************************
function getHObjet() {
	var xmlhttp = false;

	/* Compilation conditionnelle d'IE */
	/*@cc_on
	@if (@_jscript_version >= 5)
		try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e) {
			try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
			catch (E) { xmlhttp = false; }
		}
	@else
		xmlhttp = false;
	@end @*/

	/* on essaie de creer l'objet si ce n'est pas deja fait */
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try { xmlhttp = new XMLHttpRequest();xmlhttp.overrideMimeType('text/xml'); }
		catch (e) { xmlhttp = false; }
	}

	return xmlhttp;
}
function getHObjetById(id,url) {
	var xmlhttp = getHObjet(); 
	if (xmlhttp) {
		/* on definit ce qui doit se passer quand la page repondra */
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState == 4) {	/* Donnees charges */
				if (xmlhttp.status == 200) {	/* 200 : code HTTP pour OK */
					var obj = document.getElementById(id);
					if (obj) { obj.innerHTML = xmlhttp.responseText; }
				}
			}
		}
	}
	xmlhttp.open("POST", url,true); 
	xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xmlhttp.send(null); 
}

// ******************** Rafraichissement d'une ou plusieurs zone **********
function ZoneRefresh(val,url) {
	if(val&1) getHObjetById('z0',url);
	if(val&2) getHObjetById('z1',url);
	if(val&4) getHObjetById('z2',url);
	if(val&8) getHObjetById('z3',url);
	if(val&16) getHObjetById('z4',url);
	if(val&32) getHObjetById('z5',url);
	if(val&64) getHObjetById('z6',url);
	if(val&128) getHObjetById('z7',url);
	if(val&256) getHObjetById('z8',url);
	if(val&512) getHObjetById('z9',url);
	if(val&1024) getHObjetById('z10',url);
	if(val&2048) getHObjetById('z11',url);
	if(val&4096) getHObjetById('z12',url);
}
// ******************** Recharche de contact en AJAX **********************
function oncrech(theid,frm) {
	if (obj = document.getElementById(theid+'r')) {
		if(obj.value.length>1) {
			getHObjetById(theid+"crech","/obj/crech.adml?f_r="+obj.value+"&f_n="+theid+"&f_f="+frm);
		} else {
			if (elm = document.getElementById("crech")) {
				elm.style.visibility = "hidden";
			}
		}
	}
}
function oncprech(theid,val,txt) {
	if (val) {
		val.value = theid.options[theid.selectedIndex].value;
	}
	if (txt) {
		txt.value = theid.options[theid.selectedIndex].text;
	}
}

// ******************** Recherche de contact en AJAX **********************
function rechOn(el) {   // Ouvre la zone de recherche
	var elm1 = $(el+'d');
	var elm2 = $(el+'v');
	var elm3 = $(el+'r');
	if(elm1 && elm2 && elm3) {
		elm2.setStyle('display','none');
		elm3.setStyle('display','block');
		elm1.setStyle('display','block');
		elm3.focus();
	}
	rechKeyUp(el);
}
function rechOff(el) {  // Ferme la zone de recherche
	var elm1 = $(el+'d');
	var elm2 = $(el+'v');
	var elm3 = $(el+'r');
	if(elm1 && elm2 && elm3) {
		elm1.setStyle('display','none');
		elm3.setStyle('display','none');
		elm2.setStyle('display','block');
	}
}
function rechKeyUp(el){ // Effectue la recherche
	var elm = $(el);
	var elm1 = $(el+'d');
	var elm3 = $(el+'r');
	if (elm1 && elm3){
		if(elm3.value.length>=0){
			var params = "&f_r="+elm3.value+"&f_n="+el+"&f_s="+elm.value;
			var ret = new Request({
				url: "/obj/rech_contacts.adml",
				onSuccess: function(reponse,reponseXML){
					if(reponse){
						elm1.set('html',reponse);
					}
				}
			}).send(params);
		} else {
			if (elm1 = document.getElementById("crech")) {
				elm1.style.visibility = "hidden";
			}
		}
	}
}
function rechSelect(el){        // Selection d'un contact
	var elm = $(el);
	var elm1 = $(el+'v');
	var elm3 = $(el+'s');
	if(elm3){
		if(elm3.selectedIndex>=0) {
			if(elm) elm.value = elm3.options[elm3.selectedIndex].value;
			if(elm1) elm1.value = elm3.options[elm3.selectedIndex].text;
		}
	}
	rechOff(el);
}

