// JavaScript Document

var xmlDoc;
var arrFacts = new Array();
var arrFact = new Array();
var toFact, fromFact, bodyFact;

function importXML(xmlPath){
	if (document.implementation && document.implementation.createDocument){  //Mozilla, etc.
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = getInfo;
	}
	else if (window.ActiveXObject){  //IE
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4) getInfo()
		};
	}else{
//		alert('Your browser is unable to display this script.');
		return;
		}
	xmlDoc.load(xmlPath);
	}

function getInfo(){
	
	cleanWhitespace(xmlDoc); //clean whitespace on the whole document first (because Mozilla and IE interpret white space differently)

	arrFacts = xmlDoc.getElementsByTagName("FACT");
	for (var i = 0; i <= arrFacts.length - 1; i++){
		arrFact[i] = xmlDoc.getElementsByTagName("FACT")[i].childNodes[0].nodeValue;
	}
	
	randomFactNumber = randomNumber(arrFacts.length);
	var randomFact = document.createTextNode(arrFact[randomFactNumber]);
	document.getElementById('noscript_fact').style.display="none";
	document.getElementById('facts').appendChild(randomFact);

}


//returns a number between 0 and upperBound
function randomNumber(upperBound){ 
  return ( Math.floor ( Math.random ( ) * (upperBound) ) );
}

//clean whitespace method by Alex Vincent 
var notWhitespace = /\S/;
function cleanWhitespace(node) {
  for (var x = 0; x < node.childNodes.length; x++) {
    var childNode = node.childNodes[x]
    if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) {
// that is, if it's a whitespace text node
      node.removeChild(node.childNodes[x])
      x--
    }
    if (childNode.nodeType == 1) {
// elements can have text child nodes of their own
      cleanWhitespace(childNode)
    }
  }
}
