var http_request = false;
var xmlDoc = false;
var pageid = 1;
var x = new Array();
var y = new Array();


function makeRequest(pagenum) 
{
	pageid = pagenum;
	if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			http_request.overrideMimeType('text/xml');
		}
	} 
	else if (window.ActiveXObject) 
	{ // IE
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
            	http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {}
		}
	}
	if (!http_request)
	{
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = loadXML;
	http_request.open('GET', 'presentations.xml', true);
	http_request.send(null);
}

function loadXML() 
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			xmlDoc = http_request.responseXML;
			switch(pageid)
			{
			case 1:
				homeEvents();
				break
			case 2:
				fullEvents();
				break
			case 3:
				pastEvents();
				break
			case 4:
				dispPres();
			}
		} 
		else 
		{
			alert('There was a problem with the request.');
		}
	}
}

function findNewConf()
{
	var w = xmlDoc.getElementsByTagName('sheet');
	var z = w[0].getElementsByTagName('row');
	for (j = 0;j < z.length;j++)
	{
		x[j] = z[j].getElementsByTagName('cell');
	}
	var d = new Date();
	var today = d.getFullYear()*10000 + d.getMonth()*100 + 100 + d.getDate();
	for (i = 1;x[i][3].firstChild.nodeValue>=today;i++) {}
	i--;
	return i;
}

function loadPres()
{
	var w = xmlDoc.getElementsByTagName('sheet');
	var z = w[1].getElementsByTagName('row');
	for (j = 0;j < z.length;j++)
	{
		y[j] = z[j].getElementsByTagName('cell');
	}
}

function homeEvents()
{
	var i = findNewConf();
	var newEl = document.createElement('DIV');
	for (j = 0;(j < 5)&&(i >= 1);j++)
	{
		var name = document.createTextNode(x[i][0].firstChild.nodeValue);
		var place = document.createTextNode(x[i][4].firstChild.nodeValue);
		var sdate = x[i][2].firstChild.nodeValue;
		var edate = x[i][3].firstChild.nodeValue;
		var dates = document.createTextNode(displayDate(sdate,edate));
		var para = document.createElement('P');
		var br1 = document.createElement('BR');
		var br2 = document.createElement('BR');
		var str = document.createElement('STRONG');
		var num = j + 1;
		var numtext = document.createTextNode(num + '. ');
		var url = 'events.html?ID=' + num;
		var mlink = document.createElement('A');
		mlink.setAttribute('href', url);
		mlink.appendChild(name);
		str.appendChild(mlink);
		para.appendChild(numtext);
		para.appendChild(str);
		if (x[i][1].firstChild.nodeValue.search('{') != -1)
		{
				var br = document.createElement('BR');
				var text = makeTLinks(x[i][1].firstChild.nodeValue);
				para.appendChild(br);
				para.appendChild(text);
		}
		para.appendChild(br1);
		para.appendChild(dates);
		para.appendChild(br2);
		para.appendChild(place);
		newEl.appendChild(para);
		i--;
	}
	document.getElementById('writeroot').appendChild(newEl);
}

function fullEvents()
{
	var i = findNewConf();
	loadPres();
	var newEl = document.createElement('DIV');
	for (j = 0;i >= 1;j++)
	{
		var name = document.createTextNode(x[i][0].firstChild.nodeValue);
		var place = document.createTextNode(x[i][4].firstChild.nodeValue);
		var sdate = x[i][2].firstChild.nodeValue;
		var edate = x[i][3].firstChild.nodeValue;
		var dates = document.createTextNode(displayDate(sdate,edate));
		var para = document.createElement('P');
		var br1 = document.createElement('BR');
		var br2 = document.createElement('BR');
		var br3 = document.createElement('BR');
		var br4 = document.createElement('BR');
		var str = document.createElement('STRONG');
		var text = false;
		var space = false;
		var run = false;
		var anch = document.createElement('A');
		anch.setAttribute('name', j + 1);
		if (x[i][1].childNodes.length > 0)
		{
			if (x[i][1].firstChild.nodeValue.search('{') == -1)
			{
				var clink = document.createElement('A');
				clink.setAttribute('href', x[i][1].firstChild.nodeValue);
				clink.setAttribute('target', '_blank');
				clink.appendChild(name);
				str.appendChild(clink);
			}
			else
			{
				text = makeTLinks(x[i][1].firstChild.nodeValue);
				str.appendChild(name);
				run = true;
			}
		}
		else {str.appendChild(name);}
		para.appendChild(anch);
		para.appendChild(br1);
		para.appendChild(str);
		if (run == true)
		{
			para.appendChild(br4);
			para.appendChild(text);
		}
		para.appendChild(br2);
		para.appendChild(dates);
		para.appendChild(br3);
		para.appendChild(place);
		newEl.appendChild(para);
		for (k = 5;(k < x[0].length) && (x[i][k].childNodes.length > 0);k++)
		{
			var presID = x[i][k].firstChild.nodeValue;
			var paraA = document.createElement('P');
			if (presID == 'TBD')
			{
				var tbd = document.createTextNode('Presentation TBD');
				paraA.appendChild(tbd);
			}
			else
			{
				var pres = document.createTextNode(y[presID][1].firstChild.nodeValue);
				var em = document.createElement('EM');
				if (y[presID][2].childNodes.length == 0)
				{
					em.appendChild(pres);
				}
				else
				{
					var anch = document.createElement('A');
					var url = 'presentation.html?ID=' + presID;
					anch.setAttribute('href', url);
					anch.appendChild(pres);
					em.appendChild(anch);
				}
				paraA.appendChild(em);
				k++;
				if (x[i][k].childNodes.length == 0)
				{
					newEl.appendChild(paraA);
					k = k + 2;
					break
				}
				var brA = document.createElement('BR');
				var person = document.createTextNode(x[i][k].firstChild.nodeValue);
				paraA.appendChild(brA);
				paraA.appendChild(person);
				k++;
				if (x[i][k].childNodes.length == 0)
				{
					newEl.appendChild(paraA);
					k++;
					break
				}
				var brB = document.createElement('BR');
				var time = document.createTextNode(x[i][k].firstChild.nodeValue);
				paraA.appendChild(brB);
				paraA.appendChild(time);
				k++;
				if (x[i][k].childNodes.length == 0)
				{
					newEl.appendChild(paraA);
					break
				}
				var brC = document.createElement('BR');
				var loc = document.createTextNode(x[i][k].firstChild.nodeValue);
				paraA.appendChild(brC);
				paraA.appendChild(loc);
			}
			newEl.appendChild(paraA);
		}
		i--;
	}
	document.getElementById('writeroot').appendChild(newEl);
	if (document.location.href.search('=') != -1)
	{
		var conf = document.location.href.split('=')[1];
		location.href = '#' + conf;
	}
}

function pastEvents()
{
	var i = findNewConf();
	i++;
	loadPres();
	var newEl = document.createElement('DIV');
	while (i < x.length)
	{
		var name = document.createTextNode(x[i][0].firstChild.nodeValue);
		var place = document.createTextNode(x[i][4].firstChild.nodeValue);
		var sdate = x[i][2].firstChild.nodeValue;
		var edate = x[i][3].firstChild.nodeValue;
		var dates = document.createTextNode(displayDate(sdate,edate));
		var para = document.createElement('P');
		var br1 = document.createElement('BR');
		var br2 = document.createElement('BR');
		var br3 = document.createElement('BR');
		var str = document.createElement('STRONG');
		str.appendChild(name);
		para.appendChild(br1);
		para.appendChild(str);
		para.appendChild(br2);
		para.appendChild(dates);
		para.appendChild(br3);
		para.appendChild(place);
		newEl.appendChild(para);
		for (k = 5;(k < x[0].length) && (x[i][k].childNodes.length > 0);k++)
		{
			var presID = x[i][k].firstChild.nodeValue;
			var paraA = document.createElement('P');
			if (presID == 'TBD')
			{
				var tbd = document.createTextNode('Presentation TBD');
				paraA.appendChild(tbd);
			}
			else
			{
				var pres = document.createTextNode(y[presID][1].firstChild.nodeValue);
				var em = document.createElement('EM');
				if (y[presID][2].childNodes.length == 0)
				{
					em.appendChild(pres);
				}
				else
				{
					var anch = document.createElement('A');
					var url = 'presentation.html?ID=' + presID;
					anch.setAttribute('href', url);
					anch.appendChild(pres);
					em.appendChild(anch);
				}
				paraA.appendChild(em);
				k++;
				if (x[i][k].childNodes.length == 0)
				{
					newEl.appendChild(paraA);
					k = k + 2;
					break
				}
				var brA = document.createElement('BR');
				var person = document.createTextNode(x[i][k].firstChild.nodeValue);
				paraA.appendChild(brA);
				paraA.appendChild(person);
				newEl.appendChild(paraA);
				k = k + 2;
			}
			newEl.appendChild(paraA);
		}
		i++;
	}
	document.getElementById('writeroot').appendChild(newEl);
}

function displayDate(s,e)
{
	var d = new Date();
	var cyear = d.getFullYear();
	var syear = Math.floor(s/10000);
	var sday = s - Math.floor(s/100)*100;
	var smonth = (s - syear*10000 - sday)/100;
	var eyear = Math.floor(e/10000);
	var eday = e - Math.floor(e/100)*100;
	var emonth = (e - eyear*10000 - eday)/100;
	var display = '';
	if (s == e)
	{
		display = monthText(smonth) + ' ' + sday;
	}
	else if (syear != eyear)
	{
		display = monthText(smonth) + ' ' + sday + ', ' + syear + ' - ' + monthText(emonth) + ' ' + eday;
		if (eyear == cyear) display = display + ', ' + eyear;
	}
	else if (smonth != emonth)
	{
		display = monthText(smonth) + ' ' + sday + ' - ' + monthText(emonth) + ' ' + eday;
	}
	else
	{
		display = monthText(smonth) + ' ' + sday + ' - ' + eday;
	}
	if (eyear != cyear)
	{
		display = display + ', ' + eyear;
	}
	return display;
}

function monthText(m)
{
	var month = '';
	switch(m)
	{
	case 1:
		month = 'January';
		break
	case 2:
		month = 'February';
		break
	case 3:
		month = 'March';
		break
	case 4:
		month = 'April';
		break
	case 5:
		month = 'May';
		break
	case 6:
		month = 'June';
		break
	case 7:
		month = 'July';
		break
	case 8:
		month = 'August';
		break
	case 9:
		month = 'September';
		break
	case 10:
		month = 'October';
		break
	case 11:
		month = 'November';
		break
	case 12:
		month = 'December';
	}
	return month;
}

function dispPres()
{
	loadPres();
	var pID = document.location.href.split('=')[1];
	var newEl = document.createElement('DIV');
	var name = document.createTextNode(y[pID][1].firstChild.nodeValue);
	var dpara = makeLinks(y[pID][2].firstChild.nodeValue);
	var tpara = document.createElement('P');
	var em = document.createElement('EM');
	tpara.setAttribute('class','title');
	em.appendChild(name);
	tpara.appendChild(em);
	newEl.appendChild(tpara);
	newEl.appendChild(dpara);
	if (y[pID][3].childNodes.length > 0)
	{
		var abtext = document.createTextNode('Abstract');
		var str = document.createElement('STRONG');
		var atpara = document.createElement('P');
		var br = document.createElement('BR');
		str.appendChild(abtext);
		atpara.appendChild(br);
		atpara.appendChild(str);
		newEl.appendChild(atpara);
		var a1para = makeLinks(y[pID][3].firstChild.nodeValue);
		newEl.appendChild(a1para);
		if (y[pID][4].childNodes.length > 0)
		{
			var a2para = makeLinks(y[pID][4].firstChild.nodeValue);
			newEl.appendChild(a2para);
		}
	}
	if (y[pID][5].childNodes.length > 0)
	{
		var hpara1 = document.createElement('P');
		var str = document.createElement('STRONG');
		var br = document.createElement('BR');
		hpara1.appendChild(br);
		if (y[pID][5].firstChild.nodeValue.search('flash') != -1)
		{
			var br1 = document.createElement('BR');
			var br2 = document.createElement('BR');
			var div = document.createElement('DIV');
			var span = document.createElement('SPAN');
			var a = document.createElement('A');
			var htitle = document.createTextNode('Powerpoint Presentation');
			var stext = document.createTextNode('Read this doc on Scribd:');
			var linktext = document.createTextNode(y[pID][2].firstChild.nodeValue);
			a.setAttribute('href',y[pID][6].firstChild.nodeValue);
			span.setAttribute('style','display:none');
			div.setAttribute('id',y[pID][5].firstChild.nodeValue);
			div.setAttribute('style','width:100%;height:100%');
			a.appendChild(linktext);
			str.appendChild(htitle);
			span.appendChild(stext);
			span.appendChild(a);
			div.appendChild(span);
			hpara1.appendChild(str);
			hpara1.appendChild(br1);
			hpara1.appendChild(br2);
			hpara1.appendChild(div);
		}
		else
		{
			var htitle = document.createTextNode('Powerpoint Presentation');
			str.appendChild(htitle);
			hpara1.appendChild(str);
			var temp = y[pID][5].firstChild.nodeValue.split(',');
			var num = temp.length;
			for (i = 0;i < num;i++)
			{
				var br1 = document.createElement('BR');
				var br2 = document.createElement('BR');
				var id = temp[i];
				var div = document.createElement('DIV');
				var span = document.createElement('SPAN');
				var a = document.createElement('A');
				var stext = document.createTextNode('Read this doc on Scribd:');
				var linktext = document.createTextNode(y[id][2].firstChild.nodeValue);
				a.setAttribute('href',y[id][6].firstChild.nodeValue);
				span.setAttribute('style','display:none');
				div.setAttribute('id',y[id][5].firstChild.nodeValue);
				div.setAttribute('style','width:100%;height:100%');
				a.appendChild(linktext);
				span.appendChild(stext);
				span.appendChild(a);
				div.appendChild(span);
				hpara1.appendChild(br1);
				hpara1.appendChild(br2);
				hpara1.appendChild(div);
			}
		}
		newEl.appendChild(hpara1);
	}
	if (y[pID][9].childNodes.length > 0)
	{
		var hpara1 = document.createElement('P');
		var str = document.createElement('STRONG');
		var br = document.createElement('BR');
		var htitle = document.createTextNode('Presentation Handouts');
		var hpara2 = makeLinks(y[pID][9].firstChild.nodeValue);
		str.appendChild(htitle);
		hpara1.appendChild(br);
		hpara1.appendChild(str);
		newEl.appendChild(hpara1);
		newEl.appendChild(hpara2);
	}
	else if (y[pID][10].childNodes.length > 0)
	{
		var hpara = document.createElement('P');
		var str = document.createElement('STRONG');
		var br = document.createElement('BR');
		var htitle = document.createTextNode('Presentation Handouts');
		str.appendChild(htitle);
		hpara.appendChild(br);
		hpara.appendChild(str);
		newEl.appendChild(hpara);
	}
	var ul = document.createElement('UL');
	ul.setAttribute('style','line-height:16pt');
	var add = false;
	var i = 10;
	while (y[0][i].firstChild.nodeValue.split(' ')[0] == 'Handout')
	{
		if (y[pID][i].childNodes.length > 0)
		{
			add = true;
			var li = document.createElement('LI');
			var a = document.createElement('A');
			var linktext = document.createTextNode(y[pID][i].firstChild.nodeValue);
			i++;
			a.setAttribute('href','downloads/' + y[pID][i].firstChild.nodeValue);
			a.appendChild(linktext);
			li.appendChild(a);
			ul.appendChild(li);
			i++;
		}
		else {i = i + 2};
	}
	if (add) {newEl.appendChild(ul)};
	while (i < y[pID].length)
	{
		if (y[pID][i].childNodes.length > 0)
		{
			var ppara = makeLinks(y[pID][i].firstChild.nodeValue);
			newEl.appendChild(ppara);
		}
		i++;
	}
	document.getElementById('writeroot').appendChild(newEl);
	if (y[pID][5].firstChild.nodeValue.search('flash') != -1)
	{
		var scribd_doc = new scribd.Document(y[pID][7].firstChild.nodeValue,y[pID][8].firstChild.nodeValue); 			
		scribd_doc.addParam('height', 440);				
		scribd_doc.addParam('width', 600);				
		scribd_doc.addParam('page', 1);					
		scribd_doc.addParam('mode', 'slideshow');		
		scribd_doc.write(y[pID][5].firstChild.nodeValue);
	}
	else
	{
		var temp = y[pID][5].firstChild.nodeValue.split(',');
		for (i = 0;i < temp.length;i++)
		{
			var scribd_doc = new scribd.Document(y[temp[i]][7].firstChild.nodeValue,y[temp[i]][8].firstChild.nodeValue); 			
			scribd_doc.addParam('height', 440);				
			scribd_doc.addParam('width', 600);				
			scribd_doc.addParam('page', 1);					
			scribd_doc.addParam('mode', 'slideshow');		
			scribd_doc.write(y[temp[i]][5].firstChild.nodeValue);
		}
	}
}

function makeLinks(str)
{
	var para = document.createElement('P');
	if (str.search('{') == -1)
	{
		var text = document.createTextNode(str);
		para.appendChild(text);
		return para;
	}
	var parsed = str.split('{');
	var starttext = document.createTextNode(parsed[0]);
	para.appendChild(starttext);
	for (j = 1;j < parsed.length;j++)
	{
		var temp = parsed[j].split('}');
		var tlink = temp[0].split('[');
		var text = document.createTextNode(temp[1]);
		var linktext = document.createTextNode(tlink[0]);
		var anch = document.createElement('A');
		if (tlink[1].search(':') != -1)
		{
			anch.setAttribute('href', tlink[1].split(']')[0]);
			anch.setAttribute('target', '_blank');
		}
		else if (tlink[1].search('.htm') != -1)
		{
			anch.setAttribute('href', tlink[1].split(']')[0]);
		}
		else 
		{
			anch.setAttribute('href', 'downloads/' + tlink[1].split(']')[0]);
			anch.setAttribute('target', '_blank');
		}
		anch.appendChild(linktext);
		para.appendChild(anch);
		para.appendChild(text);
	}
	return para;
}

function makeTLinks(str)
{
	var parsed = str.split('{');
	var temp = parsed[1].split(']');
	var tlink = temp[0].split('[');
	var linktext = document.createTextNode(tlink[0]);
	var anch = document.createElement('A');
	if (tlink[1].search(':') != -1)
	{
		anch.setAttribute('href', tlink[1]);
		anch.setAttribute('target', '_blank');
	}
	else if (tlink[1].search('.htm') != -1)
	{
		anch.setAttribute('href', tlink[1]);
	}
	else 
	{
		anch.setAttribute('href', 'downloads/' + tlink[1]);
		anch.setAttribute('target', '_blank');
	}
	anch.appendChild(linktext);
	return anch;
}
