/**
 * User: helgehvding
 * Date: 12.07.11
 */



var newsTicker = function(obj){
	this.initialize(obj);
}

newsTicker.prototype = {

	initialize: function(obj){
		var self = this;
		this.obj = obj;
		this.currentElement = 0;
		this.setObservers();
		this.isFading = false;
	},

	setObservers: function(){

		var self = this;
		/*
		*	Sjekker om faderen skal starte når siden lastes
		*/

		if(this.obj.autoStartFader){
			this.isFading = true;
			this.newTimer = setInterval(function(){

				var i = self.currentElement+1;

				if(i > ($(self.obj.mainElements).size()-1)){
					i = 0;
				}

				self.switchElement(i,$(self.obj.mainElements).eq(i));
			},self.obj.speed);
		}

		/*
		*	Stopper faderen når du tar musen over et felt.
		*	Hvis elementet er definert som tom så kjøres ikke funksjonen
		*/

		if($(this.obj.stopfader).size() > 0){
			$(this.obj.stopfader).eq(0).mouseover(function(){
				if(self.isFading){
					self.stopSwitch();
					self.isFading = false;
				}
			});
		}
	},

	/*
	*	Dette er selve funksjonen som skifter bildene (li,div elementene)
	*/

	switchElement: function(i,elm)
    {
		var self =  this;
        if(self.currentElement != i)
        {
            self.hideElement(self.currentElement);
            self.showElement(i);
            self.currentElement = i;
        }
	},

    hideElement: function(i)
    {
        var self = this;
        $(self.obj.mainElements).eq(i).animate({
                top: '50px'
            },1000,function(){
                $(self.obj.mainElements).eq(i).css({
                    display: 'none',
                    top: 0
                });
            });
    },

    showElement: function(i)
    {
        var self = this;
        $(self.obj.mainElements).eq(i).css({
                    display: 'block',
                    top: '-50px'
        });
        $(self.obj.mainElements).eq(i).animate({
                top: '0px'
            },1000);
    },

	/*
	*	Denne funksjonen stopper den automatiske faderen. Stopper timeren
	*/

	stopSwitch: function(){
		clearInterval(this.newTimer);
	}
};

$(document).ready(function(){

	if($('.newsTicker').size() > 0){
		new newsTicker({
			mainElements: '.ticker',
			autoStartFader: true,
			stopFader: '',
			speed: 8000
		});
	}
});
