/* マーカーを表示する */
var minfouserlay = null;
var executingobj = 0;

var MarkerSetter = Class.create();
MarkerSetter.prototype = {
    initialize: function(viewer, _syncfunctions) {
        this.viewer = viewer;
        this.map = viewer.map;
        this.markers = [];
        this.markerviewflag = false;
        this.timesleeper = new TimeSleeper();
        this.waittime = 2500;
        if (initialsyncfunctions)
        for (var i = 0; i < syncfunctions.length; i++) {
            syncfunctions[i]();
        }
        ZdcEvent.addListener(this.map, 'changezoomend', function() {
            this.markerviewflag = false;
            this.timesleeper.clearTimeout();
            this.servicemarkingonmap();
            this.map.closeZdcMsgHtml();
            for (var i = 0; i < _syncfunctions.length; i++) {
                _syncfunctions[i]();
            }
            if (this.map.getMapScale() > 12) {
                $('artcheckbox').disabled = false;
                $('misecheckbox').disabled = false;
                $('arbeitcheckbox').disabled = false;
                $('brentcheckbox').disabled = false;
                $('bsalecheckbox').disabled = false;
                $('bmansioncheckbox').disabled = false;
            } else {
                $('artcheckbox').disabled = true;
                $('misecheckbox').disabled = true;
                $('arbeitcheckbox').disabled = true;
                $('brentcheckbox').disabled = true;
                $('bsalecheckbox').disabled = true;
                $('bmansioncheckbox').disabled = true;
            }
        }.bind(this));
        ZdcEvent.addListener(this.map, 'dragmapend', function() {
            this.markerviewflag = false;
            this.execdecodeaddr();
            this.timesleeper.clearTimeout();
            this.servicemarkingonmap();
            for (var i = 0; i < _syncfunctions.length; i++) {
                _syncfunctions[i]();
            }
        }.bind(this));
        ZdcEvent.addListener(this.map, 'scrollmapend', function() {
            this.markerviewflag = false;
            this.execdecodeaddr();
            this.timesleeper.clearTimeout();
            if (!this.map.htmlopenstatus) this.servicemarkingonmap();
            for (var i = 0; i < _syncfunctions.length; i++) {
                _syncfunctions[i]();
            }
        }.bind(this));
        ZdcEvent.addListener(this.map, 'dragmapstart', function() {
            this.markerviewflag = false;
            this.timesleeper.clearTimeout();
            this.map.closeZdcMsgHtml();
        }.bind(this));
        ZdcEvent.addListener(this.map, 'resizeend', function() {
            _setter.timesleeper.addTimeSleeper(function() {
                _setter.execservicemarkingonmap();
            }, 100);
            for (var i = 0; i < syncfunctions.length; i++) {
                syncfunctions[i]();
            }
        }.bind(this));
        minfouserlay = new ZdcUserLayer();

    },
    addmakers: function(id, url, detailurl, iconurl, visiable, homesflg, collections) {
        _setter = this;
        var markerInfo = new MarkerInfo(id, _setter.map, url, detailurl, iconurl, collections);
        markerInfo.visiable = visiable;
        markerInfo.homesflg = homesflg;
        _setter.markers.push(markerInfo);
    },
    servicemarkingonmap: function() {
        _setter = this;
        if (!_setter.markerviewflag) {
            if (_setter.map.getMapScale() > 10) {
                _setter.timesleeper.addTimeSleeper(function() {
                    _setter.execservicemarkingonmap();
                }, _setter.waittime);
            }
        }
        _setter.markerviewflag = false;
    },
    execservicemarkingonmap: function() {
        _setter = this;
        _setter.map.clearUserLayer();
        for (itx = 0; itx < _setter.markers.length; itx++) {
            if(this.map.getMapScale() > 12) {
                if (_setter.markers[itx].visiable) {
//	                if (_setter.markers[itx].id == 'mise') {

                            _setter.displayloading();
                            var mdrawer = new MarkerDrawer();
                            mdrawer.placemakers(_setter.markers[itx]);
//	                } else {
//	                    _setter.displayloading();
//	                    var mdrawer = new MarkerDrawer();
//	                    mdrawer.placemakers(_setter.markers[itx]);
//	                }
                } else {
                    var mdrawer = new MarkerDrawer();
                    mdrawer.placemakerscnt(_setter.markers[itx]);
                }
            }else{
                $('article_cnt').innerHTML = '';
                $('mise_cnt').innerHTML = '';
                $('arbeit_cnt').innerHTML = '';
                $('brent_cnt').innerHTML = '';
                $('bsale_cnt').innerHTML = '';
                $('bmansion_cnt').innerHTML = '';
            }
        }
    },
    hiddenuserlayer: function(hid, checkelement) {
        _setter = this;
        _setter.markerviewflag = false;
        this.timesleeper.clearTimeout();
        for (itx = 0; itx < _setter.markers.length; itx++) {
            if (_setter.markers[itx].id == hid) {
                _setter.markers[itx].visiable = false;
                var mdrawer = new MarkerDrawer();
                mdrawer.hiddenmarker(_setter.markers[itx]);
            }
        }
        checkelement.disabled = false;
    },
    visiableuserlayer: function(hid, checkelement) {
        _setter = this;
        _setter.markerviewflag = false;
        for (itx = 0; itx < _setter.markers.length; itx++) {
            if (_setter.markers[itx].id == hid) {
                _setter.displayloading();
                _setter.markers[itx].visiable = true;
                var mdrawer = new MarkerDrawer();
                mdrawer.checkelement = checkelement;
                mdrawer.hiddenmarker(_setter.markers[itx]);
                _setter.markers[itx].checkelement = checkelement;
//                if (_setter.markers[itx].id == 'mise') {
                    if (this.map.getMapScale() > 12) {
                        mdrawer.placemakers(_setter.markers[itx]);
                    }
//                } else {
//                    mdrawer.placemakers(_setter.markers[itx]);
//                }
            }
        }
    },
    //-----------------------------------------------------------------------------
    // 住所逆引きする
    //-----------------------------------------------------------------------------
    execdecodeaddr: function() {
        _setter = this;
        var addr = new ZdcGetAddressStringGik();
        var opts = new ZdcGetAddressStringGikOptions(this.map.getMapLocation());
        opts.matchLevel = 3; // 街区までの住所文字列を取得する
        ZdcEvent.addListener(addr, 'end', _setter.decodeaddrresult);
        addr.search(opts);
    },
    //-----------------------------------------------------------------------------
    // 逆引き結果を表示する
    //-----------------------------------------------------------------------------
    decodeaddrresult: function(result) {
        if(result.status == 1) {
            msg = 'パラメータエラーが発生しました';
        } else if(result.status == 2) {
            msg = 'サーバエラーが発生しました';
        } else if(result.status == 3) {
            msg = 'タイムアウトにより処理を終了しました';
        } else if(result.status == 4) {
            msg = '検索が中止されました';
        } else if(result.status == 5) {
            msg = '該当データが存在しませんでした';
        } else if(result.status == 6) {
            msg = '認証エラーが発生しました';
        } else if(result.status == 9) {
            msg = 'その他のエラーが発生しました';
        } else if(result.status == 0) {
            msg = '検索に成功しました';
        }
        var txtdiv = document.getElementById('mapaddrsp');
        td01Text = document.createTextNode(result.items[0].address);
        if (localkbn == 'MD' || localkbn == 'BT' || localkbn == 'DM') {
            if ($('beforelocalname').value != result.items[0].addrParts[0] + result.items[0].addrParts[1]) {
                $('beforelocalname').value = result.items[0].addrParts[0] + result.items[0].addrParts[1];
                var gurl = '/JSONGetLocalCodeByLocalName.next';
                new Ajax.Request(gurl, {
                    parameters: $('beforelocalname').serialize(true),
                    onComplete: function(transport) {

                        _setter.timesleeper.addTimeSleeper(function() {
                            var data = eval(transport.responseJSON);
                            if (localkbn == 'MD' || localkbn == 'DM') {
                                if (loctopcd != data.result.LOCTOPCATECD ||
                                    locmidcd != data.result.LOCMIDCATECD) {
                                    loctopcd = data.result.LOCTOPCATECD;
                                    locmidcd = data.result.LOCMIDCATECD;
                                    var parameter = '?localkbn=MD&localtype=A&topcd=' + data.result.LOCTOPCATECD + '&midcd=' + data.result.LOCMIDCATECD;
                                    for (var i = 0; i < syncloadfunctions.length; i++) {
                                        syncloadfunctions[i](parameter);
                                    }
                                }
                            } else if (localkbn == 'BT') {
                                loctopcd = data.result.LOCTOPCATECD;
                                locmidcd = data.result.LOCMIDCATECD;
                                locbtmcd = data.result.LOCBTMCATECD;
                                var parameter = '?localkbn=BT&localtype=A&topcd=' + data.result.LOCTOPCATECD + '&midcd=' + data.result.LOCMIDCATECD + '&btmcd=' + data.result.LOCBTMCATECD;
                                for (var i = 0; i < syncloadfunctions.length; i++) {
                                    syncloadfunctions[i](parameter);
                                }
                            }
                        }, 2000);
                    }
                });
            }
        }
        //beforelocalname = result.items[0].addrParts[0] + result.items[0].addrParts[1];
        //td01Text = document.createTextNode(result.items[0].address + result.items[0].addrParts[0] + "-" + result.items[0].addrParts[1] + "-" + result.items[0].addrParts[2]);
        if (txtdiv.firstChild != null) txtdiv.removeChild(txtdiv.firstChild);
        txtdiv.appendChild(td01Text);
    },
    //-----------------------------------------------------------------------------
    // マップのサイズを調節する。
    //-----------------------------------------------------------------------------
    exchangemapdivsize: function(mapid, w1, w2, h) {
        this.map.closeZdcMsgHtml();
        this.execdecodeaddr();
        this.timesleeper.clearTimeout();
        var mapdiv = document.getElementById(mapid);
        if (mapdiv.style.width == w2 + 'px') {
            mapdiv.style.width = w1 + 'px';
            this.viewer.resizemapwindow(0, 0, w1, h);
        } else {
            mapdiv.style.width = w2 + 'px';
            this.viewer.resizemapwindow(0, 0, w2, h);
        }
        this.viewer.redrawusercontrol();
    },
    //-----------------------------------------------------------------------------
    // ロード画面
    //-----------------------------------------------------------------------------
    displayloading: function() {
        this.map.dragOff();
        var pageWidth = document.body.clientWidth;
        $('mapLoadWin').style.left = ((pageWidth / 2)) + 'px';
        $('mapLoadWin').show();
        executingobj = executingobj + 1;

        //$('cntxx').innerHTML = executingobj;
    },
    //-----------------------------------------------------------------------------
    // ロード画面
    //-----------------------------------------------------------------------------
    undisplayloading: function() {
        if (executingobj > 0) {
            executingobj = executingobj - 1;
        }
        if (executingobj == 0) {
            this.map.dragOn();
            $('mapLoadWin').hide();
        }
        //$('cntxx').innerHTML = executingobj;
    }
}




var TimeSleeper = Class.create();
TimeSleeper.prototype = {
    initialize: function(method, time) {
        this.timeid = [];
    },
    addTimeSleeper: function(method, time) {
        this.timeid.push(setTimeout(method, time));
    },
    clearTimeout: function() {
        for (i = 0; i < this.timeid.length; i++) {
            clearTimeout(this.timeid[i]);
        }
    }
}

/* マーカーを表示する */
var MarkerInfo = Class.create();
MarkerInfo.prototype = {
    initialize: function(id, map, url, detailurl, iconurl, collections) {
        this.id = id;
        this.visiable = false;
        this.map = map;
        this.url = url;
        this.detailurl = detailurl;
        this.iconurl = iconurl;
        this.homesflg = false;
        this.userlay = new ZdcUserLayer();
        this.collections = collections;
        this.checkelement = null;
    }
}
var MarkerDrawer = Class.create();
MarkerDrawer.prototype = {
    initialize: function() {
    },
    placemakers: function(_marker) {
        _drawer = this;
        var geo = new ZdcGeometric();
        var centerpoint = _marker.map.getMapLocation();
        var box = _marker.map.getMapBoundBox(centerpoint, _marker.map.getMapScale());
        var np1 = box.p1;
        var np2 = box.p2;
        maxdist = Math.floor(geo.getPoint2PointDistance(centerpoint, np2));
        // 中心
        var wgszpoint1 = ZdcCommon.TKY2WGS(np1.lon, np1.lat);
        var wgszpoint2 = ZdcCommon.TKY2WGS(np2.lon, np2.lat);
        var parameter = "?p1lat=" + wgszpoint1.lat + "&p1lon=" + wgszpoint1.lon
        + "&p2lat=" + wgszpoint2.lat + "&p2lon=" + wgszpoint2.lon
        + "&maxdist=" + maxdist + "&zoomvalue=" + _marker.map.getMapScale();
        if (_marker.homesflg) {
            wgszpoint1 = np1;
            wgszpoint2 = np2;
            parameter = "?url=realestate.lococom.jp&p1lat=" + parseInt(wgszpoint1.lat * 1000 * 60 * 60) + "&p1lon=" + parseInt(wgszpoint1.lon * 1000 * 60 * 60) +
             "&p2lat=" + parseInt(wgszpoint2.lat * 1000 * 60 * 60) + "&p2lon=" + parseInt(wgszpoint2.lon * 1000 * 60 * 60);
            parameter = parameter + "&zoomvalue=" + _marker.map.getMapScale() + "&collections=" + _marker.collections;
            new Ajax.Request(_marker.url + parameter, {
                onComplete: function(transport) {
                    var data = eval(transport.responseJSON);
                    var value = data.result;
                    var ex = null;
                    eval('ex=' + value + '');
                    _drawer.addhomesmakers(ex.ROWSET, _marker);
                    _drawer.addhomesmakerscnt(ex, _marker);
                    if (_marker.checkelement != null) _marker.checkelement.disabled = false;
                    setter.undisplayloading();
                }
            });
        } else {

            var paramarticlegenrecds = "";
            for (var idx = 0; idx < articlegenrecds.length; idx++) {
                paramarticlegenrecds = paramarticlegenrecds + articlegenrecds[idx] + "!";
            }
            var parammisegenrecds = "";
            for (var idx = 0; idx < misegenrecds.length; idx++) {
                parammisegenrecds = parammisegenrecds + misegenrecds[idx] + "!";
            }
            var parammisesubgenrecds = "";
            for (var idx = 0; idx < misesubgenrecds.length; idx++) {
                parammisesubgenrecds = parammisesubgenrecds + misesubgenrecds[idx] + "!";
            }
//            parameter = parameter + "&articlegenrecds=" + paramarticlegenrecds + "&selectarticleterm=" + $('selectarticleterm').value
//                         + "&misegenrecds=" + parammisegenrecds + "&misesubgenrecds=" + parammisesubgenrecds + "&articleseq=" + articleseq + "&userid=" + userid + "&recruitno=" + recruitno;
            parameter = parameter + "&articlegenrecds=" + paramarticlegenrecds
                         + "&misegenrecds=" + parammisegenrecds + "&misesubgenrecds=" + parammisesubgenrecds + "&articleseq=" + articleseq + "&userid=" + userid + "&recruitno=" + recruitno;
            new Ajax.Request(_marker.url + parameter, {
                onComplete: function(transport) {
                    var data = eval(transport.responseJSON);
                    if (data.lst != null)
                        _drawer.addmakers(data.lst, _marker);
                    if (_marker.checkelement != null) _marker.checkelement.disabled = false;
                    setter.undisplayloading();
                }
            });
        }

    },
    placemakerscnt: function(_marker) {
        _drawer = this;
        var geo = new ZdcGeometric();
        var centerpoint = _marker.map.getMapLocation();
        var box = _marker.map.getMapBoundBox(centerpoint, _marker.map.getMapScale());
        var np1 = box.p1;
        var np2 = box.p2;
        maxdist = Math.floor(geo.getPoint2PointDistance(centerpoint, np2));
        // 中心
        var wgszpoint1 = ZdcCommon.TKY2WGS(np1.lon, np1.lat);
        var wgszpoint2 = ZdcCommon.TKY2WGS(np2.lon, np2.lat);
        var parameter = "?p1lat=" + wgszpoint1.lat + "&p1lon=" + wgszpoint1.lon
        + "&p2lat=" + wgszpoint2.lat + "&p2lon=" + wgszpoint2.lon
        + "&maxdist=" + maxdist + "&zoomvalue=" + _marker.map.getMapScale();
        if (_marker.homesflg) {
            wgszpoint1 = np1;
            wgszpoint2 = np2;
            parameter = "?url=realestate.lococom.jp&p1lat=" + parseInt(wgszpoint1.lat * 1000 * 60 * 60) + "&p1lon=" + parseInt(wgszpoint1.lon * 1000 * 60 * 60) +
             "&p2lat=" + parseInt(wgszpoint2.lat * 1000 * 60 * 60) + "&p2lon=" + parseInt(wgszpoint2.lon * 1000 * 60 * 60);
            parameter = parameter + "&zoomvalue=" + _marker.map.getMapScale() + "&collections=" + _marker.collections;
            new Ajax.Request(_marker.url + parameter, {
                onComplete: function(transport) {
                    var data = eval(transport.responseJSON);
                    var value = data.result;
                    var ex = null;
                    eval('ex=' + value + '');
                    _drawer.addhomesmakerscnt(ex, _marker);
                    setter.undisplayloading();
                }
            });
        } else {

            var paramarticlegenrecds = "";
            for (var idx = 0; idx < articlegenrecds.length; idx++) {
                paramarticlegenrecds = paramarticlegenrecds + articlegenrecds[idx] + "!";
            }
            var parammisegenrecds = "";
            for (var idx = 0; idx < misegenrecds.length; idx++) {
                parammisegenrecds = parammisegenrecds + misegenrecds[idx] + "!";
            }
            var parammisesubgenrecds = "";
            for (var idx = 0; idx < misesubgenrecds.length; idx++) {
                parammisesubgenrecds = parammisesubgenrecds + misesubgenrecds[idx] + "!";
            }
            parameter = parameter + "&articlegenrecds=" + paramarticlegenrecds
                         + "&misegenrecds=" + parammisegenrecds + "&misesubgenrecds=" + parammisesubgenrecds + "&articleseq=" + articleseq + "&userid=" + userid + "&recruitno=" + recruitno;
            new Ajax.Request(_marker.url + parameter, {
                onComplete: function(transport) {
                    var data = eval(transport.responseJSON);
                    if (data.lst != null)
                        _drawer.addmakerscnt(data.lst, _marker);
                    setter.undisplayloading();
                }
            });
        }

    },
    hiddenmarker: function(_minfo) {
        for(var i = 0; i < minfouserlay.markers.length; i++) {
            if (minfouserlay.markers[i] != null) {
                if (minfouserlay.markers[i].id == _minfo.id) {
                    minfouserlay.removeMarker(minfouserlay.markers[i]);
                }
            }
        }
    },
    addmakers: function(datas, minfo) {
        _drawer = this;
        var cnt = 0;
        /* ユーザレイヤを作成する */
        minfouserlay.setLayerScale(11,18);
        /* マーカを生成する */
        for( i = 0; i < datas.length; i++) {
            var icon 	= new ZdcIcon();
            icon.image = minfo.iconurl;
            if (datas[i].DETAILCOUNT > 0) {
                if (minfo.id == 'arbeit') {
                    icon.image = "http://img.lococom.jp/img2/lo/map/icon_kyujin.png";
                } else {
                    icon.image = "http://img.lococom.jp/img2/lo/map/icon_kuchikomi.png";
                }
            }
            cnt += datas[i].CNT;
            var point	= ZdcCommon.WGS2TKY(datas[i].SLON, datas[i].SLAT);
            var marker	= new ZdcMarker(point, icon);
            marker.plat = datas[i].LAT;
            marker.plon = datas[i].LON;
            marker.id = minfo.id;
            /* イベントを追加変更する */
            /* 【マウスクリック】イベントに登録 */
            ZdcEvent.addListener(marker, 'mouseclickmarker', function() {
                _cmaker = this;
                if(minfo.map.msgopenstatus) minfo.map.closeMsgWindow();
                /* 吹き出し(大)を取得する取得する */
                /* サーバと通信してデータを取得する */
                var paramarticlegenrecds = "";
                for (var idx = 0; idx < articlegenrecds.length; idx++) {
                    paramarticlegenrecds = paramarticlegenrecds + articlegenrecds[idx] + "!";
                }
                var parammisegenrecds = "";
                for (var idx = 0; idx < misegenrecds.length; idx++) {
                    parammisegenrecds = parammisegenrecds + misegenrecds[idx] + "!";
                }
                var parammisesubgenrecds = "";
                for (var idx = 0; idx < misesubgenrecds.length; idx++) {
                    parammisesubgenrecds = parammisesubgenrecds + misesubgenrecds[idx] + "!";
                }
                detailparameter = "?p1lat=" + _cmaker.plat
                                + "&p1lon=" + _cmaker.plon
                                + "&zoomvalue=" + minfo.map.getMapScale()
                                + "&articlegenrecds=" + paramarticlegenrecds
//                                + "&selectarticleterm=" + $('selectarticleterm').value
                                + "&misegenrecds=" + parammisegenrecds
                                + "&misesubgenrecds=" + parammisesubgenrecds;
                new Ajax.Request(minfo.detailurl + detailparameter, {
                    onComplete: function(transport) {
                        var data = eval(transport.responseJSON);
                        var rowset = data.detailresult;
                        /* HTML吹き出し（小）の表示内容をカスタマイズ */
                        var cmakertagurl = '<div class="pop_tmap"><ul>';

                        if (minfo.id == 'arbeit') {

//alert("arbeit");
//alert("rowset.length=" + rowset.length);

                            for(var idx = 0; idx < rowset.length; idx++) {
//alert("cHtml");
                                cmakertagurl = cmakertagurl + '<li><p class="tmap_imgtxt"><em><a href="/TownArbeitDetail.next?recruitno=' + rowset[idx].RECRUIT_NO + '" target="_blank" >'
                                + rowset[idx].OCCUPATION_NAME + '</a></em>' + '<br />' + '<b>給与：' + rowset[idx].SALARY  + '</b><br /><br />ＰＲ：' + rowset[idx].JOB_CONTENT + "<br /><br />会社名（店舗名）：" + rowset[idx].COMPANY_NAME + '</p></li>';
                            }
                        } else {
                            if (minfo.id == 'mise') {
                                for(var idx = 0; idx < rowset.length; idx++) {
                                    if(rowset[idx].SORTFLAG >= 5) {
                                        cmakertagurl = cmakertagurl + '<li><p class="tmap_imgtxt"><em><a href="/tt/' + rowset[idx].LBC + '/" target="_blank" >'
                                        + rowset[idx].SHOPNM + '</a></em>ジャンル：' + rowset[idx].TOPCATENM + '<br />種別：' + rowset[idx].MIDCATENM + '</p></li>';
                                    } else {
                                        cmakertagurl = cmakertagurl + '<li><p class="tmap_imgtxt"><em><a href="/mt/' + rowset[idx].MISEURL + '/" target="_blank" >'
                                        + rowset[idx].SHOPNM + '</a></em>ジャンル：' + rowset[idx].TOPCATENM + '<br />種別：' + rowset[idx].MIDCATENM + '</p></li>';
                                    }
                                }
                            } else {
                                for(var idx = 0; idx < rowset.length; idx++) {
                                    var sikibetusya = "";
                                    var articleflag = "article";
                                    if (articleseq == rowset[idx].ARTICLESEQ && userid == rowset[idx].USERID) {
                                        sikibetusya = "  class='now_list' ";
                                    }
                                    if (rowset[idx].ARTICLETYPE != 'L') {
                                        articleflag = "qna";
                                    }
                                    if (rowset[idx].FILENAME != null && rowset[idx].FILENAME != '') {
                                        cmakertagurl = cmakertagurl + '<li' + sikibetusya +'><a href="/' + articleflag + '/' + rowset[idx].LOCALTOPCATECD + '/' + rowset[idx].LOCALMIDCATECD + '/' + rowset[idx].LOCALBTMCATECD + '/' + rowset[idx].ARTICLESEQ + '/' + rowset[idx].USERID + '/' + rowset[idx].ARTICLETYPE + '/" title="詳細" target="_blank"><img src="http://files.lococom.jp/'
                                        + rowset[idx].FILENAME + '" alt="" class="tpostimg"/></a><p><em><a href="/' + articleflag + '/' + rowset[idx].LOCALTOPCATECD + '/' + rowset[idx].LOCALMIDCATECD + '/' + rowset[idx].LOCALBTMCATECD + '/' + rowset[idx].ARTICLESEQ + '/' + rowset[idx].USERID + '/' + rowset[idx].ARTICLETYPE + '/" target="_blank" >'
                                        + rowset[idx].TITLE + '</a></em>'
                                        + (rowset[idx].CONTENT == null ? '' : rowset[idx].CONTENT.substring(0, 40)) + '..</p></li>';
                                    } else {
                                        cmakertagurl = cmakertagurl + '<li' + sikibetusya +'><p class="tmap_imgtxt"><em><a href="/' + articleflag + '/' + rowset[idx].LOCALTOPCATECD + '/' + rowset[idx].LOCALMIDCATECD + '/' + rowset[idx].LOCALBTMCATECD + '/' + rowset[idx].ARTICLESEQ + '/' + rowset[idx].USERID + '/' + rowset[idx].ARTICLETYPE + '/" target="_blank" >'
                                        + rowset[idx].TITLE + '</a></em>'
                                        + (rowset[idx].CONTENT == null ? '' : rowset[idx].CONTENT.substring(0, 40)) + '..</p></li>';
                                    }
                                }
                            }
                        }

                        cmakertagurl = cmakertagurl + '</ul></div>';
                        minfo.map.setZdcMsgHtmlOption(true, false, "left", "small", 'tag', 200, 100);
                        minfo.map.openZdcMsgHtml(cmakertagurl, _cmaker.Point,"",250,150, _cmaker.icon.msgoffset,1);
                    }
                });

            });
            minfouserlay.addMarker(marker);	// ユーザレイヤにマーカを追加する
        }
        if(minfo.id == 'art') {
            if($('article_cnt')) $('article_cnt').innerHTML = '(' + cnt + ')';
        } else if(minfo.id == 'mise') {
            if($('mise_cnt')) $('mise_cnt').innerHTML = '(' + cnt + ')';
        } else if(minfo.id == 'arbeit') {
            if($('arbeit_cnt')) $('arbeit_cnt').innerHTML = '(' + cnt + ')';
        }

        /* 地図にユーザレイヤを追加する */
        minfo.map.addUserLayer(minfouserlay);
    },
    addmakerscnt: function(datas, minfo) {
        var cnt = 0;
        /* 表示件数を取得 */
        for( i = 0; i < datas.length; i++) {
            cnt += datas[i].CNT;
        }
        if(minfo.id == 'art') {
            if($('article_cnt')) $('article_cnt').innerHTML = '(' + cnt + ')';
        } else if(minfo.id == 'mise') {
            if($('mise_cnt')) $('mise_cnt').innerHTML = '(' + cnt + ')';
        } else if(minfo.id == 'arbeit') {
            if($('arbeit_cnt')) $('arbeit_cnt').innerHTML = '(' + cnt + ')';
        }
    },
    addhomesmakers: function(datas, minfo) {
        _drawer = this;
        /* ユーザレイヤを作成する */
        minfouserlay.setLayerScale(11,18);
        /* マーカを生成する */
        for( i = 0; i < datas.length; i++) {
            var icon 	= new ZdcIcon();
            icon.image = minfo.iconurl;
            //var point = ZdcCommon.WGS2TKY(datas[i].EL / 60 / 60 / 1000, datas[i].NL / 60 / 60 / 1000);
            var point = new ZdcPoint(datas[i].EL / 60 / 60 / 1000, datas[i].NL / 60 / 60 / 1000);
            var marker	= new ZdcMarker(point, icon);
            marker.range = datas[i].RANGE;
            marker.id = minfo.id;
            /* イベントを追加変更する */
            /* 【マウスクリック】イベントに登録 */
            ZdcEvent.addListener(marker, 'mouseclickmarker', function() {
                _cmaker = this;
                if(minfo.map.msgopenstatus) minfo.map.closeMsgWindow();
                /* 吹き出し(大)を取得する取得する */
                /* サーバと通信してデータを取得する */
                detailparameter = "?url=realestate.lococom.jp&range=" + _cmaker.range + "&collections=" + minfo.collections;
                new Ajax.Request(minfo.detailurl + detailparameter, {
                    onComplete: function(transport) {
                        var data = eval(transport.responseJSON);
                        var value = data.result;
                        var ex = null;
                        eval('ex=' + value + '');
                        var rowset = ex.ROWSET;
                        var price = "賃料";
                        if (minfo.id == 'bsale') price = "価格";
                        if (minfo.id == 'bmansion') price = "価格";
                        /* HTML吹き出し（小）の表示内容をカスタマイズ */
                        var cmakertagurl = '<div class="pop_tmap"><ul>';
                        for(var idx = 0; idx < rowset.length; idx++) {
                            if (rowset[idx].PHOTOASPECT != null && rowset[idx].PHOTOASPECT != '') {
                                cmakertagurl = cmakertagurl + '<li><a href="' + rowset[idx].DETAILURL + '" target="_blank" title="詳細"><img src="'
                                + rowset[idx].PHOTOASPECT + '" alt="" /></a><p><a href="' + rowset[idx].DETAILURL + '" target="_blank" title="詳細">'
                                + _drawer.setvalue(rowset[idx].BUKKENTYPENAME) + ':'
                                + _drawer.setvalue(rowset[idx].BUKKENNAME) + '</a><br />'
                                + _drawer.setvalue(rowset[idx].FULLADDR) + '<br />' + price + '：<span>'
                                + _drawer.setvalue(rowset[idx].MONEYROOMTEXT) + '</span><br />間取：<span>'
                                + _drawer.setvalue(rowset[idx].MADORITEXT) + '</span><br /></p></li>';
                            } else {
                                cmakertagurl = cmakertagurl + '<li><p><a href="' + rowset[idx].DETAILURL + '" target="_blank" title="詳細">'
                                + _drawer.setvalue(rowset[idx].BUKKENTYPENAME) + ':'
                                + _drawer.setvalue(rowset[idx].BUKKENNAME) + '</a><br />'
                                + _drawer.setvalue(rowset[idx].FULLADDR) + '<br />' + price + '：<span>'
                                + _drawer.setvalue(rowset[idx].MONEYROOMTEXT) + '</span><br />間取：<span>'
                                + _drawer.setvalue(rowset[idx].MADORITEXT) + '</span><br /></p></li>';
                            }
                        }
                        cmakertagurl = cmakertagurl + '</ul></div>';
                        minfo.map.setZdcMsgHtmlOption(true, false, "left", "small", 'tag', 200, 100);
                        minfo.map.openZdcMsgHtml(cmakertagurl, _cmaker.Point,"",250,150, _cmaker.icon.msgoffset,1);
                    }
                });
            });
            minfouserlay.addMarker(marker);	// ユーザレイヤにマーカを追加する
        }
        /* 地図にユーザレイヤを追加する */
        minfo.map.addUserLayer(minfouserlay);
    },
    addhomesmakerscnt: function(datas, minfo) {

        /* マーカを生成する */
/*
        var brent_cnt = 0;
        var bsale_cnt = 0;
        var bmansion_cnt = 0;

        for( i = 0; i < datas.length; i++) {
            if(minfo.map.msgopenstatus) minfo.map.closeMsgWindow();
            detailparameter = "?url=realestate.lococom.jp&range=" + datas[i].RANGE + "&collections=" + minfo.collections;
            new Ajax.Request(minfo.detailurl + detailparameter, {
                onComplete: function(transport) {
                    var data = eval(transport.responseJSON);
                    var value = data.result;
                    var ex = null;
                    eval('ex=' + value + '');
                    var rowset = ex.ROWSET;
                    if(minfo.id == 'brent') {
                        brent_cnt += rowset.length;
                    } else if(minfo.id == 'bsale') {
                        bsale_cnt += rowset.length;
                    } else if(minfo.id == 'bmansion') {
                        bmansion_cnt += rowset.length;
                    }
                }
            });
        }
*/
        if(minfo.id == 'brent') {
            if($('brent_cnt')) $('brent_cnt').innerHTML = '(' + datas.RESULTSET.TOTALHITS + ')';
        } else if(minfo.id == 'bsale') {
            if($('bsale_cnt')) $('bsale_cnt').innerHTML = '(' + datas.RESULTSET.TOTALHITS + ')';
        } else if(minfo.id == 'bmansion') {
            if($('bmansion_cnt')) $('bmansion_cnt').innerHTML = '(' + datas.RESULTSET.TOTALHITS + ')';
        }
    },
    setvalue: function(ovalue) {
        if (ovalue == null || ovalue == 'null') {
            return '';
        } else {
            return ovalue;
        }
    }
}
