function Marker(point,html,icon) {
	var marker
	var Icon
	if(icon > 0)
	{	
		Icon = new GIcon(G_DEFAULT_ICON);
		Icon.image = "img/marker/"+icon+".png";
		markerOptions = { icon:Icon };
		marker = new GMarker(point,Icon);
	}
	else
	{
		marker = new GMarker(point);
	}

	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
		map.setCenter(point,12);
	});
	GEvent.addListener(marker, "mouseover", function() {
		marker.openInfoWindowHtml(html);
	});
	GEvent.addListener(marker, "mouseout", function() {
		marker.closeInfoWindow();
	});
	return marker;
}
var map;
function initialize() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		map.setCenter(new GLatLng(0,0),0);   
		var mt = map.getMapTypes();
		var bounds = new GLatLngBounds();
		var geocoder = new GClientGeocoder();

		var Icon = new GIcon(G_DEFAULT_ICON);
		Icon.image = "img/marker/1.png";
		markerOptions = { icon:Icon };

		loaddata = function(doc) {
			lines = doc.split("\n");
			for (var i=0; i<lines.length; i++) {
				if (lines[i].length > 1) {
					parts = lines[i].split(",");
					var lat,lng,name,ady,num,ll,marker;
					lat = parseFloat(parts[0]);
					lng = parseFloat(parts[1]);
					ll = new GLatLng(lat,lng)
					bounds.extend(ll);
					map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));
					if(parts.length > 6)
					{
						marker = Marker(ll,"<strong>"+parts[3]+"</strong><br/>"+parts[2]+"<br/>"+parts[4]+"<br/>"+parts[5],parts[6]);
					}
					else if(parts.length > 5)
					{
						marker = Marker(ll,"<strong>"+parts[3]+"</strong><br/>"+parts[2]+"<br/>"+parts[4]+"<br/>"+parts[5],0);
					}
					else
					{
						marker = new GMarker(ll);
						alert(ll.toString());
					}
					map.addOverlay(marker);
				}
			}
			var bzl = map.getBoundsZoomLevel(bounds);
			for (var i=0; i<mt.length; i++) {
				mt[i].getMinimumResolution = function() {return bzl;}
			}
		}
		GDownloadUrl("truckscales.csv", loaddata);
		
		
		var location;
		if(location)
		geocoder.getLatLng(location,
		function(point) {
			if (!point) {
				alert(address + " not found");
			} else {
				var mark = new GMarker(point);
				map.addOverlay(mark);
				bounds.extend(point);
				map.setCenter(point,13);
				alert(point.toString());
			}
		}
		);
		//map.setUIToDefault();
		map.addControl(new GLargeMapControl());
		map.enableScrollWheelZoom();
		
		GEvent.addListener(map, "move", function() {
			move();
		});
		
		function move() {
			// Perform the check and return if OK
			if (bounds.contains(map.getCenter())) {
				return;
			}
			// It`s not OK, so find the nearest allowed point and move there
			var C = map.getCenter();
			var X = C.lng();
			var Y = C.lat();

			var AmaxX = bounds.getNorthEast().lng();
			var AmaxY = bounds.getNorthEast().lat();
			var AminX = bounds.getSouthWest().lng();
			var AminY = bounds.getSouthWest().lat();

			if (X < AminX) {X = AminX;}
			if (X > AmaxX) {X = AmaxX;}
			if (Y < AminY) {Y = AminY;}
			if (Y > AmaxY) {Y = AmaxY;}
			//alert ("Restricting "+Y+" "+X);
			map.setCenter(new GLatLng(Y,X));
		}
	}
}