
//<![CDATA[

var map;
var currentMapType; // global var to house the current map type
var icon0;
var newpoints = new Array();
var markers = new Array();


function addLoadEvent(func) { 
    var oldonload = window.onload; 
    if (typeof window.onload != 'function'){ 
        window.onload = func
    } else { 
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

    addLoadEvent(loadMap);
    addLoadEvent(addPoints);

function loadMap() {
    map = new GMap2(document.getElementById("map"));
    map.addMapType(G_SATELLITE_3D_MAP);
    map.addControl(new GHierarchicalMapTypeControl());
      
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng( 54.41892996865827, -7.119140625), 5);
    map.setZoom(12);
    
    if (currentMapType != null)
            map.setMapType(currentMapType);

    icon0 = new GIcon();
    icon0.image = "../_images/layout/finning_uk.png";
    icon0.iconSize = new GSize(22, 22);
    icon0.iconAnchor = new GPoint(9, 34);
    icon0.infoWindowAnchor = new GPoint(9, 2);
    icon0.infoShadowAnchor = new GPoint(18, 25);
    

}




function addPoints() {

    
    newpoints[0] = new Array(52.5982, -0.2844, icon0, 'Finnpave', '<span class=popup_header>Finnpave</span><br>2 Sturrock way<br>Off Bretton Way<br>Peterborough<br>Cambridge<br>PE3 8YF<br>Phone: 01733 334 545<br>Fax: 01733 334 546'); 
    
    
    for(var i = 0; i < newpoints.length; i++) {
        var point = new GPoint(newpoints[i][1],newpoints[i][0]);
        var popuphtml = newpoints[i][4];
        var marker = createMarker(point,newpoints[i][2],popuphtml);
        markers.push(marker);
        map.addOverlay(marker);
        GEvent.trigger(marker, "click"); 
    }
}

function createMarker(point, icon, popuphtml) {
    var popuphtml = "<div id=\"popup\">" + popuphtml + "<\/div>";
    var marker = new GMarker(point, icon);
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(popuphtml);
    });
    return marker;
}

function closestMarkerSearch(map, markers, zoom, address) {
    if (markers.length == 0) {
        throw new Exception('No markers given');
    }
    new GClientGeocoder().getLatLng(address, function(latLng) {
        if (latLng === null) {
            alert('Please enter a postcode in the correct UK format');
        } else {
            var distance;
            var closestDistance = null;
            var closestMarker = null;
            for (var i = 0; i < markers.length; i++) {
                distance = latLng.distanceFrom(markers[i].getLatLng());
                if (closestDistance === null || distance < closestDistance) {
                    closestDistance = distance;
                    closestMarker = markers[i];
                }
            }
            map.setZoom(12);
            map.setCenter(closestMarker.latLng);
            GEvent.trigger(closestMarker, 'click');
        }
    });
}
//]]>

function testPostCode () {
  var myPostCode = document.getElementById('postcode').value;
  if (checkPostCode (myPostCode)) {
    document.getElementById('postcode').value = checkPostCode (myPostCode)
    //alert ("Postcode has a valid format")
  } 
  
}

