/*
* This file reads the photos.xml file and displays its contents.
* author:V.Sendling-Ortiz, vivortiz@yahoo.com
* If user has IE, then they can use the player, otherwise, they must download them!
*/
////////////////////////
//Declarations
////////////////////////
var isFireFox = (!document.layers) && (navigator.userAgent.indexOf('Firefox')!=-1)?true:false;
var xmlPhotoFile = "xml/photos.xml";
var xmlphotosDoc;
var loadFailed = false;
var photoCount;
var docLoaded = false;
var loadBackup = 0;
var picCount;
var strText = "";

//Is IE or Firefox?
if (isFireFox){	
	//Create an instance of the XML parser in Mozilla browsers
	//namespace, root, file
	xmlphotosDoc=document.implementation.createDocument("","",null);
	xmlphotosDoc.load(xmlPhotoFile);
}else{
	xmlphotosDoc = new ActiveXObject("Microsoft.XMLDOM");
}

////////////////////////
//Functions
////////////////////////

//Loads XML file
function loadphotosXML(xmlPhotoFile, inRetText)
{  
  if (isFireFox){	
	xmlphotosDoc.async="false";
	xmlphotosDoc.onreadystatechange=verify;	
	xmlphotosObj=xmlphotosDoc.documentElement; //root element 
  }else{
	xmlphotosDoc.async="false";
	xmlphotosDoc.onreadystatechange=verify;
	xmlphotosDoc.load(xmlPhotoFile);
	xmlphotosObj=xmlphotosDoc.documentElement; //root element 
	
	//if can't load file, try loading back up file once!
	/*if (docLoaded == false && loadBackup == 0){		
		loadFailed = true;
		//alert("loading backup once");	
		/*xmlphotosDoc.async="false";
		xmlphotosDoc.onreadystatechange=verify;
		docLoaded  = xmlphotosDoc.load(xmlPhotoFileBack);			
		xmlphotosObj=xmlphotosDoc.documentElement; //root element 
	
		loadBackup = loadBackup + 1;
		
		if (docLoaded == false){
			//alert("backup doc loaded = " + docLoaded);	
			return;
		}		
		else{
			xmlphotosObj=xmlphotosDoc.documentElement;//root element 
			isBackup = true;
		}*/
		//return;
	/*}else{
		//alert("don't load backup");
	}*/
  }
  try{ 	  
		if (inRetText){			
		}else{
			displayphotosXML();
		}
  }
  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 (xmlphotosDoc.readyState != 4)
  {
		return false;
  }else{
		//alert(xmlphotosDoc.readyState);
  }
}

//Displays XML file contents
function displayphotosXML(){ 
	if (isFireFox){
		var photosCount = xmlphotosObj.childNodes.length - 9;	
	}else{
		var photosCount = xmlphotosObj.childNodes.length;	
	}
    
	setFileNodeCount(photosCount);
	var outString = "";
	
	//alert(photosCount);
	//will loop thru from top top bottom XML file.
	for (i=0;i<photosCount;i++)
	{			
		
		//get photo url
		var x=xmlphotosDoc.getElementsByTagName('photourl');				
		var strphotosNode = x[i].childNodes[0].nodeValue;		
		outString = outString + "<li style='left-margin:10px;'>&nbsp;&nbsp;&nbsp;&nbsp;<a href='pics/"+strphotosNode+"' />";
		
		//get photo names
		var x=xmlphotosDoc.getElementsByTagName('photoname');
		var strphotosNode = x[i].childNodes[0].nodeValue;				
		outString = outString + "<b>"+ strphotosNode + "</b></a></li><BR><BR>";	
	}	
	strText = outString;
}


//Displays XML file contents in boxes
function displayphotosBoxes(){ 
	if (isFireFox){
		var photosCount = xmlphotosObj.childNodes.length - 9;	
	}else{
		var photosCount = xmlphotosObj.childNodes.length;	
	}
        
	setFileNodeCount(photosCount);	
	
	document.write("<table id='tblBooks' name='tblBooks' border=1>");
	document.write("<tr style='color:white; font-weight:bold;'>");	
	document.write("<td width='0px'>photo Description</td>");	
	document.write("<td width='0px'>photo File Name <br>(This is the name of the file that you uploaded. Click Show photos button below, if you don't remember.)</td>");
	document.write("<td width='0px'>Delete</td>");
	document.write("</tr>");	
	
	//alert(photosCount);
	//will loop thru from top top bottom XML file.
	for (i=0;i<photosCount;i++)
	{			
		document.write("<tr>");
		//get photo name
		var x=xmlphotosDoc.getElementsByTagName('photoname');				
		var strphotosNode = x[i].childNodes[0].nodeValue;		
		document.write("<td><input id='boxName' name='boxName' type=text value='"+trimAll(strphotosNode)+"' size=100></td>");
		
		//get photo url
		var x=xmlphotosDoc.getElementsByTagName('photourl');
		var strphotosNode = x[i].childNodes[0].nodeValue;						
		document.write("<td>");		
		document.write("<input id='boxUrl' name='boxUrl' type=text value='"+trimAll(strphotosNode)+"' size=80></td>");	
		document.write("</td>");
		document.write("<td><input  id='chkDelete' name='chkDelete' type='checkbox' onclick='highlight(this);' value='"+i+"'/></td>");
	
		document.write("</tr>");
	}	
	document.write("</table>");
}

//Only return text without formating
function returnText(){ 
    var aboutCount = xmlphotosObj.childNodes.length;	
	var arrCounter;
	var outString = "";
	
	//will loop thru from top top bottom XML file.
	for (i=0;i<aboutCount;i++)
	{	
		//get photo names
		var  photoNames=xmlphotosDoc.getElementsByTagName('photoname');
		var strphotosName = photoNames[i].childNodes[0].nodeValue;	
		
		//get url text
		var x=xmlphotosDoc.getElementsByTagName('photourl');
		var strphotosNodeValue = x[i].childNodes[0].nodeValue;		
			
		//out string
		if (outString == ""){
			outString = strphotosName + ", " + strphotosNodeValue + ";";
		}else{
			outString = outString + strphotosName + ", " + strphotosNodeValue + ";";
		}
	}	
	//outString = outString.replace("\n", "")
	return outString;
}

//Displays XML file contents as links to NON IE Users
function displayphotosLinks(){ 	
	var photosCount;	
	var listCounter;
	var strNodeName;
	var strNodeUrl;	
	var outString = "";
	
	if (document.implementation && document.implementation.createDocument){
		xmlphotosDoc.async="false";
		xmlphotosDoc.onreadystatechange=verify;	
		xmlphotosObj=xmlphotosDoc.documentElement;
		photosCount = xmlphotosObj.childNodes.length;

		//document.write (xmlPhotoFile);
		
		for (i=0;i<photosCount;i++)
		{	
			listCounter = i + 1;
			//get evp names
			var x=xmlphotosDoc.getElementsByTagName('photoname');				
			var strNodeName = x[i].childNodes[0].nodeValue;		
			
			//get evp url
			var x=xmlphotosDoc.getElementsByTagName('photourl');
			var strNodeUrl = "pics/" + x[i].childNodes[0].nodeValue;				
			outString = outString + "(" + listCounter + ") <a href='" + strNodeUrl+ "' style='color:white; font-weight:normal;'> "+strNodeName+"</a><br/>";				
		}
		strText = outString;
		photoCount = photosCount
	}
	
	xmlDoc = "";
	xmlphotosObj = "";
}


//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;
}

function setFileNodeCount(inPhotoCount){
	photoCount = inPhotoCount;
}
function getPicNodeCount(){
	return photoCount;
}

function getPicsString()
{
	return strText;
}