﻿//$(function(){
//    var _W = 0, _Q = 0, _Tu = 0;    
//    $("#BoxSlider > div > div.SliderItem").each(function(){
//        _W += parseInt($(this).width()) + parseInt($(this).css('margin-left').replace('px','')) + parseInt($(this).css('margin-right').replace('px',''));
//        _Q += 1;
//    });    
//    _Tu = _W / _Q;    
//    $("#BoxSlider > div").width(_W).animate({'margin-left':'-'+(_Tu*(_Q-3)) + 'px'},2000);
//});


/*Extend Carrosel - HEDSDesign 0.1*/
(function($) {
     $.fn.HEDS_Carrossel= function(param,param2){ 
        var p = {
            btnVoltar   :   '#SliderNavEsq',
            btnProximo  :   '#SliderNavDir',
            ClassItem   :   '.SliderItem',
            Itens       :   3,
            Atrazo      :   500,
            Intervalo   :   6000,
            loop        :   true
        }
        
        var _p = {
            TamanhoGeral:   0,
            TamanhoItem :   0,
            Qtd         :   0,
            Atual       :   0,
            Relogio     :   null,
            Animando    :   false,
            Continue    :   false,
            Pai         :   null
        }        
        if(param)$.extend(p, param);
        if(param)$.extend(_p, param2);
        _p.Pai = this;
        
        //Faz os calculos
        $(" div."+p.ClassItem,this).each(function(){
            _p.TamanhoGeral += parseInt($(this).width()) + parseInt($(this).css('margin-left').replace('px','')) + parseInt($(this).css('margin-right').replace('px',''));
            _p.Qtd += 1;
        });
        _p.TamanhoItem = _p.TamanhoGeral / _p.Qtd;
        $("> div", _p.Pai).width(_p.TamanhoGeral);
        if (_p.Qtd <= 1) { p.loop = false; $(p.btnProximo).hide(); $(p.btnVoltar).hide(); }
        
        //Função de mover - Parametro lado: E='Esquerdo'; D='Direito'
        function Move(Lado) {
            if(p.loop) clearTimeout(_p.Relogio);//Limpa o TimeOut            
            if(_p.Animando){ _p.Continue = true;}//Se estiver animando adiciona pra proseguir mais um na animação
            else{//Se não tiver animado
                if(Lado == "E")//Se for lado Esquerdo
                {   
                    _p.Animando = true;//Aciona dizendo que está animado
                    _p.Atual += 1;//Adiciona mais um item pra proseguir pro próximo
                    if(_p.Atual > (_p.Qtd - p.Itens)){//se for o último 
                        _p.Atual = 0;//Volta para o começo do vetor
                        $(' > div',_p.Pai).animate({'margin-left': (-1*(((_p.TamanhoItem*_p.Atual)+(_p.TamanhoItem/4))-(_p.TamanhoItem))) + 'px'},p.Atrazo)
                            .animate({'margin-left':(-1*(_p.TamanhoItem*_p.Atual)) + 'px'},(p.Atrazo/2),
                                function(){
                                    _p.Animando = false; if (_p.Continue) { _p.Continue = false; Move("E"); } else { if (p.loop) _p.Relogio = setTimeout(function () { Move('E'); }, p.Intervalo); }
                                });                                                        
                    }
                    else{
                    $(' > div',_p.Pai)
                    .animate({'margin-left':(-1*((_p.TamanhoItem*_p.Atual)+(_p.TamanhoItem/4))) + 'px'},p.Atrazo)
                    .animate({'margin-left':(-1*(_p.TamanhoItem*_p.Atual)) + 'px'},(p.Atrazo/2),
                        function(){
                            _p.Animando = false; if (_p.Continue) { _p.Continue = false; Move("E"); } else { if (p.loop) _p.Relogio = setTimeout(function () { Move('E'); }, p.Intervalo); }
                        });                        
                    }
                }
                else if(Lado == "D")
                {
                    _p.Animando = true;
                    _p.Atual -= 1;
                    if(_p.Atual < 0){ 
                        _p.Atual = (_p.Qtd - p.Itens);
                        $(' > div',_p.Pai)
                        .animate({'margin-left':(-1* (((_p.TamanhoItem*_p.Atual)-(_p.TamanhoItem/3))+(_p.TamanhoItem))) + 'px'},p.Atrazo)
                        .animate({'margin-left':(-1* (_p.TamanhoItem*_p.Atual)) + 'px'},(p.Atrazo/2),
                            function(){
                                _p.Animando = false; if (_p.Continue) { _p.Continue = false; Move("D"); } else { if (p.loop) _p.Relogio = setTimeout(function () { Move('E'); }, p.Intervalo); }
                            });
                    }
                    else{
                    $(' > div',_p.Pai)
                    .animate({'margin-left':(-1* ((_p.TamanhoItem*_p.Atual)-(_p.TamanhoItem/3))) + 'px'},p.Atrazo)
                    .animate({'margin-left':(-1* (_p.TamanhoItem*_p.Atual)) + 'px'},(p.Atrazo/2),
                        function(){
                            _p.Animando = false; if (_p.Continue) { _p.Continue = false; Move("D"); } else { if (p.loop) _p.Relogio = setTimeout(function () { Move('E'); }, p.Intervalo); }
                        });
                    }
                    
                }
            }            
        }
        
        //Adiciona o evento nos botoes        
        $(p.btnProximo).click(function(){Move('E');});
        $(p.btnVoltar).click(function(){Move('D');});        
        
        function Prox(){$(p.btnVoltar).click();}
        //Inicia a Animação        
        if (p.loop) _p.Relogio = setTimeout(function () { Move('E'); }, p.Intervalo);
        
     }
})(jQuery);
