function createMarker(point) {
	var customIcon = new GIcon();
	customIcon.image = window.rootVirtual + "/_img/misc/cbs-marker.png";
	//customIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	customIcon.iconSize = new GSize(70, 45);
	//customIcon.shadowSize = new GSize(22, 20);
	customIcon.iconAnchor = new GPoint(35, 45);
	customIcon.infoWindowAnchor = new GPoint(35, 30);

	markerOptions = { icon:customIcon };
	var marker = new GMarker(point, markerOptions);
	return marker;
}

var map;
var postions;
var dir;
var polyline;

function onLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		//positions = new GLatLng(47.651815, -122.352119);
		positions = new GLatLng(47.65257, -122.357067);
		dir = new GDirections(map);
		
		map.addControl(new GSmallZoomControl3D());
		map.setCenter(positions, 16);
	
		var marker = createMarker(positions);
 		map.addOverlay(marker);
		var htmlDir = "<b>Get Directions to the Studio</b><br /><form id='gmap-directions' action='#' onsubmit='setDirections(this.saddr.value); return false'>Start Address<br /><input type='text' size='20' value='' id='saddr' name='saddr' /> <input type='submit' id='gmap-submit' value='Go' /></form>";
		var htmlAddr = "<b>Cascade Bicycle Studio</b><br />115 North 36th Street, Suite A<br/>Seattle, WA 98103";
		var tabs = [];
		GEvent.addListener(marker, 'click', function() {
	        tabs[0] = (new GInfoWindowTab('Address', htmlAddr));
	        tabs[1] = (new GInfoWindowTab('Directions', htmlDir));	
			map.openInfoWindowTabsHtml(positions, tabs);	
		});	
	 	/*GEvent.addListener(map.getInfoWindow(), 'closeclick', function() {
		 marker.show();
		});*/

	  	if($('size-map')) {
			var exp = $('size-map');
			var originalX = $('map').getWidth();
			var originalY = $('map').getHeight();
			var toY;
			var msg;			
			exp.observe('click', function(e) {
				e.stop();
				if($('map').hasClassName('expanded') === true) {
					toY = originalY + "px";
					msg = "[+] Expand";
					
				}
				else {
					toY = "400px";
					msg = "[-] Contract"; 
				}
				
				var morphing = new Effect.Morph('map', {
					style: 'height: ' + toY,
					afterFinish: function(evt) {
						var center = map.getCenter();
						map.checkResize();
						map.panTo(center);
						$('map').toggleClassName('expanded');
						$('size-map').update(msg);	
					}
				});
		  		
			}.bind(this));
	   	}	   		   		
	}	   
  	else {
  		$("map").innerHTML = "<p>Unfortunately, your browser doesn't support Google Maps</p>";
  	}
  	 
}

function setDirections(fromAddress) {
  map.closeInfoWindow();
  dir.clear();
  dir.load("from: " + fromAddress + " to: 47.65257, -122.357067", { locale: "en" });
  GEvent.addListener(dir, "addoverlay", hideDirMarkers); 
}

function hideDirMarkers() {
	var numMarkers = dir.getNumGeocodes()
	  for (var i = 1; i < numMarkers; i++) {
          var marker = dir.getMarker(i);
          if (marker != null) {
                  marker.hide();
          }
	  } 
}

if(google) {
	google.setOnLoadCallback(onLoad);
}

