if ($('.checkin').length) {

	// trigger datepicker
	$('.checkin-input').datepicker({
		dateFormat: "dd-mm-yy",
		monthNames: [ lang_arr.january,lang_arr.fabriary,lang_arr.march,lang_arr.april,lang_arr.may,lang_arr.june,lang_arr.jully,lang_arr.august,lang_arr.september,lang_arr.october,lang_arr.november,lang_arr.december ],
		dayNamesMin: [ lang_arr.short_day_sun,lang_arr.short_day_mon,lang_arr.short_day_tue,lang_arr.short_day_wed,lang_arr.short_day_thu,lang_arr.short_day_fri,lang_arr.short_day_sat ],
		firstDay:1,
		minDate: (typeof js_configurations !== 'undefined' && js_configurations.allow_past_reservations) ? null : new Date(),
		onSelect: function(dateText, inst) {
			if (typeof reset_search === "function") { 
				reset_search();
			}
			setTimeout(function(){ $('.checkout-input').datepicker('show'); }, 500);
	    },
	    onClose: function (selectedDate) {
            var myDate = $(this).datepicker('getDate'); 
                myDate.setDate(myDate.getDate()+1); 
            $('.checkout-input').datepicker('setDate', myDate);
        }
		});
	$('.checkout-input').datepicker({
		dateFormat: "dd-mm-yy",
		monthNames: [ lang_arr.january,lang_arr.fabriary,lang_arr.march,lang_arr.april,lang_arr.may,lang_arr.june,lang_arr.jully,lang_arr.august,lang_arr.september,lang_arr.october,lang_arr.november,lang_arr.december ],
		dayNamesMin: [ lang_arr.short_day_sun,lang_arr.short_day_mon,lang_arr.short_day_tue,lang_arr.short_day_wed,lang_arr.short_day_thu,lang_arr.short_day_fri,lang_arr.short_day_sat ],
		firstDay:1,
		minDate: (typeof js_configurations !== 'undefined' && js_configurations.allow_past_reservations) ? null : new Date(),
		onSelect: function(dateText, inst) {
			if (typeof reset_search === "function") { 
				reset_search();
			}
	    }
		});

	// trigger for div
	$('.form-box.checkin .fa-calendar').on('click', function () {
		$('.checkin-input').datepicker('show');
	});
	$('.form-box.checkout .fa-calendar').on('click', function () {
		$('.checkout-input').datepicker('show');
	});
}

if($('select[name^=adult_count]').val() == '0')
{
	$('select[name^=adult_count]').val(2);
	$('select[name^=child_count]').val(0);
}
bindAddRoom();
$('.child-count').trigger('change');

$('.oda_kisi .deger').click(function(e){
	 $('.oda_kisi .secimler').toggleClass('display');
});

$(document).mouseup(function(e) {
    if ($(".oda_kisi").has(e.target).length === 0 && $(".secimler").has(e.target).length === 0) {
    	$('.oda_kisi .secimler').removeClass('display');
    }
});

$('.add-room').click(function(){
	$(this).parent().find('.oda').last().after($(this).parent().find('.oda').last().clone());
	$('.oda').last().find('select[name^="adult_count"]').val(2);
	$('.oda').last().find('select[name^="child_count"]').val(0);
	bindAddRoom();
	$('.child-count').trigger('change');
});

function bindAddRoom()
{
	$('.child-count').unbind();
	$('.remove-room').unbind();
	$('.person-count').unbind();
	$('.remove-room').show();
	$('.remove-room').first().hide();
	$('.remove-room').click(function(){
		$(this).closest('.oda').remove();
		bindAddRoom();
	});

	$('.person-count').change(function(){
		bindAddRoom();
	});
	
	$('.child-count').change(function(e){
		e.preventDefault();
		$(this).parent().parent().find('.child_age_div').hide();
		for(i=1; i<=$(this).val(); i++)
			$(this).parent().parent().find('.child_age_'+i+'_div').show();
		reset_search();
	});
	
	if($('.oda').length == 3)
		$('.add-room').hide();
	else
		$('.add-room').show();

	var room_count = 0;
	var adult_count = 0;
	var child_count = 0;
	$('.oda').each(function( index ) {
		$(this).find('.room-number').html((index+1) + '. ' + lang_arr.room);
		adult_count += parseInt($(this).find('select[name^="adult_count"]').val());
		child_count += parseInt($(this).find('select[name^="child_count"]').val());
		room_count++;
	});
	var person_count_str = room_count+' '+lang_arr.room+' '+adult_count+' '+lang_arr.adult+' ';
	if(child_count > 0)
		person_count_str += child_count + ' ' + lang_arr.child;
	$('.oda_kisi .deger').html(person_count_str);
	
	reset_search();
}

function _n(value, currency_symbol)
{
	if(currency_symbol == 'TL')
		return value + ' '+currency_symbol;
	return currency_symbol + ' '+value;
}

function reset_search()
{
	$('#search_result').html('<div class="uyari"><i class="fa fa-info-circle" aria-hidden="true"></i> '+lang_arr.search_room_info+'</div>');		
	
	$('#reservation_start_date').text(" - ");
	$('#reservation_end_date').text(" - ");
	$('#reservation_room_types').text(" - ");
	$('#reservation_adult_count').text(" - ");
	$('#reservation_child_count').text(" - ");
	$('#reservation_total_price').html(_n(0, currency_symbol));
	$('#reservation_general_price').html(_n(0, currency_symbol));
	$('#campaign_discount_div').hide();
	$('#giftcheck_discount_div').hide();
	$('#reservation_info').hide();
	$('.rezervasyon-gizli').hide();
}

function parseDate(str) {
    var mdy = str.split('-');
    return new Date(mdy[2], mdy[1]-1, mdy[0]);
}

function datediff(first, second) {
    return Math.round((second-first)/(1000*60*60*24));
}

function getReservationRooms(force=false)
{
	var reservation_rooms = [];
	$('.add-room-select').each(function( index ) {
		var room_selected = $(this).data('room-selected');
		if(room_selected)
		{
			var room_type_id = $(this).data('id'),
			    room_count = $(this).val(),
			    adult_count = $(this).data('adult'),
			    child_count = $(this).data('child');
				child_age_1 = $(this).data('child-age-1');
				child_age_2 = $(this).data('child-age-2');
				child_age_3 = $(this).data('child-age-3');
				child_age_4 = $(this).data('child-age-4');
				child_age_5 = $(this).data('child-age-5');
				additional_services = $(this).data('additional-services');
				
		    if(room_count > 0)
		    {
		    	reservation_rooms.push({
					'room_type_id':room_type_id, 
					'room_count':room_count, 
					'adult_count':adult_count, 
					'child_count':child_count, 
					'child_age_1':child_age_1, 
					'child_age_2':child_age_2, 
					'child_age_3':child_age_3, 
					'child_age_4':child_age_4, 
					'child_age_5':child_age_5,
					'additional_services': (!$.isArray(additional_services)) ? $.parseJSON(additional_services) : additional_services
				});
		    }
		}
	});
	if(force && reservation_rooms.length == 0)
	{
		res_error('', 'Oda seçimi yapınız');
		return false;
	}
	
	return reservation_rooms;
}
function collectReservationData(force=false)
{
	var reservation_rooms = getReservationRooms(force);

	var giftcheck_code = '';
	if($('#giftcheck_code').length > 0)
		giftcheck_code = $('#giftcheck_code').val();
	ajaxdata = JSON.stringify({start_date: $('#start_date').val(), end_date: $('#end_date').val(), reservation_rooms: reservation_rooms, giftcheck_code: giftcheck_code});
	return ajaxdata;
}

function formatNumber(num) {
	num = (Math.round(num * 100) / 100).toFixed(2);
	num = num.toString().replace(".", ",");
	return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.')
  }

function calculatePrice()
{
	ajaxdata = collectReservationData();
	$.ajax({
		type: "post",
		url: site_url + "ajax/reservation/calculateprice",
		dataType: 'json',
        contentType: "application/json; charset=utf-8",
        data: ajaxdata,
			success: function(result) 
			{
				$('#giftcheck_discount_div').hide();
				$('#campaign_discount_div').hide();
				$('.rezervasyon-gizli').show();
				
				param = result.param;
				$('#reservation_adult_count').html(param.adult_count);
				$('#reservation_child_count').html(param.child_count);
				$('#reservation_room_types').html(param.room_info);
				$('#reservation_additional_services').html(param.additional_service_info);
				$('#reservation_total_price').html(_n(formatNumber(param.total_price), currency_symbol));
				$('#reservation_service_price').html(_n(formatNumber(param.service_price), currency_symbol));
				$('#reservation_general_price').html(_n(formatNumber(param.general_price), currency_symbol));
				
				if(param.giftcheck_error != undefined && param.giftcheck_error != '')
					res_error('#giftcheck_code', param.giftcheck_error);
				
				if(param.giftcheck_discount > 0)
				{
					$('#giftcheck_discount_div').show();
					$('#reservation_giftcheck_discount').html('-'+_n(param.giftcheck_discount, currency_symbol));
					if(typeof param.agent_detail !== 'undefined')
					{
						if(param.agent_detail.memberid > 0)
						{
							if(typeof window['memberChanged'] === 'function')
								window['memberChanged'](param.agent_detail.memberid);
						}
						else
						{
							if(typeof window['fillMemberInfo'] === 'function')
								window['fillMemberInfo'](param.agent_detail);
						}
					}
				}
				if(param.campaign_discount > 0)
				{
					$('#campaign_discount_div').show();
					$('#reservation_campaign_discount').html('-'+_n(param.campaign_discount, currency_symbol));
				}
				
				if(param.adult_count == 0)
				{
					$('#reservation_info').hide();
					$('.rezervasyon-gizli').hide();
					return;
				}
				
				if($('#reservation_info').length && param.room_info != '')
					$('#reservation_info').show();
			},
			error: function(result) {
				res_error('', "Beklenmeyen bir hata oluştu.\nLütfen yöneticiye bildiriniz");
			}
	});
	return false;
}

function res_error(selector, msg)
{
	if (typeof __error !== "undefined")
		__error(msg);
	else
		_error(selector, msg);
}

function searchRoom()
{
	if($('#start_date').val() == '' || $('#end_date').val() == '' || parseInt($('select[name^=adult_count]').val()) <= 0)
	{
		res_error('.otelapi_search', lang_arr.search_validation);
		return false;
	}

	reset_search();
	var ajaxdata = getJsonDataFromForm("form_reservation");
	$.ajax({
		type: "post",
		url: site_url + "ajax/reservation/searchroom",
		dataType: 'json',
        contentType: "application/json; charset=utf-8",
        data: ajaxdata,
			success: function(result) {
				if(result.status =="success")
				{
					$('#search_result').html(result.message);
					$('#reservation_start_date').html($('#start_date').val());
					$('#reservation_end_date').html($('#end_date').val());
					bindActions();
					if(result.param > 0)
						$(".select-room[data-id='"+result.param+"']").trigger("click");
				}
				else
					res_error('', result.message);
			},
	});
	return false;
}

function roomCapacityChanged(select)
{
	calculatePrice();
	var room_id = $(select).data('id');
	var remain_room_count = $(select).data('remain-room-count');
	var current_room_count = 0;
	var rooms = $('select[data-id="'+ room_id +'"]');
	var selected_rooms = [];
	for(i=0; i<rooms.length; i++)
		if($(rooms[i]).data('room-selected'))
		{
			selected_rooms.push($(rooms[i]).data('uniqueid'));
			current_room_count += parseInt($(rooms[i]).val());
		}
	if(current_room_count >= remain_room_count)
	{
		$(`.oda_kutulari[data-id="${room_id}"]`).each(function(){
			if($.inArray($(this).data('uniqueid'), selected_rooms) == -1)
				$(this).addClass('oda-kapasite-disabled');
		});
	}
	else
	{
		for(i=0; i<rooms.length; i++)
		{
			if(!$(rooms[i]).data('room-selected'))
			{
				$(rooms[i]).find('option').remove();
				for(j=1; j <= (remain_room_count - current_room_count); j++)
					$(rooms[i]).append('<option value="'+j+'">' + j + '</option>');
			}
		}
		
		$(`.oda_kutulari[data-id="${room_id}"]`).removeClass('oda-kapasite-disabled');
	}
}

function bindActions()
{
	$('.oda-ekle-cikar-btn').click(function(){
		var uniqueid = $(this).data('uniqueid');
		capacity_select = $('select[data-uniqueid="'+uniqueid+'"]');
		$('#ek_hizmet_' + uniqueid).toggle();
		if($(this).find('i').hasClass('fa fa-plus'))
		{
			capacity_select.data('room-selected', true);
			capacity_select.attr('disabled', 'true');
			$(this).removeClass('koyu');
			$(this).addClass('kirmizi');
			$(this).html('<i class="fa fa-trash" aria-hidden="true"></i> ' + lang_arr.delete);
		}
		else
		{
			capacity_select.data('room-selected', false);
			capacity_select.removeAttr('disabled');
			$(this).removeClass('kirmizi');
			$(this).addClass('koyu');
			$(this).html('<i class="fa fa-plus" aria-hidden="true"></i> ' + lang_arr.add);
		}
		roomCapacityChanged(capacity_select);
	});
	
	$('.hizmet-ekle-cikar-btn').click(function(){
		var uniqueid = $(this).data('uniqueid');
		var capacityuniqueid = $(this).data('capacityuniqueid');
		var roomid = $(this).data('roomid');
		capacity_select = $('select[data-uniqueid="'+capacityuniqueid+'"]');
		additional_service_select = $('.ek-hizmet-select[data-uniqueid="'+uniqueid+'"]');
		additional_services = capacity_select.data('additional-services');
		if($(this).find('i').hasClass('fa fa-plus'))
		{
			additional_service_select.attr('disabled', 'true');
			$(this).removeClass('koyu');
			$(this).addClass('kirmizi');
			$(this).html('<i class="fa fa-trash" aria-hidden="true"></i> ' + lang_arr.delete);
			
			if(!$.isArray(additional_services))
				additional_services = $.parseJSON(additional_services);
			
			additional_services.push({
				'id': additional_service_select.data('serviceid'),
				'name': additional_service_select.data('name'),
				'count': additional_service_select.val(),
			});
		}
		else
		{
			additional_service_select.removeAttr('disabled');
			$(this).removeClass('kirmizi');
			$(this).addClass('koyu');
			$(this).html('<i class="fa fa-plus" aria-hidden="true"></i> ' + lang_arr.add);
			additional_services = $.parseJSON(additional_services);
			additional_services = additional_services.filter(function( obj ) {
			  return obj.id !== additional_service_select.data('serviceid');
			});
		}
		
		capacity_select.data('additional-services', JSON.stringify(additional_services));
		
		calculatePrice();
	});

	$('.select-room').click(function(){
		var room_id = $(this).data('id');
		if($('#room_prices_' + room_id).css('display') == 'none')
			$(this).html(lang_arr.hide_prices + ' <i class="fa fa-chevron-circle-up" aria-hidden="true"></i>');
		else
			$(this).html(lang_arr.show_prices + ' <i class="fa fa-chevron-circle-down" aria-hidden="true"></i>');
		$('#room_prices_' + room_id).toggle();
		scrollto('#room_type_' + room_id, 10);
	});

	$(function() {
		$('[data-toggle="tooltip"]').tooltip();
	})

	$('.open-room-detail').click(function(){
		var room_id = $(this).data('id');

		var ajaxdata = JSON.stringify({room_type_id:room_id, start_date:$('#start_date').val(), end_date:$('#end_date').val()});
		$.ajax({
			type: "post",
			url: site_url + "ajax/reservation/roominfo",
			dataType: 'json',
	        contentType: "application/json; charset=utf-8",
	        data: ajaxdata,
				success: function(result) {
					if(result.status =="success")
					{
						openModall(result.param.title, result.param.body);
						if ($('.booking-page-gallery').length) 
						{
							setTimeout(function() {
								$('.booking-page-gallery').owlCarousel(
										{
											loop : ($('.booking-page-gallery .item').length > 1),
											lazyLoad:true,
											margin : 10,
											nav : true,
											center : false,
											navText : [ '<i class="fa fa-angle-left"></i>',
													'<i class="fa fa-angle-right"></i>' ],
											dots : false,
											autoWidth : false,
											autoplay : true,
											autoplayTimeout : 5000,
											autoplayHoverPause : true,
											responsive : {
												0 : {
													items : 1
												},
												480 : {
													items : 2
												},
												600 : {
													items : 2
												},
												1000 : {
													items : 3
												}
											}
										});
							}, 300);
						};
						if(typeof thmLightBox == 'function')
							thmLightBox();
					}
					else
					{
						res_error('', result.message);
					}
				}
		});
		return false;
	});
	$('.open-additional-service-detail').click(function(){
		var service_id = $(this).data('id');
		var ajaxdata = JSON.stringify({service_id: service_id});
		$.ajax({
			type: "post",
			url: site_url + "ajax/reservation/additionalserviceinfo",
			dataType: 'json',
	        contentType: "application/json; charset=utf-8",
	        data: ajaxdata,
				success: function(result) {
					if(result.status =="success")
					{
						openModall(result.param.title, result.param.body);
						if ($('.booking-page-gallery').length) 
						{
							setTimeout(function() {
								$('.booking-page-gallery').owlCarousel(
										{
											loop : ($('.booking-page-gallery .item').length > 1),
											lazyLoad:true,
											margin : 10,
											nav : true,
											center : false,
											navText : [ '<i class="fa fa-angle-left"></i>',
													'<i class="fa fa-angle-right"></i>' ],
											dots : false,
											autoWidth : false,
											autoplay : true,
											autoplayTimeout : 5000,
											autoplayHoverPause : true,
											responsive : {
												0 : {
													items : 1
												},
												480 : {
													items : 2
												},
												600 : {
													items : 2
												},
												1000 : {
													items : 3
												}
											}
										});
							}, 300);
						};
						if(typeof thmLightBox == 'function')
							thmLightBox();
					}
					else
					{
						res_error('', result.message);
					}
				}
		});
		return false;
	});
}
if($('#start_date').val() != '' && $('#end_date').val() != '' && parseInt($('select[name^=adult_count]').val()) > 0)
	setTimeout(function(){searchRoom();}, 300);