
var qBook;
var qChapter;
var qVsStart;
var qVsEnd;
var myTestament;
var testament;			

function loadVerse() {
	// if file has querystring, get it.
	url = location.href;
	
	if (url.search(/\?/) != -1) 
	{
      q=url.split('?');
      if (q[1]) 
			{
				if (q[1].search(/\=/) != -1)
				{
          var pairs = q[1].split('=');
    			myReference = new Reference(unescape(pairs[1]));
				} 
				else 
				{
					myReference = new Reference(unescape(q[1]));
				}		
    		getVersesByRef(myReference.book, myReference.chapter, myReference.startverse, myReference.endverse);
			}
	}	
}

function nextBook () {
	var myReference = new Reference(document.getElementById('ref').value);
	if (myReference.book < 66) {		
		document.getElementById('ref').value = bookName(myReference.book+1) + " 1";
		getVersesByRef(myReference.book+1, 1, 1, "*");
	} else {
		alert("You're already at the last book of the Bible. ;)");
	}
}

function prevBook () {
	var myReference = new Reference(document.getElementById('ref').value);
	if (myReference.book > 1) {		
		document.getElementById('ref').value = bookName(myReference.book-1) + " 1";
		getVersesByRef(myReference.book-1, 1, 1, "*");
	} else {
		alert("You're already at the first book in the Bible. ;)");
	}
}
function showChapter () {
	var myReference = new Reference(document.getElementById('ref').value);
	document.getElementById('ref').value = bookName(myReference.book) + " " + (myReference.chapter+1);
	getVersesByRef(myReference.book, myReference.chapter, 1, "*");
	
}
function nextChapter () {
	var myReference = new Reference(document.getElementById('ref').value);
	if (myReference.chapter < myReference.lastchapter) {	
		document.getElementById('ref').value = bookName(myReference.book) + " " + (myReference.chapter+1);
		getVersesByRef(myReference.book, myReference.chapter+1, 1, "*");
	} else {
		alert("You're already at the last chapter in the book. ;)");
	}
}
function prevChapter () {
	var myReference = new Reference(document.getElementById('ref').value);
	if (myReference.chapter >1) {		
		document.getElementById('ref').value = bookName(myReference.book) + " " + (myReference.chapter-1);
		getVersesByRef(myReference.book, myReference.chapter-1, 1, "*");
	} else {
		alert("You're already at the first chapter in the book. ;)");
	}
}

function getReference() {
	var q = document.getElementById('ref').value;
	if (q.search(/[0-9]/i) == -1) 
	{
		find(q);
	} else if(q.search(/(H|G)[0-9]/i) != -1){
		var dict = q.substring(0,1);
		if (dict.search(/h/i) != -1) {dict="heb";} else {dict="grk";}
		getStrongs(q.substring(1, q.length),dict)
	} else {
  	myReference = new Reference(q);		
  	getVersesByRef(myReference.book, myReference.chapter, myReference.startverse, myReference.endverse);
	}
}

function getVersesByRef(book, chapter, startverse, endverse) {
	var myReference = new Reference(bookName(book) + " " + chapter);	
	bookname = myReference.bookname;
	longbookname = myReference.longbookname;
	qBook = book;
	qChapter = chapter;
	qVsStart = startverse;
	qVsEnd = endverse;
	document.getElementById('wikipedialink').innerHTML = "Wikipedia on " + longbookname.replace(/\_/g, " ");
	document.getElementById('wikipedialink').href = "http://en.wikipedia.org/wiki/" + longbookname;
	document.getElementById('wikipediabook').innerHTML = "Wikipedia on " + longbookname.replace(/\_/g, " ") + " " + chapter;
	document.getElementById('wikipediabook').href = "http://en.wikipedia.org/wiki/" + bookname.replace(/\s/g, "_") + "_" + chapter;
	document.getElementById('theopedialink').innerHTML = "Theopedia on " + longbookname.replace(/\_/g, " ");
	document.getElementById('theopedialink').href = "http://www.theopedia.com/" + longbookname;
	document.getElementById('theopediabook').innerHTML = "Theopedia on " + longbookname.replace(/\_/g, " ") + " " + chapter;
	document.getElementById('theopediabook').href = "http://www.theopedia.com/" + bookname.replace(/\s/g, "_") + "_" + chapter;

	loadXMLDoc("xml/" + book + "-" + chapter + ".xml", processReqChange);
	document.getElementById('ref').value = bookname + " " + chapter + ":" + startverse + "-" + endverse;
	document.getElementById('passage').innerHTML = bookname + " " + chapter + ":" + startverse + "-" + endverse;

}

function myTraverse(node) {
	var treeText = "";
	if (node != null) {
		if(node.hasChildNodes()) {
		if (node.nodeName == "strongs") {
				treeText += " <a href='#' onclick='getStrongs(";
				// you need to test if this is the OT or NT and set the attribute accordingly.
				if (testament == "old") {
					treeText += node.getAttribute("number") + ", \"heb\"";
			}
				if (testament == "new") {
					treeText += node.getAttribute("number") + ", \"grk\"";
				}
				treeText += ")' title='Strongs #: " + node.getAttribute("number") + "'>" + myTraverse(node.childNodes.item(0)) + "</a>";
			} else {
				treeText += '<'+node.nodeName+'>';
				for(var i=0; i<node.childNodes.length; i++) {
					treeText += myTraverse(node.childNodes.item(i));
				}
				treeText += '</'+node.nodeName+'>';
			}
		} else {
			if (node.nodeValue != null) {
  			if (node.nodeValue.search(/^(\,|\.|\:|\?|\;|\!)/) != -1) {
  				treeText += node.nodeValue;
  			} else {
  				treeText += " " + node.nodeValue;
  			}
			}
		}
	}
	return treeText;
}

function processReqChange(xmlObj) {
	// ...processing statements go here...
  var oDict  = xmlObj.documentElement;
  var Books = oDict.getElementsByTagName("book");
  testament = Books.item(0).getAttribute("testament");
  var Chapters = oDict.getElementsByTagName("chapter");
  var result = document.getElementById('result');
  var resultText = "";
  for (i=0; i<Chapters.length; i++) {
  	var Chapter = Chapters.item(i);
  	if (Chapter.getAttribute("number") == qChapter) {
  		var Verses = Chapter.childNodes
  		for (j=0; j<Verses.length; j++) {
  		 	var Verse = Verses.item(j);
  			if (Verse.nodeName == "verse") {
  				if ((Verse.getAttribute("number") >= qVsStart && Verse.getAttribute("number") <= qVsEnd) || (Verse.getAttribute("number") >= qVsStart && qVsEnd == "*")) {
  					var vNodes = Verse.childNodes;
  					resultText += "<b>" + Verse.getAttribute("number") + ".</b> ";
  					for (m=0; m<vNodes.length; m++) {
  						vNode = vNodes.item(m);
  						if (vNode.nodeName == "#text") {
  							if (vNode.nodeValue.search(/^(\,|\.|\:|\?|\;|\!)/) != -1) {
  								resultText += vNode.nodeValue;
  							} else {
  								resultText += " " + vNode.nodeValue;
  							}
  						}
  						if (vNode.nodeName == "em") {
  							resultText += myTraverse(vNode);
  						}
  						if (vNode.nodeName == "strongs") {
  							resultText += " <a href='#' onclick='getStrongs(\"";
  							// you need to test if this is the OT or NT and set the attribute accordingly.
  							if (testament == "old") {
  								resultText += vNode.getAttribute("number") + "\", \"heb\"";
  							}
  							if (testament == "new") {
  								resultText += vNode.getAttribute("number") + "\", \"grk\"";
  							}
  							resultText += ")' title='Strongs #: " + vNode.getAttribute("number") + "'>" + myTraverse(vNode.childNodes.item(0)) + "</a>";
  						}
  					}
  					resultText += "<br />";
  				}
				}
			}
			result.innerHTML = resultText; 
  	}										
  }
}

