/*
 * Google Maps API ver.2 Functions
 * ver 0.15
 */

/*Mapを初期化*/
function gmap2Init(nameStr, centerLatitudeNum, centerLongitudeNum, zoomLevelNum, mapOpts){
	if(mapOpts == undefined){
		var gmap2 = new GMap2(document.getElementById(nameStr));
	}else{
		var gmap2 = new GMap2(document.getElementById(nameStr), mapOpts);
	}
	gmap2.setCenter(new GLatLng(centerLatitudeNum,centerLongitudeNum), zoomLevelNum);
	return gmap2;
}
/*コントローラを追加*/
function gmap2AddControl(gmap2, typeStr){
	/*大きなパン／ズームコントロール*/
	if(typeStr=='mapL'){
		var control = new GLargeMapControl();
	/*小さなパン／ズームコントロール*/
	}else if(typeStr=='mapS'){
		var control = new GSmallMapControl();
	/*小さなズームコントロール。パンはなし。*/
	}else if(typeStr=='zoomS'){
		var control = new GSmallZoomControl();
	/*地図／衛星／デュアルの切り替えボタン*/
	}else if(typeStr=='mapType'){
		var control = new GMapTypeControl();
	/*スケール*/
	}else if(typeStr=='scale'){
		var control = new GScaleControl();
	/*オーバービュー*/
	}else if(typeStr=='overview'){
		var control = new GOverviewMapControl();
	}
	gmap2.addControl(control);
}
/*コントローラをクリア*/
function gmap2ClearControl(gmap2){
	gmap2.removeControl(new GLargeMapControl());
	gmap2.removeControl(new GSmallMapControl());
	gmap2.removeControl(new GSmallZoomControl());
	gmap2.removeControl(new GMapTypeControl());
	gmap2.removeControl(new GScaleControl());
	gmap2.removeControl(new GOverviewMapControl());
}
/*地図タイプを設定*/
function gmap2SetMapType(gmap2, typeNum){
	/*衛星写真*/
	if(typeNum==1){
		gmap2.setMapType(G_SATELLITE_MAP);
	/*地図＋衛星写真*/
	}else if(typeNum==2){
		gmap2.setMapType(G_HYBRID_MAP);
	/*地形*/
	}else if(typeNum==3){
		gmap2.setMapType(G_PHYSICAL_MAP);
	/*3D*/
	}else if(typeNum==4){
		gmap2.setMapType(G_SATELLITE_3D_MAP);
	/*地図*/
	}else{
		gmap2.setMapType(G_NORMAL_MAP);
	}
}

/*アイコンを生成(アイコン画像URL,アイコン影画像URL,アイコン画像幅,高さ,アイコン影画像幅,高さ,アイコン中心点x位置,y位置,画像中で吹き出しが表示されるx位置,y位置)*/
function gmap2CreateIcon(
		imgUrlStr, imgShadowUrlStr,
		widthNum, heightNum, widthShadowNum, heightShadowNum,
		anchorXNum, anchorYNum, anchorWindowXNum, anchorWindowYNum
	){
	var icon = new GIcon();
	icon.image = imgUrlStr;
	icon.shadow = imgShadowUrlStr;
	icon.iconSize = new GSize(widthNum, heightNum);
	icon.shadowSize = new GSize(widthShadowNum, heightShadowNum);
	icon.iconAnchor = new GPoint(anchorXNum, anchorYNum);
	icon.infoWindowAnchor = new GPoint(anchorWindowXNum, anchorWindowYNum);
	return icon;
}
/*マーカーを生成(緯度,経度,アイコン,情報WindowのHTML)*/
function gmap2CreateMarker(latitudeNum, longitudeNum, optionObj, windowHtml, windowTabHtml){
	/*マーカーを生成*/
	var marker = new GMarker(new GLatLng(latitudeNum,longitudeNum), optionObj);
	
	if( windowHtml != undefined ){
		GEvent.addListener(marker, 'click', function(){
			this.openInfoWindowHtml(windowHtml);
		});
	}else if( windowTabHtml != undefined ){
		GEvent.addListener(marker, 'click', function(){
			this.openInfoWindowTabsHtml(windowTabHtml);
		});
	}
	return marker;
}

/*Mapオブジェクトをアンロード*/
function gmap2Unload(){
	GUnload();
}

/*様々なアイコンを生成*/
function gmap2CreateOptionalIcon(size, color, character, dirpath){
	var widthNum = 0;
	var heightNum = 0;
	var widthShadowNum = 0;
	var heightShadowNum = 0;
	var anchorXNum = 0;
	var anchorYNum = 0;
	var anchorWindowXNum = 0;
	var anchorWindowYNum = 0;
	if( size == '' ){
		widthNum = 20;
		heightNum = 34;
		widthShadowNum = 37;
		heightShadowNum = 34;
		anchorXNum = 9;
		anchorYNum = 34;
		anchorWindowXNum = 9;
		anchorWindowYNum = 2;
	}else if( size == 'mid' ){
		widthNum = 16;
		heightNum = 27;
		widthShadowNum = 30;
		heightShadowNum = 28;
		anchorXNum = 8;
		anchorYNum = 27;
		anchorWindowXNum = 8;
		anchorWindowYNum = 1;
	}else if( size == 'small' ){
		widthNum = 12;
		heightNum = 20;
		widthShadowNum = 22;
		heightShadowNum = 20;
		anchorXNum = 6;
		anchorYNum = 20;
		anchorWindowXNum = 6;
		anchorWindowYNum = 0;
	}else if( size == 'tiny' ){
		widthNum = 6;
		heightNum = 10;
		widthShadowNum = 11;
		heightShadowNum = 10;
		anchorXNum = 3;
		anchorYNum = 10;
		anchorWindowXNum = 3;
		anchorWindowYNum = 0;
	}
	/*アイコンパスを取得*/
	var img_array = gmap2GetIconImg(size, color, character, dirpath);
	var icon = gmap2CreateIcon(
		img_array[0], img_array[1],
		widthNum, heightNum, widthShadowNum, heightShadowNum,
		anchorXNum, anchorYNum, anchorWindowXNum, anchorWindowYNum
	);
	return icon;
}
/*様々なアイコン画像を取得*/
function gmap2GetIconImg(size, color, character, dirpath){
	var filepath = '';
	var filepath_shadow = '';
	if( color == '' || color == undefined ){
		color = 'red';
	}
	if( size == '' ){
		filepath_shadow = 'shadow.png';
	}else if( size == 'mid' ){
		filepath += 'm_';
		filepath_shadow = 'm_shadow.png';
	}else if( size == 'small' ){
		filepath += 's_';
		filepath_shadow = 's_shadow.png';
	}else if( size == 'tiny' ){
		filepath += 'ss_';
		filepath_shadow = 'ss_shadow.png';
	}
	if( character == '' || character == undefined ){
		filepath += 'default/' + color + '.png';
	}else{
		filepath += 'letter';
		if( color != 'red' ){
			filepath += '_' + color;
		}
		filepath += '/marker' + character.toUpperCase() + '.png';
	}
	/*アイコンパスを取得*/
	if( dirpath == undefined || dirpath == '' ){
		dirpath = '/gmap2/marker/';
	}
	return [dirpath+filepath, dirpath+"shadow/"+filepath_shadow];
}