// // This code was written by Jason Wall. Feel free to use, and if you can, include a link back to www.walljm.com // Jason@walljm.com // www.walljm.com // String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); } String.prototype.ltrim = function() { return this.replace(/^\s+/, ""); } String.prototype.rtrim = function() { return this.replace(/\s+$/, ""); } function delVerse(v) { var title = v.parentNode; var verse = title.nextSibling; var passages = title.parentNode; passages.removeChild(title); passages.removeChild(verse); createPassagePermalink(); } var qBookname; 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('='); getQuery(unescape(pairs[1])); } else { getQuery(unescape(q[1])); } } } } function clearSearch() { document.getElementById('ref').value = ""; document.getElementById('result').innerHTML = ""; document.getElementById('passage').innerHTML = ""; } function nextBook() { var refs = document.getElementById('ref').value.split(";"); var passage = ""; document.getElementById('result').innerHTML = ""; for (var i = 0; i < refs.length; i++) { var ref = refs[i]; if (ref.trim() != "") { var myReference = new Reference(ref.trim()); if (myReference.book < 66) { getVersesByRef(myReference.book + 1, 1, 1, "*"); passage += bookName(myReference.book + 1) + " 1"; if (i + 1 < refs.length) { passage += "; "; } } else { alert("You're already at the last book of the Bible. ;)"); getVersesByRef(myReference.book, 1, 1, "*"); passage += bookName(myReference.book) + " 1"; if (i + 1 < refs.length) { passage += "; "; } } } } document.getElementById('ref').value = passage; } function prevBook() { var refs = document.getElementById('ref').value.split(";"); var passage = ""; document.getElementById('result').innerHTML = ""; for (var i = 0; i < refs.length; i++) { var ref = refs[i]; if (ref.trim() != "") { var myReference = new Reference(ref.trim()); if (myReference.book > 1) { getVersesByRef(myReference.book - 1, 1, 1, "*"); passage += bookName(myReference.book - 1) + " 1"; if (i + 1 < refs.length) { passage += "; "; } } else { alert("You're already at the last book of the Bible. ;)"); getVersesByRef(myReference.book, 1, 1, "*"); passage += bookName(myReference.book) + " 1"; if (i + 1 < refs.length) { passage += "; "; } } } } document.getElementById('ref').value = passage; } function showChapter() { var refs = document.getElementById('ref').value.split(";"); var passage = ""; document.getElementById('result').innerHTML = ""; for (var i = 0; i < refs.length; i++) { var ref = refs[i]; if (ref.trim() != "") { var myReference = new Reference(ref.trim()); getVersesByRef(myReference.book, myReference.chapter, 1, "*"); passage += myReference.bookname + " " + myReference.chapter; if (i + 1 < refs.length) { passage += "; "; } } } document.getElementById('ref').value = passage; } function nextChapter() { var refs = document.getElementById('ref').value.split(";"); var passage = ""; document.getElementById('result').innerHTML = ""; for (var i = 0; i < refs.length; i++) { var ref = refs[i]; if (ref.trim() != "") { var myReference = new Reference(ref.trim()); if (myReference.chapter < myReference.lastchapter) { getVersesByRef(myReference.book, myReference.chapter + 1, 1, "*"); passage += myReference.bookname + " " + (myReference.chapter + 1); if (i + 1 < refs.length) { passage += "; "; } } else { alert("You're already at the last chapter in the book. ;)"); getVersesByRef(myReference.book, myReference.chapter, 1, "*"); passage += myReference.bookname + " " + (myReference.chapter); if (i + 1 < refs.length) { passage += "; "; } } } } document.getElementById('ref').value = passage; } function prevChapter() { var refs = document.getElementById('ref').value.split(";"); var passage = ""; document.getElementById('result').innerHTML = ""; for (var i = 0; i < refs.length; i++) { var ref = refs[i]; if (ref.trim() != "") { var myReference = new Reference(ref.trim()); if (myReference.chapter > 1) { getVersesByRef(myReference.book, myReference.chapter - 1, 1, "*"); passage += myReference.bookname + " " + (myReference.chapter - 1); if (i + 1 < refs.length) { passage += "; "; } } else { alert("You're already at the first chapter in the book. ;)"); getVersesByRef(myReference.book, myReference.chapter, 1, "*"); passage += myReference.bookname + " " + (myReference.chapter); if (i + 1 < refs.length) { passage += "; "; } } } } document.getElementById('ref').value = passage; } function getQuery() { var query = $("#ref").val(); var qs = query.split(";"); clearSearch(); for (var x in qs) { var q = qs[x].trim(); if (q != "") { // its a search term. if (q.search(/[0-9]/i) == -1) { find(q); } // its a strongs lookup 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"; } q = q.substring(1, q.length); getStrongs(q, dict); } // its a verse reference. else { var passage = ""; if (q.trim() != "") { var myReference = new Reference(q.trim()); getVersesByRef(myReference.book, myReference.chapter, myReference.startverse, myReference.endverse); passage += myReference.bookname + " " + myReference.chapter + ":" + myReference.startverse + "-" + myReference.endverse; } } } } } function getVersesByRef(book, chapter, startverse, endverse) { var myReference = new Reference(bookName(book) + " " + chapter); var bookname = myReference.bookname; var longbookname = myReference.longbookname; qBookname = bookname qBook = book; qChapter = chapter; qVsStart = startverse; qVsEnd = endverse; document.getElementById('ref').value += bookname + " " + chapter + ":" + startverse + "-" + endverse + "; "; processReqChange(loadXMLDocSync("xml/" + book + "-" + chapter + ".xml")); createPassagePermalink(); } function createPassagePermalink() { var r = document.getElementById("result"); var titles = r.getElementsByTagName("h2"); var p = document.getElementById('passage'); p.innerHTML = ""; var t = ""; for (var i = 0; i < titles.length; i++) { var title = titles[i].childNodes[2].innerHTML; t += title + "; "; } p.innerHTML += ""; } function myTraverse(node) { var treeText = ""; if (node != null) { if (node.hasChildNodes()) { if (node.nodeName == "strongs") { // you need to test if this is the OT or NT and set the attribute accordingly. if (testament == "old") { treeText += " " + myTraverse(node.childNodes.item(0)) + ""; } else { treeText += '<' + node.nodeName + '>'; for (var i = 0; i < node.childNodes.length; i++) { treeText += myTraverse(node.childNodes.item(i)); } treeText += ''; } } 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 += "" + Verse.getAttribute("number") + ". "; 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") { // you need to test if this is the OT or NT and set the attribute accordingly. if (testament == "old") { resultText += " " + myTraverse(vNode.childNodes.item(0)) + ""; } } resultText += "
"; } } } result.innerHTML = "

| " + "" + qBookname + " " + qChapter + ":" + qVsStart + "-" + qVsEnd + "

" + resultText + "
" + result.innerHTML; } } }