function createMap(map_id, lat, lng, zoom, map, type, scale, overview, map_type) {
    if(lat == undefined) {
	lat = 0.0;
    }
    if(lng == undefined) {
	lng = 0.0;
    }
    if(zoom == undefined) {
	zoom = 0;
    }
    if(map == undefined) {
	map = 'small';
    }
    if(type == undefined) {
	type = 'small';
    }
    if(scale == undefined) {
	scale = false;
    }
    if(overview == undefined) {
	overview = false;
    }
    if(map_type == undefined || map_type == 'map') {
	map_type = G_NORMAL_MAP;
    }
    else if(map_type == 'satellite') {
	map_type = G_SATELLITE_MAP;
    }

    // Create map (gmap)
    var gmap = new GMap2(document.getElementById(map_id));
    // Keyboard
    new GKeyboardHandler(gmap);
    // s_zoom
    gmap.enableContinuousZoom();
    // mause_zoom
    gmap.enableScrollWheelZoom()
    // set center
    gmap.setCenter(new GLatLng(lat, lng), zoom, map_type);
    // map control
    if (map == 'large') {
	gmap.addControl(new GLargeMapControl());
    }
    else if (map == 'small') {
	gmap.addControl(new GSmallMapControl());
    }
    else if (map == 'zoom') {
	gmap.addControl(new GSmallZoomControl());
    }
    // map type control
    if (type == 'small') {
	gmap.addControl(new GMapTypeControl(true));
    }
    else if (type) {
	gmap.addControl(new GMapTypeControl());
    }
    // scale control
    if (scale) {
	gmap.addControl(new GScaleControl());
    }
    // overview control
    if (overview) {
	gmap.addControl(new GOverviewMapControl());
    }
    return gmap;
}

url = "http://www.hakobura.jp"

// Create center marker icon
var center_icon = new GIcon();
center_icon.image = url + "/centermarker.png";
center_icon.shadow = url + "/centermarker_shadow.png";
center_icon.iconSize = new GSize( 23 , 23 );
center_icon.shadowSize = new GSize( 29 , 29 );
center_icon.iconAnchor = new GPoint( 11 , 11 );

// Create markers icon and events
function createMarker(map, lat, lng, icon_src) {
        
    url = "http://www.hakobura.jp"
    // Create marker icon
    var icon = new GIcon();
    icon.image = icon_src;
    icon.shadow = url + "/gmap_shadow.png";
    icon.iconAnchor = new GPoint(15, 30);
    icon.infoWindowAnchor = new GPoint(9, 2);
    
    var point = new GLatLng(lat, lng);
    var marker = new GMarker(point, icon);
    map.addOverlay(marker);
    //緯度経度とアイコン情報を返す
    return marker;
}
function addCenterMarker(map) {
    var center_marker = new GMarker(map.getCenter(), center_icon);
    map.addOverlay(center_marker);

    GEvent.addListener(map , "moveend" , function() {
	map.removeOverlay(center_marker);
        center_marker = new GMarker(map.getCenter(), center_icon);
        map.addOverlay(center_marker);
    });

}
function createMarker2(point, label, href, icon_src, marker_id) {

    url = "http://www.hakobura.jp"
    // Create marker icon
    var icon = new GIcon();
    icon.image = icon_src;
    icon.iconAnchor = new GPoint(15, 30);
    icon.infoWindowAnchor = new GPoint(9, 2);

    var marker = new GMarker(point,icon);

    GEvent.addListener(marker, "click", function() {
	var html = '';
	var balloon_url = url + '/contents/' + marker_id + '/gmap_window';
	GDownloadUrl(balloon_url, function(data, responseCode) {
	    if(responseCode == 200) {
		html = data; 
		marker.openInfoWindowHtml(html);
	    } else if(responseCode == -1) {
		alert("タイムアウトしました。後ほど再試行してください。");
	    } else { 
		var error = 'エラーです。エラーコード:' + marker_id;
		alert(error);
	    }
	});
	
        //marker.openInfoWindowHtml(html);
    });

    return marker;
}

function createside_barEntry(marker, label, id, marker_id, back) {
    var dd = document.createElement("dd");
    var a =  document.createElement("a");
    a.innerHTML = label;
    a.href = 'javascript:void(0)';
    dd.style.cursor = "pointer";
    //dd.bgColor = back;
    dd.id = id;
    dd.appendChild(a);
    GEvent.addDomListener(dd, "click", function() {
        GEvent.trigger(marker, "click");
    });

    return dd;
}

function gdownloadurl(map){
    var map = map;
    //var xml_url = url + '/test_xml.xml';
    var xml_url = url + '/gmap_marker.xml';
    GDownloadUrl(xml_url, function(data, responseCode) { // XMLファイルの名称・場所
	if(responseCode == 200) {
	var xml = GXml.parse(data);
	    var markers = xml.documentElement.getElementsByTagName("marker");
	    var side_bar = document.getElementById("markerlists");
	    side_bar.innerHTML = "";
	    for (var i = 0; i < markers.length; i++) {
		var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                    parseFloat(markers[i].getAttribute("lng")));
		var label = markers[i].getAttribute("label");
		var href = markers[i].getAttribute("href");
		var id = markers[i].getAttribute("id");
		var icon_src = markers[i].getAttribute("icon");
		var marker_id = markers[i].getAttribute("marker_id");
		var marker = createMarker2(point, label, href, icon_src, marker_id);
		map.addOverlay(marker);
		var back = '#ffffff';
		if(i % 2 == 0) {
		    back = '#EEF3F5';
		}
		var side_barEntry = createside_barEntry(marker, label, id, marker_id, back);
		side_bar.appendChild(side_barEntry);
	    }

	    jq("#markerlist dd:visible").filter(":even").css('background-color', '#EEF3F5');

	} else if(responseCode == -1) {
	    alert("タイムアウトしました。後ほど再試行してください。");
	} else { 
	    alert("エラーです。XMLファイルを確認してください。");
	}
    });

}