var _today = new Date();
var _date = new Date(_today.getFullYear(),_today.getMonth(),1);
var skeds = new Array();
var skeds2 = new Array();
var hlights = new Array();
var imgload = new Image();
var x = '';
imgload.src = 'images/loading.gif';


function setMonth(year,month)
{
	_date = new Date(year,month,1);
}
function getMonthName(code)
{
	switch (code) {
	case 0: return 'January'; break;
	case 1: return 'February'; break;
	case 2: return 'March'; break;
	case 3: return 'April'; break;
	case 4: return 'May'; break;
	case 5: return 'June'; break;
	case 6: return 'July'; break;
	case 7: return 'August'; break;
	case 8: return 'September'; break;
	case 9: return 'October'; break;
	case 10: return 'November'; break;
	case 11: return 'December'; break;
	default: return 'unknown'; break;
	}
}
function PrevMonth() {
	var yr = _date.getFullYear();
	var mn = _date.getMonth();
	if (mn<=0) {
		yr -= 1;
		mn = 11;
	} else {
		mn -= 1;
	}
	setMonth(yr,mn);
	CurrentMonth();
}
function NextMonth()  {
	var yr = _date.getFullYear();
	var mn = _date.getMonth();
	if (mn>=11) {
		yr += 1;
		mn = 0;
	} else {
		mn += 1;
	}
	setMonth(yr,mn);
	CurrentMonth();
}
function CurrentMonth()
{
	// header
	document.getElementById('month_header').innerHTML = getMonthName(_date.getMonth())+' '+_date.getFullYear();
	document.getElementById('month_days').innerHTML = '<div align="center"><img src="'+imgload.src+'" align="center"></div>';
	document.getElementById('sked').innerHTML = '<div align="center"><img src="'+imgload.src+'" align="center"></div>';
	requestSkeds();
}
function Stats(year)
{
	// header
	document.getElementById('months').innerHTML = '<div align="center"><img src="'+imgload.src+'" align="center"></div>';
	requestStats(year);
}


function CurrentMonthDays(skeds) 
{
	// construct days
	var html_str = '';
	html_str += '<table cellspacing="1" cellpadding="5">';
	html_str += '<tr>';
	var weekday = 0;
	// first week
	for (weekday=0;weekday<_date.getDay();weekday++) {
		html_str += '<td></td>';
	}
	// start days
	for (day=1;day<=daysInMonth(_date.getMonth(),_date.getFullYear());day++) {
		html_str += '<td align="center" class="';
		if (skeds[day].length) html_str += 'hlight'; //" onclick="showSkeds('+day+');';
		else html_str += 'normal';
		html_str += '">'+day+'</td>';
		if (++weekday>=7) {
			html_str += '</tr><tr>';
			weekday = 0;
		}
	}
	html_str += '</tr>';
	html_str += '</table>';
	document.getElementById('month_days').innerHTML = html_str;
	showSkeds();
}

var cnt = 0;

function requestSkeds()
{
	skeds = new Array();
	skeds2 = new Array();
	for (i=1;i<32;i++) {
		skeds[i] = new Array();
	}
	if(x=='y'){
	x= '';}
	_ajax.open("GET", "ajax_calendar.php?month="+(_date.getMonth()+1)+"&year="+_date.getFullYear());
	_ajax.onreadystatechange = function() {
		if (_ajax.readyState == 4 && _ajax.status == 200) {
			//alert(_ajax.responseText);
			var aray = _ajax.responseText.split("\n");
			var parts = new Array();
			var cnt = 0;
			for (i=0;i<aray.length;i++) {
				if (aray[i]) {
					parts = aray[i].split("/-/");
					_day = parseInt(parts[0]);
					skeds[_day][skeds[_day].length] = new Array(parts[1],parts[2],parts[3]);
					skeds2[parts[0]] = new Array(parts[4]);
				}
			}
			
			CurrentMonthDays(skeds);
			
		}
	}
	_ajax.send(null);
}

function requestStats(year)
{
	_ajax.open("GET", "ajax_calendar.php?stats_year="+year);
	_ajax.onreadystatechange = function() {
		if (_ajax.readyState == 4 && _ajax.status == 200) {
			var aray = _ajax.responseText.split("\n");
			var parts = new Array();
			var data = new Array();
			for (i=0;i<aray.length;i++) {
				if (aray[i]) {
					parts = aray[i].split("/-/");
					data[parts[0]] = parts[1];
				}
			}
			showStats(data);
		}
	}
	_ajax.send(null);
}

function showSkeds(day)
{	
	var end_d ='';
	var sched = '';

	var html_str = '<table cellspacing="1" cellpadding="10" width="100%">';
	if (day==null) {
		var row = 1;
		for (i=1;i<32;i++) {
			if (skeds[i].length>0) {
				sched = i;
				if(skeds2[i] != ''){			
					sched = skeds2[i];
				}			
				for (j=0;j<skeds[i].length;j++) { 

				html_str += '<tr><td width="60" class="day'+row+'">'+i+'</td>';
				html_str += '	<td class="descp'+row+'">';
					html_str += '<div class="venue"><span style="font-family: Times News Roman;font-size: 12px;color: #FFFA9D;text-align: left;">'+sched.toString()+'</span><br/>'+skeds[i][j][1]+'</div>';
					html_str += '<div class="type">'+skeds[i][j][0]+' - '+skeds[i][j][2]+'</div>';
				html_str += '	</td></tr>';
				}
				if (row==1) {
					row = 2;
				} else {
					row = 1;
				}
			}
		}
		if (html_str=='<table cellspacing="1" cellpadding="10" width="100%">') {
			html_str += '<tr><td><i>no schedules for this month</i></td></tr>';
		}
	} else {
		html_str += '<tr><td>'+skeds[day][0]+'<br>'+skeds[day][1]+'</td></tr>';
	}
	html_str += '</table>'; 
	if(x == ''){
	document.getElementById('sked').innerHTML = html_str;
	}
	x = 'y';
	Stats(_date.getFullYear());
}

function showStats(data)
{
	var html_str = str = '';
	var total = 0;
	for (i=1;i<13;i++) {
		str += '<a href="javascript:setMonth('+_date.getFullYear()+','+(i-1)+');CurrentMonth();">'+getMonthName(i-1)+'</a> ';
		if (parseInt(data[i])) {
			str += '('+data[i]+')';
		}
		str += '<br>';
		if (i==6) {
			str += '</td><td width="50%">';
		}
		total = total + parseInt(data[i]);
	}
	html_str += '<table cellspacing="0" cellpadding="0" width="100%">';	
	html_str += '<tr><td colspan="3" class="header">Year '+_date.getFullYear()+': <b>'+total+'</b> Schedules</td></tr>';
	html_str += '<tr valign="top"><td width="50%">'+str+'</td></tr>';
	html_str += '</table>';
	
	document.getElementById('months').innerHTML = html_str;
}
