var aBlues=[];
var aReds=[];
var aMarkers=[];
function showMap()
{
	var oMapObj = document.getElementById("map");
	if (GBrowserIsCompatible() && typeof oMapObj!='undefined')
	{
		var oIcon = new GIcon();
		oIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		oIcon.iconSize = new GSize(12, 20);
		oIcon.shadowSize = new GSize(22, 20);
		oIcon.iconAnchor = new GPoint(6, 20);
		oIcon.infoWindowAnchor = new GPoint(5, 1);      
		oIconBlue = new GIcon(oIcon,"http://labs.google.com/ridefinder/images/mm_20_blue.png"); 
		oIconRed = new GIcon(oIcon,"http://labs.google.com/ridefinder/images/mm_20_red.png"); 

		var oMap = new GMap2(oMapObj);
		oMap.addControl(new GLargeMapControl());
		oMap.addControl(new GMapTypeControl());
		oMap.addControl(new GScaleControl());
		oMap.enableScrollWheelZoom();
		
		var oDivs = document.getElementsByTagName('div');
		var aShops = [];
		var aPoints = [];
		for(var i=0; i<oDivs.length; i++)
		{
			if(oDivs[i].className=='contact_in')
			{
				var oInputs = oDivs[i].getElementsByTagName('input');
				if(typeof oInputs!='undefined')
				{
					var fLng=null,fLat=null,sType=null;
					for(var j=0; j<oInputs.length; j++)
					{
						if(oInputs[j].className=='lng')
						{
							fLng = oInputs[j].value;
						}
						if(oInputs[j].className=='lat')
						{
							fLat = oInputs[j].value;
						}
						if(oInputs[j].className=='type')
						{
							sType = oInputs[j].value;
						}
					}
					if(fLng!=null&&fLat!=null&&sType!=null)
					{
						var oPoint = new GLatLng(parseFloat(fLat), parseFloat(fLng));
						aShops.push({'html':oDivs[i].innerHTML,'point':oPoint,'type':sType});
						aPoints.push(oPoint);
					}
				}
			}
		}
		
		if(aShops.length!=0)
		{
			for(i in aShops)
			{
				var oMarker=createMarker(aShops[i].point,aShops[i].html,aShops[i].type=='blue'?oIconBlue:oIconRed,aShops[i].type);
				aMarkers.push(oMarker);
			}
		}
		else
		{
			return;
		}
		
		var aPoints2 = aPoints.slice();
		var iNumPoints = aPoints2.length-1;
		aPoints2.sort(
			function(p1, p2)
			{
				return p1.lng() - p2.lng();
			}
		);
		var fWest = aPoints2[0].x;
		var fEast = aPoints2[iNumPoints].x;
		aPoints2.sort(
			function(p1, p2)
			{
				return p1.lat() - p2.lat();
			}
		);
		var fNorth = aPoints2[iNumPoints].y;
		var fSouth = aPoints2[0].y;
		var oSw = new GLatLng(fSouth,fWest);
		var oNe = new GLatLng(fNorth,fEast);
		var oBounds = new GLatLngBounds(oSw, oNe);
		var oCenterPoint = new GLatLng((fNorth + fSouth)/2, (fEast + fWest)/2);
		var iZoomLevel = oMap.getBoundsZoomLevel(oBounds);
		oMap.setCenter(oCenterPoint, iZoomLevel);
		for(var i=0;i<aMarkers.length;i++)
		{
			oMap.addOverlay(aMarkers[i]);
		}
//		oMarkers = new GMarkerManager(oMap);
//		oMarkers.addMarkers(aMarkers,0,17);
//		oMarkers.refresh();
	}
}

function showHide(sType,bShow)
{
	for(var i=0;i<aMarkers.length;i++)
	{
		if(aMarkers[i].mytype==sType)
		{
			if(bShow)
			{
				aMarkers[i].show();
			}
			else
			{
				aMarkers[i].hide();
			}
		}
	}
}
function createMarker(oPoint,sHtml,oIcon,sType)
{
	var oMarker = new GMarker(oPoint,{icon:oIcon});
	oMarker.mytype=sType
	GEvent.addListener(
		oMarker, 
		"click", 
		function()
		{
      		oMarker.openInfoWindowHtml('<div style="width:350px;height:120px;">'+sHtml+'</div>');
    	}
    );
    return oMarker;
}
function filterMap(eType)
{
	var aDivs = document.getElementsByTagName('div'),i,oRedDiv,oBlueDiv;
	for(i in aDivs)
	{
		if(aDivs[i].className=='red')
		{
			oRedDiv = aDivs[i];
		}
		if(aDivs[i].className=='blue')
		{
			oBlueDiv = aDivs[i];
		}
	}
	switch(eType)
	{
		case 0:
			oRedDiv.style.display = 'block';
			oBlueDiv.style.display = 'block';
			showHide('red', true);
			showHide('blue', true);
		break;
		case 1:
			oRedDiv.style.display = 'block';
			oBlueDiv.style.display = 'none';
			showHide('red', true);
			showHide('blue', false);
		break;
		case 2:
			oRedDiv.style.display = 'none';
			oBlueDiv.style.display = 'block';
			showHide('red', false);
			showHide('blue', true);
		break;
	}
}