
function deleteSelections(box, Obj){
	var list = "";
	for(var i = 0; i < Obj.elements.length; i++){
		var e = Obj.elements[i];
		if(e.type == "checkbox" && e.id!="toggle_all"){
			if(e.checked){
				if(list.length > 0){
					list = list.concat(',');
				}
				list = list.concat(e.id);
			}
		}
	}
		
	if(list.length > 0){
		location.href = "?cmd=message&act=confirm_delete&box=" + box + "&id=".concat(list);
	}
}

function checkUncheck(Obj){
	bChecked = Obj.toggle_all.checked;
	for(var i = 0; i < Obj.elements.length; i++){
		var e = Obj.elements[i];
		if(e.type == "checkbox" && e.id!="toggle_all"){
			e.checked = bChecked;
		}
	}
}

function updateImage(value){
	document.user_image.src = value;
}

function pa_swapImgRestore(){
  var i,x,a=document.pa_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function pa_preloadImages(){
  var d=document; if(d.images){ if(!d.pa_p) d.pa_p=new Array();
    var i,j=d.pa_p.length,a=pa_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.pa_p[j]=new Image; d.pa_p[j++].src=a[i];}}
}

function pa_findObj(n, d){
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=pa_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function pa_swapImage(){
  var i,j=0,x,a=pa_swapImage.arguments; document.pa_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=pa_findObj(a[i]))!=null){document.pa_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function displayMap(lat, lng, zoom, text, name, address, count, map_search, pref){
	if(pref > 0){
		updateMap();
	}else{
		loadMap(lat, lng, zoom, text, name, address, count, map_search);
	}
}

var pref;
function updateMap(){
	var new_pref = document.getElementById("prefecture").value;
	if(pref != new_pref){
		switch(new_pref){
			case '0': setMarkerPoint('35.689','139.692'); break;	// Tokyo
			case '1': setMarkerPoint('43.065','141.347'); break;
			case '2': setMarkerPoint('40.824','140.740'); break;
			case '3': setMarkerPoint('39.704','141.153'); break;
			case '4': setMarkerPoint('38.269','140.872'); break;
			case '5': setMarkerPoint('39.719','140.102'); break;
			case '6': setMarkerPoint('38.240','140.364'); break;
			case '7': setMarkerPoint('37.750','140.468'); break;
			case '8': setMarkerPoint('36.342','140.447'); break;
			case '9': setMarkerPoint('36.563','139.883'); break;
			case '10': setMarkerPoint('36.391','139.060'); break;
			case '11': setMarkerPoint('35.857','139.649'); break;
			case '12': setMarkerPoint('35.605','140.123'); break;
			case '13': setMarkerPoint('35.689','139.692'); break;
			case '14': setMarkerPoint('35.448','139.642'); break;
			case '15': setMarkerPoint('37.903','139.023'); break;
			case '16': setMarkerPoint('36.695','137.211'); break;
			case '17': setMarkerPoint('36.595','136.626'); break;
			case '18': setMarkerPoint('36.065','136.222'); break;
			case '19': setMarkerPoint('35.664','138.568'); break;
			case '20': setMarkerPoint('36.651','138.181'); break;
			case '21': setMarkerPoint('35.391','136.722'); break;
			case '22': setMarkerPoint('34.977','138.383'); break;
			case '23': setMarkerPoint('35.180','136.907'); break;
			case '24': setMarkerPoint('34.730','136.509'); break;
			case '25': setMarkerPoint('35.005','135.869'); break;
			case '26': setMarkerPoint('35.021','135.756'); break;
			case '27': setMarkerPoint('34.686','135.520'); break;
			case '28': setMarkerPoint('34.691','135.183'); break;
			case '29': setMarkerPoint('34.685','135.833'); break;
			case '30': setMarkerPoint('34.227','135.167'); break;
			case '31': setMarkerPoint('35.504','134.238'); break;
			case '32': setMarkerPoint('35.472','133.051'); break;
			case '33': setMarkerPoint('34.662','133.934'); break;
			case '34': setMarkerPoint('34.397','132.460'); break;
			case '35': setMarkerPoint('34.186','131.471'); break;
			case '36': setMarkerPoint('34.066','134.559'); break;
			case '37': setMarkerPoint('34.340','134.043'); break;
			case '38': setMarkerPoint('33.842','132.766'); break;
			case '39': setMarkerPoint('33.560','133.531'); break;
			case '40': setMarkerPoint('33.607','130.418'); break;
			case '41': setMarkerPoint('33.249','130.300'); break;
			case '42': setMarkerPoint('32.745','129.874'); break;
			case '43': setMarkerPoint('32.790','130.742'); break;
			case '44': setMarkerPoint('33.238','131.613'); break;
			case '45': setMarkerPoint('31.911','131.424'); break;
			case '46': setMarkerPoint('31.560','130.558'); break;
			case '47': setMarkerPoint('26.212','127.681'); break;
		}
	
		document.getElementById("map_message").innerHTML = "";
		
		var zoom = (new_pref == 0) ? 5 : 10;
		loadMap('', '', zoom, '', '', '', 0, true);
	}
}

function setMarkerPoint(lat, lng){
	document.getElementById("lat").value = lat;
	document.getElementById("lng").value = lng;
}

var target;
function loadMap(lat, lng, zoom, text, name, address, count, map_search){
	if(GBrowserIsCompatible()){
		if(map_search){
			pref = document.getElementById("prefecture").value;
		}
		
		latArray = lat.split(",");
		lngArray = lng.split(",");
		textArray = text.split(",");
		nameArray = name.split(",");
		addressArray = address.split(",");
	
        var map = new GMap2(document.getElementById("map"));
        var centerPoint;
        var markerPoint;
		if(map_search){
			markerPoint = new GLatLng(document.getElementById("lat").value, document.getElementById("lng").value);
			if(pref == 0 && zoom == 5){
				centerPoint = new GLatLng('36.1', '136.8');
			}else{
				centerPoint = markerPoint;
			}
		}else{
			markerPoint = new GLatLng(latArray[0], lngArray[0]);
			centerPoint = markerPoint;
		}
		map.setCenter(centerPoint, zoom);
		map.addControl(new GLargeMapControl());
		if(map_search){
//			map.addControl(new GOverviewMapControl());
			
			target = new GMarker(markerPoint, createTargetIcon());
			map.addOverlay(target);
		}
		
		for(i = 0; i < count; i++){
			point = new GLatLng(latArray[i], lngArray[i]);

			if(textArray[i] != ""){
				text = decodeURIComponent(textArray[i]);
				if(nameArray[i] != null && addressArray[i] != null){
					text = text.replace(/_NAME_/, nameArray[i]);
					text = text.replace(/_ADDRESS_/, addressArray[i]);
				}
				var marker = createMarker(point, text);
			}
			map.addOverlay(marker);
		}
		addClickListener(map, map_search);
	}
}

function createMarker(point, html) {
	var marker = new GMarker(point);
//	GEvent.addListener(marker, "click", function() {
	GEvent.addListener(marker, "mouseover", function() {
		marker.openInfoWindowHtml(html);
	});
	
	return marker;
}


function addClickListener(map, map_search){
	GEvent.addListener(map, 'click', function(marker, point) {
		if(point){
			lat = (new Number(point.lat())).toString();
			lng = (new Number(point.lng())).toString();
			
			if(document.getElementById('lat') != null){
				document.getElementById('lat').value = lat.slice(0, lat.indexOf('.') + 6);
			}
			if(document.getElementById('lng') != null){
				document.getElementById('lng').value = lng.slice(0, lng.indexOf('.') + 6);
			}
			
			if(map_search){
				map.removeOverlay(target);
				target = new GMarker(new GLatLng(lat, lng), new createTargetIcon());
				map.addOverlay(target);
			}
		}
	});
}

function createTargetIcon(){
	var icon = new GIcon(G_DEFAULT_ICON, "images/target_marker.png");
	icon.iconSize = new GSize(24, 24);
	icon.iconAnchor = new GPoint(12, 12);
	icon.shadowSize = new GSize(0, 0);
	
	return icon;
}

function focusTextbox(textbox){
	var textbox = document.getElementById(textbox);
	if (textbox){
		textbox.focus();
		textbox.select();
	}
}

function focusDropdownMenu(menu){
	document.getElementById(menu).focus();
}

function imageLoadError(id){
	document.getElementById(id).innerHTML = "";
}
