');
lastbook = book;
lastchapt = chapt;
}
href(item);
}
}
if(stemResearch) searchResults.close();
document.Matches = document.exactMatches.length + document.inexactMatches.length;
return;
}
// Sort by first padding the Chapter and verse numbers,
// then unpad when finished.
function BibleSort(unsortedArray) {
var item = new String();
var sortingArray = new Array();
var sortedArray = new Array();
// Convert BookNames to BookNums so sorting will work
for (item in unsortedArray) {
var colon = item.indexOf(":");
var book = item.substring(0,3);
var chapt = pad(item.substring(4, colon));
var verse = pad(item.substring(colon+1));
sortingArray[sortingArray.length] = BookNums[book]+" "+chapt+":"+verse+"!"+unsortedArray[item];
}
sortingArray.sort();
// Now put it back from BookNums to BookNames
for (item in sortingArray) {
var colon = sortingArray[item].indexOf(":");
var bang = sortingArray[item].indexOf("!");
var book = parseInt(sortingArray[item].substring(0,2), 10);
var chapt = parseInt(sortingArray[item].substring(3, colon), 10);
var verse = parseInt(sortingArray[item].substring(colon+1, bang), 10);
var count = parseInt(sortingArray[item].substring(bang+1), 10);
sortedArray[BookNames[book]+" "+chapt+":"+verse] = count;
}
return sortedArray;
}
//Wrap keywords in tags
function bold(stringToBold) {
for(index=0;indexlink passage
function href(link) {
var colorArray = new Array();
var item = new String();
var wcTest=1;
var colon = link.indexOf(":");
verse = link.substring(colon+1);
wildcard = (document.keywordsArray.join(",").indexOf("\*")+1) ?1:0;
var joinedRegEx = new RegExp("([^a-z]|^)"+document.keywordsArray.join("[^a-z]")+"[^a-z]?", "gi");
// Netscape hack
if (!stemResearch) {
tmpPassage = "";
} else {
tmpPassage = eval("searchResults.Content["+verse+"]");
if(show == 'S' ) {
tmpArray = tmpPassage.split(" ");
for(item in tmpArray)
if(tmpArray[item].search(/^\[[0-9]/) >= 0)
tmpArray[item] = tmpArray[item].replace(/^\[([0-9]+)\]/, '$1');
tmpPassage = tmpArray.join(" ");
}
tmpPassage = bold(tmpPassage);
}
passage = ''+link+' '+tmpPassage;
// joinedRegEx.compile(joinedRegEx);
if(wildcard && browserName != "Netscape" && stemResearch) {
for (item in document.keywordsArray) {
var wildCardTest = new String("([^a-z]|^)"+document.keywordsArray[item].toLowerCase().replace("*", "[a-z-]*"));
var wcRegEx = new RegExp(wildCardTest, "i");
wcTest = wcTest & (wcRegEx.test(tmpPassage))?1:0;
}
if(wcTest){
var joinedRegString = new String("([^a-z]|^)"+document.keywordsArray.join("[^a-z]")+"[^a-z]?");
joinedRegString = joinedRegString.replace("*", "[a-z-]*");
var joinedRegEx = new RegExp(joinedRegString, "gi");
if (joinedRegEx.test(tmpPassage)) {
document.exactMatches[document.exactMatches.length] = link+"!"+passage;
document.ecolorIndex ^= 1;
} else {
document.inexactMatches[document.inexactMatches.length] = link+"!"+passage;
document.iecolorIndex ^= 1;
}
}
} else {
if (joinedRegEx.test(tmpPassage)) {
document.exactMatches[document.exactMatches.length] = link+"!"+passage;
document.ecolorIndex ^= 1;
} else {
document.inexactMatches[document.inexactMatches.length] = link+"!"+passage;
document.iecolorIndex ^= 1;
}
}
return;
}
function preChain(keywords) {
var tmpArray = new Array();
var count = 0;
var item = new String();
for(j=0;j= keywords.length) count++;
chain(keywords, count, 0);
return;
}
//Generate the chain link for the keywords
function chain(theArray, count, exact){
if(theArray.length > 5) {
document.writeln('
'+count+' verse(s) below
');
return -1;
}
if (exact) { document.writeln('
'+theArray.join(" + ")+'
'+count+' verse(s) below
'); }
else { document.writeln('
'+theArray.join(" + ")+'
Click for '+count+' verse(s)
'); }
return;
}
//Generate exact and inexact table rows
function exact(whichPage) {
if (document.exactMatches.length > 0){
var Pages = Math.ceil(document.exactMatches.length/25);
dome = document.getElementById("exact");
someString = '';
if (document.inexactMatches.length > 0) {
someString = '
The word(s) '+document.keywordsArray.join(" ")+' occur in '+document.Matches+' verse(s), including '+document.exactMatches.length+' exact phrase match(es) shown first:
';
} else {
someString = '
The exact phrase of '+document.keywordsArray.join(" ")+' was found in '+document.Matches+' verse(s), shown below: this is the only appearance of these words.
';
}
var first = (whichPage - 1)*25;
var last = whichPage*25-1;
if(last >= document.exactMatches.length) last = document.exactMatches.length -1;
for (i=first;i<=last;i++)
someString += '
';
dome.innerHTML = someString;
}
window.scrollTo(0,0);
return false;
}
//Write out all the verses for the inexact matches
function verses(whichPage) {
if(document.inexactMatches.length > 0) {
var Pages = Math.ceil(document.inexactMatches.length/25);
dome = document.getElementById("verses");
someString = '';
if (document.exactMatches.length > 0) {
someString += '
Here are the '+document.inexactMatches.length+' remaining inexactmatch(es): Page '+whichPage+'
The word(s) '+document.keywordsArray.join(" ")+' occur in '+document.Matches+'verse(s):
';
} else {
someString += '
The word(s) '+document.keywordsArray.join(" ")+' occur in '+document.Matches+'verse(s), None are an exact phrase match:
';
}
var first = (whichPage - 1)*25;
var last = whichPage*25-1;
if(last >= document.inexactMatches.length) last = document.inexactMatches.length -1;
for (i=first;i<=last;i++)
someString += '
Sorry, the words '+document.keywordsArray.join(" ")+' don\'t occur together in the KJV.
';
} else {
someString += '
Sorry, the word '+document.keywordsArray.join(" ")+' does not occur in the KJV.
';
}
}
return false;
}
//Generate the table row for multple pages view
//This can probably be rebuilt to better handle paging
function iePages(whichPage, Pages) {
if (Pages > 1) {
dome = document.getElementById("iePages");
if (browserName == "Netscape") {
someString = '
You are on page '+whichPage+' of '+Pages+'. To view other pages, select page number. (Verse range also shown)
';
} else {
someString = '
You are on page '+whichPage+' of '+Pages+' for inexact matches. To view other pages, select page number. (Verse range also shown)
';
}
someString += '
';
for(thisPage=1;thisPage<=Pages;thisPage++) {
first = (thisPage - 1)*25;
last = thisPage*25-1;
if(last >= document.inexactMatches.length) last = document.inexactMatches.length -1;
if(thisPage == whichPage) {
someString += '
';
dome.innerHTML = someString;
}
window.scrollTo(0,0);
return false;
}
function pad(number) {
if (number < 10){return "00" + number;}
else if (number > 9 && number < 100) {return "0" + number;}
return number;
}
//Collect the keywords from the form
function pNavigate(iepage, epage, keywords) {
document.iePage = iepage;
document.ePage = epage;
document.matchesByName = new Array();
document.exactMatches = new Array();
document.inexactMatches = new Array();
document.keywordCombinations = new Array();
document.closeCalls = new Array();
document.keywordsArray = new Array(); //An array of the words
keywords = keywords.toLowerCase();
keywords = keywords.replace(/%../g, " ");
keywords = keywords.replace(/[^a-zA-Z\'*]+/g, " ");
keywords = keywords.replace(/\s+/g, " ");
keywords = keywords.replace(/\s+$/g, "");
keywords = keywords.replace(/^\s+/g, "");
document.keywordsArray = keywords.split(" ");
if(document.keywordsArray.length>5 && !confirm("More than 5 keywords can take a considerable amount of time to search and can even crash your machine.\n\n Are you feeling brave?")){ return -1; }
if (document.keywordsArray[0] == "" || document.keywordsArray.length == 0) {
document.keywordsArray.length = 1;
document.keywordsArray[0] = "jesus";
}
if(document.keywordsArray.length>5) {
document.keywordsArray = document.keywordsArray.join(" ").replace(/\*/g, "").split(" ");
} else {
for (i=document.keywordsArray.length-1; i>1; i--) document.keywordCombinations = document.keywordCombinations.concat(docomb(document.keywordsArray.length, i));
}
do_temp();
}
function clickShortcut() {
if (window.event.keyCode == 13) { navigate() }
return;
}
function makeArray(n) {
this.length = n
for (var i=0; i <= n; i++)
this[i] = "";
return this
}
function makeArraynum(n) {
this.length = n
for (var i=0; i <= n; i++)
this[i] = 0;
return this
}
function docomb(n, r) {
var p=1
for (var w=1; w <= r-1; w++) { p = (n-w)*p }
p=n*p
var rf=1
for (var w=1; w <= r; w++) { rf = w*rf }
var c=p/rf
var px = new makeArraynum(n);
var v = new makeArray(n);
var result = new Array();
var mark = r;
var v = new Array(" ");
v = v.concat(document.keywordsArray);
var bk = 0;
result[0] = new Array();
for (var k=1; k<=r; k++) {
px[k] = k;
result[0][k-1] = v[px[k]];
}
for (var z=1;z<=c;z++) {
for (var m=1;m<100;m++) {
px[mark]++;
var e=0;
if (px[mark] > n-(r-mark)) {
e=1;
mark--;
if (mark<=0) { return result; }
px[mark]++;
for (k = mark+1; k<=r; k++) {
px[k] = px[k - 1] + 1;
} //end for k
//new mark
bk=0;
for (k = r; k>=mark; k--) {
if (px[k] < n - (r - k) + 1) {
mark = k;
bk=1;
break; //out of k
} //END IF
} //end for k
} // end if (px[mark] > n-(r-mark))
if (bk==1) {
bk=0;
break; //get out of for m
}
if (e==0) {break;} //if miss then goto llb
} //next m
result[z] = new Array();
for (k=1;k<=r;k++) { result[z][k-1] = v[px[k]]; }
var getout = 0;
for (w=1;w<=r;w++) {
if (px[w] != n - (r - w)) {
getout=1;
break;
}
}// end for w
if (getout==0) {break;} //get out of for z
} //end for z
return result;
} //end function
function hrefOpener(thisBook, thisChapt, thisVerse) {
if(browserName != "Netscape" && stemResearch) { M(thisBook, thisChapt, thisVerse); }
else { mV(thisBook, thisChapt, thisVerse); }
return false;
}
function kwOpener(one, two, words) {
page = './phrase_search.html?word='+words;
window.location.href=page;
}
function S_Nav(strongs) {
if(strongs.search(/^0\d/) >=0) {
link = './strongs_hebrew.html?strongs='+strongs+'&page=1';
} else if(strongs.search(/^[0-9]/) >=0) {
link = './strongs_greek.html?strongs='+strongs+'&page=1';
}
strWindow=window.open(link,'strWindow','scrollbars=yes,resizable=yes,width=550,height=600');
strWindow.focus();
return;
}
window.setTimeout("window.focus()",700);
pNavigate(iepage, epage, keywords);