var o_recherche =
{
	// -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
	secWait : 4, // Temps en sec avant de ré-essayer de récupérer des résultats.
	secMaxTry : 120, // Temp max en sec pour essayer de récupérer des résultats.
	sid : null,
	langid : null,
	options : [],
	msg :
	{
		wrd_recherche_en_cours : "Recherche en cours",
		wrd_liste_offre : "Liste des offres",
		wrd_traiter_erreur : "Traiter Erreur",
		nop : null
	},
	dateDebutRecherche : null,
	hlres : null,
	essai : 0,

	// -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
	go : function ()
	{
		o_recherche.stop_waiting_lecture();
		$('resultat').addClassName('loading');
		$('resultat').update('<div id="title_result" class="loading" >'+o_recherche.msg.wrd_recherche_en_cours+'</div>');
		
		var chaine_search = "document.getElementById(\"valid_search\").style.display=\"none\"";
		eval(chaine_search);
		var chaine_search = "document.getElementById(\"wait_search\").style.display=\"block\"";
		eval(chaine_search);

		/* ????? */
		chaine_id_option = new Array();
		o_recherche.options.each( function(id){ if( $F('id_option_'+id) ) chaine_id_option.push(id); });
		chaine_id_option = chaine_id_option.join(',');
		//alert(chaine_id_option);
		/* ????? */

		var parameters =
			{
				coord_poly : $F('coord_poly'),
				type_rech : $F('type_rech_1') || $F('type_rech_2'),
				id_rech_txt : $F('id_rech_txt'),
				type_rech_txt : $F('type_rech_txt'),
				date_debut : $F('date_debut'),
				date_fin : $F('date_fin'),
				precision_date : $F('precision_date'),
				nb_personne : $F('nb_personne'),
				nb_chambre : $F('nb_chambre'),
				type_bien : $F('type_bien'),
				tranche_prix_min : $F('tranche_prix_min'),
				tranche_prix_max : $F('tranche_prix_max'),
				sid : o_recherche.sid,
				id_lang : o_recherche.langid
			};
		o_recherche.options.each( function(id){ var v; if( v = $F('id_option_'+id) ) { parameters['id_option_'+id] = v; } });

		// alert( Object.toJSON(parameters) );

		var ajax_request = new Ajax.Request
		(
			'/scripts/recherche_moteur.php',
			{
				method: 'post',
				parameters: parameters,
				onSuccess: function(transport)
				{
					// alert(transport.responseText);
					delete ajax_request;

					o_recherche.dateDebutRecherche = new Date();
					o_recherche.essai = 1;
					o_recherche.voir_page(1);
				},
				onFailure: function(transport)
				{
					delete ajax_request;

					alert(o_recherche.msg.wrd_traiter_erreur);//TODO
				}
			}
		);
		
		var ajax_suggestion = new Ajax.Updater
		(
			{ success: 'suggestion' },
			'/scripts/referencement_resultat.php',
			{
				method : 'post',
				parameters : 
					{
						type_rech : $F('type_rech_1') || $F('type_rech_2'),
						id_rech_txt : $F('id_rech_txt'),
						type_rech_txt : $F('type_rech_txt'),
						coord_poly : $F('coord_poly')
					},
				onSuccess: function(transport)
				{
					//alert(transport.responseText);
					delete ajax_suggestion;
				}
			}
		);		
	},
	// -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
	stop_waiting_lecture : function()
	{
		if( o_recherche.hlres )
		{
			window.clearTimeout(o_recherche.hlres);
			o_recherche.hlres = null;
		}
	},
	// -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
	voir_page : function(pno, tri)
	{
		window.status = "lecture_resultat : essai #" + o_recherche.essai++;
		var parameters =
			{
				sid : o_recherche.sid,
				id_lang : o_recherche.langid
			};
		if( "undefined" != typeof pno ) parameters['num_page'] = pno;
		if( "undefined" != typeof tri ) parameters['tri_bien'] = tri;
		var ajax_updater = new Ajax.Updater
		(
			{ success: 'resultat' },
			'/scripts/lecture_resultat.php',
			{
				method : 'post',
				//insertion: Insertion.Bottom,
				parameters : parameters,
				onSuccess : function(requester)
				{
					delete ajax_updater;
					var d2 = new Date();
					if(	!$('title_result').hasClassName("loading")
							||
							d2.getTime() - o_recherche.dateDebutRecherche.getTime() > 1000 * o_recherche.secMaxTry
						)
					{
						window.setTimeout(o_recherche.fin_resultat,10);
					}
					else
					{
						var recurs = "o_recherche.voir_page(";
						if( "undefined" != typeof pno ) recurs += pno;
						if( "undefined" != typeof tri ) recurs += ",'" + tri + "'";
						recurs += ")";
						o_recherche.hlres = window.setTimeout(recurs, 1000 * o_recherche.secWait);
					}
					delete d2;
					window.setTimeout("myLightbox.updateImageList()",10);
				},
				onFailure : function(requester)
				{
					o_recherche.fin_resultat();
					alert(o_recherche.msg.wrd_traiter_erreur);//TODO
					delete ajax_updater;
				}
			}
		);
	},
	// -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
	fin_resultat : function()
	{
		var chaine_search = "document.getElementById(\"wait_search\").style.display=\"none\"";
		eval(chaine_search);
		var chaine_search = "document.getElementById(\"valid_search\").style.display=\"block\"";
		eval(chaine_search);
		
		$('resultat').removeClassName('loading');
		var x = $('title_result');
		if( x && x.hasClassName("loading") )
		{
			x.removeClassName("loading");
			//x.update(o_recherche.msg.wrd_liste_offre);
		}
		delete o_recherche.dateDebutRecherche;
		o_recherche.dateDebutRecherche = null;
	},
	// -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
	nop : null
};
