$(function() {
  
  //Função troca banner
  $(function() {
   $('#troca-banner').show();
   $('#troca-banner').cycle({
     fx:'fade',
     timeout: 5000,
     speed: 1000,
     pager:''
   });
  });

  //imagem do projeto
  /*$("ul#descricao-produto li a").click(
    function () {
      
      if ($(this).attr("title") != '') {
        var legenda =  '<p>'+$(this).attr("title")+'</p>';
      } 
    
      var tag = '<span style="background: url(\''+$(this).attr("rel")+'\') center no-repeat;">'+legenda+'</span>';
      $("div#foto-grande").html(tag);
      return false;
    }
  );*/
  
  //MASCARA PARA O FORMULARIO
  $("form #telefone").mask("(99) 9999-9999").val('*Telefone:');
  
  //APAGA VALUE
  $("form input[type='text'], form textarea").focus( 
  function() {
    if ($(this).val()==$(this).attr("defaultValue")) {
     $(this).val('');
    }
  });
  
  $("form input[type='text'], form textarea").blur(
  function() {
    if ($(this).val()=='') {
     $(this).val($(this).attr("defaultValue"));
    }
  });

  //VALIDACAO
  $('form').validate({
  
      // define regras para os campos
      rules: {
          nome: {
              required : true,
              minlength: 5
          },
          email: {
              required: true,
              email   : true
          }     
      },
      // define messages para cada campo
      messages: {
          nome: null,
          email: null
      }
  });
  
  //LISTA OCULTA
  $(".lista-oculta").hide();
  $(".select-em-lista").click(function(){
    
    if ($(".lista-oculta").css('display') == 'block'){
      $(".lista-oculta").hide();
    }else{
      $(".lista-oculta").show();
    }
  });

  $(".lista-oculta a").click(
    function () {
      $(".lista-oculta").hide();
      $(".select-em-lista").text($(this).text())
    }
  );
  
  $(".lista-oculta").mouseleave(function(){
    $(this).hide();
  });
});

//CAROUSEL
$.fn.infiniteCarousel = function () {

    function repeat(str, num) {
        return new Array( num +1 ).join( str );
    }
  
    return this.each(function () {
        var $wrapper = $('> div', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $single = $items.filter(':first'),
            
            singleWidth = $single.outerWidth(), 
            visible = Math.ceil($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
            currentPage = 1,
            pages = Math.ceil($items.length / visible);            


        // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
        if (($items.length % visible) != 0) {
            $slider.append(repeat('<li class="empty">', visible - ($items.length % visible)));
            $items = $slider.find('> li');
        }

        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
        $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
        $items = $slider.find('> li'); // reselect
        
        // 3. Set the left position to the first 'real' item
        $wrapper.scrollLeft(singleWidth * visible);
        
        // 4. paging function
        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = singleWidth * dir * visible * n;
            
            $wrapper.filter(':not(:animated)').animate({
                scrollLeft : '+=' + left
            }, 500, function () {
                if (page == 0) {
                    $wrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    $wrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                } 

                currentPage = page;
            });                
            
            return false;
        }
        
        $wrapper.after('<a id="para-esquerda" class="arrow back"></a><a id="para-direita" class="arrow forward"></a>');
        
        // 5. Bind to the forward and back buttons
        $('a.back', this).click(function () {
            return gotoPage(currentPage - 1);                
        });
        
        $('a.forward', this).click(function () {
            return gotoPage(currentPage + 1);
        });
        
        // create a public interface to move to a specific page
        $(this).bind('goto', function (event, page) {
            gotoPage(page);
        });
    });  
};

$(document).ready(function () {
  $('.infiniteCarousel').infiniteCarousel();
});