var activeButton;
var ajaxButton = new Class({
								
	initialize: function(e) 
	{
		this.vo = eval("(" + e.id + ")");
		this.e = e;
		
		switch(this.vo.what)
		{
			case 'getVideo':
			case 'getVideoFromContent':
				this.t = new Fx.Morph(this.e.childNodes[0],{duration:'normal', transition:'cubic:out'});
				break;
			case 'getList':
				this.t = new Fx.Morph(this.e,{duration:'fast', transition:'cubic:out'});
				this.e.setStyle('opacity',0.5);
				break;
		}
		
		this.setEvents(e);
	},
	
	setGlobals: function()
	{
		vo = this.vo;
		activeButton = this;
	},
	
	doRequest: function()
	{
		switch(this.vo.what)
		{
			case 'getList':
			case 'getListFromContent':
			case 'getVideo':
			case 'getVideoFromContent':
			case 'getHome':
				sequencer();
			break;
			default:
		}		
	},
	
	afterRequest: function(t)
	{
	},
	
	updateAfterRequest: function()
	{
	},
	
	setEvents: function(e)
	{
		this.e.addEvents
		({
			'mouseover': this.doMouseover.bind(this),
			'mouseout': this.doMouseout.bind(this),
			'click': this.doClick.bind(this)
		});
		
		e.onclick = function()
		{
			return false;
		};	
		
		e.onmouseover = function()
		{
			return false;
		};
		
		e.onmouseout = function()
		{
			return false;
		};
	},
	
	doClick: function()
	{
		if(this.vo.what == 'getList')
		{
			activeThemes.empty();
			activeThemes.include(this.vo.id);
			resetActiveThemes();
		}
		if($('player'))
		{
			$('player').dispose();
		}
		this.setGlobals();
		this.doRequest();
		this.e.blur();
	},
	
	doMouseover: function()
	{
		this.e.style.cursor = 'pointer';
		switch(this.vo.what)
		{
			case 'getVideo':
			case 'getVideoFromContent':
				this.t.cancel();
				this.t.start({'paddingTop':[0]});
			break;
			case 'getList':
			if(!activeThemes.contains(this.vo.id))
			{
				this.e.setStyle('opacity',1);
			}
			break;
		}
	},
	
	doMouseout: function()
	{
		this.e.style.cursor = 'default';
		switch(this.vo.what)
		{
			case 'getVideo':
			case 'getVideoFromContent':
				this.t.cancel();
				this.t.start({'paddingTop':[10]});
			break;
			case 'getList':
			if(!activeThemes.contains(this.vo.id))
			{
				this.e.setStyle('opacity',0.5);
			}
			break;
		}
	}
	
});
	
function initAjaxButton(where)
{
	$$('#' + where +' .ajaxButton').each(function(e)
	{
		var b = new ajaxButton(e); 
		if(where == 'nav')
		{
			themes.include(b);
			themesID.include(b.vo.id);
		};
	});
}

