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 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"];
	}
}
