/* ======================================================================== */
/* ======================================================================== */
/* ======================================================================== */

/* 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 = 'moab';
	
		icon.image = '/images/google/pushpin/moab.png';
		icon.shadow = '/images/google/pushpin/shadow.png';
		icon.iconSize = new GSize(41,41);
		icon.shadowSize = new GSize(40,41);
		icon.iconAnchor = new GPoint(7,38);
		icon.infoWindowAnchor = new GPoint(26,4);
		icon.printImage = '/images/google/pushpin/moab.gif';
		icon.mozPrintImage = '/images/google/pushpin/moab_mozprint.png';
		icon.printShadow = '/images/google/pushpin/shadow.gif';
		icon.transparent = '/images/google/pushpin/moab_transparent.png';

		map.setCenter(new GLatLng(50.868261, 0.546713), 13);
		geocoder = new GClientGeocoder();
	}
}

function showAddress(params, callbackFunction) {
//	var args = params.split('&') ;
				
	if (params.split('&').length > 2 ) {
		centerMap = true ;
	}

	if (( params.split('&').length % 2 != 0 ) && (params.split('&').length % 3 != 0 ) ) {
		msg = "showAddress() must have two or three parameters, separated by ampersands "  ;
		msg = msg + "\ne.g.\nshowAddress ('postcode&popup message') " ;
		msg = msg + "\ne.g.\nshowAddress('NW6 4SY&West Hampstead,LONDON,NW6 4PY') ";
		alert(msg) ;
		return false;
	}
	else if (params.split('&').length < 2 ) {
		msg = "showAddress() must have at least three parameters, separated with ampersand. e.g.\nshowAddress ('postcode&popup message')" ; 
		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);
				
//				alert(point);
				
//				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 = "<p class='black'>" 
	popupString = popupString + fulladdress + "<br />" ;  
	popupString = popupString + "<a target='_blank' href='http://maps.google.co.uk/maps?q=Collins%20and%20hayes,%20TN38+9XF' >" ; 
	popupString = popupString + "Find directions on Google Maps</a>" ;	
				
//	window.alert("about to add marker with titleString:\n" + titleString );

	popupString = popupString + "</p>"   ;  



//	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, 13);
		marker.openInfoWindowHtml(popupString);
		GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(popupString) } );
//	}
}
