﻿// Google Maps Functions

var address;
var coords;
var html;

geocoder = new GClientGeocoder();

//var icon = MapIconMaker.createLabeledMarkerIcon({addStar: true, label: "a", primaryColor: "#00ff00"});
//    icon.image = "abc.png";
//    icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
//    icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
//    icon.iconSize = new GSize(24, 24);
//    icon.shadowSize = new GSize(40, 40);
//icon.iconAnchor = new GPoint(6, 20); 
//icon.infoWindowAnchor = new GPoint(25, 7);


function CreateMarkers(map, path) {

var request = GXmlHttp.create();

request.open("GET", path, true);
request.onreadystatechange = function() {
if (request.readyState == 4) 
    {
        var addresses = request.responseXML

        var elem2 = addresses.documentElement.getElementsByTagName("*");
        for(var i = 0; i < elem2.length; i++)
        {
            if (elem2[i].getElementsByTagName("Address")[0] != undefined) 
                {
                var addr = elem2[i].getElementsByTagName("Address")[0].firstChild.nodeValue;
                var title = elem2[i].getElementsByTagName("Title")[0].firstChild.nodeValue;
                var label = elem2[i].getElementsByTagName("Label")[0].firstChild.nodeValue;
                var colour = elem2[i].getElementsByTagName("GoogleMapIconColour")[0].firstChild.nodeValue;
                ShowAddress(map, addr, title, label, colour);
                }
        }
       
        var elem = addresses.documentElement.getElementsByTagName("Address");
        
    }
}
request.send(null);

}


function ShowAddress(map, address, title, label, colour)
{
 	geocoder.getLatLng(address, function(point)
 	{
  	if (!point)
  		{
   		  document.getElementById("mapmessages").innerHTML = document.getElementById("mapmessages").innerHTML + 'Not Found: ' + title + ', ' + address + '<br />'
  		} 
	else
  		{
  		var icon = CreateIcon(label, colour)
   		var marker = new GMarker(point, {icon:icon, title: title, labelText: ""});

	//	GEvent.addListener(marker, "mouseover", function() {
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(address);
		});

  		map.addOverlay(marker);
  		}
 	}) ;
}

function CreateIcon(label, colour)
{

//var createicon = MapIconMaker.createLabeledMarkerIcon({addStar: false, label: label, primaryColor: colour,  cornerColor: "ffffff"});
var createicon = MapIconMaker.createFlatIcon({width: 30, height: 30, label: label, primaryColor: colour});

createicon.iconAnchor = new GPoint(6, 20); 
createicon.infoWindowAnchor = new GPoint(25, 7);
return createicon;

}

function getMapCentreAddress() {

    var cmbRegion = document.getElementById("ctl00_content_left_inner_holder_cmbRegion");
    var cmbDistrict = document.getElementById("ctl00_content_left_inner_holder_cmbDistrict");
    
    var MapCentre = cmbDistrict.options[cmbDistrict.selectedIndex].text;
    var MapCentreAddress;
    
    if (MapCentre.substring(0,1) == '*')
    {
        MapCentreAddress = cmbRegion.options[cmbRegion.selectedIndex].value;
    }
    else 
    {
        MapCentreAddress = cmbDistrict.options[cmbDistrict.selectedIndex].value;
    }
      
    if (MapCentreAddress.length == 1)
    {
        MapCentreAddress = '****';
    }
    
    cmbRegion = null;
    cmbDistrict = null;
    MapCentre = null;

    return MapCentreAddress;

}



function GetXML(path) {

var xmlrequest = GXmlHttp.create();
xmlrequest.open("GET", path, true);
xmlrequest.onreadystatechange = function() {
    if (xmlrequest.readyState == 4) 
        {
            return GetXML = xmlrequest.responseXML
        }
    }
}

function GetPath() {

//  Build URL path for the XML Request

    var cmbBookingType = document.getElementById("ctl00_content_left_inner_holder_cmbBookingType");
    var cmbRegion = document.getElementById("ctl00_content_left_inner_holder_cmbRegion");
    var cmbDistrict = document.getElementById("ctl00_content_left_inner_holder_cmbDistrict");
    var Path;
    
    var RegionOrDistrict = cmbDistrict.options[cmbDistrict.selectedIndex].text;
    
    if (RegionOrDistrict.substring(0,1) == '*')
    {
        Path = '/BookingDetailsXML.aspx?BookingType=' + cmbBookingType.options[cmbBookingType.selectedIndex].value + '&Region=' + cmbRegion.options[cmbRegion.selectedIndex].text;
    }
    else 
    {
        Path = '/BookingDetailsXML.aspx?BookingType=' + cmbBookingType.options[cmbBookingType.selectedIndex].value + '&District=' + cmbDistrict.options[cmbDistrict.selectedIndex].text;
    }
    
    return getPath = Path;


}

function LoadMap() 
{

    document.getElementById("mapmessages").innerHTML = ""

    path=GetPath()

    //document.getElementById('content_left').style.height=document.getElementById('content_right').offsetHeight + 20 + 'px';
	var map = new GMap2(document.getElementById("map"));
	
	var mapcentreaddress; 
	
	mapcentreaddress = getMapCentreAddress();
	
	geocoder.getLatLng(mapcentreaddress, function(mapcentre) {map.setCenter(mapcentre, 10);});

	map.setUIToDefault();

    if (GBrowserIsCompatible()) 
	{
        CreateMarkers(map, path);
    }
    
    return false;
}





