/* Mettre dans le onload : make_menu('nav'); window.onresize = function() { make_menu('nav'); } */

fDomOffset = function( oObj, sProp )
{
	var iVal = 0;
	while (oObj && oObj.tagName != 'BODY') {
		eval('iVal += oObj.' + sProp + ';');
		oObj = oObj.offsetParent;
	}
	return iVal;
} 

findLastPos = function( oObj ) { // Hack
	//alert(window.location);
	//if(oObj.style && oObj.style.position != "") {
	if( window.location != "http://www.yvelines.fr/" && 
		window.location != "http://www.yvelines.fr/?css=a" && 
		window.location != "http://www.yvelines.fr/?nocss=a"
	) {
		return fDomOffset(oObj.offsetParent,'offsetTop');
	}
	//if(oObj.parentNode) return findLastPos(oObj.parentNode);
	return 0;
}


function menu_onload() {
	make_menu( "nav" );
	window.onresize = function() { make_menu('nav'); }
}

function correction_flash_ie() {
	//if(location=='http://www.yvelines.fr/') return;
	var objects = document.getElementsByTagName("object");
	for (var i = 0; i < objects.length; i++)
		if(!objects[i].getAttribute('noBugIe'))
			objects[i].outerHTML = objects[i].outerHTML;	
}

if(window.attachEvent) {
	window.attachEvent("onload",menu_onload); //IE
	window.attachEvent("onload",correction_flash_ie);

} else {
	window.addEventListener("load", menu_onload, false);
}

function make_menu( id ) {
	if(id=="nav")
		if(document.getElementById("nav2"))
			 make_menu( "nav2" )
	var nav = document.getElementById(id);
	nav.setAttribute('nb_open',0);
	nav.style.padding = "0px";
	nav.style.margin = "0px";
	//nav.style.position = "absolute";
	
	var offl=0; var offy=0;
	//alert(navigator.appName);
	if(navigator.appName == "Microsoft Internet Explorer") {
		//for(i in navigator)
			//alert(i+" : "+navigator[i]);
		//offy=160;
		var p = nav.parentNode; offl=0;
		while(p.parentNode) {
			if(p.offsetLeft) offl+=p.offsetLeft;
			p = p.parentNode;
		}
	}
	menu_main( nav, nav.offsetLeft+offl, -findLastPos(nav)+offy );
	
	// onresize;
	window.onresize = function() { make_menu(id); }
}

function menu_main( obj, offX, offY ) {
	//alert(obj.offsetTop);

	for( var i=0; i<obj.childNodes.length; i++) {
		var ul = obj.childNodes[i];
		switch(ul.nodeName) {
		case "UL":
			ul.style.position = "absolute";
			break;
		}
	}

	for( var i=0; i<obj.childNodes.length; i++) {
		var ul = obj.childNodes[i];
		switch(ul.nodeName) {
		case "UL":
			//alert(ul.id);
			if(ul.id == "blocviolet") break;
			//ul.style.top     = (offY+obj.offsetTop)+"px";
			ul.style.top     = (offY+fDomOffset(obj,'offsetTop'))+"px";
			ul.style.left    = (offX+obj.offsetWidth)+"px";
			ul.style.position = "absolute";
			ul.style.listStyleType = "none";
			ul.style.padding = "0px";
			ul.style.margin = "0px";
			menu_main( ul, 0, 0 );
			break;
		case "LI":
			ul.style.visibility = "visible";
			try {
				ul.addEventListener("mouseover", menu_mouseover, false);
				ul.addEventListener("mouseout", menu_mouseout, false);
			} catch(e) {
				ul.attachEvent("onmouseover", menu_mouseover); //IE
				ul.attachEvent("onmouseout", menu_mouseout);  //IE
			}
			menu_main( ul, offX, offY )
			break;
		case "A":
			try {
				ul.addEventListener("mouseover", menu_mouseover, false);
				ul.addEventListener("mouseout", menu_mouseout, false);
			} catch(e) {
				ul.attachEvent("onmouseover", menu_mouseover); //IE
				ul.attachEvent("onmouseout", menu_mouseout);  //IE
			}
			break;
		}
			
	}
	
	for( var i=0; i<obj.childNodes.length; i++) {
		var ul = obj.childNodes[i];
		switch(ul.nodeName) {
		case "UL":
			if(ul.id == "blocviolet") break;
			ul.style.display = 'none';
		}
	}
}

function menu_mouseover(a){
	//alert('blaa');
	if(a.target) var elm=a.target;
	else var elm = a.srcElement; //IE
	
	if(elm.nodeName=="A") elm = elm.parentNode;
	
	
	var p = elm;
	while(p.getAttribute('nb_open')==null) p = p.parentNode;
	p.setAttribute('nb_open',"true");

	if(elm.style.display == 'inline') return;

	menu_clean(elm.parentNode);

	for(var i=0; i<elm.childNodes.length; i++) {
		if(elm.childNodes[i].nodeName=="UL") {
			elm.childNodes[i].style.display = 'inline';
		}
	}

	//Hack IE bug select
	if(navigator.appName == "Microsoft Internet Explorer") {
		var elms = document.getElementsByTagName('select');
		var tmp = "";
		//alert(navigator.appName);
		for(var i=0; i<elms.length; i++) {
			tmp+=elms[i].nodeName+"\n";
			elms[i].style.visibility = "hidden";
		}
	}
}

function menu_clean(eml) {

	var p = eml;
	while(p.getAttribute('nb_open')==null) p = p.parentNode;

	for(var i=0; i<eml.childNodes.length; i++) {
		if(eml.childNodes[i].nodeName=='UL') {
			if(eml.childNodes[i].style.display == 'inline') {
				menu_clean(eml.childNodes[i]);
				eml.childNodes[i].style.display = 'none';
			}
		}
		if(eml.childNodes[i].nodeName=='LI') 
				menu_clean(eml.childNodes[i]);
	}

	//Hack IE bug select
	if(navigator.appName == "Microsoft Internet Explorer") {
		var elms = document.getElementsByTagName('select');
		var tmp = "";
		//alert(navigator.appName);
		for(var i=0; i<elms.length; i++) {
			tmp+=elms[i].nodeName+"\n";
			elms[i].style.visibility = "visible";
		}
	}

}

function menu_mouseout(a){
	if(a.target) var elm=a.target;
	else var elm = a.srcElement; //IE

	if(elm.nodeName=="A") elm = elm.parentNode;

	var p = elm;
	while(p.getAttribute('nb_open')==null) p = p.parentNode;
	p.setAttribute('nb_open',"false");

	clearTimeout(p.getAttribute('timeoutid'));
	p.setAttribute('timeoutid',setTimeout("menu_timeout('"+p.getAttribute('id')+"');",1000));

}

function menu_timeout(a) {
	var nav = document.getElementById(a);	
	if(nav.getAttribute('nb_open')=="false") {
		menu_clean(nav);
	}
}

/* Exemples d'utilisations
 * textPlusMoins("id-monText", "id-btPlus", "id-btMoins");
 * textPlusMoins(Array("id-monText2","id-monText3"), "id-btPlus2", "id-btMoins2");
 * textPlusMoins("id-monText", "id-btPlus", "id-btMoins", 9.5, 7, 12, 0.5, 'px');
 */

function textPlusMoins(idBloc, idPlus, idMoins, size, sizeMin, sizeMax, pas, nature) {
	if(sizeMin == undefined) var _min = 50;   else var _min  = sizeMin;
	if(sizeMax == undefined) var _max = 200;  else var _max  = sizeMax;
	if(pas == undefined)     var _pas = 10;   else var _pas  = pas;
	if(nature == undefined)  var _nat  = "%"; else var _nat  = nature;
	if(size == undefined)    var _size = 100; else var _size = size;
	
	function textSetSize(size) {
		if(typeof idBloc == "object") {
			for(var i=0; i<idBloc.length; i++) {
				document.getElementById(idBloc[i]).style.fontSize = size;
			}
		} else {
			document.getElementById(idBloc).style.fontSize = size;
		}
	}
	
	textSetSize(_size+_nat);
	if(document.getElementById(idPlus).addEventListener) {
		document.getElementById(idPlus).addEventListener("click", function(ev) {
			_size+=_pas;
			if(_size > _max) _size = _max;
			textSetSize(_size+_nat);
		}, false);
		
		document.getElementById(idMoins).addEventListener("click", function(ev) {
			_size-=_pas;
			if(_size < _min) _size = _min;
			textSetSize(_size+_nat);
		}, false);
	} else { // IE de M...
		document.getElementById(idPlus).attachEvent("onclick", function(ev) {
			_size+=_pas;
			if(_size > _max) _size = _max;
			textSetSize(_size+_nat);
		});
		document.getElementById(idMoins).attachEvent("onclick", function(ev) {
			_size-=_pas;
			if(_size < _min) _size = _min;
			textSetSize(_size+_nat);
		});		
	}
}

