function init() {
	map_center = new MQLatLng(36.168998, -115.192611);
	map = new MQTileMap(dojo.byId("MapWindow"), 11, map_center, "map");
	
	var map_control_zoom = new MQLargeZoomControl(map);
	map.addControl(map_control_zoom, new MQMapCornerPlacement(MQMapCorner.TOP_LEFT, new MQSize(5, 15)));
	
	var map_view_control = new MQViewControl(map);
	map.addControl(map_view_control, new MQMapCornerPlacement(MQMapCorner.TOP_RIGHT, new MQSize(150, 0)));
	
	var form = dojo.byId("Search");
	if(form) {
		dojo.connect(form, "onsubmit", null, "submitSearch");
	}
	
	var new_directions = dojo.byId("NewDirections");
	if(new_directions) {
		dojo.connect(new_directions, "onclick", "newDirections");
	}
	
	var print_directions = dojo.byId("PrintDirections");
	if(print_directions) {
		dojo.connect(print_directions, "onclick", "printable");
	};
	
	var reset_view = dojo.byId("Reset");
	if(reset_view) {
		dojo.connect(reset_view, "onclick", "recenter");
	}
	
	var get_directions  = dojo.byId("GetDirections");
	if(get_directions) {
		dojo.connect(get_directions, "onclick", "newDirections");
	}
	
	//Initialize POI
	var poi = new MQPoi(map_center);
	poi_name = "Springs Preserve";
	poi_address = "333 S. Valley View Blvd., Las Vegas, NV 89107";
	poi_content = "333 S. Valley View Blvd.<br />Las Vegas, NV 89107";
	poi_key = "SP";
	poi_content = poi_content;
	
	//Set POI attributes
	poi.setInfoTitleHTML(poi_name);
	poi.setInfoContentHTML(poi_content);
	poi.setKey(poi_key);
	var poi_icon = new MQMapIcon();
	var poi_icon_offset = new MQPoint;
	poi_icon_offset.setXY(-15, -30);
	poi_icon.setImage("images/red_poi.png", 30, 30, true, true);
	poi_icon.setAnchorOffset(poi_icon_offset);
	poi.setIcon(poi_icon);
	MQEventManager.addListener(poi, "infowindowopen", initPoiInfowindow);
	
	//Add POI to map
	map.addPoi(poi);
}

function submitSearch(e) {
	var input = dojo.byId("Origin");
	var query = input.value;
	dojo.byId("PreviousQuery").value = query;
	getRoute(e, null, "to", dojo.byId("Destination").value, query);
	input.blur();
	e.preventDefault();
}

function recenter(e) {
	var query = dojo.byId("Destination").value;
	spatialSearch(e, query);
}

function newDirections(e) {
	dojo.removeClass(dojo.byId("MapInfo"), "Hidden");
	
	//Set map size
	dojo.style(dojo.byId("MapWindow"), "width", "500px");
	var size = new MQSize();
	size.setWidth(500);
	size.setHeight(map.getSize().height);
	map.setSize(size);
	
	dojo.removeClass(dojo.byId("DirectionsAddress"), "Hidden");
	dojo.addClass(dojo.byId("Directions"), "Hidden");
	dojo.byId("Origin").value = "";
	e.preventDefault();
}

dojo.addOnLoad(init);

