var geocoder = null;
var polyPoints = Array();
var fillColor = "#0000FF";
var lineColor = "#FF0000";
var opacity = "0.5";
var opacity2 = "0.1";
var lineWeight = "2";
var init_flg = true;
var marker_img = '/admin/common-img/point.png';
var gmap = new gmap_common();


//表示・非表示設定
function setViewMode(name) {
	if (name != '') {
		var obj = $(name).style;
		if (obj.display == 'none') {
			$(name).style.display='block';
			$(name).style.height = "300px";
			$(name).style.width = "688px";
			$(name).style.border = "1px solid #CCC";
			load_maps(name);
		} else {
			obj.display = 'none';
		}
	}
}

function load_maps(name) {
	//変数の初期化
	polyPoints = Array();
	fillColor = "#0000FF";
	lineColor = "#FF0000";
	opacity = "0.5";
	opacity2 = "0.1";
	lineWeight = "2";
	init_flg = true;

	u_latlng = name + '_u_latlng';
	u_polygon = name + '_u_polygon';
	u_mark_type = name + '_u_mark_type';
	u_line_color = name + '_u_line_color';
	u_thickness = name + '_u_thickness';
	u_line_alpha = name + '_u_line_alpha';
	u_plain_color = name + '_u_plain_color';
	u_plain_alpha = name + '_u_plain_alpha';

	latlng = $(u_latlng).value;
	polygon = $(u_polygon).value;
	mark_type = $(u_mark_type).value;
	
	lineColor = $(u_line_color).value;
	lineWeight = $(u_thickness).value;
	opacity = $(u_line_alpha).value;
	fillColor = $(u_plain_color).value;
	opacity2 = $(u_plain_alpha).value;

	if(latlng) {//初期表示位置の取得
		latlng = (latlng).match(/\d+\.\d+/g);
		lat=latlng[0];
		lng=latlng[1];
	} else {
		lat = $('dlat').value;
		lng = $('dlng').value;
	}
	zl = 15; //デフォルト表示ズームレベル

	if(gmap.loadMap(lat,lng,zl,name)) { //GoogleMap Load
		init_flg = true;
		//map.removeControl(omc);
		//作成済み図形の取得
		latlng = (polygon).match(/\d+\.\d+/g);
		if(latlng != null) {

			for(i=0; i<latlng.length; i+=2) {
				var point = new GLatLng(parseFloat(latlng[i]), parseFloat(latlng[i+1]));
				polyPoints.push(point);
			}
			switch(mark_type) {
				case '0':
					if(marker_img) {		
						var iconObj = new GIcon();
						iconObj.image = marker_img;
						iconObj.iconSize = new GSize(32,32);
						iconObj.iconAnchor = new GPoint(16,32);
					} else {
						var iconObj = null;
					}
					marker = new GMarker(polyPoints[0], iconObj);
					map.addOverlay(marker);
					break;
				case '1':
					mypolygon = new GPolyline(polyPoints,lineColor,lineWeight,opacity);
					bounds = mypolygon.getBounds();
					zl = map.getBoundsZoomLevel(bounds);
					map.addOverlay(mypolygon);
					c = bounds.getCenter();
					map.setCenter(c, zl);
					break;
				case '2':
					mypolygon = new GPolygon(polyPoints,lineColor,lineWeight,opacity,fillColor,opacity2);
					bounds = mypolygon.getBounds();
					zl = map.getBoundsZoomLevel(bounds);
					map.addOverlay(mypolygon);
					c = bounds.getCenter();
					map.setCenter(c, zl);
					break;
				default:
					pointMode = true;
					lineMode = false;
					polygonMode = false;
					break;
			}
			//draw_coordinates();
		}
	}
	
}

function load_maps_all(u_mark_type,u_line_color,u_thickness,u_line_alpha,u_plain_color,u_plain_alpha,u_polygon,u_latlng,u_text,bdri_code,dir) {
	var lat = "35.264613073027971";
	var lng = "139.15231704711914";
	var name = 'cat_map';

	var zl = 16; //デフォルト表示ズームレベル
	
	if(gmap.loadMap(lat,lng,zl,name)) { //GoogleMap Load
		
		//XY最大最小値
		var max_lng = 0;
		var min_lng = 1000;
		var max_lat = 0;
		var min_lat = 1000;
		var gmks = new Array();
	
		for (var t = 0; t < u_mark_type.length; t++) {
			map.removeControl(omc);
			var polyPoints = new Array();
			var html = null;
			var latlng = new Array();
			var latlng2 = new Array();
			var init_flg = true;
			var fillColor = "#0000FF";
			var lineColor = "#FF0000";
			var opacity = "0.5";
			var opacity2 = "0.1";
			var lineWeight = "2";
			var mypolygon = null;

			latlng = u_latlng[t];
			polygon = u_polygon[t];
			mark_type = u_mark_type[t];
			lineColor = u_line_color[t];
			lineWeight = u_thickness[t];
			opacity = u_line_alpha[t];
			fillColor = u_plain_color[t];
			opacity2 = u_plain_alpha[t];
			ttl = u_text[t];
			pages = bdri_code[t];
			
			latlng2 = (latlng).match(/\d+\.\d+/g);
			latlng = (polygon).match(/\d+\.\d+/g);
			
			if(latlng != null) {
			
				var lat=latlng2[0];
				var lng=latlng2[1];
				
				//if (lat > max_lat) { max_lat = lat; }
				//if (lat < min_lat) { min_lat = lat; }
				//if (lng > max_lng) { max_lng = lng; }
				//if (lng < min_lng) { min_lng = lng; }
			
				switch(mark_type) {
					case '0':
						pointMode = true;
						lineMode = false;
						polygonMode = false;
						break;
					case '1':
						pointMode = false;
						lineMode = true;
						polygonMode = false;
						break;
					case '2':
						pointMode = false;
						lineMode = false;
						polygonMode = true;
						break;
					default:
						pointMode = true;
						lineMode = false;
						polygonMode = false;
						break;
				}
				for(i=0; i<latlng.length; i+=2) {
					var point = new GLatLng(parseFloat(latlng[i]), parseFloat(latlng[i+1]));
					polyPoints.push(point);
				
					if (lat > max_lat) { max_lat = parseFloat(latlng[i]); }
					if (lat < min_lat) { min_lat = parseFloat(latlng[i]); }
					if (lng > max_lng) { max_lng = parseFloat(latlng[i+1]); }
					if (lng < min_lng) { min_lng = parseFloat(latlng[i+1]); }

				}
				html = "<p><a href=\"#noscript\" onclick=\"MM_goToURL('opener','/blog/"+dir+"/index.html?page="+pages+"');return document.MM_returnValue\" title=\""+ttl+"\">"+ttl+"</a></p>";
				if(!init_flg || pointMode) {
					if(marker_img) {
						var iconObj = new GIcon();
						iconObj.image = marker_img;
						iconObj.iconSize = new GSize(32,32);
						iconObj.iconAnchor = new GPoint(16,32);
						iconObj.infoWindowAnchor = new GPoint(16,32);
					} else {
						var iconObj = null;
					}
					setMarkerPoint(polyPoints[0], iconObj, html);
				}
				if (lineMode) {
					setMarkerLine(html, polyPoints,lineColor,lineWeight,opacity,latlng);
				} else if(polygonMode) {
					setMarkerPoly(html, polyPoints,lineColor,lineWeight,opacity,fillColor,opacity2,latlng);
				}				
			}
		}
		var rectObj = new GLatLngBounds(new GLatLng(min_lat,min_lng), new GLatLng(max_lat,max_lng));
		var zm = map.getBoundsZoomLevel(rectObj);
		map.setCenter(new GLatLng(parseFloat(min_lat)+(max_lat-min_lat)/2, parseFloat(min_lng)+(max_lng-min_lng)/2), zm);
	}
}

function load_maps_all_omise(u_mark_type,u_line_color,u_thickness,u_line_alpha,u_plain_color,u_plain_alpha,u_polygon,u_latlng,u_text,bdri_code,dir) {
	var lat = "35.264613073027971";
	var lng = "139.15231704711914";
	var name = 'cat_map';

	var zl = 16; //デフォルト表示ズームレベル
	
	if(gmap.loadMap(lat,lng,zl,name)) { //GoogleMap Load
		
		//XY最大最小値
		var max_lng = 0;
		var min_lng = 1000;
		var max_lat = 0;
		var min_lat = 1000;
		var gmks = new Array();
	
		for (var t = 0; t < u_mark_type.length; t++) {
			map.removeControl(omc);
			var polyPoints = new Array();
			var html = null;
			var latlng = new Array();
			var latlng2 = new Array();
			var init_flg = true;
			var fillColor = "#0000FF";
			var lineColor = "#FF0000";
			var opacity = "0.5";
			var opacity2 = "0.1";
			var lineWeight = "2";
			var mypolygon = null;

			latlng = u_latlng[t];
			polygon = u_polygon[t];
			mark_type = u_mark_type[t];
			lineColor = u_line_color[t];
			lineWeight = u_thickness[t];
			opacity = u_line_alpha[t];
			fillColor = u_plain_color[t];
			opacity2 = u_plain_alpha[t];
			ttl = u_text[t];
			pages = bdri_code[t];
			
			latlng2 = (latlng).match(/\d+\.\d+/g);
			latlng = (polygon).match(/\d+\.\d+/g);
			
			if(latlng != null) {
			
				var lat=latlng2[0];
				var lng=latlng2[1];
				
				//if (lat > max_lat) { max_lat = lat; }
				//if (lat < min_lat) { min_lat = lat; }
				//if (lng > max_lng) { max_lng = lng; }
				//if (lng < min_lng) { min_lng = lng; }
			
				switch(mark_type) {
					case '0':
						pointMode = true;
						lineMode = false;
						polygonMode = false;
						break;
					case '1':
						pointMode = false;
						lineMode = true;
						polygonMode = false;
						break;
					case '2':
						pointMode = false;
						lineMode = false;
						polygonMode = true;
						break;
					default:
						pointMode = true;
						lineMode = false;
						polygonMode = false;
						break;
				}
				for(i=0; i<latlng.length; i+=2) {
					var point = new GLatLng(parseFloat(latlng[i]), parseFloat(latlng[i+1]));
					polyPoints.push(point);
				
					if (lat > max_lat) { max_lat = parseFloat(latlng[i]); }
					if (lat < min_lat) { min_lat = parseFloat(latlng[i]); }
					if (lng > max_lng) { max_lng = parseFloat(latlng[i+1]); }
					if (lng < min_lng) { min_lng = parseFloat(latlng[i+1]); }

				}
				html = "<p><a href=\"#noscript\" onclick=\"MM_goToURL('opener','/omise/"+dir+"/index.html?page="+pages+"');return document.MM_returnValue\" title=\""+ttl+"\">"+ttl+"</a></p>";
				if(!init_flg || pointMode) {
					if(marker_img) {
						var iconObj = new GIcon();
						iconObj.image = marker_img;
						iconObj.iconSize = new GSize(32,32);
						iconObj.iconAnchor = new GPoint(16,32);
						iconObj.infoWindowAnchor = new GPoint(16,32);
					} else {
						var iconObj = null;
					}
					setMarkerPoint(polyPoints[0], iconObj, html);
				}
				if (lineMode) {
					setMarkerLine(html, polyPoints,lineColor,lineWeight,opacity,latlng);
				} else if(polygonMode) {
					setMarkerPoly(html, polyPoints,lineColor,lineWeight,opacity,fillColor,opacity2,latlng);
				}				
			}
		}
		var rectObj = new GLatLngBounds(new GLatLng(min_lat,min_lng), new GLatLng(max_lat,max_lng));
		var zm = map.getBoundsZoomLevel(rectObj);
		map.setCenter(new GLatLng(parseFloat(min_lat)+(max_lat-min_lat)/2, parseFloat(min_lng)+(max_lng-min_lng)/2), zm);
	}
}

function setMarkerPoint(point, iconObj, html) {
	var marker = new GMarker(point, iconObj);
	GEvent.addListener(marker,"click", function() {
		marker.openInfoWindowHtml(html);
	});
	map.addOverlay(marker);
}

function setMarkerLine(html, polyPoints,lineColor,lineWeight,opacity,latlng) {
	var marker = new GPolyline(polyPoints,lineColor,lineWeight,opacity);
	map.addOverlay(marker);
    GEvent.addListener(marker, "click", function(latlng) {
		map.openInfoWindowHtml(latlng, html);
    });	
}

function setMarkerPoly(html, polyPoints,lineColor,lineWeight,opacity,fillColor,opacity2,latlng) {
	var marker = new GPolygon(polyPoints,lineColor,lineWeight,opacity,fillColor,opacity2);
	map.addOverlay(marker);
    GEvent.addListener(marker, "click", function(latlng) {
		map.openInfoWindowHtml(latlng, html);
    });	
}


//点、線、面表示
function draw_coordinates(){
	map.clearOverlays();
	mypolygon = null;
	if(!init_flg || pointMode) { //始点にマーカー描画
		if(marker_img) {		
			var iconObj = new GIcon();
			iconObj.image = marker_img;
			iconObj.iconSize = new GSize(32,32);
			iconObj.iconAnchor = new GPoint(16,32);
		} else {
			var iconObj = null;
		}
		marker = new GMarker(polyPoints[0], iconObj);
		map.addOverlay(marker);
	}
	if (lineMode) {
		mypolygon = new GPolyline(polyPoints,lineColor,lineWeight,opacity);
	} else if(polygonMode) {
		mypolygon = new GPolygon(polyPoints,lineColor,lineWeight,opacity,fillColor,opacity2);
	}
	
	if(mypolygon) {
		map.addOverlay(mypolygon);
		return mypolygon;
	}
	return null;
}

//お店の地図
function get_blog_map_shop() {

	//変数の初期化
	polyPoints = Array();
	fillColor = "#0000FF";
	lineColor = "#FF0000";
	opacity = "0.5";
	opacity2 = "0.1";
	lineWeight = "2";
	init_flg = true;
	
	var name;

	pointMode = true;
	lineMode = false;
	polygonMode = false;
	
	type = get_blog_map_shop.arguments[0];
	name = get_blog_map_shop.arguments[1];
	latlng = get_blog_map_shop.arguments[2];
	polygon = get_blog_map_shop.arguments[3];
	
	if(latlng) {
		latlng = (latlng).match(/\d+\.\d+/g);
		lat=latlng[0];
		lng=latlng[1];
		zl = 16;
		for(i=0; i<latlng.length; i+=2) {
			var point = new GLatLng(latlng[i], latlng[i+1]);
			polyPoints.push(point);
		}
		var iconObj = null;
		if(gmap.loadMap(lat,lng,zl,name)) {
			map.clearOverlays();
			if(marker_img) {		
				var iconObj = new GIcon();
				iconObj.image = marker_img;
				iconObj.iconSize = new GSize(32,32);
				iconObj.iconAnchor = new GPoint(16,32);
			}
			marker = new GMarker(polyPoints[polyPoints.length -1], iconObj);
			map.addOverlay(marker);
		}
	}
}

//お店の配達エリア
function get_blog_map_shop_area() {

	//変数の初期化
	polyPoints = Array();
	fillColor = "#0000FF";
	lineColor = "#FF0000";
	opacity = "0.5";
	opacity2 = "0.1";
	lineWeight = "2";
	init_flg = true;
	
	var type = get_blog_map_shop_area.arguments[0];
	var name = get_blog_map_shop_area.arguments[1];
	var polygon = get_blog_map_shop_area.arguments[2];
	
	if (polygon) {
		latlng = (polygon).match(/\d+\.\d+/g);
		lat=latlng[0];
		lng=latlng[1];
		zl = 16;
		for(i=0; i<latlng.length; i+=2) {
			var point = new GLatLng(latlng[i], latlng[i+1]);
			polyPoints.push(point);
		}
		if(gmap.loadMap(lat,lng,zl,name)) {
			map.clearOverlays();
			var marker = new GPolygon(polyPoints,lineColor,lineWeight,opacity,fillColor,opacity2);
			
			var Obj = marker.getBounds();
			var zm = map.getBoundsZoomLevel(Obj);
			map.setCenter(Obj.getCenter(), zm);
			map.addOverlay(marker);
		}
	}
}