(function($){
  // dom ready
  $( function(){
    $( '.slide .slide-left-arrow' ).click( function(){ 
      var $this = $( this );
      var $ul = $this.next( '.slide-container' ).find( 'ul' );
      var left = $ul.position().left;

      if ( typeof( $ul.data( 'slideIndex' ) ) == 'undefined' )
      {
        $ul.data( "slideIndex",  0 );
        $ul.data( 'slideCount', $ul.find( 'li' ).length );
        $ul.data( 'step', $this.next( '.slide-container' ).width() );
      }

      if ( $ul.data( 'slideIndex' ) - 1 < 0 )
      {
        $ul.animate({ left: - ( $ul.data( 'step' ) * ($ul.data( 'slideCount' ) - 1) ) }, 500);
        $ul.data( 'slideIndex', $ul.data( 'slideCount' ) - 1 );
      }

      else
      {
        $ul.animate({ left: left + $ul.data( 'step' ) }, 500);
        $ul.data( 'slideIndex', $ul.data( 'slideIndex' ) - 1 );
      }
        
      return false;
    });

    $( '.slide .slide-right-arrow' ).click( function(){ 
      var $this = $( this );
      var $ul = $this.prev( '.slide-container' ).find( 'ul' );
      var left = $ul.position().left;

      if ( typeof( $ul.data( 'slideIndex' ) ) == 'undefined' )
      {
        $ul.data( "slideIndex",  0 );
        $ul.data( 'slideCount', $ul.find( 'li' ).length );
        $ul.data( 'step', $this.prev( '.slide-container' ).width() );
      }

      if ( $ul.data( 'slideIndex' ) >= $ul.data( 'slideCount' ) - 1 )
      {
        $ul.animate({ left: 0 }, 500);
        $ul.data( 'slideIndex', 0 );
      }

      else
      {
        $ul.animate({ left: left - $ul.data( 'step' ) }, 500);
        $ul.data( 'slideIndex', $ul.data( 'slideIndex' ) + 1 );
      }
        
      return false;
    });

    $( '.slide .slide-right-arrow' ).css( 'cursor', 'pointer' );
    $( '.slide .slide-left-arrow' ).css( 'cursor', 'pointer' );
    $( '.slide .slide-container' ).css( 'overflow', 'hidden' );
  });
})(jQuery);
