// XML file to use
var XMLFile = '/dailyreading/dailyreading.xml';


// Utility functions
function addEventHandler(node, evt, fnHandler, useCapture) {
	if (typeof (window.event) != "undefined")
    	node.attachEvent("on" + evt, fnHandler);
    else
    	node.addEventListener(evt, fnHandler, useCapture);
}

// Outputs a nice neat date for day's reading
function friendlyDate(uglyDate) {
	// Array of day names
	var dayNames = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
	var monthNames = new Array("January","February","March","April","May","June","July",
                           "August","September","October","November","December");

	var y  = uglyDate.getFullYear();
	
	return (dayNames[uglyDate.getDay()] + ", " + monthNames[uglyDate.getMonth()] + " " + uglyDate.getDate() + ", " + y);
}
// Processes date from XML rows for all readings list
function stripDate(datetime) {
	var date = datetime.substring(0,10);
	var dateStrings = [ date.substring(0,4), date.substring(5,7), date.substring(8,10) ];
	var monthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var monthInteger = Math.floor(dateStrings[1]) -1;
	//alert (monthInteger);
	return (monthNames[monthInteger] + ' ' + dateStrings[2] + ', ' + dateStrings[0]);
}


// Read in XML
var xmlDoc;
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else // Internet Explorer 5/6
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",XMLFile,false);
xhttp.send("");
xmlDoc=xhttp.responseXML;

var rows=xmlDoc.getElementsByTagName("Row");



// Find verse of day
function findVerse(today) {
	var yyyy = today.getFullYear();
	var mm = today.getMonth()+1;
	var dd = today.getDate();
	if (mm<10) { // add preceding 0
		mm = '0' + mm;	
	}
	if (dd<10) { // add preceding 0
		dd = '0' + dd;	
	}
	var xmlDate = (yyyy) + '-' + (mm) + '-' + (dd);
	for (var i=0; i<rows.length; i++) {
		var rowDate = (rows[i].getElementsByTagName("Cell")[1].childNodes[0].childNodes[0].nodeValue);
		if (rowDate.indexOf(xmlDate) != -1) {
			return (rows[i].getElementsByTagName("Cell")[2].childNodes[0].childNodes[0].nodeValue);
		}
	}
}
// Write verse of day
function writeVerse(today) {
	var verse = findVerse(today);
	document.getElementById('verse').innerHTML = '<p>' + friendlyDate(new Date()) + '</p><p><a href="http://www.biblegateway.com/passage/?search=' + verse + '&version=NIV" target="_blank">' + verse + '</a></p>';
}
// Spit out all dates and verses in XML file
function writeAllVerses() {
	if (document.getElementById('allVerses')) {
		var tableRows = '';
		for (var i=0; i<rows.length; i++) {
			var datetime = (rows[i].getElementsByTagName("Cell")[1].childNodes[0].childNodes[0].nodeValue);
			var date = stripDate(datetime);
			var verse = (rows[i].getElementsByTagName("Cell")[2].childNodes[0].childNodes[0].nodeValue);
			tableRows += '<tr><td>' + date + '</td><td><a href="http://www.biblegateway.com/passage/?search=' + verse + '&version=NIV" target="_blank">' + verse + '</a></td></tr>';
		}
		var versesTable = document.createElement('div');
		versesTable.innerHTML = '<table border="0" cellspacing="0" cellpadding="4"><tr><th scope="col">Date</th><th scope="col">Verse</th></tr>' + tableRows + '</table>';
		document.getElementById('allVerses').appendChild(versesTable);
	}
}


// Execute script on window laod

addEventHandler(window, 'load', function(evt) { writeVerse(new Date()); writeAllVerses(); });
