	/* Ajoute un event */
	function addEvent( obj, type, fn ) {
		if (obj.addEventListener)
			obj.addEventListener( type, fn, false );
		else if (obj.attachEvent) {
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
			obj.attachEvent( "on"+type, obj[type+fn] );
		}
	}

	/* recuper un style CSS */
	function getStyle(el,styleProp) {
		var x = (typeof(el)=="string") ? document.getElementById(el) : el;
		if (x.currentStyle)
			var y = x.currentStyle[styleProp];
		else if (window.getComputedStyle)
			var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
		return y;
	}
		
	/* Ajoute la fonction forEach s'il elle n'existe pas */
	if (!Array.prototype.forEach)
	{
	  Array.prototype.forEach = function(fun /*, thisp*/)
	  {
	    var len = this.length;
	    if (typeof fun != "function")
	      throw new TypeError(); 

	    var thisp = arguments[1];
	    for (var i = 0; i < len; i++)
	    {
	      if (i in this)
	        fun.call(thisp, this[i], i, this);
	    }
	  };
	}
	
	if (!Array.prototype.unset) {
		Array.prototype.unset=function (valueOrIndex){
			var output=[];
			if (typeof(valueOrIndex)=="number") {
				for (var i=0; i<this.length; i++) {
					if (i!=valueOrIndex)
						output.push(this[i]);
				}
			} else {
				for(var i in this){
					if (i!=valueOrIndex)
						output[i]=this[i];
				}
			}
			return output;
		}
	}


	function getCartouches(obj) {
		var parent = obj.parentNode;
		var cartouches = [];
		for(var i=0,len = parent.childNodes.length; i<len; ++i) {
			var child = parent.childNodes[i];
			if(child.className && child.className.match(/\btype_mea_search\b/)) {
				cartouches.push(child);
			}
		}
		return cartouches;
	}
	function closeExcept(cartouches, except) {
		var img_index = 0;
		var div_index = 1;
		for(var i=0,len=cartouches.length; i<len; ++i) {
			var cartouche = cartouches[i];
			if(cartouche != except) {
				var points_forts = filter(function (node) {return node.className.match(/\bpoints_forts\b/);},cartouche.getElementsByTagName('*'));
				if (points_forts.length){
					points_forts[img_index].style.display = "";
					points_forts[div_index].style.display = "";
				}
			}
		}
	}

	function moreinfos(obj,classToCheck){
		if(!obj) return;
		while(obj.className.indexOf("type_mea_search")==-1) obj=obj.parentNode;
		//fixPage
		var div = obj.getElementsByTagName("div");
		for(var i=0; i<div.length; i++){ if (div[i].className.indexOf("mea_b_l")!=-1) window.fixblmea = div[i]; }
		if (window.fixblmea && !document.all) window.fixblmea.style.display = "none";
		if (document.all && window.print && !window.opera) {
			var div = document.getElementsByTagName("div");
			for(var i=0; i<div.length; i++){
				if (div[i].className.indexOf("visu")!=-1) {
					div[i].setAttribute("oldposition",getStyle(div[i],"position"));
					div[i].style.position = "static";
				}
			}
		}
		//end fix

		var elt=obj.getElementsByTagName("*");
		for(var i=0; i<elt.length; i++){
			if(elt[i].className.indexOf(classToCheck)!=-1) {
				elt[i].style.display = (elt[i].style.display!="block") ? "block" : "";
			}
		}

		var cartouches = getCartouches(obj);
		closeExcept(cartouches, obj);

		if (window.fixblmea && !document.all)  setTimeout("window.fixblmea.style.display = 'block'",10);
		if (document.all && window.print && !window.opera) {
			var div = document.getElementsByTagName("div");
			for(var i=0; i<div.length; i++){
				if (div[i].className.indexOf("visu")!=-1) {
					div[i].style.position = div[i].getAttribute("oldposition");
				}
			}
		}
		obj.blur();
		fixColumns();
	}
	function tryClosing(obj, classToClose) {
		if(!obj || !classToClose) return;

		var ancestor = obj;
		while(!ancestor.className.match(/\btype_mea_search\b/)) {
			ancestor = ancestor.parentNode;
		}
		var stuffToPoof = filter(function (node) {return node.className.match(new RegExp('\\b'+classToClose+'\\b'));},ancestor.getElementsByTagName('*'));
		map(function (node) {node.style.display = 'none';	return null;}, stuffToPoof);
		fixColumns();
	}
	function tryOpening(obj, classToOpen) {
		if(!obj || !classToOpen) return;

		var ancestor = obj;
		while(!ancestor.className.match(/\btype_mea_search\b/)) {
			ancestor = ancestor.parentNode;
		}
		var stuffToPoof = filter(function (node) {return node.className.match(new RegExp('\\b'+classToOpen+'\\b'));},ancestor.getElementsByTagName('*'));
		map(function (node) {node.style.display = 'block';return null;}, stuffToPoof);
		fixColumns();
	}



	function collapse(obj) {
		if (!obj) return;
		var img = obj.getElementsByTagName("img")[0];
		while (obj.className.indexOf("list_detail_search")==-1){
			 obj = obj.parentNode;
		}
		
		var tr = obj.getElementsByTagName("tr")[1];
			
		if ((tr.style.display=="none") && (valAct != -1 ) ){
						tr.style.display = "";		
				img.src =	img.src.replace("_on","_off");	
		} else if ((tr.style.display=="none") && (initialisationRMC) ){
						tr.style.display = "";		
				img.src =	img.src.replace("_on","_off");
		} else {
					tr.style.display ="none";
			img.src = img.src.replace("_off","_on");
		}
		
		if(tr.className.match(/\bdisplayNn\b/)){
			tr.className = tr.className.replace(/displayNn/g,'')
			return;
		} else {
			return;
		}
		img.src = (tr.className.match(/\bdisplayNn\b/)) ? img.src.replace("_on","_off") : img.src.replace("_off","_on");
		obj.blur();
	}
	
	
	
	function gotoParent(obj,parentNodeName){
		var parent = obj.parentNode;
		while(parent.nodeName!=parentNodeName.toUpperCase()){
			parent = parent.parentNode;
			if (parent=="BODY") return null;
		}
		return parent;
	}
	
	
	
