var map;
var gmarkers = [];
var gtabs = [];
var point;
var bounds = new GLatLngBounds();

function createListingTabs(point,tabs)
{
	var marker = new GMarker(point);
	GEvent.addListener(marker, "mouseover", function() {
	   marker.openInfoWindowTabsHtml(tabs);
	});
	return marker;
}

function GMapLoad()
{
  if (GBrowserIsCompatible())
  {
	map = new GMap2(document.getElementById("map"));

	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());

	map.setCenter(new GLatLng(lat_default, long_default));

	for (var i = 0; i < data.length; i++)
	{
		point = new GLatLng(data[i][0],data[i][1]);
		bounds.extend(point);
		if (data[i][3] != '')
		{
			gtabs[i] = [new GInfoWindowTab('Location','<div class="maplocationtab">'+data[i][2]+'</div>'), new GInfoWindowTab('Description','<div class="mapdescriptiontab">'+data[i][3]+'</div>')];
		}
		else
		{
			gtabs[i] = [new GInfoWindowTab('Location','<div class="maplocationtab">'+data[i][2]+'</div>')];
		}

		gmarkers[i] = createListingTabs(point,gtabs[i]);
		map.addOverlay(gmarkers[i]);
	}

	setCenter();
  }
}

function setCenter()
{
	map.checkResize();
	map.setZoom(map.getBoundsZoomLevel(bounds));
	var centerLatitude = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) /2;
	var centerLongitude = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) /2;
	map.setCenter(new GLatLng(centerLatitude,centerLongitude));
}

function toggle()
{
	document.getElementById('resultGrid').style.display = (document.getElementById('resultGrid').style.display == 'none') ? 'block': 'none';
	document.getElementById('resultMap').style.display = (document.getElementById('resultMap').style.display == 'none') ? 'block': 'none';
	setCenter();
}

function showOnMap(p_index)
{
	toggle();
	gmarkers[p_index].openInfoWindowTabsHtml(gtabs[p_index]);
}
