// JavaScript Document

var results_title;
var filenameAsIs;


function getRequestObject() {
    try { return new XMLHttpRequest() } catch(e) { }
    try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) { }
    try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) { }
    return false;
}

function loadXML() {
    var xmlhttp = getRequestObject();
    if (!xmlhttp) return false;

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState != 4) return;
        getMessage(xmlhttp.responseXML);
    };
    xmlhttp.open('GET', 'xml/homepage.xml', true);
    xmlhttp.send(null);
}

function importXML(contentType, fileName, title)
{
	var xmlhttp = getRequestObject();
   	if (!xmlhttp) return false;
	
	xmlhttp.onreadystatechange = function() {
    	if (xmlhttp.readyState != 4) return;
			if (contentType == 'contacts'){
				createContactsTable(xmlhttp.responseXML);
			}
			else if (contentType == 'newsletters'){
				createNewslettersTable(xmlhttp.responseXML);
			}
			else if (contentType == 'newsrss'){
				createNewsRSSList(xmlhttp.responseXML);
			}
			else if (contentType == 'allresults'){
				createAllResultsTable(xmlhttp.responseXML);
			}
			else if (contentType == 'results'){
				results_title = title;
				filenameAsIs = fileName;
				createResultsTable(xmlhttp.responseXML);
			}
			else if (contentType == 'calendar'){
				createCalendar(xmlhttp.responseXML);
			}
			else if (contentType == 'links'){
				createLinks(xmlhttp.responseXML);
			}
    	};
	if (contentType == 'results'){
		xmlfilename = "/Results/" + fileName + ".xml";
	}
	else if (contentType == 'allresults'){
		xmlfilename = "/" + fileName + ".xml";
	}
	else {
		xmlfilename = "/xml/" + fileName + ".xml";
	}
	xmlhttp.open('GET', xmlfilename, true);
    xmlhttp.send(null);
}

function clearContent(divname){
	divtoclear = document.getElementById(divname);
	while (divtoclear.firstChild){
		divtoclear.removeChild(divtoclear.firstChild);
	}
}

function createLinks(xmlDoc)
{
	var x = xmlDoc.getElementsByTagName('item');
	var newEl = document.createElement('TABLE');
	newEl.setAttribute('cellPadding',10);
	newEl.setAttribute('style', 'table1');
	var tmp = document.createElement('TBODY');
	newEl.appendChild(tmp);
	var row = document.createElement('TR');
	
	for (i=0;i<x.length;i++)
	{
		var row = document.createElement('TR');
		for (j=0;j<x[i].childNodes.length;j++)
		{
			if (x[i].childNodes[j].nodeType != 1) continue;
			var container = document.createElement('TD');
			//assign cell value to variable
			cellValue = x[i].childNodes[j].firstChild.nodeValue;
			//replace 'none' with blank space
			if (cellValue == 'none'){
				cellValue = cellValue.replace(/none/,"");
			}
			if (x[i].childNodes[j].nodeName == "site"){
				var sitename = document.createTextNode(cellValue);
				var font = document.createElement("font");
				font.style.fontWeight = "bold";
				font.appendChild(sitename);
				j++;
				//loop through blanks for firefox
				while (x[i].childNodes[j].nodeType != 1){
					j++;
				}
				var linkname = x[i].childNodes[j].firstChild.nodeValue;
				if (linkname != "none"){
					var elink = document.createElement('a');
					elink.href = linkname;
					elink.target = '_blank';
					elink.appendChild(font);
					j++;
					//loop through blanks for firefox
					while (x[i].childNodes[j].nodeType != 1){
						j++;
					}
				}
				else {
					j++;
					//loop through blanks for firefox
					while (x[i].childNodes[j].nodeType != 1){
						j++;
					}
					var linkname = x[i].childNodes[j].firstChild.nodeValue;
					if (linkname != "none"){
						var elink = document.createElement('a');
						elink.href = "mailto:" + linkname;
						elink.appendChild(font);
					}
				}
			}
			else if (x[i].childNodes[j].nodeName == "image"){
				var imagefile = x[i].childNodes[j].firstChild.nodeValue;

				if (imagefile != 'none'){
					var linkimg = document.createElement('img');
					linkimg.src = '/images/' + imagefile;
					var aimg = document.createElement('a');
					aimg.href = linkname;
					aimg.target = '_blank';
					aimg.alt = theData;
					aimg.appendChild(linkimg);
					container.appendChild(aimg);
				}
			}
			else {
				var theData = document.createTextNode(" - " + cellValue);
				container.appendChild(elink);
				container.appendChild(theData);
			}
			row.appendChild(container);
		}
		tmp.appendChild(row);
	}
	
	document.getElementById('xmllinks').appendChild(newEl);
}

function createCalendar(xmlDoc)
{
	var x = xmlDoc.getElementsByTagName('item');
	var newEl = document.createElement('TABLE');
	newEl.setAttribute('cellPadding',10);
	newEl.setAttribute('style', 'table1');
	var tmp = document.createElement('TBODY');
	newEl.appendChild(tmp);
	var row = document.createElement('TR');
	for (j=0;j<x[0].childNodes.length;j++)
	{
		if (x[0].childNodes[j].nodeType != 1) continue;
		var container = document.createElement('TH');
		var theData = document.createTextNode(x[0].childNodes[j].nodeName);
		container.appendChild(theData);
		row.appendChild(container);
	}
	
	tmp.appendChild(row);
	for (i=0;i<x.length;i++)
	{
		var row = document.createElement('TR');
		for (j=0;j<x[i].childNodes.length;j++)
		{
			if (x[i].childNodes[j].nodeType != 1) continue;
			var container = document.createElement('TD');
			//assign cell value to variable
			cellValue = x[i].childNodes[j].firstChild.nodeValue;
			//replace 'none' with blank space
			if (cellValue == 'none'){
				cellValue = cellValue.replace(/none/,"");
			}
			
			if (x[i].childNodes[j].nodeName == "date"){
				var theData = document.createTextNode(cellValue);
				
				var font = document.createElement("font");
				font.style.color = "white";
				font.style.fontWeight = "bold";
				font.style.fontSize = "12px";
				font.appendChild(theData);
				container.appendChild(font);
			}
			else {
				var theData = document.createTextNode(cellValue);
				container.appendChild(theData);
			}
			row.appendChild(container);
		}
		tmp.appendChild(row);
	}
	document.getElementById('xmlcalendar').appendChild(newEl);
}

function createNewslettersTable(xmlDoc)
{
	var x = xmlDoc.getElementsByTagName('item');
	var newEl = document.createElement('TABLE');
	newEl.setAttribute('cellPadding',15);
	newEl.setAttribute('style', 'table1');
	var tmp = document.createElement('TBODY');
	newEl.appendChild(tmp);
	var row = document.createElement('TR');
	
	var container = document.createElement('TH');
	var theData = document.createTextNode("Click to view and/or download files");
	container.appendChild(theData);
	row.appendChild(container);
	
	tmp.appendChild(row);
	for (i=0;i<x.length;i++)
	{
		var row = document.createElement('TR');
		for (j=0;j<x[i].childNodes.length;j++)
		{
			if (x[i].childNodes[j].nodeType != 1) continue;
			var container = document.createElement('TD');
			if (x[i].childNodes[j].nodeName == "date"){
				var theData = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);
				var font = document.createElement("font");
				font.style.fontWeight = "bold";
				font.appendChild(theData);
				j++;
				//loop through blanks for firefox
				while (x[i].childNodes[j].nodeType != 1){
					j++;
				}
				var linkname = x[i].childNodes[j].firstChild.nodeValue;
				var elink = document.createElement('a');
				elink.href = '/docs/' + linkname;
				elink.target = '_blank';
				elink.appendChild(font);
				container.appendChild(elink);
			}
			row.appendChild(container);
		}
		tmp.appendChild(row);
	}
	document.getElementById('writenewsletters').appendChild(newEl);
}

function createNewsRSSList(xmlDoc)
{
	var x = xmlDoc.getElementsByTagName('item');
	var newEl = document.createElement('ul');
	newEl.setAttribute('class', 'rss-box');
	newEl.setAttribute('className', 'rss-box');
	var heading = document.createTextNode("News & Announcements");
	var p_heading = document.createElement('p');
	p_heading.setAttribute('class', 'news_heading');
	p_heading.setAttribute('className', 'news_heading');
	p_heading.appendChild(heading);
	newEl.appendChild(p_heading);
	
	for (i=0;i<x.length;i++)
	{
		for (j=0;j<x[i].childNodes.length;j++)
		{	
			if (x[i].childNodes[j].nodeType != 1) continue;
			var li_title = document.createElement('li');
			
			if (x[i].childNodes[j].nodeName == "title"){
				//get title
				var title = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);
				j++;
				//loop through blanks for firefox
				while (x[i].childNodes[j].nodeType != 1){
					j++;
				}
				//get link
				var linkname = x[i].childNodes[j].firstChild.nodeValue;
				//replace 'none' with blank space
				if (linkname == 'none'){
					li_title.setAttribute('class', 'rss-heading');
					li_title.setAttribute('className', 'rss-heading');
					li_title.appendChild(title);
				} else {
					var elink = document.createElement('a');
					elink.href = linkname;
					elink.appendChild(title);
					li_title.setAttribute('class', 'rss-item');
					li_title.setAttribute('className','rss-item');
					li_title.appendChild(elink);
				}
				j++;
				//loop through blanks for firefox
				while (x[i].childNodes[j].nodeType != 1){
					j++;
				}
				//get description
				var desc = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);
				j++;
				//loop through blanks for firefox
				while (x[i].childNodes[j].nodeType != 1){
					j++;
				}
				//get date
				var pubdate = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);
				var dl_date = document.createElement('dl');
				dl_date.setAttribute('class', 'rss-date');
				dl_date.setAttribute('className', 'rss-date');
				dl_date.appendChild(pubdate);
				
				var dl_desc = document.createElement('dl');
				dl_desc.setAttribute('class', 'bodytext');
				dl_desc.setAttribute('className', 'bodytext');
				dl_desc.appendChild(desc);
				newEl.appendChild(li_title);
				newEl.appendChild(dl_date);
				newEl.appendChild(dl_desc);
			}
			
		}
	}
	document.getElementById('writenews').appendChild(newEl);
}
		 
function createAllResultsTable(xmlDoc)
{
	//get all <result> tags
	var restags = xmlDoc.getElementsByTagName("result");
	var pmain = document.createElement('p');
	
	for (i=restags.length-1; i >= 0; i--)
	{
		//grab filename and linkname text
		for (j=0; j < restags[i].childNodes.length; j++)
		{
			if (restags[i].childNodes[j].nodeType != 1) continue;
			
			if (restags[i].childNodes[j].nodeName == "filename"){
				filename = restags[i].childNodes[j].firstChild.nodeValue;
				fileshort = filename.split(".",1);
			}
			else {
				linkname = restags[i].childNodes[j].firstChild.nodeValue;
			}
		}
		//setup html for each file
		var p1 = document.createElement('p');
		p1.setAttribute('class', 'bodytext');
		p1.setAttribute('className', 'bodytext');	
				
		//save <result> attributes		
		var p1Link = document.createElement('a');
		p1Link.href = "javascript:importXML('results', '" + fileshort +"', '" + fileshort + "')";
		var p1LinkText = document.createTextNode(linkname);
		p1Link.appendChild(p1LinkText);
		p1.appendChild(p1Link);
		
		var p2 = document.createElement('p');
		p2.setAttribute('id', 'results_' + fileshort);
		p1.appendChild(p2);
		pmain.appendChild(p1);
   	}	
	document.getElementById('allresults').appendChild(pmain);
}

function createResultsTable(xmlDoc)
{
	var resultsDiv = "results_" + filenameAsIs;
	var r = xmlDoc.getElementsByTagName('result');
	var tourn = xmlDoc.getElementsByTagName('tournament');
	//add clear results link before results table
	var clearLink = document.createElement('a');
	clearLink.href = "javascript:clearContent('" + resultsDiv + "')";
	var clearLinkText = document.createTextNode("Hide Results");
	clearLink.appendChild(clearLinkText);
	//add title before results table
	var newTitle = document.createTextNode(results_title + "  -  ");
	var newHeader = document.createElement('p');
	newHeader.setAttribute('class', 'sub_heading');
	newHeader.setAttribute('className', 'sub_heading');
	newHeader.appendChild(newTitle);
	newHeader.appendChild(clearLink);
	var newline = document.createElement('hr');
//	<hr align="left" width="680px" size="2pt" color="#FFFFFF">
	newline.setAttribute('align', 'left');
	newline.setAttribute('width', '680px');
	newline.setAttribute('size', '2pt');
	newline.setAttribute('color', 'white');
	newHeader.appendChild(newline);
	var newEl = document.createElement('TABLE');
	newEl.setAttribute('cellPadding',6);
	newEl.setAttribute('style', 'table1');
	var tmp = document.createElement('TBODY');
	newEl.appendChild(tmp);
	var row = document.createElement('TR');
	var container = document.createElement('TH');
	var theData = document.createTextNode("");
	container.appendChild(theData);
	row.appendChild(container);
	//create headers for table
	for (j=0;j<r[0].childNodes.length;j++)
	{
		if (r[0].childNodes[j].nodeType != 1) continue;
		var container = document.createElement('TH');
		var theData = document.createTextNode(r[0].childNodes[j].nodeName);
		container.appendChild(theData);
		row.appendChild(container);
	}
	tmp.appendChild(row);
	//loop through sections
	for (i=0; i<tourn[0].childNodes.length; i++){
		var section = tourn[0].childNodes[i];
		//address blank space issue in xml file reading
		if (section.nodeType != 1) continue;
		//alert("section = " + section.nodeName);
		//set up section headings
		var row = document.createElement('TR');
		var container = document.createElement('TD');
		//container.setAttribute('colspan', r[0].childNodes.length+1);
		var theData = document.createTextNode(tourn[0].childNodes[i].nodeName);
		var font = document.createElement("font");
		font.style.color = "white";
		font.style.fontWeight = "bold";
		font.style.fontSize = "14px";
		font.appendChild(theData);
		container.appendChild(font);
		row.appendChild(container);
		tmp.appendChild(row);
		//loop through results
		for (j=0; j < section.childNodes.length; j++)
		{			
			var result = section.childNodes[j];
			//address blank space issue in xml file reading
			if (result.nodeType != 1) continue;
			//alert("result = " + result.nodeName);
					
			var row = document.createElement('TR');
			var container = document.createElement('TD');
			var theData = document.createTextNode("");
			container.appendChild(theData);
			row.appendChild(container);
			//loop through result data
			for (k=0; k < result.childNodes.length; k++)
			{
				var data = result.childNodes[k];
				if (data.nodeType != 1) continue;
				var container = document.createElement('TD');
				cellValue = data.firstChild.nodeValue;
				//replace 'none' with blank space
				if (cellValue == 'none'){
					cellValue = cellValue.replace(/none/,"");
				}
				var theData = document.createTextNode(cellValue);
				container.appendChild(theData);
				row.appendChild(container);		
			}
			tmp.appendChild(row);
		}
	}
	newHeader.appendChild(newEl);
	clearContent(resultsDiv);
	document.getElementById(resultsDiv).appendChild(newHeader);
}


function createContactsTable(xmlDoc)
{
	var x = xmlDoc.getElementsByTagName('contact');
	var newEl = document.createElement('TABLE');
	newEl.setAttribute('cellPadding',10);
	newEl.setAttribute('style', 'table1');
	var tmp = document.createElement('TBODY');
	newEl.appendChild(tmp);
	var row = document.createElement('TR');
	for (j=0;j<x[0].childNodes.length;j++)
	{
		if (x[0].childNodes[j].nodeType != 1) continue;
		var container = document.createElement('TH');
		var theData = document.createTextNode(x[0].childNodes[j].nodeName);
		container.appendChild(theData);
		row.appendChild(container);
	}
	
	tmp.appendChild(row);
	for (i=0;i<x.length;i++)
	{
		var row = document.createElement('TR');
		for (j=0;j<x[i].childNodes.length;j++)
		{
			if (x[i].childNodes[j].nodeType != 1) continue;
			var container = document.createElement('TD');
			//assign cell value to variable
			cellValue = x[i].childNodes[j].firstChild.nodeValue;
			//replace 'none' with blank space
			if (cellValue == 'none'){
				cellValue = cellValue.replace(/none/,"");
			}
			
			if (x[i].childNodes[j].nodeName == "title"){
				var theData = document.createTextNode(cellValue);
				
				var font = document.createElement("font");
				font.style.color = "white";
				font.style.fontWeight = "bold";
				font.style.fontSize = "12px";
				font.appendChild(theData);
				container.appendChild(font);
			}
			else if (x[i].childNodes[j].nodeName == "email"){
				var theData = document.createTextNode(cellValue);
	
				var elink = document.createElement('a');
				elink.href = 'mailto:' + cellValue;
				elink.appendChild(theData);
				container.appendChild(elink);
			}
			else {
				var theData = document.createTextNode(cellValue);
				container.appendChild(theData);
			}
			row.appendChild(container);
		}
		tmp.appendChild(row);
	}
	document.getElementById('writecontacts').appendChild(newEl);
}

function scrollit(seed) {
	var m1 = "\"It's only work if somebody makes you do it!\"- Calvin and Hobbes";
	var m2 = "";
	var m3 = "";
	var m4 = "";
	var msg=m1+m2+m3+m4;
	var out = " ";
	var c = 1;
	if (seed > 100) {
		seed--;
		cmd="scrollit("+seed+")";
		timerTwo=window.setTimeout(cmd,100);
	}
	else if (seed <= 100 && seed > 0) {
		for (c=0 ; c < seed ; c++) {
			out+=" ";
		}
		out+=msg;
		seed--;
		window.status=out;
		cmd="scrollit("+seed+")";
		timerTwo=window.setTimeout(cmd,100);
	}
	else if (seed <= 0) {
		if (-seed < msg.length) {
			out+=msg.substring(-seed,msg.length);
			seed--;
			window.status=out;
			cmd="scrollit("+seed+")";
			timerTwo=window.setTimeout(cmd,100);
		}
		else {
			window.status=" ";
			timerTwo=window.setTimeout("scrollit(100)",75);
		}
	}
}

