/*
 *
 */

(function($) {
    $.fn.textSlider = function(options){
        // default configuration
        var defaults = {
            iddefault:'0',
            nivdefault:'0',
            maxlvl:'4',
            defaultariane:'/',
            url:'/index.php?module=main&action=secteur:getsecteur',
            titledetail:'',
            contentdetail:'Voir'
        };

        var options = $.extend(defaults, options);
        var obj = $(this);
        var idobj="#"+obj.attr("id")
        var list={};
        var w = obj.width();
        var t = options.nivdefault; //niveau actuelle
        
        //init
        createUlBase();
        obj.css("overflow", "hidden");
        getListe(options.iddefault,options.nivdefault);
        createAriane();
        /*$(idobj+" a.prev").click(function(){
            animation("prev");
        });*/

        function createUlBase(){
            if($(idobj+' ul#listes').length==0){
                obj.html('<ul id="listes"></ul>');
                $(idobj+" ul#listes").css("width", (options.maxlvl)*w+"px").css("margin-left","0px");
            }
        }

        function addLiBase(niv){
            if($(idobj+' ul#listes li#liste'+niv).length==0){
                $(idobj+' ul#listes').append('<li id="liste'+niv+'"></li>');
                $(idobj+' ul#listes li#liste'+niv).css("width",w+"px")
                .css("float","left")
                .css("overflow","hidden");
            }
        }

        function createAriane(){
            $(idobj).prepend('<div id="arianesecteur"><a href="javascript:void(0);" tabindex="0">'+options.defaultariane+'</a></div>');
            $(idobj+" #arianesecteur a[tabindex=0]").click(function(){
                delAriane(0);
                animation(-1);
            });
        }

        function addAriane(niv,title){
            $(idobj+" #arianesecteur").append('<a href="javascript:void(0);" tabindex="'+niv+'"> > '+title+'</a>');
            $(idobj+" #arianesecteur a[tabindex="+niv+"]").click(function(){
                delAriane(niv);
                animation(niv-1);
            });

        }

        function delAriane(niv){
            $(idobj+" #arianesecteur a:gt("+niv+")").remove();
        }


        function getListe(id,nivclick){
            //récup des infos
            $.getJSON(options.url,
            {
                id: id
            },
            function(data) {
                if(data!=""){
                    list = data;
                    showData(nivclick);
                }
            }
            );
                
              
        }

        function showData(niv){
            addLiBase(niv)
            var _html = "<ul>";
            $.each(list, function(i,item){
                if(item.state=="C"){
                    _html += '<li id="'+item.id+'"><a href="'+item.url+'"><span>'+ item.title+'</span></a></li>';
                }else{
                    _html += '<li class="clickable" id="'+item.id+'"><span>'+ item.title+'</span> <a title="'+options.titledetail+'" href="'+item.url+'">'+options.contentdetail+'</a></li>';
                }
            });
            _html += "</ul>";
            $(idobj+" #liste"+niv).html(_html);
        
            $(idobj+" #liste"+niv+" li.clickable span").click(function(){
                var iddiv =$(this).parents("li").parents("li").attr("id");
                var matches=iddiv.match(/([0-9])/g);
                var nivclick=parseInt(matches[0]);
                var txt = $(this).text();
                addAriane(nivclick+1,txt);
                getListe($(this).parents("li").attr("id"),nivclick+1);
                animation(nivclick);
            });

        }

        function animation(dir){
            
            switch(dir){
                case "next":
                    t=t+1;
                    break;
                case "prev":
                    t=t-1;
                    break;
                default:
                    t = dir;
                    break;
            }
            t=parseInt(t);
            $(idobj+" ul#listes").animate(
                {marginLeft:-w*(t+1)},
                {queue:false, duration:500}
            );
        }

        


    };
})(jQuery);




