
 
    var interval;
    var timeout = 4000;
    var slidethrumbInt = 0;
    var _activeCarousel = null;

    $(function() {
        _activeCarousel = new carousel();
        var activeSlideId = "";
        $("#slideshow").find("img[class*='ref']").each(function(index, item) {
            var sl = new slide();
            sl.img = $(this);
            var className = $(this).attr("class");

            if (index == 4) {

                activeSlideId = className.replace('active', '').replace(' ', '');
                sl.isActive = true;
            }
            sl.id = className.replace('active', '').replace(' ', '');
            className = className.split(" ")[0];
            sl.thrumb = $("#slides").find("img[class*='" + className + "']");
            _activeCarousel.addSlide(sl);
        });
        var activeslide = _activeCarousel.slidelist[0];
        
        _activeCarousel.activateSlide(activeslide.id, true);
        startSlider();
    });

    function writedebug(str) {
        //$("#debug").html($("#debug").html() + "<br/>" + str);

    }
    /* funzioni casorello */
    function run() {
        _activeCarousel.activateNextSlide();
    }
    function startSlider() {
        if (interval != null && interval != 0) {
            stopSlider();
        }
        interval = setInterval("run()", timeout);
        
    }
    function stopSlider() {
    
        clearInterval(interval);
        
    }
    
    var timeout = 4000;
    var countTimer = 0;
    function carousel() {
        this.slidelist = new Array();
        this.addSlide = _addSlide;
        this.activeSlide = _activeSlide;
        this.findSlide = _findSlide;
        this.activateSlide = _activateSlide;
        this.activateNextSlide = _activateNextSlide;
      
    }
    function slide() {
        this.id;
        this.isActive = false;
        this.img;
        this.thrumb;
        this.activate = _activate;
        this.deactivate = _deactivate;
        this.init = _initslide;
    }
 
   
    function _activateNextSlide() {

        var actIndex = 0;
        $(this.slidelist).each(function(index, item) {
            if (this.isActive) {
                actIndex = index;
            }
        });
       
         var newIndex = 0;
         if (actIndex == ($(this.slidelist).size()-1)) {
                newIndex = 0;
         }
         else{
            newIndex = actIndex+1;
        }
        
        this.activateSlide(this.slidelist[newIndex].id, true);
    }
    function _activeSlide() {
        var retData = null;
        
        $(this.slidelist).each(function(index, item) {
            
            if (this.isActive) {
                retData = this;
            }
        });
        return retData;
    }
    function _findSlide(slName) {
        var retData = null;
        $(this.slidelist).each(function(index, item) {
            if (this.id == slName) {
                
                retData = this;
            }
        });
        return retData;
    }
    function _addSlide(sl) {
        this.slidelist.push(sl);
        sl.init();
    }
    function _activateSlide(sl) {
        this._activateSlide(sl, true);
    }
    function _activateSlide(sl, start) {

        
        stopSlider();
        
        var selectedSlide = this.findSlide(sl);
        var oldActiveTab = this.activeSlide();
        if (selectedSlide != null) {
            $(this.slidelist).each(function() {
                this.deactivate();
                this.isActive = false;
            });

            selectedSlide.activate(oldActiveTab);
            selectedSlide.isActive = true;
        }
        if (start)
            startSlider();
    }
  
/* funzioni slide */
    function _initslide() {
        var objslide = this;
        
        $(this.thrumb).bind('mousemove', function() {

        if (!objslide.isActive) 
            {
                stopSlider();
                _activeCarousel.activateSlide(objslide.id, false);
              // startSlider();
                //$(objslide.thrumb).css({ opacity: 1.0, backgroundPosition: '-171px' });
            }
        });
        $(this.thrumb).bind('mouseout', function() {
            /*   if (!objslide.isActive) {
            $(objslide.thrumb).css({ opacity: 1.0, backgroundPosition: '0' });
            }
            */
            start = true;
            startSlider();
        });


        $(this.img).bind('mousemove', function() {

        
            //if (!objslide.isActive) {
                stopSlider();
              //  _activeCarousel.activateSlide(objslide.id, false);
                // startSlider();
                //$(objslide.thrumb).css({ opacity: 1.0, backgroundPosition: '-171px' });
            //}
        });
        $(this.img).bind('mouseout', function() {
            /*   if (!objslide.isActive) {
            $(objslide.thrumb).css({ opacity: 1.0, backgroundPosition: '0' });
            }
            */
            start = true;
            startSlider();
        });

        $(this.thrumb).bind('click', function() {
            /*stopSlider();
            _activeCarousel.activateSlide(objslide.id);
            startSlider();*/
    });

    
    
    }
    function _activate(oldActiveTab) {
        
       // $(this.img).addClass("active");
        //$(this.thrumb).addClass("active");
        this.isActive = true;
        $(this.img).css({ opacity: 0.0 })
        .addClass('active')
        .animate({ opacity: 1.0 }, 1000, function() {
            if (oldActiveTab != null) {
                oldActiveTab.deactivate();
            }
        });

        $(this.thrumb).css({ opacity: 0.0 }).addClass('active')
        
        .animate({ opacity: 1.0, backgroundPosition: '-171px' }, slidethrumbInt);  
    }
    function _deactivate() {
        this.isActive = false;

        $(this.thrumb).removeClass("active").css({ opacity: 1.0, backgroundPosition: '0' });  ;
        $(this.img).removeClass("active");
    }
   
   
   
    
