var oFixtures = {
	
	Fixtures : function(oList, iVisible, bSingleRun, iTimer, iDelay) {
		this.oList = oList === undefined ? this.oList : oList;
		this.iVisible = iVisible === undefined ? this.iVisible : iVisible;
		this.bSingleRun = bSingleRun === undefined ? this.bSingleRun : bSingleRun;
		this.iTimer = iTimer === undefined ? this.iTimer : iTimer;
		this.iDelay = iDelay === undefined ? this.iDelay : iDelay;
		this.GetFixtures();
	},
	
	GetFixtures : function() {
		$.get('includes/fixtures.xml',function(xml){oFixtures.BuildFixtures(xml)})
	},
	
	BuildFixtures : function(xml) {
		try {
			$(xml).find('fixture').each(
				function() {
				var fixture = $(this);
				var sTitle = ($(this).find('title').text());
				var sInfo = ($(this).find('info').text());
				var sDate = ($(this).find('date').text());
				aoFixtures[aoFixtures.length] = {title:sTitle, info:sInfo, date:sDate};
				}
			);
			this.RunFixtures()
		} catch(e) {
			return;	
		}
	},
	
	LoadFixtures : function(aoFixtures, oList) {
		for (var i = 0; i < aoFixtures.length; i++) {
			var oDT = document.createElement('dt');
			var oDD = document.createElement('dd');
			
			oDT.innerHTML = aoFixtures[i].title;
			oDD.innerHTML = aoFixtures[i].info + '<br/>' + aoFixtures[i].date;
			
			oList.append(oDT);
			oList.append(oDD);
		}
	},
	
	RunFixtures : function(oList, iVisible, bSingleRun, iTimer, iDelay) {
		if (aoFixtures.length) { this.Display(); }
		if (!this.bSingleRun || !aoFixtures.length) { $.timer(this.iDelay, function(){oFixtures.RunFixtures()}); }
	},
	
	Display : function() {
		this.LoadFixtures(aoFixtures, this.oList);
		this.HideFixtures(this.oList, this.iVisible);
		$.timer(this.iTimer, function(){oFixtures.ShowFixtures()});
	},
	
	HideFixtures : function(oList, iNumber) {
		
		$('#fixtures img.loader').show();
		
		var aoDT = $(oList).children('dd')
		var aoDD = $(oList).children('dt')
		
		var aiCurrentOrder = this.aiCurrentOrder;
		if (!aiCurrentOrder.length) {
			for (var i = 0; i < aoDT.length; i++) { aiCurrentOrder[aiCurrentOrder.length] = i; }
		} else {
			var aiOld = aiCurrentOrder.slice(0, iNumber);
			var aiRest = aiCurrentOrder.slice(iNumber, aiCurrentOrder.length);
			aiCurrentOrder = aiRest.concat(aiOld);
		}
		
		for (var i = 0; i < aoDT.length; i++) {
			if ($(aoDT[i]).is(':visible')) {
				$(aoDT[i]).fadeOut();
				$(aoDD[i]).fadeOut();
			}			
		}
		this.aiCurrentOrder = aiCurrentOrder;
		this.iCurrentMax = iNumber;
		this.aoDT = aoDT;
		this.aoDD = aoDD;
	},

	ShowFixtures : function() {
		
		$('#fixtures img.loader').hide();
		
		var aoDT = this.aoDT;
		var aoDD = this.aoDD;

		for (var i = 0; i < this.iCurrentMax; i++) {
			var iCurrent = this.aiCurrentOrder[i];
			$(this.aoDT[iCurrent]).fadeIn('slow');
			$(this.aoDD[iCurrent]).fadeIn('slow');
		}
		
	},
	aiCurrentOrder : [],
	aoDT : [],
	aoDD : [],
	iCurrentMax : 0,
	oList : {},
	iVisible: 3,
	bSingleRun : true,
	iTimer : 1000,
	iDelay : 9000
}

aoFixtures = [];