//
// XHTML Data Manipulation Library
// (c) 2006, Konrad Gmurek.
// 

function removeAllChildren(node) {
	while (child = node.firstChild) {
		node.removeChild(child);
	}
}

//
// Date & Time Library
// (c) 2006, Konrad Gmurek.
// 

monthsNames = new Array('January','February','March','April','May','June','July','August','September','October','November','December');

function leapYear(year) {
    return (year%4==0 && year%100!=0 || year%400==0) 
}

function numDays(month,year) {
	days = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if (month==2 && leapYear(year))
		return 29;
	else
		return (days[month-1]);
}

//
// betfair - additional
//

function pad0(num) {
	return ((num<10)?'0'+num:num);
}

function generate(table,month,year) {

	dateLimit = finalDate();

	content = '<table cellspacing="0" cellpadding="0" width="100%"><tbody>';

	if (year==2006 && month==6)
		dayStart = 4;
	else
		dayStart = 0;

	if (month==dateLimit[1] && year==dateLimit[2]) {
		dayStop = dateLimit[0];
	}
	else 
		dayStop = numDays(month,year);

	for (i=dayStart;i<dayStop;i++) {
		content += '<tr'; if (i%2) content += ' class="even" ';
		content += '><td class="date" width="69">'+pad0(i+1)+'-'+pad0(month)+'-'+year+'</td><td><a href="';
		link = 'http://stats.betfairgames.com/xbtstats/xbt_stats.'+year+''+pad0(month)+''+pad0(i+1)+'.csv';
		content += link+'" onclick="return openStat(this.href);">'+link+'</a></td></tr>'
	}
	content += '</tbody></table>';
	table.innerHTML = content;
}

function generateStat() {
	table = document.getElementById('tablecontainer');
	generate(table,document.getElementById('month').value,document.getElementById('year').value);
}

function finalDate() {
	date = new Date();
	year = date.getUTCFullYear();
	month = date.getUTCMonth();
	day = date.getUTCDate()-1;
	hour = date.getUTCHours();
	day--;
	if (hour<5) day--;
	if (day<1) {
		month--;
		if (month<0) {
			year--;
			month = 11;
		}
day = day+numDays(month+1,year);	}
	temp = new Array(day,month+1,year);
	return temp;
}

function recalcMonths(year,selectedMonth) {

	dateLimit = finalDate();

	monthStart = 1; monthStop = 12;

	if (year==2006) {
		monthStart = 6;
	}
	if (year==dateLimit[2]) {
		monthStop = dateLimit[1];
	}
	monthNode = document.getElementById('month');
	removeAllChildren(monthNode);
	for (i=monthStart;i<=monthStop;i++) {
		select = document.createElement('option');
		select.setAttribute('value',i);
		if (i==selectedMonth) select.setAttribute('selected','selected');
		text = document.createTextNode(monthsNames[i-1]);
		select.appendChild(text);
		monthNode.appendChild(select);
	}
}

function init() {

	date = new Date();

	dateLimit = finalDate();

	// generate years & select current year.	
	year = date.getFullYear();
	yearNode = document.getElementById('year');
	removeAllChildren(yearNode);
	for (i=2006;i<=dateLimit[2];i++) {
		select = document.createElement('option');
		select.setAttribute('value',i);
		if (i==dateLimit[2]) select.setAttribute('selected','selected');
		text = document.createTextNode(i);
		select.appendChild(text);
		yearNode.appendChild(select);
	}
	yearNode.removeAttribute('disabled');

	// generate months & select current month.
	recalcMonths(dateLimit[2],dateLimit[1]);
	document.getElementById('month').removeAttribute('disabled');

	generateStat();

}

function yearChanged() {
	recalcMonths(document.getElementById('year').value,document.getElementById('month').value);
	generateStat();
}

function monthChanged() {
	generateStat();
}

function openStat(link) {
			
	page = window.open(link, 'bfstat', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=680,height=400');

	return false;
}
