var Antilight = {
  
  language: 'pl',
  
  start: function() {
    this.prepareDocument();
    this.enableCarousel();
    this.enableFancybox();
    this.enhancevCard();
  },
  
  prepareDocument: function() {
    var global = this;
    $('html').addClass('js').each(function() {
      if (this.lang) {
        global.language = this.lang;
      }
    });
  },
  
  enableCarousel: function() {
    var l18n = {
      en: {
        next: 'Next',
        first: 'Go back'
      },
      pl: {
        next: 'Następne',
        first: 'Na początek'
      }
    };
    
    var global = this;
    
    var build_button = function(type) {
      var $button = $('<a href=""></a>');
      $button
        .text(l18n[global.language]['' + type])
        .addClass('carousel-' + type)
        .append('<span/>')
        .appendTo($container);
      return $button;
    };
    
    var $container = $('.carousel');
    var $list = $container.find('ul');
    
    var $button_next = build_button('next');
    var $button_first = build_button('first');
    
    var list_count = $list.find('li').length;
    var page_size = 3;
    var index = 0;
    var list_count_div_page_size = list_count / page_size;
    var max_index = ((list_count % page_size) == 0) ? list_count_div_page_size - 1 : Math.floor(list_count_div_page_size);
    var item_width = 310;
    var page_width = item_width * page_size;
    
    // make width correction, if CSS wasn't updated
    $list.width(list_count * item_width);
    
    $button_next.bind('click', function(e) {
      if (index < max_index) {
        var position = 0 - ((index + 1) * page_width);
        index++;
        $list.animate({
          left: position
        });
        if (index == max_index) {
          $button_next.fadeOut();
          $button_first.fadeIn();
        }       
      }
      e.preventDefault();
    });
    
    $button_first.bind('click', function(e) {
      index = 0;
      $list.animate({
        left: 0
      });
      $button_next.fadeIn();
      $button_first.fadeOut();
      e.preventDefault();
    });
  },
  
  enableFancybox: function() {
    $('.carousel ul a').attr('rel', 'gallery').fancybox({
      'transitionIn': 'fade',
      'transitionOut': 'fade',
      'opacity': true,
      'overlayShow': true,
      'overlayColor': '#fff',
      'overlayOpacity': 0,
      'hideOnContentClick': true,
      'showCloseButton': false,
      'titlePosition': 'inside',
      'padding': 0
    });
  },
  
  enhancevCard: function() {
    $('.vcard .url').bind('click', function(e) {
      e.preventDefault();
    });
  }
};

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