var allEvents;
var linkEvents = true;
function updateCalendar(m,y)
{
	showSpinner();
	allEvents = new Array();
	getEvents(m,y);
	/*
	if (m == null)
		m = new Date().getMonth();

	if (y == null)
		y = new Date().getFullYear();

	m++;
	drawCalendar(m-1,y);
	*/
}
function showNextEvent()
{
	var call = new WS.Call('/cgi-bin/events.cgi');
	var nsuri = 'http://yogaclass.ca/Events';
	var qn_op = new WS.QName('GetNextEvent', nsuri);
	var qn_op_resp = new WS.QName('GetNextEventRespons', nsuri);

	var myDiv = document.getElementById("nextEventDiv");
	myDiv.innerHTML = '';

	call.invoke_rpc(
		qn_op,
		new Array(),
		null,
		function(call,envel) {
			try {
				var mainNode = envel.get_body().get_all_children()[0].asElement();
			    var eventNode = mainNode.getElementsByTagName('EventDetails')[0];
				description = eventNode.getElementsByTagName('Description')[0].childNodes[0].nodeValue;
				title = eventNode.getElementsByTagName('Title')[0].childNodes[0].nodeValue;
				date = eventNode.getElementsByTagName('TheDate')[0].childNodes[0].nodeValue;
				timeStart = eventNode.getElementsByTagName('TimeStart')[0].childNodes[0].nodeValue;
				timeEnd = eventNode.getElementsByTagName('TimeEnd')[0].childNodes[0].nodeValue;
			}
			catch(err) { }
			myDiv.innerHTML = '<span class="itemHeader"><a href="/sched/classes.html">'+title+'</a></span><br/>';
			myDiv.innerHTML += '<span class="itemDate">'+date+'<br/>'+timeStart+' - '+timeEnd+'</span><br/>';
						
			//myDiv.innerHTML = title+'<br/>'+date+'<br/>';
			//myDiv.innerHTML = arguments[2].escapeHTML();
		}
	)
}
					
function getEvents(m,y)
{
	if (m == null)
		m = new Date().getMonth();

	if (y == null)
		y = new Date().getFullYear();

	m++;

	var call = new WS.Call('/cgi-bin/events.cgi');
	var nsuri = 'http://yogaclass.ca/Events';
	var qn_op = new WS.QName('GetEvents', nsuri);
	var qn_op_resp = new WS.QName('GetEventsResponse',nsuri);

	var myDiv = document.getElementById("soapDiv");
	myDiv.innerHTML = '';

	call.invoke_rpc(
		qn_op,
		new Array(
			{name:'year', value:y},
			{name:'month', value:m}
		), null,
		function(call,envel) {
			try
			{
			var events = 
				envel.get_body().get_all_children()[0].get_all_children();
			for (var x=0; x<events.length; x++)
			{
				values = events[x].get_all_children();
				var vals = new Array();
				for (var i=0; i<values.length; i++)
				{
					if (values[i] != null)
					{
						try
						{
							vals.push(values[i].get_value());
						}
						catch (err){ // something happened - push a null val:
							vals.push(null);
						}
					}
				}
				allEvents.push(vals);
			}
			//myDiv.innerHTML = arguments[2].escapeHTML();
			//myDiv.innerHTML += ret;
			}
			catch(err) { }
			drawCalendar(m-1,y);
		}
	);
}
function drawCalendar(m,y)
{
	var cal = new Calendar(m,y);
	cal.generateHTML(allEvents,'detailDiv',linkEvents);
	var myDiv = document.getElementById('calDiv');
	myDiv.innerHTML = cal.getHTML();
	//document.getElementById('htmlOut').innerHTML = cal.getHTML();
	hideSpinner();
}
function hideDetails(detailDivName)
{
	var myDiv = document.getElementById(detailDivName);
	myDiv.style.display = 'none';
}
function showDetails(eventId,detailDivName)
{
	showSpinner();
	var call = new WS.Call('/cgi-bin/events.cgi');
	var nsuri = 'http://yogaclass.ca/Events';
	var qn_op = new WS.QName('GetEvent', nsuri);
	var qn_op_resp = new WS.QName('GetEventResponse',nsuri);

	var myDiv = document.getElementById(detailDivName);
	myDiv.style.display = '';
	myDiv.innerHTML = '';

	call.invoke_rpc(
		qn_op,
		new Array(
			{name:'id', value:eventId}
		), null,
		function(call,envel) {
			try
			{
				//var description = 
				//	envel.get_body().get_all_children()[0].get_all_children()[0].
				//		get_all_children()[0].get_value();

				var description;
				var title;
				var startTime;
				var endTime;

				try
				{
					var mainNode = envel.get_body().get_all_children()[0].asElement();
					var eventNode = mainNode.getElementsByTagName('Event')[0];
					description = eventNode.getElementsByTagName('Description')[0].childNodes[0].nodeValue;
					title = eventNode.getElementsByTagName('Title')[0].childNodes[0].nodeValue;
				}
				catch (err) { }
				
				myDiv.innerHTML = '<h2>'+title+'</h2>'+description;
				//document.getElementById('soapDiv').innerHTML =arguments[2].escapeHTML();
				hideSpinner();
			}
			catch(err) {}
		}
	);
}
