/// ChurchPoints.js ///

function clearChurchpoints() {
  //for (var i = 0; i < myFTTMarkers.length; i++) {
  for (var id in myChurchMarkers) {
  	//map.removeOverlay(myFTTMarkers[i])
	if (myChurchMarkers[id] instanceof GMarker) {
	  //alert("key: "+id+" value:"+myFTTMarkers[id]);
		var marker = myChurchMarkers[id];
		marker.hide();
	}
  }
 document.getElementById("churchpts").checked=false;
}

//function get_ChurchPoints(map){
function get_ChurchPoints(){
	//var map = document.getElementById("map");

	if (document.getElementById('churchpts').checked==false) { // hide the layer
		//map.clearOverlays();
		//clearLayers();
		clearChurchpoints();
		return null;
	}

	// Re-display markers already loaded
	for (var id in myChurchMarkers) {
  	//map.removeOverlay(myChurchMarkers[i])
		if (myChurchMarkers[id] instanceof GMarker) {
		  //alert("key: "+id+" value:"+myChurchMarkers[id]);
			var marker = myChurchMarkers[id];
			if (marker.isHidden()) {
				marker.show();
			}
		}
	}

	var mapx = document.getElementById("map_extent").value;
	//var map = document.getElementById("map")
	//var sw = map.getBounds().getSouthWest().toUrlValue(4); 
	//var ne = map.getBounds().getNorthEast().toUrlValue(4);
	var sw = mapx.split(":")[0]; 
	var ne = mapx.split(":")[1];
	var mbr = sw+':'+ne;
	
    //var bounds = new GLatLngBounds(sw, ne);
    var bounds = new GLatLngBounds();
	//var map_url = escape("getchurch_points_xml.php?mbr="+mbr);
	//var map_url = "get_church_points_xml.php?mbr="+mbr;
	
	// GLOBAL PEOPLES SITE: SLOW!
	//var map_url = "gmap/get_xml.php?qURL="+ escape("http://wmap.globalpeoples.net/gmap/church_xml.php?mbr="+mbr);
	
	// GOSPELCOM
	// var map_url = "gmap/church_xml.php?mbr="+mbr; 
	// IE uses cache - add bogus unique URl to force reload
	//GDownloadUrl("/uploads/genxml.php?bogus=" + (new Date()).getTime() ,
	var map_url = "gmap/church_xml.php?mbr="+mbr +"&id="+ (new Date()).getTime(); 


	var t0 = new Date().getTime();
	document.getElementById('statusDIV').innerHTML = "LOADING...";
				
	GDownloadUrl(map_url, function(data) {

	  var baseIcon = new GIcon();
	  baseIcon.iconSize = new GSize(20, 20);
		baseIcon.iconAnchor = new GPoint(10, 10);
		baseIcon.infoWindowAnchor = new GPoint(10, 10);
	  //baseIcon.image = "gmap/icons/2_People_orange.png";
	  baseIcon.image = "gmap/icons/church/5_Church_bright_green.png";
		
	  var xml = GXml.parse(data);
	  var church_points = xml.documentElement.getElementsByTagName("point");
	//alert('after parse');
		  
	  if (church_points.length > 0) {
		document.getElementById("statusDIV").innerHTML = "Church Records found: "+church_points.length;
		//document.getElementById('status_div').innerHTML = church_points.length + " records found";
	  } 
	  else {
		document.getElementById('statusDIV').innerHTML = "Church Records found: 0";
		return null;
	  }
		  var rop='';
		  var rog='';
		  
		  for (var i = 0; i < church_points.length; i++) {  // LOOP THROUGH POINTS XML ELEMENTS
			var oid = church_points[i].getAttribute("oid");
			var ylat = church_points[i].getAttribute("ylat");
			var xlon = church_points[i].getAttribute("xlon");
			var PlaceNam = church_points[i].getAttribute("PlaceNam");
			var TradName = church_points[i].getAttribute("TradName");
			var Denom = church_points[i].getAttribute("Denom");
			var Assembly = church_points[i].getAttribute("Assembly");

			var isLoaded = myChurchMarkers[oid];
			
			if (!isLoaded) {
				var point = new GLatLng(parseFloat(ylat), parseFloat(xlon));
				myChurchMarkers[oid] = new createChurchMarker(oid, point, baseIcon, PlaceNam, TradName, Denom, Assembly, rop,rog);
			}
														
		  }  // END for XML ELEMENTS

		  // Add all Markers
		  //for (var z = 0; z < myChurchMarkers.length; z++) {  // for XML ELEMENTS
		  //for (var i = 0; i < myChurchMarkers[type].length; i++) {
		  for (var id in myChurchMarkers) {
			  
		  // Performance boost to hide all then show?
			if (myChurchMarkers[id] instanceof GMarker) {
			  //alert("key: "+id+" value:"+myChurchMarkers[id]);
				var marker = myChurchMarkers[id];
				map.addOverlay(marker);
				//marker.hide();
			}
			
		  }
		  
		  // Performance boost to hide all then show? NO.
		  /*
		  for (var id2 in myChurchMarkers) {
			if (myChurchMarkers[id2] instanceof GMarker) {
				var marker = myChurchMarkers[id2];
				marker.show();
			}
		  }
		  */
		  

		//var t1 = (new Date()).getTime());
		var t1 = new Date().getTime();
		var secs = ((t1 - t0) / 1000).toFixed(1);
		document.getElementById('statusDIV').innerHTML = church_points.length + " Church points loaded ("+ secs +" secs)";
				
  });  //END GDownloadUrl & END function(data)
} // END function GenerateMap()

//function createChurchMarker(oid, point, baseIcon, rog, rop, rol, TradName, Denom, Population, Religion, Lang, GSEC, jppic) {
function createChurchMarker(oid, point, baseIcon, PlaceNam, TradName, Denom, Assembly, rop,rog) {

  if (TradName != '') {
	  var title_val = TradName;
  }
  else if (Denom != '') {
	  var title_val = Denom;
  }
  else {
	  var title_val = Assembly;
  }
	  
	var marker = new GMarker(point, {icon:baseIcon, title:'"'+ title_val +'"'});
	
	GEvent.addListener(marker, "click", function() {
												 
	      var tabs = [];  // info Tabs container for InfoWindows
		  jpURL = 'http://www.joshuaproject.net';
		  var jpImgSrc = '';
		  jppic = "null";
												 
			if (jppic == "null") {
				jpImgSrc = '<a tip="Send Joshua Project a photo of the '+ TradName +' to display here" href="' + jpURL + '/photoform.php?rog3=TI&amp;rop3=107699" target=\"_blank\">' +
							'<img src="' + jpURL + '/images/peoples.jpg" border="0" height="105"></a><br>'+
							'<div style="color: red;">No Photo Available<br><a href="' + jpURL + 
							'/photoform.php?rog3=TI&amp;rop3=107699" target=\"_blank\">Submit Your Photo </a> </div>';
			} 
			else {
				jpImgSrc = '<img src="' + jpURL + '/profiles/photos/p' + rop +'.jpg' + '" border="0" height="105">' +
						   '<br><b> Image Source: </b><br><a href="http://www.joshuaproject.net/" target=\"_blank\"><b>Joshua Project</b></a>';
			}

			// SETUP ALL TABS
			var htmls = [];
			var tab_labels = [];			
	
			// PeopleGrp Tab		
			tab_labels.push('People');
			pg_html = '<div class="infotab">'+
					    '<b>' + TradName +'</b><br>' + jpImgSrc+
					  '</div>';
			
			htmls.push(pg_html);
			  
			  // Links Tab		
			  tab_labels.push('Links');
			  var links_html = '<div class="infotab">'+
			  					'<strong>People Group: '+ TradName +'</strong><br>' +
								'<a href="http://www.peoplegroups.org/Detail.aspx?PID='+ Denom +'">IMB People Groups</a><br>'+
								'<a href="'+ jpURL +'/peopctry.php?rop3='+ rop +'&rog3=' + rog +'"' + ' target="_blank"> Joshua Project </a><br>' +
								'<a href="http://www.worldmap.org/getpeople.php?ROP_ROG3='+ rop + rog +'"' + ' target="_blank"> WorldMAP People Group</a><br>' +
								'<a href="http://www.worldmap.org/country.php?ROG3='+ rog +'"' + ' target="_blank">WorldMAP Country</a><br>' +
								'<a href="http://www.ethnologue.com/show_language.asp?code='+ rol +'"' + '  target="_blank"> Ethnologue Language</a><br>' +
								'<a href="http://www.peoplegroups.org/login.aspx?ReturnUrl=%2fUpdate.aspx%3fPID%3d'+ Denom +'&PID='+ Denom +'"' + '  target="_blank"><b>Provide People Group Feedback</b></a>'+
								'</div>';
							   
			  htmls.push(links_html);

			  // More Info Tab		
			  tab_labels.push('More Info');
			  var info_html = '<div class="infotab">'+
								'<b style="text-align:center">For more information on the <br>'+ TradName +':</b><br><br>'+
								'<a href="http://www.finishingthetask.com/" target=\"_blank\"><b>Finishing the Task</b></a><br>' +
								'<a href="http://www.peoplegroups.org/" target=\"_blank\"><b>PeopleGroups.org (IMB)</b></a><br>' +
								'<a href="http://www.joshuaproject.net/" target=\"_blank\"><b>Joshua Project.net</b></a><br>' +
								'<a href="http://www.worldmap.org/" target=\"_blank\"><b>World Missions Atlas Project</b></a><br><br>'+
								'<a href="http://www.peoplegroups.org/login.aspx?ReturnUrl=%2fUpdate.aspx%3fPID%3d'+ Denom +'&PID='+ Denom +'"' + '  target="_blank"><b>Provide People Group Feedback</b></a>'+
								'</div>';
								
			  htmls.push(info_html);
			  
				// Create Tabbed Info Window
			  for (var j=0; j < htmls.length; j++) {
				//htmls[j] = '<div class=infowindow style="text-align:left; height: 285px; width:'+htmls.length*88+'px">' + htmls[j] + '</div>';
				//position: absolute; left: -15px; top: 10px; width: 200px; height: 160px;
				//htmls[j] = '<div class=infowindow style="position: absolute; left: -5px; top: 2px; right: 10px; text-align:left; height: 180px; width: 140px">' + htmls[j] + '</div>';
				htmls[j] = '<div class="infowindow">' + htmls[j] + '</div>';
				tabs.push(new GInfoWindowTab(tab_labels[j],htmls[j]));
				
			  }

		//marker.openInfoWindowHtml(church_html);
		marker.openInfoWindowTabsHtml(tabs);

// adjust the width so that the info window is large enough for this many tabs
	  /*
	  if (htmls.length > 2) {
		//htmls[0] = '<div class=infowindow style="text-align:left; width:'+htmls.length*92+'px">' + htmls[0] + '</div>';

		  var tabs = [];
		  for (var i=0; i<htmls.length; i++) {
			htmls[i] = '<div class=infowindow style="text-align:left; height: 285px; width:'+htmls.length*88+'px">' + htmls[i] + '</div>';
			tabs.push(new GInfoWindowTab(tab_labels[i],htmls[i]));
		}
		  marker.openInfoWindowHtml(tabs);
	  }
	  */
	  
	});
	return marker;

}

//end of church code

