/**

 * @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 CentralAsiacontent = {

		el:'dl',ch:[

			{el:'dt',ch:[

				{txt:'Central Asia'}

			]},

		]

	};

	

	var Ethiopiacontent = {

		el:'dl',ch:[

			{el:'dt',ch:[

				{txt:'Ethiopia'}

			]},

		]

	};

	

	var Kenyacontent = {

		el:'dl',ch:[

			{el:'dt',ch:[

				{txt:'Kenya'}

			]},

		]

	};

	

	var SoutheastAsiacontent = {

		el:'dl',ch:[

			{el:'dt',ch:[

				{txt:'Southeast Asia'}

			]},

		]

	};

	

	var Ugandacontent = {

		el:'dl',ch:[

			{el:'dt',ch:[

				{txt:'Uganda'}

			]},

		]

	};



//         var DRcontent = {

//		el:'dl',ch:[

//			{el:'dt',ch:[

//				{txt:'Dominican Republic'}

//			]},

//		]

//	};

				

	createMarker(map,45.285436, 66.90435,'Central Asia','<iframe src="http://www.lifewater.org/central-asia-gifts" style="width: 750px; height: 470px"></iframe>',icon,CentralAsiacontent,sidebarList);

//createMarker(map,18.735693, -70.162651,'Dominican Republic','<iframe src="http://www.lifewater.org/dominican-republic-gifts" style="width: 750px; height: 470px"></iframe>',icon,DRcontent,sidebarList);

createMarker(map,9.145, 40.489672,'Ethiopia','<iframe src="http://www.lifewater.org/ethiopia-gifts" style="width: 750px; height: 470px"></iframe>',icon,Ethiopiacontent,sidebarList);

	createMarker(map,-0.023558, 37.906192,'Kenya','<iframe src="http://www.lifewater.org/kenya-gifts" style="width: 750px; height: 470px"></iframe>',icon,Kenyacontent,sidebarList);

	createMarker(map,16.003906, 102.717736,'Southeast Asia','<iframe src="http://www.lifewater.org/southeast-asia-gifts" style="width: 750px; height: 470px"></iframe>',icon,SoutheastAsiacontent,sidebarList);

	createMarker(map,1.373333, 32.290275,'Uganda','<iframe src="http://www.lifewater.org/uganda-gifts" style="width: 750px; height: 470px"></iframe>',icon,Ugandacontent,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.addListener(marker,'mouseover',ttmover);

	GEvent.addListener(marker,'mouseout',ttmout);

	GEvent.addListener(marker,'click',function() {jQuery.facebox(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;

}