/*
 * jQuery Gallery Slider v0.4a
 * ---
 * Copyright (C) 2011 MyNorth Media
 * For licensing information:
 *     michael@traversemagazine.com
 */

function sliderInit() {

  (function($) {
    for (i = 1; i < $('.slider > li').length; i++) {
      $('.pagination .slide_next').before('<li class="slide_number"><a href="#">' + (i + 1) + '</a></li>');
    }

    $('.slider > li:first').addClass('slider_current');
    $('.slider .slider_current .fader_controls').fadeIn('slow');

    $('.pagination > li').click(function(evt) {
      if (!$(this).hasClass('slide_current') && !$('.slider').hasClass('dancing')) {
        var current_slide     = $('.slider .slider_current');
        var current_slide_int = $('.pagination .slide_current').text() - 1;
        var slide_total       = $('.slider > li').length;
        var new_slide_int;

        if ($(this).hasClass('slide_number')) {
          new_slide_int = $(this).text() - 1;
        }

        if ($(this).hasClass('slide_prev')) {
          new_slide_int = current_slide_int - 1;
        }

        if ($(this).hasClass('slide_next')) {
          new_slide_int = current_slide_int + 1;
        }

        if (0 <= new_slide_int && new_slide_int < slide_total) {
          var new_slide = $('.slider > li:eq(' + new_slide_int + ')');
          var direction = (current_slide_int < new_slide_int) ? -1 : 1;

          var left_out_end  = 1000 * direction;
          var left_in_start = 1000 * (direction * -1);
          var left_in_end   = 12;
          var slide_speed   = 600;

          $('.pagination .slide_current').removeClass('slide_current');
          $('.pagination > li:eq(' + (new_slide_int + 1) + ')').addClass('slide_current');

          $('.slider').addClass('dancing');

          // things seem a little show, otherwise
          current_slide.find('.fader_controls').fadeOut('fast', function() {
            current_slide.animate({'left': left_out_end + 'px'}, slide_speed, function() {
                $(this).hide().removeClass('slider_current');
              })

            new_slide.css('left', left_in_start + 'px').show();
            new_slide.animate({'left': left_in_end + 'px'}, slide_speed, function() {
                new_slide.addClass('slider_current');
                new_slide.find('.fader_controls').fadeIn('slow');
                $('.slider').removeClass('dancing');
            });
          });
        }
      }

      evt.preventDefault();
    });
  })(jQuery)

};

