function gwGoogleMap( latitude, longitude, zoomLevel, description, divIDString )
{
    var elementWidth = getElementWidth( divIDString );
    var mapElement = document.getElementById( divIDString );
    mapElement.style.width = elementWidth + 'px';
    mapElement.style.height = ( elementWidth / 4 * 3 ) + 'px';

    if (GBrowserIsCompatible())
    {
       var zoomValue  = parseFloat( zoomLevel );
       var map = new GMap2( mapElement );
       var latlng = new GLatLng( latitude, longitude );
       var marker = new GMarker( latlng );

       if ( description != '' )
       {
           GEvent.addListener( marker, "click", function()
           {
               map.openInfoWindow( latlng,
                                   document.createTextNode( description ));
           });
       }

       map.enableScrollWheelZoom();
       if ( elementWidth > 400 )
       {
           map.enableGoogleBar();
       }
//     map.addControl(new GNavLabelControl());
       map.setUIToDefault()
       map.setCenter( latlng, zoomValue);
       map.addOverlay( marker );

       if ( description != '' )
       {
           map.openInfoWindow( latlng,
                               document.createTextNode( description ));
       }
    }
}

function getElementWidth( elementID )
{
    var element = document.getElementById( elementID );
    if ( element.currentStyle )
    {
        var width = element.offsetWidth.toString();
    }
    else
    {
        var width = document.defaultView.getComputedStyle( element, '' ).getPropertyValue('width').toString();
    }

    return parseInt( width.replace(/\px/, "") );
}
