// **************************************************
// LOAD INITIAL VALUES
var d = new Date();
//var curr_date = d.getDate();
var current_month = d.getMonth();
var current_year = d.getFullYear();
//alert("current_month = " + current_month );
//alert("current_year = " + current_year );
// **************************************************


//var calDescriptionDiv = "calDescription";


//var IE = document.all?true:false;
//if (!IE) document.captureEvents(Event.MOUSEMOVE)
//document.onmousemove = getMouseXY;
//var mouseX = 0;
//var mouseY = 0;
//function getMouseXY(e) {
//	if (IE) { // grab the x-y pos.s if browser is IE
//		tempX = event.clientX + document.body.scrollLeft;
//		tempY = event.clientY + document.body.scrollTop;
//	}
//	else {  // grab the x-y pos.s if browser is NS
//		tempX = e.pageX;
//		tempY = e.pageY;
//	}  
//	if (tempX < 0){tempX = 0;}
//	if (tempY < 0){tempY = 0;}  
//	mouseX = tempX;
//	mouseY = tempY;
//	return true;
//}


// **************************************************
// WHEN PAGE FIRST INITIALIZES
function initCalendar() {
	//alert("Month: " + inMonth );
	populateCalendar( current_month+1, current_year );
}
// **************************************************



// **************************************************
// PREVIOUS / NEXT MONTHS
function previousMonth(){
	current_month--;
	if( current_month < 0 ) {
		current_month = 11;
		current_year--;
	}
	populateCalendar( current_month+1, current_year );
}
function nextMonth(){
	current_month++;
	if( current_month > 11 ) {
		current_month = 0;
		current_year++;
	}
	populateCalendar( current_month+1, current_year );
}
// **************************************************


// **************************************************
function displayDescription( inCal_type, inSched_date, inSched_time, inCal_id, inTitle, inDescription, inSigned_up, inCan_signup, inSignup_url ){
	var tmpDescription = inDescription;
	
	//var elem = document.getElementById("messageTextDiv");
	//elem.style.display = "none";
	closeDiv("messageTextDiv");

	var descDiv = document.getElementById("calDescription");

	if( tmpDescription.length > 1 ) {
		tmpDescription = "<b>" + inTitle + "</b>";
		tmpDescription += "<br>Date: " + inSched_date + "";
		tmpDescription += "<br>Time: " + inSched_time + "";
		tmpDescription += "<br>" + inDescription + "";
		tmpDescription += "<br><br>";
		

		// ******************
		// ONLY GIVE LINK TO ADD TO CALENDAR IF IT'S A CHURCHEVENT
		if( inCal_type == "churchevent" ){
			tmpDescription += "<div align=\"center\">";
			if( readCookie("webuser_id") != null && readCookie("webuser_id") != "" ){
				// ONLY GIVE ADD TO CALENDAR LINK IF THEY DON'T ALREADY HAVE IT THERE
				if( inSigned_up == "0" ) tmpDescription += "<a href=\"javascript:churcheventSignupASP(" + inCal_id + ")\">Add to Calendar</a>";

				if( inCan_signup == "1" &&  inSignup_url != "" ){
					tmpDescription += "<br><a href=\"" + inSignup_url + "\" target=\"_blank\">Register</a>";
				}
			}
			else{
				tmpDescription += "<span id=\"errorMessage\"></span>";
			}
			tmpDescription += "</div>";
		}
		// ******************
	}
	descDiv.innerHTML = tmpDescription;
}
// **************************************************


// **************************************************
function populateCalendar( inMonth, inYear ) {

	var monthImg = document.getElementById("monthImg");
	monthImg.src = "images/calendar/month_" + inMonth + ".jpg";
	monthImg.title = inMonth;
	var yearImg = document.getElementById("yearImg");
	yearImg.src = "images/calendar/year_" + inYear + ".jpg";
	yearImg.title = inYear;

	// INSTANTIATE XMLHTTP OBJECT
	var objXmlHttp = createXMLHttp();
	
	if(objXmlHttp){
		//alert("objXmlHttp = " + objXmlHttp );
		//var postData = "spec_id=" + inSpec_id;
		objXmlHttp.open("GET","getCalendarXML.asp?list_month=" + inMonth + "&list_year=" + inYear, true);
	 	objXmlHttp.onreadystatechange = function(){
			if( objXmlHttp.readyState == 4 && objXmlHttp.status == 200 && objXmlHttp.responseText ){
				//alert( "TEST: " + objXmlHttp.responseText );
				var xmlDoc = objXmlHttp.responseXML;

				// PUT LIST OF SPECS IN A VARIABLE
		        var aryList = xmlDoc.getElementsByTagName('root')[0];
				//alert( "TEST: " + aryList.childNodes.length );

				var myStringBuilder = new StringBuilder();

				var tmpDay = "";
				var tmpDayCounter = 0;
								
				for(i=0; i<aryList.childNodes.length; i++){
 					var aryItem = aryList.childNodes[i];

					var cal_type = "";
					var sched_date = "";
					var sched_time = "";
					var cal_id = "";
					var title = "";
					var description = "";
					var signup_url = "";
					var signed_up = "";
					var week_day = "";
					var month_day = "";
					var can_signup = "0";
					if(aryItem.getElementsByTagName("cal_type")[0].firstChild)
						cal_type = aryItem.getElementsByTagName("cal_type")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("sched_date")[0].firstChild)
						sched_date = aryItem.getElementsByTagName("sched_date")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("sched_time")[0].firstChild)
						sched_time = aryItem.getElementsByTagName("sched_time")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("cal_id")[0].firstChild)
						cal_id = aryItem.getElementsByTagName("cal_id")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("title")[0].firstChild)
						title = aryItem.getElementsByTagName("title")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("description")[0].firstChild)
						description = aryItem.getElementsByTagName("description")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("signup_url")[0].firstChild)
						signup_url = aryItem.getElementsByTagName("signup_url")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("signed_up")[0].firstChild)
						signed_up = aryItem.getElementsByTagName("signed_up")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("week_day")[0].firstChild)
						week_day = aryItem.getElementsByTagName("week_day")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("month_day")[0].firstChild)
						month_day = aryItem.getElementsByTagName("month_day")[0].firstChild.nodeValue;
					if(aryItem.getElementsByTagName("can_signup")[0].firstChild)
						can_signup = aryItem.getElementsByTagName("can_signup")[0].firstChild.nodeValue;
					//alert("TEST: " + cal_type );


					if( tmpDay != week_day ) {
						if( tmpDay != "" ) myStringBuilder.Append("</td></tr>");

						tmpDay = week_day;
						tmpDayCounter = 0;

						// PUT A SPACER ROW BEFORE MONDAYS
						if( tmpDay == 2 && i > 0 ) myStringBuilder.Append("<tr><td colspan=\"3\">&nbsp;</td></tr>");

						myStringBuilder.Append("<tr class=\"item\">");
							myStringBuilder.Append("<td class=\"month_day\">" + month_day + " </td>");
							myStringBuilder.Append("<td class=\"week_day\"><img src=\"images/calendar/day_" + tmpDay + "_Dark.gif\" align=\"center\"></td>");
							myStringBuilder.Append("<td>");
					}
					
					// SEPERATE THE ITEMS
					if( tmpDayCounter > 0 ) myStringBuilder.Append("<br>");
					
					var iconImage = cal_type + "" + signed_up;

					var iconImageTitle = "";
					if( cal_type == "course" ){
						iconImageTitle = "Class";
					} 
					else if( cal_type == "volopp"){
						iconImageTitle = "Volunteer Opportunity";
					} 
					else if( cal_type == "churchevent" && signed_up == "0"){
						iconImageTitle = "Event (Not signed up for)";
					}
					else if( cal_type == "churchevent" && signed_up == "1"){
						iconImageTitle = "Event (Signed up for)";
					}

					myStringBuilder.Append("<img src=\"images/icon_" + iconImage + ".jpg\" border=\"0\" title=\"" + iconImageTitle + "\">");
					myStringBuilder.Append(" <a href=\"javascript:displayDescription('" + cal_type + "','" + sched_date + "','" + sched_time + "','" + cal_id + "','" + title.replace("'","\\'") + "','" + description.replace("'","\\'") + "','" + signed_up + "','" + can_signup + "','" + signup_url + "')\" ");
					//myStringBuilder.Append("(" + signed_up + ")(" + cal_type + ")<a href=\"javascript:displayDescription('" + cal_type + "','" + sched_date + "','" + sched_time + "','" + cal_id + "','" + title.replace("'","\\'") + "','" + description.replace("'","\\'") + "','" + signed_up + "','" + can_signup + "','" + signup_url + "')\" ");
						//myStringBuilder.Append("onMouseOver=\"window.status='Click to view description';return true\" onMouseOut=\"window.status='';return true\"");
						myStringBuilder.Append(">");
					myStringBuilder.Append( title );
					myStringBuilder.Append("</a>");
					tmpDayCounter++;

 				}
 				listStr = myStringBuilder.ToString();
 				if( listStr == "" ){
 					listStr = "<tr><td>No records to list</td></tr>";
 				}
				else{
					listStr += "</td></tr>";
				}
 			}
 			else{
 				listStr = "<tr><td>Getting data...</td></tr>";
 			}
 
			// DISPLAY LIST OF CALENDAR ITEMS
			listStr = "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"1\">" + listStr + "</table>";
			var elem = document.getElementById("calendarStr");
			elem.innerHTML = listStr;

			// CLEAR OUT DESCRIPTION DIV
			displayDescription( "","","","","","" );
		};
		//objXmlHttp.send(postData)
		objXmlHttp.send(null)
	}

//	// **************************************
//	// SETTIMEOUT SO THIS WILL BE CALLED EVERY 5 MINS 30 SECS, OR 330000 MILLISECONDS
//	setTimeout('filterSpecOrderListing()', 330000);
//	// **************************************
}
// **************************************************