// JavaScript Document

var xmldoc;
var xmlhttp;

//div objects
var textTitleDiv;
var navDiv;
var xmlInsertDiv;
var redStripeDiv;
var backgroundDiv;

//selected story
var navSelection;
var lock;

function importXML()
{	
	xmlhttp = new XMLHttpRequest();  
	xmlhttp.open("GET", "http://"+location.host+"/jscript/pointless.xml", false);
	xmlhttp.send("");

	xmldoc = xmlhttp.responseXML;

	xmldoc.setProperty("SelectionLanguage", "XPath");  
	if(xmldoc.parseError !== 0){
	}else{
	   alert(Sarissa.getParseErrorText(xmldoc));	   
	}
	
	//initialize navSelection to no selection
	navSelection = 0;	
	lock = false;
	//build the page
	buildPage();
}

//initialize global variables;
function initDivs()
{	
	textTitleDiv = document.getElementById("texTitle");
	storyDiv = document.getElementById("story");
	wrapperDiv = document.getElementById("wrapper");
	xmlInsertDiv = document.getElementById("text");
	navDiv = document.getElementById("nav");
	redStripeDiv = document.getElementById("redStripe");
	backgroundDiv = document.getElementById("backgroundText");
}

//build the page from scratch
function buildPage()
{
	initDivs();
	setLinks();
}



function setLinks()
{

	var works = xmldoc.selectNodes("/efforts/work");
	
	for (i=0; i<works.length; i++)
	{		
		var linkId = works[i].getAttribute("id");		
		var theLink = document.getElementById(linkId);
		theLink.setAttribute("href", "javascript:loadText('"+linkId+"');");
	}
}



function loadText(id)
{
	var efforts = xmldoc.selectNodes("/efforts/work[@id=\""+id+"\"]/text");
	var entryNum = xmldoc.selectNodes("/efforts/work[@id=\""+id+"\"]/entryNumber");
	navSelection = entryNum[0].firstChild.nodeValue;
	
	/*xmlInsertDiv.innerHTML = "<div id=\"redStripe\"></div><div id=\"textTitle\">" 
							 + getTitle(navSelection) + "<hr/></div> " 
							 + getText(navSelection);	*/
	
	xmlInsertDiv.innerHTML = "<br/><br/><div id=\"textTitle\">" 
							 + getTitle(navSelection) + "<hr/></div> " 
							 + getText(navSelection) + linkBack() + "<br/><br/>";
							 
	wrapperDiv.style.display = "none";
	storyDiv.style.display = "block";
	document.body.style.backgroundColor = "#FFFFFF";
}

function updateTitle()
{
	var title = "welcome.";
	if (navSelection > 0)
	{
		title = getTitle(navSelection);
	}
	textTitleDiv.innerHTML = title;
}

function extractHtml(xmlString)
{
	xmlString.replace("<text>", "");
	xmlString.replace("</text>", "");
	return xmlString;
}

function getTitle(idx)
{
	if (idx > 0)
	{
		return xmldoc.selectNodes("/efforts/work[entryNumber=\""+idx+"\"]/title")[0].firstChild.nodeValue;	
	}
	else
	{
		return "welcome.";	
	}
		
}

function getId(idx)
{
	if (idx > 0)
	{
		return xmldoc.selectNodes("/efforts/work[entryNumber=\""+idx+"\"]")[0].getAttribute("id");

	}
	else
	{
		return null;
	}
}

function getText(idx)
{
	var tNode = xmldoc.selectNodes("/efforts/work[entryNumber=\""+idx+"\"]/text");
	var xmlString = new XMLSerializer().serializeToString(tNode[0]);  
	return extractHtml(xmlString);
}

function linkBack()
{
	return "<center><a href=\"javascript: revert();\">back.</a></center>";
}

function revert()
{
	wrapperDiv.style.display = "block";
	storyDiv.style.display = "none";
	document.body.style.backgroundColor = "#222255";
}
