﻿var geocoder = null;
var markers_array = new Array();
var map = null;


function onLoad() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById('map'), { size: new GSize(432, 400) });
        map.setCenter(new GLatLng(-41.299121377866726, 173.23506116867065), 15);
        map.setUIToDefault();

        GDownloadUrl("XMLFile.xml", loadMarker);
    }
}

function showlocate() {
//    map.clearOverlays();
    geocoder = new GClientGeocoder();
    var address = document.getElementById('ctl00_FrontPage_txtSearch').value + document.getElementById('ctl00_FrontPage_ddlCountry').options[document.getElementById("ctl00_FrontPage_ddlCountry").selectedIndex].text;
    geocoder.getLocations(address, cb_showlocation);
    return true;
}

function cb_showlocation(result) {
    if (!result || result.Status.code != 200) {
        alert("Can not find this address!!");
    }
    else {
        var place = result.Placemark[0]
        var lat = place.Point.coordinates[1];
        var lng = place.Point.coordinates[0];
        var address = place.address;
        var point = new GLatLng(lat, lng);
        map.setCenter(point, 10);

//        GDownloadUrl("XMLFile.xml", loadMarker);
    }
}

function showCountrylocate() {
//    map.clearOverlays();
    geocoder = new GClientGeocoder();
    var address = document.getElementById('ctl00_FrontPage_ddlCountry').options[document.getElementById("ctl00_FrontPage_ddlCountry").selectedIndex].text;
    geocoder.getLocations(address, cb_showlocations);
}

function cb_showlocations(result) {
    if (!result || result.Status.code != 200) {
        alert("Can not find this address!!");
    }
    else {
        var place = result.Placemark[0]
        var lat = place.Point.coordinates[1];
        var lng = place.Point.coordinates[0];
        var address = place.address;
        var point = new GLatLng(lat, lng);
        map.setCenter(point, 4);
    }
}

function showRegionlocate() {
   // map.clearOverlays();
    geocoder = new GClientGeocoder();
    var address = document.getElementById('ctl00_FrontPage_ddlRegion').options[document.getElementById("ctl00_FrontPage_ddlRegion").selectedIndex].text + document.getElementById('ctl00_FrontPage_ddlCountry').options[document.getElementById("ctl00_FrontPage_ddlCountry").selectedIndex].text;
    if (address != "Select") {
        geocoder.getLocations(address, cb_showRegionlocations);
    }
}

function cb_showRegionlocations(result) {
    if (!result || result.Status.code != 200) {
        alert("Can not find this address!!");
    }
    else {
        var place = result.Placemark[0]
        var lat = place.Point.coordinates[1];
        var lng = place.Point.coordinates[0];
        var address = place.address;
        var point = new GLatLng(lat, lng);
        map.setCenter(point, 7);

//        GDownloadUrl("XMLFile.xml", loadMarker);
    }
}

function loadMarker(doc) {
    var xmlDoc = GXml.parse(doc);
    var markers = xmlDoc.documentElement.getElementsByTagName("markers");
    //        alert(markers.length);
    for (var i = 0; i < markers.length; i++) {
        var mk = markers[i];
        var id = mk.getElementsByTagName("SupplierID")[0].firstChild.nodeValue;
        var lat = mk.getElementsByTagName("Lat")[0].firstChild.nodeValue;
        var lng = mk.getElementsByTagName("Lng")[0].firstChild.nodeValue;
        var point = new GLatLng(lat, lng);
        var marker = new GMarker(point);

        marker.bindInfoWindowHtml("<div><iframe width=280 frameborder=0 scrolling=auto src='ShopDetails.aspx?id=" + id + "'></iframe></div>");

        markers_array.push(marker);
    }
    var mm = new GMarkerManager(map);

    mm.addMarkers(markers_array, 0);
    mm.refresh();
}

function show(obj) {
    var el = obj.parentNode.getElementsByTagName('input');
    for (var i = 0; i < el.length; i++) {
        if (el[i].type == 'hidden') {
            if (el[i].id.indexOf('HiddenLat') != -1)
                var lat = el[i].value;
            //alert('this is' + el[i].value);
            else if (el[i].id.indexOf('HiddenLong') != -1)
                var lng = el[i].value;
            //alert('this is' + el[i].value);
            else if (el[i].id.indexOf('HiddenID') != -1)
                var id = el[i].value;
        }
    }
    if (lat != null && lng != null) {
        map.clearOverlays();
        var point = new GLatLng(lat, lng);
        //map.panTo(point);
        map.setCenter(point, 17);
        marker = new GMarker(point);
        map.addOverlay(marker);
        marker.bindInfoWindowHtml("<div><iframe with=200 frameborder=0 scrolling=auto src='ShopDetails.aspx?id=" + id + "'></iframe></div>");
    }
    else {
        alert('This address has not been set!');
    }
}