var mappletArea = null;

function showMap(mapdiv, addressdiv, embed) {
    var point = null;
    address = document.getElementById(addressdiv);
    mappletArea = document.getElementById(mapdiv);
    var geocoder = null;
        
    if (embed) {
        ifrm = document.createElement("IFRAME");
        ifrm.setAttribute("src", embed);
        ifrm.setAttribute("frameborder", "no");
        ifrm.style.width = 360+"px";
        ifrm.style.height = 300+"px";
        ifrm.style.border = "0px solid #FFFFFF";

        while ( mappletArea.childNodes.length >= 1 ) {
            mappletArea.removeChild(mappletArea.firstChild);
        } 
        mappletArea.appendChild(ifrm);
        return;
    }

    if (GBrowserIsCompatible()) {

        if (!address) {
            return;
        }

        // geocode using the supplied address
        gAddress = address.innerHTML;
        geocoder = new GClientGeocoder();
        geocoder.getLocations(gAddress,
            function(locations) {
                if(locations && locations.Placemark && locations.Placemark.length && locations.Placemark[0] && locations.Placemark[0].AddressDetails && locations.Placemark[0].AddressDetails.Accuracy) {
                    if(locations.Placemark[0].AddressDetails.Accuracy >= 6) { 
                        point = String(locations.Placemark[0].Point.coordinates).split(',');
                        point = new GLatLng(point[1], point[0]);
                        createMap(point, point);
                    }
                }
            }
        );
    }
};

function createMap(point, marker_point) {
    var map = new GMap2(mappletArea);
    map.setCenter(point, 13);
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    var marker = null;
    if (marker_point) {
        marker = new GMarker(marker_point);
        map.addOverlay(marker);
    }
};

