var FBC = FBC || {};

$.cookieBar({

    message: FBC.cookiebar.map.message,
    acceptButton: true,
    acceptText: FBC.cookiebar.map.acceptText,
    policyButton: true,
    policyText: FBC.cookiebar.map.privacy_policy,
    policyURL: '#privacyPolicy',
    autoEnable: true,
    acceptOnContinue: false,
    expireDays: 365,
    forceShow: false,
    effect: 'slide',
    element: 'body',
    append: false,
    fixed: true,
    bottom: true,
    zindex: '2000'

});


// -------------------------------------------------------------------------------------- //
// FlyBox
// -------------------------------------------------------------------------------------- //
function flyBox(id, callback) {
    var element = $("#" + id);
    var href = $('a.' + id + 'FlyOpenLink');


    element.hide();
    element.find('div.flybox').hide();

    href.click(function () {
        showElement();
    });

    function showElement() {
        var display_width = $(window).width();

        if (display_width <= 767) {
            element.toggle();
            element.find('div.flybox').fadeToggle(200,'swing',callback);

        } else {
            element.fadeIn(1000);
            element.find('div.flybox').delay(500);
            element.find('div.flybox').fadeIn(200,'swing',callback);
        }
        $(document).keyup(escHandler);
    }

    element.find('a.flyCloseLink').click(function () {
        $(document).unbind("keyup", escHandler);
        hideElement();
    });

    function escHandler(e){
        if(e.keyCode === 27)
            hideElement();
    }

    function hideElement() {

        element.find('div.flybox').fadeOut(1000);
        element.find('div.flybox').delay(500);
        element.fadeOut(1000);
    }



}

//$(function () {
//    $(window).on("load resize", function () {
//        var display_width = $(window).width();
//
//        if ($('body').hasClass('nonoverflow')) {
//            if (display_width > 767) {
//                $('body').removeClass('nonoverflow');
//            }
//            ;
//        }
//        ;
//
//        if ($('.flybox_bg').is(":visible")) {
//            if (display_width <= 767) {
//                $('body').addClass('nonoverflow');
//            }
//            ;
//        }
//        ;
//    });
//});

function setFocusAt(id) {
    $('#'+id).focus()
}

flyBox('login', function(){
    setFocusAt('username');
    if ($('#menuLinkUp').hasClass('active')) {
        $('#menuLinkUp').removeClass('active')
        $('#menuLinkUp a').removeClass('active')
        $('#subnav').fadeOut(200);
    }
});
flyBox('contact');
flyBox('advancedSearch',function(){setFocusAt('value_0');});

flyBox('privacyPolicy');
flyBox('favouriteQuery',function(){setFocusAt('QueryName');});


// -------------------------------------------------------------------------------------- //
// END of FlyBox
// -------------------------------------------------------------------------------------- //
// -------------------------------------------------------------------------------------- //
// Scrolling function with search field position fixed
// -------------------------------------------------------------------------------------- //


$(function () {
    $(window).on("load scroll resize", function () {

        var scroll = $(window).scrollTop();
        var display_width = $(window).width();
        var display_height = $(window).height();

        if (display_width >= 1900) {

            if (scroll >= 180) {
                if (!($('#searchInUse').hasClass('active'))){
                    $("nav#top").addClass("fixed");
                }
            } else {
                $("nav#top").removeClass("fixed");
            }

            if (scroll >= 250) {
                $("#searchFormDiv").addClass("fixed");
            } else {
                $("#searchFormDiv").removeClass("fixed");
            }

            if (scroll >= 400) {
                $('#searchInUse').addClass('fixed');
            } else {
                $('#searchInUse').removeClass('fixed');
            }

            if (scroll >= 250) {
                $("#searchAdvanced").addClass("fixed");
            } else {
                $("#searchAdvanced").removeClass("fixed");
            }


            if (scroll >= 340) {
                if (!($('#searchInUse').hasClass('active'))){
                    $("#bg").fadeIn(100);
                }
            } else {
                $("#bg").fadeOut(100);
            }
        }

        else if (display_width >= 1200) {

            if (scroll >= 160) {
                if (!($('#searchInUse').hasClass('active'))){
                    $("nav#top").addClass("fixed");
                }
            } else {
                $("nav#top").removeClass("fixed");
            }

            if (scroll >= 200) {
                $("#searchFormDiv").addClass("fixed");
            } else {
                $("#searchFormDiv").removeClass("fixed");
            }

            if (scroll >= 400) {
                $('#searchInUse').addClass('fixed');
            } else {
                $('#searchInUse').removeClass('fixed');
            }

            if (scroll >= 200) {
                $("#searchAdvanced").addClass("fixed");
            } else {
                $("#searchAdvanced").removeClass("fixed");
            }


            if (scroll >= 340) {
                if (!($('#searchInUse').hasClass('active'))){
                    $("#bg").fadeIn(100);
                }
            } else {
                $("#bg").fadeOut(100);
            }
        }

        else if (display_width >= 992) {

            if (scroll >= 100) {
                if (!($('#searchInUse').hasClass('active'))){
                    $("nav#top").addClass("fixed");
                }
            } else {
                $("nav#top").removeClass("fixed");
            }

            if (scroll >= 155) {
                $("#searchFormDiv").addClass("fixed");
            } else {
                $("#searchFormDiv").removeClass("fixed");
            }

            if (scroll >= 400) {
                $('#searchInUse').addClass('fixed');
            } else {
                $('#searchInUse').removeClass('fixed');
            }

            if (scroll >= 160) {
                $("#searchAdvanced").addClass("fixed");
            } else {
                $("#searchAdvanced").removeClass("fixed");
            }


            if (scroll >= 340) {
                if (!($('#searchInUse').hasClass('active'))){
                    $("#bg").fadeIn(100);
                }
            } else {
                $("#bg").fadeOut(100);
            }


        }

        else if ((display_width < 992) && (display_width > 767) ) {

            if (scroll >= 100) {
                if (!($('#searchInUse').hasClass('active'))){
                    $("nav#top").addClass("fixed");
                }
            } else {
                $("nav#top").removeClass("fixed");
            }

            if (scroll >= 50) {
                $("#searchFormDiv").addClass("fixed");

            } else {
                $("#searchFormDiv").removeClass("fixed");
            }

            if (scroll >= 400) {
                $('#searchInUse').addClass('fixed');
            } else {
                $('#searchInUse').removeClass('fixed');
            }

            if (scroll >= 160) {
                $("#searchAdvanced").addClass("fixed");
            } else {
                $("#searchAdvanced").removeClass("fixed");
            }


            if (scroll >= 340) {
                if (!($('#searchInUse').hasClass('active'))){
                    $("#bg").fadeIn(100);
                }
            } else {
                $("#bg").fadeOut(100);
            }
        }

        else if (display_width <= 767) {
            if (scroll >= 100) {
                if (!($('#searchInUse').hasClass('active'))){
                    $("nav#top").addClass("fixed");
                }
            } else {
                $("nav#top").removeClass("fixed");
            }

            if (scroll >= 50) {
                $("#searchFormDiv").addClass("fixed");
                $(".flybox_bg").addClass("fixed");


            } else {
                $("#searchFormDiv").removeClass("fixed");
                $(".flybox_bg").removeClass("fixed");

            }

        }


        else {


            if (scroll >= 180) {
                $("nav#top").addClass("fixed");
            } else {
                $("nav#top").removeClass("fixed");
            }

            if (scroll >= 50) {
                $("#searchFormDiv").addClass("fixed");
            } else {
                $("#searchFormDiv").removeClass("fixed");

            }

            if (scroll >= 340) {
                $("#bg").fadeIn(0);
            } else {
                $("#bg").fadeOut(0);
            }
        }

        if (display_width <= 767) {
            $('#subnav').css('height', display_height);
            $('#topNav').css('height', display_height);
        } else {
            $('#subnav').css('height', '');
            $('#topNav').css('height', '');
        }
    });
});
// -------------------------------------------------------------------------------------- //
// END of Scrolling function with search field position fixed
// -------------------------------------------------------------------------------------- //
// -------------------------------------------------------------------------------------- //
// Figure elements
// -------------------------------------------------------------------------------------- //

//$(window).load(function () {
//   $(":not(.list)").find("figure").mouseenter(function () {
//       $(this).find('figcaption.icon.slig').addClass('hover').find('div').find('div').fadeIn(400);
//  });
//
//   $(":not(.list)").find("figure").mouseleave(function () {
//       $(this).find('figcaption.icon.slig').removeClass('hover').find('div').find('div').fadeOut(200);
//   });
//});


// -------------------------------------------------------------------------------------- //
// END of Figure elements
// -------------------------------------------------------------------------------------- //
// -------------------------------------------------------------------------------------- //
// Carousels  / TODO: functionality not ready yet
// -------------------------------------------------------------------------------------- //

$('.slide').carousel({interval: 10000});

// -------------------------------------------------------------------------------------- //
// END of Carousels
// -------------------------------------------------------------------------------------- //
// -------------------------------------------------------------------------------------- //
// Icon / List Control View
// -------------------------------------------------------------------------------------- //

$("#icon").on("click", function (e) {
    $(this).addClass("active");
    $("#list").removeClass('active');
    $("#line").removeClass('active');

    $.cookie('viewType', 'icon');

    $("#result").removeClass('list');
    $("#result").removeClass('line');
    $("#result").addClass('icon');

    $('.europeana_rights').each(function () {
        $(this).attr('src', $(this).data("horizontal-src"));
    });

    $('.item-info').css('top', $('.owl_active').offset().top)


    e.preventDefault();
});

$("#list").on("click", function (e) {
    $(this).addClass("active");
    $("#icon").removeClass('active');
    $("#line").removeClass('active');

    $.cookie('viewType', 'list');

    $("#result").removeClass('icon');
    $("#result").removeClass('line');
    $("#result").addClass('list');

    $('.europeana_rights').each(function () {
        $(this).attr('src', $(this).data("vertical-src"));
    });


    e.preventDefault();
});

$("#line").on("click", function (e) {
    $(this).addClass("active");
    $("#icon").removeClass('active');
    $("#list").removeClass('active');

    $.cookie('viewType', 'line');

    $("#result").removeClass('icon');
    $("#result").removeClass('list');
    $("#result").addClass('line');

    $('.europeana_rights').each(function () {
        $(this).attr('src', $(this).data("vertical-src"));
    });


    e.preventDefault();
});

if (typeof $.cookie('viewType') === 'undefined') {
    $("#result").addClass('icon');
    $("#icon").addClass('active');
} else {
    $("#result").removeClass('icon');
    $("#result").removeClass('list');
    $("#result").removeClass('line');
    $("#result").addClass($.cookie('viewType'));
    $("#" + $.cookie('viewType')).addClass('active');
}

if ($("#results").hasClass('myaccount')) {
    $("#result").addClass('icon');
    $("#result").removeClass('list');
    $("#result").removeClass('line');
}

// -------------------------------------------------------------------------------------- //
// END Icon / List Control View
// -------------------------------------------------------------------------------------- //
// -------------------------------------------------------------------------------------- //
// Result and Filter View
// -------------------------------------------------------------------------------------- //

$("#resultsView").on("click", function (e) {
    $('#left').hide();
    $('#result').show();
    $('#resultBottom').show();
    $("#filterView").addClass('noactive');
    $("#resultsView").removeClass('noactive');
    e.preventDefault();

    if ($('#owlCage').hasClass('wrongQuery')) {
        $('#owlCage').show();
    }
});

$("#filterView").on("click", function (e) {
    $('#result').hide();
    $('#resultBottom').hide();
    $('#left').show();
    $("#resultsView").addClass('noactive');
    $("#filterView").removeClass('noactive');

    if ($('#owlCage').is(':visible')) {
        $('#owlCage').hide();
        $('#owlCage').addClass('wrongQuery');
    }

    e.preventDefault();
});

// resize

$( window ).resize(function() {
    var display_width = $(window).width();
    if (display_width >= 992) {
        $('#result, #left').show();
    }
    if($('#top').hasClass('advsearch')) {
        if (display_width <= 992) {
            $('#advancedSearch-link').click();
        } else {
            $('#advancedSearch .flyCloseLink').click();
        }
    }
});

// -------------------------------------------------------------------------------------- //
// END Icon / List Control View
// -------------------------------------------------------------------------------------- //
// -------------------------------------------------------------------------------------- //
// qTip - Tooltip function for title arg
// -------------------------------------------------------------------------------------- //


$('*[title]').qtip({
    style: {classes: 'qtip-light', tip: {corner: 'top center'}},
    content: {
        text: function () {
            return $(this).attr('title');
        }
    },
    position: {
        my: 'top center',
        at: 'bottom center',
        adjust: {mouse: false}
    },

    show: {solo: true}
});
// -------------------------------------------------------------------------------------- //
// END qTip - Tooltip function for title arg
// -------------------------------------------------------------------------------------- //
// -------------------------------------------------------------------------------------- //
// Query editor
// -------------------------------------------------------------------------------------- //

var advancedSearchManager;

$("#advancedSearch-link").click(function (event) {
    var display_width = $(window).width();

    if (display_width <= 767) {
        $('#advancedSearch').fadeToggle(0);
        $('#advancedSearch').find("div.flybox").fadeToggle(200);

        $('#advancedSearch').toggleClass('active');
        $('#bg-static').toggleClass('advsearch');
        $('nav#top').toggleClass('advsearch');
        $('div#resultNavComponent').toggleClass('advsearch');
        $('#searchInUse').toggleClass('active');
        if ($('#query').attr('disabled'))
            $('#query').removeAttr('disabled');
        else $('#query').attr('disabled', 'disabled');

    } else {
        $('#advancedSearch').fadeIn(1000);
        $('#advancedSearch').find('div').delay(500);
        $('#advancedSearch').find("div.flybox").fadeIn(1000,'swing',function(){setFocusAt('value_0');});

        $('#advancedSearch').addClass('active');
        $('#bg-static').addClass('advsearch');
        $('nav#top').addClass('advsearch');
        $('div#resultNavComponent').addClass('advsearch');
        $('#searchInUse').addClass('active');

        $("#searchFormDiv").fadeOut(500);
        $("#searchAdvanced").fadeOut(500);
        $("#searchPrompt").fadeOut(500);
        $("html, body").animate({scrollTop:0}, '500', 'swing');
    }

    //inicializacja okienka
    $.get('./attributes', function (data) {
        advancedSearchManager = new AdvancedSearchManager('advancedSearch', data);
        advancedSearchManager.clear();

        if (typeof Manager !== 'undefined' && advancedSearchFormShouldBeFilled()){
            var query = Manager.store.get('q').value;

            var parser = new AdvancedSolrQueryParser(query);

            var parsedResults = parser.parse();

            for (var i = 0; i < parsedResults.length; i++) {
                if (parsedResults[i].operator !== undefined) {
                    advancedSearchManager.addNewInputLine();
                    advancedSearchManager.updateSelectedOperatorField(i + 1, parsedResults[i]);
                }
                advancedSearchManager.updateSelectedInputLine(i, parsedResults[i]);
                advancedSearchManager.updateAutocompletion(parsedResults[i].searchField, i);
            }
        }

        function advancedSearchFormShouldBeFilled(){
            if(window.location.search.length != 0 || window.location.pathname.search("/recentlyViewed") > 0){
                console.debug('Advanced search form will NOT be filled');
                return false;
            }else{
                console.debug('Advanced search form will be filled');
                return true;
            }
        }
    });

    if ($("nav#top").hasClass('static')) {
        $("#advancedSearch").addClass('static');
    }

});

$("#edit-question").click(function () {
    $("#advancedSearch-link").click();
});

$("#advancedSearch .flyCloseLink").click(function (event) {
    $("#searchFormDiv").fadeIn(500);
    $("#searchAdvanced").fadeIn(500);
    $("#searchPrompt").fadeIn(500);
    $('nav#top').removeClass('advsearch');
    $('#searchInUse').removeClass('active');
    if ($('#query').attr('disabled')) {
        $('#query').removeAttr('disabled');
    }
});

$("#advancedSearch #resetForm").click(function (event) {
    advancedSearchManager.clear();
});


$("#searchInUse button:first-child").click(function (event) {
    $("html, body").animate({scrollTop:0}, '500', 'swing');
});

$("#searchInUse button:last-child").click(function (event) {
    $("#advancedSearch .flyCloseLink").click();
});
// -------------------------------------------------------------------------------------- //
// END Query editor
// -------------------------------------------------------------------------------------- //


// -------------------------------------------------------------------------------------- //
// Close info window after changing the resolution
// -------------------------------------------------------------------------------------- //

$(function () {
    $(window).on("resize", function () {
        if($('.docs__item').hasClass('owl_active') && $('#result').hasClass('icon')) {
            $('.docs__item').removeClass('owl_active')
        }
    });
});

// -------------------------------------------------------------------------------------- //
// END Close info window after changing the resolution
// -------------------------------------------------------------------------------------- //

(function($){
    $(window).load(function(){
        $("#scroller").mCustomScrollbar({
            axis:"x",
            theme:"dark-thin",
            autoExpandScrollbar:true,
            advanced:{autoExpandHorizontalScroll:true}
        });

    });
})(jQuery);

// -------------------------------------------------------------------------------------- //
// SelectPicker!!!
// -------------------------------------------------------------------------------------- //
$('select').selectpicker({
    //size: 6
});
// -------------------------------------------------------------------------------------- //
// END SelectPicker!!!
// -------------------------------------------------------------------------------------- //
/**
 * Set value object on click.
 */
function addOnClickValueSetter(id, setObjectId, setedValue) {
    $("#" + id).click(function (event) {
        $('#' + setObjectId).val(setedValue + window.location.hash);
    });
}


$('#menuLink, #menuMobile').on({
    click : function() {
        $('#subnav').fadeToggle(200);
        $('#menuLink, #menuLinkUp, #menuMobile').toggleClass('active');
        if ($('.flybox_bg').hasClass('active')) {
            $('.flyCloseLink').click();
            $('.advancedSearch-link').click();
        }
    }

});







// set default image only once

$(window).bind('load', function() {
    $('#scroller div.owl, #recommend div.owl, .myaccount div.owl').find('img').each(function() {

        if((typeof this.naturalWidth != "undefined" && this.naturalWidth == 0 ) || this.readyState == 'uninitialized' ) {
            var owlClass = $(this).parent().data("default-class");
            $(this).parent().addClass(owlClass);
        } else {
            var owlImgSrc = $(this).attr('src');
            $(this).parent().css('background-image', 'url("' + owlImgSrc + '")');
        }

    });
});



// closing alerts

function closeAlert() {
    $('.alerts').hide();
}

//

$("body").on( "click", function(event) {

    var target = $(event.target);

    if (target.is('.facet') || target.parents('.facet').length) {
        if (target.is('.fa')) {
            target = target.parent();
        }

        if (target.siblings('.facet__list--container').length) {
            // show search box when there is more than 10 elements
            if (target.siblings('.facet__list--container').children('.facet__list').get(0).childElementCount > 10) {
                target.siblings('.facet__list--container').children('.facet__list--header').toggle();
                target.siblings('.facet__list--container').children('.facet__list').toggleClass('facet__list--searchable');
            }
            target.siblings('.facet__list--container').children('.facet__list').toggle();
        } else {
            target.siblings('.facet__list').toggle();
        }
        target.toggleClass('filters__item--clicked');
        target.find('.fa').toggleClass('fa-angle-right fa-angle-left');

        target.parent().siblings().find('.facet__list').hide();
        target.parent().siblings().find('.facet__list').removeClass('facet__list--searchable');
        target.parent().siblings().find('.facet__list--header').hide();
        target.parent().siblings().find('.facet').removeClass('filters__item--clicked');
        target.parent().siblings().find('.fa').removeClass('fa-angle-left');
        target.parent().siblings().find('.fa').addClass('fa-angle-right');
    } else if (!target.parents('.facet__list').length) {
        if (!(target.is('.facet__item--input') || target.is('.facet__list--header'))) {
            $('.facet__list').hide();
            $('.facet__list--header').hide();
            $('.facet__list').removeClass('facet__list--searchable');
            $('.facet').removeClass('filters__item--clicked');
            $('.facet').find('.fa').removeClass('fa-angle-left');
            $('.facet').find('.fa').addClass('fa-angle-right');
        }
    }

});

