
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;
		
		if(prevcells.length > 0)
		{
			for(i=0; i<prevcells.length; i++)
			{
				prevdata = prevcells[i].split("|");
				if(document.getElementById('d'+prevdata[0]))
				{
					document.getElementById('d' + prevdata[0]).className = "current";
				} 
			}
		}
		
		/*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, showdate_end);
}

function showEvents(offset, endRange)
{
	if(!endRange)
		endRange = false;
	
	dt = new Date();
	http2.open("GET", '/event_server_listing.php?stamp='+dt+'&day='+offset+'&endRange='+endRange+'&cats='+categories.join("|"), true);
	http2.onreadystatechange = function() {
		if(http2.readyState == 4)
		{
			showdate = offset;
			showdate_end = endRange;
									
			if(prevcells.length > 0)
			{
				for(i=0; i<prevcells.length; i++)
				{
					prevdata = prevcells[i].split("|");
					
					if(document.getElementById('d' + prevdata[0]))
					{
						document.getElementById('d' + prevdata[0]).className = prevdata[1];
					}
				}
				prevcells = new Array();
			}
			
			if(!endRange)
				endRange = offset;
			
			for(i=Number(offset); i<=Number(endRange); i+=86400)
			{
					if(document.getElementById('d' + i))
					{
						prevcells[prevcells.length] = i + "|" + document.getElementById('d' + i).className;
						
						document.getElementById('d' + i).className = "current";
					}
			}
			
			/*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, showdate_end);
}