$(document).ready(function(){
  var currentPosition = 0;
  var slideWidth = 385;
  var slideHeight = 150;
  var slides = $('.slide');
  var numberOfSlides = slides.length;
  
  // Remove scrollbar in JS
  $('#slides').css('overflow', 'hidden');

  // Wrap all .slides with #slideInner div, float left to display horizontally, readjust .slides width
  slides
    .wrapAll('<div id="slideInner"></div>')
    .css({
      'float' : 'left'
    });

  // Move the active slide to the first place
  /*if($(".slide.active").length != 0){
    var activeSlideHTML = $(".slide.active").html();
    $(".slide.active").remove();
    $("#slideInner").prepend('<div class="slide" style="float:left;">' + activeSlideHTML + '</div>');
  }*/
  
  // Set #slideInner width equal to total width of all slides
  $('#slideInner').css('width', slideWidth * numberOfSlides);
  $('#slideInner').css('height', slideHeight);

  // Insert left and right arrow controls in the DOM
  $('#slideshow')
    .prepend('<span class="control left">Move left</span>')
    .append('<span class="control right">Move right</span>');
  
  if($(".slide.active").length != 0){// Determine new position
    currentPosition = parseInt($(".slide.active").index());

    // Hide / show controls
    manageControls(currentPosition);
    // Move slideInner using margin-left
    $('#slideInner').animate({
      'marginLeft' : slideWidth*(-currentPosition)
    });
  }
  
  // Hide left arrow control on first load
  manageControls(currentPosition);

  // Create event listeners for .controls clicks
  $('.control').bind('click', function(){
    // Determine new position
    currentPosition = ($(this).hasClass('right'))
    ? currentPosition+1 : currentPosition-1;

    // Hide / show controls
    manageControls(currentPosition);
    // Move slideInner using margin-left
    $('#slideInner').animate({
      'marginLeft' : slideWidth*(-currentPosition)
    });
  });

  // manageControls: Hides and shows controls depending on currentPosition
  function manageControls(position){
    var $lefty  = $('#slideshow .control.left');
    var $lefto  = 0;
    var $righty = $('#slideshow .control.right');
    var $righto = 408;
    if(position==0){ 
      if(parseInt($lefty.css('left'),10) == $lefto){
        $lefty.animate({
          left: parseInt($lefty.css('left'),10) + $lefty.outerWidth()
        });
      }
    }else{
      if(parseInt($lefty.css('left'),10) != $lefto){
        $lefty.animate({
          left: $lefto
        });
      }
    }
    if(position==numberOfSlides-1){ 
      if(parseInt($righty.css('left'),10) == $righto){
        $righty.animate({
          left: parseInt($righty.css('left'),10) - $righty.outerWidth()
        });
      }
    }else{ 
      if(parseInt($righty.css('left'),10) != $righto){
        $righty.animate({
          left: $righto
        });
      }
    }
  }
});
