
/*************************************************
* Created with GoogleMapAPI 2.2
* Author: Monte Ohrt <monte AT ohrt DOT com>
* Copyright 2005-2006 New Digital Group
* http://www.phpinsider.com/php/code/GoogleMapAPI/
* tweaked by MGA http://www.gatellier.be/blog/
*************************************************/
var baseIcon={};
var points = [];
var markers = [];
var counter = 0;
var sidebar_html = "";
var marker_html = [];
var map = null;
function initMaps() {
	if (GBrowserIsCompatible()) {
		document.getElementById('gmapContainer').style.width = ((typeof(emk.maps.size.width)!="undefined")?emk.maps.size.width:590)+"px"
		document.getElementById('gmapContainer').style.height = ((typeof(emk.maps.size.height)!="undefined")?emk.maps.size.height:300)+"px"
		
		baseIcon = new GIcon();
		baseIcon.shadow = "http://www.exmachina.net/_img/marker-shadow.png";
		baseIcon.iconSize = new GSize(20, 34);
		baseIcon.shadowSize = new GSize(37, 34);
		baseIcon.iconAnchor = new GPoint(9, 34);
		baseIcon.infoWindowAnchor = new GPoint(9, 2);
		baseIcon.infoShadowAnchor = new GPoint(18, 25);

	
		var mapObj = document.getElementById("gmapContainer");

		if (mapObj != "undefined" && mapObj != null) {
			map = new GMap2(document.getElementById("gmapContainer"));
			
			map.setCenter(new GLatLng(emk.maps.center.lat, emk.maps.center.lon), ((typeof(emk.maps.center.zoom)!="undefined")?emk.maps.center.zoom:15), G_NORMAL_MAP);
			map.addControl(new GSmallMapControl());
			//map.addControl(new GMapTypeControl());

			for (var i=0,j=emk.maps.points.length;i<j;i++){
				var point = new GLatLng(emk.maps.points[i].lat, emk.maps.points[i].lon);
				var marker = createMarker(point, emk.maps.points[i].title, emk.maps.points[i].content, 0);
				map.addOverlay(marker);
			}
		}
		
	} else {
		document.write('<p><strong>Javascript must be enabled in order to use Google Maps.<\/strong><\/p>');
	}
}
function createMarker(point, title, html, n) {
	if(n >= 0) { n = -1; }
	var icon = new GIcon(baseIcon);
		icon.image = "http://www.exmachina.net/_img/marker.png";


	var marker = new GMarker(point,icon);
	if(isArray(html)) {
		GEvent.addListener(marker, "click", function() { marker.openInfoWindowTabsHtml(html); });
	} else {
		GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); });
	}
	points[counter] = point;
	markers[counter] = marker;
	marker_html[counter] = html;
	//sidebar_html += '<li class="gmapSidebarItem" id="gmapSidebarItem_'+ counter +'"><a href="javascript:showGMLayer(' + counter + ')">' + title + '<\/a><\/li>';
	counter++;
	return marker;
}
function isArray(a) {return isObject(a) && a.constructor == Array;}
function isObject(a) {return (a && typeof a == 'object') || isFunction(a);}
function isFunction(a) {return typeof a == 'function';}
function showGMLayer(idx) {
	if(isArray(marker_html[idx])) {
		markers[idx].openInfoWindowTabsHtml(marker_html[idx]);
	} else {
		markers[idx].openInfoWindowHtml(marker_html[idx]);
	}
}
function showInfoWindow(idx,html) {
	map.centerAtLatLng(points[idx]);
	markers[idx].openInfoWindowHtml(html);
}
function addEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	} else if (obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	} 
}
addEvent(window, 'load', initMaps);
