var _today = new Date();
var _date = new Date(_today.getFullYear(),_today.getMonth(),1);
var news = new Array();
var hlights = new Array();
var imgload = new Image();
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("entries").innerHTML = '<div align="center"><img src="'+imgload.src+'" align="center"></div>';
	requestNews();
}
function Details(news_id)
{
	// header
	document.getElementById("entries").innerHTML = '<div align="center"><img src="'+imgload.src+'" align="center"></div>';
	requestDetails(news_id);
}
function Stats(year)
{
	// header
	document.getElementById('months').innerHTML = '<div align="center"><img src="'+imgload.src+'" align="center"></div>';
	requestStats(year);
}


function CurrentMonthDays(news) 
{
	// 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 (news[day].length) html_str += 'hlight" onclick="showNews('+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;
	showNews();
}
function NewsDetails(data) 
{
	/*
	data[0] = date added
	data[1] = title
	data[2] = details
	data[3] = photo
	data[4] = photo width
	data[5] = photo align
	*/

	//console.log(data);
	var html_str = '';
	var details = data[2];
	details = details.replace("\n","<br>");
	if (data[3]) {
		var width = '';
		if (data[4]) {
			width = data[4];
		}
		var align = 'center';
		var style = '';
		switch (data[5]) {
		case 1: 
			align = 'left'; 
			style = 'padding: 10px 10px 10px 0;';
			break;
		case 2: 
			align = 'right'; 
			style = 'padding: 10px 0px 10px 10px;';
			break;
		}
		photo_str = '<img src="uploads/'+data[3]+'" width="'+width+'" align="'+align+'" style="'+style+'">';
		details = details.replace("<photo>",photo_str);
	}

	html_str += '<p class="news_title">'+data[1]+'</b></a><br><small>'+data[0]+'</small></p>';
	html_str += '<p>'+details+'</p>';
	html_str += '<p><a href="javascript:CurrentMonth();">Back to News</a></p>';
	document.getElementById('entries').innerHTML = html_str;
}

var cnt = 0;

function requestNews()
{
	news = new Array();
	for (i=1;i<32;i++) {
		news[i] = new Array();
	}
	query = "ajax_calendar_news.php?month="+(_date.getMonth()+1)+"&year="+_date.getFullYear();
	_ajax.open("GET", query );
	_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]);
					news[_day][news[_day].length] = new Array(parts[0],parts[1],parts[2],parts[3],parts[4],parts[5]);
				}
			}
			CurrentMonthDays(news);
		}
	}
	_ajax.send(null);
}

function requestDetails(news_id)
{
	_ajax.open("GET", "ajax_calendar_news.php?id="+news_id);
	_ajax.onreadystatechange = function() {
		if (_ajax.readyState == 4 && _ajax.status == 200) {
			//alert(_ajax.responseText);
			var data = _ajax.responseText.split("/-/");
			NewsDetails(data);
		}
	}
	_ajax.send(null);
}

function requestStats(year)
{
	_ajax.open("GET", "ajax_calendar_news.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 showNews(day)
{	
	var html_str = '<table cellspacing="0" cellpadding="0" width="100%">';
	if (day==null) {
		var row = 1;
		for (i=1;i<32;i++) {
			if (news[i].length>0) {

				html_str += '<tr><td>';
				
				for (j=0;j<news[i].length;j++) {
					data = news[i][j];
					html_str += '	<p><a class="news_title" href="javascript:Details('+data[1]+');"><b>'+data[2]+'</b></a><br><small>'+data[3]+'</small><small>&nbsp;[<a href="javascript:Details('+data[1]+')">read more</a>]</small></p>';
					html_str += '	<p>';
					if (data[4]) {
							html_str += '<img src="generate_thumb.php?file='+data[4]+'" align="left" class="news_image">';
					}
					html_str += data[5]; //+' <a href="javascript:Details('+data[1]+');">read</a></p>';
					html_str += "<br/><br/><hr/><br/>";
				}
				html_str += '<br><br></td></tr>';
				html_str += '<tr><td><img src="images/spacer.gif" width="1" height="50"></td></tr>';

				if (row==1) {
					row = 2;
				} else {
					row = 1;
				}
			}
		}
		if (html_str=='<table cellspacing="0" cellpadding="0" width="100%">') {
			html_str += '<tr><td><i>no news entries for this month</i></td></tr>';
		}
	} else {
		html_str += '<tr><td>'+news[day][0]+'<br>'+news[day][1]+'</td></tr>';
	}
	html_str += '</table>';
	document.getElementById("entries").innerHTML = html_str;
	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> News and Events</td></tr>';
	html_str += '<tr valign="top"><td width="50%">'+str+'</td></tr>';
	html_str += '</table>';
	
	document.getElementById('months').innerHTML = html_str;
}
