/*
* This file reads the books.xml file and displays its contents.
* author:V.Sendling-Ortiz, vivortiz@yahoo.com
*/
////////////////////////
//Declarations
////////////////////////
var isFireFox = (!document.layers) && (navigator.userAgent.indexOf('Firefox')!=-1)?true:false;
var xmlFile = "xml/books.xml";
var xmlbooksDoc;
var bookCount;

//Is IE or Firefox?
if (isFireFox){	
	//Create an instance of the XML parser in Mozilla browsers
	//namespace, root, file
	xmlbooksDoc=document.implementation.createDocument("","",null);
	xmlbooksDoc.load(xmlFile);
}else{
	xmlbooksDoc = new ActiveXObject("Microsoft.XMLDOM");
}

////////////////////////
//Functions
////////////////////////

//Loads XML file
function loadbooksXML(xmlFile, inRetText, inRetBoxes)
{  
  if (isFireFox){	
	xmlbooksDoc.async="false";
	xmlbooksDoc.onreadystatechange=verify;	
	xmlbooksObj=xmlbooksDoc.documentElement; //root element 
  }else{
	xmlbooksDoc.async="false";
	xmlbooksDoc.onreadystatechange=verify;
	xmlbooksDoc.load(xmlFile);
	xmlbooksObj=xmlbooksDoc.documentElement; //root element 
  } 
  try{ 	
	
	if (inRetText){		
	}else{
		if (inRetBoxes){
			updateText();			
		}else{
			displaybooksXML();
		}
	}
  }
  catch(e){
	//document.write("<a href='schedule.htm' style='color:white'><u>Click here</u></a> to see full schedule.");
    //document.write ("<BR><font color=red>Problem displaying XML file (check font non-friendly symbols): " + e.message + "</font><BR><HR>")
  }  
}

//Verifies
function verify()
{
  // 0 Object is not initialized
  // 1 Loading object is loading data
  // 2 Loaded object has loaded data
  // 3 Data from object can be worked with
  // 4 Object completely initialized
  if (xmlbooksDoc.readyState != 4)
  {
		return false;
  }else{
		//alert(xmlbooksDoc.readyState);
  }
}

//prints list styles
function printStyles(){

	var booksCount = xmlbooksObj.childNodes.length;	
	
	//will loop thru from top top bottom XML file.
	for (i=0;i<booksCount;i++)
	{	
		//create list styles to include images
		//get image
		//var x2=xmlbooksDoc.getElementsByTagName('bookimg');
		//var strbooksImg = x2[i].childNodes[0].nodeValue;
		var x=xmlbooksDoc.getElementsByTagName('bookname');
		var strbooksName = x[i].childNodes[0].nodeValue;
		strbooksName = strbooksName.replace(/ /g,"");
		//alert(strbooksName);
		document.write("<style>");
		document.write("li."+strbooksName+"{");
		document.write("background-image: url(images/bookicon.gif);");
		document.write("background-repeat: no-repeat;");
		document.write("background-position: 0 5;");
		document.write("padding: 3px 0 3px 20px;");
		document.write("margin: .4em 0;");
		document.write("}");
		document.write("</style>");
	}
}
//Displays XML file contents
function displaybooksXML(){ 
    var booksCount = xmlbooksObj.childNodes.length;	
    //setFileNodeCount(booksCount);	
	
	//will loop thru from top top bottom XML file.
	for (i=0;i<booksCount;i++)
	{
		
		var x=xmlbooksDoc.getElementsByTagName('bookname');	
		var strbooksName = x[i].childNodes[0].nodeValue;
		var strName;
		strName = strbooksName.replace(/ /g,"");
		
		//get url
		var x=xmlbooksDoc.getElementsByTagName('bookurl');	
		var strbooksUrl = x[i].childNodes[0].nodeValue;
		document.write("<li>");
		document.write(strbooksName);
		document.write(" | <a href='"+strbooksUrl+"' style='color:#CF9118'>Buy</a></li>");
		
		//get image
		//var x=xmlbooksDoc.getElementsByTagName('bookimg');
		//var strbooksImg = x[i].childNodes[0].nodeValue;				
		
		document.write("");
		
	}
			
}

//Only return text without formating
function updateText(){ 
	var booksCount = xmlbooksObj.childNodes.length;	
	setFileNodeCount(booksCount);	
	
	document.write("<table id='tblBooks' name='tblBooks' border=1>");
	document.write("<tr style='color:white; font-weight:bold;'>");	
	document.write("<td>Book Title</td>");	
	document.write("<td>Book Url Address</td>");
	document.write("<td>Delete</td>");
	document.write("</tr>");	
		
			
	//will loop thru from top top bottom XML file.
	for (i=0;i<booksCount;i++)
	{		
		document.write("<tr>");
		var x=xmlbooksDoc.getElementsByTagName('bookname');	
		var strbooksName = x[i].childNodes[0].nodeValue;
		var strName;
		strName = strbooksName.replace(/ /g,"");
		
		//get url
		var x=xmlbooksDoc.getElementsByTagName('bookurl');	
		var strbooksUrl = x[i].childNodes[0].nodeValue;
		document.write("<td><input id='boxName'"+i+"' name='boxName'"+i+"' size=40 type='text' value='"+trimAll(strbooksName)+"' /></td>");
		document.write("<td><input id='boxUrl'"+i+"' name='boxUrl'"+i+"' size=100 type='text' value='"+trimAll(strbooksUrl)+"' /></td>");
		document.write("<td><input  id='chkDelete' name='chkDelete' type='checkbox' onclick='highlight(this);' value='"+i+"'/></td>");
		
		//get image
		//var x=xmlbooksDoc.getElementsByTagName('bookimg');
		//var strbooksImg = x[i].childNodes[0].nodeValue;				
		
		document.write("</tr>");
	}
	document.write("</tr>");
	document.write("</table>");
			
}

//Only return text without formating
function returnText(){ 
    var booksCount = xmlbooksObj.childNodes.length;	
    setFileNodeCount(booksCount);	
	var outstring = "";
	//alert(booksCount);
	//will loop thru from top top bottom XML file.
	for (i=0;i<booksCount;i++)
	{	
		
		var x=xmlbooksDoc.getElementsByTagName('bookname');	
		var strbooksName = x[i].childNodes[0].nodeValue;
		var strName;
		strName = strbooksName.replace(/ /g,"");
		
		//get url
		var x=xmlbooksDoc.getElementsByTagName('bookurl');	
		var strbooksUrl = x[i].childNodes[0].nodeValue;		
		
		//get image
		//var x=xmlbooksDoc.getElementsByTagName('bookimg');
		//var strbooksImg = x[i].childNodes[0].nodeValue;

		outstring = outstring  + strbooksName + ", ";
		outstring = outstring  + strbooksUrl+ ";";
		//outstring = outstring  + strbooksImg + ";\n";		
	}
	return outstring;
}
//
function setFileNodeCount(inbookCount){
	bookCount = inbookCount;
}
function getFileNodeCount(){
	return bookCount;
}

//trims all white spaces
//The allTrim() JavaScript function combines both leftTrim() and rightTrim() functions:
function trimAll(sString)
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
return sString;
}

