﻿

function GoogleMaps() {

}



/**
* Gets the url for a static map
* @param address {String} The address to put centered on the map
* @param height {Number} The height of the image in pixels 
* @param width {Number} The width of the image in pixels 
* @param zoom {Number} The value of the zoom
* @param markers {MapMarker[]} Array of MapMarker objects
* @optional height 250
* @optional width 350
* @optional zoom 14
* @optional markers null
*/
GoogleMaps.prototype.getStaticMap = function(address, height, width, zoom, markers) {
	var rootURL = "http://maps.google.com/maps/api/staticmap?sensor=false&mobile=false&format=png32&maptype=roadmap";
	var z = zoom ? "&zoom=" + zoom.toString() : "zoom=14";
	var w = width ? width.toString() : "350";
	var h = height ? height.toString() : "250";
	var s = "&size=" + w + "x" + h;
	var c = "&center=" + address;
	var m = "";
	if (markers != null) {
		for (var i = 0; i < markers.length; ++i) {
			var mark = markers[i];
			m += "&markers=" + mark.toString();
		}
	}
	return rootURL + z + s + c + m;
};

GoogleMaps.prototype.getStaticMapWithMarkerAtCenter = function(address, height, width, zoom) {
	var markers = [new MapMarker("red", "A", [address], null)];

	return this.getStaticMap(address, height, width, zoom, markers);
};

GoogleMaps.prototype.getDirections = function(address) {
	return "http://maps.google.com/maps?daddr=" + address;
};



/**
*
*/
function MapMarker(color, label, points, size) {
	this.label = label;
	this.color = color;
	this.points = points;
	this.size = size;
}

var MapMarkerSize = {
	Tiny: "tiny",
	Mid: "mid",
	Small: "small",
	Default: null
};

MapMarker.prototype.toString = function() {
	var r = "";
	r += this.label ? "label=" + this.label + "|" : "";
	r += this.color ? "color=" + this.color + "|" : "";
	r += this.size ? "size=" + this.size + "|" : "";

	for (var i = 0; i < this.points.length; ++i) {
		var p = this.points[i];
		r += p ? p + "|" : "";
	}
	if (r.substring(r.length - 1, r.length) === "|") {
		r = r.substring(0, r.length - 1);
	}
	return r;
};

var googleMaps = new GoogleMaps();


