function main(id, lng, lat, zoom, width, height, title, body, url) {
    width = parseInt('0'+width);
    height = parseInt('0'+height);
    if (width <= 0 || width > 425) {
        width = 425;
    }
    if (height <= 0 || height > 350) {
        height = 350;
    }
    if (zoom < 0 || zoom > 19) {
        zoom = 10;
    }
    if(lng <= 0 || lat <= 0) {
        return;
    }
    var id = decodeURIComponent(id);
    while (id.match(/</)) {
        id = id.replace('<','&lt;');
    }
    while (id.match(/>/)) {
        id = id.replace('>','&gt;');
    }
    if (!title) {
        title = "";
    } else {
        title = decodeURIComponent(title);
        while (title.match(/</)) {
            title = title.replace('<','&lt;');
        }
        while (title.match(/>/)) {
            title = title.replace('>','&gt;');
        }
    }
    if (!body) {
        body = "";
    } else {
        body = body.replace(/%0D/g,'');
        body = decodeURIComponent(body);
        while (body.match(/</)) {
            body = body.replace('<','&lt;');
        }
        while (body.match(/>/)) {
            body = body.replace('>','&gt;');
        }
        while (body.match(/\n/)) {
            body = body.replace('\n','<br>');
        }
    }
    if (!url) {
        url = "";
    } else {
        url = decodeURIComponent(url);
        while (url.match(/</)) {
            url = url.replace('<','&lt;');
        }
        while (url.match(/>/)) {
            url = url.replace('>','&gt;');
        }
        if (url != "" && !url.match(/^http:\/\//)) {
            url = 'http://' + url;
        }
        if (title == "") {
            title = url;
        }
    }

    var html = '';
    var Maps = MapNumber++;
    var gmapkey = $('gmapkey').value;

    document.writeln(id+'<br/><div id="map'+Maps+'" style="width: '+width+'px; height: '+height+'px;"></div>\n');
    document.writeln('<script src="http://maps.google.com/maps?file=api&v=2&key=' + gmapkey + '" type="text/javascript" charset="utf-8"></script>');
    document.writeln('<script src="http://www.google.com/uds/api?file=uds.js&amp;v=1.0&a...' + gmapkey + '" type="text/javascript"></script>');
html = '<script type="text/javascript">\n'
    if (url != "") {
        html = '<script type="text/javascript">\n'
        + '<!--\n'
        + ' MapArray.push("onLoadMap_'+Maps+'()");\n'
        + 'function onLoadMap_'+Maps+'() {\n'
        + 'var map = new GMap2(document.getElementById("map'+Maps+'"));\n'
        + ' var point = new GLatLng(parseFloat('+lat+'), parseFloat('+lng+'));\n'
        + ' map.setCenter(point, '+zoom+');\n'
        + ' map.addControl(new GSmallMapControl());\n'
        + ' map.addControl(new GMapTypeControl());\n'
        + ' \n'
        + ' var marker = new GMarker(point);\n'
        + ' map.addOverlay(marker);\n'
        + ' var message = \'<a href="' + url + '" target="_blank"><b>' + title + '</b></a><br><br>' + body + '\';\n'
        + ' marker.openInfoWindowHtml(message);\n'
        + ' GEvent.addListener(marker, "click", function() {\n'
        + '     marker.openInfoWindowHtml(message);\n'
        + ' });\n'
        + '}'
        + '//-->\n'
        + '</script>\n';
    } else if (title != "" || body != "") {
        html = '<script type="text/javascript">\n'
        + '<!--\n'
        + ' MapArray.push("onLoadMap_'+Maps+'()");\n'
        + 'function onLoadMap_'+Maps+'() {\n'
        + 'var map = new GMap2(document.getElementById("map'+Maps+'"));\n'
        + ' var point = new GLatLng(parseFloat('+lat+'), parseFloat('+lng+'));\n'
        + ' map.setCenter(point, '+zoom+');\n'
        + ' map.addControl(new GSmallMapControl());\n'
        + ' map.addControl(new GMapTypeControl());\n'
        + ' \n'
        + ' var marker = new GMarker(point);\n'
        + ' map.addOverlay(marker);\n'
        + ' var message = \'<b>'+title+'</b><p>'+body+'\';\n'
        + ' marker.openInfoWindowHtml(message);\n'
        + ' GEvent.addListener(marker, "click", function() {\n'
        + '     marker.openInfoWindowHtml(message);\n'
        + ' });\n'
        + '}'
        + '//-->\n'
        + '</script>\n';
    } else {
        html = '<script type="text/javascript">\n'
        + '<!--\n'
        + ' MapArray.push("onLoadMap_'+Maps+'()");\n'
        + 'function onLoadMap_'+Maps+'() {\n'
        + 'var map = new GMap2(document.getElementById("map'+Maps+'"));\n'
        + ' var point = new GLatLng(parseFloat('+lat+'), parseFloat('+lng+'));\n'
        + ' map.setCenter(point, '+zoom+');\n'
        + ' map.addControl(new GSmallMapControl());\n'
        + ' map.addControl(new GMapTypeControl());\n'
        + ' \n'
        + ' var marker = new GMarker(point);\n'
        + ' map.addOverlay(marker);\n'
        + '}'
        + '//-->\n'
        + '</script>\n';
    }
    document.writeln(html);
}

