var bm = bm || {};

var breakpoints = {};
breakpoints.xs = bm.breakpoints.xs.enter;
breakpoints.sm = bm.breakpoints.sm.enter;
breakpoints.md = bm.breakpoints.md.enter;
breakpoints.lg = bm.breakpoints.lg.enter;

(function ($) {
    $.fn.andSelf = function() {
        return this.addBack.apply(this, arguments);
    }
})(jQuery);

(function ($) {
    // helper function which fires 500 ms after last resize
    $(window).resize(function () {
        if (this.resizeTO) clearTimeout(this.resizeTO);
        this.resizeTO = setTimeout(function () {
            $(this).trigger('resizeEnd');
        }, 250);
    });

})(jQuery);

(function($) {

    var emailNL = $(document.getElementsByName('fields[11]'));
    var uriParams = decodeURIComponent(window.location.search).split('?');
    if (uriParams.length >= 2){
        uriParams = uriParams[1].split('=');
        if(emailNL.length && uriParams[0] === 'newsletter-email') {
            emailNL.prop('value', uriParams[1]);
        }
    }

})(jQuery);

(function($){
    var $screenSizeBox = $('#screensize');
    function setScreensize(){
        var winWidth  = $(window).width();
        var winHeight = $(window).height();
        $('#screensize').html(winWidth+'x'+winHeight);
    }
    if ($screenSizeBox.length >0){
        // helper function which fires 500 ms after last resize
        $(window).on('resizeEnd', setScreensize);
        $(document).ready(setScreensize);
    }

})(jQuery);



bm.transitionEvent = (function ($) {
    var transitionEvent = false;

    // Function from David Walsh: http://davidwalsh.name/css-animation-callback
    var _whichTransitionEvent = function () {
        var t,
            el = document.createElement("fakeelement");

        var transitions = {
            "transition": "transitionend",
            "OTransition": "oTransitionEnd",
            "MozTransition": "transitionend",
            "WebkitTransition": "webkitTransitionEnd"
        }

        for (t in transitions) {
            if (el.style[t] !== undefined) {
                return transitions[t];
            }
        }
    }

    var _getTransitionEvent = function () {
        if (!transitionEvent) {
            transitionEvent = _whichTransitionEvent()
        }
        return transitionEvent
    }

    return _getTransitionEvent();
})(jQuery);

(function ($) {
    $(document.body).on('click', '#navigation-trigger, #navigation-closer', function (e) {
        e.preventDefault();
        $('#navigation').toggleClass('open');
    });
})(jQuery);


$.fn.centerContent = function () {


    var _centerContent = function () {
        var innerContainer = _getModalWrapper().find('.modalLayerInner');
        var containerHeight = innerContainer.outerHeight();
        var wrapperHeight = _getModalWrapper().innerHeight();
        if (containerHeight < wrapperHeight) {
            innerContainer.addClass('centerVertical');
        } else {
            innerContainer.removeClass('centerVertical');
        }

    }
};

(function ($) {
    if ($('.input--error').length) {
        $headerHeight = $('#page-header').height();
        $offset = 50;
            $('html, body').animate({
                scrollTop: $('.input--error:visible:first').offset().top - ($headerHeight + $offset)
            }, 0);
    }
})(jQuery);

(function ($) {
    $('.effect__block-animation').each(function () {
        var _$this = $(this);
        $(window).on('scroll',function () {
            if(!_$this.hasClass('animated')) {
                var _elementTop = _$this.offset().top;
                var _scrollTop = $(this).scrollTop();
                var _animation = _$this.data('animation');
                if ((_elementTop - _scrollTop) <= 600 && _animation !== '') {
                    _$this.addClass('animated').addClass(_animation);
                }
            }
        });
    });

    $('body').on('click','.js-smoothScroll', function (e) {
        e.preventDefault();
        var _this = $(this);
        var _anker = $(_this.data('target'));
        var _offset = 0;

        if(_this.data('offset') !== undefined) {
            if(_this.data('offset') !== '') {
                _offset = _this.data('offset');
            }
        }

        var targetOffset = _anker.offset().top;

        $('html,body').animate({scrollTop: (targetOffset -(_offset))},400);
    })
})(jQuery);
