(function(){
  "use strict";
  var change_slide, Months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
  months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

  var nextSlide = function () {
    $('.carousel-slide, .carousel-indicator').removeClass('pending-slide old-slide');

    if($('.active-slide+.carousel-slide').length){
      $('.active-slide').next().addClass('pending-slide');
    } else {
      $('.carousel-slide:first-child, .carousel-indicator:first-child').addClass('pending-slide');
    }
    $('.carousel').animate({'height': $('.carousel-slide.pending-slide').height() + 'px'}, 500);
    $('.active-slide').addClass('old-slide').first().animate({'opacity': 0}, 700, function(){
        $('.pending-slide').addClass('active-slide').removeClass('pending-slide');
        $('.old-slide').removeClass('active-slide').css({'opacity': 1});
      });
  };

  var toSlide = function(){
    var hash = window.location.hash.split('#')[1];
    window.clearInterval(change_slide);
    if (hash.match(/slide\d{1}/) && $('.active-slide').get(0).id !== hash) {
      $('.carousel li').removeClass('pending-slide old-slide');
      $('a[href="#' + hash +'"]').parent().addClass('pending-slide');
      $('#' + hash).addClass('pending-slide');
      $('.active-slide').addClass('old-slide').first().animate({'opacity': 0}, 700, function(){
          $('.pending-slide').addClass('active-slide').removeClass('pending-slide');
          $('.old-slide').removeClass('active-slide').css({'opacity': 1});
        });
    }
  };

  var enableMegaMenu = function () {
    if($(window).width() > 767){
      $('nav.secondary-nav').prependTo('.site-header');
      $('.menu-toggle').mouseenter(function(){
        var mm = $(this).find('.megamenu');
        $(this).addClass('open');
        mm.show();
        if (mm.offset().left + mm.outerWidth() >= $(window).outerWidth()) {
          mm.css('right', 0);
        } else {
          mm.css('right', '');
        }
      });
      $('.menu-toggle').mouseleave(function(){
        $(this).removeClass('open').find('.megamenu').hide();
      });
    } else {
      $('nav.secondary-nav').insertAfter('.main-nav');
      $('.menu-toggle').unbind();
    }
  };

  var parseEvents = function(data) {
    var date_fields, events, i, vevent;
    if ( data.items !== undefined ) {
      events = data.items;
    } else {
      data = $.parseJSON(data);
      events = data.items;
    }
    $('.events-list').empty();
    for (i = 0; i < 4; i++) {
      if(events[i].start.date !== undefined){
        date_fields = [
          events[i].start.date.substring(0,4),
          events[i].start.date.substring(5,7),
          events[i].start.date.substring(8,11)
        ];
      } else {
        date_fields = [
          events[i].start.dateTime.substring(0,4),
          events[i].start.dateTime.substring(5,7),
          events[i].start.dateTime.substring(8,11)
        ];
      }
      if (events[i].description === undefined) {
        events[i].description = "";
      }
      vevent = [
        '<li class="vevent">',
        '<div class="wrap">',
        '<h3 class="summary"><a class="url" href="'+ events[i].htmlLink +'">' + events[i].summary +'</a></h3>',
        '<span class="dtstart">',
        '<abbr class="month" title="'+ Months[parseInt(date_fields[1], 10)-1] + '">' + months[parseInt(date_fields[1], 10)-1] + '</abbr>',
        '<span class="date">' + parseInt(date_fields[2], 10) + '</span><span class="value">' + events[i].start.date + '</span>',
        '</span>',
        '<p class="description">' + events[i].description + '</p>',
        '</div>',
        '</li>'
      ];
      $('.events-list').append(vevent.join(''));
    }
  };

  var fetch_events = function() {
    var today = new Date(),
      query_params = [
        "singleEvents=true",
        "orderBy=startTime",
        "maxResults=4",
        "timeMin=" + today.toISOString(),
        "key=AIzaSyBpYVSCRzTzNcShinH-sUh6_V4pjO_Se6E"
      ];
    $.ajax({
        type: "GET",
        url: "https://www.googleapis.com/calendar/v3/calendars/westmichiganaviation.org_cgl384sj35j0apbr2n1sdvlhjc%40group.calendar.google.com/events?" + query_params.join('&'),
        success: parseEvents
      });

  };

  $(document).ready(function(){
    if ($('.carousel').length){
      if(window.location.hash.match(/slide\d{1}$/)){
        toSlide();
      } else {
        change_slide = window.setInterval(nextSlide, 5000);
      }
      if (window.onhashchange !== undefined) {
        $(window).on('hashchange', toSlide);
      } else {
        $('.slide-indicator').on('click', toSlide);
      }
    }
    if ($('.events-list').length) {
      fetch_events();
    }
    enableMegaMenu();
    $(window).resize(enableMegaMenu);

    $(".fancybox").prettyPhoto({
      show_title: false,
      default_width: 640,
      default_height: 359,
      social_tools: "",
      opacity: 0.70
    });
  });
}());
