/// RPPpoints.js ///


///////// GET ALL LANG/PEOPLE GRP POINTS ////////////
function get_LangPGPoints(q_type, q_value){
	showLoading(true);	
	getMapExtent(map);
	var zLevel = map.getBoundsZoomLevel(map.getBounds());  
	var rog = document.getElementById("rog_id").name;
  	var map_type; 
	var bounds = new GLatLngBounds();

	// GET CURRENT MAP EXTENT
	var mapx = document.getElementById("map_extent").value;
	var sw = mapx.split(":")[0]; 
	var ne = mapx.split(":")[1];
	var mbr = sw+':'+ne;
	  	
	// IF MAP_INIT VALUES GIVEN - GO STRAIGHT TO LANG/PG POLYGON
	if (q_type == 'lang') {
		var rol = q_value;
		var rol = rol.toLowerCase();
		map_type = 'lang';
		var color1 = '#0000FF';
		var color2 = '#FF00FF';
	}
	else if (q_type == 'pg') {
		var rop = q_value;
		map_type = 'pg';
		var color1 = '#FF0000';
		var color2 = '#0000FF';
	}
	
	else {
	
		var mapentity = document.getElementById("mapentity");
		var mapclass = mapentity.className;
		
		if (mapclass == 'sel_rol') {
			var entname = mapentity.name;
			var rol = mapentity.value;
			var rol = rol.toLowerCase();
			map_type = 'lang';
		}
		else if (mapclass == 'sel_pg') {
			var entname = mapentity.name;
			var rop = mapentity.value;
			map_type = 'pg';
		}
		
		if (mapentity.value.length < 3) {return;}
	}
		
	//var lang_url_gc = "gmap/RPPtest6_xml.php?rol="+rol+"&rog="+rog+"&mbr="+mbr;
	//var pg_url_gc = "gmap/RPPtest6_xml.php?rop="+rop+"&rog="+rog+"&maptype=pts"+"&mbr="+mbr;
	var lang_url_ix = "gmap/get_xml.php?qURL="+ escape("http://wmap.globalpeoples.net/gmap/RPPpointsIX4_xml.php?rol="+rol+"&rog="+rog+"&mbr="+mbr+"&z="+zLevel);
	var pg_url_ix = "gmap/get_xml.php?qURL="+ escape("http://wmap.globalpeoples.net/gmap/RPPpointsIX4_xml.php?rop="+rop+"&rog="+rog+"&mbr="+mbr+"&z="+zLevel);

	var lang_url_gc = "gmap/RPPpoints_xml.php?rol="+rol+"&rog="+rog+"&mbr="+mbr;
	var pg_url_gc = "gmap/RPPpoints_xml.php?rop="+rop+"&rog="+rog+"&maptype=pts"+"&mbr="+mbr;
	

	// SET URL FOR DATA FETCH
	if (map_type == 'lang') {
		//var map_url = lang_url_gc
		var map_url = lang_url_ix
	} else {
		//var map_url = pg_url_gc
		var map_url = pg_url_ix
	}

	var htm = 'LOADING POINTS ... (please be patient - searching about 3 million records)' ;
	document.getElementById("statusDIV").innerHTML = htm; // 
	var t0 = new Date().getTime();
	var points=[];

	GDownloadUrl(map_url, function(data) {
		showLoading(true);	
		var xml = GXml.parse(data);
		points = xml.documentElement.getElementsByTagName("point");
		
		document.getElementById("statusDIV").innerHTML = 'PROCESSING POINTS...'; // 
		
		  if (points.length > 0) {
			document.getElementById("statusDIV").innerHTML = "Point locations found: "+points.length ; // 
			//document.getElementById("statusDIV").innerHTML = "Language: "+ langname + "  <br>ROL: "+ lang.value +"<br> Records found: "+polys.length ; // 
			/*if (points.length > maxPts) {
			  //document.getElementById("statusDIV").innerHTML = "MAX NUMBER OF RECORDS ALLOWED: "+maxPts+ "<br>Point locations found: "+points.length ; // 
			  //document.getElementById("statusDIV").innerHTML = "MAX NUMBER OF RECORDS ALLOWED: "+points.length; // 
			} 
			else {
			  document.getElementById("statusDIV").innerHTML = "Point locations found: "+points.length ; // 
			}
			*/
		  } 
		  else {
			document.getElementById("statusDIV").innerHTML = "NO POINTS FOUND.."; // 
			//alert('No match found');
			errflag = true;
			return null;
		  }
	  		  
  
		  var tmp_pg_html = points[0].getAttribute("pg_html");  
		  pg_html = parseToXML(tmp_pg_html);
		  
		  var gIcons = [];
		  //var myLangPGMarkers = [];
		  
		  //var maxPts = 100;
			
		  for (var i = 0; i < points.length; i++) {  // for XML ELEMENTS 
			document.getElementById("statusDIV").innerHTML = 'OVERLAYING POINTS...'; // 
		  //for (var i = 0; i < maxPts; i++) {  
			var oid = points[i].getAttribute("pt_id");
			var lat = points[i].getAttribute("lat");
			var lon = points[i].getAttribute("lon");
			var rol3 = points[i].getAttribute("lang_id");
			var prob = points[i].getAttribute("prob");
			var lang_id = points[i].getAttribute("lang_id");
			var placename = points[i].getAttribute("placename");
			//var province = points[i].getAttribute("province");
			//var country = points[i].getAttribute("country");
			var pop_str = points[i].getAttribute("population");
			var population = pop_str;
			/*
				if (parseInt(pop_str,10) > 0) {
					var population = pop_str;
				} else {
					//var population = "unknown (<a href='gmap/digitizer/update.php?ROG3="+ rog +"&p_ext="+p_ext+ " target=\"_blank\">submit info</a>)";
					var population = "unknown (<a target=\"_blank\" href='gmap/digitizer/update.php?ROG3="+ rog +"&p_ext="+p_ext+ ">submit info</a>)";
				}
			*/
				
			//var pop_source = points[i].getAttribute("pop_source");
			//var pop_source = "unknown";
			//var prob = points[i].getAttribute("prob");
			//var popentid = points[i].getAttribute("popentid");
			//var pg_html = points[i].getAttribute("pg_html");
      		//bounds.extend(new GLatLng(lat,lon));
			
			var isLoaded = myLangPGMarkers[id];				
			if (!isLoaded) {
				var point = new GLatLng(parseFloat(lat), parseFloat(lon));
				//bounds.extend(point);

				var theMarker = new createLangPGMarker(point, oid, rol3, prob, placename, population);
				//var theMarker = createLangPGMarker(point, prob, placename, population);
				myLangPGMarkers[oid] = theMarker;
			}
						
		  }  // END for XML ELEMENTS

		  // Add all Markers
		  //alert("marker count: "+myLangPGMarkers.length);
		  //for (var z = 0; z < myLangPGMarkers.length; z++) {  // for XML ELEMENTS
		  //  map.addOverlay(myLangPGMarkers[z]);
		  //}
		  				  
		  for (var id in myLangPGMarkers) {
			 if (myLangPGMarkers[id] instanceof GMarker) {
				var marker = myLangPGMarkers[id];
				map.addOverlay(marker);
			 }
		  }

	  //map.setZoom(map.getBoundsZoomLevel(bounds));
	  //map.setCenter(bounds.getCenter());  
	  
	  ////GLog.write('num markers: '+ myLangPGMarkers.length );  

		  /*
		  for (var id in myLangPGMarkers) {
			 if (myLangPGMarkers[id] instanceof GMarker) {
				var isLoaded = myLangPGMarkers[id];				
				if (!isLoaded) {
				 //GLog.write('isLoaded: false'+'('+id+')');
					var marker = myLangPGMarkers[id];
					map.addOverlay(marker);
				}
				else {//GLog.write('isLoaded: true'+'('+id+')');}
			 }
		  }
		  */
		var t1 = new Date().getTime();
		var secs = ((t1 - t0) / 1000).toFixed(1);
		document.getElementById('statusDIV').innerHTML = points.length + " RPP points loaded ("+ secs +" secs)";
		showLoading(false);	
		
		});  //END GDownloadUrl & END function(data)
	
	showLoading(false);	

} // END GeneratePtsMap()


 //function createLangPGMarker(point, baseIcon, likelihood, html) 
function createLangPGMarker(point, oid, rol3, likelihood, placename, population) {

	theIcon = getLangPGIconImage(likelihood, population);
	var marker = new GMarker(point, {icon:theIcon, title:'"'+ placename +'"'});

	GEvent.addListener(marker, "click", function() {	  
		var t0 = new Date().getTime();
		//var oid_url = "gmap/RPPpoints_xml.php?oid="+oid; 
		var oid_url = "gmap/get_xml.php?qURL="+ escape("http://wmap.globalpeoples.net/gmap/RPPpointsIX4_xml.php?flag=1&oid="+oid+'&rol3='+rol3);
		//var oid_url = "gmap/RPPpoints_xml.php?oid="+oid; 
		document.getElementById('statusDIV').innerHTML = "LOADING ...";
	
		GDownloadUrl(oid_url, function(data) {
					
		  var oid_xml = GXml.parse(data);
		  var RPP_data = oid_xml.documentElement.getElementsByTagName("point");
			  
		  if (RPP_data.length > 0) {
			var t1 = new Date().getTime();
			var secs = ((t1 - t0) / 1000).toFixed(1);
			document.getElementById("statusDIV").innerHTML = RPP_data.length +" record loaded ("+ secs +" secs)";
		  } 
		  else {
			document.getElementById('statusDIV').innerHTML = "TAB Records found: 0";
			return null;
		  }
			

			// SETUP ALL TABS
			var tabs = [];  // info Tabs container for InfoWindows
			var tab_labels = [];			
			var htmls = [];
					
			  for (var i = 0; i < RPP_data.length; i++) {  // LOOP THROUGH TABS XML ELEMENTS
				var oid = RPP_data[i].getAttribute("oid");  // needed to manage these marker points
				
					//var province = points[i].getAttribute("province");
					//var country = points[i].getAttribute("country");
					//var pop_str = points[i].getAttribute("population");

				// Location Tab		
				tab_labels.push('Location');    
				var html = RPP_data[i].getAttribute("loc_html"); 
			    html = parseToHTML(html);
				htmls.push(html);
				
				// Missions Tab		
				tab_labels.push('Linguistic');
				var html = RPP_data[i].getAttribute("mis_html"); 
			    html = parseToHTML(html);
				htmls.push(html);
						
				// Cultural Tab		
				tab_labels.push('Cultural');
				var html = RPP_data[i].getAttribute("cul_html"); 
			    html = parseToHTML(html);
				htmls.push(html);
				
				
			  }
					  
				// Create Tabbed Info Window
			  for (var j=0; j < htmls.length; j++) {
				//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" style="width:440px">' + htmls[j] + '</div>';
				tabs.push(new GInfoWindowTab(tab_labels[j],htmls[j]));
				
			  }
		
		  marker.openInfoWindowTabsHtml(tabs);
		  //////// TRY THIS ONE SOMETIME:  ////////////
		  // GMarker.openExtInfoWindow(map, cssId, html, opt_opts)
		 });  // END GDownloadUrl(oid_url
		  
	});  // END GEvent.addListener(click)

	return marker;
} // END function createLangPGMarker


function getLangPGIconImage(likelihood, population) 
 {
/*
var baseIcon = new GIcon();
baseIcon.iconSize = new GSize(10, 16);
baseIcon.iconAnchor = new GPoint(6, 20);
baseIcon.infoWindowAnchor = new GPoint(5, 1);
baseIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
baseIcon.shadowSize = new GSize(18, 14);
*/
	var iSize;
	//var d = "gmap/icons/rpp/";
    var d = "gmap/icons/";  // directory for icons
	var myIcon = new GIcon();
		myIcon.iconSize = new GSize(10, 16);
		myIcon.iconAnchor = new GPoint(6, 20);
		myIcon.infoWindowAnchor = new GPoint(5, 1);
		myIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		myIcon.shadowSize = new GSize(18, 14);

	var likelihood = parseInt(likelihood,10);  // convert to base 10 INT
    var pop_value = parseInt(population,10);  // convert to base 10 INT
	//alert('% :'+ likelihood +'\nPop: '+pop_value);

	if (population == 0) {
		iSize = 10;
	}
	else if (population > 0 && population < 50000) {
		iSize = 12;
	}
	else if (population > 50000 && population < 100000) {
		iSize = 14;
	}
	else if (population > 100000 && population < 250000) {
		iSize = 16;
	}
	else if (population > 250000 && population < 500000) {
		iSize = 18;
	}
	else if (population > 500000 && population < 1000000) {
		iSize = 20;
	}
	else if (population > 1000000 && population < 10000000) {
		iSize = 22;
	}
	else if (population > 10000000) {
		iSize = 24;
	}
	else {
		iSize = 40;
	}	

// SCALE ICON SIZE BY POPULATION
	//myIcon.iconSize = new GSize(iSize, (parseInt(iSize * 1.60, 10)));
	//myIcon.iconAnchor = new GPoint(parseInt(iSize * 0.40, 10), iSize * 2);
	//myIcon.infoWindowAnchor = new GPoint(iSize / 2, 1);

/*
	if (likelihood > 90) {
	  myIcon.image = d+"1_SGE_red.png";
	}
	else if (likelihood > 80) {
	  myIcon.image = d+"1_SGE_red.png";
	}
	else if (likelihood > 70) {
	  myIcon.image = d+"2_SGE_orange.png";
	}
	else if (likelihood > 60) {
	  myIcon.image = d+"3_Langs_yellow.png";
	}
	else if (likelihood > 50) {
	  myIcon.image = d+"4a_SGE_bright_green.png";
	}
	else if (likelihood > 40) {
	  myIcon.image = d+"5a_SGE_lt_green.png";
	}
	else if (likelihood > 30) {
	  myIcon.image = d+"6_SGE_dk_green.png";
	}
	else if (likelihood > 20) {
	  myIcon.image = d+"6_SGE_dk_green.png";
	}
	else if (likelihood > 10) {
	  myIcon.image = d+"7_SGE_purple.png";
	}
	else if (likelihood > 0) {
	  myIcon.image = d+"0_SGE_dk_red.png";
	}
	else {
	  myIcon.image = d+"10.png";
	}
*/
	if (likelihood > 90) {
	  myIcon.image = d+"100.png";
	}
	else if (likelihood > 80) {
	  myIcon.image = d+"90.png";
	}
	else if (likelihood > 70) {
	  myIcon.image = d+"80.png";
	}
	else if (likelihood > 60) {
	  myIcon.image = d+"70.png";
	}
	else if (likelihood > 50) {
	  myIcon.image = d+"60.png";
	}
	else if (likelihood > 40) {
	  myIcon.image = d+"50.png";
	}
	else if (likelihood > 30) {
	  myIcon.image = d+"40.png";
	}
	else if (likelihood > 20) {
	  myIcon.image = d+"30.png";
	}
	else if (likelihood > 10) {
	  myIcon.image = d+"20.png";
	}
	else if (likelihood > 0) {
	  myIcon.image = d+"10.png";
	}
	else {
	  //myIcon.image = d+"10.png";
	  myIcon.image = d+"shaded_dot.png";
	}

return myIcon;

} // end getLangPGIconImage


/////////////////////  GET ALL RPP POINTS FOR CURRENT MAP WINDOW /////////////////////////////

function get_RPPPoints(radio_id){
	showLoading(true);

//zLevel = document.getElementById('zoomLevel').value;
	//var zm = map.getBoundsZoomLevel(map.getBounds());  
	var zLevel = map.getBoundsZoomLevel(map.getBounds());  

	
	//alert("what: "+radio_id);
	//id= christ, jfilm, bible;
	maptype = radio_id;

	var radio_input = document.getElementById(radio_id);
	radio_input.disabled=false;
	radio_input.checked=true;
	
	//  DISABLE OTHER RPP RADIO BUTTONS
	var theRadios = document.getElementsByName("RPP_Radios");
	
	for (r=0; r < theRadios.length; r++) {
		//alert(' this-radio-id: '+theRadios[r].id);
		//if (theRadios[r].disabled==true) { 
		if (theRadios[r].id != radio_id) { 
			//alert('disable this: '+theRadios[r].id);
			theRadios[r].disabled=true;
		} else {
			//alert('DONT disable this: '+theRadios[r].id);
		}
	}

	// CURRENT MAP REDRAW - OR DRAW NEW MAPTYPE
	var currentMap = document.getElementById(radio_id).value;
	//alert('currentMap: '+currentMap);
	
	var makeNewMap = (maptype != currentMap);
	//alert('maptype not equal currentMap:: \n'+ makeNewMap);
	
	//var maptype = radio_id;
	//alert('selected maptype is: '+maptype);
	
	document.getElementById(radio_id).value = maptype;
	currentMap = document.getElementById(radio_id).value;
	//alert('maptype is now: '+currentMap);
	
	//var m = (maptype == currentMap);
	//alert('maptype :'+maptype+'\ncurrentMap: '+currentMap);
	
	
	//if (maptype.toString() == currentMap.toString()) {
	if (!makeNewMap) {
	//alert(' Redisplay same markers');
	// Re-display markers already loaded
		for (var id in myRPPMarkers) {
		//map.removeOverlay(myRPPMarkers[i])
			if (myRPPMarkers[id] instanceof GMarker) {
			  //alert("key: "+id+" value:"+myRPPMarkers[id]);
				var marker = myRPPMarkers[id];
				if (marker.isHidden()) {
					marker.show();
				}
			}
		}
	}
	// New Map - Clear Markers. Leave radio enabled? Free memory used for this object???
	else {  // MAKE NEW MAP
	//alert('Create new Maptype:: \n'+ maptype);
		clearRPPPoints(reset_all = false);
		//myRPPMarkers = { "-1" : 0 };
	}

	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();
	
	// GLOBAL PEOPLES SITE: SLOW!
	//var map_url = "gmap/get_xml.php?qURL="+ escape("http://wmap.globalpeoples.net/gmap/RPPpointsIX4_xml.php?mbr="+mbr);
	
	// GOSPELCOM
	// var map_url = "gmap/RPPpointsIX4_xml.php?mbr="+mbr; 
	// IE uses cache - add bogus unique URl to force reload
	// EXAMPLE - FORCE CACHE RELOAD: GDownloadUrl("/uploads/genxml.php?bogus=" + (new Date()).getTime() ,
	//var map_url = "gmap/RPPpointsIX4_xml23.php?mbr="+mbr +"&mtype="+ maptype +"&id="+ (new Date()).getTime(); 
	
	//var map_url = "gmap/RPPpointsIX4_xml23.php?mbr="+mbr +"&mtype="+ maptype +"&z="+ zLevel +"&id="+ (new Date()).getTime(); 
	//var map_url = "gmap/RPPpointsIX4_xml23.php?mbr="+mbr +"&mtype="+ maptype +"&z="+ zLevel; 
	var map_url = "gmap/get_xml.php?qURL="+ escape("http://wmap.globalpeoples.net/gmap/RPPpointsIX4_xml.php?mbr="+mbr+"&z="+zLevel);

	var t0 = new Date().getTime();
	var htm = 'LOADING POINTS ... (please be patient - searching about 3 million records)' ;
	document.getElementById('statusDIV').innerHTML = htm;
	
	GDownloadUrl(map_url, function(data) {
				
	  var xml = GXml.parse(data);
	  var RPP_points = xml.documentElement.getElementsByTagName("point");
	  
	  document.getElementById("statusDIV").innerHTML = 'PROCESSING POINTS...'; 
		
	  if (RPP_points.length > 0) {
		document.getElementById("statusDIV").innerHTML = "RPP Records found: "+RPP_points.length;
		//document.getElementById('status_div').innerHTML = RPP_points.length + " records found";
	  } 
	  else {
		document.getElementById('statusDIV').innerHTML = "RPP Records found: 0";
		showLoading(false);
		return null;
	  }
		

		  for (var i = 0; i < RPP_points.length; i++) {  // LOOP THROUGH POINTS XML ELEMENTS
			document.getElementById("statusDIV").innerHTML = 'OVERLAYING POINTS...'; // 
			
			var oid = RPP_points[i].getAttribute("pt_id");  // needed to manage these marker points
			var lat = RPP_points[i].getAttribute("lat");
			var lon = RPP_points[i].getAttribute("lon");
			var PlaceName = RPP_points[i].getAttribute("placename");
			var Population = RPP_points[i].getAttribute("population");
			var RPP = RPP_points[i].getAttribute("RPP");
			if (maptype == "bible") {
				bible = RPP_points[i].getAttribute("bible");
				nt = RPP_points[i].getAttribute("nt");
				portion = RPP_points[i].getAttribute("portion");
			}	
			if (maptype == "jfilm") {
				jfilm = RPP_points[i].getAttribute("jfilm");
			}	
		
			
			var isLoaded = myRPPMarkers[oid];
			
			if (!isLoaded) {
				var point = new GLatLng(parseFloat(lat), parseFloat(lon));
			////GLog.write("Marker not loaded - create one: id: "+ oid + "  "+ lat +"  "+ lon);

				var theMarker = new createRPPMarker(oid, point, PlaceName, Population, RPP, maptype);
				myRPPMarkers[oid] = theMarker;
			}
			else { 
				//GLog.write("Marker already loaded?  "+oid + "  "+ lat +"  "+ lon );
			}
			
		  }  // END for XML ELEMENTS

		  
		  for (var id in myRPPMarkers) {
		  // Performance boost to hide all then show?
			if (myRPPMarkers[id] instanceof GMarker) {
			  //alert("key: "+id+" value:"+myRPPMarkers[id]);
				var marker = myRPPMarkers[id];
			//GLog.write("adding marker: "+id);
				map.addOverlay(marker);
				//marker.hide();
			}
		  }
		  		  
		var t1 = new Date().getTime();
		var secs = ((t1 - t0) / 1000).toFixed(1);
		document.getElementById('statusDIV').innerHTML = RPP_points.length + " RPP points loaded ("+ secs +" secs)";

//alert('theMarker: '+theMarker);
//return null;
	showLoading(false);
	
  });  //END GDownloadUrl & END function(data)
} // END function GenerateMap()


// BIBLE: var theMarker = new createRPPMarker(oid, point, PlaceName, Population, RPP, maptype, bible, nt, portion);
function createRPPMarker(oid, point, PlaceName, Population, RPP, maptype) {
	//alert('inside RPP marker');
	//GLog.write('inside RPP marker');
	
	//theIcon = getRPPIconImage(RPP, Population, maptype);
	theIcon = getRPPIconImage(Population);
	var marker = new GMarker(point, {icon:theIcon, title:'"'+ PlaceName +'"'});
	
	GEvent.addListener(marker, "click", function() {		  

		//var oid_url = "gmap/RPPpointsIX4_xml23.php?oid="+oid; 
		var oid_url = "gmap/get_xml.php?qURL="+ escape("http://wmap.globalpeoples.net/gmap/RPPpointsIX4_xml.php?flag=1&oid="+oid);
		
		document.getElementById('statusDIV').innerHTML = "LOADING tab...";
	
		GDownloadUrl(oid_url, function(data) {
					
		  var oid_xml = GXml.parse(data);
		  var RPP_data = oid_xml.documentElement.getElementsByTagName("point");
			  
		  if (RPP_data.length > 0) {
			document.getElementById("statusDIV").innerHTML = "TAB Records found: "+RPP_data.length;
		  } 
		  else {
			document.getElementById('statusDIV').innerHTML = "TAB Records found: 0";
			return null;
		  }
			

			// SETUP ALL TABS
			var tabs = [];  // info Tabs container for InfoWindows
			var tab_labels = [];			
			var htmls = [];
					
			  for (var i = 0; i < RPP_data.length; i++) {  // LOOP THROUGH TABS XML ELEMENTS
				var oid = RPP_data[i].getAttribute("oid");  // needed to manage these marker points
				
				// Location Tab		
				tab_labels.push('Location');    
				var html = RPP_data[i].getAttribute("loc_html"); 
			    html = parseToHTML(html);
				htmls.push(html);
				
				// Missions Tab		
				tab_labels.push('Linguistic');
				var html = RPP_data[i].getAttribute("mis_html"); 
			    html = parseToHTML(html);
				htmls.push(html);
						
				// Cultural Tab		
				tab_labels.push('Cultural');
				var html = RPP_data[i].getAttribute("cul_html"); 
			    html = parseToHTML(html);
				htmls.push(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" style="width:440px">' + htmls[j] + '</div>';
				tabs.push(new GInfoWindowTab(tab_labels[j],htmls[j]));
				
			  }
		
		  marker.openInfoWindowTabsHtml(tabs);
		 });  // END GDownloadUrl(oid_url
		  
	});  // END GEvent.addListener

	return marker;
} // END function createRPPMarker


//function getRPPIconImage(RPPstatus, population, maptype) 
function getRPPIconImage(population) 
 {

//GLog.write("getting icon image: Status: "+RPPstatus);
//GLog.write("population: "+population);
//GLog.write("maptype: "+maptype);

	//var d = "gmap/icons/RPP/";
    var d = "gmap/icons/";  // directory for icons
	var myIcon = new GIcon();
    //var status = parseInt(RPPstatus,10);  // convert to base 10 INT
	
	if (population  == 0) {
		myIcon.iconSize = new GSize(10, 10);
		myIcon.iconAnchor = new GPoint(5, 5);
		myIcon.infoWindowAnchor = new GPoint(5, 5);
		//alert('pop 0');
	}
	else if (population > 0 && population < 50000) {
		myIcon.iconSize = new GSize(14, 14);
		myIcon.iconAnchor = new GPoint(7, 7);
		myIcon.infoWindowAnchor = new GPoint(7, 7);
		//alert('pop < 50000');
	}
	else if (population > 50000 && population < 100000) {
		myIcon.iconSize = new GSize(18, 18);
		myIcon.iconAnchor = new GPoint(9, 9);
		myIcon.infoWindowAnchor = new GPoint(9, 9);	
		//alert('pop < 100000');
	}
	else if (population > 100000 && population < 250000) {
		myIcon.iconSize = new GSize(22, 22);
		myIcon.iconAnchor = new GPoint(11, 11);
		myIcon.infoWindowAnchor = new GPoint(11, 11);	
		//alert('pop < 250000');
	}
	else if (population > 250000 && population < 500000) {
		myIcon.iconSize = new GSize(26, 26);
		myIcon.iconAnchor = new GPoint(13, 13);
		myIcon.infoWindowAnchor = new GPoint(13, 13);	
	}
	else if (population > 500000 && population < 1000000) {
		myIcon.iconSize = new GSize(34, 34);
		myIcon.iconAnchor = new GPoint(17, 17);
		myIcon.infoWindowAnchor = new GPoint(17, 17);	
	}
	else if (population > 1000000 && population < 10000000) {
		myIcon.iconSize = new GSize(38, 38);
		myIcon.iconAnchor = new GPoint(19, 19);
		myIcon.infoWindowAnchor = new GPoint(19, 19);	
	}
	else if (population > 10000000) {
		myIcon.iconSize = new GSize(42, 42);
		myIcon.iconAnchor = new GPoint(21, 21);
		myIcon.infoWindowAnchor = new GPoint(21, 21);	
	}
	else {
		myIcon.iconSize = new GSize(10, 10);
		myIcon.iconAnchor = new GPoint(5, 5);
		myIcon.infoWindowAnchor = new GPoint(5, 5);
		//alert('pop??? :  ',population);
	}	
  // SET ALL RPP BASIC PLACENAMES TO SAME ICON, SIZED BY POP
  myIcon.image = d+"shaded_dot.png";

//alert('population: '+ population);

	/*
	switch(status)
	{
	case 0:
		myIcon.image = d+"0_SGE_dk_red.png";
		break;    
	case 1:
		myIcon.image = d+"1_SGE_red.png";
		break;    
	case 2:
		myIcon.image = d+"2_SGE_orange.png";
		break;
	case 3:
	  myIcon.image = d+"3_Langs_yellow.png";
	  break;    
	case 4:
	  myIcon.image = d+"4a_SGE_bright_green.png";
	  break;    
	case 5:
	  myIcon.image = d+"5a_SGE_lt_green.png";
	  break;    
	case 6:
	  myIcon.image = d+"6_SGE_dk_green.png";
	  break;    
	case 7:
	  myIcon.image = d+"7_SGE_purple.png";
	  break;    
	case -1:
		myIcon.iconSize = new GSize(26, 26);
		myIcon.iconAnchor = new GPoint(13, 13);
		myIcon.infoWindowAnchor = new GPoint(13, 13);	
	  myIcon.image = d+"shaded_dot.png";
	  break;    
	default:
		myIcon.iconSize = new GSize(22, 22);
		myIcon.iconAnchor = new GPoint(11, 11);
		myIcon.infoWindowAnchor = new GPoint(11, 11);	
	  myIcon.image = d+"shaded_dot.png";
	}
	*/

return myIcon;

} // END fcn CREATEMARKER

function clearRPPPoints(reset_all) {  // HIDE ALL RPP MARKERS
  for (var id in myRPPMarkers) {
  	//map.removeOverlay(myRPPMarkers[i])
	if (myRPPMarkers[id] instanceof GMarker) {
	  //alert("key: "+id+" value:"+myRPPMarkers[id]);
		var marker = myRPPMarkers[id];
		//marker.hide();
		map.removeOverlay(marker);
		myRPPMarkers[id] = null;
	}
  }
  
  //myRPPMarkers = { "-1" : 0 };
 //document.getElementById(radio_id).disabled=true	
 //alert("reset = "+reset_all);

	if (reset_all) {
		var theRadios = document.getElementsByName("RPP_Radios");
		for (r=0; r < theRadios.length; r++) {
			//document.getElementById(radio_id).disabled=true
			theRadios[r].disabled=true;
		}
	}
	
//document.getElementById(radio_id).checked=false;
 //document.getElementById(radio_id).blur();

}

// Removes XML special chars - convert to plain HTML
function parseToHTML(xmlStr) { 
	//alert("1in rpppoints.js");
//alert(xmlStr);

	/*htmlStr=xmlStr.replace('&lt;', '<', "gm"); 
	htmlStr=htmlStr.replace('&gt;', '>', "gm"); 
	htmlStr=htmlStr.replace('&quot;', '"', "gm"); 
	htmlStr=htmlStr.replace('&apos;', "'", "gm"); 
	htmlStr=htmlStr.replace('&amp;', '&', "gm");*/
	
	//The above lines are commented and below code is added by Suresh on 9/1/2008

	/*htmlStr=xmlStr.replace(/\&lt;/g,'\<', "gm");
	htmlStr=htmlStr.replace(/\&gt;/g,'\>', "gm");
	htmlStr=htmlStr.replace(/\&quot;/g,'\"', "gm");
	htmlStr=htmlStr.replace(/\&apos;/g,'\'', "gm");
	htmlStr=htmlStr.replace(/\&amp/g,'\&', "gm");*/

	/*htmlStr=xmlStr.replace(/&#38/,' ', "gm");
	htmlStr=htmlStr.replace(/&lt;/,'<', "gm");
	htmlStr=htmlStr.replace(/&gt;/,'>', "gm");
	htmlStr=htmlStr.replace(/&quot;/,'"', "gm");
	htmlStr=htmlStr.replace(/&apos;/,'\'', "gm");
	htmlStr=htmlStr.replace(/&amp;/,'&', "gm");
	htmlStr=htmlStr.replace(/&/,' ', "gm");*/

	//var xmlStr1=xmlStr+"Yes";
	//alert("before1:\n"+xmlStr1);
	htmlString = xmlStr.split("&lt;").join("<");
    htmlString = htmlString.split("&gt;").join(">");
    htmlString = htmlString.split("&quot;").join("\"");
    htmlString = htmlString.split("&apos;").join("\'");
	htmlString = htmlString.split("&amp").join("\&");
	htmlString = htmlString.split("(submit info)").join(" ");//Remove submitinfo link 
	htmlString = htmlString.split("Population").join("Country Pop");//This is added by Suresh on 9/30/2008 for rename field name
	//htmlString = htmlString.split("Yes").join("<a href='http://jesusfilm.org/languages/index.html' target='_blank'>YES</a>");
	//alert("after:\n"+htmlString);
 return htmlString; 
}

// Convert to plain XML special chars
function parseToXML(xmlStr) { 
	//alert("2in rpppoints.js");
	htmlStr=xmlStr.replace('&lt;', '<', "gm"); 
	htmlStr=htmlStr.replace('&gt;', '>', "gm"); 
	htmlStr=htmlStr.replace('&quot;', '"', "gm"); 
	htmlStr=htmlStr.replace('&apos;', "'", "gm"); 
	htmlStr=htmlStr.replace('&amp;', '&', "gm");
			
return htmlStr; 
}


