;(function($, document, window, undefined){

  var Arenaria = window.Arenaria;
  Arenaria = function(options, elem){
    this._init(options); 
  };

  Arenaria.DEFAULTS = {};

  Arenaria.prototype._init = function(options){
    var self = this;
    // ('initiated...'); 
    var $nav = $('[data-nav]');

    this.setTheme();    

    if ($nav.is(':empty')){
      // create anchor-nav
      this.generateNav($("section"), $('[data-nav]'));     
    }


    if($('.fixed-nav').length > 0){
      $('.fixed-nav').closest('.baraside').addClass('anchor-list-up');
    }

  };

  Arenaria.prototype.setTheme = function(){
    var $elem = $('.head'),
        classList = $elem.attr('class');

    if (classList && classList !== undefined) {
      var theme = classList.match(/theme-[1-9]/);
      if (theme !== null) {
        $('body').addClass(theme[0]);
      }
    }
  };


  //
  // General
  // 
  var mq1 = window.matchMedia("(min-width:992px)");
  var mq2 = window.matchMedia("(max-width:1299px)");
  var mq3 = window.matchMedia("(max-width:992px)");
  
  Arenaria.prototype.generateNav = function($sections, $target, tag, callback) {
    var isWysiwyg = $('[data-evo-wysiwyg-wid]').length > 0;

    var tag = tag || 'h2';
    var self = this;
    if (!$sections.length) {
      return $target.empty(); // return and remove WYSIWYG placeholder text
    }
    var blackbar = $('#blackbar').html();
    var $ul = $('<ul class="list-group anchor-list"></ul>');
    /* var anc = $('.pull-xs-right.baraside.visible-ultra-lg-block.visible-xs-block.container');
        anc.className += "anchor-list-up";*/

    $sections.each(function() {
      var $section = $(this);
      var title = $section.find(tag + (isWysiwyg ? ' [data-evo-wysiwyg-char]' : ''))[0];
      title = $(title).text();
      var id = self.cssSafeString(title);
      $section.attr('id', id);
      var $li = $('<li class="list-group-item"><a href="#' + id + '">' + title + '</a></li>');
      if (title.length > 0) {
        $ul.append($li);      
      }
      if (callback) {
        callback($li, $section);
      }
    });
    $ul.closest('.baraside').addClass('anchor-list-up');         
    
    if(mq1.matches && mq2.matches) {
      ($(blackbar)).prependTo($ul);
    }
    $target.html($ul).promise().done($.proxy(this.fixedOrAbsolute, this));

  };  

  
    if(mq1.matches && mq2.matches) {
      var pressnav = $('nav.press-nav').length; 
      if(pressnav) {
        $('.baraside-fixed').css('height','327px');    
      }
    }
    if(mq3.matches) {
      var collapselement = $('section').not('.nocollapse').find('h2:first-child');
      collapselement.next().addClass('collapse');
      collapselement.addClass('coll');
      collapselement.css('cursor','pointer');
      $('.content-downloads > .grid').removeClass('grid');
      $('.content-downloads .grid-item').css("float", "none");
      collapselement.next().next('.simple_text').addClass('collapse');
      
      
      collapselement.click(function() {
        $(this).next().collapse('toggle');
        $(this).toggleClass('coll');
        var text = $(this).next().next('.simple_text');
        console.log(text);
        text.collapse('toggle');
       
      });
      if(collapselement.hasClass('coll')) {
        $('section.section').css({"margin-top": "4px", "margin-bottom": "4px"});
        $('section.section:first').css("margin-top", "8px");
        $('section.section > div').css({"padding-top": "1px", "padding-bottom": "31px"});
        $('section.section > div').toggleClass('colloni');              
        $('section.section:last-of-type > div').css("padding-bottom", "35px");
        $('.colloni').css({"box-shadow": "none","-webkit-box-shadow": "none"});
      }           
    }

  Arenaria.prototype.fixedOrAbsolute = function(){
    var w = window,
        d = document,
        e = d.documentElement,
        g = d.getElementsByTagName('body')[0],
        screenX = w.innerWidth || e.clientWidth || g.clientWidth,
        screenY = w.innerHeight|| e.clientHeight|| g.clientHeight;

    if ($('.anchor-list').length > 0) {
      var anchorListH = $('.anchor-list').closest('.baraside').height();
      var anchorListOffset = $('.anchor-list').closest('.baraside').offset().top;

      if ((anchorListH + anchorListOffset) > screenY) {
        $('.anchor-list').closest('.baraside').removeClass('anchor-list-up');
      } else {
        $('.anchor-list').closest('.baraside').addClass('anchor-list-up');
      }
    }
  };
 

  //
  // Calendar
  //
  Arenaria.prototype.getDates = function(){
    return $.getJSON("/DE/repos/evoscripts/termin"); 
  };

  Arenaria.prototype.initCalendar = function(events){
    var self = this;
    // console.log('initCalendar...');
    $('[data-calendar]').fullCalendar({
      header: {
        left: 'prev,title,next',
        right: ''
      },
      lang: 'de',
      editable: false,
      handleWindowResize: true,
      height: 800,
      firstDay: 1,
      timeFormat: 'H:mm',
      eventLimit: true, // allow "more" link when too many events
      events: events,
      eventAfterAllRender: function(view){
        //$('[data-calendar]').fullCalendar('gotoDate', moment(events[0].start));
      },
      eventRender: function(event, element, view){
        element.attr('title', event.title);
        if (event.type === 'Premiere') {
          var premDate = moment(event.start).format('YYYY-MM-DD');
          $('[data-date="'+premDate+'"]').addClass('dprem');
          element.addClass('premiere');
        } else {
          element.removeClass('premiere');          
        }

      },
      eventMouseover: function(event, jsEvent, view){
        $(this).find('[data-hidden]').removeClass('hidden');
      },
      eventMouseout: function(event, jsEvent, view){
        $(this).find('[data-hidden]').addClass('hidden');
      },
      eventClick: function(event, jsEvent, view){
        var $modal = $('#calendar-modal');

        $modal.find('[data-name]').text(event.title);
        $modal.find('[data-begin]').text(moment(event.start).format('DD.MM.YYYY, HH:mm') + ' Uhr');
        $modal.find('[data-end]').text(event.end && (moment(event.end).format('DD.MM.YYYY, HH:mm') + ' Uhr') || '');
        if (event.ticketLink) {
          $modal.find('[data-ticketlink]').prop('href', event.ticketLink);
          $modal.find('[data-ticketlink]').closest('tr').show();
        } else {
          $modal.find('[data-ticketlink]').closest('tr').hide();
        }

        if(event.end === null){
          $(".cend").hide();
        }

        $modal.modal('show');
      },
      windowResize: function(){
      }
    });

    var goToEvent = _.find(events, function(event){
      // returns the first event where start-date/time is after today
      return moment(event.start).isSameOrAfter(moment());
    });
    $('[data-calendar]').fullCalendar('gotoDate', moment(goToEvent.start));      
    //}, 50);

    $('[data-category]').on('click', function(evt){
      evt.preventDefault();
      var cat = parseInt($(this).attr('data-category'), 10);


      $('[data-category]').closest('li').removeClass('active');
      $(this).closest('li').addClass('active');

      var newEvents = _.where(events, { category: cat });
      self.updateCalendar(newEvents);

      $('.fc-view-container').addClass('arenaria-cal-' + cat);
    });



  };
  Arenaria.prototype.updateCalendar = function(events){
    $('[data-calendar]').fullCalendar('removeEvents');
    var goToEvents = _.filter(events, function(event){
      return moment(event.start).isSameOrAfter(moment());
    });
    if (goToEvents.length > 0) {
      $('[data-calendar]').fullCalendar('addEventSource', events);
      $('[data-calendar]').fullCalendar('gotoDate', moment(goToEvents[0].start));      
    } else {
      $('[data-calendar]').fullCalendar('gotoDate', moment());    
    }
    $('[data-calendar]').fullCalendar('rerenderEvents');
  };

  //
  // Utils
  //
  Arenaria.prototype.handleXHRError = function(jqXHR){
    var err = jqXHR.responseJSON;
  };

  Arenaria.prototype.cssSafeString = function(name){
    return name.replace(/[^a-z0-9]/g, function(s) {
      var c = s.charCodeAt(0);
      if (c == 32) return '-';
      if (c >= 65 && c <= 90) return '' + s.toLowerCase();
      return '' + ('000' + c.toString(16)).slice(-4);
    });    
  };


  window.Arenaria = Arenaria;


})(jQuery, document, window, undefined);


(function($){

  $.fn.arModal = function(){

    var $modal = $('<div class="arenaria-modal"></div>');
    $modal.hide();

    this.each(function(){
      var self = this,
          target = $(this).data('target'),
          $target = $(target);


      function toggle(evt){
        if (evt) {
          evt.preventDefault();
        }

        // check if $modal already exists in dom
        //document.contains($modal[0])
        if ($modal.length > 0 && $modal.is(':visible')) {
          close();
        } else {
          open();
        }
      }

      function open(evt){
        if (evt) {
          evt.preventDefault();
        }
        var $newTarget = $target.clone();
        $newTarget.removeClass('hidden');
        $modal.html($newTarget);
        $modal.appendTo($('.splash-slider'));
        $modal.fadeIn('fast', function(){
          $(self).trigger('arModal.shown');
        });
      }
      function close(evt){
        if (evt) {
          evt.preventDefault();
        }
        $modal.fadeOut('fast', function(){
          $.when($modal.remove()).then(function(){
            $(self).trigger('arModal.hidden');
          });
        });
      }

      $(this).on('click', toggle);
      $(document).on('click','[data-modal-close]', close);
    });

    return {
      open: open,
      close: close
    };    

  };


})(jQuery);



$(function(){

  var mq1 = window.matchMedia("(min-width:992px)");
  var mq2 = window.matchMedia("(max-width:1299px)");
  var mq3 = window.matchMedia("(max-width:992px)");
  
  
  var isMobile = false; //initiate as false
  var isAndroid = false;
  // device detection
  if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) 
     || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) {
    isMobile = true;  
  }
  var isAndroid = /(android)/i.test(navigator.userAgent);

  if (isAndroid) {
    $('body').addClass('is-android');
  }

  /*
  console.log('isMobile', isMobile);
  console.log('isAndroid', isAndroid);  
  */
   //add webkit-transform on iOS-Versions below 9

  function iOSVersion() {
    var match = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/), version;

    if (match !== undefined && match !== null) {
      version = [
        parseInt(match[1], 10),
        parseInt(match[2], 10),
        parseInt(match[3] || 0, 10)
      ];
      return parseFloat(version.join('.'));
    }
    return false;
  }

  var ver = iOSVersion();
  // console.log(ver);

  if (ver < 9.0 && ver !== false){
    $('body').addClass('isappleOS8');
    // console.log("inside");
  } else {
    // console.log("no ios");
  }
  

  var arenaria = new Arenaria();

  // Calendar
  var getDates = arenaria.getDates();

  $(document).on('mouseenter', '.fc-event', function(evt){
    $(this).find('[data-hidden]').removeClass('hidden');
    // console.log($(this));
  });
  $(document).on('mouseleave', '.fc-event', function(evt){
    $(this).find('[data-hidden]').addClass('hidden');
  });  

  /*
  * ***** Header:
  * on window scroll - change background-color
  * and font-color of navigation-element
  */

  $(window).on('scroll', function(evt){
    if ($(window).scrollTop() > 2) {
      $('body').addClass('header-bg');
      $('.scrollTop').fadeIn('fast');
    } else {
      $('body').removeClass('header-bg');
      $('.scrollTop').fadeOut('fast');      
    }
  });  

  /*
  * ***** Font-Selector:
  * on window scroll - change background-color
  * and font-color of navigation-element
  */  


  $('.font-selector > span').on('click', function(){
    var xClass = $(this).attr('data-class');
    $('.font-selector [data-class]').each(function(){
      var $elem = $(this);
      if ($('body').hasClass($elem.attr('data-class'))) {
        $('body').removeClass($elem.attr('data-class'));
      }
    });
    $('body').addClass(xClass);
  });



  //
  // Gallery
  //

  $('.gallery-item a').fancybox({
    beforeLoad: function() {
            this.title = $(this.element).attr('data-tooltip');
        },
    helpers		: {
			title	: { type : 'inside' },
    }
  });
  
  $('[data-slick]').each(function() {
    try {
      var options = $(this).data('slick') || {};
    } catch(e) {

    }

    if (!options.lightbox) {
      $(this).find('[data-toggle]').removeAttr('data-toggle');
    }

    $(this).slick(options);
    // console.log(options);
  }); 

  $('#lightbox').on('show.bs.modal', function (event) {
    $(this).find('img').prop('src', $(event.relatedTarget).find('img').prop('src'));
  });

  $('.list-group-item > a, .scrollTop').not('a.open-calendar').on('click', function(evt){
    // console.log('clicked');
    var target = $(this).attr('href');
    if (target.indexOf('http') > 0 ) {
      var $target = $(target);
      if (target.substring(1) === "#") {
        return;
      }

      evt.preventDefault();    
      var pos = ( target === '#' ? 0 : $target.offset().top );

      $('body, html').animate({
        scrollTop: pos
      },250);
      setTimeout(function(){
        location.hash = target;
      }, 251);

    }

  });

  //
  // YouTube
  //

  (function($, sr) {
    // debouncing function from John Hann
    // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
    var debounce = function(func, threshold, execAsap) {
      var timeout;
      return function debounced() {
        var obj = this, args = arguments;
        function delayed () {
          if (!execAsap) {
            func.apply(obj, args);
          }
          timeout = null;
        };

        if (timeout) {
          clearTimeout(timeout);
        } else if (execAsap) {
          func.apply(obj, args);
        }
        timeout = setTimeout(delayed, threshold || 100);
      };
    };
    // smartresize 
    jQuery.fn[sr] = function(fn){  return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };
  })(jQuery,'smartresize');

  (function() {

    var deferred = jQuery.Deferred();
    var promise = deferred.promise();

    // This code loads the IFrame Player API code asynchronously.
    window.onYouTubeIframeAPIReady = function() {
      deferred.resolve();
    };
    var tag = document.createElement('script');
    tag.src = "https://www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);


    // Extend jQuery
    $.fn.extend({
      youtube: function(options) {
        options = options || {};
        return this.each(function() {
          var $element = $(this);

          var data = $element.data('youtube');
          data.options = data.options || {};

          $element.css({
            position: 'relative'
          });

          var $video = $('<div data-evo-wysiwyg-shield><iframe class="embed-responsive-item" title="Watch the YouTube video ' + data.id + '" src="https://www.youtube.com/embed/' + data.id + '?enablejsapi=1" allowfullscreen></iframe></div>');
          $video.addClass('embed-responsive embed-responsive-16by9');
          $element.html($video);

          var $image;
          if (data.image) {
            //$video.hide();
            $image = $('' +
                       '<div style="position: absolute;top: 0;left: 0;width: 100%;" class="embed-responsive embed-responsive-16by9" data-youtube-image>' +
                       '   <img class="embed-responsive-item" src="' + data.image + '" alt="Watch the YouTube video ' + data.id + '">' +
                       '   <div style="position: absolute; bottom: 15px;right: 15px;font-size: 60px;color: white;"><span class="fa fa-play" aria-hidden="true"></span></div>' +
                       '</div>' +
                       '');
            $element.append($image);
            $image.find('img').on('load', function() {
              var $img = $(this);
              $video.find('iframe').css({
                width: '100%',
                height: $img.height() + 'px'
              });
              $(window).smartresize(function(){
                $video.find('iframe').css({
                  width: '100%',
                  height: $img.height() + 'px'
                });
              });
            });
          }

          //
          // Events
          //
          console.log('YouTube promise then() attached');
          promise.then(function() {// we can then use the player API…
            console.log('YouTube promise resolved');
            var player = new YT.Player($video.find('iframe')[0], {
              events: {
                onReady: function(event) {
                  console.log('YouTube onReady');
                  function play() {
                   $(".splash-slider").slick("slickPause");
                    //console.log('YouTube play Z.547 clicked');
                    $image.hide();
                    

                    //$video.show();
                    event.target.playVideo();
                    
                  }
                  //$(".splash-slider").one('afterChange', function() {
                    //console.log('here stop');
                    //player.stopVideo();
                  //});
                  
                  $element.on('click', '[data-youtube-image]', play);
                  //console.log('click event for [data-youtube-image]', $element);
                  if (data.options.autoplay) {
                    play();
                  }
                },
                onStateChange: function(event) {
                  /*
                   * YT.PlayerState.ENDED
                   * YT.PlayerState.PLAYING
                   * YT.PlayerState.PAUSED
                   * YT.PlayerState.BUFFERING
                   * YT.PlayerState.CUED
                   */
                  if ($image && (/*event.data === YT.PlayerState.PAUSED || */event.data === YT.PlayerState.ENDED)) {
                    //$video.hide();
                    //console.log('YouTube paused or ended Z.571');
                    $image.show();
                  }
                }
              }
            });
          });
        });
      }
    });

    $('[data-youtube]').youtube();
  })();


  //
  // Maps
  //

  (function() {

    $.fn.extend({
      maps: function(options) {
        options = options || {};
        return this.each(function() {
          var $element = $(this);
          var $panels = $element.find('[role="tabpanel"]');
          var $images = $panels.find('img');
          var $imagescontainer = $element.find('[data-maps-imagescontainer]');

          // Append all images from the accordion panels to the `imagescontainer`
          // and hide them.
          // The container contains the default image.
          $imagescontainer.append($images.each(function() {
            if (!$(this).closest('.in').length) {
              $(this).hide();
            }
          }));

          // Listen to events from accordion and show the matching map.
          $panels.on('shown.bs.collapse', function() {
            var index = $panels.index($(this));

            $images.hide();
            $($images[index]).show();
          });
        });
      }
    });

    if (window.parent === window.self) { // only when not in wysiwyg
      $('[data-maps]').maps();
    }

  })();

  //
  // Lesezeichen
  //

  (function() {

    var startWithHiddenContent = true;

    var $lesezeichen = $('[data-lesezeichen]');

    var $nav = $('[data-nav]');
    var navIsEmpty = $nav.is(':empty');    
    var $mainContainer = $('.main-container'); 
    var $navParent = $('.baraside');
    /* 

    if (!navIsEmpty) {
      //
      // this only happens if $nav is empty => doesn't have any predefined content in it
      //
      $mainContainer.hide();
      $mainContainer.fadeIn(250, function(){
        $mainContainer.trigger('content.shown');
      });

      var $navParent = $('.baraside');
      // set class to nav-element when content finished fading in!
      $mainContainer.on('content.shown', function(){
        $('.sp').hide();        
        $navParent.addClass('open');
      });
    } else { */

    if (!$lesezeichen.length) {
      if (!$nav.hasClass('static-nav')) {
        arenaria.generateNav($("section"), $nav);
        if($('[data-nav] > .anchor-list').is(':empty')) {
          $('[data-nav]').closest('.baraside-fixed').removeClass('hidden-ultra-lg').hide();          
        }
      }
      $navParent.addClass('open');
      $('.sp').hide();
      return;
    }

    if (startWithHiddenContent) {
      $mainContainer.show();
    }

    var columns = parseInt($lesezeichen.attr('data-columns'), 10) || 1;
    var isSlick = ( $lesezeichen.attr('data-content-slick') ? true : false );
    var hasNav = JSON.parse($lesezeichen.attr('data-lesezeichen-nav')); // parse "true" or "false"

    if (!hasNav) {
      $nav.hide();
      $nav.closest('.baraside-fixed').removeClass('hidden-ultra-lg').hide();
    }

    var $container = $('<div class="content-wrapper col-lg-12 col-md-12 col-sm-12 col-xs-12"></div>');
    var $slider = $('<div class="splash-slider clearfix"><p class="loading absolute h-centered v-centered"><i class="sp sp-circle"></i></p></div>');

    if (startWithHiddenContent) {
      $container.html($slider).hide();
    } else {
      $container.html($slider);
    }
    $container.insertAfter($lesezeichen);

    var deferreds = $lesezeichen.find('a').map(function() {
      var href= "";
      if (($(this).prop('href')).endsWith("konzerte")) {
        href = $(this).prop('href')+ "/Konzerte%20im%20Steinbruch";
      } else {
        href = $(this).prop('href');
      }
      var more = !($(this).parent().data('more-disabled') && $(this).parent().data('more-disabled').length) &&
          ($(this).parent().data('more-custom-link') || href);
      return $.get(href).then(function(response, status) {
        var $head = $('<div></div>').html(response).find('.head');
        $head.removeClass(function(index, css){
          return (css.match (/(^|\s)col-\S+/g) || []).join(' ');
        });
        if (more.length) {
          $head.find('.jumbotron').append('<a href="' + more + '" class="more">' + window.lit["more"] + '</a>');
          $head.find('.jumbotron .programlink').attr("href", href);
          $head.find('.jumbotron img').wrap('<a href="'+ href + '"></a>');
        }
        return $head;
      });
    });
    $.when.apply($, deferreds).then(function () {
      var args = [].slice.call(arguments);
      $slider.empty();
      args.forEach(function(response) {
        var head = response[0];
        var $head = $(head);
        if (columns === 1){
          $head.addClass('col-lg-12 col-'+columns);
        }        
        if (columns === 2){
          $head.addClass('col-lg-6 col-md-6 col-'+columns);
        }
        if (columns === 3){
          $head.addClass('col-lg-4 col-md-6 col-'+columns);
        }        
        $slider.append($head);


        var currentPage = location.href;
        if (currentPage.substr(currentPage.length - 8) === '/program'){
          $('.head.concerts').removeClass('hidden');
        }              
      });

      if (startWithHiddenContent) {
        $container.fadeIn(250, function(){
          // set class to nav-elem when fadeIn-Animation is finished!
          $(this).trigger('content.shown');
        });      
      } else {
        $container.trigger('content.shown');
      }

      // Need to init YouTube templates after load
      $slider.find('[data-youtube]').youtube();

      var $selector = $slider.find('.head');


      //$nav.addClass('hidden-xs');
      /* 
        var $navParent = $('.baraside');
        if (hasNav) {
          //$nav.hide();
          arenaria.generateNav($selector, $nav, 'h4', function($li, $element) {
            var src = $element.find('img').prop('src');
            $li.prepend('<img class="hidden-xs" src="' + src.replace(/(\.(?:png|jpeg|jpg))/, '_lesezeichen$1') + '">');
          });
          $nav.find('ul').append('<li class="list-group-item open-calendar"><img class="hidden-xs" src="'+ EVO.path(@"/repos/files/sample-gallery/image01-1024x768.png") +'"><a href="#" data-target="#calendarModal">Kalender</a></li>');

          $nav.find('li').not('.open-calendar').on('click', function(event) {
            event.preventDefault();
            var $li = $(this);
            var $a = $li.find('a');
            $slider.slick('slickGoTo', $li.index());
          });
        }
        */

      if (isSlick){
        // style="display: none;"
        var prev = '<button type="button" class="slick-prev hidden-xs" title="Previous Slide"><i class="icon-wrapper fullw color-white icon-300"><svg viewBox="520 0 30 30"><use xlink:href="#ir-prev"></use></svg></i></button>';
        var next = '<button type="button" class="slick-next hidden-xs" title="Next Slide"><i class="icon-wrapper fullw color-white icon-300"><svg viewBox="530 0 30 30"><use xlink:href="#ir-next"></use></svg></i></button>';        

        setTimeout(function(){
          $slider.slick({
            infinite: true, 
            fade: true, 
            autoplay: true,
           // pauseOnDotsHover: true,
            autoplaySpeed: 3000,
            dots: true,
            arrows: true,
            prevArrow: prev,
            nextArrow: next
          });   

          //$('.slick-arrow').hide();
        }, 250);

        /*  
      $container.hover(
        function(){
          $('.slick-arrow').fadeIn('fast');
        },
        function(){
          $('.slick-arrow').fadeOut('fast'); 
        }          
      );
      */

      }

      $slider.find('.description').dotdotdot({
        ellipsis: '... ',
        wrap: 'word',
        fallbackToLetter: true
      });

      $(window).smartresize(function(){
        $slider.find('.description').trigger("destroy");
        $slider.find('.description').dotdotdot({
          ellipsis: '... ',
          wrap: 'word',
          fallbackToLetter: true
        });      
      });

    });


    var $navParent = $('.baraside');
    // set class to nav-element when content finished fading in!
    $container.on('content.shown', function(){
      $('.sp').hide();        
      $navParent.addClass('open');
    });  


    var $modalNav = $('[data-modal-nav]');
    $lesezeichen.find('a').each(function(){
      // "stringify" jquery-object ('a') and place outerHTML within LI
      var $a = $(this);
      $a.prop('href', '#');
      $modalNav.append('<li>'+$a.get(0).outerHTML+'</li>');
    });
    $modalNav.find('li').first().addClass('active');


    function setSlickDots(){
      var imgHeight = $('.splash-slider .image-wrapper img').height();
      // console.log('imgHeight2', imgHeight);
      $('.splash-slider .slick-dots').css({
        top: imgHeight + 36
      });      
    }    

    $container.on('content.shown', function(){ 
      setTimeout(setSlickDots, 100);
      setSlickDots();
      parseTicker($container);
      $(window).smartresize(setSlickDots);

      //$('.table-responsive').addClass('shadow-right');

      

    });

    //}  
  })();
  
  function parseTicker($container) {
    $container.find('[data-ticker]').each(function() {
      var $elem = $(this);
      var id = $elem.data('ticker');

      if (!id)
        return;
      
      $.get('/DE/repos/evoscripts/ticker?id=' + id)
      
      .success(function(res) {
        if (!res)
          return;
         
        var content = '<marquee behavior="scroll" direction="left">' + res.text + '</marquee>';
        
        if (res.href)
          content = '<a href="' + res.href + '">' + content + '</a>';

        $elem.replaceWith('<div class="ticker">' + content + '</div>');
      });
    });
  }
  
  parseTicker($('body'));

  $('.presstitle').dotdotdot({ ellipsis: '...', wrap: 'word', fallbackToLetter: true });  


  $(document).on('click', '.baraside-fixed > i', function(evt){
    $('.baraside-fixed').toggleClass('open');

    $('.baraside-fixed > i').toggleClass("hidden");


  });

  $('.navbar-collapse').on('show.bs.collapse', function(evt){
    $('.navbar').addClass('nav-collapse-open');
  });
  $('.navbar-collapse').on('hidden.bs.collapse', function(evt){
    $('.navbar').removeClass('nav-collapse-open');
  });  


  $("[data-toggle='popover']").on('click', function(evt){
    evt.preventDefault();
  });

  $("[data-toggle='popover']").popover({
    placement: 'top',
    container: 'body',
    trigger: 'click',
    html: true
  });


  var hash = window.location.hash;
  if (hash === '#calendar') {  
    $('.open-calendar').arModal().open();  
  }
  if ("onhashchange" in window) { 
    $(window).bind('hashchange', function() {
      var hash = window.location.hash;
      if (hash === '#calendar') {
        $('.open-calendar').arModal().open();  
      }      
    });
  }

  function getMobileDateTable(cat){
    return $.get('/DE/sitemap/wwwarenariaat/ajax/termine?category='+cat);
  }

  $('.open-calendar').arModal();
  $('.open-calendar').on('arModal.shown', function(){
    if (!isMobile){
      getDates.success(function(res){
        setTimeout(function(){
          arenaria.initCalendar(res);
        }, 100);
      });
    } else {
      getMobileDateTable().success(function(res){
        $('[data-calendar]').html(res);
      });

      $('[data-category]').on('click', function(evt){
        evt.preventDefault();
        var cat = parseInt($(this).attr('data-category'), 10);


        $('[data-category]').closest('li').removeClass('active');
        $(this).closest('li').addClass('active');
        getMobileDateTable(cat).success(function(res){
          $('[data-calendar]').html(res);
        });        
      });      


    }
  });
  $('.open-calendar').on('arModal.hidden', function(){
  });

  (function() {
    var $modal = $('#people-modal');
    $('[data-people-more]').on('click', function(event) {
      event.preventDefault();
      $modal.find('[data-people-newtab]').prop('href', $(event.target).parent().find('[data-people-more]').prop('href'));
      $modal.find('[data-people-name]').html($(event.target).parent().find('[data-people-name]').html());
      $modal.find('[data-people-bio]').html($(event.target).parent().find('[data-people-bio]').html());
      $modal.find('[data-people-img]').prop('src', $(event.target).parent().find('[data-people-img]').prop('src'));
      $modal.modal('show');
    });
  })();




  $(window).on('resize', arenaria.fixedOrAbsolute);

  //pause splashslider on youtube start
  $(document).on("click",".splash-slider .fa.fa-play",function(){

    $(".splash-slider").slick('slickPause'); 
    // console.log("slick paused? Z.959");

  });



  // lower black sidebar on pages: venue and program
  var mqsidebar = window.matchMedia( "(min-width: 1300px)" );

  if ((($(".object").hasClass("programtwo")) || ($(".object").hasClass("venues"))) && (mqsidebar).matches) {
    $(".sidebar").css("margin-top", "24px");
  };



});

