
var http = getHTTPObject();
var http2 = getHTTPObject2();

var ajax_done = true;
var fade_done = true;
var tblhtml;
var loadlist = false;

function showMonth(offset)
{
	if(ajax_done)
	{
		ajax_done = false;
		fade_done = false;
		
		document.getElementById('monthcontainer').className = "loading";
		
		Effect.Fade('monthfader',{afterFinish:finishFade});
	
		dt = new Date();
		http.open("GET", '/event_server_month.php?stamp='+dt+'&calstart='+offset, true);
		http.onreadystatechange = function() {
			if(http.readyState == 4)
			{
				tblhtml = http.responseText;
				ajax_done = true;
				fadeInMonth();
			}
		}
		http.send(null);
	}
}

function finishFade()
{
	fade_done = true;
	fadeInMonth();
}

function fadeInMonth()
{
	if(ajax_done && fade_done)
	{
		document.getElementById('monthfader').innerHTML = tblhtml;
		
		prevcell = document.getElementById('d' + previd);
		if(prevcell)
		{
			prevcell.className = "current";
		}
		
		if(loadlist)
		{
			showEvents(loadlist);
			loadlist = false;
		}
		
		document.getElementById('monthcontainer').className = "";
		Effect.Appear('monthfader');
	}
}

function toggleCategory(fieldid)
{
	objfield = document.getElementById(fieldid);
	if(objfield.checked)
		objfield.checked = false;
	else
		objfield.checked = true;
		
	showHideCategory(fieldid);
}

function showHideCategory(fieldid)
{
	objfield = document.getElementById(fieldid);
	len = categories.length;
	found = false;
	for(i=0; i<len; i++)
	{
		if(categories[i] == objfield.value)
		{
			found = true;
			
			if(!objfield.checked)
			{
				categories.splice(i, 1);
			}
		}
	}
	
	if(objfield.checked && found == false)
	{
		categories[categories.length] = objfield.value;
	}
	
	showEvents(showdate, previd);
}

function showEvents(offset)
{
	dt = new Date();
	http2.open("GET", '/event_server_listing.php?stamp='+dt+'&day='+offset+'&cats='+categories.join("|"), true);
	http2.onreadystatechange = function() {
		if(http2.readyState == 4)
		{
			showdate = offset;
			tblcell = document.getElementById('d' + offset);
			prevcell = document.getElementById('d'+ previd);
			
			if(prevcell)
				prevcell.className = prevclass;
				
			if(tblcell)
			{
				previd = offset;
				prevclass = tblcell.className;
				
				tblcell.className = "current";
			}
			
			result = http2.responseText;
			document.getElementById('listingcontainer').innerHTML = result;
		}
	}
	http2.send(null);
}

function showToday(offset)
{
	showMonth(offset);
	loadlist = offset;
}

function checkAll()
{
	categories = new Array();
		
	txtid = document.getElementById('check_all');
	if(txtid.innerHTML == "Uncheck All")
	{
		txtid.innerHTML = "Check All";
		state = false;
	}
	else
	{
		txtid.innerHTML = "Uncheck All";
		state = true;
	}
		
	for(i=0; i<allcategories.length; i++)
	{
		document.getElementById('cat' + allcategories[i]).checked = state;
		
		if(state)
			categories[i] = allcategories[i];
	}
	
	showEvents(showdate, previd);
}