var map = null;
var geocoder = null;
var auxDeal='';
var posActual;

function load() {
	if (GBrowserIsCompatible()) {
		//alert(longitude+', '+latitude);
		map = new GMap2(document.getElementById("gmap"));
		map.setCenter(new GLatLng(latitude, longitude), 13); // logged on Danbu Factory
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl()); // Controle de tipo de mapa
		GEvent.addListener(map, "moveend", mapChanged);
		geocoder = new GClientGeocoder();
	}
}


function mapChanged() {
	//alert(document.formLocator.type.value);
	storeType = document.formLocator.type.value;
	var bounds = map.getBounds();
	var north = bounds.getNorthEast().lat();
	var south = bounds.getSouthWest().lat();
	var east = bounds.getNorthEast().lng();
	var west = bounds.getSouthWest().lng();
	//alert('map moved: North->'+north+'\nSouth->'+south+'\nEast->'+east+'\nwest->'+west+'\n');
	var parameterList = {
			north: north,
			south: south,
			east: east,
			west: west,
			db: db,
			type: storeType
		};

	new Ajax.Updater('locations', 'include/getLocationDiv.php?m=div', {method: 'post', parameters: parameterList});
	new Ajax.Request('include/getLocationDiv.php', {method: 'post', parameters: parameterList, onSuccess: UpdateMarkers});
}

function UpdateMarkers(transport) {
	//alert(transport.responseText);
	map.clearOverlays();
	currentMarker = null;
	var points = transport.responseText.split('\n');
	var data;
	var point;
	
	for (var i=0; i< points.length; i++) {
		if (points[i].length > 4) {
			data = points[i].split(',');
			point = new GLatLng(parseFloat(data[1]),parseFloat(data[2]));
			html = data[0];
			marker = new CreateMarker(point, html);
			map.addOverlay(marker);
		}
	}
}

/*
function addAddressToMap(response) {
	if (!response || response.Status.code != 200) {
		//alert("Sorry, we were unable to geocode that address");
	} else {
		place = response.Placemark[0];
		point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
		
		myPos=tmpIndex[gPos++];
		
		html=nameArray[myPos]+'<br />'+addressArray[myPos]+'<br />'+place.address + '<br />' + '<b>Coordinates:</b> ' + place.Point.coordinates;
		marker = new CreateMarker(point, html);
		
		map.addOverlay(marker);
		
		map.setCenter(point, 13);
		marker.openInfoWindowHtml(place.address + '<br />' + '<b>Coordinates:</b> ' + place.Point.coordinates);
	}
}
*/
function handleForm() {
	geocoder.getLatLng(document.formLocator.postalcode.value, gotoPoint)

}

function gotoPoint(point) {
	if (!point) {
		alert("Location \""+document.formLocator.postalcode.value + "\" was not found\n\nTry entering an address, postal code or city name.");
	} else {
		map.setCenter(point, 11);
		mapChanged();
	}
}


function CreateMarker(point, html) {
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		MarkerClicked(marker, html);
	 });
	 return marker;
}

var tmpIndex;
var tmpPos;
var gPos;

var currentDealer = '';
var currentMarker = null;

function MarkerClicked(marker, html) {
	if (currentMarker)
		currentMarker.setImage('http://www.google.com/intl/en_ALL/mapfiles/marker.png');
	var aSpan = document.getElementById('dealer_'+currentDealer);
	if (aSpan)
		aSpan.className = "";
	currentMarker = marker;
	currentDealer = html;
	if (currentMarker)
		currentMarker.setImage('images/locator/marker_yellow.png');
	var aSpan = document.getElementById('dealer_'+currentDealer);
	if (aSpan)
		aSpan.className = "highlighted";
	//alert (html);	

	// MS 2008-04-15 - jump to dealer info on click.
	document.location="#dealer_a"+currentDealer;

}

