
// Select graphicly a tab and store results
function selectTab(obj, search_model) {		

		document.getElementById("search_model").value= search_model;
	
	if (search_model == 'demande')
		{
		document.getElementById("li_demande").className="TabActiv";
		document.getElementById("li_offre").className="";
		document.getElementById("teaser_demande").style.display="block";
		document.getElementById("teaser_offre").style.display="none";
		document.getElementById("search_icon").src="i/icon_demande.gif";
		document.getElementById("search_demande").style.display="block";
		document.getElementById("search_offre").style.display="none";
		}
		else
		{
		document.getElementById("li_demande").className="";
		document.getElementById("li_offre").className="TabActiv";
		document.getElementById("teaser_demande").style.display="none";
		document.getElementById("teaser_offre").style.display="block";
		document.getElementById("search_icon").src="i/icon_offre.gif";
		document.getElementById("search_demande").style.display="none";
		document.getElementById("search_offre").style.display="block";
		}

}

// Load a specific search_model from tabs
function _loadSearchModel(search_model) {
	// Rewrite div with AJAX
	var ajax = new Ajax.Updater(
	'ajaxcontentarea',
	'/module/search_engine/_disp_search_model.php?search_model='+search_model+'&search_engine_version='+search_engine_version,
		 { // options
			 method:'get',
			 asynchronous:true, 
			 onComplete: _afterLoad_searchEngine
		 }	
	) ;		
}

// Store $_SESSION vars
function _store_session() {
	var ajax = new Ajax.Request(
		'module/search_engine/_do_store_session.php',
		{
			asynchronous:false, 
			parameters:Form.serialize($('search_form'))
		}
	);	
}

// Display search engine based on vars registered on session
function reload_searchEngine() {
	//alert($('search_model').value) ;	
	//alert('Search engine page reloaded') ;
	if ( $('search_model').value == 'new' ) { 
		window.location="/immobilier-neuf-moteur-recherche.html#top_home";
		//window.location="/index.php?p=search_engine#top_home" ;
	} else { 
		window.location="/recherche-immobilier.html#top_home";
		//window.location="/index.php?p=search_engine#top_home" ;
	}
	return true ;
}

// Function qui reinitialise le formulaire quand on clique sur le bouton sumbit 
function reinitFormVars() {
	$('sort_column').value = '' ;
	$('sort_order').value = '' ;
	$('sort_start').value = '' ;
	$('sort_page_array').value = '' ;
}

// Function lors du clic sur le bouton submit
function onSubmitClick() {
	if ( $('search_engine_version').value == 'header' ) { 	
		new Effect.Opacity('search_list', {duration:0, from:1.0, to:0.3});		
	}
	new Element.hide('debug') ;
	new Element.hide('submit_btn') ;
	new Element.hide('search_num_annonces') ;
	new Effect.Appear('indicator1', { duration: 0.2  });
}

// DO search and return result in AJAX
function doSearch() {
	//alert( $('search_engine_version').value ) ;
	// If in search mode => refresh ajax div
	
	if ( $('search_engine_version').value == 'header' ) { 	
		new Ajax.Updater('search_num_annonces', '/module/search_engine/_do_search.php', 
			{asynchronous:true, 
			 parameters:Form.serialize($('search_form')), 
			 onSuccess: _update_searchResults
			});
	} else {
		// Else reload page	
		new Ajax.Updater('search_num_annonces', '/module/search_engine/_do_search.php', 
			{asynchronous:true, 
			 parameters:Form.serialize($('search_form')), 
			 onSuccess: reload_searchEngine
			}); 		
	}			
}


// Order By function
function _do_order_by(column, order) {
	// Set input tobe saved in session
	$('sort_column').value = column;
	$('sort_order').value = order;
	$('sort_start').value = '0';
	// Display effects
	onSubmitClick() ;
	// Do search and refresh
	doSearch() ;
}

// Change page
function _do_change_page(new_start) {
	$('sort_start').value = new_start;
	// Display effects
	onSubmitClick() ;
	// Do search and refresh
	doSearch() ;
	// On remonte la page
	//document.location = '#top_home' ;
	// return false to not load 
	return true ;
}

// Refresh AJAX div
function _update_searchResults() {
	//alert('Update search Results') ;
	if ( $('search_model') != null ) {
		if ( $('search_model').value == 'new' ) { 
			page_to_load = '/module/search_engine/_get_ajax_search_list_neuf.php' ;
		} else { 
			page_to_load = '/module/search_engine/_get_ajax_search_list_old.php' ;		
		}
	} else {
		page_to_load = '/module/search_engine/_get_ajax_search_list_neuf.php' ;
	}
	// Do ajax request
	var ajax = new Ajax.Updater(
		'search_list', 
		page_to_load, 
		{ 
			asynchronous:true, 
			method:'get',
			onComplete:function () { 
				new Effect.Opacity('search_list', {duration:0.3, from:0.3, to:1.0});
				new Element.hide('indicator1') ;
				new Element.show('search_num_annonces') ;
				new Element.show('submit_btn') ;				
				disp_num_annonces();
				// AntiBug
				new Element.hide('indicator1') ;				
			}
		}	
	) ;		

	// On réaffiche le menu ville
	var ajax = new Ajax.Updater(
		'menu_ville', 
		'/menu_ville.php?p=search_engine&load_from=ajax', 
		{ 
			asynchronous:true, 
			method:'get'
		}	
	) ;	
}


// Display annonces number
function disp_num_annonces() {
	var ajax = new Ajax.Updater(
	'search_num_annonces', 
	'module/search_engine/_do_search.php?show_only_count=true',
	{
		asynchronous:true, 
		parameters:Form.serialize($('search_form')),
		onSuccess:function(){ 
			new Effect.Highlight('search_num_annonces', {duration: 0.5}) ;	
			setTimeout("hide_indicator()",500);
		}
	}
		
	);
	
	// In some case, there is a bug => force another timer 		
	setTimeout("hide_indicator()",300);
	setTimeout("show_submitButton()",1000);	
		
}

// Hide Indicator
function hide_indicator() {
	if ( $('search_model') != null ) {
		if ( $('search_model').value == 'new' ) { 
			new Element.hide('indicator1') ;		
		}
	}
	//new Element.hide('indicator1') ;		
}
// Show submit button
function show_submitButton() {
	if ( $('search_model') != null ) {
		if ( $('search_model').value == 'new' ) { 
			new Element.show('submit_btn') ;	
		}
	}	
	//new Element.show('submit_btn') ;		
}

// Clear session and submit blank form
function clear_session() {
	// Display effects
	onSubmitClick() ;
	// Do search with empty fields
//	new Ajax.Updater('debug', 'module/search_engine/_do_search.php', 
//		{asynchronous:true, 
//		 method:'post', 
//		 postBody:'clean_session=true',
//		 onSuccess: reload_searchEngine
//		}); 	
}


<!-- Specific JS for listes déroulantes -->


<!-- Specific JS for type de bien -->
function swap_checkbox(key, control, orig_id) {
	//alert( $(control).getAttribute('name') + ' || ' + $(key).id ) ;

	// Swap check
	if ( $(control).getAttribute('id') != '' && $(control).getAttribute('id') != null ) {
		if ( $(key).checked ) {
			$(key).checked = false ;
		} else {
			$(key).checked = true ;
		}
		// Uncheck case 'All'
		$(orig_id+'_All').checked = false ;
	}
	
	// 'All' checkbox
	if ( $(control).getAttribute('name') == 'All' ) {
		var ullist=document.getElementById(orig_id).getElementsByTagName("input") ;
		for (var i=0; i<ullist.length; i++) {
			if ( ullist[i].getAttribute('name') != 'All' )
			ullist[i].checked = false ;
		}			
	} else {
		$(orig_id+'_All').checked = false ;	
	}
}

<!-- // Specific JS for type de bien -->	
// From checkbox list, construct a CSV view
function build_human_view(orig_id, text_view, ids_view) {
	var outText='';
	var outIds='';
	var ullist=document.getElementById(orig_id).getElementsByTagName("input")
	for (var i=0; i<ullist.length; i++) {
		if ( ullist[i].checked ) {
			outText = outText + ullist[i].getAttribute('value_txt') + ', ' ;
			outIds = outIds + ullist[i].getAttribute('name') + ',' ;
		}
	}
	if ( outText.length == 0 || outText == 'Tous, ') {
		outText = 'Tous' ;
		outIds = '' ;
	}	
	document.getElementById(text_view).value = outText;
	document.getElementById(ids_view).value = outIds;	
}


<!--############################################################################################### Specific to popups -->
function check_mailAddr(adresse_email) {
	arobase = adresse_email.indexOf("@");
	point = adresse_email.indexOf(".",arobase);
	mauvais_endroit_point = arobase+1;
	double_point = adresse_email.indexOf("..",arobase);
	nbre_carac = adresse_email.length - point;
	double_arobase = adresse_email.indexOf("@",arobase+1);
	   
	// dans l'ordre:         
	// si l'arobase est absente ou en 1ere position
	// ou si le . suivant l'arobase est juste derriere ou absent
	// si la longueur de l'adresse est inferieure a 5 (grand minimum -> x@x.x)
	// si il ya pas 2 . qui se suive deriere l'arobase
	// si il y a bien 2 caractere minimum apres le . situe derriere l'arobase
	// si il y a pas une arobase deriere la premiere arobase
	if ( (arobase < 1) ||  
		(point <= mauvais_endroit_point) || 
		(adresse_email.length < 5) || 
		(double_point >= 0) ||
		(nbre_carac < 3) ||
		(double_arobase >= 0) )
		{
			alert ("L'adresse email est invalide.");
			return false ;
		}
	return true ;
}

// Receive coord of parts
function _sendCoordByMail() {
	// Check for email address
	if ( ! check_mailAddr($('mail_field').value) ) {
		return false;	
	}
	
	// Display ajax indicator
	$('mail_button').className = 'loading' ;
	
	// Send mail and display status
	new Ajax.Updater('content_zone', 'module/_getCoordByMail.php', 
		{asynchronous:false, 
		 parameters:Form.serialize($('get_coord')), 
		 onComplete: function () { Modalbox.resize(0, -50) ; }
		});	
}

// Send annonce to a friend
function _sendToFriendByMail() {
	// Check for email address
	if ( ! check_mailAddr($('mail_field').value) || ! check_mailAddr($('name_field').value) ) {
		return false;	
	}
	
	// Display ajax indicator
	$('mail_button').className = 'loading' ;
	
	// Send mail and display status
	new Ajax.Updater('content_zone', 'module/_sendAnnonceToFriend.php', 
		{asynchronous:false, 
		 parameters:Form.serialize($('get_coord')), 
		 onComplete: function () { Modalbox.resize(0, -50) ; }
		});	
}

// Init all ajax controls after page load
function _afterLoad_searchEngine() {
	// Selection ville 1
	new Ajax.Autocompleter (
						'saisie_dept_cp_ville_1',      // ID of the source field
						'suggestions_form_1',  // ID of the DOM element to update
						'/ajax/_get_ajax_ville.php', // Remote script URI
						{method: 'post', asynchronous:true, paramName: 'lieu_complete', minChars: 2, afterUpdateElement: getSelectionId_1}
						); 
	
	if ( $('search_engine_version').value != 'home_neuf' ) { 		
		// Selection ville 2
		new Ajax.Autocompleter (
							'saisie_dept_cp_ville_2',      // ID of the source field
							'suggestions_form_2',  // ID of the DOM element to update
							'/ajax/_get_ajax_ville.php', // Remote script URI
							{method: 'post', asynchronous:true, paramName: 'lieu_complete', minChars: 2, afterUpdateElement: getSelectionId_2}
							); 
		
		// Selection ville 3
		new Ajax.Autocompleter (
							'saisie_dept_cp_ville_3',      // ID of the source field
							'suggestions_form_3',  // ID of the DOM element to update
							'/ajax/_get_ajax_ville.php', // Remote script URI
							{method: 'post', asynchronous:true, paramName: 'lieu_complete', minChars: 2, afterUpdateElement: getSelectionId_3}
							); 	
		
		// Selection ville 4
		new Ajax.Autocompleter (
							'saisie_dept_cp_ville_4',      // ID of the source field
							'suggestions_form_4',  // ID of the DOM element to update
							'/ajax/_get_ajax_ville.php', // Remote script URI
							{method: 'post', asynchronous:true, paramName: 'lieu_complete', minChars: 2, afterUpdateElement: getSelectionId_4}
							); 			
	}

	// Return nothing
	return '';
}

// Update hidden fields
function getSelectionId_1(text, li) {
	$('selection_dept_cp_ville_1').value=li.id;
	$('saisie_dept_cp_ville_1').style.background = '#FFFFFF' ;
	$('tooltip_place_1').className = 'tooltip_bulle'
	return true;
}
function getSelectionId_2(text, li) {
	$('selection_dept_cp_ville_2').value=li.id;	
	$('saisie_dept_cp_ville_2').style.background = '#FFFFFF' ;	
	$('tooltip_place_1').className = 'tooltip_bulle'
	return true;
}
function getSelectionId_3(text, li) {
	$('selection_dept_cp_ville_3').value=li.id;	
	$('saisie_dept_cp_ville_3').style.background = '#FFFFFF' ;	
	$('tooltip_place_1').className = 'tooltip_bulle'
	return true;	
}
function getSelectionId_4(text, li) {
	$('selection_dept_cp_ville_4').value=li.id;	
	$('saisie_dept_cp_ville_4').style.background = '#FFFFFF' ;
	$('tooltip_place_1').className = 'tooltip_bulle'
	return true;	
}

// Check form
function check_form() { 
	// Déclaration du message d'erreur
	var error_str = '' ;
	// Init de tous les champs sans erreur
	
	// If searching on old annonces, need at least one place
	if ( $('search_engine_version').value == 'home' || $('search_engine_version').value == 'header' ) { 
		if ( $('selection_dept_cp_ville_1').value == '' && $('search_model').value != 'new') {
			// Write error message
			error_str = "Merci de sélectionner au minimum un lieu pour votre recherche.<br>" ;
			// Set error color and focus on n°1
			$('saisie_dept_cp_ville_1').style.background = '#EB9792' ;
			$('saisie_dept_cp_ville_1').focus() ;
		}
	}
	
	// Check lieux
	if ( $('selection_dept_cp_ville_1').value == '' && $('saisie_dept_cp_ville_1').value != ''  && $('search_model').value != 'new' ) {
		error_str = "Veuillez sélectionner un lieu en cliquant sur la liste déroulante<br>" ;
		$('saisie_dept_cp_ville_1').style.background = '#EB9792' ;
	}
	// If search_model is 'header'
	if ( $('search_model').value ==  'header' ) {
		if ( $('selection_dept_cp_ville_2').value == '' && $('saisie_dept_cp_ville_2').value != '' ) {
			error_str = "Veuillez sélectionner un lieu en cliquant sur la liste déroulante<br>" ;
			$('saisie_dept_cp_ville_2').style.background = '#EB9792' ;
		}	
		if ( $('selection_dept_cp_ville_3').value == '' && $('saisie_dept_cp_ville_3').value != '' ) {
			error_str = "Veuillez sélectionner un lieu en cliquant sur la liste déroulante<br>" ;
			$('saisie_dept_cp_ville_3').style.background = '#EB9792' ;
		}		
	}
	
	//alert('Check_form | Search_model : ' + $('search_model').value + ' | Search_version : ' + $('search_engine_version').value) ;
	
	// Retourne false si erreurs detectées	
	if ( error_str != '' ) {
		$('tooltip_place_1').className = 'tooltip_display' ;
		$('tooltip_place_1').innerHTML = '<em><span></span>' + error_str + '</em>' ;
		return false ;
	} else { 
		return true ;
	}
}

// Toggle details on annonces
function toggle_annonces(id_ann, address_map) {
	// Get status
	var obj = $('annonce_list_' + id_ann )
	var objMap = $('google_map_' + id_ann )
	var div_toolbar = $('more_details_' + id_ann ) ;
	var div_state = obj.style.display ;
	
	// Resize div
	if ( div_state == 'none' ) {
		// Reinit all annonces
		var ullist=getElementsByClass(document,'search_line_selected','*');
		for (var i=0; i<ullist.length; i++) {
			ullist[i].className = 'search_line' ;  //hide all tabs
			$('more_details_' + ullist[i].getAttribute('idAnnonce') ).className = 'more_details';			
			$('more_details_' + ullist[i].getAttribute('idAnnonce') ).innerHTML = '<a href="javascript:toggle_annonces('+ullist[i].getAttribute('idAnnonce')+', \''+ ullist[i].getAttribute('gmapAddress') +'\');"> (+) Plus de détails</a>' ;
			//alert($('toolbar_' + ullist[i].getAttribute('idAnnonce') ).innerHTML) ;
		}			
		// Close all opened details
		var ullist=getElementsByClass(document,'line_details','*');
		for (var i=0; i<ullist.length; i++) {
			ullist[i].style.display = 'none' ;  //hide all tabs
		}		
		// Display Div
		obj.style.display = 'inline' ;
		
		// Show Google map
		objMap.innerHTML = "<iframe src='/module/search_engine/_disp_google_map.php?address=" + address_map + "&width=300&height=170' width=300 height=170 scrolling='no' marginheight='0' marginwidth='0' frameborder='0'></iframe>" ;
		
		// Update links
		//div_toolbar.innerHTML = '<div class="goto_annonce"><a href="fiche_annonce-'+id_ann+'.html">&nbsp;Consulter cette annonce &gt;&gt;</a></div>' ;
		div_toolbar.className = 'more_details_less';
		div_toolbar.innerHTML = '<a href="javascript:toggle_annonces('+id_ann+', \''+ address_map +'\');"> (-) Réduire les détails</a>' ;	
		
	} else {
		// Hide Div
		obj.style.display = 'none' ; 
		// Update links
		div_toolbar.className = 'more_details';
		div_toolbar.innerHTML = '<a href="javascript:toggle_annonces('+id_ann+', \''+ address_map +'\');"> (+) Plus de détails</a>' ;		
		//echo '<a href="fiche_programme-'.$val['id_programme'].'.html"> (+) Plus de détails</a>' ;
	} 
}


// Show liste déroulante
function show_list_checkbox(obj_div, obj_container, obj_this) {
	// Si déjà ouvert => on le ferme
	if ( $(obj_div).style.display == 'block' && obj_this.id == obj_container ) {
		hide_layer(obj_div); 
		hide_layer(obj_container);		
	} else {
	// Sinon, on l'ouvre
		show_layer(obj_div); 
		show_layer(obj_container);
	}
}

// Hide liste déroulante
function hide_list_checkbox(obj_div, obj_container, obj_this) {
	if ( obj_this.getAttribute('id') != 'search_type_bien' ) {
		hide_layer(obj_div); 
		hide_layer(obj_container);
	}
}

function paslogue(){
	
	var test = document.getElementById('url_com').value;
		
	if(document.getElementById('user').value == '') {		
 	Modalbox.show('R&eacute;agissez &agrave; cette info !','/module/_popupLogin2.php?url='+test, {width: 600, height: 310}); 
	return false; 
	}
}
