﻿var Ticker = new Class({
	Implements : [Options],
	
	options : {
	    speed: 1000,
	    delay: 8000,
	    direction: 'vertical'
	},
        
	initialize: function(el,options){
	    this.setOptions(options);
	    this.el = $(el).addEvents({
		    'mouseover' : this.over.bind(this),
		    'mouseout' : this.out.bind(this)
		});
	    
	    this.items = this.el.getElements('li');
	    var w = 0;
	    var h = 0;
	    if(this.options.direction.toLowerCase()=='horizontal') {
		h = this.el.getSize().y;
		this.items.each(function(li,index) {
			w += li.getSize().x;
		    });
	    } else {
		w = this.el.getSize().x;
		this.items.each(function(li,index) {
			h += li.getSize().y;
		    });
	    }
	    this.el.setStyles({
		    position: 'absolute',
		    top: 0,
		    left: 0,
		    width: w,
		    height: h
		});
	    
	    this.fx = new Fx.Morph(this.el,{duration:this.options.speed,onComplete:function() {
                        var i = (this.current==0)?this.items.length:this.current;
                        this.items[i-1].injectInside(this.el);
                        this.el.setStyles({
				left:0,
				    top:0
				    });
                    }.bind(this)});
	    this.current = 0;
	    this.next();
	},
	next: function() {
	    this.current++;
	    if (this.current >= this.items.length) this.current = 0;
	    var pos = this.items[this.current];
	    this.fx.start({
		    top: -pos.offsetTop,
                        left: -pos.offsetLeft
			});
	    this.timeoutId = this.next.bind(this).delay(this.options.delay+this.options.speed);
	},
	        
	over : function(){
//             $('news_play').style.display='block';
// 	    $('news_stop').style.display='none';
// 	    this.fx.pause();
//	    $clear(this.timeoutId);
	},
        
	out : function(){
//               $('news_stop').style.display='block';
// 	      $('news_play').style.display='none';
// 	      this.fx.resume();
// 	      this.next();
	}
        
    });

var mytimer = null;

window.addEvent('domready',function(){

	// Checks that news div exists
	var elementName = 'news';
	if($(elementName) == null) {
	    return;
	}

	var vert = new Ticker('news');
	
	$('news_stop').addEvent('click', function() {
		$('news_play').style.display='block';
		$('news_stop').style.display='none';

		vert.fx.pause();
		$clear(vert.timeoutId);
	    });
	
	$('news_play').addEvent('click', function() {
		$('news_stop').style.display='block';
		$('news_play').style.display='none';

		vert.fx.resume();
		vert.next();
	    });
	
    });
