(function($) {
      $.fn.fadeSlide = function(options){
            var defaults = {
                  automatico: true,
                  velocidadeSaida: 600,
                  velocidadeEntrada: 600,
                  tempoVisivel: 6000,
                  mostrarControles: true,
                  numerico: true,
                  textoAnterior: 'Anterior',
                  textoProximo: 'Próximo'
            };
            var options = $.extend(defaults, options);

            this.each(function(){
                  var Rafa = {};
                  var obj = $(this);
                  var li = $('ul li',obj);
                  var liFirst = $('ul li:first',obj);
                  var liLast = $('ul li:last',obj);
                  var num = $('ul li',obj).length+1;

                  li.hide();
                  liFirst.show();

                  $('ul',obj).css({
                        width:$('img',li).width(),
                        height:$('img',li).height()
                        });
                  obj.wrap('<div class="rafa-wrapper" style="position:relative;">');
                  li.css({
                        position:'absolute',
                        top:0,
                        left:0
                  });

                  Rafa.transicao = function()
                  {
                        var liVisi = $('ul li:visible',obj);
                        var liNext = liVisi.next('li');
                        if(options.mostrarControles && options.numerico)
                        {
                              var acurrent = $('li.current',controller);
                              var anext = acurrent.next('li.item');
                        }


                        liVisi.fadeOut(options.velocidadeSaida, function(){
                              if(liNext.length)
                              {
                                    liNext.fadeIn(options.velocidadeEntrada);
                                    if(options.mostrarControles && options.numerico)
                                    {
                                          acurrent.removeClass('current');
                                          anext.addClass('current');
                                    }
                              }
                              else
                              {
                                    liFirst.fadeIn(options.velocidadeEntrada);
                                    if(options.mostrarControles && options.numerico)
                                    {
                                          acurrent.removeClass('current');
                                          afirst.addClass('current');
                                    }
                              }
                        });
                  }

                  if(options.automatico)
                  {
                        Rafa.intervalo = window.setInterval(Rafa.transicao, options.tempoVisivel);
                  }

                  if(options.mostrarControles && options.numerico)
                  {
                        var control = '<div class="controls"><ol>';
                        for(i=1;i<num;i++)
                              control += '<li class="item item-'+i+'"><a href="#" item="'+(i-1)+'">'+i+'</a></li>';

                        control += '</ol></div>';
                        obj.append(control);

                        var controller = $('.controls',this);
                        var afirst = $('li:first', controller);
                        afirst.addClass('current');

                        $('.item a', controller).click(function(){
                              var clic = parseFloat( $(this).attr('item') );
                              var liVisi = $('ul li:visible',obj);
                              var liClic = $('ul li:eq('+clic+')', obj);
                              var acurrent = $('.item.current', controller);
                              var aclic = $(this).parent('li');

                              if( $('img',liVisi).attr('src') === $('img',liClic).attr('src') )
			      {
				      return false;
			      }


                              acurrent.removeClass('current');
                              aclic.addClass('current');

                              liVisi.fadeOut(options.velocidadeSaida,function(){
                                    $('ul li:eq('+clic+')', obj).fadeIn(options.velocidadeEntrada);
                              });

                              Rafa.intervalo = window.clearInterval(Rafa.intervalo);
                              Rafa.intervalo = window.setInterval(Rafa.transicao, options.tempoVisivel);

                              return false;
                        });
                  }
                  if( options.mostrarControles && !options.numerico )
                  {
                        control = '<div class="controls"><ol>';
                        control += '<li class="item"><a href="#" class="prev">'+options.textoAnterior+'</a></li>';
                        control += '<li class="item"><a href="#" class="next">'+options.textoProximo+'</a></li>';
                        control += '</ol></div>';

                        obj.append(control);
                        controller = $('.controls',this);

                        $('.item a', controller).click(function(){
                              return false;
                        });

                        $('.item .prev', controller).click(function(){
                              var visivel = obj.find('ul li:visible');
                              var prev = visivel.prev('li');

                              visivel.fadeOut(options.velocidadeSaida);
                              if(prev.length)
                                    prev.fadeIn(options.velocidadeEntrada);
                              else
                                    liLast.fadeIn(options.velocidadeEntrada);

                              Rafa.intervalo = window.clearInterval(Rafa.intervalo);
                              Rafa.intervalo = window.setInterval(Rafa.transicao, options.tempoVisivel);
                        });
                        $('.item .next', controller).click(function(){
                              var visivel = obj.find('ul li:visible');
                              var next = visivel.next('li');

                              visivel.fadeOut(options.velocidadeSaida);
                              if(next.length)
                                    next.fadeIn(options.velocidadeEntrada);
                              else
                                    liFirst.fadeIn(options.velocidadeEntrada);

                              Rafa.intervalo = window.clearInterval(Rafa.intervalo);
                              Rafa.intervalo = window.setInterval(Rafa.transicao, options.tempoVisivel);
                        });
                  }
            });

      };
})(jQuery);

(function($){
      $.fn.autoInput = function(){
            $(this).focus(function(){
                  var val = $(this).val();
                  var title = $(this).attr('title');

                  if(val == title)
                        $(this).val('');
            })
            .blur(function(){
                  var val = $(this).val();
                  var title = $(this).attr('title');

                  if ( val == '' )
                        $(this).val(title);
            });
      };
})(jQuery);




