/*Функции работы с номером*/
///////////////////////////
	/*
	 * Устанавливает всю информацию по выбранному номеру
	 */
	function set_all_room_info(){
		set_max_guests();
		set_room_price();
		set_room_images();
	}

	/*
	 * Выбираем номер по идентификатору номера
	 */
	function set_room(id){
		$("#room").val(id);
	}

	/*
	 * Получаем идентификатор выбранного номера
	 * Возвращает идентификатор выбранного номера
	 */
	function get_room(){
		return parseInt($("#room").val());
	}

	/*
	 * Выводим картинки выбранного номера
	 */
	function set_room_images(){
		$("#pics").empty();
		var id = get_room();
		for(var item in rooms[id].images){
			$("#pics").append('<a href="'+rooms[id].images[item].image+'" onclick="return hs.expand(this);"><img src="'+rooms[id].images[item].small_image+'" alt="image"/></a>');
		}
	}

	/*
	 * Установить максимальное количество проживающих для выбранного номера
	 */
	function set_max_guests(){
		$("#maxguests").text(rooms[get_room()].volume);
	}

	/*
	 * Установить цену выбранного номера
	 */
	function set_room_price(){
		$("#roomprice").text(parseInt(rooms[get_room()].price)+' руб.');
	}

	/*
	 * Получить цену выбранного номера
	 * Возвращает цену выбранного номера
	 */
	function get_room_price(){
		return parseInt(rooms[get_room()].price);
	}
///////////////////////////

/*Функции работы с датой*/
/////////////////////////
	/*
	 * Получить дату заезда в виде timestamp в миллисекундах
	 */
	function get_current_enter(){
		return parseInt($("#date_enter").datepicker("getDate").getTime());
	}

	/*
	 * Получить дату выезда в виде timestamp в миллисекундах
	 */
	function get_current_exit(){
		return parseInt($("#date_exit").datepicker('getDate').getTime());
	}

	/*
	 * Установить дату заезда: параметр количество дней от текущей даты
	 */
	function set_current_enter(enterdate){
		$("#date_enter").datepicker("setDate", enterdate);
		$("#date_enter").effect('highlight', new Array, 1500);
	}

	/*
	 * Установить дату выезда: параметр количество дней от текущей даты
	 */
	function set_current_exit(exitdate){
		$("#date_exit").datepicker("setDate", exitdate);
		$("#date_exit").effect('highlight', new Array, 1500);
	}

	/*
	 * Установить количество ночей пребывания
	 */
	function set_residence_length(length){
		$("#residencelen").text(parseInt(length));
		$("#input_residence_length").val(parseInt(length));
	}

	/*
	 * Получить количество ночей пребывания
	 */
	function get_residence_length(){
		//return parseInt($("#input_residence_length").val());
		return parseInt((get_current_exit()-get_current_enter())/1000/60/60/24);
	}

	/*
	 * Установить всю инфу по пребыванию
	 */
	function set_residence(enter, exit){
		set_current_enter(enter);
		set_current_exit(exit);
		set_residence_length(exit-enter);
	}
	
	/*
	 * Получить тайстамп из текущей даты("now"), либо из строки вида "01.12.2009"
	 */
	function gettimestamp(mtime){
		if(mtime == "now"){
			now = new Date();
			tsmp = $.datepicker.parseDate('dd-mm-yy', now.getDate()+'-'+(now.getMonth()+1)+'-'+now.getFullYear());
		}else{
			if(mtime.length == 10){
				tsmp = $.datepicker.parseDate('dd.mm.yy', mtime);
			}else{
				tsmp = $.datepicker.parseDate('d.m.yy', mtime);
			}
		}
		return parseInt($.datepicker.formatDate("@", tsmp));
	}
///////////////////////////

/*Функции работы с количеством человек*/
/////////////////////////

	/*
	 * Установить количество гостей
	 */
	function set_guest_count(count){
		var maxcount = rooms[get_room()].volume;
		if(count<=maxcount){
			$("#guests").val(parseInt(count));
		}else{
			$("#guests").val(parseInt(maxcount));
		}
	}

	/*
	 * Получить количество гостей
	 */
	function get_guests_count(){
		return parseInt($("#guests").val());
	}
///////////////////////////

/*Функции работы с ценой*/
/////////////////////////
	/*
	 * Собирает всю информацию с формы и пересчитывает цену
     */
	function recount_price()
	{
		var count = get_residence_length();
		var room_price = get_room_price();
		var action_id = get_current_action_id();
		var price = 0;
		if(actions[action_id] === undefined){
			price = count*room_price;
		}else{
			count -= (gettimestamp(actions[action_id].end)-gettimestamp(actions[action_id].start))/1000/60/60/24;
			price = count*room_price+actions[action_id].price;
		}
		$("#residence_price").text(price);
		$("#input_residence_price").val(price);
	}
///////////////////////////

/*Функции работы со специальными акциями*/
/////////////////////////
	function set_avalible_action(start, end)
	{
		var action_start = 0;
		var action_end = 0;
		var text = "";
		var current = get_current_action_id();
		$("#spec option").remove();
		$("#spec").append('<option value="0">Нет</option>');
		for(var item in actions)
		{
			action_start = gettimestamp(actions[item].start);
			action_end = gettimestamp(actions[item].end);
			if((start <= action_start)&&(end >= action_end)&&(get_room() == actions[item].roomid))
			{
				text += actions[item].name + " c "+actions[item].start+" по "+actions[item].end+" цена "+actions[item].price+"\n";
				$("#spec").append('<option value="'+item+'">'+actions[item].name+'</option>');
			}
		}
		$('#spec option[value='+current+']').attr('selected', 'yes');
	}
	
	function get_current_action_id(){
		var value = parseInt($('#spec option:selected').val());
		if(isNaN(value)){
			value = 0;
		}
		return value;
	}
///////////////////////////

/*Остальные функции*/
/////////////////////////


/*
 * Вызываем эту функцию после загрузки страницы
 */
function index(room_id){
	/* Создаем элементы комнат в select номеров */
	$("select#room option").remove();
	for(var item in rooms){
		$("select#room").append('<option value="'+item+'">'+rooms[item].name+'</option>');
	}
	/* Выбираем комнату, либо отмечаем первую */
	if(room_id != 0){
		set_room(room_id);
		set_all_room_info();
	}else{
		set_all_room_info();
	}
	/* Привязываем события */
	$("#room").change(function(){
		set_all_room_info();
		set_guest_count(get_guests_count());
		set_avalible_action(get_current_enter(), get_current_exit());
		recount_price();
    });
	$("#spec").change(function(){
		recount_price();
    });
	$("#guests").change(function(){
		set_guest_count($("#guests").val());
		recount_price();
    });
	
	/* Привязываем события */
    $("#date_enter").datepicker({ minDate: 0, showAnim: 'fadeIn', duration: 'fast',  onSelect:
        function(dateText){
			var enter_tmsp = gettimestamp(dateText);
            var exit_tmsp = get_current_exit();
			var now = gettimestamp('now');
			if(enter_tmsp >= exit_tmsp){
				set_current_exit((enter_tmsp-now)/1000/60/60/24+1);
			}
			set_residence_length((get_current_exit()-get_current_enter())/1000/60/60/24);
			set_avalible_action(enter_tmsp, exit_tmsp);
			recount_price();
        }
    });
	/* Привязываем события */
    $("#date_exit").datepicker({ minDate: 1, showAnim: 'fadeIn', duration: 'fast',  onSelect:
        function(dateText){
			var enter_tmsp = get_current_enter();
            var exit_tmsp = gettimestamp(dateText);
			var now = gettimestamp('now');
			if(exit_tmsp <= enter_tmsp){
				set_current_enter(((exit_tmsp-now)/1000/60/60/24-1)+'d');
			}
			set_residence_length((get_current_exit()-get_current_enter())/1000/60/60/24);
			set_avalible_action(enter_tmsp, exit_tmsp);
			recount_price();
        }
    });
	set_residence(5, 10);
	set_guest_count(2);
	recount_price();
	
    /* Русский текст для datepicker*/
    $.datepicker.regional['ru'];
}