/*
	Last published on : 17-Feb-11 09:40
	Location          : \commercial\destinationguide\cms\destinationguide_onlrb\static\js
	Filename          : marker.js
*/
var my_window = new Array;  
var map_point = new Array; 
var marker_array = new Array;
var active, activeMarker;
var multi = 0;
var bounds = new GLatLngBounds();
var gmarkers = [];
var beginZoom;
var beginLatLng;
var cb_setting = 0;

function createEventMap(items, zoomlevel, lattitude_city, longitude_city) {
	for (var i = 0; i < Events.length; i++) {
		if(Events[i]['tag'] == items){
			eventInfo = Events[i];	
			break;
		}
	}
	
	close_all_windows();
	active = eventInfo['id'];
	activeMarker = marker_array[active];

	map.setZoom(zoomlevel);
	centerMap(activeMarker);
	show_custom_info_window(activeMarker, active);
	window.setTimeout(
		function(){
			hide();
		},10);	
	destinationGuide.showMap( items);
}

function initializeMarkers() {
// set up Google map
  if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById("map_canvas"))
	map.enableContinuousZoom();
	map.setCenter(new GLatLng(53.4, 4.23), 6);
	map.addControl(new XSliderControl());
	map.addControl(new TextualZoomControl());
	mm = new GMarkerManager(map, {borderPadding:10});
	markers();
  }
}

function markers(i){
	for (var i = 0; i < Events.length; i++) {
    var index = Events[i]['id'];
		var point = new GLatLng(Events[i]['latitude'],Events[i]['longitude']);
		setInfo(index, Events[i]['id'], Events[i]['img'], Events[i]['name'], Events[i]['desc'], Events[i]['address'], Events[i]['latitude'], Events[i]['longitude']);
    bounds.extend(point);
    var marker = createMarkers(point, balloonInfo[index]['showBalloon'], index);
    marker_array[index] = marker; 	
		gmarkers.push(marker);
	}
	
	mm.addMarkers(gmarkers,0,17);
	mm.refresh();
	
	map.setZoom(15);
}

function createMarkers(point, balloon, i) {
	var marker;
	var number = i;
	var icon = new GIcon();
	icon.image = gMapImagePath + "marker.png";
	icon.iconSize = new GSize(26, 26);
	icon.iconAnchor = new GPoint(13, 16);
	icon.infoWindowAnchor = new GPoint(13, 2);
	marker = new GMarker(point, icon);
	make_custom_info_window(i);
	var coord = map.fromLatLngToDivPixel(marker.getPoint());
	map_point[number] = coord;
	GEvent.addListener(marker,'mouseover',function(){			
		close_all_windows();
		var coord = map.fromLatLngToDivPixel(marker.getPoint());
		map_point[number] = coord;
		show_custom_info_window(marker, i);
		active = number;
		activeMarker = marker;
		
	});
	return marker;
}

function make_custom_info_window(number) {
		var new_obj;
		new_obj = document.createElement("div");
		new_obj.style.display = 'none';
		new_obj.innerHTML = '';
		new_obj.id = 'bubble'+number;
		new_obj.className = 'bubble';
		document.body.appendChild(new_obj);
		my_window[number] = new_obj;
		activeMarker = marker_array[number];
}

function show_custom_info_window(marker, number){
	my_window[number].innerHTML = ("<div class='bubble-top'></div><div class='bubble-inside'><img src='"+balloonInfo[number]['infoImg']+"' /><h2>"+balloonInfo[number]['infoName']+"</h2><h3>"+balloonInfo[number]['infoDescr']+"</h3><p>"+balloonInfo[number]['address']+"</p></div><div class='bubble-bottom'></div>");
	my_window.marker = marker;

	map.getPane(G_MAP_MARKER_PANE).appendChild(my_window[number]);
	my_window[number].style.display = 'none';

	position_window(my_window[number], marker, number);
}


function position_window(my_window, marker, number){
	//map.panTo(marker.getLatLng());
	
	var coord = map.fromLatLngToDivPixel(marker.getPoint());
	
	var vert_loc = parseInt(coord.y) - my_window.offsetHeight - 15;;
	var horiz_loc = parseInt(coord.x) - 192; 
	my_window.style.top = vert_loc  + "px";
	my_window.style.left = horiz_loc + "px";
}

function close_all_windows(){
	if (active == 0 || active >= 0){
		var verwijder = document.getElementById("bubble"+active);
		if (verwijder) verwijder.innerHTML='';
	}else{
	
	}
}

function setInfo(number, id, img, name, descr, address, lat, lng){
	balloonInfo[number] = new Array();
	balloonInfo[number]['infoId'] = id;
	balloonInfo[number]['infoImg'] = img;
	balloonInfo[number]['infoName'] = name;
	balloonInfo[number]['infoDescr'] = descr;
	balloonInfo[number]['address'] = address;
	balloonInfo[number]['latitude'] = lat;
	balloonInfo[number]['longitude'] = lng;	
}

function centerMap(activeMarker){
	map.setCenter(activeMarker.getPoint());
}
/*
function show() {
	for (var i=0; i<gmarkers.length; i++) {
		gmarkers[i].show();
	}
}*/

// == hides all markers of a particular category, and ensures the checkbox is cleared ==
function hide() {
	for (var i=0; i<gmarkers.length; i++) {
	  //gmarkers[i].show()
	  if (gmarkers[i] != activeMarker) {
		  //gmarkers[i].remove();
		  map.removeOverlay(gmarkers[i]);
		  //gmarkers[i].hide();
	  }else{
		  map.addOverlay(gmarkers[i]);
	  }
	}
}
