if(!Utils) throw('FixtureCalendar betoltesehez hianyzik: Utils');
if(!AjaxQueue) throw('FixtureCalendar betoltesehez hianyzik: AjaxQueue');
if(!AjaxRequest) throw('FixtureCalendar betoltesehez hianyzik: AjaxRequest');

var FixtureCalendar = {
	container	: 'fixturecalendar_content',
	roller_cont	: null,
	roller		: null,
	btnLeft		: null,
	btnRight	: null,

	fixtures	: [],

	width		: 298,
	height		: 185,
	w_item		: 86,
	m_item		: 3,
	w_button	: 10,
	bg_button_l	: 'url(images/arrow_big_left.png) 50% no-repeat',
	bg_button_lo: 'url(images/arrow_big_left_over.png) 50% no-repeat',
	bg_button_r	: 'url(images/arrow_big_right.png) 50% no-repeat',
	bg_button_ro: 'url(images/arrow_big_right_over.png) 50% no-repeat',
	zIndex		: 0,
	imgLoc		: 'images/team',

	timeout		: null,
	left		: 0,
	nextleft	: 0,
	curleft		: 0,
	minleft		: 0,
	step		: 6,
	minstep		: 1,
	ready		: true,

	init : function(){
		if(this.container=$(this.container)) this.create();
	},

	create : function(){
		Utils.removeChildren(this.container);
		Utils.setStyle(this.container,{'position':'relative','height':this.height+'px','zIndex':this.zIndex});
		//Utils.setStyle(this.container,{'position':'relative','border'	: 'solid 1px yellow'});

		this.btnLeft=Ł('div',{
			'id':'fixturecalendar_btnPrevious'
		},{
			'position'	: 'absolute',
			'top'		: '0px',
			'left'		: '0px',
			'width'		: this.w_button+'px',
			'height'	: this.height+'px',
			'background': this.bg_button_l,
			'zIndex'	: this.zIndex+1,
			'cursor'	: 'pointer'
		});
		Utils.addListener(this.btnLeft,'click',this.rollLeft);
		Utils.addListener(this.btnLeft,'mouseover',function(e){
			var ed=Utils.getEventDetails(e);
			Utils.setStyle(ed.target,{'background':FixtureCalendar.bg_button_lo});
		});
		Utils.addListener(this.btnLeft,'mouseout',function(e){
			var ed=Utils.getEventDetails(e);
			Utils.setStyle(ed.target,{'background':FixtureCalendar.bg_button_l});
		});

		this.btnRight=Ł('div',{
			'id':'fixturecalendar_btnNext'
		},{
			'position'	: 'absolute',
			'top'		: '0px',
			'left'		: (this.width-this.w_button)+'px',
			'width'		: this.w_button+'px',
			'height'	: this.height+'px',
			'background': this.bg_button_r,
			'zIndex'	: this.zIndex+1,
			'cursor'	: 'pointer'
		});
		Utils.addListener(this.btnRight,'click',this.rollRight);
		Utils.addListener(this.btnRight,'mouseover',function(e){
			var ed=Utils.getEventDetails(e);
			Utils.setStyle(ed.target,{'background':FixtureCalendar.bg_button_ro});
		});
		Utils.addListener(this.btnRight,'mouseout',function(e){
			var ed=Utils.getEventDetails(e);
			Utils.setStyle(ed.target,{'background':FixtureCalendar.bg_button_r});
		});

		this.roller_cont=Ł('div',{
			'id':'fixturecalendar_roller_container'
		},{
			'position'	: 'absolute',
			'top'		: '0px',
			'left'		: (this.w_button)+'px',
			'width'		: (this.width-2*this.w_button)+'px',
			'height'	: this.height+'px',
			'overflow'	: 'hidden',
			'zIndex'	: this.zIndex+2
		});

		this.roller=Ł('div',{
			'id':'fixturecalendar_roller'
		},{
			'position'	: 'relative',
			'width'		: (this.fixtures.length*(this.w_item+2*this.m_item))+'px',
			'height'	: this.height+'px',
			'zIndex'	: this.zIndex+1
		});

		var fixtureItemContainer;
		for(var i=0;i<this.fixtures.length;i++){
			fixtureItemContainer=Ł('div',{'class':'fixtureItemContainer'});
			var imgLogo_obj,imgLogo=null;
			if(this.fixtures[i].logo){
				imgLogo_obj=new Image();
				imgLogo_obj.src=this.imgLoc+'/'+this.fixtures[i].logo;
				imgLogo_obj.onload=function(e){
					//var ed=Utils.getEventDetails(e);
					//alert(ed.target.width);
					//alert(e);
				};
				imgLogo=Ł('img',{'src':imgLogo_obj.src},{'height':'74px'});
			}

			Utils.appendChild(this.roller,
				Utils.appendChild(fixtureItemContainer,
					Utils.appendChild(Ł('div',{'class':'fixtureItemHead'}),
						document.createTextNode(this.fixtures[i].date)
					),
					Utils.appendChild(Ł('div',{'class':'fixtureItemBody'}),
						Utils.appendChild(Ł('div',{'class':'fixture_opponent'}),
							document.createTextNode('vs'),
							Ł('br'),
							document.createTextNode(this.fixtures[i].opponent)
						),
						Utils.appendChild(Ł('div',{'class':'fixture_logo'}),
							imgLogo
						),
						Utils.appendChild(Ł('div',{'class':'fixture_time'}),
							document.createTextNode(this.fixtures[i].time)
						),
						Utils.appendChild(Ł('div',{'class':'fixture_location'}),
							document.createTextNode(this.fixtures[i].location)
						)
					),
					Utils.appendChild(Ł('div',{'class':'fixtureItemFoot'}),
						document.createTextNode(this.fixtures[i].team)
					)
				)
			);
		}

		Utils.appendChild(this.container,
			this.btnLeft,
			Utils.appendChild(this.roller_cont,this.roller),
			this.btnRight
		);

		this.minleft=this.roller_cont.offsetWidth-this.roller.offsetWidth-2;
	},

	add : function(p){
		if(p instanceof Array) for(var i=0;i<p.length;i++) this.fixtures[this.fixtures.length]=p[i];
		else this.fixtures[this.fixtures.length]=p;
	},

	rollRight : function(e){
		if(FixtureCalendar.ready){
			FixtureCalendar.nextleft=FixtureCalendar.left-(FixtureCalendar.w_item+2*FixtureCalendar.m_item);
			if(FixtureCalendar.nextleft<FixtureCalendar.minleft) FixtureCalendar.nextleft=FixtureCalendar.minleft;
			FixtureCalendar.doRoll();
		}
	},

	rollLeft : function(e){
		if(FixtureCalendar.ready){
			FixtureCalendar.nextleft=FixtureCalendar.left+(FixtureCalendar.w_item+2*FixtureCalendar.m_item);
			if(FixtureCalendar.nextleft>0) FixtureCalendar.nextleft=0;
			FixtureCalendar.doRoll();
		}
	},

	doRoll : function(){
		this.ready=false;
		var step=(this.nextleft-this.left)/this.step;
		this.left+=step;
		if(Math.abs(this.nextleft-this.left)<this.minstep) this.left=this.nextleft;

		Utils.setStyle(this.roller,{'left':this.left+'px'});

		if(this.left!=this.nextleft) this.timeout=setTimeout('FixtureCalendar.doRoll();',20);
		else this.ready=true;
	}
}

Utils.addInit('FixtureCalendar.init');