check_ids = {};
function initialize() {
if (GBrowserIsCompatible()) {

        map = new GMap2(document.getElementById("map_div"));
//        map.setCenter(new GLatLng(36.695744, 137.863505), 12);
        map.addControl(new GLargeMapControl());


baseIcon = new GIcon();
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
baseIcon.image = "http://www.google.com/mapfiles/marker.png";

        var arg = location.search.replace("?", "");
        var args = arg.split("&");
        jQuery.each(args, function(){
                var check = this.split("=");
                if(check[0]=="coupon" && check[1]){
                        check_ids.shopCoupon = true;
                }
                if(check[0]=="bookingON" && check[1]){
                        check_ids.shopBookingON = true; 
                }
                if(check[0]=="bookingOFF" && check[1]){
                        check_ids.shopBookingOFF = true;
                }
                if(check[0]=="lodgerON" && check[1]){
                        check_ids.shopLodgerON = true;
                }
                if(check[0]=="lodgerOFF" && check[1]){
                        check_ids.shopLodgerOFF = true;
                }
                if(check[0]=="termON" && check[1]){
                        check_ids.shopTermON = true;
                }
                if(check[0]=="termOFF" && check[1]){
                        check_ids.shopTermOFF = true;
                }
                if(check[0]=="shopArea" && check[1]){
                        check_ids.shopArea = decodeURI(check[1]);
                }
        });       
        pointDraw();

        $('#shopArea').bind('change', function(){
                shopSearch();
        });

        $('input:checkbox').bind('click', function(){
		if (this.checked) {
			var m = this.id.match(/(.*)(ON|OFF)/);
			if (m) {
				var s = m[1] + (m[2] == 'ON' ? 'OFF' : 'ON');
				$('#' + s).removeAttr('checked');
			}
		}
                shopSearch();
        });

}// end of GBrowserIsCompatible()

}

function pointDraw(){
        map.clearOverlays();
        $('div.listByScript').remove();
        var count = 0;
        var html = "";
        var html_cols = "";
        var lat_max = 0;
        var lat_min = 90;
        var lng_max = 0;
        var lng_min = 180;

        jQuery.each( points, function(){
            if(this.point &&
                     ( (check_ids['shopArea'] && check_ids['shopArea']==this.area ) || (!check_ids['shopArea']) ) &&
                     ( (check_ids['shopCoupon'] && this.coupon ) || (!check_ids['shopCoupon']) ) &&
                     ( (check_ids['shopBookingON'] && this.booking ) || (check_ids['shopBookingOFF'] && !this.booking )|| (!check_ids['shopBookingON'] && !check_ids['shopBookingOFF']) ) &&
                     ( (check_ids['shopLodgerON'] && this.lodger ) || (check_ids['shopLodgerOFF'] && !this.lodger ) || (!check_ids['shopLodgerON'] && !check_ids['shopLodgerOFF']) ) &&
                     ( (check_ids['shopTermON'] && this.term ) || (check_ids['shopTermOFF'] && !this.term ) || (!check_ids['shopTermON'] && !check_ids['shopTermOFF']) )
            ){
                    var point = createMarker(this.point, this.index, this.window);
                    map.addOverlay(point);
if(this.point.lat() > lat_max){
    lat_max = this.point.lat();
}
if(this.point.lat() < lat_min){
    lat_min = this.point.lat();
}
if(this.point.lng() > lng_max){
    lng_max = this.point.lng();
}
if(this.point.lng() < lng_min){
    lng_min = this.point.lng();
}

                    html_cols+= '<div class="shoplist_list clearfix">';
                    html_cols+= '<a href="' + this.url + '" class="shopimg">';
                    html_cols+= '<img src="' + this.photo + '" alt="' + this.name + '" width="80" height="80" />';
                    html_cols+= '</a><div><a href="' + this.url + '">' + this.name + '</a><ul class="ul_icon">';
                    if( this.coupon ){
                        html_cols+= '<li><img src="img/idx_icon_coupon.gif" alt="クーポンあり" width="19" height="19" /></li>';
                    }

                    if( this.booking ){
                        html_cols+= '<li><img src="img/idx_icon_reserve.gif" alt="予約必要" width="15" height="15" /></li>';
                    }
                    if( this.lodger ){
                        html_cols+= '<li><img src="img/idx_icon_stay.gif" alt="宿泊者限定" width="15" height="15" /></li>';
                    }
                    if( this.term ){
                        html_cols+= '<li><img src="img/idx_icon_period.gif" alt="期間限定" width="15" height="15" /></li>';
                    }
                    html_cols+= '</ul></div></div>';

                    count++;
                    if( (count%4)==0 ){
                      html+= "<div class='clearfix listByScript'>"+ html_cols + "</div>";
                      html_cols = "";
                    }
            }
        });
        if( (count%4)!=0 ){
                html+= "<div class='clearfix listByScript'>"+ html_cols + "</div>";
        }
        $('h3.clearfix').after(html);

if(count > 0){
        var lat_c = (lat_max + lat_min) / 2;
        var lng_c = (lng_max + lng_min) / 2;
        var bounds_c = new GLatLngBounds(new GLatLng(lat_min,lng_min), new GLatLng(lat_max,lng_max));
        var zoom_c = map.getBoundsZoomLevel(bounds_c);
        if(zoom_c > 14) zoom_c = 14;
        map.setCenter(new GLatLng(lat_c, lng_c), zoom_c);

        $('div.result').html('<p>' + count + '件がヒットしました</p><a href="#shoplist" id="scrollToList"><img src="img/btn_result.gif" alt="検索結果一覧を見る" width="210" height="30" /></a></p>');

		$('#scrollToList').click(function() {
			$.scrollTo('#shoplist', {duration: 500});
			return false;
		});
}else{
        $('div.result').html('<p>条件に一致する店舗がありませんでした。</p>');
}

}

function shopSearch(){
	jQuery.each($("input:checkbox"), function(){
		if(this.id){
			var check_id = this.id;
			check_ids[check_id] = this.checked? true: false;
		}
	});
	
	 $("#shopArea option:selected").each(function () {
        	if(this.value){
                	check_ids.shopArea = $(this).text();
	        }else{
	                check_ids.shopArea = false;
	        }
	 });

       pointDraw();

}


function createMarker(point, index, window) {
	var Icon = new GIcon(baseIcon);
	markerOptions = { icon:Icon };
	var marker = new GMarker(point, markerOptions);

	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(window);
	});
	return marker;
}


