/**
 * Slider javascrip
 */
var itemsPerSlide = 2;
var screenSlider = new ScreenSlider({
    mainDiv:    '#screenSlider',
    autoSlide:  5
});

$(document).ready(function() {
    screenSlider.init();
    screenSlider.setCurrentSlide(0);
    setTimeout('screenSlider.startAutoScroll()', (screenSlider.config.autoSlide*1000));
});

function ScreenSlider(config) {
    var self = this;

    self.construct = function(config) {
        self.config = config;
	}

    self.init = function(config) {
        self.initScreenList();
        self.initControls();
	}

    self.startAutoScroll = function() {
        self.stopAutoScroll();
        self.autoScrollInterval = setInterval('screenSlider.showNextSlide()', (screenSlider.config.autoSlide*1000));
    }

    self.stopAutoScroll = function() {
        if(self.autoScrollInterval) {
            clearTimeout(self.autoScrollInterval);
        }
    }

    self.initScreenList = function() {
        self.screens = $(''+self.config.mainDiv+'').children(".slideScreen");
    }

    self.getSliderCount = function() {
       return $(''+self.config.mainDiv+'').find('.slideScreen').length-1;
    }

    self.getCurrentSlide = function() {
        return self.currentSlide;
    }

    self.setCurrentSlide = function(slideNumber) {
        if(slideNumber != self.currentSlide) {
            self.currentSlide = self.showSlide(slideNumber);
            self.setControls();
        }
        self.startAutoScroll();
    }

    self.showSlide = function(slideNumber) {
        if(slideNumber > self.getSliderCount()) {
           slideNumber = 0
        } else if(slideNumber < 0) {
            slideNumber = self.getSliderCount();
        }

        
        $(self.screens).fadeOut('fast');
        $(self.screens[slideNumber]).fadeIn();

        return slideNumber;
    }

    self.setControls = function() {
        controls = $('#slider-control').find('a');
        $(controls).removeClass('selected');
        $(controls[self.getCurrentSlide()]).addClass('selected');
    }

    self.showNextSlide = function () {
        self.setCurrentSlide(self.getCurrentSlide()+1);
    }
    
    self.showPrevSlide = function () {
        self.setCurrentSlide(self.getCurrentSlide()-1);
    }

    self.initControls = function() {
        $(''+self.config.mainDiv+'').hover(
            function() { self.stopAutoScroll(); },
            function() { self.startAutoScroll(); }
        );
            
        $('#slider-control a').bind('click', function() {
            self.setCurrentSlide(parseInt($(this).attr('href').substr(1)));
            return false;
        });
        
        $('#slider-next').bind('click', function() {
            self.showNextSlide();
            return false;
        });

        $('#slider-prev').bind('click', function() {
            self.showPrevSlide();
            return false;
        });
    }
    
    self.construct(config);
}
