// Jquery slideshow / Galeria de imagens
(function($) {
    $.fn.slideshow = function(options) {
        //
        var defaults = {
            navigation: '.nav-slide',
            autoplay: false,
            navleft: '.setaleft',
            navright: '.setaright',
            quantity: 4
            // O IE não suporta vírgulas no final
        }
        var opts = jQuery.extend(defaults, options);
        //
        var marginrest = Number($(this).find('a').css('margin-right').replace('px',''));
        var padding = Number($(this).find('a').css('padding-right').replace('px','')) + Number($(this).find('a').css('padding-left').replace('px','')) + 1;
        marginrest = marginrest + padding;
        var total_images = $(this).find('a').length;
        var image_width = $(this).find('a > img').width() + marginrest;
        var image_height = $(this).find('a > img').height() + marginrest;
        var selectedOne = $(this).find('a:first');
        var click_thumb = 0;
        var clicks = 0; // clicks setas nav
        var subclicks = 0; // clicks setas toolbar
        
        $(this).find('a').each(function(e){
            $(this).attr('title',e+1);
        });
        
       
        
        function criarImagemAmpliada() {
          $(opts.imgtarget).find('.foto-ampliada').empty();
          $(opts.imgtarget).find('.foto-ampliada').append('<a>');
          $(opts.imgtarget).find('.foto-ampliada').find('a').append('<img>');                
          //ampliarImagem()
        }
        
        criarImagemAmpliada();
        
        $(this).find('a').click(function(){
               selectedOne = $(this);
               $('.flagged').removeClass('flagged');
               $(this).addClass('flagged');
               img = $(this).attr('href');
               imgTarget = $(opts.imgtarget).find('img');                
               
               // Checa se tem link para o youtube
               if(img.match(/http:\/\/www.youtube.com\//gi)) {
                 youtubeCode = img.match(/v=[\w\d_-]+/gi);
                 youtubeCode = youtubeCode.toString().substring(2);
                 youtubeIframe = '<object width="555" height="370"><param name="movie" value="http://www.youtube.com/v/'+youtubeCode+'?fs=1&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'+youtubeCode+'?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="555" height="370" wmode="transparent"></embed></object>';
                 $(opts.imgtarget).find('.foto-ampliada').empty().append(youtubeIframe);
                 $(opts.legenda).empty();
               } else {
                 if(imgTarget.length < 1) {
                   criarImagemAmpliada();
                   imgTarget = $(opts.imgtarget).find('.foto-ampliada').find('img');
                 }
                 imgTarget.attr('src',img);
                 $(opts.legenda).html($(this).find('img').attr('title'));
                 //$(opts.imgtarget).find('.foto-ampliada').find('a').attr('href',img);
               }
               
               click_thumb++;
               return false; 
        });
        
        $(this).find('a:first').trigger('click');
        $(this).find('img:last, a:last').css('margin-right','0px');
        $(this).wrapInner('<div class="rslide-wrapper"><div class="rslide-content"></div></div>')
        $('.rslide-wrapper').css('width',(image_width * opts.quantity) - marginrest);
        $('.rslide-wrapper').css('height',image_height);
        $('.rslide-content').css('width',(image_width * total_images));
        

        var current_x = Math.floor($('.rslide-content').position().left);
        
        function goLeft(){
              current_x = Math.floor($('.rslide-content').position().left);
              if(clicks > 0) {
                  if(!$('.rslide-content').is(':animated')) {
                        if( current_x < 0 ) {
                            $('.rslide-content').stop().animate({'left': current_x + image_width }, 500);
                            clicks--;
                        }
                  }
              }
              return false; 
        }
        
        function goRight(){
              current_x = Math.floor($('.rslide-content').position().left);
              if(clicks < (total_images - opts.quantity)) {              
                  if(!$('.rslide-content').is(':animated')) {
                      $('.rslide-content').stop().animate({'left': current_x + (image_width * -1) }, 500);
                      clicks++;
                  }
              }
              return false; 
        }
        
        $(opts.navleft).click(function(){
              goLeft();
              return false; 
        });
        
        $(opts.navright).click(function(){
              goRight();
              return false; 
        });
        
        // Auto Play
        var playing = false;
        
        function autoPlay() {
            int = setInterval(function(){
                goRight();
            },7000);
        }
        
        $('.galeria-play').toggle(function(){
            $(this).toggleClass('galeria-stop');
            autoPlay(); 
            playing = true;
        }, function(){
            $(this).toggleClass('galeria-stop');
            clearInterval(int);
            playing = false;
        });
        
        $('.galeria-next').click(function(){
            if(selectedOne.attr('title') >= opts.quantity) {
              goRight();
            }
            if (selectedOne.attr('title') == total_images) {
                $('.galeria-play').trigger('click');
            }
            selectedOne.next().trigger('click');
            return false;
        });
        
        $('.galeria-prev').click(function(){
            if(selectedOne.attr('title') > 0) {
              goLeft();
            }
            selectedOne.prev().trigger('click');
            return false;
        });
        
    }    
})(jQuery);
