//

if($('#dh_rmatrix_table_reservation_a_form_id').length > 0){

	$('#dh_rmatrix_table_reservation_a_form_id').validate({
        rules: {
            datum : {
              required: true,
            },
            uhrzeit : {
              required: true,
            },
            personen : {
              min: 1		
            },
            nachname : {
              required: true,
            },
            email	: {
              required: true,
              email: true
            },
            telefon	: {
              required: true
            },
            privacy	: {
              required: true
            }
        },
        submitHandler: function() {
        
            var user = 'Wirtshaus Vögele-website-api';
            var pass = '6bdb400c-5284-40d2-b3c7-5308817559f5';
            
            var get_token_url = 'https://api.getatable.eu/Prod/connect/token';
            var post_reservation_request = 'https://api.getatable.eu/Prod/api/reservation-requests';

            $.ajax({
                type: 'POST',
                url: get_token_url,
                contentType: 'application/x-www-form-urlencoded',
                accepts: 'application/json; charset=utf-8',
                data: jQuery.param({
                    client_secret: 'rgashkdlsafdssedgfdfg.254',
                    client_id: 'client',
                    grant_type: 'password',
                    username: user,
                    password: pass,
                }),
                success: function (result) {
            
                    sendReservationRequest(result.access_token);
            
                },
                error: function (jqXHR, textStatus, errorThrown) {

                },
            });


            function sendReservationRequest(token) {
            	
                //Der Senden-Button soll eine Lade-Grafik erhalten und nicht mehr klickbar sein.
            	$('#dh_rmatrix_table_reservation_a_form_id .dh_send_button').addClass('dh_btn_loading_1');
                
                //let res_obj = new ReservationRequest();
                var res_obj = new Object();
                res_obj.adultsCount = parseInt($('select[name="personen"]').val());
                res_obj.childrenCount = 0;
                res_obj.infantsCount = 0;
                                            
                var day=$('input[name="datum_submit"]').val();
                var time=$('select[name="uhrzeit"]').val();
                var time_visible=$('select[name="uhrzeit"] option:selected').html();
                var time_ar=time.split(':');
                var hour=time_ar[0];
                var minute=time_ar[1];
                
                var dst_indicator=$('select[name="uhrzeit"]').attr('data-dh-dst');
                res_obj.startTime=day+'T'+hour+':'+minute+':00+'+dst_indicator+':00';

                //10.11.2022: Braucht es nicht mehr, weil mit PHP ermittelt wird, ob für das angefragte Datum DST gilt oder nicht                //var time_prepared = new Date(day);
                //time_prepared.setHours(
                    //parseInt(hour, 10),
                    //parseInt(minute, 10));
                //res_obj.startTime = time_prepared;

                console.log(res_obj.startTime);                

                res_obj.firstName = $('input[name="vorname"]').val();
                res_obj.lastName = $('input[name="nachname"]').val();
                res_obj.email = $('input[name="email"]').val();
                res_obj.phone = $('input[name="telefon"]').val();
                res_obj.notes = $('textarea[name="mitteilung"]').val();
                
                res_obj.privacyConsent = true;
                res_obj.newsletterConsent = false;
				
                $.ajax({
                    type: 'POST',
                    url: post_reservation_request,
                    contentType: 'application/json',
                    accepts: 'application/json; charset=utf-8',
                    data: JSON.stringify(res_obj),
                    beforeSend: function (request) {
                    	request.setRequestHeader('Authorization', 'bearer ' + token);
                    },
                    success: function (result) {
                        
						$('.dh_rmatrix_table_reservation_a_1_1_2').fadeIn();
                                                    
                        $('html, body').animate({
                            scrollTop: ($('#dh_rmatrix_table_reservation_a_form_id').eq(0).offset().top-100)
                        }, 600, function(){
                            $('#dh_rmatrix_table_reservation_a_form_id').hide();
                        });
                                                
						//Tracking GTM                        
                        if(typeof dataLayer != 'undefined'){
                            dataLayer.push({
                                'event': 'request_sent'
                            });
                        }
                        
                    },
                    error: function (jqXHR, textStatus, errorThrown) {                        
                                    
						$('.dh_rmatrix_table_reservation_a_1_1_3').fadeIn();
                                                
                        $('html, body').animate({
                            scrollTop: ($('#dh_rmatrix_table_reservation_a_form_id').eq(0).offset().top-100)
                        }, 600, function(){
                            $('#dh_rmatrix_table_reservation_a_form_id').hide();
                        });

                    },
                });

                $.post('/de/einstellungen/dh-table-reservation-logger/', {'first_name':res_obj.firstName, 'last_name':res_obj.lastName, 'time':time_visible, 'lang':$('html').attr('lang'), 'all_data':JSON.stringify(res_obj)}, function(data) {

                });	                

            }

        }
	});

	
	if($('#dh_datum').length>0){
		
		var disableDate = new Date();

        /*
		var arrival = $('#dh_datum').pickadate({
			format: 'ddd, dd.mm.yyyy',
			formatSubmit: 'yyyy-mm-dd',
			today: "",
			clear: "",
			min: disableDate,
	
		});
		var arrivalPicker = arrival.pickadate('picker');
		*/
		
		var arrival = $('#dh_datum').pickadate({
			format: 'ddd, dd.mm.yyyy',
			formatSubmit: 'yyyy-mm-dd',
			today: "",
			clear: "",
			min: disableDate,
			disable: [
							]				
	
		});
        
        /*        
		var arrival = $('#dh_datum').pickadate({
			format: 'ddd, dd.mm.yyyy',
			formatSubmit: 'yyyy-mm-ddT00:00:00.000Z',
			today: "",
			clear: "",
			min: disableDate,
			disable: [
							]				
	
		});
        */        
		var arrivalPicker = arrival.pickadate('picker');

	}
		
	//Wenn focus nicht deaktiviert wird, oeffnet sich der Datepicker automatisch, wenn das Reisedatum nicht ausgewaehlt wurde und validate.js den Focus auf das Reisedatum setzt
	$('#dh_datum').off('focus');
    
    
	//Bei Pageload werden Standard-Kuechenzeiten geladen     
    dhTableReservationHandler('default');


    $(document).on('change', '#dh_datum', function(e){
        
		//var dh_uhrzeit=$('select[name="uhrzeit"]').val()
        //var dh_datum=$('#dh_datum').val();
        var dh_datum=$('input[name="datum_submit"]').val();
        dhTableReservationHandler(dh_datum);
    
    });
    

    $(document).on('click', ".dh_rmatrix_table_reservation_a_overlay_1_close", function(e){
        
        e.preventDefault();
        $('.dh_rmatrix_table_reservation_a_overlay_1').hide();
    
    });    

}

function dhTableReservationHandler(date){
	
    var url=$('select[name="uhrzeit"]').attr('data-dh-url');
    
    $('select[name="uhrzeit"]').addClass('dh_select_1_loading_1').prop('disabled', true);
    var first_option=$('select[name="uhrzeit"] option').eq(0).prop('outerHTML');

	$.get(url, {'date':date}, function(data) {

        //alert(data);
		var dh_result_1=$($.parseHTML(data)).filter('.dh_result_1');
		if(dh_result_1.length==1){
        	$('select[name="uhrzeit"]').html(first_option+dh_result_1.html());
        }
        
        
        if(date!='default'){
            var dh_debug_1=$($.parseHTML(data)).filter('.dh_debug_1');
            if(dh_debug_1.length==1){
                //$('.dh_rmatrix_table_reservation_a_debug').html(dh_debug_1.html());
            }
        }
        $('select[name="uhrzeit"]').removeClass('dh_select_1_loading_1').prop('disabled', false);
        
		var dh_result_2=$($.parseHTML(data)).filter('.dh_result_2');
		if(dh_result_2.length==1){
        	$('select[name="uhrzeit"]').attr('data-dh-dst',dh_result_2.html());
        }
        
	});
    
}

$('.dh_formular_typ_1 textarea').on('keyup',function(){

	var characterCount = $(this).val().length,
	current = $('.dh_rmatrix_table_reservation_a_1_1_1_1_5_2_1'),
	maximum = $('.dh_rmatrix_table_reservation_a_1_1_1_1_5_2_2'),
	theCount = $('.dh_rmatrix_table_reservation_a_1_1_1_1_5_2');
	
	current.text(characterCount);
	
	/*
	if (characterCount < 100) {
		current.css('color', '#666');
	}
	if (characterCount > 99 && characterCount < 140) {
		current.css('color', '#6d5555');
	}
	if (characterCount > 139 && characterCount < 200) {
		current.css('color', '#793535');
	}
	if (characterCount > 199 && characterCount < 250) {
		current.css('color', '#841c1c');
	}
	if (characterCount > 249 && characterCount < 299) {
		current.css('color', '#8f0001');
	}
	*/
	
	if (characterCount >= 70) {
		maximum.css('color', '#8c2728');
		current.css('color', '#8c2728');
		theCount.css('font-weight', 'bold');
	}
	else {
		maximum.css('color', '#444444');
		current.css('color', '#444444');
		theCount.css('font-weight', 'normal');
	}


});