// required vars
/*
var gmInitLat = '37.4419';
var gmInitLon = '40.1419';
var gmInitZoomLevel = 2;
var gmInitMapType = G_SATELLITE_MAP

var gmEnableMapControl  = 1;
var gmEnableMapTypeControl  = 1;
var gmEnableScaleControl  = 1;

var gmIconBaseURL = 'http://myclimate.simpledev.ch/';
var gmIconPath = "/fileadmin/templates/img/icons/";
var gmIconSizeW = 23;
var gmIconSizeH = 33;
var gmIconAnchorX = 9;
var gmIconAnchorY = 34;
var gmIconWindowAnchorX = 9;
var gmIconWindowAnchorY = 2;


// projects (markers)
var markerList = [];
markerList[0] = [];
markerList[0]['title'] = 'Indien';
markerList[0]['type'] = 3;
markerList[0]['lat'] = '75.4419';
markerList[0]['lon'] = '15.1419';
markerList[0]['infoHTML'] = '<div id="googleinfowindow"><img src="/fileadmin/images/projects/myclimate_mini.gif" class="logo" /><h3>Strom und Waerme aus Biomasse</h3><div class="region">Indien, Malavalli</div><table><tr><td class="image"><img src="http://myclimate.simpledev.ch/fileadmin/images/projects/ksp_international/malavalli/malavalli_overview.jpg" width="60" height="60" class="project" /></td><td class="desc"><b>Reduktionen:</b> 145\'000 t CO2-aeq (ueber 7 Jahre)<br /><br />Durch technische Innovationen ist es gelungen, Biomasse mit einem niedrigen Brennwert als wertvollen Brennstoff zu nutzen.<br /><a href="">Mehr Informationen</a><br /><br /></td></tr></table></div>';

// project icons def
var markerTypeList = [];
markerTypeList[0] = [];
markerTypeList[0]['id'] = 3;
markerTypeList[0]['name'] = 'Biomass';
markerTypeList[0]['iconImage'] = 'markerIconBiomass.png';


// project icons (marker icons)
var markerIcons = [];
*/

function loadGMap(minRes, maxRes, errorMsg) {
	if (! GBrowserIsCompatible()) {
		// error
		if ( errorMsg == '' ) {
			alert('Sorry, the Google Maps API is not compatible with this browser.');
		} else {
			alert(errorMsg);
		}
		
	} else {

		if ( gmEnableMapControl == 1 ) {
			// zoom eingrenzen
			if ( minRes > 0 || maxRes > 0 && minRes <= maxRes ) {
				var mapTypes = G_DEFAULT_MAP_TYPES;
				for(var i = 0; i < mapTypes.length; i++){
					if ( maxRes > 0 ) {
						mapTypes[i].getMaximumResolution = function(latlng){ return maxRes;};
					}
					if ( minRes > 0 ) {
						mapTypes[i].getMinimumResolution = function(latlng){ return minRes;};
					}
				}
			}
			
			// create map object
			var map = new GMap2(document.getElementById("myclimateprojects_map"), {mapTypes: mapTypes});			
		} else {
			// create map object
			var map = new GMap2(document.getElementById("myclimateprojects_map"));
		}
	
		// init positino, zoom and map view type
		map.setCenter(new GLatLng(gmInitLat, gmInitLon), gmInitZoomLevel, gmInitMapType);
			
		// enable scroll wheel zoom
		map.enableScrollWheelZoom();
			
		// add map control
		if ( gmEnableMapControl == 1 ) {
			if ( gmZoomTypeControl == 'large' ) {
				map.addControl(new GLargeMapControl());
			} else {
				map.addControl(new GSmallMapControl());
			}
		}
		
		// add view type control
		if ( gmEnableMapTypeControl == 1 ) {
			map.addControl(new GMapTypeControl());
		}

		if ( gmEnableScaleControl == 1 ) {
			// add scale control
			_mPreferMetric = true;
			map.addControl(new GScaleControl());
		}

		// create icons
		defineCustomIcons();
		
		// add markers
		var markerCount = markerList.length;
		for ( var i = 0; i < markerCount; i++) {
			// get project
			var markerDef = markerList[i];
			// create marker
			var marker = createMarker(markerDef['lat'], markerDef['lon'], markerDef['type'], markerDef['infoHTML']);
			// add to map
			map.addOverlay(marker);
		}

	}
}

function defineCustomIcons() {
	// base icon
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.iconSize = new GSize(gmIconSizeW, gmIconSizeH);
	baseIcon.iconAnchor = new GPoint(gmIconAnchorX, gmIconAnchorY);
	baseIcon.infoWindowAnchor = new GPoint(gmIconWindowAnchorX, gmIconWindowAnchorY);
	
	// custom icons
	var mTypeCount = markerTypeList.length;
	for ( var i = 0; i < mTypeCount; i++) {
		var mTypeDef = markerTypeList[i];
		var gIcon = new GIcon(baseIcon);
		gIcon.image = gmIconPath + mTypeDef['iconImage'];
		var typeId = mTypeDef['id'];
		markerIcons[typeId] = { icon:gIcon };
	}
}

function createMarker(lat, lon, type, infoWindowHTML) {
	var point = new GPoint(lon,lat);
	// create marker
	var marker = new GMarker(point, markerIcons[type]);
	// add info window click event
	GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(infoWindowHTML) } );
	
	return marker;
}
