
	Event.observe(window, 'load', function() {
		
		//searchEstablishments('default');
		initialize();
		
		if(fsearch = $('f-search')){
			Event.observe('f-search', 'submit', searchEstablishments);
		}
		
		if(fmap= $('f-map')){
		Event.observe('f-map', 'submit', searchEstablishments);
		}
		
		if(fcheckboxes= $('f-categories')){
			Event.observe('f-categories', 'submit', searchEstablishments);
		}
		
	});

/*Ajax*/
	function getXML(page,container,tab,params){
		if(tab){
			if (isArray(tab)){
				if (tab.length>0){
					var tpParams = Form.serialize($(tab[0]));
					for (var i=1;i<tab.length;i++){
						tpParams = tpParams+'&'+Form.serialize($(tab[i])); 
					}
					
					var params = tpParams+'&'+params;
				}
			}else{
					var params = Form.serialize($(tab))+'&'+params;
			}
		}else{
			var params = params;
		}
			
			new Ajax.Request(BASE_URL+page,{ 
							evalJS:false,
							asynchronous:true,
							parameters:params,
							method: 'post',
							onCreate: function(xhr) {
									$(container).innerHTML= '<div id="loading"><div class="img_loader"><img src="' + BASE_URL +'styles/default/imgs/ajax-loader.gif"/></div><div class="text_loader">chargement</div></div>';
									
			},
							onSuccess: function(xhr) {
								
								initialize();
								var json = xhr.responseText.evalJSON(true); 
								var dataJSON = json;
								new Effect.ScrollTo('search_result',{duration:1.0,afterFinish:setHtml(dataJSON,container)});
								
								
							
							},
							onComplete: function(xhr) {
								//new Effect.ScrollTo('search_result',{duration:2});
							},
							onFailure: function(xhr) {
								$(container).innerHTML = 'Erreur';
							}
														
				});
	}

	function setHtml(dataJSON,container){
		
		if(dataJSON.informations.total > 0){
			
			if(typeView == 2){
				var output='';
				dataJSON.items.each( 
				        function (establishment)
				        {
				        	output += '<div class="bloc">'
				        	+ '<table  width="410" height="50" cellpadding="0" cellspacing="0">'
							+ ' <tr>'
							+ ' <td align="left" class="sep"><strong><a href="'+ establishment.url +'">'+ establishment.name +'</a></strong><br />'
							+  establishment.address+', '+ establishment.zip_code +' '+ establishment.city +' '+ establishment.country+'</td>'
							+ ' <td align="right" class="sep"><a href="'+ establishment.url_vote +'"><img src="'+ BASE_URL +'styles/default/imgs/find/bloc-g/title/_fr/select_1.jpg" alt="" border="0" /></a><br />'
							+ ' </td>'
							+ '</tr>'
							+ ' </table>'
							+ '</div>';
				        	
				        	addMarker(establishment.latitude,establishment.longitude,'<a href="' + establishment.url + '">' + establishment.name + '</a><br />' + establishment.address + '<br /> ' + establishment.zip_code  +' '+ establishment.city + ' <br /> ' + establishment.country,establishment.marker);
				        	
				        });
			}else{

			var output = '<table id="t_result_tri" width="100%" height="28" border="0" cellpadding="0" cellspacing="0">';
			
			dataJSON.items.each( 
		        function (establishment)
		        {
		        	var vignette ='<h2>'+ establishment.name +'</h2><div class=address>'+ establishment.address +'<br />'+ establishment.zip_code +' '+ establishment.city +'<br /> '+ establishment.country +'</div> <div class=photo><img src='+ establishment.photo +'/></div> <div class=help><a>'+ establishment.categories +'</a> : '+ establishment.tags +'</div>';
		          	
	              	output += 
	              	'<tr bgcolor="'+ establishment.bgcolor+'">'
	              		
	                + '<td width="140" height="25" align="center">'
	                + establishment.categories
	                + '</td>'
	                
	                + '<td width="11" align="center"></td>'
	                
	                + '<td width="180" height="25" align="center">'
	                + '<a onMouseOut="cache();" onMouseOver="montre(\''+ vignette +'\')" href="' + establishment.url + ' ">' + establishment.name + '</a>'
	                + '</td>'
	                
	                + '<td width="11" align="center"></td>'
	                
	                + '<td width="118" height="25" align="center">'
	                + establishment.favorites
	                + '</td>'
	                
	                + '<td width="11" align="center"></td>'
	                
	                
	                + '<td width="80" height="25" align="center">'
	                + images_array(establishment.quality,BASE_URL + 'styles/default/imgs/misc/' + establishment.star + '.gif',5)
	                + '</td>'
	                
	                + '<td width="11" align="center"></td>'
	                
	                + '<td width="80" height="25" align="center">'
	                + images_array(establishment.price,BASE_URL + 'styles/default/imgs/misc/' + establishment.euro + '.gif',5)
	                + '</td>'
	                

	                + '<td width="11" align="center"></td>'
	                
	                + '<td width="193" height="25" align="center">'
	                + establishment.tags
	                + '</td>'
	               
	
	              	'</tr>';
	              	
	              	addMarker(establishment.latitude,establishment.longitude,'<a href="' + establishment.url + '">' + establishment.name + '</a><br />' + establishment.address + '<br /> ' + establishment.zip_code  +' '+ establishment.city + ' <br /> ' + establishment.country,establishment.marker);
		        });
			
				output += '</table>';
			}
		
			if(dataJSON.informations.total>0){
				output += '<div class="pagination"><ul>';
				
					if(parseInt(dataJSON.informations.limit) != 0 ) {
						output += '<li class="btn_average"><a  onclick="searchEstablishmentsPage('+(parseInt(dataJSON.informations.limit) - 1 * parseInt(dataJSON.informations.nbr)) +')"> < page précédente</a></li>';
					}
					
					if(parseInt(dataJSON.informations.limit) + parseInt(dataJSON.informations.nbr) < parseInt(dataJSON.informations.total)) {
						output += '<li class="btn_average"><a  onclick="searchEstablishmentsPage('+(parseInt(dataJSON.informations.limit) + 1 * parseInt(dataJSON.informations.nbr)) +')"> page suivante ></a></li>';
					}
				
				output += '</ul><div>';
			}
			
		}else{
			output = '<div class="help">';
			output += dataJSON.informations.message;
			output += '</div>';
		}
		
	    $(container).innerHTML = output;

		
	}
	
	function searchEstablishments(type){
			
			if(fsearch = $('f-search')){
				var fsearchInput = fsearch['terms'];
				var terms = $(fsearchInput).getValue();
			}
			
			if(fmap= $('f-map')){
				var fmapInput = fmap['address'];
				var address = $(fmapInput).getValue();
			}
			
			if(fcheckboxes= $('f-categories')){
				var checkboxes = fcheckboxes.getInputs('checkbox');
				var check = checkboxes.findAll(function(e){ return e.checked }).pluck("value");
			}
			
			if( ( (terms != 'ex : tendance, convivial, intimiste' && terms != '') || 
				  (address != '' && address != 'ex : adresse, ville ou pays' ) || 
				  (check != '')
				 ) && type != 'default' 
			   ){
				getXML('api/getPlaces/','search_result',fTable);
			}else if(type == 'default'){
				getXML('api/getPlaces/','search_result',fTable);
			}
	}
	
	function images_array(nb,image,total)
	{
		var out = '';
		
		for(var i = 0; i < Math.round(nb); i++){
			
			out += '<img src="'+ image +'" />';
		
		}
		
		var nbr_img_off =  Math.round(total -  Math.round(nb));
		
		for(var i = 0; i < nbr_img_off; i++){
		
			out += '<img src="'+ image +'_off.jpg" />';
		}
		return out;
	}
	
	function searchEstablishmentsCategories(dom){
		getXML('api/getPlaces/','search_result',fTable);
	}
	
	function searchEstablishmentsPage(nbr){
		if (nbr){nbr = nbr;}else{nbr = 0}
			getXML('api/getPlaces/'+ nbr,'search_result',fTable);
		}
		
	function checkCategories(id){
	 var checks = $(id);
		if(checks.checked == false){
			 checks.checked = true;
		}else{
			checks.checked = false;
		}
	}
