//**************************************************************************************
//Project Name: Atlas - ICE Geomap
//Author: Marc F Duverneuil 
//Company: EDS/Quotient, Inc
//ICE/OCIO Department og Homeland Security
//Date: October/November 2008 - Last Upadted: 11/10/2008 - 9:55 AM
//**************************************************************************************
function TextualZoomControl() {}
TextualZoomControl.prototype = new GControl();
TextualZoomControl.prototype.initialize = function(map) {  var container = document.createElement("div");  var zoomInDiv = document.createElement("div");  this.setButtonStyle_(zoomInDiv);  container.appendChild(zoomInDiv);  zoomInDiv.appendChild(document.createTextNode("Zoom In"));  GEvent.addDomListener(zoomInDiv, "click", function() {    map.zoomIn();  });  var zoomOutDiv = document.createElement("div");  this.setButtonStyle_(zoomOutDiv);  container.appendChild(zoomOutDiv);  zoomOutDiv.appendChild(document.createTextNode("Zoom Out"));  GEvent.addDomListener(zoomOutDiv, "click", function() {    map.zoomOut();  });  map.getContainer().appendChild(container);  return container;}

TextualZoomControl.prototype.getDefaultPosition = function() {  return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));}

TextualZoomControl.prototype.setButtonStyle_ = function(button) {  button.style.textDecoration = "underline";  button.style.color = "#0000cc";  button.style.backgroundColor = "white";  button.style.font = "small Arial";  button.style.border = "1px solid black";  button.style.padding = "2px";  button.style.marginBottom = "3px";  button.style.textAlign = "center";  button.style.width = "6em";  button.style.cursor = "pointer";}
//**************************************************************************************
function initialize(){
//var side_bar_html = "";
		var request="";
		// arrays to hold copies of the markers used by the side_bar
		// because the function closure trick doesnt work there
		var gmarkers = [];
		var i = 0;
		var point=[];
		var marker=[];
		var id=[];

	if (GBrowserIsCompatible()) {
		// A function to create the marker and set up the event window
		function createMarker(point,label,iconname,lat,lng,id) {
		var icon = new GIcon(baseIcon);
		icon.image = iconname.getAttribute("image");
		var marker = new GMarker(point,icon);
		
	GEvent.addListener(marker, "click", function() {
//**********************************************************************************************************
//This is the front map (the world one) click event 
//***********************************************************************************************************
		//marker.openInfoWindowHtml(info.childNodes[2].firstChild.data);
			map.setCenter(new GLatLng(lat,lng),6);
		document.location.href ='/about/internationalaffairs/contact.htm?paramid='+ id;
		
				});

		// save the info we need to use later for the side_bar
		gmarkers[i] = marker;

	i++;	

		return marker;
	}

	// create the map
	var map = new GMap2(document.getElementById("map"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	//map.addMapType(G_SKY_VISIBLE_MAP); 
    //map.addMapType(G_SATELLITE_3D_MAP); 

//map.setCenter(new GLatLng(37.4419, -122.1419), 2);
	map.setCenter(new GLatLng(0,0), 2);
  	map.enableScrollWheelZoom();


var baseIcon = new GIcon();
//baseIcon.shadow = "shadow50.png";
baseIcon.Size=new GSize(16,11);

//baseIcon.iconAnchor = new GPoint(9,34); 7/14/2009
//baseIcon.infoWindowAnchor = new GPoint(9,2); 7/14/2009

baseIcon.iconAnchor = new GPoint(-1,-1);
baseIcon.infoWindowAnchor = new GPoint(-1,-1);

	// Read the data from example.xml
	var request = GXmlHttp.create();
	request.open("GET", "/doclib/xml/geomap/data4.xml", true);
	
	request.onreadystatechange = function() {
	if (request.readyState == 4) {
		var xmlDoc = GXml.parse(request.responseText);
		// obtain the array of markers and loop through it
		var markers = xmlDoc.documentElement.getElementsByTagName("marker");
	
		var icons =  xmlDoc.documentElement.getElementsByTagName("icon");
		var info = xmlDoc.documentElement.getElementsByTagName("info");
		//var info = "test";
		


		for (var i = 0; i < markers.length; i++) {
			// obtain the attribues of each marker
				var myPID =  markers[i].getAttribute("pid");
				var myID =  markers[i].getAttribute("id");
			
			var lat = parseFloat(markers[i].getAttribute("lat"));
			var lng = parseFloat(markers[i].getAttribute("lng"));

			var point = new GLatLng(lat,lng);
	
			var label = markers[i].getAttribute("label");
			// create the marker
			if(myPID == 0){
				
				var marker = createMarker(point,label,icons[i],lat,lng,myID);
				map.addOverlay(marker);
			}
		}
	}
	}
request.send(null);
	}

	else {
	alert("Sorry, the Google Maps API is not compatible with this browser");
	}
}


//****************************************************************************************

function createMarker3(point,label,iconname,info) {
		
		var gmarkers = [];
		var i = 0;
		var mapInfo22 = info;
		//var mapInfo22b = info.childNodes[2].firstChild.data;
		//var point=eval(jscript);
		
		
		var icon = new GIcon(baseIcon);
		icon.image = iconname.getAttribute("image");
		var marker22 = new GMarker(point,icon);
		
		GEvent.addListener(marker22, "click", function() {
		//FFX
		
		//marker22.openInfoWindowHtml(mapInfo22b, {maxWidth: 300});
		marker22.openInfoWindowHtml(GXml.value(info), {maxWidth: 300}); 
		//marker22.openInfoWindowHtml(info.childNodes[2].firstChild.data, {maxWidth: 300}); 
		
		
	 <!--//	marker22.openInfoWindowHtml(info.childNodes[2].firstChild.data, {maxWidth: 300});  -->
	
	//marker22.openInfoWindowHtml(info.childNodes[2].firstChild.data, {maxWidth: 300});
			//marker22.openInfoWindowHtml(varHTML,{maxWidth: 300});
			//marker22.openInfoWindowHtml("<b>Blah blah</b>", {maxWith: 200});
		});


gmarkers[i] = marker22;
		i++;

return marker22;
	}


var baseIcon = new GIcon();
//baseIcon.shadow = "shadow50.png";
baseIcon.Size=new GSize(16,11);

//baseIcon.iconAnchor = new GPoint(9,34); 7/14/2009
//baseIcon.infoWindowAnchor = new GPoint(9,2); 7/14/2009

baseIcon.iconAnchor = new GPoint(-1,-1);
baseIcon.infoWindowAnchor = new GPoint(-1,-1);

function getPID(id){
	var request = GXmlHttp.create(); 
	
	request.open("GET", "/doclib/xml/geomap/data4.xml", true);
	
	request.onreadystatechange=function() { 
//	if(request.readystate != 0 || request.readystate != 1 || request.readystate != 2 || request.readystate != 3 || request.readystate == 4) { 


  if(request.readyState==0)
document.getElementById('map').innerHTML='Uninitialized';
else  if(request.readyState==1)
document.getElementById('map').innerHTML='Loading...';
else  if(request.readyState==2)
document.getElementById('map').innerHTML='Loaded';
else  if(request.readyState==3)
document.getElementById('map').innerHTML='Interactive';
else  if(request.readyState==4)
{



//window.alert("works");
	 
	var xmlMap2 = GXml.parse(request.responseText);
	var mapMarker2 = xmlMap2.documentElement.getElementsByTagName("marker");

	for (var i = 0; i < mapMarker2.length; i++) {
			var mapInfo2 = xmlMap2.documentElement.getElementsByTagName("info");
			//var mapInfo2 = "test";
			var mapIcons2 =  xmlMap2.documentElement.getElementsByTagName("icon");	

			var myID = mapMarker2[i].getAttribute("id");
			var myPID = mapMarker2[i].getAttribute("pid");
				
			var lat22 = parseFloat(mapMarker2[i].getAttribute("lat"));
			var lng22 = parseFloat(mapMarker2[i].getAttribute("lng"));
			var point22 = new GLatLng(lat22,lng22);
			
			var label22 = mapMarker2[i].getAttribute("label");

	    var zoom22 = parseFloat(mapMarker2[i].getAttribute("zoom"));

	if(myID == id ){
			var map = new GMap2(document.getElementById("map"));
			map.setCenter(new GLatLng(lat22,lng22),zoom22);	
			map.enableScrollWheelZoom();
			map.addControl(new TextualZoomControl());
			
			//var marker3 = createMarker3(point22,label22,mapIcons2[i],mapInfo2);
			var marker3 = createMarker3(point22,label22,mapIcons2[i],mapInfo2[i]);		
			map.addOverlay(marker3);
	
	} <!-- end of  (myID == id) -->
		
		} 
		} 
		}
	request.send(null); 
}

//****************************************************************************************************

function createMarker2(point,label,iconname,info,id) {
		var gmarkers = [];
		var i = 0;

		var icon = new GIcon(baseIcon);
		icon.image = iconname; //.getAttribute("image");
		var marker3 = new GMarker(point,icon);


	GEvent.addListener(marker3, "click", function() {
		//marker3.openInfoWindowHtml(info); 
		//marker3.openInfoWindowHtml("Test");
		//marker3.openInfoWindowHtml();
		getPID(id);
		});

		gmarkers[i] = marker3;

	i++;	

		return marker3;
	}




var baseIcon = new GIcon();
//baseIcon.shadow = "shadow50.png";
baseIcon.Size=new GSize(16,11);

//baseIcon.iconAnchor = new GPoint(9,34); 7/14/2009
//baseIcon.infoWindowAnchor = new GPoint(9,2); 7/14/2009
baseIcon.iconAnchor = new GPoint(-1,-1);
baseIcon.infoWindowAnchor = new GPoint(-1,-1);





function getID(id){
	// Read the data from example.xml
	var request = GXmlHttp.create();
	request.open("GET", "/doclib/xml/geomap/data4.xml", true);
	
	request.onreadystatechange = function() {
	if (request.readyState == 4) {
		 var xmlMap = GXml.parse(request.responseText);
	
	var mapMarker = xmlMap.documentElement.getElementsByTagName("marker");
	var mapIcon = xmlMap.documentElement.getElementsByTagName("icon");	

	
    var mySecondary = new Array();

var cnt = 0;	
for (var i = 0; i < mapMarker.length; i++) {
   	var myTertiary = new Array();
//	var icons =  xmlMap.documentElement.getElementsByTagName("icon");
    var myID = mapMarker[i].getAttribute("id");
    var myPID = mapMarker[i].getAttribute("pid"); 
   	var mapInfos =  xmlMap.documentElement.getElementsByTagName("info");
	

 if ( myID ==  id  ||  myPID == id) {
  
  var nct = 0;
  
    var lat = parseFloat(mapMarker[i].getAttribute("lat"));
    var lng = parseFloat(mapMarker[i].getAttribute("lng"));
    var point = new GLatLng(lat,lng);   

    var label = mapMarker[i].getAttribute("label");
    var zoom = parseFloat(mapMarker[i].getAttribute("zoom"));
    var image =   mapIcon[i].getAttribute("image");

//	 myTertiary = [myID,myPID,lat,lng,point,label,zoom,icons,infos];


mySecondary[cnt] = new Array();     
mySecondary[cnt][nct++] = myID;
mySecondary[cnt][nct++] = myPID;
mySecondary[cnt][nct++] = lat;
mySecondary[cnt][nct++] = lng;
mySecondary[cnt][nct++] = point;
mySecondary[cnt][nct++] = label;
mySecondary[cnt][nct++] = zoom;
mySecondary[cnt][nct++] = icons;
mySecondary[cnt][nct++] = mapInfos;
mySecondary[cnt][nct++] = image;

cnt++;	 

}
	}

	var map = new GMap2(document.getElementById("map"));  
 for (var i = 0; i < mySecondary.length; i++) {
  
   var myid2 = mySecondary[i][0];
   var mypid2 = mySecondary[i][1];
   var lat = mySecondary[i][2];
   var lng = mySecondary[i][3];
   var point = mySecondary[i][4];   
   var label = mySecondary[i][5];
   var zoom = mySecondary[i][6];
   var icons = mySecondary[i][7];  
   var mapInfos = mySecondary[i][8];   
   var image = mySecondary[i][9];    
  
if(myid2 == id ){
	map.setCenter(new GLatLng(lat,lng),zoom);
	var mapControl = new GMapTypeControl();
	map.addControl(mapControl);
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
// var marker = createMarker2(point,label,icons,infos);
}else{
	map.setCenter(new GLatLng(lat,lng));
	var mapControl = new GMapTypeControl();
	map.addControl(mapControl);
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
}
var marker3 = createMarker2(point,label,image,mapInfos,myid2);
map.addOverlay(marker3); 
//alert(image);
}
}
	}
		
	request.send(null); 
}

