
var map=null;
var bounds = new GLatLngBounds();

function addMarker(args){
	var point = new GLatLng(args.lat, args.lng);
	var marker = new GMarker(point);
	/*
	GEvent.addListener(marker,"click", function() {
	map.openInfoWindowHtml(point, args.html);
	});
	*/
	if ( args.windowtabs ) {
		GEvent.addListener(marker, "click", function() {
			var tabs = new Array();
			for ( var i=0;i<args.windowtabs.length;i++ ) {
				tabs[i] = new GInfoWindowTab(args.windowtabs[i].label,args.windowtabs[i].html);
			}
			marker.openInfoWindowTabsHtml(tabs);
		});
	}

	map.addOverlay(marker);
	bounds.extend(marker.getPoint());
}

function loadMarkers(cat_id, centertomarkers){
	if (!centertomarkers) {centertomarkers=false;}
	showLoading();
	var request = new Request.JSON({
		url: '/ajax.php?action=loadmarkers&cat_Id='+cat_id,
		onComplete: function(jsonObj) {
			map.clearOverlays();
			bounds = new GLatLngBounds();
			jsonObj.markers.each(function(marker) {
				addMarker(marker);
			});
			if ( centertomarkers == true ) {
				map.setZoom(map.getBoundsZoomLevel(bounds));
				map.setCenter(bounds.getCenter());
			}
			hideLoading();
		}
	}).send();
}

function load(type, args) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		
		switch ( type ) {
			case 'index':
				map.addControl(new GLargeMapControl());
				map.addControl(new GMenuMapTypeControl());
				map.enableScrollWheelZoom() ;
				map.setCenter(new GLatLng(52.108089,5.33033), 6);
				loadMarkers('all', false);
				break;
			case 'location':
				map.addControl(new GSmallMapControl());
				map.addControl(new GMenuMapTypeControl());
				map.enableScrollWheelZoom() ;
				bounds = new GLatLngBounds();
				map.setCenter(new GLatLng(52.108089,5.33033), 14);
				addMarker(args.location);
				/*map.setZoom(map.getBoundsZoomLevel(bounds));*/
				map.setCenter(bounds.getCenter(), true);
				break;
			case 'category':
				map.addControl(new GLargeMapControl());
				map.addControl(new GMenuMapTypeControl());
				map.enableScrollWheelZoom() ;
				map.setCenter(new GLatLng(52.108089,5.33033), 14);
				loadMarkers(args.cat_id, true);
				break;

		}
	}
}

function showLoading(){
	$('map_loading').innerHTML = '<img src="/images/18-1.gif" alt="Loading..." />';
}

function hideLoading(){
	$('map_loading').set('text', ' ');
}
