$.fn.monobind = function(eventType, callback) {
  return this.unbind(eventType, callback).bind(eventType, callback);
};
var mir = {
  news : {
    init : function() {
      $('.moduleNav a').monobind('click', mir.news.switchFrame);
    },
    hide : function(frame, nav) {
      $(frame).removeClass('open');
      $(nav).removeClass('active');
    },
    show : function(frame, nav) {
      $(frame).addClass('open');
      $(nav).addClass('active');
    },
    switchFrame : function(e) {
      e.preventDefault();
      var selected = $(e.target),
          frames = $('.news .article'),
          navItems = $('.moduleNav a'),
          i;
      if (selected.hasClass('active')) {
        return;
      }
      else {
        i = navItems.index(selected);
        for (j = 0; j < frames.length; j++) {
          var frame = $(frames[j]);
          i == j ? mir.news.show(frame, navItems[i]) : mir.news.hide(frame, navItems[j]);
        }
      }
    }
  },
  screen : {
    setup : function(e) {
      e.preventDefault();
      var screen = this,
          h = mir.screen.screenHeights[this.attr('id')];
      screen.hasClass('open') ? mir.screen.close(screen) : mir.screen.open(screen, h);
    },
    open : function(screen, h) {
      screen.addClass('open').animate({height:h});
      screen.find('.screenContent').fadeIn();
    },
    close : function(screen) {
      screen.find('.screenContent').fadeOut(function() {
        screen.removeClass('open').animate({height:0});
      });
      
    },
    screenHeights : {
      'heroScreen' : 212,
      'contactScreen' : 200
    }
  },
  toggle : function(e) {
    e.preventDefault();
    var elem = $(e.target),
        elemSection = $(elem.next('p'));
        sections = $('.bottom p');
    if (elem.hasClass('active')) {
        return;
    }
    for (var i = 0; i < sections.length; i++) {
      var section = $(sections[i]);
          prevElem = $(section.prev('h2'));
      if (section.hasClass('open')) {
        section.removeClass('open').slideUp();
        if (prevElem.hasClass('active')) {
          prevElem.removeClass('active')
        } 
      }
    } 
    elem.addClass('active');
    elemSection.addClass('open').slideDown();
  },
  init : function(e) {
    $('#contactUsLink').click($.proxy(mir.screen.setup, $('#contactScreen')));
    $('#discoverLink').click($.proxy(mir.screen.setup, $('#heroScreen')));
    $('.bottom .content').find('p:first').slideDown();
  }
}

$(document).ready(function(){
  $('.bottom .content h2').monobind('click', mir.toggle);
  mir.news.init();
  mir.init();
});

