// useful maps functions
function locationObject(){
	this.long = 0;
	this.lat = 0;
	this.title = "";
	this.address = "";
	this.link = "";
}

	var markersArray = new Array();

function createMap(params)
{
	
	var locationArray = new Array();
	var iconArray = new Array();

		$.ajax({
		type: "GET",
		url: encodeURI(params.xmlPath),
		dataType: "xml",
		success: function(xml) {
			$(xml).find('xml').each(function(){
											 
				var i = 0;
			
				$(this).find('location').each(function(){
					
					var location = new locationObject();
					location.long = $(this).attr("longitude");
					location.lat = $(this).attr("latitude");
					location.title = $(this).attr("title");
					if(location.title == null)
					{
						location.title = "";
					}
					location.balloonContent = $(this).attr("balloonContent");

					locationArray.push(location);
					
					var markerImage = "";
					
					if($(this).attr("icon") != null || $(this).attr("icon") != "")
					{
						markerImage = $(this).attr("icon");
					}
					
					iconArray.push(markerImage);
					
					//$('#locationLinks').append('<div class="locationBtn" onclick="selectMarker('+i+')">'+ location.title +'</div>');
					
					i++;
				});
				
			});
			if (GBrowserIsCompatible()) {
				var map = new GMap2(document.getElementById(params.container));
				//map.setCenter(new GLatLng(longArray[0], latArray[0]), 14);
				map.setUIToDefault();
				
				var latlngbounds = new GLatLngBounds();
			
				for (var i = 0; i < locationArray.length; i++)
				{
					
					var marker = createMarkerWithBalloon({locationObject: locationArray[i], icon: iconArray[i]});
					markersArray.push(marker);
					
					map.addOverlay(marker);
					var newPoint = new GLatLng(locationArray[i].long, locationArray[i].lat);
					latlngbounds.extend(newPoint);
				}
				
				if(params.mouseWheel != null && params.mouseWheel == false)
				{
					map.disableScrollWheelZoom();
				}

				map.setCenter( latlngbounds.getCenter(), map.getBoundsZoomLevel( latlngbounds ) );
					
			}

		}
	});
}

function createMarkerWithBalloon(params) {

	var newPoint = new GLatLng(params.locationObject.long, params.locationObject.lat);
	
	var marker;
	var markerOptions = {};
	
	if(params.icon != null && params.icon != "")
	{
		var markerIcon = new GIcon(G_DEFAULT_ICON);
        markerIcon.image = encodeURI(params.icon);
		markerOptions = {icon: markerIcon};
	}
	
	marker = new GMarker(newPoint, markerOptions);
	
	var balloonHTML = "";
	balloonHTML += '<div class="mapBalloon">';
	balloonHTML += params.locationObject.balloonContent;
	balloonHTML += '</div>';
	
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml( balloonHTML );
	});
	
	return marker;
}

function selectMarker(i) {
	GEvent.trigger(markersArray[i], "click");
}
