function show_menu(host_object_id, visible_object_id){

	var lnLeft, lnTop;
	var lobjParent;
	var objleft;

	if(document.getElementById){
		var visible_object = document.getElementById(visible_object_id);
		var host_object = document.getElementById(host_object_id);
	}else if(document.all){
		var visible_object = document.all[visible_object_id];
		var host_object = document.all[host_object_id];
	}
	else{
		var visible_object = document.layers(visible_object_id);
	}

	lnLeft = 0;
	lnTop = 0;
	lobjParent = host_object;
	while ( lobjParent != null ) {
		lnLeft += lobjParent.offsetLeft; 
		lnTop  += lobjParent.offsetTop; 
		lobjParent = lobjParent.offsetParent;
	} 
	lnTop += host_object.offsetHeight-3;
	
	if(document.all){
		visible_object.style.left = lnLeft;
		visible_object.style.top =  lnTop;	
		visible_object.style.display="block";
		visible_object.style.visibility="visible";

	}else if(document.getElementById){

		visible_object.style.left = lnLeft + "px";
		visible_object.style.top = lnTop + "px";
		visible_object.style.display="block";
		visible_object.style.visibility="visible";
		
	}
	else
	{
		visible_object.style.left = lnLeft ;
		visible_object.style.top = lnTop ;
		visible_object.style.display="block";
		visible_object.style.visibility="visible";
	}
	
}
/* ポップアップメニュー非表示 */
function hide_menu(visible_object_id){

	var lnEx, lnEy, lnEw, lnEh;
	var lnX, lnY;

	if(document.getElementById){
		var visible_object = document.getElementById(visible_object_id);
	}else if(document.all){
		var visible_object = document.all[visible_object_id];
	}
	else{
		var visible_object = document.layers(visible_object_id);
	}
	visible_object.style.visibility="hidden";
	visible_object.style.display="none";
	
}
/* ポップアップメニューボタンクリック */
function menu(host_object_id, visible_object_id){

	if(document.getElementById){
		var visible_object = document.getElementById(visible_object_id);
	}else if(document.all){
		var visible_object = document.all[visible_object_id];
	}
	else{
		var visible_object = document.layers(visible_object_id);
	}
	
	if(visible_object.style.display == 'block'){
		hide_menu(visible_object_id);
	}else{
		show_menu(host_object_id,visible_object_id);
	}
}



////////////////////////////FOR Maps//////////////////////////////////

var EMap={
    P:{Map:null,OMap:null,Mark:null,Lang:null,Marks:[],Descs:[],Imgs:[],Icon:'',
    MType: null, KMLs: null, CatKMLs: null, Maptype: '', Lat: 0, Lng: 0, Zoom: 0, MKNum: 0
    },
    StartInput:function(){
	    if(GBrowserIsCompatible()){

		    if($('mtype').value && window[$('mtype').value]){
			    EMap.P.MType = eval($('mtype').value);
		    }else{
			    EMap.P.MType = G_NORMAL_MAP;
		    }
		    if(!EMap.Initialize())return;

		    var c = new GLatLng($('lat').value,$('lng').value);
	  	    EMap.P.Map.setCenter(c,parseInt($('zoom').value));
		    var p = new Object();
		    p.draggable = true;
		    p.title = "地図をクリックするか、マーカーをドラッグして目的地を設定してください！";
		    EMap.P.Mark = new GMarker(c, p);
		    EMap.P.Map.addOverlay(EMap.P.Mark);
		    GEvent.addListener(EMap.P.Map, 'click', function(o,p){
			    if(p){EMap.P.Mark.setPoint(p);EMap.F.SetLatLng(p);}
	        });
		    GEvent.addListener(EMap.P.Map, 'zoomend',function(o, n) {
	    	    $('zoom').value  =n;$('sz').innerHTML  =n;
		    });
	        GEvent.addListener(EMap.P.Mark, 'dragend',function() {
	       	    var p = EMap.P.Mark.getPoint();EMap.F.SetLatLng(p);
	        });
		    //addListener
		    GEvent.addListener(EMap.P.Map, 'maptypechanged', function() {
			    for (i in GN_MTX){
				    if(eval(GN_MTX[i])==EMap.P.Map.getCurrentMapType())$('mtype').value = GN_MTX[i];break;
			    }
	        });
		    if(EMap.P.Map.isLoaded()){
			    Eview.Change.SubmitMap( 0 ,1 );
		    }else{
			    GEvent.addListener(EMap.P.Map,"load",function(){ 
				    Eview.Change.SubmitMap( 0 ,1 );
			    });
		    }
	    }else{
		    $("geo").style.visibility = "hidden"; 
		    if($("geo"))$("map").innerHTML='<strong>このブラウザでは、GoogleMapが使用できません！</strong>';
	    }
    },
    ItemBy:function(){
	    if(GBrowserIsCompatible()){
		    if(EMap.P.Maptype) EMap.P.MType = eval(EMap.P.Maptype) ;
		    if(!EMap.Initialize())return;
		    var c = new GLatLng(EMap.P.Lat,EMap.P.Lng);
		    EMap.P.Map.setCenter(c,parseInt(EMap.P.Zoom));
		    var p = new Object();
		    p.title = "ここです！";

		    if(EMap.P.Icon==''){
			    EMap.P.Mark = new GMarker(c);
			    EMap.P.Map.addOverlay(EMap.P.Mark);
		    }else{
			    var p = EMap.P.Icon.split(",");
			    icon = new GIcon();
			    icon.image = p[0];
			    icon.iconSize = new GSize(eval(p[1]), eval(p[2]));
			    if(p[3]!=''){
				    icon.shadow = p[3];
				    icon.shadowSize = new GSize(eval(p[4]), eval(p[5]));
			    }
			    icon.iconAnchor = new GLatLng(eval(p[7]),eval(p[6])); 
			    EMap.P.Mark = new GMarker(c,icon);
			    EMap.P.Map.addOverlay(EMap.P.Mark);
		    }
	    }else{
		    $("map").innerHTML='<strong>このブラウザでは、GoogleMapが使用できません！</strong>';
	    }
    },
    DrawXML:function(){
	    if(EMap.P.KMLs){
		    for( var i = 0; i < EMap.P.KMLs.length; i++ ) {
			    var x = new GGeoXml(EMap.P.KMLs[i]);
			    EMap.P.Map.addOverlay(x);
		    }
	    }
	    if(EMap.P.CatKMLs){
		    for( var i = 0; i < EMap.P.CatKMLs.length; i++ ) {
			    var x = new GGeoXml(EMap.P.CatKMLs[i]);
			    EMap.P.Map.addOverlay(x);
		    }
	    }    
    },
    Initialize:function(){
	    if(!$('map'))return false;

	    if(!EMap.P.MType)EMap.P.MType=G_NORMAL_MAP;
	    opts = {mapTypes : EMap.F.GetMapTypes(EMap.P.MType) };
	    EMap.P.Map = new GMap2($('map'),opts);

	    // If don't use , comment out these settings.  

		    // option1: add small map
		    EMap.P.OMap = new GOverviewMapControl();
		    EMap.P.Map.addControl(EMap.P.OMap);

		    // option2: add large map control
		    EMap.P.Map.addControl(new GLargeMapControl());

		    // option3: add Scale
		    EMap.P.Map.addControl(new GScaleControl());

		    // option4: add maptype control button
		    EMap.F.addGMapTypeControl();

		    // option5: enable DoubleClickZoom
		    EMap.P.Map.enableDoubleClickZoom();

		    // option6: enable smooze Zoom
		    EMap.P.Map.enableContinuousZoom();

		    // option7: enable move by keybode
		    new GKeyboardHandler(EMap.P.Map);
    		
		    // option11: set default maptype
		    EMap.F.setGMapType();

		    //option 12: include kml files
		    EMap.DrawXML();

	    //	EMap.P.Map.enableScrollWheelZoom();

	    return true;
    },
    F:{
        RightClick:function(){
	        var r = document.createElement("div");
	        r.style.visibility = "hidden";
	        r.innerHTML = "<input type='button' onclick='frmlatlng.submit()' style='padding:3px;font-size:13px;cursor:pointer;' value='この場所に記事を登録する'>";
	        EMap.P.Map.getContainer().appendChild(r);
	        GEvent.addListener(EMap.P.Map, "singlerightclick", function(point) {
		        EMap.F.SetLatLng(EMap.P.Map.fromContainerPixelToLatLng(point));
		        var p = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(point.x, point.y));
		        p.apply(r);
		        r.style.visibility = "visible";
	        });
	        GEvent.addListener(EMap.P.Map, "click", function() {
	  	        if (r.style.visibility == "visible")r.style.visibility = "hidden";
	        });
	        GEvent.addListener(EMap.P.Map, "mouseout", function() {
	  	        if (r.style.visibility == "visible")r.style.visibility = "hidden";
	        });
	        GEvent.addListener(EMap.P.Map, 'moveend', function() {
	  	        if (r.style.visibility == "visible")r.style.visibility = "hidden";
	        });
        },
        SetLatLng:function(p){
	        $('lat').value  = mround(p.lat());
	        $('slat').innerHTML  = mround(p.lat());
	        $('lng').value  = mround(p.lng());
	        $('slng').innerHTML  = mround(p.lng());
        },
        ReDrawOverView:function(){
   	        var m = EMap.P.OMap.getOverviewMap();
	        if (m) {    
		        if(m.isLoaded()){
			        m.setMapType( EMap.P.MType );
		        }else{
			        GEvent.addListener(m,"load",function(){ 
				        m.setMapType( EMap.P.MType );
		            });
		        }
	        } else {
	   	        setTimeout(EMap.F.ReDrawOverView,100);
	        }
        },
        GetMapTypes:function(m){
	        var r;
	        switch(m){
		        case 	G_NORMAL_MAP:
		        case 	G_SATELLITE_MAP:
		        case 	G_HYBRID_MAP:
		        case 	G_PHYSICAL_MAP:
		        case 	G_HYBRID_PHYSICAL_MAP:
			        r = G_DEFAULT_MAP_TYPES;
			        break;
		        case 	G_MOON_ELEVATION_MAP:
		        case 	G_MOON_VISIBLE_MAP:
			        r = G_MOON_MAP_TYPES;
			        break;
		        case 	G_MARS_ELEVATION_MAP:
		        case 	G_MARS_VISIBLE_MAP:
		        case 	G_MARS_INFRARED_MAP:
			        r = G_MARS_MAP_TYPES;
			        break;
		        case 	G_SKY_VISIBLE_MAP:
			        r = G_SKY_MAP_TYPES;
			        break;
		        default:
			        r = G_DEFAULT_MAP_TYPES;
	        }
	        return r;
        },
        addGMapTypeControl:function(){
		    if(EMap.F.GetMapTypes(EMap.P.MType)==G_DEFAULT_MAP_TYPES && window['G_HYBRID_PHYSICAL_MAP']){
			    EMap.P.Map.addMapType(G_PHYSICAL_MAP);
			    EMap.P.Map.addMapType(G_HYBRID_PHYSICAL_MAP);
			    var c = new GHierarchicalMapTypeControl();
			    c.clearRelationships();
			    c.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "地名を表示", false);
			    c.addRelationship(G_PHYSICAL_MAP, G_HYBRID_PHYSICAL_MAP, "地名を表示", false);
			    EMap.P.Map.addControl(c);
		    }else{
			    EMap.P.Map.addControl(new GMapTypeControl());
		    }       
        },
        setGMapType:function(){
	        if(EMap.P.MType){
		        GEvent.addListener(EMap.P.Map,"load",function(){ 
			        EMap.P.Map.setMapType( EMap.P.MType );
			        setTimeout(EMap.F.ReDrawOverView,100);
	            });
	        }
        }
    }
}
function InputGMap(){EMap.StartInput();}
function ShowItemGMap(){EMap.ItemBy();}
function showAddress(address) {

	//get latlng by address strings.

	if(!GBrowserIsCompatible()||address=='')return;
    var gn_geo = new GClientGeocoder();
    var gn_geoz　=18;
	if (gn_geo) {
       	gn_geo.getLatLng(address,function(p) {
			if (!p) {
				alert(address + "が見つかりません！");
			} else {
				if(gn_geoz<0){
					 EMap.P.Map.setCenter(p);
				}else{
					 EMap.P.Map.setCenter(p,gn_geoz);
				}
               	EMap.P.Mark.setPoint(p);
               	EMap.P.Mark.openInfoWindowHtml(address);
				EMap.F.SetLatLng(p);
           	}
           	gn_geo=null;
       	});
	}

}

////////////////////////////FOR Items//////////////////////////////////

function delete_Item(d){
	var s;
	if(d) s = "この記事をゴミ箱から完全に削除してもよろしいですか？" ;
	else s = "この記事を削除してもよろしいですか？" ;
	if (window.confirm(s)){
		document.submitEstate.submit();
	}
}

////////////////////////////FOR Search//////////////////////////////////


var Search = {
    P: {
        Dom_List: '',
        Dom_ListItem: '',
        Dom_NotFound: '',
        Dom_Map: '',
        Titles: [],
        noCache: 0
    },
    Flg: { StyleIndex: -1 },
    Init: function() {
        Eview.Change.Area(0, 1);
        Eview.Change.Equips(0, 1);
        Eview.Change.Map(0, 1);

        Search.P.Dom_List = $('resurt_list').innerHTML.toLowerCase();
        Search.P.Dom_ListItem = $('resurt_list_item').innerHTML.toLowerCase();
        Search.P.Dom_NotFound = $('waiting').innerHTML.toLowerCase();
        Search.P.Dom_Map = $('gmap_info').innerHTML.toLowerCase();

        Search.P.Dom_ListItem = Search.P.Dom_ListItem.replace("<table>", "");
        Search.P.Dom_ListItem = Search.P.Dom_ListItem.replace("</table>", "");
        Search.P.Dom_ListItem = Search.P.Dom_ListItem.replace("<tbody>", "");
        Search.P.Dom_ListItem = Search.P.Dom_ListItem.replace("</tbody>", "");

        Search.P.Dom_NotFound = Search.P.Dom_NotFound.replace("<table>", "");
        Search.P.Dom_NotFound = Search.P.Dom_NotFound.replace("</table>", "");
        Search.P.Dom_NotFound = Search.P.Dom_NotFound.replace("<tbody>", "");
        Search.P.Dom_NotFound = Search.P.Dom_NotFound.replace("</tbody>", "");

        include("req.php?format=jsonp&callback=Search.Master.Callback&type=master");

        $('zip').onkeypress = Search.E.Keysearch;
        $('keywords').onkeypress = Search.E.Keysearch;
    },
    Exe: function() {
        if (parseInt($('mapchk').value) > 0) Eview.F.ClearMks();
        $('start').value = 0;
        Search.Search();
    },
    Start: function(s) {
        $('start').value = s;
        Search.Search();
    },
    Order: function(o) {
        $('start').value = 0;
        if ($('order').value == o) {
            if (parseInt($('sort').value) == 0) $('sort').value = 1;
            else $('sort').value = 0;
        } else {
            $('sort').value = 0;
            $('order').value = o;
        }
        Search.Search();
    },
    Search: function() {
        var q = "";
        q += Search.M.Q.Chk("kind");
        q += Search.M.Q.Chk("arrangement");
        q += Search.M.Q.Num("costmin");
        q += Search.M.Q.Num("costmax");
        q += Search.M.Q.Num("areamin");
        q += Search.M.Q.Num("areamax");
        q += Search.M.Q.Num("yearsold");
        q += Search.M.Q.Text("zip");
        q += Search.M.Q.Text("keywords");
        if ($('status')) {
            var v = parseInt($('status').value);
            if (v != 2) q += "&status=" + v;
        }
        q += Search.M.Q.Num("areadescck");
        q += Search.M.Q.Chk("aid");
        q += Search.M.Q.Chk("aiddesc");
        q += Search.M.Q.Num("equipchk");
        q += Search.M.Q.Chk("equipment");
        q += Search.M.Q.Text("start");
        q += Search.M.Q.Text("division");
        if (parseInt($('mapchk').value) > 0) {
            q += Search.M.Q.Bbox();
            q += "&mapchk=1";
            q += "&order=random";
            q += "&num=25";
        } else {
            q += Search.M.Q.Num("num");
            q += Search.M.Q.Text("order");
            q += Search.M.Q.Text("sort");
        }
        q += Search.M.Q.Num("oid");

        include("req.php?format=jsonp&callback=Search.Callback" + q + "&x=" + (new Date()).getTime());
        Cookie.Set(Cookie.Name(), q);
    },
    Callback: function(data) {
        if (!Search.Master.IsLoaded) return;
        if (data) {
            var mapmode = parseInt($('mapchk').value);
            var items = data.item;
            if (mapmode > 0) {
                if (parseInt(data.row) > 0) {
                    for (var i = 0; i < items.length; i++) Search.F.Draw_Map(items[i]);
                }
                if (EMap.P.MKNum == 0) rcount = "表示中のエリアに一致する物件はありません。";
                else rcount = addFigure(EMap.P.MKNum) + " 件をマーク";
                $('resultcount').innerHTML = rcount;
            } else {
                Search.F.Draw_StartSet(data);
                var str = "";
                Search.P.Titles = [];
                var ev = 0;
                if (parseInt(data.row) > 0) {
                    for (var i = 0; i < items.length; i++) {
                        str += Search.F.Draw_List(items[i], ev);
                        if (ev > 0) ev = 0; else ev = 1;
                    }
                } else {
                    if (parseInt(data.count) > 0) {
                        Search.Exe();
                        return;
                    } else {
                        str = Search.P.Dom_NotFound;
                    }
                }
                result_flame = Search.F.Draw_Order(Search.P.Dom_List);
                $('resurt').innerHTML = result_flame.replace("<tbody></tbody>", "<tbody>" + str + "</tbody>");
            }
        }
    },
    Form: {
        Clear: function() {
            Search.M.C.Chk("kind", 0);
            Search.M.C.Chk("arrangement", 0);
            Search.M.C.Num("costmin", 0);
            Search.M.C.Num("costmax", 0);
            Search.M.C.Num("areamin", 0);
            Search.M.C.Num("areamax", 0);
            Search.M.C.Num("yearsold", 0);
            Search.M.C.Text("zip", "");
            Search.M.C.Text("keywords", "");
            Search.M.C.Num("status", 2);
            Search.M.C.Num("areadescck", 0);
            Search.M.C.Chk("aid", 0);
            Search.M.C.Chk("aiddesc", 0);
            Search.M.C.Num("equipchk", 0);
            Search.M.C.Chk("equipment", 0);
            Search.M.C.Text("order", "");
            Eview.Change.Area(0, 1);
            Eview.Change.Equips(0, 1);
            Search.Exe();
        },
        Load: function() {
            var c = Cookie.Get(Cookie.Name());
            var rs = c.split('&');
            var l = false;
            for (var i = 0; i < rs.length; i++) {
                var x = rs[i].split('=');
                if (x.length > 1) {
                    switch (x[0]) {
                        case 'zip': case 'keywords': case 'order': case 'start':
                            Search.M.C.Text(x[0], decodeURIComponent(x[1])); break;
                        case 'costmin': case 'costmax': case 'areamin': case 'areamax': case 'yearsold': case 'status': case 'areadescck': case 'equipchk': case 'num':
                            Search.M.C.Num(x[0], parseInt(x[1])); break;
                        case 'kind': case 'arrangement': case 'aid': case 'aiddesc': case 'equipment':
                            Search.M.C.Chk(x[0], x[1].split(',')); break;
                        default:
                            break;
                    }
                    if (x[0] = 'mapchk') l = true;
                }
            }
            if (l) {
                Search.M.C.Text("order", "");
                Search.M.C.Num("num", 10);
            }
            Eview.Change.Area(0, 1);
            Eview.Change.Equips(0, 1);
            Search.Search();
        }
    },
    Map: {
        Show: function() {
            if (GBrowserIsCompatible()) {

                if ($('mtype').value && window[$('mtype').value]) EMap.P.MType = eval($('mtype').value);
                else EMap.P.MType = G_NORMAL_MAP;

                if (!EMap.Initialize()) return;
                var c = new GLatLng($('lat').value, $('lng').value);
                EMap.P.Map.setCenter(c, parseInt($('zoom').value));
                GEvent.addListener(EMap.P.Map, 'moveend', function() {
                    var p = EMap.P.Map.getCenter();
                    EMap.F.SetLatLng(p);
                    Search.Search();
                });
                GEvent.addListener(EMap.P.Map, 'zoomend', function(oldZoomLevel, newZoomLevel) {
                    $('zoom').value = newZoomLevel;
                    $('sz').innerHTML = newZoomLevel;
                    Search.Search();
                });
                GEvent.addListener(EMap.P.Map, 'maptypechanged', function() {
                    for (i in GN_MTX) {
                        if (eval(GN_MTX[i]) == EMap.P.Map.getCurrentMapType()) {
                            $('mtype').value = GN_MTX[i]; break;
                        }
                    }
                });
                if (estate_editer[0]) EMap.F.RightClick();
            } else {
                $("map").innerHTML = '<strong>このブラウザでは、GoogleMapが使用できません！</strong>';
            }
        }
    },
    Master: {
        Data: null,
        IsLoaded: 0,
        Callback: function(data) {
            Search.Master.Data = data;
            Search.Master.IsLoaded = 1;
            if (Search.P.noCache > 0) Search.Exe()
            else Search.Form.Load();
        }
    },

    F: {
        Draw_Map: function(item) {
            var lid = item['lid'];
            if (EMap.P.Marks[lid] == undefined) {

                EMap.P.MKNum++;
                EMap.P.Imgs[lid] = item['src'].m;
                EMap.P.Marks[lid] = new GMarker(new GLatLng(item['lat'], item['lng']));
                EMap.P.Map.addOverlay(EMap.P.Marks[lid]);

                link_start = "<a href='" + item['uri'] + "' target='_blank'>";
                link_end = "</a>";

                if (item['ext']) thumb = link_start + "<img src='" + item['src'].m + "' />" + link_end;
                else thumb = "";
                link = link_start + "<img src='images/btn_detail.gif' />" + link_end;

                var s = Search.P.Dom_Map;

                s = s.replace("[link]", link);
                s = s.replace("[yearsold]", item['yearsold']);
                s = s.replace("[structure]", item['structure']);
                s = s.replace("[area]", item['area']);
                s = s.replace("[arrangement]", Search.Master.Data.arrangement[item['arrangement']]);
                s = s.replace("[cost]", addFigure(item['cost']));
                s = s.replace("[thumb]", thumb);
                s = s.replace("[kind]", Search.Master.Data.kind[item['kind']]);
                s = s.replace("[catch]", item['catch']);
                s = s.replace("[title]", link_start + item['title'] + link_end);

                EMap.P.Descs[lid] = s;

                GEvent.addListener(EMap.P.Marks[lid], "click",
			        GEvent.callbackArgs(EMap.P.Marks[lid], function(id) {
			            if (EMap.P.Imgs[id] == undefined || EMap.P.Imgs[id] == "") {
			                EMap.P.Marks[id].openInfoWindowHtml(EMap.P.Descs[id]);
			            } else {
			                var i = new Image();
			                i.onload = function() { EMap.P.Marks[id].openInfoWindowHtml(EMap.P.Descs[id]); this.onload = null; };
			                i.onerror = function() { EMap.P.Marks[id].openInfoWindowHtml(EMap.P.Descs[id]); this.onload = null; };
			                i.src = EMap.P.Imgs[id];
			            }
			        }, lid));
            }
            return;
        },
        Draw_List: function(item, ev) {
            var s = Search.P.Dom_ListItem;

            if (ev > 0) s = s.replace(/xe_row/g, "xe_row_ev");

            var link_start = "<a href='" + item['uri'] + "'>";
            var link_end = "</a>";
            var thumb = "";

            var isnew = "";
            if (item['isnew'] == 1) isnew = " <img src='images/new.gif'/>";

            if (item['ext']) thumb = link_start + "<img src='" + item['src'].s + "' />" + link_end;
            else thumb = link_start + "<img src='images/noimage_s.gif'/>" + link_end;

            link = "";
            if (estate_editer[3] || (estate_editer[1] && estate_editer[4] > 0 && estate_editer[4] == item['submit_id'])) {
                if (link != "") link += "<br />";
                link += "<a href='" + item['uri'] + "&page=submit'>" + "<img src='images/btn_edit.gif' />" + link_end;
            }
            if (estate_editer[3] || (estate_editer[0] && estate_editer[4] > 0 && estate_editer[4] == item['submit_id'])) {
                if (link != "") link += "<br />";
                link += "<a href='" + item['uri'] + "&page=submit&mode=copy'>" + "<img src='images/btn_copy.gif' />" + link_end;
            }
            if (estate_editer[3] || (estate_editer[2] && estate_editer[4] > 0 && estate_editer[4] == item['submit_id'])) {
                if (link != "") link += "<br />";
                link += "<a href='javascript:void(0);' onclick='Search.Delete.Exe(" + item['lid'] + "," + item['status'] + ");return false;'>" + "<img src='images/btn_delete.gif' />" + link_end;
            }
            if (link != "") link = "<div style='padding-top:5px;'>" + link + "</div>";
            link = link_start + "<img src='images/btn_detail.gif' />" + link_end + link;

            //must order by bottom field
            s = s.replace("[area]", item['area']);
            s = s.replace("[yearsold]", item['yearsold']);
            s = s.replace("[kind]", Search.Master.Data.kind[item['kind']]);
            s = s.replace("[address]", item['address']);
            s = s.replace("[access]", item['access']);
            s = s.replace("[link]", link);
            s = s.replace("[arrangement]", Search.Master.Data.arrangement[item['arrangement']]);
            s = s.replace("[floor]", item['floor']);
            s = s.replace("[myfloor]", item['myfloor']);
            s = s.replace("[structure]", item['structure']);
            s = s.replace("[cost]", addFigure(item['cost']));
            s = s.replace("[catch]", item['catch']);
            s = s.replace("[title]", link_start + item['title'] + link_end + isnew);
            s = s.replace("[thumb]", thumb);
            s = s.replace("[lid]", item['lid']);
            s = s.replace("[bookmark]", "<form name=\"notification_select\" id=\"notification_select\" action=\"notification_update.php\" method=\"post\"><div class=\"skip\"><input name=\"not_redirect\" value=\"http://www.e-jyaro-okayama.com/e-jyaronew/modules/gourmet/\" type=\"hidden\"></div><input type=\"hidden\" name=\"not_list[2][params]\" value=\"item," + item['lid'] + ",bookmark\" /><input style=\"display:none;\" type=\"checkbox\" id=\"not_list_1_2\" name=\"not_list[2][status]\" value=\"" + item['lid'] + "\" checked=\"true\" /><input type=\"submit\" name=\"not_submit\" value=\"このお店をリストに追加\" /></form>");
            Search.P.Titles[parseInt(item['lid'])] = item['title'];

            return (s);
        },
        Draw_StartSet: function(r) {
            var d = "none";
            var c = "";
            var rl = "";
            if (parseInt(r.count) == 0) {
                c = "条件に一致するお店はありませんでした。";
            } else {
                var icnt = 7;
                var p = 0;
                var str = "";
                for (i = 0; i < parseInt(r.count); i += parseInt(r.num)) {
                    p++;
                    if (parseInt(r.start) - icnt * parseInt(r.num) <= i && i < parseInt(r.start) + (icnt + 1) * parseInt(r.num)) {
                        if (parseInt(r.start) >= i && parseInt(r.start) < i + parseInt(r.num)) str += "<span>" + p + "</span>";
                        else str += "<a href='javascript:void(0);' onclick='Search.Start(" + i + ");return false;'>" + p + "</a>";
                    }
                }
                c = addFigure(r.count) + " 件中 " + (parseInt(r.start) + 1) + " ～ " + (parseInt(r.start) + parseInt(r.row)) + " を表示";
                if (p > 1) {
                    if (parseInt(r.start) > 0) rl += "<a href='javascript:void(0);' onclick='Search.Start(" + (parseInt(r.start) - parseInt(r.num)) + ");return false;'>前へ</a>";
                    rl += str;
                    if (parseInt(r.start) < (p - 1) * parseInt(r.num)) rl += "<a href='javascript:void(0);' onclick='Search.Start(" + (parseInt(r.start) + parseInt(r.num)) + ");return false;'>次へ</a>";
                    d = "block";
                }
            }
            $('xe_cntlist').style.display = d;
            $('resultcount').innerHTML = c;
            $('xe_cntlist').innerHTML = rl;
        },
        Draw_Order: function(strt) {
            var o = $('order').value;
            var s = parseInt($('sort').value);
            for (i = 0; i < estate_orderlist.length; i++) {
                if (estate_orderlist[i] == o) {
                    if (s == 0) str = "<img src='images/sort_asc.gif' align='absmiddle'/>";
                    else str = "<img src='images/sort_desc.gif' align='absmiddle'/>";
                } else {
                    str = "";
                }
                strt = strt.replace("[" + estate_orderlist[i] + "]", str);
            }
            var c;
            if (Search.Flg.StyleIndex > 0) CssRule.Delete(Search.Flg.StyleIndex);
            Search.Flg.StyleIndex = -1;
            switch (o) {
                case "title":
                    c = 2;
                    Search.Flg.StyleIndex = CssRule.Add(".xe_title", "background-color:#ffffb8;");
                    break;
                case "cost":
                    Search.Flg.StyleIndex = CssRule.Add(".xe_cost", "background-color:#ffffb8;");
                    c = 3;
                    break;
                case "kind":
                    Search.Flg.StyleIndex = CssRule.Add(".xe_kind", "background-color:#ffffb8;");
                    c = 3;
                    break;
                case "myfloor":
                case "floor":
                    Search.Flg.StyleIndex = CssRule.Add(".xe_structure", "background-color:#ffffb8;");
                    c = 4;
                    break;
                case "yearsold":
                    Search.Flg.StyleIndex = CssRule.Add(".xe_yearsold", "background-color:#ffffb8;");
                    c = 4;
                    break;
                case "arrangement":
                    Search.Flg.StyleIndex = CssRule.Add(".xe_arrangement", "background-color:#ffffb8;");
                    c = 5;
                    break;
                case "area":
                    Search.Flg.StyleIndex = CssRule.Add(".xe_area", "background-color:#ffffb8;");
                    c = 5;
                    break;
                default:
                    c = 0;
            }
            if (c > 0) strt = strt.replace("xe_col" + c + "", "xe_col" + c + "_a");
            return strt;
        }
    },
    E: {
        Keysearch: function(e) {
            var ev, key, mf, k;
            ev = (!e) ? event : e; key = ev.keyCode; mf = (ev.modifiers) ? ev.modifiers : ((ev.altKey) ? 1 : 0) + ((ev.ctrlKey) ? 2 : 0) + ((ev.shiftKey) ? 4 : 0); k = key + '_' + mf;
            if (k == '13_0') Search.Exe();
        }
    },
    M: {
        Q: {
            Chk: function(t) {
                var str = "";
                var arr = Search.M.Chk2arr(t + "[]");
                if (arr != false) {
                    for (i = 0; i < arr.length; i++) {
                        if (arr[i].checked) {
                            if (str != "") str += ",";
                            str += arr[i].value;
                        }
                    }
                    if (str != "") return "&" + t + "=" + str;
                }
                return "";
            },
            Text: function(t) {
                if ($(t)) {
                    val = $(t).value;
                    if (val) return "&" + t + "=" + encodeURIComponent(val);
                }
                return "";
            },
            Num: function(t) {
                if ($(t)) {
                    val = parseInt($(t).value);
                    if (val > 0) return "&" + t + "=" + val;
                }
                return "";
            },
            Bbox: function() {
                var b = EMap.P.Map.getBounds();
                return '&bbox=' + (b.getSouthWest().lng()).toFixed(6) + ',' + (b.getSouthWest().lat()).toFixed(6) + ',' + (b.getNorthEast().lng()).toFixed(6) + ',' + (b.getNorthEast().lat()).toFixed(6);
            }
        },
        C: {
            Chk: function(o, a) {
                var arr = Search.M.Chk2arr(o + "[]");
                if (arr != false) {
                    for (i = 0; i < arr.length; i++) {
                        var c = false
                        for (t = 0; t < a.length; t++) {
                            if (parseInt(a[t]) == parseInt(arr[i].value)) { c = true; break; }
                        }
                        if (c) arr[i].checked = true;
                        else arr[i].checked = false;
                    }
                }
            },
            Text: function(o, a) { if ($(o)) $(o).value = a; },
            Num: function(o, a) { Search.M.C.Text(o, a); }
        },
        Chk2arr: function(t) {
            if (document.searchEstate.elements[t]) {
                a = document.searchEstate.elements[t];
                if (a.length) return a;
                else return new Array(a);
            } else return false;
        }

    }
};
function search_order(o){Search.Order(o);}
function search_start(){Search.Init()}





/////////////////////////////VIEW Function///////////////////////////////

var Eview={
    Change:{
        Equips:function(time , IsInit){
	        if( Eview.F.Flg.Equips < 0 ) return ;
	        Eview.F.Flg.Equips = -1;
	        var v = parseInt($('equipchk').value);
	        if( ( !IsInit && v > 0 ) || ( IsInit && v == 0 ) ){
		        Eview.Close("equipment_table",time,function(){Eview.F.Equips(0, IsInit);});
	        }else{
		        Eview.Open("equipment_table",time,function(){Eview.F.Equips(1, IsInit);});
	        }
        },
        Area:function(time , IsInit){
	        if( Eview.F.Flg.Area < 0 ) return ;
	        Eview.F.Flg.Area = -1;
	        var v = parseInt($('areadescck').value);
	        if( ( !IsInit && v > 0 ) ){
		        Eview.Open("area_table1",time,function(){Eview.F.Area(0, IsInit);});
		        Eview.Close("area_table2",time,function(){Eview.F.Area(0, IsInit);});
	        }else{
		        Eview.Close("area_table1",time,function(){Eview.F.Area(1, IsInit);});
		        Eview.Open("area_table2",time,function(){Eview.F.Area(1, IsInit);});
	        }
        },
        SubmitMap:function(time , IsInit){
	        if( Eview.F.Flg.Map < 0 ) return ;
	        Eview.F.Flg.Map = -1;
	        var v = parseInt($('setmap').value);
	        if( ( !IsInit && v > 0 ) || ( IsInit && v == 0 ) ){
		        if($('xe_latlng'))$('xe_latlng').style.display="block";
		        if($('geo'))$('geo').style.visibility="visible";
		        if(window['EMap.P.Mapicon'])$('EMap.P.Mapicon').style.display="block";
		        Eview.Open("map",time,function(){Eview.F.SubmitMap(1);});
	        }else{
		        if($('xe_latlng'))$('xe_latlng').style.display="block";
		        if($('geo'))$('geo').style.visibility="visible";
		        if(window['EMap.P.Mapicon'])$('EMap.P.Mapicon').style.display="block";
		        Eview.Open("map",time,function(){Eview.F.SubmitMap(1);});
	        }
        },
        Map:function(time , IsInit){
	        if( Eview.F.Flg.Map < 0 ) return ;
	        Eview.F.Flg.Map = -1;
	        var v = parseInt($('mapchk').value);
	        if( ( !IsInit && v > 0 ) || ( IsInit && v == 0 ) ){
		        Eview.F.ClearMks();
		        $('xe_cntset').style.display="block";
		        $('xe_latlng').style.display="none";
		        Eview.Open("listcontent",time,function(){Eview.F.Map(0, IsInit);});
		        if(EMap.P.OMap)EMap.P.OMap.hide();
		        Eview.Close("map",time,function(){Eview.F.Map(0, IsInit);});
	        }else{
		        $('xe_cntset').style.display="none";
		        $('xe_latlng').style.display="block";
		        Eview.Close("listcontent",time,function(){Eview.F.Map(1, IsInit);});
		        Eview.Open("map",time,function(){Eview.F.Map(1, IsInit);});
		        if(EMap.P.OMap)EMap.P.OMap.show();
	        }
        }
    },
    F:{
        Equips:function(val,IsInit){
	        if( val>0 ) $('equipchklabel').innerHTML="▲条件を指定しない";
	        else $('equipchklabel').innerHTML="▼条件を指定する";
	        $('equipchk').value = val;
	        Eview.F.Flg.Equips = 0;
	        if(!IsInit)Search.Exe();
        },
        Area:function(val,IsInit){
	        if(Eview.F.Flg.Area > -2 ){Eview.F.Flg.Area -=1;return;}
	        if( val>0 ) $('areadescchklabel').innerHTML="▲おおまかなジャンルで絞る";
	        else $('areadescchklabel').innerHTML="▼詳細なジャンルで絞る";
	        $('areadescck').value = val;
	        Eview.F.Flg.Area = 0 ;
	        if(!IsInit)Search.Exe();
        },
        SubmitMap:function(val){
	        if( val>0 ) $('mapchklabel').innerHTML="▲位置情報を入力しない";
	        else $('mapchklabel').innerHTML="▼位置情報を入力する";
	        $('setmap').value = val;
	        Eview.F.Flg.Map = 0;
        },
        Map:function(val,IsInit){
        	if(Eview.F.Flg.Map > -2 ){Eview.F.Flg.Map -= 1;return;}
	        var s='';
	        if( val>0 ){
		        if(!EMap.P.Map)Search.Map.Show();
		        if(Search.Flg.StyleIndex > 0) CssRule.Delete( Search.Flg.StyleIndex );
		        Search.Flg.StyleIndex = -1;
		        s+="<a href='javascript:void(0);' onclick='Eview.Change.Map(0.5);return false;'><img src='images/btn_showlist_g.gif' /></a>";
    	        s+="<img src='images/btn_showmap_a.gif' />";
	        }else{
		        s+="<img src='images/btn_showlist_a.gif' />";
    	        s+="<a href='javascript:void(0);' onclick='Eview.Change.Map(0.5);return false;'><img src='images/btn_showmap_g.gif' /></a>";
	        }
	        $('xe_listmap').innerHTML=s;
	        $('mapchk').value = val;
	        Eview.F.Flg.Map = 0;
	        if(!IsInit)Search.Exe();
        },
        ClearMks:function(){
 	        if(EMap.P.Map){
		        EMap.P.Map.closeInfoWindow();
		        EMap.P.Map.clearOverlays();
	        }
	        EMap.P.MKNum=0;
	        EMap.P.Marks=[];
	        EMap.P.Descs=[];
	        EMap.P.Imgs=[];       
        },
        Flg:{Map:0,Area:0,Equips:0}
    },
    Close:function(o,t,f){new Effect.BlindUp(o,{fps:60,duration:t,afterFinish:f});},
    Open:function(o,t,f){new Effect.BlindDown(o,{fps:60,duration:t,afterFinish:f});}
}

/////////////////////////////CSS Function///////////////////////////////

var CssRule={
    Add:function(s, p, si, ri){
        if( si == undefined ) si = 0;
        var sheet = document.styleSheets[ si ];
	    try{
        if( sheet.addRule ) {
            if( ri == undefined ) ri = sheet.rules.length;
            sheet.addRule( s, "{" + p + "}", ri );
            return ri;
        }else if( sheet.insertRule ) {
            if( ri == undefined ) ri = sheet.cssRules.length;
            return sheet.insertRule( s + "{" + p + "}", ri );
        }
	    }catch(e){}
        return -1;
    },
    Delete:function(i, si){
	    if( si == undefined ) si = 0;
	    var sheet = document.styleSheets[ si ];
	    if( sheet.removeRule )sheet.removeRule( i );
        else if( sheet.insertRule )sheet.deleteRule( i );
    }
}

/////////////////////////////COOKIES///////////////////////////////
var Cookie={
    Name:function(){return location.href.substring(0,location.href.lastIndexOf('/'))+'/'+$('division').value;},
    Get:function(n){
	    var cs = document.cookie.replace(/ /g,'');
	    var c = cs.split(';');
	    var r = '';
	    for (i=0;i<c.length;i++){
		    if (c[i].indexOf('=') < 0)c[i]+='=';
		    ch = c[i].split('=');
		    if (ch[0] == escape(n)){r = unescape(ch[1]);break;}
	    }
	    return r;
    },
    Set:function(n,v){
    	if(v!=null){
		    var d = new Date();
		    d.setTime(d.getTime() + (1000*60*30));
		    document.cookie=escape(n)+'='+escape(v)+';expires='+d.toGMTString().replace(/UTC/,'GMT');
		    return true;
	    }
	    return false;
    }
}

/////////////////////////////COMMON SHORT FUNCS///////////////////////////////
function include(uri) {
	id = "json_script";
	var head = document.getElementsByTagName( 'head' )[0];
	if($(id)!=null){
		head.removeChild($(id));
	}
	var script  = document.createElement( 'script' );
	script.charset = 'utf-8';
	script.type = 'text/javascript';
	script.src  = uri;
	script.id = id;
	head.appendChild( script );
}

function mround(value){return Math.round(parseFloat(value)*1000000)/1000000;}
function addFigure(s) {
	var n = new String(s).replace(/,/g, "");
	while(n != (n = n.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
	return n;
}
function $n(o){return document.getElementsByName(o);}


if(window['G_PHYSICAL_MAP'] && window['G_HYBRID_MAP'] && window['G_NORMAL_MAP'])
	var G_HYBRID_PHYSICAL_MAP = new GMapType([G_PHYSICAL_MAP.getTileLayers()[0],G_HYBRID_MAP.getTileLayers()[1]],G_NORMAL_MAP.getProjection(),"Hybrid Physical");

var GN_MTX = new Array(
		"G_NORMAL_MAP",
		"G_SATELLITE_MAP",
		"G_HYBRID_MAP",
		"G_PHYSICAL_MAP",
		"G_MOON_ELEVATION_MAP",
		"G_MOON_VISIBLE_MAP",
		"G_MARS_ELEVATION_MAP",
		"G_MARS_VISIBLE_MAP",
		"G_MARS_INFRARED_MAP",
		"G_SKY_VISIBLE_MAP",
		"G_HYBRID_PHYSICAL_MAP");
		
/////////////////////////////4DEBUG///////////////////////////////
function var_dumpj(mt,cnt,pre){
	var r="";
	for (i in mt){
		 r +=(pre+i+" = "+mt[i])+"<hr>";
		if(cnt>0 && typeof(mt[i])=="object"){
			r +=var_dumpj(mt[i],pre+"+----",cnt-1)
		}
	}
	return r;	
}



