

function load_hotel_map()
{
	var url = "ajax.php";
	var pars = 'action=center_map_on_hotel&hotel_id='+current_hotel_id;

	var myAjax = new Ajax.Request( url,

							{ method: 'get',
							  parameters: pars,
							  onComplete: start_load_hotel_map
							  
							}

						 );
 
}

//=====================================================================================

function start_load_hotel_map(originalRequest)
{
		Try.these(
			function () { 
			
				var jsonObject = eval('(' + originalRequest.responseText + ')');
				map_center_lat  = jsonObject["map_center_lat"];
				map_center_long  = jsonObject["map_center_long"];
				
				load_map();
				add_hotel_markers();
					
			}
		);
}

//=====================================================================================

function load_landmark_map()
{
	var url = "ajax.php";
	var pars = 'action=center_map_on_landmark&landmark_id='+current_landmark_id;

	var myAjax = new Ajax.Request( url,

							{ method: 'get',
							  parameters: pars,
							  onComplete: start_load_landmark_map
							  
							}

						 );
 
}

//=====================================================================================

function start_load_landmark_map(originalRequest)
{
		Try.these(
			function () { 
			
				var jsonObject = eval('(' + originalRequest.responseText + ')');
				map_center_lat  = jsonObject["map_center_lat"];
				map_center_long  = jsonObject["map_center_long"];
				
				landmark_details[current_landmark_id] = new Array();
				landmark_details[current_landmark_id]['name'] = jsonObject["landmark_details"]["landmark_name"];
				landmark_details[current_landmark_id]['link'] = jsonObject["landmark_details"]["landmark_link"];
				landmark_details[current_landmark_id]['address'] = jsonObject["landmark_details"]["full_address"];
				landmark_details[current_landmark_id]['type'] = jsonObject["landmark_details"]["landmark_type_id"];
	
				load_map();
				initialize_landmark_map();
				add_landmark_markers();
					
			}
		);
}

//=====================================================================================

function change_order(order_by, order)
{
	
	var url = "ajax.php";
	var pars = 'action=hotels_reload&page=0&order_by='+order_by+'&order='+order+'&sletoh_search_id='+sletoh_search_id;

	var myAjax = new Ajax.Updater( 'hotel_results' , url,

							{ method: 'get',
							  parameters: pars,
							  evalScripts: true
							  
							}

						 );

}

//=====================================================================================

function change_page(page)
{
	var url = "ajax.php";
	var pars = 'action=hotels_reload&page='+page+'&sletoh_search_id='+sletoh_search_id;

	var myAjax = new Ajax.Updater( 'hotel_results' , url,

							{ method: 'get',
							  parameters: pars,
							  evalScripts: true
							  
							}

						 );

}

//=====================================================================================

function get_more_hotel_details(hotel_id)
{
	var url = "ajax.php";
	var pars = 'action=more_hotel_details_reload&hotel_id='+hotel_id;

	var myAjax = new Ajax.Updater( 'ss_img_'+hotel_id , url,

							{ method: 'get',
							  parameters: pars,
							  onComplete: start_slideshow(hotel_id),
							  evalScripts: true
							  
							}

						 );

}


function start_slideshow(hotel_id)
{
	
}
//=====================================================================================
var hotel_images = new Array();

function toggle_hotel_details(hotel_id)
{
	if (sletoh_request_status == "started")
	{
		return false;
	}
	var details_line = $("hotel_details_"+hotel_id);
	if (details_line.style.display == "none")
	{
		if (hotel_images[hotel_id])
		{
			if (thumb_div = $('thumb_img_'+hotel_id))
			{
				thumb_div.src = hotel_images[hotel_id];
			}
		}
		details_line.style.display = "";
	}
	else
	{
		details_line.style.display = "none";
	}
	
}

//=====================================================================================
//=====================================================================================
//============ FUNCTIONS USED TO SEARCH AVAILABILITY OF HOTELS ========================
//=====================================================================================
//=====================================================================================
var start_sletoh_time;
var sletoh_request_status = "not_started";
var sletoh_search_progress = 0;
var sletoh_search_id = 0;
var sletoh_search_hotels_available = 0;
var sletoh_xml_timeout = 60000; //(60 seconds)SLETOH_XML_TIMEOUT



function checkdate( month, day, year ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: checkdate(12, 31, 2000);
    // *     returns 1: true
    // *     example 2: checkdate(2, 29, 2001);
    // *     returns 2: false
 
    var myDate = new Date();
 
    myDate.setFullYear( year, month, day );
 
    return ( myDate.getMonth() != month );
}


function explode( delimiter, string ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: kenneth
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: explode(' ', 'Kevin van Zonneveld');
    // *     returns 1: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
 
    var emptyArray = { 0: '' };
 
    if ( arguments.length != 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
    {
        return null;
    }
 
    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
    {
        return false;
    }
 
    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
    {
        return emptyArray;
    }
 
    if ( delimiter === true ) {
        delimiter = '1';
    }
 
    return string.toString().split ( delimiter.toString() );
}

function search_button_clicked()
{
	total_rooms = document.getElementById("total_rooms");
	nr_rooms = total_rooms.value;
	//alert('nr_rooms');
	if (nr_rooms == 0)
	{
		alert('Please enter number of rooms to check availability. If you only want to browse hotels, use the A-Z listing at the bottom of the site');
		return false;
	}
	//alert('action_list');
	action_list =$("action_list");
	//alert(action_list.value);
	if ((action_list.value == "search_landmark"))
	{//let's see if the user selected a landmark
		landmark_name = $('autocomplete');
		landmark_name_selected = $('landmark_name_selected');
		if ((landmark_name.value == '') || (landmark_name_selected.value == 0))
		{
			alert('Type in the first letters of the tubestation and then select it from the list.');
			return false;
		}
	}

	check_in_date_ok = true;
	
	check_in_date_value = document.getElementById("check_in_date");
	check_in_date_value = check_in_date_value.value;
	
	//alert(check_in_date_value);
	
	if (date_values = explode("-", check_in_date_value))
	{
		//alert(date_values[0]);
		if (date_values != null && date_values.length == 3)
		{
			if (checkdate (date_values[1], date_values[0], date_values[2]))	
			{
				
			}
			else
			{
				check_in_date_ok = false;
			}
		}
		else
		{
			check_in_date_ok = false;
		}
	}
	else
	{
		check_in_date_ok = false;
	}
	
	
	if (!check_in_date_ok)
	{
		alert('Date format shoud be: dd-mm-yyyy');
		return false;
	}


	//alert(nr_rooms);
	//verify if the room number is defined
	
	if ((nr_rooms > 0) && (action_list.value == "search_landmark"))
	{
		if ($('current_city_id').value != $('city_id').value)
		{
			return true;
		}
		start_sletoh_request();	
		return false;
	}
	else
	{
		return true;
		
	}
	
}

//=====================================================================================

function start_sletoh_request()
{
	//replace the search button
	//alert('start_search');
	var search_button =  document.getElementById('search_form_find_hotels_bt');
	
	search_button.src = "images/buttons/progress_white.gif";
	
	
	start_sletoh_time = ( new Date()).getTime();
	
	//let's get all values in the form
	
	
	//note the timestamp when the thing started

	var url = "ajax.php";
	var pars = 'action=check_availability';
	//alert('get_form_elementes');
	
	var frm = document.search_form;
	//alert("here");
	//alert(frm.length);
	
	for (var i=0; i<frm.length;i++)
	{
	  pars+= ('&' + frm.elements[i].name + '=' + frm.elements[i].value);
	  
	}
	//alert(pars);
	
	var myAjax = new Ajax.Request( url,

									{ method: 'post',
									  parameters: pars,
									  onComplete: js_eval
									}

								 );
								 
	
}

//=====================================================================================

function check_sletoh_progress(search_id)
{
	if (sletoh_request_status == "started")
	{
		//check timeout
		current_time = (new Date()).getTime();
		duration = current_time - start_sletoh_time;
		//alert(duration);
		if (duration > sletoh_xml_timeout)
		{
			stop_sletoh_requests();
		}
		
		var url = "ajax.php";
		var pars = 'action=check_progress&search_id='+search_id;
		
		var myAjax = new Ajax.Request( url,

									{ method: 'post',
									  parameters: pars,
									  onComplete: check_sletoh_progress_complete
									}

								 );
	
	}
	
}

function check_sletoh_progress_complete(originalRequest)
{
	//alert('eval_special');
	js_eval(originalRequest);
	
	//alert(parseInt(sletoh_search_hotels_available));
	if (parseInt(sletoh_search_hotels_available) > 0)
	{
		//alert(search_type);
		if (search_type == "C")
		{
			update_hotel_list();
		}
		if (search_type == "H" )
		{
			update_hotel_room_price();
		}
		
		
	}
	if (parseInt(sletoh_search_progress) == 100)
	{
		stop_sletoh_requests();
	}
	
}



//=====================================================================================

//=====================================================================================

function update_hotel_list()
{
	
	var url = "ajax.php";
	var pars = 'action=hotels_redisplay&page=0&sletoh_search_id='+sletoh_search_id;

	var myAjax = new Ajax.Updater( 'hotel_results' , url,

							{ method: 'get',
							  parameters: pars
							  
							}

						 );
	
}
	


//=====================================================================================

function stop_sletoh_requests()
{
	sletoh_request_status = "stopped";
	
	try {
		var search_button =  document.getElementById('search_form_find_hotels_bt');
	
		search_button.src = "images/buttons/bt_find_hotels.gif";
	}
	catch(err)
	{
		
	}
	
	//hide all markers
	
	try {
	
		add_landmark_markers();
	}
	catch(err)
	{
		
	}
	
}


//=====================================================================================
//=====================================================================================
//=============== SEARCH BY ROOM DETAILS ==============================================
//=====================================================================================
//=====================================================================================

//=====================================================================================
function search_button_clicked_one_hotel()
{
	total_rooms = document.getElementById("total_rooms");
	action_list = document.getElementById("action_list");
	
	
	nr_rooms = total_rooms.value;
	//alert(nr_rooms);
	
	//verify if the room number is defined
	if ((nr_rooms > 0) && (action_list.value == "search_hotel"))
	{
		hotel_name_in_form = document.getElementById("hotel_name");
		
		current_hotel_name = document.getElementById("current_hotel_name");
		
		if (hotel_name_in_form.value == current_hotel_name.value)
		{
			start_sletoh_one_hotel_request();	
			return false;
		}
	}
	
	return true;
	
}


//=====================================================================================

function start_sletoh_one_hotel_request()
{
	start_sletoh_request();
	return;
}

//=====================================================================================

function update_hotel_room_price()
{
	//alert("update_room_price");
	var url = "ajax.php";
	var pars = 'action=hotel_room_price_redisplay&sletoh_search_id='+sletoh_search_id;

	var myAjax = new Ajax.Updater( 'hotel_room_price' , url,

							{ method: 'get',
							  parameters: pars
							  
							}

						 );
	
}


//=====================================================================================
//=====================================================================================
//=====================================================================================


	function js_eval(originalRequest)
	{
		try{

			eval(originalRequest.responseText);	
		}
		catch(err)
		{
			
		}
	}

	
	
	
//=====================================================================================
//=====================================================================================
	function add_world_markers()
	{
		
		var url = "ajax.php";
		var pars = "action=world_map";
		var myAjax = new Ajax.Request( url,

									{ method: 'get',
									  parameters: pars,
									  onComplete: js_eval
									}

								 );
		
	}		

//=====================================================================================
//=====================================================================================
	function add_city_markers()
	{
		
		var url = "ajax.php";
		var pars = "action=city_map";
		var myAjax = new Ajax.Request( url,

									{ method: 'get',
									  parameters: pars,
									  onComplete: js_eval
									}

								 );
		
	}		

//=====================================================================================
//=====================================================================================	
//=====================================================================================
//=====================================================================================
	function add_landmark_markers()
	{
		
		var url = "ajax.php";
		var pars = "action=landmark_map&landmark_id="+current_landmark_id;
		var myAjax = new Ajax.Request( url,

									{ method: 'get',
									  parameters: pars,
									  onComplete: js_eval
									}

								 );
		
	}		

//=====================================================================================
//=====================================================================================
//=====================================================================================

function add_hotel_markers()
	{
	
		var url = "ajax.php";
		var pars = "action=hotel_map&hotel_id="+current_hotel_id;
		var myAjax = new Ajax.Request( url,

									{ method: 'get',
									  parameters: pars,
									  onComplete: js_eval
									}

								 );
		
	}


