$(document).ready(function(){

    function closeModal(){
        $(".modal-login").hide();
        $(".modal-match__close").trigger("click");
        $(".modal-notification__close").trigger("click");
        $(".modal-notification-switch__close").trigger("click");
        $(".bg-overflow").hide();
        $("body").removeClass("no-scroll");
    }

    var navigationBar = $(".navigationBar"),
        navigationItem = navigationBar.find(".navigationBar__items--item button.icon"),
        navigationContent = $(".navigationContentWrapper"),
        btnSwipe = navigationContent.find(".navigationArea"),
        thisItem

    navigationItem.on("click", function(event){
        event.preventDefault()
        thisItem =  $(this).attr("data-itemNav");

        if($(this).hasClass("active")){
            $(this).removeClass("active")
            $(".navigationContentWrapper[data-itemNav="+thisItem+"]").removeClass("active")
            $(".navigationContentWrapper[data-itemNav="+thisItem+"]").attr("aria-expanded", "false");
            $(".bg-overflow").removeClass("z-index-9999").hide();
            $("body").removeClass("no-scroll");
            bodyVisible()
        } else{
            $("body").addClass("no-scroll");
            navigationItem.removeClass("active")
            $(this).addClass("active")
            navigationContent.removeClass("active")
            $(".navigationContentWrapper[data-itemNav="+thisItem+"]").addClass("active")
            $(".navigationContentWrapper[data-itemNav="+thisItem+"]").attr("aria-expanded", "true");
            $(".bg-overflow").addClass("z-index-9999").show();
            bodyHidden()


            if (thisItem === 'search'){

                // Creates fake input to allow focus event after timeout on Safari
                var fakeInput = document.createElement('input')
                fakeInput.setAttribute('type', 'text')
                fakeInput.style.position = 'absolute'
                fakeInput.style.opacity = 0
                fakeInput.style.height = 0
                fakeInput.style.fontSize = '16px'

                document.body.prepend(fakeInput)

                fakeInput.focus()
                setTimeout(function (){
                    $("#sok-mobile-input").focus();

                    fakeInput.remove();
                }, 300);
            }

            if (thisItem === 'user') {
                const scripts = document.getElementsByTagName('script')

                for (let script of scripts) {
                    if (script.src && script.src === 'https://cdn.usefathom.com/script.js' && !!script.getAttribute('data-site')) {
                        fathom.trackEvent('Min side - Vis profil')
                    }
                }
            }
        }
    })

    btnSwipe.on("click",function(){
        navigationContent.removeClass("active")
        navigationItem.removeClass("active")
        bodyVisible()
        closeModal();
    })

    function bodyHidden(){$("body").css("overflow","hidden")}
    function bodyVisible(){$("body").css("overflow","auto")}



    //Swipe

    let touchstartY = 0
    let touchendY = 0


    function closeMenu(){
        if(navigationContent.hasClass("active")){
            navigationContent.removeClass("active")
            navigationItem.removeClass("active")
            $("#sok-mobile-input").blur();
            bodyVisible()
            closeModal();
        }
    }

    function handleGesture() {

        // if (touchendY > touchstartY){
        //     closeMenu();
        // }
    }

    document.addEventListener('touchstart', e => {
        touchstartY = e.changedTouches[0].screenY
    })

    document.addEventListener('touchend', e => {

        if(!e.target.classList.contains('item')){
            touchendY = e.changedTouches[0].screenY
            handleGesture()

        }
    })
    //Swipe


    $(".bg-overflow").on("click", function (e) {
        e.stopPropagation();
        closeMenu();
        closeModal();
    });

    // Set User Details
    if (navigationBar && (navigationBar.css('display') !== 'none')) {
        $.ajax({
            type: "GET",
            url: $(".navigationContentWrapper[data-itemNav='user']").attr("data-service-url"),
            success: function(data) {
                if (data) {
                    // Avatar
                    if (data.avatar) {
                        $(".navigationContentWrapper[data-itemNav='user']").find('.ntfpwa__default__profile__small').css('background', data.avatar.color);
                        $(".navigationContentWrapper[data-itemNav='user']").find('.ntfpwa__default__profile__small').text(data.avatar.initials);
                    }

                    // User Details
                    $(".navigationContentWrapper[data-itemNav='user']").find("span[name='completename']").text(data.name);
                    $(".navigationContentWrapper[data-itemNav='user']").find("dd[name='email']").text(data.email);
                    $(".navigationContentWrapper[data-itemNav='user']").find("dd[name='phone']").text(data.phone);
                    $(".navigationContentWrapper[data-itemNav='user']").find("dd[name='birthdate']").text(data.birthDate);
                    $(".navigationContentWrapper[data-itemNav='user']").find("dd[name='address']").text(data.address);
                    $(".navigationContentWrapper[data-itemNav='user']").find("dd[name='zipcode']").text(data.zipcode);
                    $(".navigationContentWrapper[data-itemNav='user']").find("dd[name='city']").text(data.city);
                    $(".navigationContentWrapper[data-itemNav='user']").find("dd[name='sex']").text(data.gender);

                    // Consents
                    if (data.consents) {
                        data.consents.forEach(consent => {
                            $(".navigationContentWrapper[data-itemNav='user']").find("dd[name='" + consent.id + "']").find('input').prop("checked", consent.checked);
                        });
                    }

                    $(".navigationContentWrapper[data-itemNav='user']").find('.loader').hide();
                    $(".navigationContentWrapper[data-itemNav='user']").find('.userDetails').show();
                } else {
                    $(".navigationContentWrapper[data-itemNav='user']").find('.loader').hide();
                    $(".navigationContentWrapper[data-itemNav='user']").find('.loginButton').show();
                }
            },
            error: function(data) {
                $(".navigationContentWrapper[data-itemNav='user']").find('.loader').hide();
                $(".navigationContentWrapper[data-itemNav='user']").find('.loginButton').show();
            }
        });
    }

    // Load idrettens login/logout/minside links dynamically
    var idrettensLinkServiceUrl = $("#idrettens-link-service").val()
    if (idrettensLinkServiceUrl) {
        $.ajax({
            type: "GET",
            url: idrettensLinkServiceUrl,
            success: function(data) {
                if (data.loginLink) {
                    $("#login-link").attr("loginUrl", data.loginLink.url);
                    $("#login-link").addClass("header__global__nav__item");
                    $("#loginTitle").text(data.loginLink.name);
                    $("#login-link").removeAttr("hidden");
                    if (data.loginLink.description) {
                        $("#loginMessage").text(data.loginLink.description);
                    } else {
                        $("#loginMessage").hide()
                    }

                    // Navigation bar
                    $(".navigationBar__items--item [data-itemNav='user']").parent().show();
                    $(".navigationContentWrapper[data-itemnav='user'] .navigationContent .loginButton a").attr("loginUrl", data.loginLink.url);
                    $(".navigationContentWrapper[data-itemnav='user'] .navigationContent .loginButton a").text(data.loginLink.name);
                    $(".navigationContentWrapper[data-itemnav='user'] .navigationContent .loginButton").show();
                }
                if (data.logoutLink) {
                    $("#logout-link").attr("href", data.logoutLink.url);
                    $("#logout-link").addClass("header__global__nav__item");
                    $("#logoutTitle").text(data.logoutLink.name);
                    $("#logout-link").removeAttr("hidden");

                    // Navigation bar
                    $(".navigationBar__items--item [data-itemNav='user']").parent().show();
                    $(".navigationContentWrapper[data-itemnav='user'] .navigationContent .loginButton").hide();
                    $(".navigationContentWrapper[data-itemnav='menu'] .navigationContent").append(`
                        <div class="groupLink">
                            <a class="item" href="${data.logoutLink.url}">${data.logoutLink.name}</a>
                        </div>
                    `);
                }
                if (data.minsideLink && data.logoutLink) {
                    $("#minside-link").attr("href", data.minsideLink.url);
                    $("#minside-link").addClass("header__global__nav__item");
                    $("#minsideTitle").text(data.minsideLink.name);
                    $("#minside-link").removeAttr("hidden");

                    // Navigation bar
                    $(".navigationContentWrapper[data-itemnav='user'] .navigationContent .loginButton").hide();
                }
            }
        });
    }

    const currentUrl = new URL(window.location.href);
    if (currentUrl.searchParams.get('isFromNotificationClick')) {
        const scripts = document.getElementsByTagName('script')

        for (let script of scripts) {
            if (script.src && script.src === 'https://cdn.usefathom.com/script.js' && !!script.getAttribute('data-site')) {
                console.log('Track fathom click push notification')
                fathom.trackEvent('Push - Klikket link')
            }
        }
    }
})
// http://labs.rampinteractive.co.uk/touchSwipe/demos/index.html
