// 
// 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
//
function getGeo(s, dict) 
{
	if (dict == "grk") {
  	if (s >= 6 && s <=2065) {
  		loadXMLDoc("geoxml/geogrk0.xml", processGeo, s);	
  	} else if (s  >= 2074 && s <= 4529) {
  		loadXMLDoc("geoxml/geogrk1.xml", processGeo, s);
  	} else if (s >= 4530 && s <= 5623) {
  		loadXMLDoc("geoxml/geogrk2.xml", processGeo, s);
  	}
	}
	if (dict == "heb") {
		if (s >= 25 && s <= 894) {
  		loadXMLDoc("geoxml/geoheb0.xml", processGeo, s);	
  	} else if (s  >= 895 && s <= 1445) {
  		loadXMLDoc("geoxml/geoheb1.xml", processGeo, s);	
  	} else if (s  >= 1446 && s <= 2482) {
  		loadXMLDoc("geoxml/geoheb2.xml", processGeo, s);	
  	} else if (s  >= 2486 && s <= 3416) {
  		loadXMLDoc("geoxml/geoheb3.xml", processGeo, s);	
  	} else if (s  >= 3427 && s <= 4681) {
  		loadXMLDoc("geoxml/geoheb4.xml", processGeo, s);	
  	} else if (s  >= 4708 && s <= 5735) {
  		loadXMLDoc("geoxml/geoheb5.xml", processGeo, s);	
  	} else if (s  >= 5740 && s <= 6557) {
  		loadXMLDoc("geoxml/geoheb6.xml", processGeo, s);	
  	} else if (s  >= 6578 && s <= 7418) {
  		loadXMLDoc("geoxml/geoheb7.xml", processGeo, s);	
  	} else if (s  >= 7432 && s <= 8603) {
  		loadXMLDoc("geoxml/geoheb8.xml", processGeo, s);	
  	} else if (s  >= 8607 && s <= 8659) {
  		loadXMLDoc("geoxml/geoheb9.xml", processGeo, s);	
		}  	
	}
}
function createMarker(point, text) {
  var marker = new GMarker(point);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(text);
  });
  return marker;
}

function processGeo(xmlObj, strongsNum) {
	// ...processing statements go here...
	var oDict  = xmlObj.documentElement;
	var entries = oDict.getElementsByTagName("i");
	var info = document.getElementById("resultGeoInfo");
	var map = null;
	try {
	if (GBrowserIsCompatible()) {
		for (i=0; i<entries.length; i++) {
			var id = entries.item(i).getAttribute("s");
			if (entries.item(i).getAttribute("s") == myTestament + strongsNum) {
				document.getElementById('resultGeo').style.height = "250px";
				if (map == null) {
					map = new GMap2(document.getElementById("resultGeo"));
					map.addControl(new GSmallMapControl());
					map.addControl(new GMapTypeControl());
				}
				var coords = entries.item(i).getElementsByTagName("coords").item(0).childNodes.item(0).nodeValue;
				var refs  = entries.item(i).getElementsByTagName("refs").item(0).getElementsByTagName("r");
				var refstring = "";
				for (j=0; j<refs.length; j++) {
					var myReference = new Reference(refs.item(j).childNodes.item(0).nodeValue);	
				refstring += "<a href='#' onclick='getVersesByRef(" + myReference.book + ", " + myReference.chapter + ", " +  myReference.startverse + ", " +  myReference.endverse + "); return false;'>" + refs.item(j).childNodes.item(0).nodeValue + "</a>, ";
				}
			
				coords = coords.split(",");
				map.setCenter(new GLatLng(coords[1], coords[0]), 7);
				var point = new GLatLng(coords[1],coords[0]);
				map.addOverlay(createMarker(point, refstring));
				info.innerHTML += "<a href='http://maps.google.com/?q="+coords[1]+","+coords[0]+"'>View location "+coords[1]+","+coords[0]+" on Google Maps</a><br />";
			}
		}
		map.setMapType(G_HYBRID_MAP);
	}
	} catch(ex) {
	
	}
}

function getStrongs(strongsNum, dict) 
{
	strongsNum = strongsNum + "";
	if(strongsNum.search(/(H|G)[0-9]/i) != -1){
		var dict = strongsNum.substring(0,1);
		if (dict.search(/h/i) != -1) {dict="heb";} else {dict="grk";}
		strongsNum = strongsNum.substring(1, strongsNum.length)
	}
	var url = "";
	document.getElementById('resultStrongs').innerHTML = "";
	document.getElementById('strongsCrossRefs').innerHTML = "";
	document.getElementById('resultRmac').innerHTML = "";
	document.getElementById('resultGeoInfo').innerHTML = "";
	document.getElementById('resultGeo').style.height = "0px";
	strongsNum += "";
	var sn = strongsNum.split(" ");
	for (s in sn) {
		if (dict == "heb") {
    		myTestament = "H";
    		url = dict+ parseInt((sn[s]-1)/100) + ".xml";
    		loadXMLDoc("xml/" + url, processStrongs, sn[s]);
    		loadXMLDoc("xml/cr"+url, processStrongsCross, sn[s]);
				document.getElementById('ref').value += "H"+sn[s]+"; ";
		}
		if (dict == "grk") {
    		myTestament = "G";
    		url = dict+ parseInt((sn[s]-1)/100) + ".xml";
    		loadXMLDoc("xml/" + url, processStrongs, sn[s]);
    		loadXMLDoc("xml/cr"+url, processStrongsCross,  sn[s]);
				document.getElementById('ref').value += "G"+sn[s]+"; ";
				// now get the rmac
				getRmac(sn[s]);
		}
		getGeo(sn[s], dict);
	}
	return false;							 
}

function processStrongs(xmlObj, strongsNum) {
	// ...processing statements go here...
	var oDict  = xmlObj.documentElement;
	var entries = oDict.getElementsByTagName("item");
	var sr = document.getElementById('resultStrongs');
	
	for (i=0; i<entries.length; i++) {
		var id = entries.item(i).getAttribute("id");
		if (entries.item(i).getAttribute("id") == myTestament + strongsNum) {
			var eTitle = entries.item(i).getElementsByTagName("title").item(0).childNodes.item(0).nodeValue;
			var eTrans = entries.item(i).getElementsByTagName("transliteration").item(0).childNodes.item(0).nodeValue;
			var nPron  = entries.item(i).getElementsByTagName("pronunciation").item(0);
			var ePron = myTraverse(nPron);
			var nDesc  = entries.item(i).getElementsByTagName("description").item(0);
			var eDesc = myTraverse(nDesc) + "";
			var re = /([hg][0-9]{1,4})/gi;
			eDesc = eDesc.replace(re, "<a href='#' onclick='getStrongs(\"$1\")'>$1</a>");
			sr.innerHTML += "<b>" +  eTrans + " (" + strongsNum + ")</b> - " + ePron + " - " + eTitle + " - " + eDesc + "<br /><br />";
			break;	
		}										
	}
}

function processStrongsCross(xmlObj, strongsNum)	{
	// ...processing statements go here...
	var oDict  = xmlObj.documentElement;
	var entries = oDict.getElementsByTagName("i");
	var scresult = document.getElementById('strongsCrossRefs');
	
	scresult.innerHTML += "<span style='font-size: 10px;'>Words from Webster's 1833 Lexicon</span><h4>Cross References for: #" + strongsNum + "</h4>";
	
	for (i=0; i<entries.length; i++) {
  		if (entries.item(i).getAttribute("id") == myTestament+strongsNum) {
  		var words = entries.item(i).getElementsByTagName("rs");
			var refsHtml = "<div class='scr'>";
			for (j=0; j<words.length; j++) {
				var title = words.item(j).getElementsByTagName("t")[0].firstChild.nodeValue;
  				var refs = words.item(j).getElementsByTagName("r");
   				refsHtml += "<h5>"+title+"</h5>: ";
    			for (m=0; m<refs.length; m++) {
					var ref = refs.item(m).getAttribute("r").split(";");
    		 		refsHtml += "<a href='#' onclick='getVersesByRef(" + ref[0] + ", " + ref[1] + ", " + ref[2] + ", " + ref[2] + ")'>" + bookName(ref[0]) + " " + ref[1] + ":" + ref[2]  + "</a>, ";  
    			}
				refsHtml += "<br /><br />";
			}
			refsHtml += "</div>";
  		scresult.innerHTML += refsHtml;
			break;			 
  		}										
	}
}

