// MODIFICATIONS OBJETS JAVASCRIPT
	Array.prototype.in_array = function (valeur) {
		for (var i in this) { if (this[i] == valeur) return i; }
		return -1;
	}
	Array.prototype.insert = function (i, value) {
		if ( i >= 0 ) {
			var a = this.slice(),b=a.splice(i);
			a[i] = value;
			return a.concat(b);
		}
	}
// MODIFICATIONS OBJETS JAVASCRIPT //

// URLs
	function urlencode(str) {
		str = escape(str);
		str = str.replace('+', '%2B');
		str = str.replace('%20', '+');
		str = str.replace('*', '%2A');
		str = str.replace('/', '%2F');
		str = str.replace('@', '%40');
		return str;
	}

	function urldecode(str) {
		str = str.replace('+', ' ');
		str = unescape(str);
		return str;
	}
// URLs //
	
// CHAINES
	function preg_replace (array_pattern, array_pattern_replace, my_string) {
		var new_string = String (my_string);
		for ( i = 0; i < array_pattern.length; i++ ) {
			var reg_exp = RegExp(array_pattern[i], "gi");
			var val_to_replace = array_pattern_replace[i];
			new_string = new_string.replace (reg_exp, val_to_replace);
		}
		return new_string;
	}
	
	function sup_french_char(my_string) {
		var new_string = "";
		var pattern_accent			= new Array("é", "è", "ê", "ë", "ç", "à", "â", "ä", "î", "ï", "ù", "ô", "ó", "ö");
		var pattern_replace_accent	= new Array("e", "e", "e", "e", "c", "a", "a", "a", "i", "i", "u", "o", "o", "o");
		if ( my_string && my_string != "" ) {
			new_string = preg_replace (pattern_accent, pattern_replace_accent, my_string);
		}
		return new_string;
	}
// CHAINES //

// PRELOAD IMAGE
	function preload_img() {
		var args = preload_img.arguments; 
		imgs = new Array();
		for(x=0; x < args.length; x++) {
			imgs[x] = new Image();
			imgs[x].src = args[x];
		}
	}
// PRELOAD IMAGE //

// AJAX
	function AjaxTxtRequest(fichier) {
		if(window.XMLHttpRequest) // FIREFOX
			var xhr_object = new XMLHttpRequest(); 
		else if(window.ActiveXObject) // IE
			var xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
		else return(false);
		xhr_object.open("GET", fichier, false);
		xhr_object.send(null);
		if(xhr_object.readyState == 4) return(xhr_object.responseText);
		else return(false);
	}

	function AjaxXMLRequest(fichier) {
		if(window.XMLHttpRequest) // FIREFOX
			var xhr_object = new XMLHttpRequest(); 
		else if(window.ActiveXObject) // IE
			var xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
		else return(false);
		xhr_object.open("GET", fichier, false);
		xhr_object.send(null);
		if(xhr_object.readyState == 4) return(xhr_object.responseXML);
		else return(false);
	}

	function AjaxAsyncRequest(fichier, debug) {
		if(window.XMLHttpRequest) // FIREFOX
			var xhr_object = new XMLHttpRequest(); 
		else if(window.ActiveXObject) // IE
			var xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
		else return(false);
		xhr_object.open("GET", fichier, true);
		xhr_object.send(null);
		xhr_object.onreadystatechange = function() { 
			if (xhr_object.readyState == 4) {
				if (debug) alert(xhr_object.responseText); 
				eval(xhr_object.responseText); 
			}
		} 
	}
// AJAX //

// XML, AJAX
	function checkAjaxError(res_xml) {
		//on recupere les erreurs eventuels
		var erreur = getFirstNodeValue(res_xml, "erreur");
		if (erreur.length) {
			alert(erreur);
			return true;
		}
		return false;
	}


	function getFirstNode(xml, nom) {
		res = getNodes(xml, nom);
		if (res) return res[0];
		return false;
	}

	function getNodes(xml, nom) {
		try {
			var nodes = xml.getElementsByTagName(nom);
			if (nodes.length) return nodes;
		} catch (e) {}
		return false;
	}

	function getFirstNodeValue(xml, nom) {
		return getNodeValue(xml, nom, 0);
	}
	function getNodeValue(xml, nom, num) {
		try {
			var info = getNodes(xml, nom);
			if (info.length) {
				return info[num].firstChild.nodeValue;
			}
		} catch (e) {}
		return "";
	}

	function getFirstNodeAttibuteValue(xml, nomnode, nomattribut) {
		return getNodeAttibuteValue(xml, nomnode, 0, nomattribut);
	}

	function getNodeAttibuteValue(xml, nomnode, num, nomattribut) {
		try {
			var info = getNodes(xml, nomnode);
			if (info.length) {
				return info[num].getAttribute(nomattribut);
			}
		} catch (e) {}
		return "";
	}
// XML, AJAX //

// BOUTONS
	function petitBoutonBleu_onMouseOut(baseId) {
		var obj_puce	= document.getElementById(baseId + '_puce');
		var obj_lien	= document.getElementById(baseId + '_lien');
		var obj_photo	= document.getElementById(baseId + '_photo');
		
		obj_puce.src		= 'images/puces/puce-bleue-petite-out.gif';
		obj_lien.className	= 'listann_plusinfos';
		if ( obj_photo != undefined ) {
			obj_photo.style.border = '1px solid #CACACA';
		}
	}

	function petitBoutonBleu_onMouseOver(baseId) {
		var obj_puce	= document.getElementById(baseId + '_puce');
		var obj_lien	= document.getElementById(baseId + '_lien');
		var obj_photo	= document.getElementById(baseId + '_photo');
		
		obj_puce.src		= 'images/puces/puce-bleue-petite-over.gif';
		obj_lien.className	= 'listann_plusinfos_over';
		if ( obj_photo != undefined ) {
			obj_photo.style.border = '1px solid #FCC341';
		}
	}

	function grosBoutonBleu_onMouseOut(baseId) {
		var obj_puce	= document.getElementById(baseId + '_puce');
		var obj_lien	= document.getElementById(baseId + '_lien');
		var obj_photo	= document.getElementById(baseId + '_photo');
		var obj_logo	= document.getElementById(baseId + '_logo');
		
		obj_puce.src		= 'images/puces/puce-bleue-out.gif';
		obj_lien.className	= 'derann_plusInfos';
		if ( obj_photo != undefined ) {
			obj_photo.style.border = '1px solid #001F7E';
		}
		if ( obj_logo != undefined ) {
			obj_logo.style.border = '1px solid #E0DDD8';
		}
	}

	function grosBoutonBleu_onMouseOver(baseId) {
		var obj_puce	= document.getElementById(baseId + '_puce');
		var obj_lien	= document.getElementById(baseId + '_lien');
		var obj_photo	= document.getElementById(baseId + '_photo');
		var obj_logo	= document.getElementById(baseId + '_logo');
		
		obj_puce.src		= 'images/puces/puce-bleue-over.gif';
		obj_lien.className	= 'derann_plusInfos_over';
		if ( obj_photo != undefined ) {
			obj_photo.style.border = '1px solid #FCC341';
		}
		if ( obj_logo != undefined ) {
			obj_logo.style.border = '1px solid #FCC341';
		}
	}

	function boutonDerAnn_onMouseOut(baseId, namePart) {
		var obj_puce	= document.getElementById(baseId + '_puce');
		var obj_lien	= document.getElementById(baseId + '_lien');
		var obj_photo	= document.getElementById(baseId + '_photo');
		var obj_logo	= document.getElementById(baseId + '_logo');
		
		obj_puce.src		= 'images/home/puce-' + namePart + '-out.gif';
		obj_lien.className	= 'derann_plusInfos';
		if ( obj_photo != undefined ) {
			obj_photo.style.border = '1px solid #E0DFDB';
		}
		if ( obj_logo != undefined ) {
			obj_logo.style.border = '1px solid #E0DDD8';
		}
	}

	function boutonDerAnn_onMouseOver(baseId, namePart) {
		var obj_puce	= document.getElementById(baseId + '_puce');
		var obj_lien	= document.getElementById(baseId + '_lien');
		var obj_photo	= document.getElementById(baseId + '_photo');
		var obj_logo	= document.getElementById(baseId + '_logo');
		
		obj_puce.src		= 'images/home/puce-' + namePart + '-over.gif';
		obj_lien.className	= 'derann_plusInfos_over';
		if ( obj_photo != undefined ) {
			obj_photo.style.border = '1px solid #FCC341';
		}
		if ( obj_logo != undefined ) {
			obj_logo.style.border = '1px solid #FCC341';
		}
	}
	
	function petitBoutonGris_onMouseOut(baseId) {
		var obj_puce	= document.getElementById(baseId + '_puce');
		var obj_lien	= document.getElementById(baseId + '_lien');
		var obj_logo	= document.getElementById(baseId + '_logo');
		
		obj_puce.src		= 'images/detail-fiche/puce-site-web-out.gif';
		obj_lien.className	= 'detailann_contact_site';
		if ( obj_logo != undefined ) {
			obj_logo.style.border = '1px solid #C6C6C6';
		}
	}

	function petitBoutonGris_onMouseOver(baseId) {
		var obj_puce	= document.getElementById(baseId + '_puce');
		var obj_lien	= document.getElementById(baseId + '_lien');
		var obj_logo	= document.getElementById(baseId + '_logo');
		
		obj_puce.src		= 'images/detail-fiche/puce-site-web-over.gif';
		obj_lien.className	= 'detailann_contact_site_over';
		if ( obj_logo != undefined ) {
			obj_logo.style.border = '1px solid #FCC341';
		}
	}

	function petitBoutonGris_onMouseDown(baseId) {
		var obj_puce	= document.getElementById(baseId + '_puce');
		var obj_lien	= document.getElementById(baseId + '_lien');
		var obj_logo	= document.getElementById(baseId + '_logo');
		
		obj_puce.src		= 'images/detail-fiche/puce-site-web-down.gif';
		obj_lien.className	= 'detailann_contact_site_over';
		if ( obj_logo != undefined ) {
			obj_logo.style.border = '1px solid #FCC341';
		}
	}
// BOUTONS //

// BOUTONS FORMULAIRES
	function listann_btn_onMouseOver(id) {
//alert('listann_btn_onMouseOver commun !!!');
		var obj_img_g		= document.getElementById('img_btn_g_' + id);
		var obj_img_m		= document.getElementById('img_btn_m_' + id);
		var obj_img_d		= document.getElementById('img_btn_d_' + id);
		var obj_puce		= document.getElementById('img_btn_puce_' + id);
		var obj_class		= document.getElementById('class_btn_' + id);
		
		obj_img_g.src				= "images/listing/btn-rechercher-g-over.gif";
		obj_img_m.style.background	= "url('images/listing/btn-rechercher-m-over.gif') repeat-x";
		obj_img_d.src				= "images/listing/btn-rechercher-d-over.gif";
		
		if ( obj_puce != undefined ) obj_puce.src = 'images/listing/btn-reinitialiser-over.gif';
		
		obj_class.className	= "btn_selected";
	}
	
	function listann_btn_onMouseOut(id, btn_class, img_g, img_m, img_d) {
		if ( btn_class == undefined )	btn_class = 'btn_unselected';
		if ( img_g == undefined )		img_g = "images/listing/btn-rechercher-g-off.gif";
		if ( img_m == undefined )		img_m = "images/listing/btn-rechercher-m-off.gif";
		if ( img_d == undefined )		img_d = "images/listing/btn-rechercher-d-off.gif";
		
		var obj_img_g		= document.getElementById('img_btn_g_' + id);
		var obj_img_m		= document.getElementById('img_btn_m_' + id);
		var obj_img_d		= document.getElementById('img_btn_d_' + id);
		var obj_puce		= document.getElementById('img_btn_puce_' + id);
		var obj_class		= document.getElementById('class_btn_' + id);
		
		obj_img_g.src				= img_g;
		obj_img_m.style.background	= "url('" + img_m + "') repeat-x";
		obj_img_d.src				= img_d;
		
		if ( obj_puce != undefined ) obj_puce.src = 'images/listing/btn-reinitialiser-off.gif';
		
		obj_class.className	= btn_class;
	}
	
	function listann_btn_onMouseDown(id) {
		var obj_img_g		= document.getElementById('img_btn_g_' + id);
		var obj_img_m		= document.getElementById('img_btn_m_' + id);
		var obj_img_d		= document.getElementById('img_btn_d_' + id);
		var obj_puce		= document.getElementById('img_btn_puce_' + id);
		var obj_class		= document.getElementById('class_btn_' + id);
		
		obj_img_g.src				= "images/listing/btn-rechercher-g-down.gif";
		obj_img_m.style.background	= "url('images/listing/btn-rechercher-m-down.gif') repeat-x";
		obj_img_d.src				= "images/listing/btn-rechercher-d-down.gif";
		
		if ( obj_puce != undefined ) obj_puce.src = 'images/listing/btn-reinitialiser-down.gif';
		
		obj_class.className	= "btn_selected";
	}
	
	
	
	
	function btn_form_onMouseOver(id) {
//alert('listann_btn_onMouseOver commun !!!');
		var obj_btn			= document.getElementById('btn_' + id);
		var obj_img_g		= document.getElementById('btn_img_g_' + id);
		var obj_img_m		= document.getElementById('btn_img_m_' + id);
		var obj_img_d		= document.getElementById('btn_img_d_' + id);
		var obj_puce		= document.getElementById('btn_img_puce_' + id);
		var obj_class		= document.getElementById('btn_class_' + id);
		
		var ETAT		= obj_btn.getAttribute('ETAT');
		
		if ( ETAT == 1 ) return;
		
		var IMGBASENAME	= obj_btn.getAttribute('IMGBASENAME');
		
		obj_img_g.src				= "images/boutons/forms/" + IMGBASENAME + "-g-over.gif";
		obj_img_m.style.background	= "url('images/boutons/forms/" + IMGBASENAME + "-m-over.gif') repeat-x";
		obj_img_d.src				= "images/boutons/forms/" + IMGBASENAME + "-d-over.gif";
		
		if ( obj_puce != undefined ) obj_puce.src = 'images/boutons/forms/" + IMGBASENAME + "-puce-over.gif';
		
		obj_class.className	= "btn_selected";
	}
	
	function btn_form_onMouseOut(id, btn_class) {
		var obj_btn			= document.getElementById('btn_' + id);
		var obj_img_g		= document.getElementById('btn_img_g_' + id);
		var obj_img_m		= document.getElementById('btn_img_m_' + id);
		var obj_img_d		= document.getElementById('btn_img_d_' + id);
		var obj_puce		= document.getElementById('btn_img_puce_' + id);
		var obj_class		= document.getElementById('btn_class_' + id);
		
		var ETAT		= obj_btn.getAttribute('ETAT');
		var IMGBASENAME	= obj_btn.getAttribute('IMGBASENAME');
		
		if ( ETAT == 1 ) {
			obj_img_g.src				= "images/boutons/forms/" + IMGBASENAME + "-g-over.gif";
			obj_img_m.style.background	= "url('images/boutons/forms/" + IMGBASENAME + "-m-over.gif') repeat-x";
			obj_img_d.src				= "images/boutons/forms/" + IMGBASENAME + "-d-over.gif";
			
			if ( obj_puce != undefined ) obj_puce.src = 'images/boutons/forms/" + IMGBASENAME + "-puce-over.gif';
			
			obj_class.className = 'btn_selected';
		} else {
			obj_img_g.src				= "images/boutons/forms/" + IMGBASENAME + "-g-out.gif";
			obj_img_m.style.background	= "url('images/boutons/forms/" + IMGBASENAME + "-m-out.gif') repeat-x";
			obj_img_d.src				= "images/boutons/forms/" + IMGBASENAME + "-d-out.gif";
			
			if ( obj_puce != undefined ) obj_puce.src = 'images/boutons/forms/" + IMGBASENAME + "-puce-out.gif';
			
			obj_class.className = 'btn_unselected';
		}
	}
	
	function btn_form_onMouseDown(id) {
		var obj_btn			= document.getElementById('btn_' + id);
		var obj_img_g		= document.getElementById('btn_img_g_' + id);
		var obj_img_m		= document.getElementById('btn_img_m_' + id);
		var obj_img_d		= document.getElementById('btn_img_d_' + id);
		var obj_puce		= document.getElementById('btn_img_puce_' + id);
		var obj_class		= document.getElementById('btn_class_' + id);
		
		var IMGBASENAME	= obj_btn.getAttribute('IMGBASENAME');
		
		obj_img_g.src				= "images/boutons/forms/" + IMGBASENAME + "-g-down.gif";
		obj_img_m.style.background	= "url('images/boutons/forms/" + IMGBASENAME + "-m-down.gif') repeat-x";
		obj_img_d.src				= "images/boutons/forms/" + IMGBASENAME + "-d-down.gif";
		
		if ( obj_puce != undefined ) obj_puce.src = 'images/boutons/forms/" + IMGBASENAME + "-down.gif';
		
		obj_class.className	= "btn_selected";
	}
	
	function btn_form_activer(id) {
		var obj_btn			= document.getElementById('btn_' + id);
		var obj_img_g		= document.getElementById('btn_img_g_' + id);
		var obj_img_m		= document.getElementById('btn_img_m_' + id);
		var obj_img_d		= document.getElementById('btn_img_d_' + id);
		var obj_puce		= document.getElementById('btn_img_puce_' + id);
		var obj_class		= document.getElementById('btn_class_' + id);
		
		obj_btn.setAttribute('ETAT', '1');
		var IMGBASENAME	= obj_btn.getAttribute('IMGBASENAME');
		
		try {
			obj_img_g.src				= "images/boutons/forms/" + IMGBASENAME + "-g-over.gif";
			obj_img_m.style.background	= "url('images/boutons/forms/" + IMGBASENAME + "-m-over.gif') repeat-x";
			obj_img_d.src				= "images/boutons/forms/" + IMGBASENAME + "-d-over.gif";
		} catch(err) {};
		
		if ( obj_puce != undefined ) obj_puce.src = 'images/boutons/forms/" + IMGBASENAME + "-over.gif';
		
		try {
			obj_class.className	= "btn_selected";
		} catch(err) {};
	}
	
	function btn_form_desactiver(id) {
		var obj_btn			= document.getElementById('btn_' + id);
		var obj_img_g		= document.getElementById('btn_img_g_' + id);
		var obj_img_m		= document.getElementById('btn_img_m_' + id);
		var obj_img_d		= document.getElementById('btn_img_d_' + id);
		var obj_puce		= document.getElementById('btn_img_puce_' + id);
		var obj_class		= document.getElementById('btn_class_' + id);
		
		obj_btn.setAttribute('ETAT', '0');
		var IMGBASENAME	= obj_btn.getAttribute('IMGBASENAME');
		
		obj_img_g.src				= "images/boutons/forms/" + IMGBASENAME + "-g-out.gif";
		obj_img_m.style.background	= "url('images/boutons/forms/" + IMGBASENAME + "-m-out.gif') repeat-x";
		obj_img_d.src				= "images/boutons/forms/" + IMGBASENAME + "-d-out.gif";
		
		if ( obj_puce != undefined ) obj_puce.src = 'images/boutons/forms/" + IMGBASENAME + "-out.gif';
		
		obj_class.className	= "btn_selected";
	}
// BOUTONS FORMULAIRES //

// POPUP
	function openInfoPopup(text,width,height,picto) {
		// text :  defini le texte qui saffiche dans la pop-up
		// picto : 0 => pas de picto || 1 => picto afficher
		if (picto == undefined || picto.length == 0) picto = 1;
		if (!width) width = 432;
		if (!height) height = 147;
		text.replace("'","\'");
		Window('info_aide', 'popup_info.php?window_name=info_aide&window_height='+ height +'&text='+ text +'&picto='+ picto, width, height, false);
		openModal('info_aide');
	}

	var griserFond_onscroll_save_timer = false;
	griserFond_onscroll_save = window.onscroll;
	window.onscroll = function() {
		clearTimeout(griserFond_onscroll_save_timer);
		if (griserFond_onscroll_save) griserFond_onscroll_save();
		griserFond_onscroll_save_timer = setTimeout('onScrollFondGriser()', 100);
	}

	function onScrollFondGriser() {
		// CAS : CENTRER POPUP SUR LA PAGE
			var obj_griser = document.getElementById('div_griser');
			if (!obj_griser) return;
			obj_griser.style.top = window.document.body.scrollTop +'px';
			obj_griser.style.left = window.document.body.scrollLeft +'px';
		// CAS : CENTRER POPUP SUR LA PAGE //
	}


	var griserFond_onresize_save_timer = false;
	griserFond_onresize_save = window.onresize;
	window.onresize = function() {
		clearTimeout(griserFond_onresize_save_timer);
		if (griserFond_onresize_save) griserFond_onresize_save();
		griserFond_onscroll_save_timer = setTimeout('onScrollFondGriser()', 50);
		griserFond_onresize_save_timer = setTimeout('onResizeFondGriser()', 100);
	}

	function onResizeFondGriser() {
		var obj_griser = document.getElementById('div_griser');
		if (!obj_griser) return;
		
		// CAS : CENTRER POPUP SUR LA PAGE
			size = getWinSize(false);
			
			var obj_popup = document.getElementById(popup_id);
			var width = parseInt((obj_popup.style.width).replace('px',''));
			var left	= parseInt( (size.width - width) / 2 );
			if ( left < 0 ) left = 0;
			var top		= document.body.scrollTop + 5;
			if ( top < 0 ) top = 0;
			obj_popup.style.left	= left + 'px';
			obj_popup.style.top		= top + 'px';
			
			return;
		// CAS : CENTRER POPUP SUR LA PAGE //
		
		var page_position		= getPosition(document.getElementById('modele_page'));
		page_position.x++;
		obj_griser.style.left	= page_position.x + 'px';
//		obj_griser.style.top	= page_position.y + 'px';
		obj_griser.style.top	= 357 + 'px';
		
		var obj_popup = document.getElementById(popup_id);
		var width = parseInt((obj_popup.style.width).replace('px','')) - 2;
		var left	= page_position.x + ( (size.width - width) / 2 );
		if ( left < page_position.x ) left = page_position.x;
//		var top		= page_position.y + 34;
		var top		= 357 + 4;
		obj_popup.style.left	= left + 'px';
		obj_popup.style.top		= top + 'px';
	}

	var all_visible_select;
	var griserFond_onresize_save = '';
	function griserFond(griser, zindex) {
	//alert('griserFond');
		var obj_griser = document.getElementById('div_griser');
		//var obj_griser_iframe = document.getElementById('div_griser_iframe');
		
		if (griser && !obj_griser) {
			//faire le griser

			size = getWinSize(false);
			size.width	= document.getElementById('modele_page').offsetWidth - 2;
			size.height	= document.getElementById('modele_page').offsetHeight;
			var page_position		= getPosition(document.getElementById('modele_page'));
			page_position.x++;

			if (!zindex) zindex = 999;
			obj_griser = document.createElement('div');
			obj_griser.id = 'div_griser';
			obj_griser.style.filter = 'Alpha(Opacity=50)';
			obj_griser.style.MozOpacity = '0.5';
			obj_griser.style.opacity = '0.5';
			obj_griser.style.width = size.width; //'100%';
			obj_griser.style.height = size.height - 21; //'100%';
// CAS : CENTRER POPUP SUR LA PAGE
				obj_griser.style.width = '100%';
				obj_griser.style.height = '100%';
// CAS : CENTRER POPUP SUR LA PAGE //
			obj_griser.style.backgroundColor = '#000';
			obj_griser.style.position = 'absolute';
			obj_griser.style.zIndex = zindex;
			obj_griser.style.left	= page_position.x + 'px';
			obj_griser.style.top	= /*page_position.y*/ 357 + 'px';
// CAS : CENTRER POPUP SUR LA PAGE
				var top		= document.body.scrollTop;
				if ( top < 0 ) top = 0;
				obj_griser.style.left	= '0';
				obj_griser.style.top	= top;
// CAS : CENTRER POPUP SUR LA PAGE //
			obj_griser.innerHTML = "";
			
			document.body.appendChild(obj_griser);
			
			all_visible_select = new Array();
			selects = getAllSelect(true);
	        for (i = 0; i != selects.length; i++) {
				var doNotHide = selects[i].getAttribute("doNotHide");
				if (selects[i].style.visibility != "hidden" && doNotHide != '1') {
					all_visible_select[all_visible_select.length] = selects[i];
	                selects[i].style.visibility = "hidden";
				}
	        }
			
		} else if (!griser) {
			//degriser
			if (obj_griser) {
				removeNode(obj_griser);
				//removeNode(obj_griser_iframe);
/*/
	var date_start	= new Date().getTime();
				for (i = 0; i != all_visible_select.length; i++) {
					all_visible_select[i].style.visibility = "visible";
				}
	var date_end	= new Date().getTime();
	if ( document.getElementById('txt_result') != undefined ) document.getElementById('txt_result').value = '2 - Temps pour réafficher les select : ' + (date_end - date_start) + ' ms\n' + document.getElementById('txt_result').value;
/**/
/**/
				for (i = 0; i != all_visible_select.length; i++) {
					all_visible_select[i].style.visibility = "visible";
				}
/**/
			}
		}
	}

	function getAllSelect(withIframe) {
//alert('getAllSelect');
		if (withIframe) {
			var allIframeSelect;
			var allSelect = new Array();
			allIframeSelect	= document.getElementsByTagName("select");
			for (j = 0; j < allIframeSelect.length; j++) {
				allSelect[allSelect.length] = allIframeSelect[j];
			}

			var allIframe = document.getElementsByTagName("iframe");
			//for (i = 0; i < allIframe.length; i++) {
			for (i = 0; i < window.frames.length; i++) {
				//allIframeSelect = allIframe[i].getElementsByTagName("select");
				allIframeSelect = window.frames[i].document.getElementsByTagName("select");
				for (j = 0; j < allIframeSelect.length; j++) {
					allSelect[allSelect.length] = allIframeSelect[j];
				}
	        }
			return allSelect;
		} else {
			//uniquement les select de la page
			return document.getElementsByTagName("select");
		}
	}

	function removeNode(obj) {
//alert('removeNode');
//if ( document.getElementById('txt_result') != undefined ) document.getElementById('txt_result').value = '1/3 - Destruction de l\'objet : ' + typeof obj + '\n' + document.getElementById('txt_result').value;
		if (obj) {
			if (obj.removeNode) {
				obj.removeNode(true);
			} else {
				if (obj.parentNode.removeChild) obj.parentNode.removeChild(obj);
			}
		}
//if ( document.getElementById('txt_result') != undefined ) document.getElementById('txt_result').value = ' -> Destruction de l\'objet : ' + obj + '\n' + document.getElementById('txt_result').value;
	}
// POPUP //

// GESTION OBJETS HTML
	function getWinSize(width_scroll) {
//alert('getWinSize');
		var myWidth = 0, myHeight = 0;
		if (!width_scroll) {
//alert('if');
			if( typeof( window.innerWidth ) == 'number' ) {
//alert('if');
				//Non-IE
				myWidth = window.innerWidth;
				myHeight = window.innerHeight;
			} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
//alert('else 1');
				//IE 6+ in 'standards compliant mode'
				myWidth = document.documentElement.clientWidth;
				myHeight = document.documentElement.clientHeight;
			} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
//alert('else 2');
				//IE 4 compatible
				myWidth = document.body.clientWidth;
				myHeight = document.body.clientHeight;
			}
		} else {
//alert('else');
			var test1 = document.body.scrollHeight;
			var test2 = document.body.offsetHeight
			if (test1 >= test2) { // all but Explorer Mac
				myWidth = document.body.scrollWidth;
				myHeight = document.body.scrollHeight;
				//alert('test1 >= test2 '+ myWidth + '!='+document.body.offsetWidth +', '+ myHeight +'!='+ document.body.offsetHeight);
			} else { // Explorer Mac;
				//would also work in Explorer 6 Strict, Mozilla and Safari
				myWidth = document.body.offsetWidth;
				myHeight = document.body.offsetHeight;
				//alert('test1 < test2 '+ myWidth + '!='+document.body.scrollWidth +', '+ myHeight +'!='+ document.body.scrollHeight);
			}
		}
		return {width: myWidth, height: myHeight};
	}
	
	function stopPropagation(e) {
		if (!e) e = event;
		if (e.stopPropagation) e.stopPropagation();
		e.cancelBubble=true;
	}
// GESTION OBJETS HTML

// TEXTES DEPLIANTS
	function fct_montrerVilles(pousserContenu) {
		if ( pousserContenu == undefined ) pousserContenu = false;
		
		var obj_txt_liste_ville		= document.getElementById('txt_liste_ville');
		var obj_div_texteRecherche	= document.getElementById('div_texteRecherche');
		
		
		var ancienTexte		= obj_txt_liste_ville.innerHTML;
		var nouveauTexte	= obj_txt_liste_ville.getAttribute('alt');
		obj_txt_liste_ville.setAttribute('alt', ancienTexte);
		obj_txt_liste_ville.innerHTML	= nouveauTexte;
		
		var obj_lien_liste_ville = document.getElementById('lien_liste_ville');
		if ( ancienTexte.length > nouveauTexte.length ) {
			obj_lien_liste_ville.innerHTML = AfficherToutesVilles;
			if ( !pousserContenu ) obj_div_texteRecherche.style.position = 'relative';
			obj_div_texteRecherche.style.background = '';
			obj_div_texteRecherche.style.padding = '0 0 0 0';
		} else {
			obj_lien_liste_ville.innerHTML = ReduireListeVilles;
			if ( !pousserContenu ) obj_div_texteRecherche.style.position = 'absolute';
			obj_div_texteRecherche.style.background = 'url(\'images/listing/recherches/criteres-ar.gif\') 0 100% repeat-x #FFF';
			obj_div_texteRecherche.style.padding = '0 0 5px 0';
		}
	}
// TEXTES DEPLIANTS //

// LISTINGS AW
	// Fonctions pour les tableaux active widgets
	function ScrollIntoView(index) {
		//window.setTimeout("_ScrollIntoView.call(obj_grid, "+index+");", 600);
		ScrollIntoViewObj(index, 'obj_grid');
	}
	function ScrollIntoViewObj(index, objName) {
		window.setTimeout("_ScrollIntoView.call("+ objName +", "+index+");", 600);
	}
	function _ScrollIntoView(index) {
		var row = this.getTemplate("row", index);
		var data = this.getTemplate("layout").getContent("data");
		var left = this.getTemplate("layout").getContent("left");
		var scrollbars = this.getTemplate("layout").getContent("scrollbars");
		try {

			var top, padding = parseInt(data.element().currentStyle.paddingTop);
			if (data.element().scrollTop > row.element().offsetTop - padding) {
				top = row.element().offsetTop - padding;
				left.element().scrollTop = top;
				data.element().scrollTop = top;
				scrollbars.element().scrollTop = top;
			}

			if (data.element().offsetHeight + data.element().scrollTop < row.element().offsetTop + row.element().offsetHeight ) {
				top = row.element().offsetTop + row.element().offsetHeight - data.element().offsetHeight;
				left.element().scrollTop = top;
				data.element().scrollTop = top;
				scrollbars.element().scrollTop = top;
			}
		}
		catch(error) {
			// ignore errors
		} 
	}
// LISTINGS AW //

// RETOUR
	function btn_retour_onMouseOut() {
		var base_id	= 'retour_';
		var i = 1;
		while ( document.getElementById(base_id + 'img_' + i) ) {
			document.getElementById(base_id + 'img_' + i).src			= 'images/modele/menu/retour-off.gif';
			document.getElementById(base_id + 'lien_' + i).className	= 'menu_retour';
			i++;
		}
	}
	function btn_retour_onMouseOver() {
		var base_id	= 'retour_';
		var i = 1;
		while ( document.getElementById(base_id + 'img_' + i) ) {
			document.getElementById(base_id + 'img_' + i).src			= 'images/modele/menu/retour-on.gif';
			document.getElementById(base_id + 'lien_' + i).className	= 'menu_retour_over';
			i++;
		}
	}
// RETOUR //

// OBJETS
	function getPosition(elementObj) {
		//var element = document.getElementById(elementId);
		var element = elementObj;
		var left = 0;
		var top = 0;

		if (element != null) {
		// Try because sometimes errors on offsetParent after DOM changes.
			try {
				while (element.offsetParent) {
					// While we haven’t got the top element in the DOM hierarchy
					// Add the offsetLeft
					left += element.offsetLeft;
					
					// If my parent scrolls, then subtract the left scroll position
					if (element.offsetParent.scrollLeft) { left -= element.offsetParent.scrollLeft; }

			        // Add the offsetTop
			        top += element.offsetTop;
			        // If my parent scrolls, then subtract the top scroll position
			        if (element.offsetParent.scrollTop) { top -= element.offsetParent.scrollTop; }
				
			        // Grab
			        element = element.offsetParent;
			    }
			}
			catch (e) {
			    // Do nothing
			}
		
			// Add the top element left offset and the windows left scroll and subtract the body's client left position.
			
			if (document.body.scrollLeft && document.body.clientLeft) {
//				left += element.offsetLeft + document.body.scrollLeft - document.body.clientLeft;
			}
			if (window.document.body.scrollLeft && window.document.body.scrollLeft) {
				left += element.offsetLeft + window.document.body.scrollLeft - window.document.body.clientLeft;
			}
/*
			else if ( window.document.body.scrollLeft ) {
				left += element.offsetLeft + window.document.body.scrollLeft;
			}
/**/
			
			// Add the top element topoffset and the windows topscroll and subtract the body's client top position.
			if (document.body.scrollTop && document.body.clientTop) {
//				top += element.offsetTop + document.body.scrollTop - document.body.clientTop;
			}
			if (window.document.body.scrollTop && window.document.body.clientTop) {
				top += element.offsetTop + window.document.body.scrollTop - window.document.body.clientTop;
			}
/*
			else if ( window.document.body.clientTop ) {
				top += element.offsetLeft + window.document.body.scrollTop;
			}
/**/
			
		}
		//alert(left +','+ top);
		return {x:left, y:top};
	}
// OBJETS //

/*********************************************/
/* SET de fonctions : active ou désactive un bouton */
/*********************************************/
	/* active ou désactive un bouton */
	function controleBouton( form, bouton ) {
		if ( champsVides( form ) == 0 )
			desactiveCadre( bouton );
		else	
			activeCadre( bouton );
	}
	/*  active ou désactive un cadre -> ici les boutons */ 
	function activeCadre( id ) {
		
		object = document.getElementById(id);
		if ( object != undefined && object.getAttribute("etat") != 1 ) {
			// modifie l'état + remplace la classe
			object.setAttribute("etat", 1);
			object.className = replace( object.className, "-inactif", "-out" );
		}
	}
	function desactiveCadre( id ) {
		
		object = document.getElementById(id);
		if ( object != undefined && object.getAttribute("etat") != 0 ) {
			// modifie l'état + remplace la classe
			object.setAttribute("etat", 0);
			object.className = replace( object.className, "-out", "-inactif" );
			// alert("Cadre désactivé");
		}
	}
	/* test si les champs sont vides */
	function champsVides( form ) {
	
		var longeur = 0;
		// var objects = "- ";
		for (var i = 0; i < document.forms[form].length; i++) {
		
			var object = document.forms[form].elements[i];
			// objects += object.type + " - ";
			switch( object.type ) {
				case "radio" :
					longeur = ( object.checked ? longeur + 1 : longeur );
					break;
					
				case "text" :
					longeur += (object.value).length;
					break;
					
				case "checkbox" :
					longeur = ( object.checked ? longeur + 1 : longeur );
					break;
					
				case "select-one" :
					longeur = ( object.selectedIndex > 0 ? longeur + 1 : longeur );
					break;
					
				case "hidden" :
					longeur = ( (object.getAttribute("check") == 1 && (object.value).length > 0 ) ? longeur + 1 : longeur );
					break;
			}
		}
		// alert(objects);
		// alert(longeur);
		return longeur;
	}
/*********************************************/

// Removes leading whitespaces
	function LTrim( value ) {
		var re = /\s*((\S+\s*)*)/;
		return value.replace(re, "$1");
	}

	// Removes ending whitespaces
	function RTrim( value ) {
		var re = /((\s*\S+)*)\s*/;
		return value.replace(re, "$1");
	}
	function trim( value ) {
		return LTrim(RTrim(value));
	}

/* MODEL : affiche un texte si input vide */
	function rechercheBlur(object, value) {
		if( trim(object.value) == "" )
			object.value = value;
	}
	function rechercheFocus(object, value) {
		if( object.value == value )
			object.value = "";
	}

var so_cartoS = undefined;

// CONTROLE D'ACTIVATION DES BOUTONS POUR LES FORMULAIRES
	function rechercheCartographique_controleBoutonSuivant() {
		// controle des 3 champs obligatoires
		var isCarto	= false;
		var isBPs	= false;
		var form = document.forms["dataform"];
		
		// LOCALITES : text
		isCarto = ( ((form.elements["liste_ville_cp"].value).length > 0 && (form.elements["liste_ville_cp"].value != form_villeCP_exemple)) ? true : false );
		// BPs : text
//		isBPs = ( (form.elements["BPs"].value).length > 0 ? true : false );
		isBPs = ( (document.getElementById("BPs").value).length > 0 ? true : false );
		
		// ACTIVE ou DESACTIVE
		if ( isCarto || isBPs )
			activeCadre("btnValider");
		else
			desactiveCadre("btnValider");
	}
	
	function alertesEmail_alerte_controleBoutonRecherche() {
		// controle des 3 champs obligatoires
		var isCat	= false;
		var isType	= false;
		var isCarto	= false;
		var isBPs	= false;
		var form = document.forms.form_alertesEmail;
		
		// CATEGORIE : radio
		var cat = form.elements["typeannonce"];
		for (var i = 0; i < cat.length; i++) {
			isCat = ( cat[i].checked ? true : isCat );
		}
		// TYPES BIENS : checkbox
		var types = form.elements["typebiens[]"];
		for (var j = 0; j < types.length; j++) {
			isType = ( types[j].checked ? true : isType );
		}
		// LOCALITES : text
		isCarto = ( ((form.elements["liste_ville_cp"].value).length > 0 && (form.elements["liste_ville_cp"].value != form_villeCP_exemple)) ? true : false );
		// BPs : text
//		isBPs = ( (form.elements["BPs"].value).length > 0 ? true : false );
		isBPs = ( (document.getElementById("BPs").value).length > 0 ? true : false );
		
		// ACTIVE ou DESACTIVE
		if ( isCat && isType && ( isCarto || isBPs ) )
			activeCadre("btnValider");
		else
			desactiveCadre("btnValider");
	}
	
	function alertesEmail_inscription_controleBoutonRecherche() {
		// controle des 3 champs obligatoires
		var isCat	= false;
		var isType	= false;
		var isCarto	= false;
		var isBPs	= false;
		var isCoordEmail		= false;
		var isCoordMotDePasse	= false;
		var form = document.forms.form_alertesEmail;
		
		// CATEGORIE : radio
		var cat = form.elements["typeannonce"];
		for (var i = 0; i < cat.length; i++) {
			isCat = ( cat[i].checked ? true : isCat );
		}
		// TYPES BIENS : checkbox
		var types = form.elements["typebiens[]"];
		for (var j = 0; j < types.length; j++) {
			isType = ( types[j].checked ? true : isType );
		}
		// LOCALITES : text
		isCarto = ( ((form.elements["liste_ville_cp"].value).length > 0 && (form.elements["liste_ville_cp"].value != form_villeCP_exemple)) ? true : false );
		// BPs : text
//		isBPs = ( (form.elements.BPs.value).length > 0 ? true : false );
		isBPs = ( (document.getElementById("BPs").value).length > 0 ? true : false );
		
		// COORDONNEES
			// EMAIL : text
			isCoordEmail = ( (form.elements["user_email"].value).length > 0 ? true : false );
			// MOT DE PASSE : text
			isCoordMotDePasse = ( ( (form.elements["user_mdp"].value).length > 5 && (form.elements["user_mdp2"].value).length > 5 ) ? true : false );
		
		// ACTIVE ou DESACTIVE
		if ( isCat && isType && ( isCarto || isBPs ) && isCoordEmail && isCoordMotDePasse ) {
			activeCadre("btnValider");
		} else {
			desactiveCadre("btnValider");
		}
	}
	
	function alertesEmail_coordonnees_controleBoutonRecherche() {
		// controle des 3 champs obligatoires
		var isCoordEmail		= false;
		var isCoordMotDePasse	= false;
		var form = document.forms["form_alertesEmail"];
		
		// COORDONNEES
			// EMAIL : text
			isCoordEmail = ( (form.elements["user_email"].value).length > 0 ? true : false );
			// MOT DE PASSE : text
			if ( (form.elements["user_mdp"].value).length > 0 || (form.elements["user_newmdp1"].value).length > 0 || (form.elements["user_newmdp2"].value).length > 0 ) {
				isCoordMotDePasse = ( ( (form.elements["user_newmdp1"].value).length > 5 && (form.elements["user_newmdp2"].value).length > 5 ) ? true : false );
			} else {
				isCoordMotDePasse = true;
			}
		
		// ACTIVE ou DESACTIVE
		if ( isCoordEmail && isCoordMotDePasse ) {
			activeCadre("btnValider");
		} else {
			desactiveCadre("btnValider");
		}
	}
// CONTROLE D'ACTIVATION DES BOUTONS POUR LES FORMULAIRES //

// DIVERS
	function lien_over(id){
		var object = document.getElementById(id);
		object.className = object.className.replace( "-out", "-over" );
	}
	function lien_out(id){
		var object = document.getElementById(id);
		object.className = object.className.replace( "-over", "-out" );
	}
	function categ_onClick(typeannonce) {
		document.getElementById('rechMulti_typeannonce').value = typeannonce;
		document.form_rechMulti.submit();
	}
// DIVERS //

// LISTING - RECHERCHES
	function montrerSelection(id) {
		var obj_partielle	= document.getElementById(id + '_1');
		var obj_complete	= document.getElementById(id + '_2');
		
		obj_partielle.style.display	= 'none';
		obj_complete.style.display	= 'block';
	}
	function cacherSelection(id) {
		var obj_partielle	= document.getElementById(id + '_1');
		var obj_complete	= document.getElementById(id + '_2');
		
		obj_partielle.style.display	= 'block';
		obj_complete.style.display	= 'none';
	}
// LISTING - RECHERCHES //
