/* Minification failed. Returning unminified contents.
(115,17-18): run-time error JS1195: Expected expression: )
(115,20-21): run-time error JS1195: Expected expression: >
(117,6-7): run-time error JS1195: Expected expression: ,
 */
/**************************/
/*** Yleinen JavaScript ***/
/**************************/

/*** Sivulatauksessa tapahtuvat asiat ***/
/****************************************/
$(function () {
    //Mobiilinavigaation klikit
    $(document).on('click', '.js-alanavi-toggle', function () {
        $(this).find('.navigation__accordion-content').toggleClass('navigation__accordion-content--open');
        $(this).toggleClass('navigation__item--active');
        $(this).find('.link__icon').toggleClass('fa-chevron-up fa-chevron-down');
    });

    //kommentin ilmianto
    $(document).on('click', '[data-id="ilmianna_kommentti"]', function () {
        if ($('.ilmiantoboksi').length) {
            $('.ilmiantoboksi').remove();
        }

        var ilmiantoboksi = $("<div class='ilmiantoboksi'>" +
            "<h4>Miksi viesti on asiaton?</h4>" +
            "<textarea class='ilmiannonSyy'></textarea>" +
            "<p class='ilmianna_kommentti__virhe'></p>" +
            "<div class='painike_container'>" +
            "<button class='painike painike__primary' data-id='ilmianna_kommentti__laheta'>Lähetä</button>" +
            "<button class='painike painike__secondary' data-id='ilmianna_kommentti__peruuta'> Peruuta</button> " +
            "</div>" +
            "</div>");

        ilmiantoboksi.appendTo($(this).parent());
    });

    //ei halutakaan lähettää ilmiantoa
    $(document).on('click', '[data-id="ilmianna_kommentti__peruuta"]', function () {
        $('.ilmiantoboksi').remove();
    });

    //lähetetään ilmianto kommentista
    $(document).on('click', '[data-id="ilmianna_kommentti__laheta"]', function () {
        //poistetaan mahdollinen edellinen virheilmo
        $('.ilmiannonSyy').removeClass('web-X-validointivirhe');
        $('.ilmianna_kommentti__virhe').text('');

        var ilmiannonSyy = $('.ilmiantoboksi textarea').val().trim();
        //tarkistetaan ilmiannon syy
        if (ilmiannonSyy == null || ilmiannonSyy === '') {
            $('.ilmiannonSyy').addClass('web-X-validointivirhe');
            $('.ilmianna_kommentti__virhe').text('Kerrothan miksi viesti on asiaton');
        } else {
            var sivunUrl = window.location.href;
            var ilmiannettavaKommentti = $(this).parents('.kommentti').find('[data-id]').attr('data-kommentti');

            var lomake = {
                LomakeLaji: 'Palaute',
                Aihe: 'Kommentin ilmianto',
                YritysId: 1295,
                LomakeRyhma: 'OTA_YHTEYTTA',
                //Lisätään \n jotta rivitys ok slackissa
                Sisalto: '<h3>Kommentin ilmianto</h3>\n' +
                    '<p>Ilmiannon syy: ' + ilmiannonSyy + '</p>\n' +
                    '<p>Ilmiannettu kommentti: ' + ilmiannettavaKommentti + '</p>\n' +
                    '<p>Url: ' + sivunUrl + '</p>\n'
            }

            try {
                $(".ilmiantoboksi button").attr("disabled", "disabled");
                $.ajax({
                    type: "POST",
                    headers: {
                        '__RequestVerificationToken': $("input[name='__RequestVerificationToken']").val()
                    },
                    url: muodostaAjaxUrl("JulkisetResurssit", "LahetaLomakeJaPostaaSlackiin"),
                    contentType: 'application/json',
                    data: "{lomake:" + JSON.stringify(lomake) + "}",
                    dataType: 'json',
                    cache: false,
                    success: function (data) {
                        if (data.Onnistui) {
                            $(".ilmiantoboksi").html('<div class="ilmianna_kommentti__kiitos"><i class="fal fa-thumbs-up"></i><h2>Kiitos. Kommentti on ilmiannettu.</h2></div>');
                        } else {
                            $('.ilmianna_kommentti__virhe').html("<i class='fal fa-exclamation-triangle'></i><p>Kommentin ilmianto epäonnistui. Yritä hetken päästä uudestaan.</p>");
                            $(".ilmiantoboksi button").removeAttr("disabled");
                        }
                    },
                    error: function (xhr, ajaxOptions, thrownError) {
                        $('.ilmianna_kommentti__virhe').html("<i class='fal fa-exclamation-triangle'></i><p>Kommentin ilmianto epäonnistui. Yritä hetken päästä uudestaan.</p>");
                        $(".ilmiantoboksi button").removeAttr("disabled");
                    }
                });
            }
            catch (e) {
                alert(e);
            }
        }
    });

    if ($("#btnCookieSettings").length != 0) {
        $("#btnCookieSettings").on("click", function () {
            OneTrust.ToggleInfoDisplay();
        });
    }
});

function avaaYhteystiedot() {
    $('.avattavat-yhteystiedot').slideToggle(function () {
        $('.avattavat-yhteystiedot').removeClass('webX-display--none');
    });
    $('.js-avaa-yhteystiedot').slideToggle(function () {
        $('.js-avaa-yhteystiedot').addClass('webX-display--none');
    });
}

function piilota__modal(piilotettava__modaali) {
    setTimeout(() => {
        $(piilotettava__modaali).fadeOut();
    }, 3200);
}

var tietosivu = {

    tietosivunAlapalkki: function () {
        //skrollataan footeriin, liidipalkki piiloon vaihtoauton ja uuden auton tietosivulla
        if ($('.tietosivu__yhteydenotto-mobiili').offset().top > $('.footer').offset().top) {
            $('.tietosivu__yhteydenotto-mobiili').css('z-index', '-1');
        } else {
            $('.tietosivu__yhteydenotto-mobiili').css('z-index', '5');
        }
    },

    tietosivunYlapalkki: function ($ylapalkkiYlaraja) {
        let ylapalkki = $('.tietosivu__ylapalkki-container');
        var viimeisinScrollPos;
        var onkoSticky;

        let palkkiKoskeeYlareunaa = window.pageYOffset + $('.header').height();

        if (palkkiKoskeeYlareunaa > $ylapalkkiYlaraja) {
            onkoSticky = true;
            ylapalkki.addClass('vaihtoautohaku__sticky');
        } else {
            onkoSticky = false;
            ylapalkki.removeClass('vaihtoautohaku__sticky');
        }
        if (window.pageYOffset > viimeisinScrollPos && onkoSticky) {
            ylapalkki.addClass('vaihtoautohaku__sticky--alas');
            ylapalkki.removeClass('vaihtoautohaku__sticky--ylos');
        } else {
            ylapalkki.addClass('vaihtoautohaku__sticky--ylos');
            ylapalkki.removeClass('vaihtoautohaku__sticky--alas');
        }

        viimeisinScrollPos = window.pageYOffset;
    }
};
/*
 * Global modules
 */

var header = {};
var navigation = {};

/**
 * Sticky element handling
 */
(function () {
    'use strict';

    var STICKY_CSS_STICKY = 'header--is-sticky';
    var STICKY_CSS_SCROLLING_DOWN = 'header--scrolling-down';
    var BODY_SCROLLING_DOWN_AND_UP = 'header-partially-hidden';
    var STICKY_CSS_SCROLLING_UP = 'header--scrolling-up';

    // get the sticky element
    var headerElement = document.querySelector('.js-sticky-header');
    var body = document.querySelector('body');
    // then record the current position, so when we cross the
    // boundary the `sticky` class can be toggled
    var boundary = 0;
    if (headerElement) {
        boundary = headerElement.offsetTop + headerElement.scrollHeight;
    }

    var lastScrollTop = 0;
    var delta = 30;
    var isSticky = false;

	/**
	 * Sets the CSS classes on scrolling event
	 */
    var stickyHandler = function () {
        // collect current scroll position
        var y = window.pageYOffset;

		/*
		 * First check the sticky situation
		 */

        if (y > boundary) {
            if (!isSticky) {
                headerElement.classList.add(STICKY_CSS_STICKY);
                isSticky = true;
            }
        } else {
            headerElement.classList.remove(STICKY_CSS_STICKY);
            headerElement.classList.remove(STICKY_CSS_SCROLLING_UP);
            headerElement.classList.remove(STICKY_CSS_SCROLLING_DOWN);
            body.classList.remove(BODY_SCROLLING_DOWN_AND_UP);
            isSticky = false;

            return; // Rest of the function becomes useless
        }

		/*
		 * Then check which direction the scrolling happens
		 */

        // Scrolling much?
        if (Math.abs(lastScrollTop - y) <= delta) {
            return;
        }

        if (y > lastScrollTop && isSticky) {
            // Scrolling down
            if (header.isOpen) {
                header.collapseHeader();
            }
            headerElement.classList.add(STICKY_CSS_SCROLLING_DOWN);
            body.classList.add(BODY_SCROLLING_DOWN_AND_UP);
            headerElement.classList.remove(STICKY_CSS_SCROLLING_UP);

        } else {
            // Scrolling up
            if (y + window.innerHeight < document.body.scrollHeight) {
                headerElement.classList.remove(STICKY_CSS_SCROLLING_DOWN);
                headerElement.classList.add(STICKY_CSS_SCROLLING_UP);
            }
        }

        lastScrollTop = y;

    };

    window.addEventListener('scroll', function () {
        window.requestAnimationFrame(stickyHandler);
    }, false);

}());

/**
 * The header expand / collapse
 */
(function (header) {
    'use strict';

    var headerElement = document.querySelector('.js-expanding-header');
    var otherLinks = null;
    var headerClose = null;

	/**
	 * CSS handling of the expanding
	 */
    function expandHeader() {
        if (navigation.isOpen) {
            navigation.closeMobileMenu();
        }
        headerElement.classList.add('header--is-open');
    }

	/**
	 * CSS handling on collapse
	 */
    function collapseHeader() {
        headerElement.classList.remove('header--is-open');
    }

    function onNavigationOpen() {
        collapseHeader();
        headerElement.classList.add('header--navigation-open');
    }

    function onNavigationClose() {
        headerElement.classList.remove('header--navigation-open');
    }

	/**
	 * Collapse header when clicked outside.
	 */
    document.addEventListener('click', function (event) {

        if (!header.isOpen || !headerContainer) {
            return;
        }

        var isClickInside = headerContainer.contains(event.target);

        if (!isClickInside) {
            header.collapseHeader();
        }
    });

    // Export
    header.collapseHeader = collapseHeader;
    header.onNavigationOpen = onNavigationOpen;
    header.onNavigationClose = onNavigationClose;
    header.isOpen = false;

})(header);

/**
 * Mobile navigation handling
 */
(function (navigation) {
    'use strict';

    var mobileMenu = document.querySelector('.js-mobile-menu');
    var mobileMenuOpener = document.querySelector('.js-open-mobile-menu');
    var mobileMenuCloser = document.querySelector('.js-close-mobile-menu');
    var navElement = document.querySelector('.js-navigation');

    function openMobileMenu() {
        if (navigation.isOpen) {
            return;
        }
        header.onNavigationOpen();
        mobileMenuCloser.classList.remove('navigation__mobile-icon--hidden');
        mobileMenuCloser.classList.add('navigation__mobile-icon--active');
        mobileMenuOpener.classList.add('navigation__mobile-icon--hidden');
        mobileMenu.classList.remove('navigation__mobile--hidden');
        navElement.classList.add('navigation__item-container--hidden');
        navigation.isOpen = true;
    }

    function closeMobileMenu() {
        if (!navigation.isOpen) {
            return;
        }
        header.onNavigationClose();
        mobileMenuCloser.classList.add('navigation__mobile-icon--hidden');
        mobileMenuCloser.classList.remove('navigation__mobile-icon--active');
        mobileMenuOpener.classList.remove('navigation__mobile-icon--hidden');
        mobileMenu.classList.add('navigation__mobile--hidden');
        navElement.classList.remove('navigation__item-container--hidden');
        navigation.isOpen = false;
    }

    if (mobileMenuOpener) {
        mobileMenuOpener.addEventListener('click', function (event) {
            if (event) {
                event.preventDefault();
            }
            openMobileMenu();
        }, false);

        mobileMenuCloser.addEventListener('click', function (event) {
            if (event) {
                event.preventDefault();
            }
            closeMobileMenu();
        }, false);
    }

    navigation.isOpen = false;
    navigation.closeMobileMenu = closeMobileMenu;

})(navigation);
;
