
var AMS_marker;
var AMS_result;
var AMS_list = new Array();
var fa;

function mapSetUpModelCourse(){
	if(GBrowserIsCompatible()){
		fa = 0;
		map = new GMap2(xGetElementById("mc_map"));
		map.addControl(new GSmallMapControl());
		setResult();
	}
}

function setResult() {
	if (AMS_result.error != '0') return;
	var course_no = AMS_result.course_no;
	AMS_list[course_no] = AMS_result;
	setMap(AMS_result);
}

function setMap(result) {
	map.clearOverlays();
	AMS_marker = new Array();
	
	var lat = result.latitude;
	var lng = result.longitude;
	var z   = parseInt(result.zoom);
	map.setCenter(new GLatLng(lat, lng), z);
	var cnt = result.detail.length;
	var i;
	for (i = 0; i < cnt; i++) {
		var x = result.detail[i].longitude;
		var y = result.detail[i].latitude;
		var name = result.detail[i].name;
		var icon = createGicon(i);
		var point = new GPoint(x, y);
		AMS_marker[i] = createMarker(point, icon, name);
		map.addOverlay(AMS_marker[i]);
	}
	fa = 1;
}

/////////////////////////////////////////////////////////////////////////////////////////////

function createGicon(id){
	var icon = new GIcon();
	icon.image = "/common/gicon/gi_"+id+".png";
	icon.shadow = "/common/gicon/shadow.png";
	icon.iconSize = new GSize(20, 26);
	icon.shadowSize = new GSize(37, 26);
	icon.iconAnchor = new GPoint(10, 26);
	icon.infoWindowAnchor = new GPoint(10, 1);
	return icon;
}

////////// block over out

function OSK_over(format_no, idname, color){
	if (fa > 0) {
		map.closeInfoWindow();
		fa = 0;
		var course_no = parseInt(format_no);
		if (AMS_list[course_no]) {
			setMap(AMS_list[course_no]);
		} else {
			new Ajax.Request('/db/course/' + format_no + '/data.js', { method:'get', onSuccess:setResult });
		}
		if (document.getElementById) {
			$(idname).style.backgroundColor = blockColor[color];
		}
	}
}

function OSK_out(id, idname, color){
	if(document.getElementById){
		document.getElementById(idname).style.backgroundColor = blockColor[color];
	}
}


function OSK_moviMap(){
	
	var PosLeft;
	var PosTop;
	
	clearTimeout(timerID);
	timerID = setTimeout("OSK_moviMap()",10);
	
	if(document.all){
		PosLeft = document.body.parentNode.scrollLeft;
		PosTop = document.body.parentNode.scrollTop;
	}
	else if(document.layers){
		PosLeft = window.pageXOffset;
		PosTop = window.pageYOffset;
	}
	else if(document.getElementById){
		PosLeft = window.pageXOffset;
		PosTop = window.pageYOffset;
	}
	
	OSK_tay = PosTop + OSK_ofy;
	OSK_say = OSK_say + (OSK_tay - OSK_say) / 6;
	
	moveLAYER(OSK_map,OSK_x,OSK_say);
}

//Google Maps API"
//
// Create a marker whose info window displays the given number.
function createMarker(point, icon, html) {
	//var marker = new GMarker(point);
	var marker = new GMarker(point, icon);

	GEvent.addListener(marker, 'click', function() {
	marker.openInfoWindowHtml(html);
	});
	
	return marker;
}

/***************************************************** nomap */

function OSK_moviMapNomap(){
	
	var PosLeft;
	var PosTop;
	var fx = xLeft("floater");
	
	clearTimeout(timerID);
	timerID = setTimeout("OSK_moviMapNomap()",10);
	
	if(document.all){
		PosLeft = document.body.parentNode.scrollLeft;
		PosTop = document.body.parentNode.scrollTop;
	}
	else if(document.layers){
		PosLeft = window.pageXOffset;
		PosTop = window.pageYOffset;
	}
	else if(document.getElementById){
		PosLeft = window.pageXOffset;
		PosTop = window.pageYOffset;
	}
	
	OSK_tay = PosTop + OSK_ofy;
	OSK_say = OSK_say + (OSK_tay - OSK_say) / 6;
	
	moveLAYER(OSK_floater,fx,OSK_say);
}

function moveLAYER(idName,x,y){
	
    if(document.getElementById){
     	document.getElementById(idName).style.left = x+'px';
     	document.getElementById(idName).style.top = y+'px';
    }
    else if(document.all){
     	document.all(idName).style.pixelLeft = x;
     	document.all(idName).style.pixelTop = y;
    }
    else if(document.layers){
     	document.layers[idName].moveTo(x,y);
	}
}

window.onload = function(){
	mapSetUpModelCourse();
	OSK_moviMapNomap();
	OSK_onLoaded = true;
}


