var Flounder = {
  gPage: 1,
  gPerPage: 12,
  gPageLimit: 0,
  gItem: null,
  checkingHome: null,
  start: function() {
    Flounder.loadHome();
    Flounder.setupGallery();
    Flounder.setupMenu();
  },
  loadHome: function() {
    if($('.homeBanner img').attr('complete')) {
      var availableHeight = $(window).height() - 105;
      if($('.homeBanner img').height() > availableHeight) {
        var newHeight = availableHeight-30;
        if(newHeight < 60)
          newHeight = 60;
        $('.homeBanner img').height(newHeight);
      }
      return;
    }
  
    setTimeout(function() {
      Flounder.loadHome();
    }, 200);
  },
  setupMenu: function() {
    var menuLoc = window.location.href.split(BASEPATH);
    if(menuLoc[1] && menuLoc[1] !== '') {
      var pieces = menuLoc[1].split('/');
      var sectionUrl = BASEPATH + pieces[0];
      $('.header .menu a[href^="' + sectionUrl + '"]').addClass('active');
    }
  },
  setupGallery: function() {
    if($('.gallery-menu').length <= 0)
      return;
      
    Flounder.gPageLimit = Math.ceil($('.gallery-item').length / Flounder.gPerPage);
      
    var newW = $('.gallery-item').length * $('.gallery-item').outerWidth() + ($('.gallery-item').length * parseInt($('.gallery-item').css('margin-right')));
    
    $('.gallery-page').width(newW);
    
    $('.gallery-item').not('.active').css('opacity', .5);
    
    $('.gallery-menu .prev').click(function(e) {
      if(Flounder.gPage <= 1)
        return;
        
      Flounder.gPage -= 1;
      Flounder.galleryPage(Flounder.gPage);
    });
    
    $('.gallery-menu .next').click(function(e) {
      if(Flounder.gPage >= Flounder.gPageLimit)
        return;
        
      Flounder.gPage += 1;
      Flounder.galleryPage(Flounder.gPage);
    });
    
    $('.gallery-item').click(function(e) {
      e.preventDefault();
      
      Flounder.gItem = parseInt($(this).attr('rel'));
      
      $('.gallery-info-viewer .loading').css('display', 'inline-block');
      $('.gallery-viewer').html('<img src="' + $(this).attr('href') + '" />');
      if(Flounder.gItem > 0)
        $('.gallery-viewer').prepend('<a class="prev" href="javascript:;"></a>');
      if(Flounder.gItem < $('.gallery-item').length-1)
        $('.gallery-viewer').append('<a class="next" href="javascript:;"></a>');
      $('.gallery-info-viewer p').html($(this).attr('title'));
      $('.gallery-viewer img').hide();
      $('.gallery-item').removeClass('active');
      $(this).addClass('active');
      Flounder.loadImage();
    });
  },
  loadImage: function() {
    // set ajax loader image
    if($('.gallery-viewer img').attr('complete')) {
      var availableHeight = $(window).height() - 260;
      if($('.gallery-viewer img').height() > availableHeight) {
        var newHeight = availableHeight-120;
        if(newHeight < 100 && $('.gallery-viewer img').height() > 100)
          newHeight = 100;
        $('.gallery-viewer img').height(newHeight);
      }
      $('.gallery-viewer img').fadeIn(250);
      var leftAlter = 0;
      if($('.gallery-viewer img').width() > 900) {
        leftAlter = 900/2 - ($('.gallery-viewer img').width()/2);
        $('.gallery-viewer').animate({
          left: leftAlter
        }, 250);
      } else {
        $('.gallery-viewer').animate({
          left: 0
        }, 250);
      }
      
      $('.gallery-viewer .prev').css({
        left: 900/2 - $('.gallery-viewer img').width()/2 - 40 - leftAlter
      })
      .click(function(e) {
        if((Flounder.gItem) % Flounder.gPerPage == 0)
          $('.gallery-menu .prev').click();
        $('.gallery-item').eq(Flounder.gItem-1).click();
      })
      .show();
      $('.gallery-viewer .next').css({
        right: 900/2 - $('.gallery-viewer img').width()/2 - 40 + leftAlter
      })
      .click(function(e) {
        if((Flounder.gItem+1) % Flounder.gPerPage == 0)
          $('.gallery-menu .next').click();
        $('.gallery-item').eq(Flounder.gItem+1).click();
      })
      .show();
      $('.gallery-info-viewer .loading').hide();
      return;
    }
    
    setTimeout(function() {
      Flounder.loadImage();
    }, 200);
  },
  galleryPage: function(p) {
    $('.gallery-page').stop().animate({
      left: -(p-1) * $('.gallery-wrapper').width()
    }, 250);
  }
};

$(function() {
  Flounder.start();
});
