var xmlHttp;
var calDiv;
var calTable;
var calTableBody;
var offsetEl;
var dayid;

function createXMLHttpRequest()
{
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}
}

function initVars()
{
	calTableBody = document.getElementById("calDataBody");
	calTable = document.getElementById("calData");
	calDiv = document.getElementById("popup");
}

function getCalData(sked_id,element,daycnt)
{
	initVars();
	dayid = daycnt;
	createXMLHttpRequest();
	offsetEl = element;

	if (location.host != "mozart")
		var url = "http://www.dvoa.org/tools/dvoaskedserver.php?sked_id=" + sked_id;
	else
		var url = "http://mozart/dvoa/tools/dvoaskedserver.php?sked_id=" + sked_id;
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = callback;
	xmlHttp.send(null);
}

function callback()
{
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
//			alert(xmlHttp.responseText);
			setSked(xmlHttp.responseXML);
		}
	}
}

function setSked(newsData)
{
	clearData();
	setOffsets();
	var map      = newsData.getElementsByTagName("map")[0].firstChild.data;
	var ev_date  = newsData.getElementsByTagName("ev_date")[0].firstChild.data;
	var courses  = newsData.getElementsByTagName("courses")[0].firstChild.data;
	var director = newsData.getElementsByTagName("director")[0].firstChild.data;
	var cs       = newsData.getElementsByTagName("cs")[0].firstChild.data;
	var epunch   = newsData.getElementsByTagName("epunch")[0].firstChild.data;
	var details  = newsData.getElementsByTagName("details")[0].firstChild.data;
	
	var row0, row1, row2, row3, row4, row5;

	row0 = createHeader(map);
	row1 = createRow(ev_date);
	row2 = createRow(courses);
	row3 = createRow(director);
	row4 = createRow(cs);
	row5 = createRow(epunch);
	row6 = createRow(details);

	var msg = "(Click for more details)";
	row7 = createRow(msg);

	calTableBody.appendChild(row0);
	calTableBody.appendChild(row1);
	calTableBody.appendChild(row2);
	calTableBody.appendChild(row3);
	calTableBody.appendChild(row4);
	calTableBody.appendChild(row5);
	calTableBody.appendChild(row6);
	calTableBody.appendChild(row7);
}

function createHeader(data)
{
	var row,cell,txtNode;
	row = document.createElement("tr");
	cell = 	document.createElement("th");
	
	txtNode = document.createTextNode(data);
	cell.appendChild(txtNode);
	row.appendChild(cell);

	return row;
}

function createRow(data)
{
	var row,cell,txtNode;
	row = document.createElement("tr");
	cell = 	document.createElement("td");
	
	txtNode = document.createTextNode(data);
	cell.appendChild(txtNode);
	row.appendChild(cell);

	return row;
}

function setOffsets()
{
//	var end = offsetEl.offsetWidth + (dayid * 28) + 32;
//	var top = calculateOffsetTop(offsetEl) - 48;
	var end = 650 + offsetEl.offsetWidth + (dayid * 28) + 32;
	var top = calculateOffsetTop(offsetEl) - 100;
	calDiv.style.left = end + "px";
	calDiv.style.top = top + "px";
}

function calculateOffsetTop(field)
{
	return calculateOffset(field,"offsetTop");
}

function calculateOffset(field,attr)
{
	var offset = 0;
	while (field) {
		offset += field[attr];
		field = field.offsetParent;
	}
	return offset;
}

function clearData()
{
	var ind = calTableBody.childNodes.length;
	for (var i=ind - 1; i>=0;i--) {
		calTableBody.removeChild(calTableBody.childNodes[i]);
	}
	calDiv.style.border = "none";
}
