﻿// Marker クラスを定義する
var MarkerSet = Class.create();

MarkerSet.prototype = {
	// コンストラクタ
	initialize: function(name) {
		this.name = name;
		this.latitude;
		this.longitude;
		this.icon;
		this.index = -1;
		this.visible = false;
		this.title = "";
		this.information = "";
	}
};

var markerSets = new Array(2);
var markerCnt;
var latMin;
var lngMin;
var latMax;
var lngMax;

//Fill Place ComboBox
function fillPlaceCombo () {
	var uri = "place/placeList.txt";
	var myAjax = new Ajax.Request(uri, {method: 'get', onComplete: writeResponse});
}

function writeResponse(originalRequest) {
	var isMSIE = /*@cc_on!@*/false;
	if (isMSIE) {
		$("place").outerHTML = '<select id="place" name="centerLocation" size="1" onclick="selectLocation(this.value)">' + originalRequest.responseText + '/select>';
	} else {
		$("place").innerHTML = originalRequest.responseText;
	}
	selectLocation(frmMap.centerLocation.value);
}

//Set Map Area and MarkerSets for the Location
function selectLocation(place) {
	frmTitle.txtTitle.value = place;
	var uri = "place/" + place + ".txt";
	var myAjax = new Ajax.Request(uri, {method: 'get', onComplete: writeResponse2});
}
function writeResponse2(request) {
	var json = eval(request.responseText);
	markerCnt = json.length;
	for (i = 0; i < markerCnt; i++) {
		if (markerSets[i] == undefined) {
			markerSets[i] = new MarkerSet(i);
		}
		markerSets[i].latitude = json[i][0];
		markerSets[i].longitude =  json[i][1];
		markerSets[i].title = json[i][2];
		markerSets[i].information = json[i][3];
		markerSets[i].icon = json[i][4];
	}
	frmMap.cellLat.value = getMarkersCenterLat();
	frmMap.cellLng.value = getMarkersCenterLng();
	setAutoZoomLevel();
}

function getMarkersCenterLat() {
	latMax = -90;
	latMin = 90;
	
	for (i = 0; i < markerCnt; i++) {
		if (markerSets[i].latitude > latMax) latMax = markerSets[i].latitude;
		if (markerSets[i].latitude < latMin) latMin = markerSets[i].latitude;
	}
	return ((latMax + latMin) / 2);
}

function getMarkersCenterLng() {
	lngMax = -180;
	lngMin = 180;
	
	for (i = 0; i < markerCnt; i++) {
		if (markerSets[i].longitude > lngMax) lngMax = markerSets[i].longitude;
		if (markerSets[i].longitude < lngMin) lngMin = markerSets[i].longitude;
	}
	return (lngCenter = (lngMax + lngMin) / 2);
}
