/**
 * @author     ISHIZAKA Shogo <ishizaka@from.co.jp>
 * @copyright  Copyright (c) 2008 Nasca Inc. (http://from.co.jp/)
 */
 
if (GBrowserIsCompatible()) {
	var iconObj = new GIcon();
	iconObj.iconSize = new GSize(18, 18);
	iconObj.shadowSize = new GSize(37, 34);
	iconObj.iconAnchor = new GPoint(10, 10);
	iconObj.infoWindowAnchor = new GPoint(10, 0);

	var GenreLFlag = new Array(0,0,0,0,0, 0);
	var GenreMFlag = new Array(0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0);

	var i = 0;
	var gmarkers = new Array();
	var glistener;
	var map;
	var pano;
}

function mapStart() {

	var xCenterKey = 135.764494;
	var yCenterKey = 35.003478;
	var mapSize    = 16;
	
	mapCreate(xCenterKey, yCenterKey, mapSize);
}

function mapCreate(xCenterKey, yCenterKey, mapSize) {
	map = new GMap2(document.getElementById("map"));
	
	// 引数（(緯度、経度）、ズームレベル)
	map.setCenter(new GLatLng(yCenterKey, xCenterKey), mapSize);
	
	// 各種コントロール
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl(true));
	ctrlObjV = new GOverviewMapControl(new GSize(120, 120));
	map.addControl(ctrlObjV);
	
	// ストリートビュー
	svOverlay = new GStreetviewOverlay();
	map.addOverlay(svOverlay);
	pano = new GStreetviewPanorama(document.getElementById("pano"));
	setSVEvent();
}

function focusShop(x, y, html) {
	var mapSize    = 17;
	map = new GMap2(document.getElementById("map"));
	
	// 引数（(緯度、経度）、ズームレベル)
	map.setCenter(new GLatLng(y, x), mapSize);
	
	// 各種コントロール
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl(true));
	
	// ポイント
	var marker = new GMarker(new GLatLng(y, x))
	
	if (html != undefined) {
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml('<div style="white-space:nowrap;">'+html+'<\/div>');
		});
	}
	map.addOverlay(marker);
}

function setSVEvent() {
	GEvent.addListener(pano, "error", handleNoFlash);
	glistener = GEvent.addListener(map, "click", function(overlay,latlng) {
	  	pano.setLocationAndPOV(latlng);
	});
}

function handleNoFlash(errorCode) {
	if (errorCode == FLASH_UNAVAILABLE) {
		alert("お使いのブラウザではストリートビューをご覧いただけません。");
		return;
	}
}

//二次元配列の生成
function setArray(j){
	j = j - 1;
	gmarkers[j] = new Array;
}

//配列生成のクリア
function clearCount(){
	i = 0;
}

//ポインタ生成
function createMarker(point, html, imgPass, j) {
	var icon = new GIcon(iconObj);
	icon.image = imgPass;
	var marker = new GMarker(point, icon);
	
	GEvent.addListener(marker, "click", function() {
		GEvent.removeListener(glistener);
		marker.openInfoWindowHtml('<div style="white-space:nowrap;">'+html+'<\/div>');
	});
	GEvent.addListener(marker, "infowindowclose", function() {
		setSVEvent();
	});
	
	j = j - 1;
	gmarkers[j][i] = marker;
	i++;
	return marker;
}

//クリックされたジャンル別
function clickGenreL(j) {
	for(k = 0; k < gmarkers.length; k++) {
		for(l = 0; l < gmarkers[k].length; l++) {
			map.removeOverlay(gmarkers[k][l]);
		}
	}
	if(GenreLFlag[j-1] == 0) {
		//クリックされたジャンルを表示
		switch(j){
			
			// 買う
			case 1:
				getGenre101(1);
				getGenre102(2);
				getGenre103(3);
				getGenre104(4);
				getGenre105(5);
				getGenre106(6);
				getGenre107(7);
				getGenre108(8);
				getGenre109(9);
				getGenre110(10);
				getGenre111(11);
				getGenre112(12);
				getGenre113(13);
				getGenre114(14);
				getGenre115(15);
				getGenre116(16);
				getGenre117(17);
				getGenre118(18);
				break;
			
			// 食べる
			case 2:
				getGenre201(1);
				getGenre202(2);
				getGenre203(3);
				getGenre204(4);
				getGenre205(5);
				getGenre206(6);
				getGenre207(7);
				getGenre208(8);
				getGenre209(9);
				break;
				
			// 見る・遊ぶ
			case 3:
				getGenre301(1);
				getGenre302(2);
				getGenre303(3);
				break;
			
			// 美容・医療
			case 4:
				getGenre401(1);
				getGenre402(2);
				getGenre403(3);
				break;
			
			// 学ぶ
			case 5:
				getGenre501(1);
				getGenre502(2);
				getGenre503(3);
				break;
			
			// その他
			case 6:
				getGenre601(1);
				getGenre602(2);
				getGenre603(3);
				getGenre604(4);
				getGenre605(5);
				getGenre606(6);
				getGenre607(7);
				getGenre608(8);
				getGenre609(9);
				break;
			default:
				break;
		}
		for(m = 0; m < GenreLFlag.length; m++) {
			if(m == (j-1)) {
				GenreLFlag[j-1] = 1;
			} else {
				GenreLFlag[m] = 0;
			}
		}
	} else {
		GenreLFlag[j-1] = 0;
	}
}

//クリックされたジャンル別
function clickGenreM(j) {
	for(k = 0; k < gmarkers.length; k++) {
		for(l = 0; l < gmarkers[k].length; l++) {
			map.removeOverlay(gmarkers[k][l]);
		}
	}
	if(GenreMFlag[j-1] == 0) {
		//クリックされたジャンルを表示
		switch(j){
			// 買う
			case 1:
				getGenre101(1);
				break;
			case 2:
				getGenre102(1);
				break;
			case 3:
				getGenre103(1);
				break;
			case 4:
				getGenre104(1);
				break;
			case 5:
				getGenre105(1);
				break;
			case 6:
				getGenre106(1);
				break;
			case 7:
				getGenre107(1);
				break;
			case 8:
				getGenre108(1);
				break;
			case 9:
				getGenre109(1);
				break;
			case 10:
				getGenre110(1);
				break;
			case 11:
				getGenre111(1);
				break;
			case 12:
				getGenre112(1);
				break;
			case 13:
				getGenre113(1);
				break;
			case 14:
				getGenre114(1);
				break;
			case 15:
				getGenre115(1);
				break;
			case 16:
				getGenre116(1);
				break;
			case 17:
				getGenre117(1);
				break;
			case 18:
				getGenre118(1);
				break;
				
			// 食べる
			case 19:
				getGenre201(1);
				break;
			case 20:
				getGenre202(1);
				break;
			case 21:
				getGenre203(1);
				break;
			case 22:
				getGenre204(1);
				break;
			case 23:
				getGenre205(1);
				break;
			case 24:
				getGenre206(1);
				break;
			case 25:
				getGenre207(1);
				break;
			case 26:
				getGenre208(1);
				break;
			case 27:
				getGenre209(1);
				break;
				
			// 見る・遊ぶ
			case 28:
				getGenre301(1);
				break;
			case 29:
				getGenre302(1);
				break;
			case 30:
				getGenre303(1);
				break;
				
			// 美容・医療
			case 31:
				getGenre401(1);
				break;
			case 32:
				getGenre402(1);
				break;
			case 33:
				getGenre403(1);
				break;
				
			// 学ぶ
			case 34:
				getGenre501(1);
				break;
			case 35:
				getGenre502(1);
				break;
			case 36:
				getGenre503(1);
				break;
				
			// その他
			case 37:
				getGenre601(1);
				break;
			case 38:
				getGenre602(1);
				break;
			case 39:
				getGenre603(1);
				break;
			case 40:
				getGenre604(1);
				break;
			case 41:
				getGenre605(1);
				break;
			case 42:
				getGenre606(1);
				break;
			case 43:
				getGenre607(1);
				break;
			case 44:
				getGenre608(1);
				break;
			case 45:
				getGenre609(1);
				break;
			default:
				break;
		}
		for(m = 0; m < GenreMFlag.length; m++) {
			if(m == (j-1)) {
				GenreMFlag[j-1] = 1;
			} else {
				GenreMFlag[m] = 0;
			}
		}
	} else {
		GenreMFlag[j-1] = 0;
	}
}

