var googlemapdiv = null;
var map = null;
var ptStapleford = null;

var ptStH = null;
var mkStH = null;
var iwStH = '<div style="width:240px"><h3>St Helen&rsquo;s Church</h3><p>Limited parking in Frederick Road between Church Lane and Mill Road and surrounding streets</p></div>'

var ptStL = null;
var mkStL = null;
var iwStL = '<div style="width:240px"><h3>St Luke&rsquo;s Church</h3><p>Limited parking on verge opposite and surrounding streets</p></div>';

var ptCPCliff = null;
var mkCPCliff = null;
var iwCPCliff ='<div style="width:240px"><h3>Cliff Hill Ave Car Park</h3><p>Unlimited time</p></div>'

var ptCPVictoria = null;
var mkCPVictoria = null;
var iwCPVictoria = '<div style="width:240px"><h3>Victoria Street Car Park</h3><p>Limited time</p></div>'

function labelStHelens() { mkStH.openInfoWindowHtml(iwStH); }
function labelStLukes() { mkStL.openInfoWindowHtml(iwStL); }
function labelCliffHillAve() { mkCPCliff.openInfoWindowHtml(iwCPCliff); }
function labelVictoriaStreet() { mkCPVictoria.openInfoWindowHtml(iwCPVictoria); }
function clearLabel() { map.closeInfoWindow(); }

function createMarker(point, icon, html) {
    var marker = new GMarker(point,icon);
    GEvent.addListener(marker, "mouseover", function() { marker.openInfoWindowHtml(html);});
    GEvent.addListener(marker, "mouseout", function() { map.closeInfoWindow(); });
    GEvent.addListener(marker, "click", function() { showSatellite(point, 17);});
    return marker;
}

function showSatellite(point, zoom) {
    map.setCenter(point, zoom);
    var x = map.getMapTypes(); 
    map.setMapType(x[2]); 
}

function showStapleford() { showSatellite(ptStapleford, 14); }
function showStHelens() { showSatellite(ptStH, 17); }
function showStLukes() { showSatellite(ptStL, 17); }
function showCliffHill() { showSatellite(ptCPCliff, 17); }
function showVictoriaStreet() { showSatellite(ptCPVictoria, 17); }
        
function loadMap() {
    if (GBrowserIsCompatible()) {
        
        googlemapdiv = document.getElementById("googlemap");
        googlemapdiv.style.display = "block";
        var mapinstructionsdiv = document.getElementById("googlemapinstructions");
        mapinstructionsdiv.style.display = "block";

        var baseIcon = new GIcon();
        baseIcon.iconSize=new GSize(32,32);
        baseIcon.shadowSize=new GSize(56,32);
        baseIcon.iconAnchor=new GPoint(16,32);
        baseIcon.infoWindowAnchor=new GPoint(16,0);

        var church = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal2/icon11.png", null, "http://maps.google.com/mapfiles/kml/pal2/icon11s.png");
        var car    = new GIcon(baseIcon, "http://maps.google.com/mapfiles/kml/pal4/icon62.png", null, "http://maps.google.com/mapfiles/kml/pal4/icon62s.png");
        
        map = new GMap2(googlemapdiv);
        map.addControl(new GSmallZoomControl());
        map.addControl(new GMapTypeControl());
        ptStapleford = new GLatLng(52.9330,-1.2690)
        map.setCenter(ptStapleford, 14);
        var x = map.getMapTypes(); 
        map.setMapType(x[0]);
        
        map.enableDoubleClickZoom();
        map.enableContinuousZoom();
        
        ptStH = new GLatLng(52.9314,-1.2746);  
        mkStH = createMarker(ptStH, church, iwStH)
        map.addOverlay(mkStH);
        
        ptStL = new GLatLng(52.9403,-1.2773);  
        mkStL = createMarker(ptStL, church, iwStL)
        map.addOverlay(mkStL);
        
        ptCPCliff = new GLatLng(52.9289,-1.2736);  
        mkCPCliff = createMarker(ptCPCliff, car, iwCPCliff)
        map.addOverlay(mkCPCliff);

        ptCPVictoria = new GLatLng(52.92835,-1.27589);  
        mkCPVictoria = createMarker(ptCPVictoria, car, iwCPVictoria)
        map.addOverlay(mkCPVictoria);

        
    } else {
        var parishmapdiv = document.getElementById("parishmap");
        parishmapdiv.style.display = "block";
    }
}

window.onload = function () { loadMap(); }
window.onunload =  function () { GUnload(); }
