/* ======================================================================== */
/* ======================================================================== */
/* ======================================================================== */

/* Google Maps code */
var map  ;
var geocoder ;	
var icon ;
var centerMap = false ;
var localSearch ;

function load() {
	if( !document.getElementById('map')){
		return false ;
	}
	else {
		localSearch = new GlocalSearch();		
		map = new GMap2(document.getElementById('map'));
		map.enableContinuousZoom();
		map.enableDoubleClickZoom();
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());
		
//		icon = new GIcon(G_DEFAULT_ICON);
		icon = new GIcon();

		var markerStyle = 'Push-Pin';
		var markerColor = 'pacifica';
	
		icon.image = '/images/google/pushpin/pacifica.png';
		icon.shadow = '/images/google/pushpin/shadow.png';
		icon.iconSize = new GSize(40,41);
		icon.shadowSize = new GSize(40,41);
		icon.iconAnchor = new GPoint(7,38);
		icon.infoWindowAnchor = new GPoint(26,4);
		icon.printImage = '/images/google/pushpin/pacifica.gif';
		icon.mozPrintImage = '/images/google/pushpin/pacifica_mozprint.png';
		icon.printShadow = '/images/google/pushpin/shadow.gif';
		icon.transparent = '/images/google/pushpin/pacifica_transparent.png';

		map.setCenter(new GLatLng(51.5153, -0.175718), 12);
		geocoder = new GClientGeocoder();
	}
}

function showAddress(params, callbackFunction) {
//	var args = params.split('&') ;
				
	if (params.split('&').length > 3 ) {
		centerMap = true ;
	}

	if (( params.split('&').length % 3 != 0 ) && (params.split('&').length % 4 != 0 ) ) {
		msg = "showAddress() must have three or four parameters, separated by ampersands "  ;
		msg = msg + "\ne.g.\nshowAddress ('postcode&popup message&building_id') " ;
		msg = msg + "\ne.g.\nshowAddress('NW6 4SY&West Hampstead,LONDON,NW6 4PY&2') ";
		alert(msg) ;
		return false;
	}
	else if (params.split('&').length < 3 ) {
		msg = "showAddress() must have at least three parameters, separated with ampersand. e.g.\nshowAddress ('postcode&popup message&building_id')" ; 
		msg = msg + "\n or \nshowAddress('postcode&popup message&building_id&center')"	  
		alert(msg) ;
		return false ; 
	}
	
	
	
	var postcode = params.split('&')[0];
	var fulladdress = params.split('&')[1] ; 
	var titleString = params.split('&')[1] ; 

	while (fulladdress.indexOf(",") > 0) {
		fulladdress = fulladdress.replace(",","<br />");
	}

	while (titleString.indexOf(",") > 0) {
		titleString = titleString.replace(",","\n");	
	}


/* =========================================================== */

	localSearch.setSearchCompleteCallback(null, 
		function() {			
			if (localSearch.results[0]) {		
				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				var point = new GLatLng(resultLat,resultLng);
				
//				callbackFunction(point,fulladdress,building_id,centerMap);
				callbackFunction(point,params);
			}
			else {
				alert("Postcode " + postcode + " not found!");
			}
		});	
	localSearch.execute(postcode + ", UK");
}


function placeMarkerAtPoint(point,params)
{
	var args = params.split('&') ;	
	postcode = args[0];
	fulladdress = args[1] ; 
	titleString = args[1] ; 
	building_id = args[2] ;

	var titleString = fulladdress ;
	
	while (fulladdress.indexOf(",") > 0) {
		fulladdress = fulladdress.replace(",","<br />");
	}
				
	while (titleString.indexOf(",") > 0) {
		titleString = titleString.replace(",","\n");	
	}

	var popupString = "<img src=\"/images/sulogo130.gif\" width=\"130\" height=\"45\" alt=\"Springboard Urban\" /><br />" 
	popupString = popupString + "Springboard Urban<br />" + fulladdress  + "<br />" ;  
	popupString = popupString + "<a href=roomlist.asp?building_id=" + building_id 
	popupString = popupString + ">View accommodation for this building </a>" ;	
				
//	window.alert("about to add marker with titleString:\n" + titleString );



	if (centerMap) { 
//	if centerMap is true ( i.e. there is more than three parameters, i.e there is 
//	more than one address, then center the map 
//	on Paddingtom station which is 51.51534,-0175718 at a zoom level of 11	
		var marker = new GMarker(point,{icon:icon});
		map.addOverlay(marker);			
		map.setCenter(new GLatLng(51.51534,-0.155748), 12) ;
	}
	else {
		var marker = new GMarker(point,{icon:icon, title:titleString});
		map.addOverlay(marker);			
		map.setCenter(point, 15);
		marker.openInfoWindowHtml(popupString);
		GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(popupString) } );
	}
}