// SEARCHBOX PARSER
// A custom form validation script
// Takes user's typed input and attempts to match with a God name or AKA.
// If only one god can be found whose name or aka matches, alter the
// calling page's form to take us to _deity page instead of _results page.

// Uses name pairs list from the appropriate z_godlist file
// and thus only works for individual pantheons (which is as required).
// This code is more compatible than A-Z and if no Javascript, goes straight to _results
// If nothing ("HERE " is magic word) or gibberish was typed, we go to the search page instead.

// Note: If the user types 3 or more letters, chances are high that only one God will
// match, saving us a database search and hopefully impressing the visitor.

// Contents Copyright 2004 Godchecker/PeterADesigner/SwordfishDesign

function parseSearchBox()
{
typedGod=document.getElementById("fieldgodname").value
if (typedGod!="HERE ")
{

typedGod = typedGod.toLowerCase() ;	// ENSURE TYPED IS LOWER CASE (kill case-sensitive!)

// EXPLODE TYPED NAME
var parseTypedName = typedGod.split ("");
var typedLength = parseTypedName.length ;	//# OF CHARS TYPED (NOTE: MUST DO CODE TO TRUNCATE THIS IF VERY LONG!)

// MERGE A-Z LISTS
var lrawFull=lrawA+lrawB+lrawC+lrawD+lrawE+lrawF+lrawG+lrawH+lrawI+lrawJ+lrawK+lrawL+lrawM+lrawN+lrawO+lrawP+lrawQ+lrawR+lrawS+lrawT+lrawU+lrawV+lrawW+lrawX+lrawY+lrawZ;

var listArray = lrawFull.split("*");	// PUT EACH NAME-AKA PAIR IN A CELL
var listLength = listArray.length-1 ;	//# OF NAME-AKA PAIRS

var saveURLName=1234 ;			//MAGIC NUMBER, USED AS FLAG THE FIRST TIME
var howManyMatches=0 ;
var listcount=0 ;


// GO THROUGH THE GOD LIST
while (listcount<listLength){

var parseListName=listArray[listcount].split("@");	// SPLIT NAME + AKA
var parseListName=parseListName[1].toLowerCase();	// ISOLATE AKA, ENSURE LC
var parseListName=parseListName.split("");	// EXPLODE TO SINGLE LETTERS


// MATCH TYPED NAME TO LIST NAME, LETTER BY LETTER

var foundaMatch="N" ;
var lettercount=0 ;

while (lettercount<typedLength){

if (parseListName[lettercount]==parseTypedName[lettercount]){
foundaMatch="Y" ;
}else{
foundaMatch="N" ;
break;
}

lettercount++ ;
}	// END OF NAME MATCHING, LEAVING FLAG EITHER N OR Y

//}

// IF MATCH FOUND, WE START TO DO STUFF
if (foundaMatch=="Y"){

// IF THIS IS OUR FIRST MATCH, SAVE THE (EXPLODED) CURRENT NAME PAIR FOR NEXT PASS
if (saveURLName==1234){
saveURLName = listArray[listcount].split ("@");
}

// IF WE HAVE A MATCH, IS IT THE SAME URL AS THE FIRST ONE?

var checkURLName = listArray[listcount].split ("@") ;	// GET CURRENT NAME PAIR

// IF CURRENT URL NAME DOESN'T MATCH THE SAVED ONE, AKA IS SIMILAR BUT GODS ARE DIFFERENT
// THEREFORE WE HAVE AT LEAST TWO GODS MATCHED, SO ABORT
if (saveURLName[0]!=checkURLName[0]){
howManyMatches=9876 ;			// TOO MANY GODS
break ;
}
howManyMatches=1 ;			// JUST THE ONE
}


listcount++ ;
}	// END OF GOING THROUGH THE GOD LIST



}	// END OF MAIN SUBFUNCTION (PERFORMED IF STUFF WAS ACTUALLY TYPED)
else{

// ELSE IF NOTHING WAS TYPED, DIDDLE WITH THE URL PAGE STRING TO CALL UP MAIN SEARCH PAGE INSTEAD
document.getElementById("fieldgodname").value = "" ;	// SECOND CELL IS URL NAME
document.getElementById("boxurlpage").name = "_search" ;	// SECOND CELL IS URL NAME
}


// IF ONLY ONE GOD MATCHES THE TYPED LETTERS, GO STRAIGHT TO DEITY PAGE WITH IT
if (howManyMatches==1){

var matchedSingleGodName = saveURLName[0] ;	// USE FIRST URL NAME (DOESN'T ACTUALLY MATTER WHICH)

document.getElementById("boxurlpage").name = "deity" ;			// CHANAGE _results to deity
document.getElementById("boxurlpage").value = matchedSingleGodName ;	// SECOND CELL IS URL NAME
}

}	//END OF MAIN FUNCTION
