// JavaScript Document
/**
 * @author Marco Alionso Ramirez, marco@onemarco.com
 * @url http://onemarco.com
 * This code is public domain
 */

//load and unload the map

GEvent.addDomListener(window,'load',loadMap);
GEvent.addDomListener(window,'unload',GUnload);

//check for google maps compatibility, if so, load xml
function loadMap(){

	if(!GBrowserIsCompatible()){
		alert('Sorry, the Google Maps API is not compatible with this browser.');
		return;
	}else{
		createMap();
	}
}

//create map icon and sidebar

function createMap(){

	var map = new GMap2(document.getElementById('map'));
	map.addControl(new GLargeMapControl());
	map.setMapType(G_SATELLITE_MAP);

	var icon = new GIcon();

	icon.image = "http://www.lifewater.org/assets/google_earth/new_map/icon-droplet.png";
	icon.shadow = "http://onemarco.com/examples/Tooltip_v2/marker_shadow.png";
	icon.iconSize = new GSize(20, 20);
	icon.shadowSize = new GSize(30, 27);
	icon.iconAnchor = new GPoint(10, 25);
	icon.infoWindowAnchor = new GPoint(10, 0);
	icon.infoShadowAnchor = new GPoint(23, 13);

	//var icon = G_DEFAULT_ICON;

	var sidebarList = document.getElementById('markerList');

//Mouseover Titles	

	var Cambodiacontent = {
		el:'dl',ch:[
			{el:'dt',ch:[
				{txt:'Cambodia'}
			]},
		]
	};
	
	var Ethiopiacontent = {
		el:'dl',ch:[
			{el:'dt',ch:[
				{txt:'Ethiopia'}
			]},
		]
	};
	
	var Kenyacontent = {
		el:'dl',ch:[
			{el:'dt',ch:[
				{txt:'Kenya'}
			]},
		]
	};

	var Rwandacontent = {
		el:'dl',ch:[
			{el:'dt',ch:[
				{txt:'Rwanda'}
			]},
		]
	};

	var SoutheastAsiacontent = {
		el:'dl',ch:[
			{el:'dt',ch:[
				{txt:'Southeast Asia'}
			]},
		]
	};

	var Ugandacontent = {
		el:'dl',ch:[
			{el:'dt',ch:[
				{txt:'Uganda'}
			]},
		]
	};

	var Tanzaniacontent = {
		el:'dl',ch:[
		{el:'dt',ch:[
				{txt:'Tanzania'}
			]},
		]
	};

    createMarker(map,13.970410, 103.50827,'Cambodia','http://www.lifewater.org/cambodia-project',icon,Cambodiacontent,sidebarList);
    createMarker(map,9.145, 40.489672,'Ethiopia','http://www.lifewater.org/ethiopia-oromiya-project',icon,Ethiopiacontent,sidebarList);
    createMarker(map,-0.023558, 37.906192,'Kenya','http://www.lifewater.org/kenya-project',icon,Kenyacontent,sidebarList);
    createMarker(map,1.972754, 29.66308,'Rwanda','http://www.lifewater.org/rwanda-project',icon,Rwandacontent,sidebarList);	
    createMarker(map,16.003906, 102.717736,'Southeast Asia','http://www.lifewater.org/laos-project',icon,SoutheastAsiacontent,sidebarList);
    createMarker(map,1.373333, 30.290275,'Uganda','http://www.lifewater.org/uganda-project',icon,Ugandacontent,sidebarList);
    createMarker(map,-10.373333, 30.290275,'Tanzania','http://www.lifewater.org/tanzania-project',icon,Tanzaniacontent,sidebarList);

   // createMarker(map,45.285436, 66.90435,'Central Asia','http://www.lifewater.org/central-asia-project',icon,CentralAsiacontent,sidebarList);
   // createMarker(map,17, -68,'Dominican Republic','http://www.lifewater.org/dominican-republic-project',icon,DRcontent,sidebarList);
  //  createMarker(map,19, -73,'Haiti','http://www.lifewater.org/haiti-project',icon,Haiticontent,sidebarList);

map.setCenter(new GLatLng(20,40),1);

}

//create the marker

function createMarker(map,lat,lng,title,link,icon,content,list){
	var marker = new GMarker(new GLatLng(lat,lng),{icon:icon});
	marker.tooltip = new Tooltip(marker,jsonToDom(content),4);
	createTab(marker,content);
	marker.isInfoWindowOpen = false;

	var sidebarLink = jsonToDom({
		el:'li',ch:[
			{txt:title}
		]});
	list.appendChild(sidebarLink);

	var ttmover = GEvent.callbackArgs(marker,tooltipMouseover,sidebarLink);
	var ttmout = GEvent.callbackArgs(marker,tooltipMouseout,sidebarLink);
	var mclick = GEvent.callback(marker,markerClick);

	marker.value = link;

	GEvent.addDomListener(sidebarLink,'mouseover',ttmover);
	GEvent.addDomListener(sidebarLink,'mouseout',ttmout);
	//GEvent.addDomListener(sidebarLink,'click',function() {jQuery.facebox(link)});
        GEvent.addDomListener(sidebarLink,'click',function() {location.href=link});	
	GEvent.addListener(marker,'mouseover',ttmover);
	GEvent.addListener(marker,'mouseout',ttmout);
	//GEvent.addListener(marker,'click',function() {jQuery.facebox(link)});
        GEvent.addListener(marker,'click',function(){location.href=link});
	GEvent.addListener(marker,'infowindowopen',GEvent.callbackArgs(marker,infoWindowOpen,sidebarLink));
	GEvent.addListener(marker,'infowindowclose',GEvent.callbackArgs(marker,infoWindowClose,sidebarLink));


	map.addOverlay(marker);	
	map.addOverlay(marker.tooltip);
	map.setCenter(marker.getPoint());
	
	return marker;

}


//create the tab(s) for the GInfoWindow
function createTab(marker,content){
	var element = jsonToDom(
		{el:'div',att:{Class:'googleMarkerTab'},ch:[
			{el:'div',att:{Class:'content'},ch:[
				content
			]}
		]});
	marker.tab = [new GInfoWindowTab('Address',element)];
}

//makrer,sidebar mouseover handler
function tooltipMouseover(sidebarLink){
	if(!(this.isInfoWindowOpen) && !(this.isHidden())){
		this.tooltip.show();
	}
}

//marker,sidebar mouseout handler
function tooltipMouseout(sidebarLink){
	this.tooltip.hide();
}

//marker click handler
function markerClick(){
	this.tooltip.hide();
//	this.openInfoWindow(this.tab);
	window.open(link);
}

//infowindowopen handler
function infoWindowOpen(sidebarLink){
	this.isInfoWindowOpen = true;	
}

//infowindowclose handler
function infoWindowClose(sidebarLink){
	this.isInfoWindowOpen = false;
}
