/*
 * JQuery Carousel
 * JQuery v. 1.3.1
 * Written by Jon Rohan for BookFresh Inc.
 */
 
 jQuery.fn.carousel = function(options) {
    return this.each(function(){
        var carousel = $(this);
        var slides = carousel.find("li");
        var tabs = $(options.nav).find(".link");
        var currentIndex = 0;
        var locked = false;
        var autostart_interval;
        var autostart_counter = 0;

        var moveToSlide = function(index) {
            locked = true;
            var l = (slides[0].clientWidth)*index;
            carousel.animate({marginLeft:"-"+l+"px"},"slow","swing");
            currentIndex = index;
            activateTab(index);
        };

        var activateTab = function(index) {
            if(options.navSelected) {
                index+=2;
                $(options.nav).find("dd a").show();
                $(options.nav).find("dd:nth-child(" + index + ") a").fadeOut("fast");
                $(options.navSelected).find("dd").animate( { marginTop:"0px"},"fast","swing");
                var activeTab = $(options.navSelected).find("dd:nth-child(" + index + ")");
                activeTab.animate({marginTop:"-100px" },"fast","swing")
                .animate({marginTop:"-75px"},"fast","swing")
                .animate({marginTop:"-85px"},"fast","swing",function(){locked=false;});
            } else {
                index++;
                $("dd.selected").removeClass("selected");
                $(options.nav).find("dd:nth-child(" + index + ")").addClass("selected");
                locked=false;
            }
        };

        var next = function(){
          if(currentIndex==tabs.length - 1){
            currentIndex = 0;
            autostart_counter++;
            if (autostart_interval && autostart_counter >= options.autostart){
              clearInterval(autostart_interval);
            }
          } else {
            currentIndex++;
          }
          moveToSlide(currentIndex);
          return false;
        }        

        if(options.previous){
          $(options.previous).click(function(){
            clearInterval(autostart_interval);
            if(locked==true){
                return false;
            }
            if(currentIndex==0){
                currentIndex = tabs.length - 1;
            } else {
                currentIndex--;
            }
            moveToSlide(currentIndex);
            return false;
          });
        }
        
        if(options.next){
          $(options.next).click(function(){
            clearInterval(autostart_interval);
            if(locked==true){
                return false;
            }
            next();
            return false;
          });
        }

        if (options.autostart){
          autostart_interval = setInterval(function(){next();}, 3000);
        }
        
        tabs.click(function(){
            clearInterval(autostart_interval);
            for(i=0;i<tabs.length;i++) {
                var tab = tabs[i];
                if(tab==this) {
                    moveToSlide(i);
                    return false;
                }
            }
            
            return false;
        });
        
    });
 };
