var map;
var bounds = new GLatLngBounds();
var mappoints = new Array();
var listItemColors = new Array("#7decd2", "#aaffaa", "#aaaaff", "#ffaaaa", "#d27dec", "#fff000", "#e1c689", "#ffa86a");

function initmap(){


		document.getElementById("consoleBox").style.display = "block";	
		if(GBrowserIsCompatible()){
			map = new GMap2(document.getElementById("map"));
			var loc = new GLatLng(38.5632, -121.4004);
			map.setCenter(loc, 11);
			map.addControl(new GLargeMapControl());		
			map.addControl(new GMapTypeControl());	
		}
		
		resizeStuff();
				
		for(id in markers){
			loadPoint(markers[id]);
			
			
		}
		
		 centerAndZoomOnBounds(bounds);
			document.getElementById("consoleBox").style.display = "none";		 
		
}


window.onload = initmap;
window.onunload = GUnload;
window.onresize = resizeStuff;

function resizeStuff(){
	var diff = document.getElementById("map").offsetHeight - document.getElementById("infoBox").offsetHeight;
	document.getElementById("listwrap").style.height = (diff-20)+"px";
}

function loadPoint(tPoint){
	var pt = new GPoint(tPoint.longitude, tPoint.latitude);
	var marker = new GMarker(pt, loadIcon(tPoint) );
	marker.point = tPoint;
	
	
	var htext = '<div id="infobox"> <b>Time:</b> '+ tPoint.time;
	htext += "<br /><b>Event:</b> "+ tPoint.event+'</div>';
	function gotoPoint(){
		marker.openInfoWindowHtml(htext);
	//	window.location="#listitem"+tPoint.id;
	}
	
	
	GEvent.addListener(marker, 'click', gotoPoint);	
	map.addOverlay(marker);	
	
	bounds.extend(new GLatLng(tPoint.latitude, tPoint.longitude));	
	
	
	
	
	
	//add listitem
	var item = document.createElement('li');
	var ilink = item.appendChild(document.createElement('a'));
	ilink.href ="#";
	//ilink.name="listitem"+tPoint.id;
	ilink.onclick=function(){
		if(map.getZoom() !=13){
			map.setCenter(new GLatLng(tPoint.latitude, tPoint.longitude), 13); 
		 }
		else{
			map.panTo(new GLatLng(tPoint.latitude, tPoint.longitude));}
		marker.openInfoWindowHtml(htext);	
	};

	//var txt = '<img src="mapicons/icon'+(tPoint.id+1)+'.png" style="float: left; border: none" />';
	
	if(tPoint.id < 999){
		var tp = (tPoint.id+1)+". ";
	}else{
		var tp ="";
	}
	
	var txt = '<p><b>'+tp+tPoint.time + '</b><br /><b>Event:</b> '+tPoint.event+"</p>";
	ilink.innerHTML = txt;
	
	document.getElementById('list').appendChild(item);
	
	
	if(tPoint.id < 999)
		ilink.style.background= listItemColors[parseInt(tPoint.id/3)];

	//add to global mappoints array
	//////
	mappoints[tPoint.id] = marker;
	
}



function gotoMapPoint(tid){

	var tpt = mappoints[tid];
	map.panTo(new GLatLng(tpt.point.latitude, tpt.point.longitude));
	tpt.openInfoWindowHtml(tpt.point.address);

}



function centerAndZoomOnBounds(bounds) {
var center = bounds.getCenter();
var newZoom = map.getBoundsZoomLevel(bounds);
  if (map.getZoom() != newZoom) {
		
		map.setCenter(center, newZoom);
  } else {
		map.panTo(center);
  }
} 





function loadIcon(tPoint){
//tPoint should have the class attributes needed to decide which icon to load

	var id = tPoint.id;
	
	return icons[tPoint.id];


}


function zoom(i){

	map.setZoom(i);
}


