$(document).ready(function(){
  var currentPosition = 0;
  var slideWidth = 620;
  var slides = $('.slide');
  var numberOfSlides = slides.length;
  var stopSlides = false;

  // Remove scrollbar in JS
  $('#slidesContainer').css('overflow', 'hidden');

  // Wrap all .slides with #slideInner div
  slides
  .wrapAll('<div id="slideInner"></div>')
  // Float left to display horizontally, readjust .slides width
  .css({
    'float' : 'left',
    'width' : slideWidth
  });

  // Set #slideInner width equal to total width of all slides
  $('#slideInner').css('width', slideWidth * numberOfSlides);

  // Insert left and right arrow controls in the DOM
  // $('#slideshow')
  //   .prepend('<span class="control" id="leftControl">Move left</span>')
  //   .append('<span class="control" id="rightControl">Move right</span>');

  // Hide left arrow control on first load
  manageControls(currentPosition);

  // Create event listeners for .controls clicks
  $('.control a')
    .bind('click', function(){
      // Determine new position
      switch ($(this).attr('rel')) {
        case 'next':
          if (currentPosition < (numberOfSlides - 1))
            currentPosition = currentPosition + 1;
          break;
        case 'prev':
          if (currentPosition > 0)
            currentPosition = currentPosition - 1;
          break;
        default:
          currentPosition = parseInt($(this).attr('rel')) - 1;
      }

      // Hide / show controls
      manageControls(currentPosition);
      // Move slideInner using margin-left
      moveSlides(currentPosition);
      return false;
    });
  
  function moveSlides (currentPosition) {
    $('#slideInner').animate({
      'marginLeft' : slideWidth*(-currentPosition)
    });
  }

  // manageControls: Hides and shows controls depending on currentPosition
  function manageControls(position){
    // Hide left arrow if position is first slide
    if(position==0) { 
      $('#leftControl').css("opacity", "0.1") 
    } else { 
      $('#leftControl').css("opacity", "1") 
    }
    
    // Hide right arrow if position is last slide
    if(position==numberOfSlides-1) { 
      $('#rightControl').css("opacity", "0.1") 
    } else { 
      $('#rightControl').css("opacity", "1") 
    }
    $('.control a.cur').removeAttr('class');
    $('.control a[rel=' + (currentPosition + 1) + ']').attr('class', 'cur');
  }
  
  function slidesTimer() {
    setTimeout(function(){ 
      if (stopSlides) 
        return;
      currentPosition = (currentPosition + 1) % numberOfSlides; 
      manageControls(currentPosition);
      moveSlides(currentPosition);
      slidesTimer();
    }, 8000);      
  }
  slidesTimer();
  
  $('.control').mouseover(function(){
    stopSlides = true;
  });
});

