// JavaScript Document

/* Global Vars */
var req = null;
var reg_months = {"month": [
        {"name": "January", "days": "31"},
        {"name": "February", "days": "28"},
        {"name": "March", "days": "31"},
        {"name": "April", "days": "30"},
        {"name": "May", "days": "31"},
        {"name": "June", "days": "30"},
        {"name": "July", "days": "31"},
        {"name": "August", "days": "31"},
        {"name": "September", "days": "31"},
        {"name": "October", "days": "31"},
        {"name": "November", "days": "31"},
        {"name": "December", "days": "31"},
    ]
};

var leap_months = {"month": [
        {"name": "January", "days": "31"},
        {"name": "February", "days": "29"},
        {"name": "March", "days": "31"},
        {"name": "April", "days": "30"},
        {"name": "May", "days": "31"},
        {"name": "June", "days": "30"},
        {"name": "July", "days": "31"},
        {"name": "August", "days": "31"},
        {"name": "September", "days": "31"},
        {"name": "October", "days": "31"},
        {"name": "November", "days": "31"},
        {"name": "December", "days": "31"},
    ]
};

function printCurrentDate()
{
	var now   = new Date();
	var month = now.getMonth();
	var day   = now.getDate();
	var year  = now.getFullYear();

	printCalendar(year, month, day);
}

function printCalendar(year, month, day)
{
	// Construct an array of days.
	var firstday = new Date(year, month, 1);
	var calel = document.getElementById('calendar');
	calel.innerHTML = '';
	var numdays = 0;
	if ((firstday.year % 4 == 0 && firstday.year % 100 != 0) || firstday.year % 400 == 0)
	{
		// Leap Year!
		numdays = parseInt(leap_months.month[month].days);
	}
	else
	{
		// Not Leap Year!	
		numdays = parseInt(reg_months.month[month].days);
	}
	var dow = firstday.getDay();
	
	if( month == 11 )
	{
		nmonth = 0;
		nyear = parseInt(year) + 1;
	}
	else
	{
		nmonth = parseInt(month) + 1;
		nyear = year;
	}
	if( month == 0 )
	{
		pmonth = 11;
		pyear = parseInt(year) - 1;
	}
	else
	{
		pmonth = parseInt(month) - 1;
		pyear = parseInt(year);
	}

	calel.innerHTML = '<div id="date_bar">' + 
		'<input type="button" value="&laquo;" style="float: left;" onclick="printCalendar(\''+ pyear+'\', \''+pmonth+'\')" />' +
		'<input type="button" value="&raquo;" style="float: right;" onclick="printCalendar(\''+ nyear+'\', \''+nmonth+'\')" /> ' +
		reg_months.month[month].name + ' ' + year + '\n' +
		'<br clear="all" /></div>\n';		
	for(i=0;i<dow;i++)
	{
		calel.appendChild( newCalendarDay('', '', '', 'dayblock prev', false));
	}
	for(i=0;i<numdays;i++)
	{
		
		calel.appendChild(newCalendarDay((i + 1), month, year, 'dayblock', false));
	}
	
	// Find the dates with a currently associated entry...
	var url = HOME_DIR + "/admin_cal/worker.php";

	loadXMLDoc(url, 'op=retrieve&month=' + (parseInt(month)+1) + '&year=' + year);
	
}

// create a div to hold the calendar date. 
function newCalendarDay(day, month, year, cname, islink)
{
	if( !islink )
	{
		var newDate = document.createElement('div');
	}
	else
	{
		var newDate = document.createElement('a');
	}
	newDate.id = 'cal_' + day;
	newDate.className = cname;
	newDate.innerHTML = "<a href='http://www.mychurchevents.com/calendar/calendar.aspx?ci=G1I3H2M7F0G1O9L6I3' target='_blank' style='color:#000;'>"+day+"</a>";
	
	var cur_date = new Date();
	
	if( parseInt(day) == parseInt(cur_date.getDate()) )
	{
		newDate.style.fontWeight = 'bold';
	}
	
	if( parseInt(day) > 0 )
		newDate.onclick = function(){ selectedDate( day, month, year ); }
	return newDate;
}

/* Handle AJAX stuff */
function loadXMLDoc(url, content) 
{
    // branch for native XMLHttpRequest object
   try {
		req = new XMLHttpRequest();
		req.overrideMimeType('text/html');
    // branch for IE/Windows ActiveX version
    } catch(e) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.onreadystatechange = processReqChange;
    req.open("POST", url, true);
	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	req.setRequestHeader("Content-length", content.length);
    req.send(content);
}

