// Open Menus
// let width = $(window).width();

function openEnquiry()
{
    if(width > 992){
        $('.enquiry-slider').toggleClass('sliding');
        $('.viewing-slider').addClass('sliding');
        $('.download-slider').addClass('sliding');
        $('body').toggleClass('enquiry-is-open');
        $('body').removeClass("viewing-is-open download-is-open nav-is-open");
    } else{
        $('#enquiryModal').modal('show');
    }
}

function openViewing()
{
    if(width > 992){
        $('.viewing-slider').toggleClass('sliding');
        $('.download-slider').addClass('sliding');
        $('.enquiry-slider').addClass('sliding');
        $('body').toggleClass('viewing-is-open');
        $('body').removeClass("enquiry-is-open download-is-open nav-is-open");
    } else{
        $('#viewingModal').modal('show');
    }
}

function openDownload()
{
    if(width > 992){
        $('.download-slider').toggleClass('sliding');
        $('.viewing-slider').addClass('sliding');
        $('.enquiry-slider').addClass('sliding');
        $('body').toggleClass('download-is-open');
        $('body').removeClass("enquiry-is-open viewing-is-open nav-is-open");
    }
}

var hash = location.hash;

if(hash == '#enquiry'){
    openEnquiry();
}

if(hash == '#viewing'){
    openViewing();
}

if(hash == '#download'){
    openDownload();
}

// $('.enquiry-button').on('click', function () {
//     openEnquiry();
// });

// $('.viewing-button').on('click', function () {
//     openViewing();
// });

// $('.download-button').on('click', function () {
//     openDownload();
// });

$('#dev-filter-refresh').on('click', function(){

});

$('body').on('submit', '[ajax-form=true]', function(e){
	e.preventDefault();

	var url = $(this).attr('action');
	var type = $(this).attr('method');
	var data = new FormData(this);
	var dataRefresh1 = $(this).attr('data-refresh-1');
	var dataRefresh2 = $(this).attr('data-refresh-2');
	var dataRefresh3 = $(this).attr('data-refresh-3');

	$.ajax({
		url: url,
		type: type,
		data: data,
		success: function(){
			$('.modal').modal('hide');
			$(dataRefresh1).load(location.href+' '+dataRefresh1+'>*','');
			$(dataRefresh2).load(location.href+' '+dataRefresh2+'>*','');
			$(dataRefresh3).load(location.href+' '+dataRefresh3+'>*','');
			$('[ajax-form=true]').trigger('reset');
		},
		cache: false,
        contentType: false,
        processData: false
	})
});

$('body').on('submit', '[prepend-target]', function(e){
	var target = $(this).attr('prepend-target');
	var fields = $(this).attr('prepend-fields');
	$(fields).each(function(){
		var val = $(this).val();
		var targetVal = $(target).val();
		$(target).val(val+'<br>'+targetVal);
	});
});

$('.brochureSelect').on('change', function(){
	var value = $(this).val();
	console.log(value);
	$('#brochureForeignKey').val(value);
});

$('body').on('change', '[on-change=submit]', function(){
	var form = $(this).attr('form-target');
	$(form).submit();
});

$('#developmentSelect').on('change', function(){
	console.log('test');
	var development = $(this).val();
	var d = new Date();
	var month = d.getFullYear() + "-" + (d.getMonth()+1) + "-" + d.getDate();
	$.ajax({
		url: '/ajax/developments/booking-calendar/'+development+'/'+month,
		type: 'get',
		success: function(html){
			$('#arrangeViewing').hide();
			$('#arrangeViewing').html(html);
			$('#arrangeViewing').fadeIn();
			$('#viewingForegin').val(development);
		}
	});
});

$('body').on('click', '[load-month]', function(){
	var development = $(this).attr('development-id');
	var month = $(this).attr('load-month');
	$.ajax({
		url: '/ajax/developments/booking-calendar/'+development+'/'+month,
		type: 'get',
		success: function(html){
			$('#arrangeViewing').hide();
			$('#arrangeViewing').html(html);
			$('#arrangeViewing').fadeIn();
		}
	});
});

$('body').on('click', '[viewing-date]', function(){
	var development = $(this).attr('development-id');
	var date = $(this).attr('viewing-date');
	var prettyDate = $(this).attr('pretty-date');

	$('[viewing-date]').removeClass('selected');
	$(this).addClass('selected');

	$.ajax({
		url: '/ajax/developments/booking-calendar-times/'+development+'/'+date,
		type: 'get',
		success: function(html){
			$('#appointment').val('');
			$('#viewingTimes').hide();
			$('#viewingTimes').html(html);
			$('#viewingTimes').fadeIn();
			$('span.selected-date').html(prettyDate);
			$('span.selected-time').empty();
			$('.no-date-selection').fadeOut();
			$('.date-selection').fadeIn();
		}
	});
});

$('body').on('change', '.viewing-time', function(){
	var time = $(this).attr('viewing-time');
	var appointment = $(this).val();
	$('#appointment').val(appointment);
	$('span.selected-time').html(' at '+time);
});

$('body').on('submit', '#viewingForm', function(e){
	var appointment = $('#appointment').val();
	if (appointment.length==0){
		e.preventDefault();
		$('div.validation').empty().append('<div class="alert alert-danger">Please choose an appointment time</div>')
	}
});


function stopVideos()
{
	$('video').each(function() {
		$(this).get(0).pause();
	});
}

$('body').on('click', '.swiper-pagination-bullet', function(){
	stopVideos();
});

$(function(){
  var hash = window.location.hash;
  hash && $('ul.nav a[href="' + hash + '"]').tab('show');

  $('.nav-tabs a').click(function (e) {
    $(this).tab('show');
    var scrollmem = $('body').scrollTop();
    window.location.hash = this.hash;
    $('html,body').scrollTop(scrollmem);
  });
});


// -- Simple Accept Cookie Modal
let cookie = Cookies.get('cookie-accept');
let cookiefunctional = Cookies.get('cookie-functional');
let cookiesPerformance = cookie == 'true';
let cookieModalShown = cookiefunctional == 'true';
var myModal = new bootstrap.Modal(document.getElementById("cookieModal"), {});

const sendGoogleConsent = (mode, performance) => {
    console.log('gtag consent: ' + mode + ' ' +JSON.stringify(performance));
    if (typeof gtag === "function") { 
        gtag('consent', mode, {
            'ad_storage': performance ? 'granted' : 'denied',
            'ad_user_data': performance ? 'granted' : 'denied',
            'ad_personalization': performance ? 'granted' : 'denied',
            'analytics_storage': performance ? 'granted' : 'denied',
        });
    } else {
        console.log('gtag GTM not installed');
    }
}

sendGoogleConsent('default', cookiesPerformance); 

console.log('test', cookieModalShown);
if(!cookieModalShown){
    console.log(cookieModalShown);
    myModal.show();
}

const acceptButton = document.querySelector('[data-role="acceptCookies"]');
const rejectButton = document.querySelector('[data-role="rejectCookies"]');

if(acceptButton!=null) {
	acceptButton.addEventListener('click', (event) =>{
		console.log('click accept');
		Cookies.set('cookie-accept', 'true', { expires: 273, secure: true});
		Cookies.set('cookie-functional', 'true', { expires: 273, secure: true});
		let cookieModalShown = true;
		myModal.hide();
    	sendGoogleConsent('update', true);
	})
}

if(rejectButton!=null) {
	rejectButton.addEventListener('click', (event) =>{
		console.log('click reject');
		Cookies.set('cookie-accept', 'false', { expires: 0, secure: true });
		Cookies.set('cookie-functional', 'true', { expires: 273, secure: true});
		let cookieModalShown = true;
		myModal.hide();
    	sendGoogleConsent('update', false);
	})
}