var lastsel = 0;
var changing = 0;
var current_month;

$(function() {
	$("#loading").hide();
	
	$("#loading").ajaxStart(function() {
		$(this).show();
	});
	
	$("#loading").ajaxStop(function() {
		$(this).hide();
	});
});

function eventSel() {
	var e = eventSel.arguments[0];
	var f = eventSel.arguments[1];
	var g = eventSel.arguments[2];
	
	targ = document.getElementById(e);
	
	if(targ.className == "wkday") {
		targ.className = "wkdaysel";
		if(lastsel != targ.id) {
			
			if(lastsel != 0) {
				//var meep = document.getElementById(lastsel).className;
				//if(meep == "wkdaysel" || meep == "wkday") {
					document.getElementById(lastsel).className = "wkday";
				//}
			}
			
			lastsel = targ.id;
			
			if(f != '') {
				$.ajax({
					type: "GET",
					url: "getEvent.php",
					data: "did="+f,
					dataType: "xml",
					complete: function(xmlBo, poo) {
						var xmlD = xmlBo.responseXML;
						var edheader = xmlD.getElementsByTagName("calendar").item(0).getAttribute("header");
						document.getElementById("ed-header").innerHTML = edheader;
						
						var tags = xmlD.getElementsByTagName("event");
						var output = "";
						for(i=0;i<tags.length;i++) {
							jshref = "href=\"javascript:showEvent('"+tags.item(i).getAttribute("id")+"')\"";
							output += "<div class=\"ed-item\">";
							output += "<a "+jshref+" class=\"ed-date\">"+tags.item(i).getAttribute("date")+"</a>";
							output += "<a "+jshref+" class=\"ed-stitle\">"+tags.item(i).childNodes[0].nodeValue+"</a>";
							output += "</div>";
						}
						document.getElementById("ed-body").innerHTML = output;
						
					}
				});
			}
			else {
				defaultDisplay(g);
			}
			
		}
		lastsel = targ.id;
	}
}

function defaultDisplay(g) {
	var headertxt;
	if(g == 0) {
		headertxt = "No date selected";
	}
	else {
		var days = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
		var daytags = new Array("th","st","nd","rd","th","th","th","th","th","th");
		var dateobj = new Date(g*1000);
		var wee = dateobj.getDay();
		var dname = days[wee];
		var dnum = dateobj.getDate();
		var woo = ""+dnum;
		var wee = woo.substr(woo.length - 1, 1);
		if(woo > 10 && woo < 14) { wee = 0; }
		var dtag = daytags[wee];
		
		headertxt = "Events for "+dname+" the "+dnum+dtag;
	}
	
	document.getElementById("ed-header").innerHTML = headertxt;
	document.getElementById("ed-body").innerHTML = "<div class=\"ed-item\" id=\"nodata\">Please select a day containing one or more events.</div>";
}

function changeDate(change) {
	if(!changing) {
		changing = 1;
		var param;
		switch (change) {
			case "months":
			case "years":
				param = $("#"+change).val();
				break;
			case "n":
			case "p":
				param = change;
				change = "months";
				break;
		}
		
		$.ajax({
			type: "GET",
			url: "getCalendar.php",
			data: change+"="+param,
			dataType: "xml",
			complete: function(xh,suc) {
				var rmonth = xh.getResponseHeader('X-EventMonth');
				$("#months").val(rmonth);
				var ryear = xh.getResponseHeader('X-EventYear');
				$("#years").val(ryear);
				
				xd = xh.responseXML;
				
				var xmonth = xd.getElementsByTagName("month_name");
				
				$("#month_name").html(xmonth.item(0).firstChild.nodeValue);
				
				var xweeks = xd.getElementsByTagName("week");
				
				var cnode; var xclass; var xday; var tstamp; var xdayid; var xindex = ""; var xonclick;
				var tohtml;
				
				for(j=0;j<xweeks.length;j++) {
					for(i=0;i<xweeks.item(j).childNodes.length;i++) {
						
						cnode = xweeks.item(j).childNodes[i];
						xclass = cnode.getAttribute("class");
						xday = cnode.tagName; // day container cell id (day name - week number on grid : Mon-1 = monday, in the first week)
						
						document.getElementById(xday).className = xclass; 
						
						//if(xclass == "x") { // Clear out cell
							$("#"+xday).removeAttr("onclick");
							$("#"+xday).html(" ");
						//}
						if(xclass == "wkday") {
							tstamp = cnode.getAttribute("timestamp");
							xdayid = cnode.getAttribute("id");
							if(!(xindex = cnode.getAttribute("index")) ) { xindex = ""; }
							
							xonclick = "eventSel('"+xday+"','"+xindex+"','"+tstamp+"')";
							
							$("#"+xday).attr({ onclick: xonclick });
							
							tohtml = "<div class=\"daynumber\" id=\""+xdayid+"\" onclick=\""+xonclick+"\">"+xdayid+"</div><br/>";
							
							if(xindex != "") {
								tohtml += "<div class=\"eventitem\" id=\""+xindex+"\" onclick=\""+xonclick+"\">"+cnode.firstChild.nodeValue+"</div>";
							}
							//else {
							//	tohtml += "<div class=\"eventitem\"></div>";
							//}
							
							$("#"+xday).html(tohtml);
						}
						
					}
				}
				
				defaultDisplay(0);
				changing = 0;
				lastsel = 0;
				
			}
		});
	}
}

function showEvent(ev) {
	var params = ev.split("-");
	$.ajax({
		type: "GET",
		url: "getEvent.php",
		data: "did="+params[0]+"&enum="+params[1],
		dataType: "xml",
		complete: function(xh, suc) {
			xd = xh.responseXML;
			
			var edata = xd.getElementsByTagName("event");
			
			for(i=0;i<=edata.item(0).childNodes.length;i++) {
				try {
					eventData = edata.item(0).childNodes[i].firstChild.nodeValue;
					eventData = eventData.replace(/\{\{/g,"<");
					eventData = eventData.replace(/}}/g,">");
					//eventData = eventData.replace("&quo;","\"");
					$("#ew_"+edata.item(0).childNodes[i].tagName).html(eventData);
				}
				catch(err) { }
			}
			
			$("#months,#years").hide();
			$("#pillar").show();
			$("#eventwindow").slideDown("slow");
		}
	});			
}

function hideEvent() {	$("#eventwindow").slideUp("slow", function() {
		$("#pillar").hide();
		$("#months,#years").show();
	});
	
}