(function($){
  
  $(function(){
    
    // Carga carrusel
    
    $('#clientes').load('/portfolio/clientes', function(){
      
      $('#clientes div')
        .hover(function(){ $(this).addClass('hover'); }, function(){ $(this).removeClass('hover'); })
        .click(function(){
          $('#carrusel-indicator').prependTo($(this)).show();
          $(this).addClass('selected').siblings('.selected').removeClass('selected');
          var id = $(this).attr('id').match(/\d+/);
          $('#info-cliente').load('/portfolio/cliente', { id: id });
          $('#galeria').load('/portfolio/gallery', { id: id }, function(){
            var n = $('#galeria div').length;
            var s = $('#galeria div:' + (n > 3 ? 'last' : 'first') + '-child img');
            if (s.length)
              $('#imagen img:first-child').attr('src', images[s.attr('class')]).show();
            $('#galeria div:gt(2)').hide();
            $('#carrusel-indicator').hide();
          });
        });
      $('#clientes div:first-child').click();
      
    });
    
    // Control carrusel
    
    var interval = 100;
    
    $('#carrusel-next').mousedown(function(e){
      $(this).everyTime(interval, 'next', function(i){
        var c = $('#clientes');
        if (c.children(':visible ~ :hidden').length > 0) {
          c.children(':visible + :hidden').show();
          c.children(':visible:first').hide();
        }
      });
    }).mouseup(function(e){
      $(this).stopTime('next');
    }).click(function(e){ e.preventDefault(); });
    
    $('#carrusel-prev').mousedown(function(e){
      $(this).everyTime(interval, 'prev', function(i){
        var c = $('#clientes');
        if (c.children(':hidden ~ :visible').length > 0) {
          c.children(':hidden:not(:visible ~ :hidden):last').show();
          c.children(':visible:last').hide();
        }
      });
    }).mouseup(function(e){
      $(this).stopTime('prev');
    }).click(function(e){ e.preventDefault(); });
    
  });
  
  $('#galeria div')
    .live('click', function(e){
      e.preventDefault();
      $('#imagen img:first-child').attr('src', images[$(this).find('img').attr('class')]);
      if ($('#galeria div').length > 3)
      {
        // Ocultar todas las imágenes hasta la actual (inclusive)
        $(this).prevAll().andSelf().hide().appendTo('#galeria').removeClass('hover');
        // Y mostrar siempre las 3 primeras
        $('#galeria div:lt(3)').show();
      }
    })
    .live('mouseover', function(){ $(this).addClass('hover'); })
    .live('mouseout', function(){ $(this).removeClass('hover'); })
  ;
  
})(jQuery);