(

	function(){
		
		google.load("maps", "2.x");
		
		$(document).ready(
		
			function(){
				
			JSInterface.MultiLanguage.onLoad(
			
				function(){
					
					//GET LATITUDE AND LONGITUDE FROM HIDDEN INPUTS
					var latitude = document.getElementById('latitude').value;
					var longitude = document.getElementById('longitude').value;
					
					//GET MAP CONTAINER
					var mapContainer = document.getElementById("map");
					
					// ******************* GET SEARCH PARAMS ******************* //
					
					var searchParams = '';
					var searchQuery = document.getElementById('query_string');
					
					if(searchQuery != null){
						searchParams = searchQuery.value;
					}
					
					// ********************************************************* //
					
					if(latitude && longitude){
						
						if (GBrowserIsCompatible()) {
							
							// **************************** DEFINE FUNCTION ********************* //
							
							function appendApartmentToMap(mapObject,apartmentObject,markerOptions){
								
								if(apartmentObject.C_APARTMENTS_Latitude != '' && apartmentObject.C_APARTMENTS_Longitude != ''){
									
									var point = new GLatLng(apartmentObject.C_APARTMENTS_Latitude, apartmentObject.C_APARTMENTS_Longitude);
								
									var markerObject = new GMarker(point,markerOptions);
									
									// ************** SET MARKERS EVENT HANDLERS ****************** //
									
									//add event listener
									GEvent.addListener(
														markerObject, 
														"click", 
														function(){
		
															// ***************** SET HTML CONTENT ************* //
		
															var htmlContent= '<table width="300" cellpadding="0" cellspacing="0" border="0" height="100">'+
																				'<tr>'+
																					'<td align="center" valign="middle">'+
																						'<a href="'+JSInterface.localpath+'apartments/apartment/details/id/'+apartmentObject.C_APARTMENTS_Id+'" class="blueLink" >'+
																							'<img src="'+JSInterface.localpath+"includes/resources/apartments/similarapartmentsimages/"+apartmentObject.C_APARTMENTS_SimilarApartmentsImage+'" width="100" />'+
																						'</a>'+
																					'</td>'+
																					'<td align="center" valign="middle" style="padding-left:10px;">'+
																						'<table width="100%" cellpadding="0" cellspacing="0" border="0">'+
																							'<tr>'+
																								'<td colspan="2" align="left" valign="top"><span class="whiteTxt" style="color:#000;"><a href="'+JSInterface.localpath+'apartments/apartment/details/id/'+apartmentObject.C_APARTMENTS_Id+'" class="blueLink" target="_blank" ><b>'+apartmentObject.C_APARTMENTS_TitleFr+'</b></a></span></td>'+
																							'</tr>'+
																							'<tr>'+
																								'<td height="3"></td>'+
																							'</tr>'+
																							'<tr>'+
																								'<td align="left" valign="middle"><span class="whiteTxt" style="color:#000;"><b>Type : </b></span></td>'+
																								'<td align="left" valign="middle"><span class="whiteTxt" style="color:#000; font-size:11px;">'+(apartmentObject.C_APARTMENTS_NoRooms == 'studio' ? 'studio' : apartmentObject.C_APARTMENTS_NoRooms+' '+JSInterface.MultiLanguage.translate("rooms"))+'</span></td>'+
																							'</tr>'+
																							'<tr>'+
																								'<td align="left" valign="middle"><span class="whiteTxt" style="color:#000;"><b>'+JSInterface.MultiLanguage.translate("No. pers.")+'&nbsp;:&nbsp;</b></span></td>'+
																								'<td align="left" valign="middle"><span class="whiteTxt" style="color:#000; font-size:11px;">'+apartmentObject.C_APARTMENTS_NoPersons+'</span></td>'+
																							'</tr>'+
																							'<tr>'+
																								'<td align="left" valign="middle"><span class="whiteTxt" style="color:#000;"><b>'+JSInterface.MultiLanguage.translate("Price")+' : </b></span></td>'+
																								'<td align="left" valign="middle" width="85"><span class="whiteTxt" style="color:#000; font-size:11px;">'+(Math.round(apartmentObject.C_APARTMENTS_LowSeasonPrice-23+(4*apartmentObject.C_APARTMENTS_CleaningFee)/30))+'&nbsp;'+JSInterface.MultiLanguage.translate("to")+'&nbsp;'+(Math.round(apartmentObject.C_APARTMENTS_HighSeasonPrice-(-30)+apartmentObject.C_APARTMENTS_CleaningFee/4))+'&nbsp;&euro;&nbsp;/&nbsp;'+JSInterface.MultiLanguage.translate("night")+'</span></td>'+
																							'</tr>'+
																							'<tr>'+
																								'<td align="left" height="10"></td>'+
																							'</tr>'+
																							'<tr>'+
																								'<td align="left" valign="middle"><a href="'+JSInterface.localpath+'apartments/apartment/details/id/'+apartmentObject.C_APARTMENTS_Id+'" class="blueLink" >'+JSInterface.MultiLanguage.translate("read more")+'</a></td>'+
																							'</tr>'+
																						'</table>'+
																					'</td>'+
																				'</tr>'+
																				'<tr>'+
																					'<td height="5"></td>'+
																				'</tr>'+
																			'</table>';
																			
															// ************************************************ //
															
															markerObject.openInfoWindowHtml(htmlContent);
															
														}
									);
									
									// ************************************************************ //
									
									mapObject.addOverlay(markerObject);//add marker to map
								}
								
							}
							
							// ****************************************************************** //
						
							var apartmentsObjects = null;
							var noApartments = null;
							
							// ******************** GET APARTMENTS OBJECTS ******************** //
							//																	//
							//	**** AJAX ***													//
							//																	//
							// **************************************************************** //
			
							$.ajax({
								   type: "GET",
								   url: JSInterface.localpath+'apartments/ajax/getapartmentsobjects',
								   cache: false,
								   async: true,
								   data: "search_norows=no_limit"+
								   		 "&fetch_mode=FETCH_ASSOC"+
								   		 "&"+searchParams, 
								   		 
								   success: function(response){

								   		var apartmentsObjects = eval('(' + response + ')');
								   		noApartments = apartmentsObjects.length;

		   								var map = new GMap2(mapContainer);
										var point = new GLatLng(latitude, longitude);
								   		
								   		if(noApartments > 0){// ************** SET MAP + MARKERS **************** //
								   			
											//set marker options
											markerOptions = {};
											
											for(var i=0; i<noApartments; i++){
												
												// ******* APPEND APARTMENT OBJECT TO MAP ********* //
												
												 appendApartmentToMap(map,apartmentsObjects[i],markerOptions);
												 
												// ************************************************ // 
											}
								   			
											map.setCenter(point, 12);
											map.setUIToDefault();
											map.setMapType(G_NORMAL_MAP);
											
								   		}else{// ************ SENT ONLY MAP ************** //
		
											map.setCenter(point, 12);
											map.setUIToDefault();
											map.setMapType(G_NORMAL_MAP);
											
											// ******************************************* //
								   		}
		
								   },
								   error: function(){
								   	
								   		// remove preloader
										JSInterface.Preloader.remove(100);
								   	
								   		// show message
										var message = JSInterface.MultiLanguage.translate("Our server is busy. Please try again in a few seconds.");
										JSInterface.Loader.display({message: message});

								   }
							});
							
						}
						
					}
					
				}
			);
						
		});
		
		//unload
		$(window).unload( function(){GUnload();});
	}

)()
