document.addEvent('domready', function(){
									   
	initializeGMap();
	
	var instructionsSlide = new Fx.Slide('instructions', {
		transition: Fx.Transitions.Quad.easeInOut,
		duration: 1200
	});
	
	var directionsJacket = new Fx.Slide('directions_jacket', {
		transition: Fx.Transitions.Quad.easeInOut,
		duration: 1200,
		onStart: function()	{
			$("directions").empty();
			this.element.setStyle('overflow', 'hidden');
		},
		onComplete: function()	{
			if(this.open)	
				getDirections($('saddr').get('value'), getFromPoint);
			this.element.setStyle('overflow', 'auto');
		}
	}).hide();
	
	$('map_canvas').set('morph', {
		transition: Fx.Transitions.Quad.easeInOut,
		duration: 1200				
	});
	
	$$('#gmap').addEvent('submit', function()	{
		if ($('saddr').value != $('saddr').retrieve('formTip'))	{
			instructionsSlide.slideOut();
			directionsJacket.slideIn();
			$('map_canvas').morph({height:583});
			$$('#instructions_handle, #print_page').removeClass('hide');
			$$('#map_side_column .side_section_panel_sleeve').morph({
				'padding-bottom': 25
			});
			$$('#map_side_column H2').setStyles({
				'background-image': 'url(/graphics/border_dotted_horiz.gif)', 
				'padding-bottom': 18, 
				'margin-bottom': 28
			});
		}
		else	{
			$('saddr').focus();	
		}
		return false;
	});
	
	$('instructions_handle').addEvent('click', function(){
		directionsJacket.slideOut();
		instructionsSlide.slideIn();
		$('map_canvas').morph({height:451});
		$$('#instructions_handle, #print_page').addClass('hide');
		$$('#map_side_column .side_section_panel_sleeve').morph({
			'padding-bottom': 10
		});
		$$('#map_side_column H2').setStyles({
			'background-image': 'none', 
			'padding-bottom': 10, 
			'margin-bottom': 10
		});
		return false;
	});
	
	$('print_page').addEvent('click', function(){
		window.print();
	});
	
});

var map,
	gdir,
	geocoder = null,
	addressMarker,
	portsmouthPos,
	londonPos,
	busheyPos,
	localSearch = new GlocalSearch();
	
function initializeGMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2($("map_canvas"));
		gdir = new GDirections(map, $("directions"));
	
		var icon = new GIcon();
		icon.image = "/graphics/gmap_marker.png";
		icon.iconAnchor = new GPoint(22, 44);
		icon.infoWindowAnchor = new GPoint(16, 0);
		icon.iconSize = new GSize(44, 44);
	
		londonPos = new GLatLng(51.508663,-0.133754);
		portsmouthPos = new GLatLng(50.795168,-1.105849);
		busheyPos = new GLatLng(51.644917,-0.363498);
		
		var londonMarker = new GMarker(londonPos, {icon: icon});
		var portsmouthMarker = new GMarker(portsmouthPos, {icon: icon});
		var busheyMarker = new GMarker(busheyPos, {icon: icon});

		
		if ($('map_canvas').hasClass('portsmouth'))
			map.setCenter(portsmouthPos, 16);
		else if ($('map_canvas').hasClass('bushey'))
			map.setCenter(busheyPos, 16);
		else
			map.setCenter(londonPos, 16);
			
		map.addControl(new GLargeMapControl());
		map.addControl(new  GMapTypeControl());
		map.addOverlay(londonMarker);
		map.addOverlay(portsmouthMarker);
		map.addOverlay(busheyMarker);
		map.setMapType(G_SATELLITE_MAP);
	}
}
function getDirections(location, callbackFunction) {
	localSearch.setSearchCompleteCallback(null, function() {
		if (localSearch.results[0])	{
			callbackFunction(new GLatLng(localSearch.results[0].lat, localSearch.results[0].lng));
			//$('directions_jacket').setStyle('height', '').getParent().setStyle('height', '');
		}
		else	{	
			//$('directions_jacket').morph({height:89}).getParent().morph({height:91});
			$('directions').set('html', '<div class="noMatches"><h2>Sorry no matches found</h2><p>Please try re-entering a location</p></div>');
		}
	});	
	localSearch.execute(location + ", UK");
}
function getFromPoint(from){
	var pos;
	
	if($('daddr').get('value') == "PO1 2JH") {
		pos = portsmouthPos;
	}else if ($('daddr').get('value') == "WD23 3YG") {
		pos = busheyPos;
	}else{
		pos = londonPos;
	}
	
	gdir.loadFromWaypoints([from, pos]);
}

window.onunload=GUnload;
