var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

if (checkIt('konqueror'))
{
	browser = "Konqueror";
	OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible'))
{
	browser = "Netscape Navigator"
	version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
	if (checkIt('linux')) OS = "Linux";
	else if (checkIt('x11')) OS = "Unix";
	else if (checkIt('mac')) OS = "Mac"
	else if (checkIt('win')) OS = "Windows"
	else OS = "an unknown operating system";
}

function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

	
	
	var vis = new Array();
	var memo_obj = new Array();

	function findObj_test_forcer(n, forcer) { 
		var p,i,x;

		// Voir si on n'a pas deja memoriser cet element		
		if (memo_obj[n] && !forcer) {
			return memo_obj[n];
		}
		
		d = document; 
		if((p = n.indexOf("?"))>0 && parent.frames.length) {
			d = parent.frames[n.substring(p+1)].document; 
			n = n.substring(0,p);
		}
		if(!(x = d[n]) && d.all) {
			x = d.all[n]; 
		}
		for (i = 0; !x && i<d.forms.length; i++) {
			x = d.forms[i][n];
		}
		for(i=0; !x && d.layers && i<d.layers.length; i++) x = findObj(n,d.layers[i].document);
		if(!x && document.getElementById) x = document.getElementById(n); 
		
		// Memoriser l'element
		memo_obj[n] = x;
		
		return x;
	}
	
	function findObj(n) { 
		return findObj_test_forcer(n, false);
	}
	// findObj sans memorisation de l'objet - avec Ajax, les elements se deplacent dans DOM
	function findObj_forcer(n) { 
		return findObj_test_forcer(n, true);
	}
	
	function changeclass(objet, myClass) { 
	  objet.className = myClass;
	}

	function hide_obj(obj) {
		element = findObj(obj);
		if(element) {
			if (element.style.visibility != "hidden") element.style.visibility = "hidden";
		}
	}
	function show_obj(obj) {
		element = findObj(obj);
		if(element) {
			if (element.style.visibility != "visible") element.style.visibility = "visible";
		}
	}

	var time = new Array();
	var valeur = new Array();

	function slide_style_etape (obj, st, val, fin, diff) {

			layer = findObj(obj);
			if (!layer) return;
			
			
			val = parseInt(val);
			diff = parseInt(diff);
			fin = parseInt(fin);
			
		val = val + diff;
		if (OS == "Mac") val = val + diff;


		if (diff > 0) {
				if (val > fin) val = fin;
			} else {
				if (val < fin) val = fin;
			}
			valeur[obj+"-"+st] = val;
						
			if (st != "opacity") val = val + "px";
			
			
			if (st == "opacity") {
				layer.style.opacity = (val / 101);
			    layer.style.MozOpacity = (val / 100);
			    layer.style.KhtmlOpacity = (val / 100);
			    layer.style.filter = "alpha(opacity=" + val + ")";


				if (val != 0) { layer.style.visibility = "visible"; }
				else { layer.style.visibility = "hidden"; }
			
			} else {
				layer.style[st] = val;
			}
			
			if (val != fin) time[obj+"-"+st] = setTimeout("slide_style_etape('"+obj+"','"+st+"','"+val+"','"+fin+"','"+diff+"')", 100);
				
	}

	
	function slide_style (obj, st, fin, diff, delai) {
	
		layer = findObj_forcer(obj);
		if (!layer) return;
		
		if (valeur[obj+"-"+st]) {
			val = valeur[obj+"-"+st];
		}
		else { 
			val = eval("layer.style."+st);
		}
		val = parseInt(val);
		
		clearTimeout (time[obj+"-"+st]);
		
		if (delai > 0) time[obj+"-"+st] = setTimeout("slide_style_etape('"+obj+"','"+st+"','"+val+"','"+fin+"','"+diff+"')", delai);
		else slide_style_etape (obj, st, val, fin, diff) ;

	}
	
	function eteindre_secteurs(id) {
		
		if (id != 9) slide_style("logosecteur9", "opacity", 30, -10, 0);
		else  slide_style("logosecteur9", "opacity", 100, 10, 0);
		
		if (id != 17) slide_style("logosecteur17", "opacity", 30, -10, 0);
		else  slide_style("logosecteur17", "opacity", 100, 10, 0);
		
		if (id != 30) slide_style("logosecteur30", "opacity", 30, -10, 0);
		else  slide_style("logosecteur30", "opacity", 100, 10, 0);
		
	}
	function allumer_secteurs() {
		
		slide_style("logosecteur9", "opacity", 100, 10, 300);
		
		slide_style("logosecteur17", "opacity", 100, 10, 300);
		
		slide_style("logosecteur30", "opacity", 100, 10, 300);
		
	}
	
	function pop_on(couche) {
		if (browser == "Internet Explorer") show_obj(couche);
		else slide_style(couche, 'opacity', '100', '10', '0');
	}
	function pop_off(couche) {
		if (browser == "Internet Explorer") hide_obj(couche);
		else slide_style(couche, 'opacity', '0', '-10', '0');
	}
	
	
	function forcer_hauteurs() {
        var divCollection ;
        divCollection = document.getElementsByTagName("div");
        for (var i=0; i<divcollection.length; i++) {
           el = divCollection[i];
           if(el.getAttribute("class") == "forcer" || el.getAttribute("className") == "forcer") {
				hauteur = parseInt(el.offsetHeight);
				hauteur = (Math.ceil(hauteur/66) * 66) - 2;
				largeur = parseInt(el.offsetWidth);
				largeur = (Math.ceil(largeur/66) * 66) - 2;
				
				el.style.height = hauteur + "px";
				el.style.width = largeur + "px";
            } 
        }
	}
	
	var timeFlash = new Array();
	var timeEtape = new Array();
	var stylesBGC = new Array();
	

	function flashme(couche, debut, fin, etape) {

		if (!(layer = findObj(couche))) return;
		
		if (etape == 0) clearTimeout(timeFlash[couche]);

		
		etapes = 6;
		timeEtape[couche] = etapes;

		debutr = htod(debut.substr(0,2));
		debutv = htod(debut.substr(2,2));
		debutb = htod(debut.substr(4,2));
		finr = htod(fin.substr(0,2));
		finv = htod(fin.substr(2,2));
		finb = htod(fin.substr(4,2));
		
		

		if (!stylesBGC[couche]) couleur = debut;
		else couleur = stylesBGC[couche];

		layer.style.backgroundColor = "#"+couleur;
	
		if (etape < etapes) {
			
			coulr = Math.ceil(((finr-debutr)/etapes)*etape) + Math.ceil(debutr);
			coulv = Math.ceil(((finv-debutv)/etapes)*etape) + Math.ceil(debutv);
			coulb = Math.ceil(((finb-debutb)/etapes)*etape) + Math.ceil(debutb);
			
			etape = etape + 1;

			couleur = dtoh(coulr+"")+ dtoh(coulv+"")+ dtoh(coulb+"");

			
			stylesBGC[couche] = couleur;
			
			timeFlash[couche] = setTimeout("flashme('"+couche+"','"+debut+"','"+fin+"',"+etape+")", 50);
		}
		else {
			layer.style.backgroundColor = "#"+fin;
			timeEtape[couche] = 0;
		}
		
	}
	

function flashb (couche, fin) {
		clearTimeout(timeFlash[couche]);
		
		if (!(layer = findObj(couche))) return;
		
		if (!timeEtape[couche]) etape = 0;
		else etape = timeEtape[couche];
		
		debut = layer.style.backgroundColor;
		
		if (debut.indexOf("#") == 0) {
			debut = debut.substr(1,6);
		} else if (debut.indexOf("rgb") == 0) {
			debut = debut.substr(4,20);
			
			r = debut.substr(0, debut.indexOf(","));
			virgule = debut.indexOf(",") + 1;
			debut = debut.substr(virgule, 20);
			
			g = debut.substr(0, debut.indexOf(","));
			virgule = debut.indexOf(",") + 1;
			debut = debut.substr(virgule, 20);

			parenthese = debut.indexOf(")");
			b = debut.substr(0, parenthese);
			
			
			debut = dtoh(b);
			debut = dtoh(g) + debut;
			debut = dtoh(r) + debut;
		}
					
		
		flashme(couche,debut,fin,etape);
		
		
}
	
function inhex(x) {
        if (x == '0') return 0
        else if (x == '1') return 1
        else if (x == '2') return 2
        else if (x == '3') return 3
        else if (x == '4') return 4
        else if (x == '5') return 5
        else if (x == '6') return 6
        else if (x == '7') return 7
        else if (x == '8') return 8
        else if (x == '9') return 9
        else if ((x == 'a') || (x == 'A')) return 10
        else if ((x == 'b') || (x == 'B')) return 11
        else if ((x == 'c') || (x == 'C')) return 12
        else if ((x == 'd') || (x == 'D')) return 13
        else if ((x == 'e') || (x == 'E')) return 14
        else if ((x == 'f') || (x == 'F')) return 15
        else {
        	return 0
        }
}

function indec(x) {
        if (x == '0') return 0
        else if (x == '1') return 1
        else if (x == '2') return 2
        else if (x == '3') return 3
        else if (x == '4') return 4
        else if (x == '5') return 5
        else if (x == '6') return 6
        else if (x == '7') return 7
        else if (x == '8') return 8
        else if (x == '9') return 9
        else {
	        return 0
        }
}

function hexout(x) {
        if (x % 16 == 0) return "0"
        else if (x % 16 == 1) return "1"
        else if (x % 16 == 2) return "2"
        else if (x % 16 == 3) return "3"
        else if (x % 16 == 4) return "4"
        else if (x % 16 == 5) return "5"
        else if (x % 16 == 6) return "6"
        else if (x % 16 == 7) return "7"
        else if (x % 16 == 8) return "8"
        else if (x % 16 == 9) return "9"
        else if (x % 16 == 10) return "A"
        else if (x % 16 == 11) return "B"
        else if (x % 16 == 12) return "C"
        else if (x % 16 == 13) return "D"
        else if (x % 16 == 14) return "E"
        else if (x % 16 == 15) return "F"
}



function decout(x) {
        if (x % 10 == 0) return "0"
        else if (x % 10 == 1) return "1"
        else if (x % 10 == 2) return "2"
        else if (x % 10 == 3) return "3"
        else if (x % 10 == 4) return "4"
        else if (x % 10 == 5) return "5"
        else if (x % 10 == 6) return "6"
        else if (x % 10 == 7) return "7"
        else if (x % 10 == 8) return "8"
        else if (x % 10 == 9) return "9"
}

function htod(a) {
        b = 0
        if (a.charAt(0) == '-') {
                a = a.substring(1,a.length)
                c = "-"
        } else c = ""
        while (a.length > 0) {
                if (a.charAt(0) != ",") b = (b * 16) + inhex(a.charAt(0))
                a = a.substring(1,a.length)
        }

        while (b > 0) {
                a = decout(b) + a
                b = (b - (b % 10)) / 10
        }
        return c + a.toUpperCase()
}

function dtoh(a) {
        b = 0
        if (a.charAt(0) == '-') {
                a = a.substring(1,a.length)
                c = "-"
        } else c = ""
        

        while (a.length > 0) {
                if (a.charAt(0) != ",") b = (b * 10) + indec(a.charAt(0))
                a = a.substring(1,a.length)
        }

        while (b > 0) {
                a = hexout(b) + a
                b = (b - (b % 16)) / 16
        }
        
        if (a.length == 0) a = "00";
        if (a.length == 1) a = "0"+a;
        
        return c + a.toUpperCase()
}
	var timedroite2;	
	var timegauche2;	

	function decal_droite2(vitesse) {
		clearTimeout(timegauche2);	
		findObj("agauche2").style.display = "block";
	
		layer = findObj("slide2");
		
		gauche = parseInt(layer.style.left);
		gauche = gauche - vitesse;
		
		//largeur = parseInt(layer.offsetWidth);
		largeur = parseInt(findObj_forcer("largeurslide2").value);
		layerparent = findObj("lesimages");
		largeurtot = layerparent.offsetWidth;
	
		if (largeurtot - gauche < largeur) {
			layer.style.left = gauche + "px";
		
		
			timedroite2 = setTimeout("decal_droite2("+vitesse+")", 40);
		} else {
			layer.style.left = (largeurtot - largeur) + "px";			
			findObj("adroite2").style.display = "none";
		}
	}
	
	function decal_gauche2(vitesse) {
		clearTimeout(timedroite2);
		findObj("adroite2").style.display = "block";
		layer = findObj("slide2");
		
		gauche = parseInt(layer.style.left);
		gauche = gauche + vitesse;
		
//		largeur = parseInt(layer.offsetWidth);
		largeur = parseInt(findObj_forcer("largeurslide2").value);
	
		if (gauche < 0) {
			layer.style.left = gauche + "px";
		
		
			timegauche2 = setTimeout("decal_gauche2("+vitesse+")", 40);
		} else {
			layer.style.left = 0 + "px";			
			findObj("agauche2").style.display = "none";
		}
	}

	function testslide2() {
		findObj_forcer("adroite2").style.display = "none";
		findObj_forcer("agauche2").style.display = "none";

		layer = findObj_forcer("slide2");
		//largeur = parseInt(layer.offsetWidth);
		largeur = parseInt(findObj_forcer("largeurslide2").value);
		
		layerparent = findObj_forcer("lesimages");
		largeurtot = layerparent.offsetWidth;

		if (largeur > largeurtot) findObj("adroite2").style.display = "block";
	
	}
// pour MOzilla >= 1.7
function verifForm() {
	retrait = 16;
	var obj=document.getElementsByTagName("input");
	for(i=0;i<obj.length;i++) {
		if(obj[i].classname=="forml" || obj[i].classname=="formo") {
			element = obj[i];
			if (element.offsetWidth) {
				obj[i]["nouvelle-largeur"] = (element.offsetWidth - retrait) + "px";
			} else {
				obj[i]["nouvelle-largeur"] = "95%";
			}
		}
	}
	
	var objx=document.getElementsByTagName("textarea");
	for(i=0;i<objx.length;i++) {
		if(objx[i].className=="forml" || objx[i].className=="formo") {
			element = objx[i];
			if (element.offsetWidth) {
				objx[i]["nouvelle-largeur"] = (element.offsetWidth - retrait) + "px";
			} else {
				objx[i]["nouvelle-largeur"] = "95%";
			}
		}
	}
	
	// Appliquer les modifs apres les calculs, sinon des decalages peuvent apparaitre
	for(i=0;i<obj.length;i++) {
		if (obj[i]["nouvelle-largeur"]) obj[i].style.width = obj[i]["nouvelle-largeur"];
	}

	for(i=0;i<objx.length;i++) {
		if (objx[i]["nouvelle-largeur"]) objx[i].style.width = objx[i]["nouvelle-largeur"];
	}
}

//
// Cette fonction charge du contenu - dynamiquement - dans un 


var url_chargee = new Array();
var xmlhttp = new Array();
var image_search = new Array();

// Ajax
function createXmlHttp() {
	if(window.XMLHttpRequest)
		return new XMLHttpRequest(); 
	else if(window.ActiveXObject)
		return new ActiveXObject("Microsoft.XMLHTTP");
}

function charger_id_url(myUrl, myField, jjscript) 
{
	var Field = findObj_forcer(myField); // selects the given element
	if (!Field) return;
		
	if (xmlhttp[myField]) xmlhttp[myField].abort();
	
	if (url_chargee['mem_'+myUrl]) {
		Field.innerHTML = url_chargee['mem_'+myUrl];
		Field.style.visibility = "visible";
		Field.style.display = "block";
		if(jjscript) eval(jjscript);
	} else {
		image_search[myField] = findObj_forcer('img_'+myField);
		if (image_search[myField]) image_search[myField].style.visibility = "visible";

		if (!(xmlhttp[myField] = createXmlHttp())) return false;
		xmlhttp[myField].open("GET", myUrl, true);

		// traiter la reponse du serveur
		xmlhttp[myField].onreadystatechange = function() {
			if (xmlhttp[myField].readyState == 4) { 
				// si elle est non vide, l'afficher
				if (xmlhttp[myField].responseText != '') {
					Field.innerHTML = xmlhttp[myField].responseText;
					url_chargee['mem_'+myUrl] = Field.innerHTML;
				} else {
					charger_id_url (myURL, myField, jjscript);
				}
				Field.style.visibility = "visible";
				Field.style.display = "block";
				if (image_search[myField]) {
					image_search[myField].style.visibility = "hidden";
				}
				if(jjscript) eval(jjscript);
			}
		}
		xmlhttp[myField].send(null); 
	}
}


function charger_id_url_si_vide (myUrl, myField, jjscript) {
	var Field = findObj_forcer(myField); // selects the given element
	if (!Field) return;

	if (Field.innerHTML == "") {
		charger_id_url(myUrl, myField, jjscript) 
	}
	else {
		Field.style.visibility = "visible";
		Field.style.display = "block";
	}
}

function charger_document (id_article, id_document) {
//	slide_style("le_document", "opacity", 0, -20, 0);
//	time["charger_document"] = setTimeout("charger_id_url('?page=article-normal-texte&id_document="+id_document+"&id_article="+id_article+"','pavetexte',)",1000);
	charger_id_url("?page=article-normal-texte&id_document="+id_document+"&id_article="+id_article,"pavetexte","testslide2()");
	

}

imgs = new Array();
rotation_act = 0;
rotation_tot = 0;

function image_tourne() {
	imgs = document.getElementById("rotation").getElementsByTagName("img");
	rotation_tot = imgs.length;
	for(i=1; i<rotation_tot; i++) {
		slide_style("rotation"+i, "opacity", "0", -100, 0 );
	}
	setTimeout(image_tourne_val,1000);	
}

function image_tourne_val () {
	rotation_suiv = rotation_act + 1;
	if (rotation_suiv >= rotation_tot) rotation_suiv = 0;
	
	slide_style("rotation"+rotation_suiv, "opacity", "100", 10, 0 );
	slide_style("rotation"+rotation_act, "opacity", "0", -100, 100 );
	
	rotation_act = rotation_suiv;
	setTimeout(image_tourne_val,2000);	
}
