//<![CDATA[
if (typeof jQuery == 'undefined') {
	alert("jQueryライブラリを読み込んで下さい");
}else{
	if (typeof Prototype != 'undefined') jQuery.noConflict();

	jQuery(document).ready(function(){
		sync_all_button();
	});

	jQuery.postJSON = function(url, data, callback) {jQuery.post(url, data, callback, "json");};

	var gmap;

	var fnDispHospMap = function(mapid, zoom, mtype, width, height) {
		if (GBrowserIsCompatible()) {
			var opts = {mapTypes : [G_NORMAL_MAP,G_SATELLITE_MAP],size : new GSize(width, height)};
			gmap = new GMap2(document.getElementById(mapid),opts);
			gmap.enableContinuousZoom();
			gmap.enableDoubleClickZoom();
			gmap.addControl(new GScaleControl());
			gmap.addControl(new GMapTypeControl());
			gmap.addControl(new GLargeMapControl());
			gmap.setCenter(new GLatLng(35.658, 139.745), Number(zoom));
			setHospMarker();

			// ズーム変更時のイベント
			GEvent.addListener(gmap, "moveend", function() {setHospMarker();});

			jQuery("input:checkbox").click(function(){setHospMarker();});
		}
	}

	var setHospMarker = function() {

		var bounds = gmap.getBounds();
		var sw = bounds.getSouthWest();
		var ne = bounds.getNorthEast();

		var cnt = jQuery("input:checkbox[@name^='price']").size();

		var price = "";
		for (var i = 0; i < cnt; i++) {
			if (jQuery("input:checkbox")[i].checked) {
				if (price != "") price = price + ",";
				price = price + jQuery("input:checkbox")[i].value;
			}
		}

		jQuery.postJSON("/bloc/map_search.php",{minX:sw.lat(),maxX:ne.lat(),minY:sw.lng(),maxY:ne.lng(),price:price}, function(jsonData) {
			gmap.clearOverlays();
			if (jsonData.error == "") {
				for (var i = 0; i < jsonData.rowcnt; i++) {
					addMarker(jsonData.arrRecord[i]['ido'], jsonData.arrRecord[i]['keido'], jsonData.arrRecord[i]['no'], jsonData.arrRecord[i]['name'], jsonData.arrRecord[i]['addr'], jsonData.arrRecord[i]['station'], jsonData.arrRecord[i]['price'], jsonData.arrRecord[i]['monitor']);
				}
			} else {
				alert(jsonData.error);
			}
		});
	}

	var addMarker = function(lat, lng, no, name, addr, station, price, monitor) {

		// マーカー生成
		var gll = new GLatLng(lat, lng);
		var marker = new GMarker(gll);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml("<a href=\"/hosp/detail/"+ no + "\">" + "<b>" + name + "</b></a>" + "<br>住所：" + addr + "<br>最寄駅：" + station + "<br>標準料金：" + price + "円" + "<br>モニター募集状況：" + monitor + "円");
		});
		gmap.addOverlay(marker);
	}

	var toggle_checkbox = function(ele, type){
		if(!type)type = get_type(ele);

		var checkbox = get_checkbox(ele);
		if(!checkbox.checked){
			checkbox.checked = true;
			checkbox.setAttribute("checked","checked");
		}else{
			checkbox.checked = false;
			checkbox.removeAttribute("checked");
		}
		setHospMarker();
		sync_button(ele,checkbox);
		
		return false;
	}

	var get_checkbox = function(element){
		for(var i=0; i<element.childNodes.length; i++){
			if(typeof(element.childNodes[i].tagName) == 'undefined') continue;
			if(element.childNodes[i].tagName.match(/input/i)
			 &&  element.childNodes[i].getAttribute("type").match(/checkbox/i)){
			 	return element.childNodes[i];
			 }
			 
			 var res = get_checkbox(element.childNodes[i]);
			 if(res !== false){
			 	return res;
			 }
		}
		
		return false;
	}

	var botton_on = function(ele){
		var type = get_type(ele);
		var img = new Image(); img.src = "/img/search_box_"+type+"_on02.jpg";
		ele.style.backgroundImage = "url(/img/search_box_"+type+"_on02.jpg)";
		ele.style.fontWeight = "normal";
	}

	var botton_off = function(ele){
		var type = get_type(ele);
		var img = new Image(); img.src = "/img/search_box_"+type+"_off02.jpg";
		ele.style.backgroundImage = "url(/img/search_box_"+type+"_off02.jpg)";
		ele.style.fontWeight = "normal";
	}

	var sync_button = function(ele,checkbox){
		if(!checkbox)checkbox=get_checkbox(ele);
		if(checkbox.checked){
			botton_on(ele);
		}else{
			botton_off(ele);
		}
	}

	var get_type = function(ele){
		return ele.getAttribute("background").match(/(?:green|yellow|blue|pink)/);
	}

	var sync_all_button = function(){
		var tds = document.getElementsByTagName("td");
		for (var i = 0; i < tds.length; i ++) {
			var checkbox;

			if(checkbox = get_checkbox(tds[i])){
				sync_button(tds[i],checkbox);
			}
		}
	}
}
//]]>

