/** mooTicker - Newsticker class
 *  Original copyright 2006 Wolfgang Bartelme, Bartelme Design - http://bartelme.at
 *
 *  Ported and edited for mootools by Huug Helmink
 *  version 0.3
 *  date 2009-09-10
 *
 *  Usage:
 *  var myTicker = new Ticker('idOfDivElement');
 *      or (with options)
 *  var myTicker = new Ticker('idOfDivElement',{interval: *  with   */
  
window.addEvent('domready',function() {
	var myTicker = new mooTicker('TickerVertical',{interval:7000});
});
  
  
  
var mooTicker = new Class({
	Implements: Options,
	options: {
		interval: 5000
	},
	
	initialize: function(containerId,options) {  
		// Set options
		this.setOptions(options);
		// Set container div
		this.container = $(containerId);
		
		this.interval = this.options.interval;
		
		this.messages = $(this.container).getElements('li');
		this.messages.addEvent('click',function(e){
			new Event(e).stop();
			window.open(this.getElement('a').getProperty('href'));
		});
		this.number_of_messages = this.messages.length;
		
		this.current_message = 0;
		this.previous_message = null;
		
		this.Fader = new Fx.Tween($($empty),{property:'opacity'});
		
		// Display first message
		this.hideMessages();
		this.showMessage();
		// Install timer
		this.timer = this.showMessage.periodical(this.interval,this);
	},
	
	showMessage: function() {
		this.Fader.element = this.messages[this.current_message];
		this.Fader.onStart = function() {
			this.element.setStyle('display','block');
			if(this.element.getElement('span').hasClass('ChannelGuide')){
				$E('.ticker_title_ChannelGuide').setStyle('display','block');
				$E('.ticker_title_Zap2It').setStyle('display','none');
				$('NewsTicker').setStyle('left','195px');
			} else {
				$E('.ticker_title_ChannelGuide').setStyle('display','none');
				$E('.ticker_title_Zap2It').setStyle('display','block');
				$('NewsTicker').setStyle('left','130px');
			};
			this.element.removeEvent('click');
		};
		this.Fader.onComplete = $empty;
		this.Fader.start(0,1);
	
		this.fadeMessage.delay(this.interval-1000,this);
		if (this.current_message < this.number_of_messages-1) {
			this.previous_message = this.current_message++;
		} else {
			this.current_message  = 0;
			this.previous_message = this.number_of_messages - 1;
		}
	},
	
	fadeMessage: function() {
		this.Fader.element = this.messages[this.previous_message];
		this.Fader.onStart = $empty;
		this.Fader.onComplete = function() {this.element.setStyle('display','none');};
		this.Fader.start(1,0);
	},
	
	hideMessages: function() { 
		this.messages.setStyles({
		  'display':'none',
		  'opacity':0
		});
	}
});
// ====================================================================================
function $E(selector, filter){
	return ($(filter) || document).getElement(selector);
};

