// デバッグ //window.onerror = function(mes,file,num){ alert([ "file : " + file, "line : " + num, "message : " + mes ].join("\n")); return true; } //------------------------------------------------------------- //JSAPIの動作確認 //------------------------------------------------------------- if (ZDC._LOAD_ERR_MSG) { location.href = '/map/mapclick.htm'+location.search; }; if (typeof itsmo == 'undefined') { var itsmo = {}; } if (typeof itsmo.vars == 'undefined') { itsmo.vars = {}; } itsmo.lib = {}; itsmo.vars.pages = { 'range' : '周辺検索', 'suumo' : '不動産検索', 'baitoru' : 'アルバイト検索', 'tabikura' : 'ホテル検索', 'freeword' : 'フリーワード検索', 'addlist' : '住所一覧', 'panelroute' : 'ルート', 'mypage' : 'マイページ', 'myhome' : '自宅', 'myspot' : '登録地点', 'myspot_group' : '登録地点グループ', 'myroute' : '登録ルート', 'poihistory' : '履歴地点', 'routehistory' : '履歴ルート', 'history' : '履歴', 'mysnspost' : 'SNS投稿設定' }; itsmo.vars.d_host_www = 'www.its-mo.com'; //------------------------------------------------------------- // AJAX通信 //------------------------------------------------------------- // 非同期通信 itsmo.lib.lastAjaxObj = null; itsmo.lib.XMLHttpRequest2_send = function(url, callback, method, query, type, errorCallback) { if (type == undefined) type = 'xml'; var param = { url: url, cache: false, async: true, data: query, dataType: type, type: method, success: callback }; if (null != errorCallback && undefined != errorCallback) { param.error = errorCallback; } itsmo.lib.lastAjaxObj = $.ajax(param); return itsmo.lib.lastAjaxObj; }; // 中止 itsmo.lib.XMLHttpRequest2_abort = function( xmlobj ) { if (xmlobj == null) return; if (xmlobj.readyState != 0 && xmlobj.readyState != 4) { xmlobj.abort(); } }; itsmo.lib.XMLHttpRequest2_abortLast = function() { var n = itsmo.lib.XMLHttpRequest2_abort(itsmo.lib.lastAjaxObj); itsmo.lib.lastAjaxObj = null; return n; }; // htmlを読み込む itsmo.lib.XMLHttpRequest2_html = function( url, divid, method, query ) { return $.ajax({ url: url, cache: false, async: true, data: query, dataType: 'html', type: method, success: function(data, dataType) { $('#' + divid).html(data); } }); }; // 同期通信 itsmo.vars.g_map_request_func = null; // 同期通信の戻り先格納用 itsmo.lib.XMLHttpRequest2_send_wait = function( url, callback, method, data, msg ) { itsmo.lib.map_wait2open(msg); itsmo.vars.g_map_request_func = callback; itsmo.lib.XMLHttpRequest2_send( url, itsmo.lib.XMLHttpRequest2_send_wait_result, method, data ); }; itsmo.lib.XMLHttpRequest2_send_wait_result = function(result) { itsmo.lib.map_wait2close(); itsmo.vars.g_map_request_func(result); }; //------------------------------------------------------------- // LocalStorage関連 //------------------------------------------------------------- itsmo.lib.localstorage_set = function(data ,type){ let key = "itsmonaviweb:search:history"; let ls_history = JSON.parse(localStorage.getItem(key)); if(ls_history == null){ ls_history = []; } if(!data.nm){ return; } //履歴にあった場合は何もしない for(let i in ls_history){ if(ls_history[i]['text'] == data.nm){ return; } } //履歴は10件まで let limit = 10; //上限以上の場合全て削除 if(ls_history.length >= limit){ for(let i=limit-1; i< ls_history.length; i++){ ls_history.splice(i ,1); } } //フリーワードを初期値 let val ={}; if(type == undefined){ val = { 'text':data.nm }; }else{ val = { 'id' : data.id, 'text':data.nm, 'code': !(data.cd) ? data.id : data.cd, 'point' : !(data.lat) ? {} : {lat : data.lat , lon : data.lon}, 'type': type, 'tag' :!(data.tag) ? {} : data.tag } } //先頭に追加。リニューアルのLocalstorageに合わせている let log = [val].concat(ls_history); localStorage.setItem(key, JSON.stringify(log)); return; }; //------------------------------------------------------------- // クッキー関係 //------------------------------------------------------------- // 書き込み itsmo.lib.cookie_set = function(key,val,sec){ if(sec == undefined) sec = 1714306085; var date = new Date(); date.setTime(date.getTime() + (sec * 1000)); var expires = 'expires=' + date.toGMTString(); document.cookie = encodeURIComponent(key)+'='+encodeURIComponent(val) + "; "+expires+'; path=/; domain=www.its-mo.com;'; }; // 読み込み itsmo.lib.cookie_get_raw = function(key){ var i1 = document.cookie.indexOf(key+"="); if(i1 < 0) return ''; i1 = i1+key.length+1; var i2 = document.cookie.indexOf(";",i1); if(i2 < 0) i2 = document.cookie.length; return document.cookie.substring(i1,i2); }; itsmo.lib.cookie_get = function(key){ return decodeURIComponent(itsmo.lib.cookie_get_raw(key)); }; // 書き込み(削除) itsmo.lib.cookie_del = function(key){ var date = new Date(); date.setTime(date.getTime() - 1800); var expires = 'expires=' + date.toGMTString(); document.cookie = encodeURIComponent(key)+'=; '+expires+'; path=/; domain=www.its-mo.com;'; }; //------------------------------------------------------------- // htmlspecialchars //------------------------------------------------------------- itsmo.lib.htmlspecialchars = function(ch) { ch = ch.replace(/&/g,"&") ; ch = ch.replace(/"/g,""") ; ch = ch.replace(/'/g,"'") ;//" ch = ch.replace(//g,">") ; return ch; }; //------------------------------------------------ // オブジェクト操作 //------------------------------------------------ // オブジェクト出す消す itsmo.lib.document_on = function(name, doc) { if (doc) { $('#' + name, doc).show(); } else { $('#' + name).show(); } }; itsmo.lib.document_off = function(name, doc) { if (doc) { $('#' + name, doc).hide(); } else { $('#' + name).hide(); } }; // オブジェクトクラス変える itsmo.lib.document_class = function(name,cl) { $('#' + name).attr('class', cl); }; // オブジェクト値セット itsmo.lib.document_setvalue = function(name,value) { var obj = $('#' + name); if(obj.length <= 0) { return; } switch(obj.get(0).type) { case 'select-one': obj = obj.get(0); for(var i=0;i < obj.options.length;i ++) { if(obj.options[i].value == value) { obj.selectedIndex = i; break; } } break; case 'text': case 'hidden': case 'textarea': case 'password': obj.val(value); break; case 'radio': obj.get(0).checked = (obj.val() == value); $("[id^='" + name + "-']").each(function() { $(this).get(0).checked = ($(this).val() == value); return true; }); break; case 'checkbox': obj.get(0).checked = (obj.val() == value); break; default: obj = obj.get(0); if(obj.src != null) {obj.src = value;return;} if(obj.href != null) {obj.href = value;return;} if(obj.innerHTML != null) obj.innerHTML = value; break; } }; // value取る itsmo.lib.document_getvalue = function(name) { var obj = $('#' + name); if(obj.length <= 0) { return null; } switch(obj.get(0).type) { case 'select-one': obj = obj.get(0); return obj.options[obj.selectedIndex].value break; case 'text': case 'hidden': case 'textarea': case 'password': case 'file': return obj.val(); break; case 'radio': if(obj.get(0).checked) { return obj.val(); } var ret = null; $("[id^='" + name + "-']").each(function() { if ($(this).get(0).checked) { ret = $(this).val(); return false; } return true; }); return ret; break; case 'checkbox': if(obj.get(0).checked) { return obj.val(); } return ''; break; default: obj = obj.get(0); if(obj.src != null) return obj.src; if(obj.href != null) return obj.href; if(obj.innerHTML != null) return obj.innerHTML; break; } return null; }; // xmlの値を安全に取る itsmo.lib.document_getxmlvalue = function(xml,name) { if(xml.getElementsByTagName(name) == null) return ''; if(xml.getElementsByTagName(name)[0] == null) return ''; if(xml.getElementsByTagName(name)[0].firstChild == null) return ''; return xml.getElementsByTagName(name)[0].firstChild.nodeValue; } // オブジェクトを取る itsmo.lib.document_getobj = function(name) { var obj = g_document.getElementById(name); return obj; } //------------------------------------------------ // 色々 //------------------------------------------------ // ウィンドウの高さを返す。 itsmo.lib.getWindowHeight = function() { return $(window).height(); }; //------------------------------------------------ // その他 //------------------------------------------------ // 座標変換 ミリ→度分秒 itsmo.lib.map_dms2deg = function(ms) { var tmp = ms; var d = Math.floor(tmp / 3600000); tmp -= d * 3600000; var m = Math.floor(tmp / 60000); tmp -= m * 60000; var p_dms = d + "°" + m + "′" + tmp / 1000; //1000で割り切れた場合 tmp -= Math.floor(ms / 1000) * 1000; if( tmp == 0 ){ p_dms = p_dms + "/0"; } return p_dms; }; //------------------------------------------------ // チェックボックス処理 //------------------------------------------------ // チェックボックス一括チェック,解除 itsmo.lib.allCheck = function(classnm,id) { var checkBoxs = $("."+classnm); var checkval = $("#"+id).attr('checked'); if((id).indexOf("1") != -1){ id2 = id.replace("1","2"); $("#"+id2).attr("checked", checkval); }else if((id).indexOf("2") != -1){ id2 = id.replace("2","1"); $("#"+id2).attr("checked", checkval); } checkBoxs.attr('checked', checkval); }; itsmo.lib.getCheckNum = function(name) { var cnt = 0; var chk = new Array(); for (i = 0; i < $("[name='" + name + "[]']").length; i++) { if ($('#' + name + i).attr('checked')) { chk[cnt] = $('#' + name + i).val(); cnt++; } } if (cnt == 0) { return false; } else { return chk; } }; // 全選択チェックボックスのchecked==falseにする itsmo.lib.allCheckOut = function() { $(".add_flg").click(function(){ var checked = $(this).attr('checked'); if(checked == false){ $("#list-selectall1").attr('checked',false); $("#list-selectall2").attr('checked',false); } }); }; /*------------------------------------------------------------------ ScreenClose ------------------------------------------------------------------*/ itsmo.lib.ScreenClose = function() { $("#screen-wrap").hide(); $("#sc").parent().css('overflow', 'auto'); } /*------------------------------------------------------------------ ScreenOpen ------------------------------------------------------------------*/ itsmo.lib.ScreenOpen = function() { window.scroll(0,0); $("#sc").parent().css('overflow', 'hidden'); $("#screen-wrap").height($('window').height()).show(); } //------------------------------------------------------------- // ウィンドウ開く //------------------------------------------------------------- itsmo.vars.g_map_window = null; itsmo.vars.g_map_window_func = null; // 窓開く itsmo.lib.map_windowopen = function(name,func) { if(itsmo.vars.g_map_window != null) return; itsmo.vars.g_map_window_func = func; if (!itsmo.vars.g_screen_non) itsmo.lib.ScreenOpen(); itsmo.vars.g_map_window = name; itsmo.lib.document_on(itsmo.vars.g_map_window); $('div.right-add300:has(iframe)').hide(); $('#add-468-in').hide(); // フォーカスを合わせる // itsmo.lib.map_setfocus_top($('#' + itsmo.vars.g_map_window).children()); itsmo.lib.map_setfocus_top(document.getElementById(itsmo.vars.g_map_window).childNodes); }; // 窓閉じる itsmo.lib.map_windowclose = function(nofunc) { if(itsmo.vars.g_map_window == null) return; itsmo.lib.document_off(itsmo.vars.g_map_window); $('div.right-add300:has(iframe)').show(); $('#add-468-in').show(); itsmo.vars.g_map_window = null; if (!itsmo.vars.g_screen_non) itsmo.lib.ScreenClose(); if(nofunc != 1 && itsmo.vars.g_map_window_func != null){ itsmo.vars.g_map_window_func(); } itsmo.vars.g_map_confirm_yes = 0; }; // フォーカスを左上?に移動させる itsmo.lib.map_setfocus_top = function(parent) { for(var i = 0;i < parent.length;i ++) { var node = parent.item(i); var tag = node.tagName; if(tag == "INPUT") { var type = node.type; if(type == "text" || type == "checkbox" || type == "radio" || type == "image") { node.focus(); return false; } } else if (tag == "TEXTAREA") { node.focus(); return false; } if(node.childNodes.length > 0) { if(itsmo.lib.map_setfocus_top(node.childNodes) == false) return false; } } return true; }; // 問い合わせウィンドウ itsmo.vars.g_map_confirm_yes = 0; itsmo.lib.map_confirm = function(title,text,func) { itsmo.lib.document_setvalue('ajax_map_window_confirm_title',title); itsmo.lib.document_setvalue('ajax_map_window_confirm_text',text); itsmo.lib.map_windowopen('ajax_map_window_confirm',func); }; itsmo.lib.map_confirm_yes = function() { itsmo.vars.g_map_confirm_yes = 1; itsmo.lib.map_windowclose(); }; itsmo.lib.map_confirm_no = function() { itsmo.vars.g_map_confirm_yes = 0; itsmo.lib.map_windowclose(); }; // 確認ウィンドウ itsmo.vars.g_map_alert_cookie = null; itsmo.lib.map_alert = function(title,text,cookie,func) { if(itsmo.lib.cookie_get('cktg_confirm').indexOf(cookie) != -1) { if(func) func(); return; } itsmo.lib.document_setvalue('ajax_map_window_alert_title',title); itsmo.lib.document_setvalue('ajax_map_window_alert_text',text); itsmo.lib.document_setvalue('ajax_map_window_alert_chk',0); itsmo.vars.g_map_alert_cookie = cookie; itsmo.lib.map_windowopen('ajax_map_window_alert',func); }; itsmo.lib.map_alert_close = function(title,text,cookie) { // クッキーに保存 if(itsmo.lib.document_getvalue('ajax_map_window_alert_chk') == 1) { itsmo.lib.cookie_set('cktg_confirm',itsmo.lib.cookie_get('cktg_confirm')+'\t'+itsmo.vars.g_map_alert_cookie); } itsmo.lib.map_windowclose(); }; //------------------------------------------------------------- // Wait表示 //------------------------------------------------------------- itsmo.vars.g_map_waitcnt = 0; itsmo.vars.g_map_waittimer = null; // 処理中ウィンド表示 itsmo.lib.map_waitopen = function() { itsmo.lib.document_off('ajax_leftmenu'); itsmo.lib.document_on('ajax_leftmenu_wait'); itsmo.vars.g_map_waitcnt ++; // 強制的に閉じるウェイト if(itsmo.vars.g_map_waittimer != null) clearTimeout(itsmo.vars.g_map_waittimer); itsmo.vars.g_map_waittimer = setTimeout("itsmo.vars.g_map_waittimer = null;itsmo.lib.map_waitclose();" , 20 * 1000); }; // 処理中ウィンドクローズ itsmo.lib.map_waitclose = function() { itsmo.lib.document_on('ajax_leftmenu'); itsmo.lib.document_off('ajax_leftmenu_wait'); itsmo.vars.g_map_waitcnt --; if(itsmo.vars.g_map_waitcnt < 1) { itsmo.vars.g_map_waitcnt = 0; if(itsmo.vars.g_map_waittimer != null) clearTimeout(itsmo.vars.g_map_waittimer); } }; // 処理中ウィンド2表示 itsmo.lib.map_wait2open = function(msg, flagCancelGPS) { //itsmo.lib.document_setvalue('map_wait_text',msg); if (flagCancelGPS == true) { if ($('#map_wait_text').hasClass("exist-btn-cancel") == false) { $('
キャンセル
').appendTo("#map_wait_text"); $('#map_wait_text').addClass("exist-btn-cancel"); } } else { if ($('#map_wait_text').hasClass("exist-btn-cancel") == true) { $("#btn-cancel-gps").remove(); $('#map_wait_text').removeClass("exist-btn-cancel"); } } $('#map_wait_text span').text(msg); itsmo.lib.map_windowopen('ajax_map_window_wait'); }; // 処理中ウィンド2クローズ itsmo.lib.map_wait2close = function() { if(itsmo.vars.g_map_window == 'ajax_map_window_wait') itsmo.lib.map_windowclose(); }; //------------------------------------------------ // エラー画面 //------------------------------------------------ itsmo.lib.map_error = function(title,text,func) { itsmo.lib.document_setvalue('ajax_map_window_error_title',title); itsmo.lib.document_setvalue('ajax_map_window_error_text',text); itsmo.lib.map_windowopen('ajax_map_window_error',func); $('#ajax_map_window_error a.btn-close').get(0).focus(); }; // 未使用 itsmo.lib.map_error_close = function(title,text,cookie) { itsmo.lib.map_windowclose(); }; //------------------------------------------------ // エラーメッセージ小窓表示 // param kbn エラー区分(W,E,I) // param errCd エラーコード // param errPage エラーページ(itsmo.vars.pagesのキー) // param setData 動的メッセージ内容 // param cookie cookieのキー // param func callback関数 //------------------------------------------------ itsmo.lib.aplErrorWindow = function(kbn, errCd, errPage, setData, cookie, func) { // エラーメッセージ取得 $.getJSON( '/files/errorlist.json', null, function(json) { // エラーログ出力 // err = kbn + ":" + errCd + ":" + errPage; // if (kbn != 'I') $.get('/apl_log.php', { d: err }, function() {}); $.each(json.errors, function(i, item){ code = kbn + errCd; if (code == item.errcd) { title = item.title.replace('{page}', itsmo.vars.pages[errPage]); message = item.message.replace('{prm}', setData); // 表示ウィンドウ判別 switch (kbn) { case 'W': case 'E': itsmo.lib.map_error(title, message, func); break; case 'I': itsmo.lib.map_alert(title, message, cookie, func); break; } } }); } ); }; // 携帯リンクurl作成 itsmo.lib.getLinkMobileUrl = function(lat,lon,lvl) { if (lat < 10000) { lat = itsmo.lib.toMilliSec({ lat: lat, lon: lon }); lon = lat.lon; lat = lat.lat; } var prm = lat + '-' + lon + '-' + itsmo.lib.map_changeLvl(lvl); var txt = itsmo.vars.d_mobile_maptolink + 'p1?' + prm ; return txt; }; // ガイド用リンクurl作成 itsmo.lib.getLinkItsmoUrl = function(lat,lon,lvl) { var prm = 'z-' + lat + '-' + lon + '-' + lvl; // var txt = 'http://' + itsmo.vars.d_host_www + '/' + prm + '.htm'; var txt = 'https://www.its-mo.com/' + prm + '.htm'; return txt; }; // 携帯へ itsmo.lib.openLinkMobile = function(lat,lon,lvl) { var txt = itsmo.lib.getLinkMobileUrl(lat,lon,lvl); $('#ajax_map_jmap_mtext').val(txt); $('#ajax_map_jmap_mmail').attr('href','mailto:?BODY=' + encodeURIComponent(txt)); $('#ajax_map_jmap_barcode').attr('src',itsmo.vars.d_qrimg_url+'?d=' + txt); itsmo.lib.map_windowopen('mobile_send_window'); }; // 携帯用縮尺変換 itsmo.lib.map_changeLvl = function(lvl) { var mlvl = {}; mlvl['1'] = '1'; mlvl['2'] = '1'; mlvl['3'] = '1'; mlvl['4'] = '1'; mlvl['5'] = '1'; mlvl['6'] = '1'; mlvl['7'] = '1'; mlvl['8'] = '1'; mlvl['9'] = '2'; mlvl['10'] = '3'; mlvl['11'] = '4'; mlvl['12'] = '5'; mlvl['13'] = '6'; mlvl['14'] = '7'; mlvl['15'] = '7'; mlvl['16'] = '8'; mlvl['17'] = '8'; mlvl['18'] = '9'; return mlvl[lvl]; }; //フリーワード検索 itsmo.lib.freewdSubmit = function(form_id,cat) { var freewd = $('#' + form_id +' input[name=w]').val(); if(freewd == itsmo.vars.g_freeWordComment[cat]){ freewd = ""; $('#' + form_id +' input[name=w]').val(''); } let data ={}; data.nm = itsmo.lib.document_getvalue('freewd'); itsmo.lib.localstorage_set(data); var path = location.pathname; var paths = path.split('/'); if (paths[1] == 'c' || paths[1] == 'map') { path = '/'+paths[1]+'/'; } else { path = '/'+paths[1]+'/'+paths[2]+'/'; } // Remove Google Analytics // _gaq.push(['_trackEvent', 'フリーワード', path, freewd, , true]); var flg = true; if(freewd.length > 30){ flg = false; alert('30文字以内で入力してください'); return false; } if (flg) { $('#' + form_id).attr("action", '/search/freeword/'); } }; /** ミリ秒から十進度形式へ */ itsmo.lib.toLatLon = function(lat, lon) { if (lat instanceof Object && typeof lat.lat !== 'undefined' && typeof lat.lon !== 'undefined') { lon = lat.lon; lat = lat.lat; } lat /= 60 * 60 * 1000; lon /= 60 * 60 * 1000; return new ZDC.LatLon(lat, lon); }; /** 十進度形式からミリ秒へ。ミリ秒形式のものはそのまま object 形式にして返す。 */ itsmo.lib.toMilliSec = function(lat, lon) { if (typeof lon == 'undefined') { lon = lat.lon; lat = lat.lat; } lat = parseFloat(lat); lon = parseFloat(lon); if (lat < 100000000) { lat = Math.floor(lat * 60 * 60 * 1000); lon = Math.floor(lon * 60 * 60 * 1000); } return { lat: lat, lon: lon }; }; // 距離算出 itsmo.lib.getDistance = function(flat, flon, tlat, tlon) { var dist = parseInt(itsmo.lib.getDistance2(flat, flon, tlat, tlon) / 1000); return dist; }; // 距離算出 itsmo.lib.getDistance2 = function(flat, flon, tlat, tlon) { var fpoint = new itsmo.lib.toLatLon(flat, flon); // from var tpoint = new itsmo.lib.toLatLon(tlat, tlon); // to var dist = ZDC.getLatLonToLatLonDistance(fpoint, tpoint); return dist; }; //------------------------------------------------ // 先頭文字50音チェック //------------------------------------------------ // return 50音id itsmo.lib.initCheck = function(nm) { var init = nm.substr(0,1); if(('アイウエオ').indexOf(init) != -1 || ('あいうえお').indexOf(init) != -1){ return 1; }else if(('カキクケコ').indexOf(init) != -1 || ('かきくけこ').indexOf(init) != -1 || ('ガギグゲゴ').indexOf(init) != -1 || ('ガギグゲゴ').indexOf(init) != -1){ return 2; }else if(('サシスセソ').indexOf(init) != -1 || ('さしすせそ').indexOf(init) != -1 || ('ザジズゼゾ').indexOf(init) != -1 || ('ざじずぜぞ').indexOf(init) != -1){ return 3; }else if(('タチツテト').indexOf(init) != -1 || ('たちつてと').indexOf(init) != -1 || ('ダヂヅデド').indexOf(init) != -1 || ('だぢづでど').indexOf(init) != -1){ return 4; }else if(('ナニヌネノ').indexOf(init) != -1 || ('なにぬねの').indexOf(init) != -1){ return 5; }else if(('ハヒフヘホ').indexOf(init) != -1 || ('はひふへほ').indexOf(init) != -1 || ('バビブベボ').indexOf(init) != -1 || ('ばびぶべぼ').indexOf(init) != -1 || ('パピプペポ').indexOf(init) != -1 || ('ぱぴぷぺぽ').indexOf(init) != -1){ return 6; }else if(('マミムメモ').indexOf(init) != -1 || ('まみむめも').indexOf(init) != -1){ return 7; }else if(('ヤユヨ').indexOf(init) != -1 || ('やゆよ').indexOf(init) != -1){ return 8; }else if(('ラリルレロ').indexOf(init) != -1 || ('らりるれろ').indexOf(init) != -1){ return 9; }else if(('ワヲン').indexOf(init) != -1 || ('わをん').indexOf(init) != -1){ return 10; }else{ return 9999; } }; // カンマ区切り itsmo.lib.setComma = function(str) { while (str != (str = str.replace(/^(-?\d+)(\d{3})/, "$1,$2"))); return str; }; // 画像がくずれるので高さ調整 itsmo.lib.chgWidth = function(e){ var tmpImg = new Image(); tmpImg.src = e.src; if(tmpImg.width <= tmpImg.height){ //$(e).width(56); e.width=56; }else if(tmpImg.width > tmpImg.height){ //$(e).height(56); e.height=56; }else{ e.width=56; //$(e).width(56); } }; /** * はいろーぜ通信処理 * * @param void * @return void * @access public */ itsmo.vars.g_mysnspost_con = 0; itsmo.lib.dispHighrose = function(url) { var useSSL = 'https:' == document.location.protocol; // 直前URL保持 if (itsmo.vars.g_mysnspost_con == 1) { // SNS投稿設定画面から遷移時、マイページURL保存 if(useSSL){ itsmo.lib.cookie_set('cktg_lasturl', 'https://' + itsmo.vars.d_host_www + '/map/mypage/'); }else{ itsmo.lib.cookie_set('cktg_lasturl', 'http://' + itsmo.vars.d_host_www + '/map/mypage/'); } itsmo.vars.g_mysnspost_con = 0; } else if (document.URL.indexOf('logout.php') <= 0 && url.indexOf('signup') <= 0) { // ログアウト・会員登録以外から遷移時、直前のURL保存 itsmo.lib.cookie_set('cktg_lasturl', document.URL); } else { itsmo.lib.cookie_del('cktg_lasturl'); } var retPath = 'https://' + itsmo.vars.d_host_www + '/highrose_redirect.php'; url += '?ret=' + encodeURIComponent(retPath); url += '?expire=0'; location.href = url; }; /** * はいろーぜ通信処理(スマホ用) * * @param void * @return void * @access public */ itsmo.lib.dispHighroseSmart = function(url, elem, ref) { itsmo.lib.cookie_del('login_ref'); var useSSL = 'https:' == document.location.protocol; // 直前URL保持 if (document.URL.indexOf('logout.php') <= 0 && url.indexOf('signup') <= 0) { if (document.referrer=="" || document.referrer.indexOf('dcm') >= 0 || document.URL.indexOf('sync') >= 0 || document.referrer.indexOf('/login')) { if(useSSL){ itsmo.lib.cookie_set("cktg_lasturl", 'https://'+itsmo.vars.d_host_www); }else{ itsmo.lib.cookie_set("cktg_lasturl", 'http://'+itsmo.vars.d_host_www); } if(ref) itsmo.lib.cookie_set('login_ref', ref); }else{ itsmo.lib.cookie_set("cktg_lasturl", document.referrer); } } else { itsmo.lib.cookie_del('cktg_lasturl'); } var retPath = 'https://' + itsmo.vars.d_host_www + '/highrose_redirect.php'; url += '?ret=' + encodeURIComponent(retPath); url += '?expire=0'; $(elem).attr('href', url); }; itsmo.lib.redirect = function(url, element, returnUrl){ itsmo.lib.cookie_del('login_ref'); if(typeof(returnUrl) == 'undefined') returnUrl = itsmo.vars.d_host_www; itsmo.lib.cookie_set('cktg_lasturl', returnUrl); var retPath = 'https://' + itsmo.vars.d_host_www + '/highrose_redirect.php'; url += '?ret=' + encodeURIComponent(retPath); url += '?expire=0'; $(element).attr('href', url); }; /** * はいろーぜ通信処理(スマホ用) * * @param void * @return void * @access public */ itsmo.lib.dispHighroseSmartMypage = function(url, elem) { if (document.URL.indexOf('logout.php') <= 0 && url.indexOf('signup') <= 0) { itsmo.lib.cookie_set("cktg_lasturl", document.URL); } else { itsmo.lib.cookie_del('cktg_lasturl'); } var retPath = 'https://' + itsmo.vars.d_host_www + '/highrose_redirect.php'; url += '?ret=' + encodeURIComponent(retPath); url += '?expire=0'; $(elem).attr('href', url); }; itsmo.lib.flagGotoMap = true; itsmo.lib.set_caution_map=function(name){ if (itsmo.lib.flagGotoMap) { if (itsmo.lib.cookie_get('map_caution').length !="") { var check_caution=JSON.parse(itsmo.lib.cookie_get('map_caution')); check_caution[name]=1; itsmo.lib.cookie_set('map_caution',JSON.stringify(check_caution),31536000); }else{ var map_caution = { map_nomal: 0, map_transit: 0 ,map_landmark:0,map_sightseeing:0,map_lasttrain:0 }; itsmo.lib.cookie_set('map_caution',JSON.stringify(map_caution),31536000); var check_caution=JSON.parse(itsmo.lib.cookie_get('map_caution')); check_caution[name]=1; itsmo.lib.cookie_set('map_caution',JSON.stringify(check_caution),31536000); } } }; itsmo.lib.redirect_map_caution=function(name){ if(name=='normal'|| name ==""){ itsmo.lib.set_caution_map('map_nomal'); } if(name=='transit'){ itsmo.lib.set_caution_map('map_transit'); } if(name=='lasttrain'){ itsmo.lib.set_caution_map('map_lasttrain'); } if(name=='landmark'){ itsmo.lib.set_caution_map('map_landmark'); } if(name=='tourist'){ itsmo.lib.set_caution_map('map_sightseeing'); } }; itsmo.lib.url_redirect=function(goback){ if (itsmo.lib.cookie_get('url_redirect').length !="" || itsmo.lib.cookie_get('url_redirect')==undefined){ window.location.href=itsmo.lib.cookie_get('url_redirect'); itsmo.lib.cookie_del('url_redirect'); }else{ window.location.href=goback; } }; itsmo.lib.clear_url_redirect=function(goback){ itsmo.lib.cookie_del('url_redirect'); if(typeof(goback) != 'undefined' && goback == false){ } else { window.location.href=goback; } }; itsmo.lib.strToTime = function (text, now){ function strtotime(text, now) { // discuss at: http://phpjs.org/functions/strtotime/ // version: 1109.2016 // original by: Caio Ariede (http://caioariede.com) // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // improved by: Caio Ariede (http://caioariede.com) // improved by: A. Matías Quezada (http://amatiasq.com) // improved by: preuter // improved by: Brett Zamir (http://brett-zamir.me) // improved by: Mirko Faber // input by: David // bugfixed by: Wagner B. Soares // bugfixed by: Artur Tchernychev // note: Examples all have a fixed timestamp to prevent tests to fail because of variable time(zones) // example 1: strtotime('+1 day', 1129633200); // returns 1: 1129719600 // example 2: strtotime('+1 week 2 days 4 hours 2 seconds', 1129633200); // returns 2: 1130425202 // example 3: strtotime('last month', 1129633200); // returns 3: 1127041200 // example 4: strtotime('2009-05-04 08:30:00 GMT'); // returns 4: 1241425800 var parsed, match, today, year, date, days, ranges, len, times, regex, i, fail = false; if (!text) { return fail; } // Unecessary spaces text = text.replace(/^\s+|\s+$/g, '') .replace(/\s{2,}/g, ' ') .replace(/[\t\r\n]/g, '') .toLowerCase(); // in contrast to php, js Date.parse function interprets: // dates given as yyyy-mm-dd as in timezone: UTC, // dates with "." or "-" as MDY instead of DMY // dates with two-digit years differently // etc...etc... // ...therefore we manually parse lots of common date formats match = text.match( /^(\d{1,4})([\-\.\/\:])(\d{1,2})([\-\.\/\:])(\d{1,4})(?:\s(\d{1,2}):(\d{2})?:?(\d{2})?)?(?:\s([A-Z]+)?)?$/); if (match && match[2] === match[4]) { if (match[1] > 1901) { switch (match[2]) { case '-': { // YYYY-M-D if (match[3] > 12 || match[5] > 31) { return fail; } return new Date(match[1], parseInt(match[3], 10) - 1, match[5], match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000; } case '.': { // YYYY.M.D is not parsed by strtotime() return fail; } case '/': { // YYYY/M/D if (match[3] > 12 || match[5] > 31) { return fail; } return new Date(match[1], parseInt(match[3], 10) - 1, match[5], match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000; } } } else if (match[5] > 1901) { switch (match[2]) { case '-': { // D-M-YYYY if (match[3] > 12 || match[1] > 31) { return fail; } return new Date(match[5], parseInt(match[3], 10) - 1, match[1], match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000; } case '.': { // D.M.YYYY if (match[3] > 12 || match[1] > 31) { return fail; } return new Date(match[5], parseInt(match[3], 10) - 1, match[1], match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000; } case '/': { // M/D/YYYY if (match[1] > 12 || match[3] > 31) { return fail; } return new Date(match[5], parseInt(match[1], 10) - 1, match[3], match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000; } } } else { switch (match[2]) { case '-': { // YY-M-D if (match[3] > 12 || match[5] > 31 || (match[1] < 70 && match[1] > 38)) { return fail; } year = match[1] >= 0 && match[1] <= 38 ? +match[1] + 2000 : match[1]; return new Date(year, parseInt(match[3], 10) - 1, match[5], match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000; } case '.': { // D.M.YY or H.MM.SS if (match[5] >= 70) { // D.M.YY if (match[3] > 12 || match[1] > 31) { return fail; } return new Date(match[5], parseInt(match[3], 10) - 1, match[1], match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000; } if (match[5] < 60 && !match[6]) { // H.MM.SS if (match[1] > 23 || match[3] > 59) { return fail; } today = new Date(); return new Date(today.getFullYear(), today.getMonth(), today.getDate(), match[1] || 0, match[3] || 0, match[5] || 0, match[9] || 0) / 1000; } return fail; // invalid format, cannot be parsed } case '/': { // M/D/YY if (match[1] > 12 || match[3] > 31 || (match[5] < 70 && match[5] > 38)) { return fail; } year = match[5] >= 0 && match[5] <= 38 ? +match[5] + 2000 : match[5]; return new Date(year, parseInt(match[1], 10) - 1, match[3], match[6] || 0, match[7] || 0, match[8] || 0, match[9] || 0) / 1000; } case ':': { // HH:MM:SS if (match[1] > 23 || match[3] > 59 || match[5] > 59) { return fail; } today = new Date(); return new Date(today.getFullYear(), today.getMonth(), today.getDate(), match[1] || 0, match[3] || 0, match[5] || 0) / 1000; } } } } // other formats and "now" should be parsed by Date.parse() if (text === 'now') { return now === null || isNaN(now) ? new Date() .getTime() / 1000 | 0 : now | 0; } if (!isNaN(parsed = Date.parse(text))) { return parsed / 1000 | 0; } date = now ? new Date(now * 1000) : new Date(); days = { 'sun': 0, 'mon': 1, 'tue': 2, 'wed': 3, 'thu': 4, 'fri': 5, 'sat': 6 }; ranges = { 'yea': 'FullYear', 'mon': 'Month', 'day': 'Date', 'hou': 'Hours', 'min': 'Minutes', 'sec': 'Seconds' }; function lastNext(type, range, modifier) { var diff, day = days[range]; if (typeof day !== 'undefined') { diff = day - date.getDay(); if (diff === 0) { diff = 7 * modifier; } else if (diff > 0 && type === 'last') { diff -= 7; } else if (diff < 0 && type === 'next') { diff += 7; } date.setDate(date.getDate() + diff); } } function process(val) { var splt = val.split(' '), // Todo: Reconcile this with regex using \s, taking into account browser issues with split and regexes type = splt[0], range = splt[1].substring(0, 3), typeIsNumber = /\d+/.test(type), ago = splt[2] === 'ago', num = (type === 'last' ? -1 : 1) * (ago ? -1 : 1); if (typeIsNumber) { num *= parseInt(type, 10); } if (ranges.hasOwnProperty(range) && !splt[1].match(/^mon(day|\.)?$/i)) { return date['set' + ranges[range]](date['get' + ranges[range]]() + num); } if (range === 'wee') { return date.setDate(date.getDate() + (num * 7)); } if (type === 'next' || type === 'last') { lastNext(type, range, num); } else if (!typeIsNumber) { return false; } return true; } times = '(years?|months?|weeks?|days?|hours?|minutes?|min|seconds?|sec' + '|sunday|sun\\.?|monday|mon\\.?|tuesday|tue\\.?|wednesday|wed\\.?' + '|thursday|thu\\.?|friday|fri\\.?|saturday|sat\\.?)'; regex = '([+-]?\\d+\\s' + times + '|' + '(last|next)\\s' + times + ')(\\sago)?'; match = text.match(new RegExp(regex, 'gi')); if (!match) { return fail; } for (i = 0, len = match.length; i < len; i++) { if (!process(match[i])) { return fail; } } // ECMAScript 5 only // if (!match.every(process)) // return false; return (date.getTime() / 1000); } return strtotime(text, now); }; itsmo.lib.getMapImgLink = function (latLon, lvl, wh, center){ latLon = itsmo.lib.toMilliSec(latLon); var mapImageLink = '/map.php?lvl=' + lvl; mapImageLink += '&lat=' + latLon.lat + '&lon=' + latLon.lon; mapImageLink += '&w=' + wh.width + '&h=' + wh.height; if(center){ mapImageLink += '&icn=link02:' + latLon.lat + ':' + latLon.lon; } mapImageLink += '&nc=1'; return mapImageLink; }; itsmo.lib.getBaseURL = function (){ // entire url including querystring - also: window.location.href; var url = location.href; var baseURL = url.substring(0, url.indexOf('/', 14)); if (baseURL.indexOf('https://localhost') != -1) { // Base Url for localhost var url = location.href; // window.location.href; var pathname = location.pathname; // window.location.pathname; var index1 = url.indexOf(pathname); var index2 = url.indexOf("/", index1 + 1); var baseLocalUrl = url.substr(0, index2); return baseLocalUrl + ""; } else { // Root Url for domain name return baseURL + ""; } }; itsmo.lib.getQRCodeLink = function (txt, size){ var qrCodeLink = itsmo.vars.d_qrimg_url + '?d=' + txt; if(size){ qrCodeLink += '&s=' +size; } return qrCodeLink; }; itsmo.lib.share = {}; itsmo.lib.share.facebookPC = function(title){ title = encodeURIComponent(title); var url = window.location.href; url = encodeURIComponent(url); var app_id = 'app_id=' + '268920203204669' + '&'; var redirect_uri = 'redirect_uri=https://facebook.com&'; var display = 'display=page&'; var _link = 'link=' + url + '&'; var name = 'name=' + title + '&'; var description = 'description=' + url + '&'; var picture = '&picture=https://www.its-mo.com/design/img/smart/bookmark.png&'; var sdk = 'sdk=joey'; var https = 'https://facebook.com/dialog/feed?' + app_id + redirect_uri + picture + name + description + _link + display + sdk; window.open(https, '_blank'); }; itsmo.lib.share.twitterPC = function(title){ var href = 'https://twitter.com/share?text='; title = encodeURIComponent(title); var url = window.location.href; url = encodeURIComponent(url); href += title + '%0a' +'&url=' + url; window.open(href, '_blank'); }; itsmo.lib.share.facebookSP = function(title){ title = encodeURIComponent(title); var url = window.location.href; url = encodeURIComponent(url); var baseURL = itsmo.lib.getBaseURL(); var app_id = 'app_id=' + '268920203204669' + '&'; var redirect_uri = 'redirect_uri=' + baseURL + '/c/close_popup.php&'; var display = 'display=touch&'; var _link = 'link=' + url + '&'; var name = 'name=' + title + '&'; var description = 'description=' + url + '&'; var picture = '&picture=https://www.its-mo.com/design/img/smart/bookmark.png&'; var sdk = 'sdk=joey'; var https = 'https://m.facebook.com/dialog/feed?' + app_id + redirect_uri + picture + name + description + _link + display + sdk; wind = window.open(https, "_blank", "width=450, height=450"); wind.onBeforeUnload = function () { window.close(); }; }; itsmo.lib.share.twitterSP = function(title){ var href = 'https://twitter.com/share?text='; title = encodeURIComponent(title); var url = window.location.href; url = encodeURIComponent(url); href += title + '%0a' +'&url=' +url; var width = 400, height = 400, left = ($(window).width() - width) / 2, top = ($(window).height() - height) / 2, opts = 'status=1' + ',width=' + width + ',height=' + height + ',top=' + top + ',left=' + left; window.open(href, 'twitter', opts); }; itsmo.lib.share.line = function (title) { var href = 'https://line.naver.jp/R/msg/text/?'; title = encodeURIComponent(title); var url = window.location.href; url = encodeURIComponent(url); href += title + '%0a' + url; window.open(href); }; itsmo.lib.share.mail = function (title) { var url = window.location.href; var mailTo = 'mailto:?body= %0a %0a' + title + '%0a' + encodeURI(url); window.location.href = mailTo; }; itsmo.lib.addHistoryFWSearch = function (word, url, key, active, limit) { if (typeof limit == 'undefined' || limit == null) { limit = 10; } if (typeof(url) !='undefined'){ if(url.length > 0){ word = [word,url,key]; if(active == 'active'){ word.push(active); } } } var historyArray = null; historyArray = itsmo.lib.cookie_get('historyFWSearch'); if (historyArray != "") { historyArray = JSON.parse(historyArray); } var ret = []; if (word.length >= 1) { ret.push(word); } if (historyArray != null) { $.each(historyArray, function (i, v) { if(Array.isArray(word) && Array.isArray(v)){ if (v[0] == word[0]) { return; } } if(Array.isArray(word)){ if (v == word[0]) { return; } } if(Array.isArray(v)){ if (v[0] == word) { return; } } if (v == word) { return; } if (v.length <= 0) { return; } ret.push(v); if (ret.length >= limit) { return false; } }); } if (ret != null) { ret = JSON.stringify(ret); itsmo.lib.cookie_set('historyFWSearch', ret); } }; itsmo.lib.highroseLoginRedirect = function(url, elem, callbackURL) { itsmo.lib.cookie_del('login_ref'); if(typeof(callbackURL) == 'undefined'){ callbackURL = itsmo.vars.d_host_www; } var useSSL = 'https:' == document.location.protocol; if(useSSL){ itsmo.lib.cookie_set("cktg_lasturl", 'https://'+itsmo.vars.d_host_www + callbackURL); }else{ itsmo.lib.cookie_set("cktg_lasturl", 'http://'+itsmo.vars.d_host_www + callbackURL); } var retPath = 'https://' + itsmo.vars.d_host_www + '/highrose_redirect.php'; url += '?ret=' + encodeURIComponent(retPath); url += '?expire=0'; $(elem).attr('href', url); }; itsmo.lib.getCurrentAddress = function (currentStarting) { if (undefined === currentStarting) { currentStarting = false; } window.currentStarting = currentStarting; if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(itsmo.lib.getCurrentAddressCallback, itsmo.lib.redirectTaxiError); } else { window.location.href = '/taxi/error'; } }; itsmo.lib.getCurrentAddressCallback = function(position) { var latlon = new ZDC.LatLon(position.coords.latitude, position.coords.longitude); latlon = ZDC.wgsTotky(latlon); var lat = latlon.lat; var lon = latlon.lon; var f = latlon.f; var h = latlon.h; $.ajax({ type:"GET", url: '/map/right_click.php', dataType:"json", cache: false, crossDomain: true, headers: { 'X-Suggest-Auth':'NINAVW' }, data:{lat:lat, lon:lon , f:f, h:h}, success: function(data) { if (!(data.err == 1 || data[0] == null)) { var currentAddr = data[0].address.text; var currentAddrLat = Math.round(data[0].address.point.lat * 3600 * 1000); var currentAddrLon = Math.round(data[0].address.point.lon * 3600 * 1000); itsmo.lib.linkToTaxiFare(currentAddr, currentAddrLat, currentAddrLon); } else { window.location.href = '/taxi/error'; } } }); }; itsmo.lib.linkToTaxiFare = function(currentAddr, currentAddrLat, currentAddrLon) { var facilityInfo = $('#facility-info').val(); if(currentAddr != '' && currentAddrLat != '' && currentAddrLon != '') { var strUrl = '/taxi/?getin=' + facilityInfo + '&getoff=' + currentAddr + '_' + currentAddrLat + '_' + currentAddrLon; if (window.currentStarting) { strUrl = '/taxi/?getin=' + currentAddr + '_' + currentAddrLat + '_' + currentAddrLon + '&getoff=' + facilityInfo; } window.location.href = strUrl; } }; itsmo.lib.redirectTaxiError = function(error) { window.location.href = '/taxi/error'; } itsmo.map = {}; itsmo.sub = {}; //------------------------------------------------ // クリッカブルレイヤー関係 //------------------------------------------------ itsmo.sub.getHtmlSize = function(html) { var sz = $('#idCalcSize').html(html); sz = new ZDC.WH(sz.outerWidth({margin: true}), sz.outerHeight({margin: true})); return sz; }; //小吹き出し作成 itsmo.vars.g_map_tipid_clickable_s = {}; itsmo.sub.set_tooltip_s = function(tipHtml, data) { var clat = data.lat; var clon = data.lon; var uid = data.uid; var div_id = 'tip_c_' + uid; tipHtml = '
' + tipHtml + '
'; var i = itsmo.vars.g_map_search_location; if ( clat == '') { clat = i.lat; } if ( clon == '') { clon = i.lon; } var offset= new ZDC.Pixel(-10, -10); var sz = itsmo.sub.getHtmlSize(tipHtml); if (typeof data.tooltipOffset !== 'undefined') { offset = data.tooltipOffset; } var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(clat, clon), { html: tipHtml, size: sz, offset: offset }); var id = itsmo.vars.g_map_layer_clickable.add( tip ); data['tip_id'] = id; data.tipHtml = tipHtml; itsmo.vars.g_map_tipid_clickable_s[uid] = data; itsmo.vars.g_map_layer_clickable.showById( id ); itsmo.map.addEventTooltip(tip, itsmo.map.D_TIPZIDX_RANGE ); // config に合わせて再設定。 itsmo.sub.set_tooltip_s.setHtml(uid); return div_id; }; itsmo.sub.set_tooltip_s.setHtmlAll = function() { $.each(itsmo.vars.g_map_tipid_clickable_s, function(i, v) { itsmo.sub.set_tooltip_s.setHtml(i); }); }; itsmo.sub.set_tooltip_s.setHtml = function(uid) { var data = itsmo.vars.g_map_tipid_clickable_s[uid]; if (typeof data.tipHtml === 'undefined') { return; } var id = data.tip_id; var tipHtml = data.tipHtml; tipHtml = tipHtml.replace(/%%uid%%/g, '' + uid); if (itsmo.vars.g_config.mapinfo_minimize != 0) { tipHtml = tipHtml.replace('class="fukidasi0"', 'class="f-supper0"'); } var sz = itsmo.sub.getHtmlSize(tipHtml); var e = itsmo.vars.g_map_layer_clickable.get(id); e.setHtml(tipHtml, sz); }; itsmo.vars.g_map_tipid_clickable_open = null; itsmo.vars.g_map_tipid_clickable_open_uid = null; itsmo.sub.map_clickable_tipopen = function(html,data) { if (itsmo.vars.g_map_tipid_clickable_open_uid == data.uid) { return; } itsmo.sub.map_clickable_tipclear(); var div_id = 'tip_o_' + data.uid; html = '
' + html + '
'; // ツールチップを作成 var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(data.lat, data.lon), { html: html, //size: itsmo.sub.getHtmlSize(html), offset: new ZDC.Pixel(-10, -10) }); tip.setZindex(itsmo.map.D_TIPZIDX_RANGE + 3); itsmo.vars.g_map_tipid_clickable_open_uid = data.uid; itsmo.vars.g_map_tipid_clickable_open = itsmo.vars.g_map_layer_clickable.add(tip); itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_map_tipid_clickable_open); $("#"+ div_id +" span[class^='List-pic-waku'] img").error(function(){ itsmo.changeNoImageSrc(this); }); return div_id; }; //ツールチップclose itsmo.sub.map_clickable_tipclose = function() { if(itsmo.vars.g_map_tipid_clickable_open == null) return; //itsmo.vars.g_map_layer_clickable.hideById(itsmo.vars.g_map_tipid_clickable_open); itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_map_tipid_clickable_open); itsmo.vars.g_map_tipid_clickable_open = null; itsmo.vars.g_map_tipid_clickable_open_uid = null; }; //ツールチップ(大)clear itsmo.sub.map_clickable_tipclear = function() { if(itsmo.vars.g_map_tipid_clickable_open == null) return; itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_map_tipid_clickable_open); itsmo.vars.g_map_tipid_clickable_open = null; itsmo.vars.g_map_tipid_clickable_open_uid = null; }; //ツールチップ全部clear itsmo.sub.map_clickable_TipAllClear = function(flg) { if(itsmo.vars.g_map_tipid_clickable_open != null){ itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_map_tipid_clickable_open); } if(itsmo.vars.g_map_tipid_clickable_s){ jQuery.each(itsmo.vars.g_map_tipid_clickable_s, function(i,val) { itsmo.vars.g_map_layer_clickable.removeById(val.tip_id); }); } itsmo.vars.g_map_tipid_clickable_open = null; itsmo.vars.g_map_tipid_clickable_open_uid = null; itsmo.vars.g_map_tipid_clickable_s = {}; // 登録地点チップクリア itsmo.myspot.myspot_TipAllClear(); if (flg) { // 自宅チップ最小化 itsmo.mypage.home_closeballoon(); // IPリンクチップ最小化 itsmo.sub.map_maplink_tipclear(); } itsmo.map.bus.clearAllBalloons(); itsmo.map.roadStation.clearResult(); itsmo.facilityNight.clearAllBalloons(); }; //------------------------------------------------ // overture //------------------------------------------------ itsmo.vars.g_map_overture_moved = 9999999; itsmo.sub.map_overture = function() { // 表示用のスペースがテンプレに無い場合は処理しない if($('#ajax_map_overture_header').length <= 0) return; if(itsmo.vars.g_map_search_location_old != null) { itsmo.vars.g_map_overture_moved += itsmo.lib.getDistance2( itsmo.vars.g_map_search_location_old.lat, itsmo.vars.g_map_search_location_old.lon, itsmo.vars.g_map_search_location.lat, itsmo.vars.g_map_search_location.lon); } if(itsmo.vars.g_map_overture_moved < 999000) { // 表示 if(zSr != null && (itsmo.vars.g_map_overture_type == 'mapDef' || itsmo.vars.g_map_overture_type == 'mapContents')) { if(zSr.length > 6) { var descr = zSr[ 6]; // 説明文 var unused1 = zSr[ 7]; // var clickURL = zSr[ 8]; // クリックURL var title = zSr[ 9]; // タイトル var sitehost = zSr[10]; // 表示URL var unused2 = zSr[11]; // // 表示 var e = $('#ajax_map_overture_header div.map_header-over'); e.find('a:first').attr('href', clickURL); e.find('span.over-title:first').html(title); e.find('span.over-des:first').html(descr); $('#ajax_map_overture_header div.map_header2').show(); /* tmp = '

ヘルプ サイトマップ

'; tmp += '
' + title + '' tmp += '' + descr + '
' itsmo.lib.document_setvalue('ajax_map_overture_header',tmp); itsmo.lib.document_on('ajax_map_over_div'); */ } itsmo.vars.g_map_overture_type = null; } } else { // 更新 itsmo.vars.g_map_overture_moved = 0; itsmo.sub.map_getaddr(itsmo.vars.g_map_search_location, function(result) { if(result.status == 0) { itsmo.sub.map_overture_request(null,result.items[0].addrCode,1,'mapDef'); } else { itsmo.sub.map_overture_request(null,'00',1,'mapDef'); } setTimeout(itsmo.sub.map_overture, 1 * 1000); },1); } }; // 通信メイン処理 itsmo.vars.g_map_overture_obj = null; itsmo.vars.g_map_overture_type = null; var zSr = null; itsmo.sub.map_overture_request = function(word,id,cnt,type) { itsmo.vars.g_map_overture_type = type; // 通信先作成 js = '//im.ov.yahoo.co.jp/js_flat/?source=zenrin_jp_itsumo_im&outputCharEnc=utf8&keywordCharEnc=utf8'; js += "&ctxtUrl="+encodeURI(document.URL); if(document.referrer) js += "&ref="+encodeURI(document.referrer); if(word != null) js += "&ctxtKeywords="+encodeURI(word); if(id != null) js += "&ctxtId=ad"+id; js += "&maxCount="+cnt; js += "&type="+itsmo.vars.g_map_overture_type; // json if(itsmo.vars.g_map_overture_obj != null) { document.getElementsByTagName("head").item(0).removeChild(itsmo.vars.g_map_overture_obj); delete itsmo.vars.g_map_overture_obj; } itsmo.vars.g_map_overture_obj = document.createElement('script'); itsmo.vars.g_map_overture_obj.setAttribute('type', 'text/javascript'); itsmo.vars.g_map_overture_obj.setAttribute('charset', 'utf-8'); itsmo.vars.g_map_overture_obj.setAttribute('src', js); document.getElementsByTagName('head').item(0).appendChild(itsmo.vars.g_map_overture_obj); }; // スクロール完了時に im を出す時に呼ぶ関数。 itsmo.sub.map_overture_by_scrollend = function() { // 住所を取得。 ZDC.Search.getAddrByLatLon({ latlons: [itsmo.lib.toLatLon(itsmo.vars.g_map_search_location)] }, itsmo.sub.map_overture_by_scrollend_callback); }; itsmo.sub.map_overture_by_scrollend_callback = function(status, result) { if (status.code == '000' && result.length >= 1) { } else { return; } // 取得成功 var pref = '0', addr = ''; pref = result[0].address.code; addr = result[0].address.text; s = '0000' + parseInt(pref.substring(0, 5), 10); s = s.substring(s.length - 5); var id = 'ad' + s; var type = 'mapDef'; var freewd = ''; var num = 1; var url = itsmo.ad.make_im_url(num, freewd, id, type); $.ajax({ type: "GET", url: url, cache: false, dataType: "jsonp", async: false, timeout: 60000, error: function(xhr, textStatus, errorThrown) { // TODO:エラーの場合のログは? }, success: itsmo.sub.map_overture_set }); }; itsmo.sub.map_overture_set = function(json) { var e = $('#ajax_map_overture_header div.map_header-over'); json = json['Results']['ResultSet']; e.find('a:first').attr('href', json['Listing'][0]['ClickUrl']); e.find('span.over-title:first').text(json['Listing'][0]['title']); e.find('span.over-des:first').text(json['Listing'][0]['description']); e.find('a.over-right-link:first').attr('href', json['Label']['InquiryUrl']).text(json['Label']['LabelText']); $('#ajax_map_overture_header div.map_header2').show(); }; //------------------------------------------------ // 選択カーソル設置 //------------------------------------------------ itsmo.vars.g_map_setcursor_id = null; itsmo.vars.g_map_setcursor_lat = null; itsmo.vars.g_map_setcursor_lon = null; itsmo.vars.g_map_setcursor_icon = null; itsmo.sub.map_setcursor = function(lat,lon,icon) { if(icon == null) icon = 'link02'; if(itsmo.vars.g_map_setcursor_id != null) itsmo.vars.g_map_layer_vics.removeById(itsmo.vars.g_map_setcursor_id); itsmo.vars.g_map_setcursor_lat = lat; itsmo.vars.g_map_setcursor_lon = lon; itsmo.vars.g_map_setcursor_icon = icon; var html = ''; $pixX = -11; $pixY = -30; // 「ここ」アイコン画像サイズ変更に伴い、オフセット値調整 // (link02のみの対応、他タイプは従来通り-11,-30のオフセット) 2013/08/30 konishi if (icon == 'link02') { $pixX = -13; $pixY = -32; } var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(lat, lon), { html: html, size: itsmo.sub.getHtmlSize(html), offset: new ZDC.Pixel($pixX, $pixY) }); itsmo.vars.g_map_setcursor_id = itsmo.vars.g_map_layer_vics.add(tip); itsmo.vars.g_map_layer_vics.showById(itsmo.vars.g_map_setcursor_id); }; //------------------------------------------------ // エリアマッチ広告 //------------------------------------------------ itsmo.sub.map_ad_areamatch_cookie_key = 'no_areamatch'; itsmo.sub.map_ad_areamatch = function() { var s = itsmo.lib.cookie_get(itsmo.sub.map_ad_areamatch_cookie_key); var is_visible = $('#id_area_match').is(':visible'); if ('1' == s && is_visible) { is_visible = false; itsmo.sub.map_ad_areamatch_close(true); } if (!is_visible) { return false; } var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); var prm = 'mode=ad_areamatch_wide&lat='+loc.lat+'&lon='+loc.lon; itsmo.lib.XMLHttpRequest2_send('/map/ajax.php',itsmo.sub.map_ad_areamatch_result,'GET',prm); }; itsmo.sub.map_ad_areamatch_result = function(result) { var err = $('err', result).text(); if (!err) { //return; } txt = $('name',result).text(); copy = $('copy',result).text(); img = $('imgfile',result).text(); url = $('url',result).text(); var e = $('#id_area_match'); var f = e.find('div'); e.find('a:first').attr('href', url); e.find('img:first').attr('src', img); if (copy.length <= 0) { f.hide(); e.find('strong').text(''); e.find('span.font-gray2').text(txt); } else { f.show(); e.find('strong').text(txt); e.find('span.font-gray2').text(copy); } }; itsmo.sub.map_ad_areamatch_close = function(no_cookie) { if (true == no_cookie) { } else { itsmo.lib.cookie_set(itsmo.sub.map_ad_areamatch_cookie_key, '1', 24 * 60 * 60); } $('#id_area_match_closed').show(); $('#id_area_match').hide(); return false; }; itsmo.sub.map_ad_areamatch_open = function() { itsmo.lib.cookie_del(itsmo.sub.map_ad_areamatch_cookie_key); $('#id_area_match_closed').hide(); $('#id_area_match').show(); itsmo.sub.map_ad_areamatch(); // 再取得 return false; } // ホットスポット広告 itsmo.sub.map_ad_hotspot = function() { var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); var prm = 'lat='+loc.lat+'&lon='+loc.lon; itsmo.lib.XMLHttpRequest2_send('/map/ajax_ad_hotspot.php', itsmo.sub.map_ad_hotspot_result, 'GET', prm); }; itsmo.sub.map_ad_hotspot_result = function(result) { result = $(result); var err = parseInt(result.find('err').text()); if (0 != err) { return; } result = result.find('ad'); if (result.length <= 0) { return; } var f = $('#ajax_ad_hotspot_keyword').show().find('div.List-coL-link span:gt(0)').hide(); var cnt = 0; result.each(function() { var n = cnt++; if (n < f.length) { } else { return; } var s = $(this).text(); f.eq(n).show().find('a').text(s); }); }; //------------------------------------------------ // おススメ情報 //------------------------------------------------ itsmo.vars.osusume_word = ''; itsmo.sub.map_osusume_search = function(shoki_flg,word,cnt,page) { if ('10.dev-2nd.local' == location.hostname) { return; } var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); var prm = 'mode=osusume&lat='+loc.lat+'&lon='+loc.lon; itsmo.sub.backBtnChangeHash(['osusume', shoki_flg ? 1 : 0, word, cnt, page]); if(word){ prm = prm + '&word='+encodeURIComponent(word); } if(shoki_flg){ prm = prm + '&shoki_flg=1'; }else{ itsmo.lib.map_waitopen(); } //if(cnt){ prm = prm + '&cnt=' + cnt; } //if(page){ prm = prm + '&page=' + page; } itsmo.lib.XMLHttpRequest2_send('/map/ajax.php',itsmo.sub.map_osusume_search_result,'GET',prm); }; itsmo.sub.map_osusume_search_result = function(result) { var err = $('err', result).text(); if (err != null) { //return; } //チップクリア itsmo.sub.map_clickable_TipAllClear(); //html if($(result).find('left_html').text()){ itsmo.sub.map_tab_change('range'); itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml($('left_html', result).text()); itsmo.vars.g_range_genre = 'osusume'; // インタレストマッチ広告を挿入 itsmo.sub.map_getaddr(itsmo.vars.g_map_search_location, itsmo.range.im_getaddr, 1); } var set_tip = function (){ //param var prm = {}; prm['uid'] = $(this).find('uid').text(); prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['nm'] = $(this).find('nm').text(); prm['gnr_nm'] = 'おすすめ情報'; prm['short_nm'] = $(this).find('short_nm').text() prm['img'] = $(this).find('imgurl').text(); prm['url'] = $(this).find('url').text(); prm['iconL'] = $(this).find('iconL').text(); prm['iconM'] = $(this).find('iconM').text(); prm['iconS'] = $(this).find('iconS').text(); prm['tip_c'] = $(this).find('tip_c').text(); prm['tip_o'] = $(this).find('tip_o').text(); //ツールチップ作成 var div_id = itsmo.sub.set_tooltip_s(prm['tip_c'],prm); //bind $('#' + div_id + ' a').click(function() { itsmo.sub.map_osusume_tip_open(prm.uid); }); $('#' + div_id + ' .tipc_range_open1').click(function() { itsmo.sub.map_osusume_tip_open(prm.uid); }); }; //チップ作成 $(result).find('item').each(set_tip); }; //おすすめ情報中吹き出し itsmo.sub.map_osusume_tip_open = function(uid) { var data = itsmo.vars.g_map_tipid_clickable_s[uid]; if(!data){ return false; } var div_id = itsmo.sub.map_clickable_tipopen(data.tip_o,data); }; //おすすめ情報パカパカ itsmo.sub.map_osusumeWindow = function(word){ if(word){ itsmo.vars.osusume_word = word; $('#osusume_word').text(word); } $('#ajax_facet_gnr1_div').toggle(); }; //------------------------------------------------ // ナビ起動 //------------------------------------------------ itsmo.sub.map_linknavi = function() { var url_prm = "/lib/itsmonavi/its-mo_ext_IF/its-mo_ext_IF.htm?cocd=00¶m1=2&datum=tokyo&unit=msec&point1="; url_prm += itsmo.vars.g_map_search_box.minx + "/" + itsmo.vars.g_map_search_box.miny + "&point2="; url_prm += itsmo.vars.g_map_search_box.maxx + "/" + itsmo.vars.g_map_search_box.maxy + "&icon=0&seach=0"; window.open(url_prm,"skin","width=586,height=623,toolbar=0,location=0,status=0,menubar=0,scrollbars=yes,resizable=yes"); return; }; //------------------------------------------------ // メニュータブの制御 //------------------------------------------------ itsmo.sub.map_syuhen_change = function(mode) { // 変更 switch(mode) { case 'max': itsmo.lib.document_on('ajax_map_syuhen_max'); itsmo.lib.document_off('ajax_map_syuhen_min'); break; case 'min': itsmo.lib.document_off('ajax_map_syuhen_max'); itsmo.lib.document_on('ajax_map_syuhen_min'); break; } }; //------------------------------------------------ // メニュータブの制御 //------------------------------------------------ itsmo.vars.g_map_tab_mode = 'top'; itsmo.vars.g_map_tab_backBtnFuncNoAdd = false; itsmo.sub.map_genre = function() { itsmo.range.range_tipclear(); itsmo.myspot.myspot_clearballoon(); itsmo.sub.genre_research_clear(); itsmo.sub.map_tab_change('top'); $("#ajax_scrollable_4").height((itsmo.vars.g_windowHeight - itsmo.vars.PAGE_HEADER_HEIGHT - itsmo.vars.MAP_HEADER_HEIGHT)); }; itsmo.sub.map_tab_change = function(mode, nostop, backBtnFunc) { // nostop=1:ジャンルクリアしない if (typeof nostop == 'function' || nostop instanceof Array) { backBtnFunc = nostop; nostop = false; } // 地点変更のイベント初期化 if (typeof backBtnFunc == 'undefined') { backBtnFunc = null; } //itsmo.myspot.chengeClickMap(); var isShowRouteSearch = false; if (itsmo.vars.g_myroute_cnt == 0){ itsmo.vars.routeSearchResultKeep = 0; }else{ itsmo.vars.routeSearchResultKeep = 1; } // 変更 switch(mode) { case 'top':// TOP // リスト itsmo.lib.document_on('ajax_near'); itsmo.lib.document_off('ajax_leftmenu_result'); itsmo.lib.document_off('ajax_leftmenu_route'); $('.map-gunre-midle').hide(); // タブ itsmo.lib.document_class('ajax_menu-tp','act'); itsmo.lib.document_class('ajax_menu-my',''); itsmo.lib.document_class('ajax_menu-add',''); itsmo.lib.document_class('menu-route-search',''); // 他 itsmo.lib.document_class('m-left','m-left-df'); //itsmo.lib.document_class('ajax_map_overture_header','map_header map_over_df'); // その他 if (nostop) { itsmo.range.range_tipclear(); } else { itsmo.range.range_stop(); } backBtnFunc = ['top']; break; case 'range':// 周辺検索 // リスト itsmo.lib.document_off('ajax_near'); itsmo.lib.document_on('ajax_leftmenu_result'); itsmo.lib.document_off('ajax_leftmenu_route'); // タブ itsmo.lib.document_class('ajax_menu-tp','act'); itsmo.lib.document_class('ajax_menu-my',''); itsmo.lib.document_class('ajax_menu-add',''); itsmo.lib.document_class('menu-route-search',''); // 他 itsmo.lib.document_class('m-left','m-left-'+mode); //itsmo.lib.document_class('ajax_map_overture_header','map_header map_over_'+mode); //myspot_clear(); break; case 'facnum': case 'busDetail': case 'michinoeki': case 'bus': case 'freeword'://フリーワード case 'freewordaddr'://フリーワード // リスト itsmo.lib.document_off('ajax_near'); itsmo.lib.document_on('ajax_leftmenu_result'); itsmo.lib.document_off('ajax_leftmenu_route'); // タブ itsmo.lib.document_class('ajax_menu-tp','act'); itsmo.lib.document_class('ajax_menu-my',''); itsmo.lib.document_class('ajax_menu-add',''); itsmo.lib.document_class('menu-route-search',''); // 他 itsmo.lib.document_class('m-left','m-left-'+mode); break; case 'mypage':// マイページ case 'myspot':// 登録地点 // リスト itsmo.lib.document_off('ajax_near'); itsmo.lib.document_on('ajax_leftmenu_result'); itsmo.lib.document_off('ajax_leftmenu_route'); // タブ itsmo.lib.document_class('ajax_menu-tp',''); itsmo.lib.document_class('ajax_menu-my','act'); itsmo.lib.document_class('ajax_menu-add',''); itsmo.lib.document_class('menu-route-search',''); if (mode == 'mypage') { // マイページデータ設定 itsmo.mypage.mypage(); } else if (mode == 'myspot') { // 登録地点データ設定 itsmo.myspot.myspot_listget(); } // その他 if (nostop) { itsmo.range.range_tipclear(); } else { itsmo.range.range_stop(); } break; case 'addrlist':// 位置検索 // リスト itsmo.lib.document_off('ajax_near'); itsmo.lib.document_on('ajax_leftmenu_result'); itsmo.lib.document_off('ajax_leftmenu_route'); // タブ itsmo.lib.document_class('ajax_menu-tp',''); itsmo.lib.document_class('ajax_menu-my',''); itsmo.lib.document_class('ajax_menu-add','act'); itsmo.lib.document_class('menu-route-search',''); // 他 itsmo.lib.document_class('m-left','m-left-df'); //itsmo.lib.document_class('ajax_map_overture_header','map_header map_over_df'); // その他 if (nostop) { itsmo.range.range_tipclear(); } else { itsmo.range.range_stop(); } break; case 'route': itsmo.lib.document_off('ajax_near'); itsmo.lib.document_off('ajax_leftmenu_result'); itsmo.lib.document_on('ajax_leftmenu_route'); isShowRouteSearch = true; // タブ itsmo.lib.document_class('ajax_menu-tp',''); itsmo.lib.document_class('ajax_menu-my',''); itsmo.lib.document_class('ajax_menu-add',''); itsmo.lib.document_class('menu-route-search','act'); break; default: // リスト itsmo.lib.document_on('ajax_near'); itsmo.lib.document_off('ajax_leftmenu_result'); itsmo.lib.document_off('ajax_leftmenu_route'); // タブ itsmo.lib.document_class('ajax_menu-tp','act'); itsmo.lib.document_class('ajax_menu-my',''); itsmo.lib.document_class('ajax_menu-add',''); itsmo.lib.document_class('menu-route-search',''); // 他 itsmo.lib.document_class('m-left','m-left-df'); //itsmo.lib.document_class('ajax_map_overture_header','map_header map_over_df'); // その他 if (nostop) { itsmo.range.range_tipclear(); } else { itsmo.range.range_stop(); } break; } if(!isShowRouteSearch){ if (itsmo.vars.routeSearchResultKeep == 0){ //Clear Route itsmo.vars.g_myroute_panel_isvisible = 1; itsmo.vars.g_route_tab_displayed = 0; itsmo.myroute.showRoutePanel(); } } else { if(itsmo.vars.g_route_tab_displayed == 0){ if(itsmo.vars.routeKeep == 0){ itsmo.myroute.myroute_panel_change('close'); itsmo.vars.g_myroute_panel_isvisible = 0; itsmo.myroute.showRoutePanel(); itsmo.vars.g_myroute_mode = ''; } itsmo.vars.g_route_tab_displayed = 1; itsmo.vars.routeKeep = 0; if (backBtnFunc.length < 2 || backBtnFunc[1] == 'car'){ itsmo.myroute.myroute_car(); } else { itsmo.myroute.myroute_all(); } } } if (null == backBtnFunc && itsmo.vars.g_map_tab_mode != mode) { backBtnFunc = function() { itsmo.sub.map_tab_change(mode, nostop); }; } itsmo.vars.g_map_tab_mode = mode; // 戻るボタン対応 do { if (typeof backBtnFunc === 'undefined' || null == backBtnFunc) { break; } if (typeof backBtnFunc.flgNoAdd !== 'undefined' && backBtnFunc.flgNoAdd) { break; } if (itsmo.vars.g_map_tab_backBtnFuncNoAdd) { break; } itsmo.sub.backBtnChangeHash(backBtnFunc); } while(false); }; itsmo.sub.map_tab_sethtml = function(html) { itsmo.lib.document_setvalue('ajax_leftmenu_result', html); $('#ajax_leftmenu_result .List-pic-waku img').error(function(){ itsmo.changeNoImageSrc(this); }); itsmo.map.setLeftContentSize(); itsmo.ad.im_init(); }; itsmo.sub.map_tab_freewd_blur = function() { itsmo.layout.freewordBlur('freewd','df'); }; itsmo.sub.map_tab_freewd_onfocus = function() { itsmo.layout.freewordFocus('freewd','df'); }; /** 戻るボタン対応 */ itsmo.sub.backBtnChangeHash = function(args) { if (null == args || args.length <= 0) { return; } var s = '#' + args.shift(); $.each(args, function(i, v) { if (typeof v == 'undefined') { v = ''; } else { if(itsmo.vars.g_map_tab_mode!="busDetail"){ v = encodeURIComponent('' + v); }else{ v = decodeURIComponent('' + v); } } s += ',' + v; }); window.location.hash = s; }; itsmo.sub.onHashChange = function(ev) { itsmo.lib.XMLHttpRequest2_abortLast(); itsmo.lib.map_waitclose(); var cmd = 'top'; var s = window.location.hash; if (s.length <= 0) { } else { s = s.substring(1); s = s.split(','); cmd = s.shift(); } s = $.map(s, function(v, i) { return decodeURIComponent(v); }); itsmo.vars.g_map_tab_backBtnFuncNoAdd = true; var ret = false; switch (cmd) { case 'top': itsmo.sub.backBtnTop(); break; case 'addrlist': itsmo.sub.backBtnAddrlist(s); break; case 'hostspot': itsmo.sub.backBtnHostspot(s); break; case 'freeword': itsmo.sub.backBtnFreeword(s); break; case 'freewordaddr': itsmo.sub.backBtnFreewordAddr(s); break; case 'mypage': itsmo.sub.backBtnMypage(s); break; case 'myroute': itsmo.sub.backBtnMyroute(s); break; case 'myspot': itsmo.sub.backBtnMyspot(s); break; case 'baitoru': itsmo.sub.backBtnBaitoru(s); break; case 'season': itsmo.sub.backBtnSeason(s); break; case 'suumo': itsmo.sub.backBtnSuumo(s); break; case 'tabikura': itsmo.sub.backBtnTabikura(s); break; case 'spotDetail': itsmo.sub.backBtnSpotDetail(s); break; case 'addrDetail': itsmo.sub.backBtnAddrDetail(s); break; case 'osusume': itsmo.sub.backBtnOsusume(s); break; case 'genre': itsmo.sub.backBtnGenre(s); break; case 'new_building': itsmo.sub.backBtnNewBuilding(s); break; case 'route': itsmo.sub.backBtnRoute(s); break; case 'bus': itsmo.sub.backBtnBusRoute(s); break; case 'michinoeki': itsmo.sub.backBtnRoadStation(s); break; case 'busDetail': itsmo.sub.backBtnBusDetail(s); break; case 'facnum': itsmo.sub.backBtnFacnum(s); default: ret = true; break; } itsmo.vars.g_map_tab_backBtnFuncNoAdd = false; }; itsmo.sub.backBtnTop = function(args) { itsmo.sub.map_genre(); }; //addrlist,pageType, adcd, rlat, rlon, radcd itsmo.sub.backBtnAddrlist = function(args) { if (args.length == 5) { itsmo.addrlist.showPage(args[0], args[1], args[2], args[3], args[4]); } }; //hostspot,freeword itsmo.sub.backBtnHostspot = function(args) { if (args.length == 1) { itsmo.ad.hotspot.search(args[0]); } }; //freeword,mode,word itsmo.sub.backBtnFreeword = function(args) { if (args.length == 2) { itsmo.vars.g_range_spots_drawin = false; itsmo.freeword.freeword(args[0], args[1]); } else if(args.length == 3 && args[1] == BUS_SEARCH_KEYWORD){ //bus around from facility detail itsmo.vars.g_range_spots_drawin = false; itsmo.freeword.freeword(args[0], args[1], args[2]); } }; //freeword addr,word itsmo.sub.backBtnFreewordAddr = function(args) { if (args.length == 2) { itsmo.vars.g_range_spots_drawin = false; itsmo.freeword.freeword_other(args[1]); } }; //mypage,mode,word,page itsmo.sub.backBtnMypage = function(args) { itsmo.mypage.mypage(args[0]); }; //myroute,id itsmo.sub.backBtnMyroute = function(args) { if (args.length == 1) { itsmo.myroute.myroute_open(args[0]); } }; //myspot itsmo.sub.backBtnMyspot = function(args) { if (args.length == 1) { //myspot,p itsmo.myspot.myspot_disp(args[0]); } else if (args.length == 3) { //myspot,id,fid,gid itsmo.myspot.myspot_open(args[0], args[1], args[2]); } }; //baitoru itsmo.sub.backBtnBaitoru = function(args) { itsmo.near_baitoru.start(); }; //season,mode itsmo.sub.backBtnSeason = function(args) { itsmo.near_season.start(args[0]); }; //suumo itsmo.sub.backBtnSuumo = function(args) { itsmo.near_suumo.start(args); }; //tabikura itsmo.sub.backBtnTabikura = function(args) { itsmo.tabikura.start(); }; //spotDetail,uid,nm,action itsmo.sub.backBtnSpotDetail = function(args) { if (args.length == 3) { itsmo.spot_range.detail_spot(args[0], args[1], args[2]); } }; //addrDetail,path,adcd itsmo.sub.backBtnAddrDetail = function(args) { if (args.length == 2) { itsmo.spot_range.detail_addr(args[0], args[1]); } }; // osusume,shoki_flg,word,cnt,page itsmo.sub.backBtnOsusume = function(args) { itsmo.sub.map_osusume_search(parseInt(args[0], 10), args[1], args[2], args[3]); }; // genre, genre, topGenreName, genreName itsmo.sub.backBtnGenre = function(args) { itsmo.range.range(args[0], args[1], args[2]); }; itsmo.sub.backBtnNewBuilding = function(args) { itsmo.near_new_building.start(); }; itsmo.sub.backBtnRoute = function(args){ if (args.length < 1){ itsmo.myroute.routeTop('car'); } else { itsmo.myroute.routeTop(args[0]); } }; itsmo.sub.backBtnBusRoute = function (args){ if (args.length == 2){ itsmo.map.bus.busRouteSearch(args[0], args[1]); } }; itsmo.sub.backBtnRoadStation = function (args){ if (args.length == 2){ itsmo.map.roadStation.initSearch(args[0], args[1]); } }; itsmo.sub.backBtnBusDetail = function (args){ if (args.length == 2){ itsmo.map.bus.makeDetailBus(args[0], args[1]); } }; itsmo.sub.backBtnFacnum = function (args){ if (itsmo.facilityNight.vars.noResearch == false){ itsmo.facilityNight.initFacility(); itsmo.facilityNight.getFacilities(); } else { itsmo.facilityNight.vars.noResearch = false; } }; //------------------------------------------------ // 色々なイベント //------------------------------------------------ // マウス位置保持 -------------------------------- itsmo.vars.g_map_mouse_x = 0; itsmo.vars.g_map_mouse_y = 0; document.onmousemove = function(e) { if (document.all) { if ( null != window && undefined != window && null != document.body && undefined != document.body && null != window.event && undefined != window.event ){ itsmo.vars.g_map_mouse_x = window.event.clientX + document.body.scrollLeft; itsmo.vars.g_map_mouse_y = window.event.clientY + document.body.scrollTop; } } else { itsmo.vars.g_map_mouse_x = e.clientX; itsmo.vars.g_map_mouse_y = e.clientY; } }; // 貼り付けマップ itsmo.sub.map_linklink = function() { var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); var url = '/map/link.php?'; url += 'lat='+loc.lat+'&lon='+loc.lon+'&lvl='+itsmo.vars.g_map_obj.getZoom(); window.open(url,null); }; // 住宅地図の購入 itsmo.sub.ajax_mapjmapopen = function() { var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); var url = '/map/jmap.php?lat='+loc.lat+'&lon='+loc.lon; $('#ajax_map_window_jmap_book').attr('href' , url + '&mode=book'); $('#ajax_map_window_jmap_download').attr('href' , url+'&mode=download'); var url = 'http://mobile.znet-town.net/jmap/jmap.html?scd=00002&an='+loc.lat+'&ae='+loc.lon+'&geo=tokyo'; $('#ajax_map_window_jmap_mqr').attr('src',itsmo.vars.d_qrimg_url+'?d='+encodeURIComponent(url)); $('#ajax_map_window_jmap_mtext').val(url); $('#ajax_map_window_jmap_mmail').attr('href','mailto:?BODY='+encodeURIComponent(url)); url = 'http://zapl.znet-town.net/znettownm/sp/naviweb.php?cpid=0002&ref=53&lon='+loc.lon+'&lat='+loc.lat; $('#ajax_map_window_jmap_smpqr').attr('src',itsmo.vars.d_qrimg_url+'?d='+encodeURIComponent(url)); $('#ajax_map_window_jmap_smptext').val(url); $('#ajax_map_window_jmap_smpmail').attr('href','mailto:?BODY='+encodeURIComponent(url)); $('#ajax_map_window_jmap_addr').text('住所取得中...'); itsmo.sub.map_getaddr(loc,function(result) { if(result.status == 0) { $('#ajax_map_window_jmap_addr').text(result.items[0].address); } else { $('#ajax_map_window_jmap_addr').text('住所なし'); } },6); itsmo.lib.map_windowopen('ajax_map_window_jmap'); $('#ajax_map_window_jmap .komado-box-w').scrollTop(0); }; // IPリンク吹き出し作成 itsmo.vars.g_map_link_html_o = null; itsmo.vars.g_map_link_tipid_c = null; itsmo.vars.g_map_link_tipid_o = null; itsmo.sub.maplink_set = function(lat, lon, icon) { // ココアイコンのみ作成 itsmo.sub.maplink_tipicon(lat, lon, icon); if (!itsmo.vars.g_map_link_html_o) { itsmo.vars.g_map_link_html_o = $('#maplink_tipo_html').html(); } // 吹き出し+ココアイコン作成 // itsmo.sub.maplink_tipopen(lat, lon, icon, flg); }; // ココアイコンのみ作成(小吹き出し) itsmo.sub.maplink_tipicon = function(lat, lon, icon) { if (icon) { itsmo.vars.g_map_setcursor_lat = lat; itsmo.vars.g_map_setcursor_lon = lon; itsmo.vars.g_map_setcursor_icon = 'link02'; } else { if (lat && lon) { itsmo.vars.g_map_setcursor_lat = lat; itsmo.vars.g_map_setcursor_lon = lon; } else { lat = itsmo.vars.g_map_setcursor_lat; lon = itsmo.vars.g_map_setcursor_lon; } itsmo.vars.g_map_setcursor_icon = 'link02'; } var html = $('#maplink_tipc_html').html(); var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(lat, lon), { html: html, size: itsmo.sub.getHtmlSize(html), offset: new ZDC.Pixel(-12, -34) }); tip.setZindex(itsmo.map.D_TIPZIDX_MAPLINK); itsmo.vars.g_map_link_tipid_c = itsmo.vars.g_map_layer_clickable.add(tip); itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_map_link_tipid_c); }; // 吹き出し+ココアイコン作成(中吹き出し) itsmo.sub.maplink_tipopen = function(lat, lon, icon) { itsmo.map.cancelMapClickEvent(); // itsmo.sub.map_maplink_tipclear(); // 吹き出しデータ設定 if (icon) { itsmo.vars.g_map_setcursor_lat = lat; itsmo.vars.g_map_setcursor_lon = lon; itsmo.vars.g_map_setcursor_icon = 'link02'; } else { if (lat && lon) { itsmo.vars.g_map_setcursor_lat = lat; itsmo.vars.g_map_setcursor_lon = lon; } else { lat = itsmo.vars.g_map_setcursor_lat; lon = itsmo.vars.g_map_setcursor_lon; } itsmo.vars.g_map_setcursor_icon = 'link02'; } // ツールチップ作成 // var html = $('#maplink_tipo_html').html(); var html = itsmo.vars.g_map_link_html_o; html = ''; var point = itsmo.lib.toLatLon(lat, lon); var size = itsmo.sub.getHtmlSize(html); var tip = new ZDC.UserWidget(point, { html: html, size: size, offset: new ZDC.Pixel(-162, -(size.height) + 6) }); tip.setZindex(itsmo.map.D_TIPZIDX_MAPLINK); itsmo.vars.g_map_link_tipid_o = itsmo.vars.g_map_layer_clickable.add(tip); itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_map_link_tipid_o); // if (flg) itsmo.sub.maplink_tipclose(); }; // IPリンク吹き出しclose itsmo.sub.maplink_tipclose = function() { itsmo.map.cancelMapClickEvent(); // itsmo.vars.g_map_layer_clickable.hideById(itsmo.vars.g_map_link_tipid_o); itsmo.sub.map_maplink_tipclear(); itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_map_link_tipid_c); }; // IPリンク吹き出しclear itsmo.sub.map_maplink_tipclear = function() { if(itsmo.vars.g_map_link_tipid_o == null) return; itsmo.map.cancelMapClickEvent(); itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_map_link_tipid_o); itsmo.vars.g_map_link_tipid_o = null; }; // IPリンク アイコン+吹き出し Allclear itsmo.sub.map_maplink_tipallclear = function() { itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_map_link_tipid_c); itsmo.vars.g_map_link_tipid_c = null; itsmo.vars.g_map_link_html_o = null; itsmo.sub.map_maplink_tipclear(); }; // IPリンク吹き出し作成(住所系) itsmo.sub.set_maplink_pre = function(name, addr, lat, lon, zipcode) { var sethtml_balo = $('#maplink_tipo_html'); sethtml_balo.find('#maplink-addr').html(addr); sethtml_balo.find('#maplink-zipcode').html('〒' + zipcode); //route // 2017/04/12 Phuoc Le - #8434 Add dataLayer var gaPre = "dataLayer.push(['_trackEvent', 'Maps', 'RouteSearch', 'RouteSearch_"; var gaPost = "_ここアイコン']); return false;" var jsStart = "itsmo.vars.g_myroute_eventFlg=true;itsmo.myroute.hereStart('" + addr + "', {lat:" + lat + ",lon:" + lon + "});itsmo.sub.map_maplink_tipclear();" var jsGoal = "itsmo.vars.g_myroute_eventFlg=true;itsmo.myroute.hereGo('" + addr + "', {lat:" + lat + ",lon:" + lon + "});itsmo.sub.map_maplink_tipclear();" var jsStopOver = "itsmo.vars.g_myroute_eventFlg=true;itsmo.myroute.hereByway('" + addr + "', {lat:" + lat + ",lon:" + lon + "});itsmo.sub.map_maplink_tipclear();" sethtml_balo.find('#maplink-here-start').attr('onclick', jsStart + gaPre + 'Start' + gaPost); sethtml_balo.find('#maplink-here-go').attr('onclick', jsGoal + gaPre + 'Goal' + gaPost); sethtml_balo.find('#maplink-here-stopover').attr('onclick', jsStopOver + gaPre + 'StopOver' + gaPost); //share var jsShare = "itsmo.map.Sharing.getInstance().show(" + lat + "," + lon + ",'" + name + "','" + addr + "');" sethtml_balo.find('#maplink-share').attr('onclick', jsShare); // 登録 var click_js = sethtml_balo.find('#maplink-reg').attr('onclick'); var arr_click_js = click_js.split(';'); $.each(arr_click_js, function (key, val) { if (val.indexOf('other_addmyspot') > 0) { click_js = "itsmo.myspot.other_addmyspot(" + lat + ", " + lon + ", '" + addr + "', '', '', '', '', '0000000000','','','',true)"; arr_click_js[key] = click_js; return false; } }); click_js = arr_click_js.join(';'); sethtml_balo.find('#maplink-reg').attr('onclick', click_js); // reg home var click_js = sethtml_balo.find('#maplink-home').attr('onclick'); var arr_click_js = click_js.split(';'); $.each(arr_click_js, function (key, val) { if (val.indexOf('home_add') > 0) { click_js = "itsmo.mypage.mypage('home_add', {lat: " + lat + ", lon: " + lon + "});"; arr_click_js[key] = click_js; return false; } }); click_js = arr_click_js.join(';'); sethtml_balo.find('#maplink-home').attr('onclick', click_js); itsmo.vars.g_map_link_html_o = sethtml_balo.html(); itsmo.sub.maplink_set(lat, lon); }; // 地図最適化用アイコン作成(小吹き出し) itsmo.sub.set_tooltip_opt_s = function(tipHtml, data) { var uid = data.uid; var div_id = 'tip_c_' + uid; tipHtml = '
' + tipHtml + '
'; var sz = new ZDC.WH(22, 34); var offset = new ZDC.Pixel(-12, -34); var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(data.lat, data.lon), { html: tipHtml, size: sz,//itsmo.sub.getHtmlSize(tipHtml), offset: offset }); tip.setZindex(itsmo.map.D_TIPZIDX_RANGE); data.noHideTip = true; data.tip_id = itsmo.vars.g_map_layer_clickable.add(tip); itsmo.vars.g_map_tipid_clickable_s[uid] = data; itsmo.vars.g_map_layer_clickable.showById(data.tip_id); return div_id; }; // 吹き出し+地図最適化用アイコン作成(中吹き出し) itsmo.vars.g_map_tipid_clickable_open = null; itsmo.sub.map_clickable_tipopen_opt = function(html, data) { // 中吹き出し削除 var s = itsmo.vars.g_map_layer_clickable.get(itsmo.vars.g_map_tipid_clickable_open); if (s && s.content) { var close_tip_id = $(s.content.html).attr('id'); itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_map_tipid_clickable_open); close_tip_id = close_tip_id.slice(6); var close_data = itsmo.vars.g_map_tipid_clickable_s[close_tip_id]; // 小吹き出し表示 itsmo.vars.g_map_layer_clickable.showById(close_data.tip_id); } var div_id = 'tip_o_' + data.uid; html = '
' + html + '
'; // ツールチップ作成 var sz = itsmo.sub.getHtmlSize(html); var offset = new ZDC.Pixel(-12, -34); if (typeof data.tooltipOffset !== 'undefined') { offset = data.tooltipOffset; } else if (typeof data.tooltipOffsetBottomCenter !== 'undefined') { offset = new ZDC.Pixel(-sz.width / 2 + data.tooltipOffsetBottomCenter[0], -sz.height + data.tooltipOffsetBottomCenter[1]); } else { offset.x = -sz.width / 2 + 18; offset.y -= sz.height; } var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(data.lat, data.lon), { html: html, size: sz, offset: offset }); tip.setZindex(itsmo.map.D_TIPZIDX_RANGE + 3); itsmo.vars.g_map_tipid_clickable_open = itsmo.vars.g_map_layer_clickable.add(tip); itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_map_tipid_clickable_open); if (data.tip_id) { if (data.noHideTip) { } else { itsmo.vars.g_map_layer_clickable.hideById(data.tip_id); } } // bind $('#' + div_id + ' a.icon-koko-pink').click(function() { itsmo.sub.set_tooltip_aroundclose(data.tip_id); }); // bind $('#' + div_id + ' a.btn-close').click(function() { itsmo.sub.set_tooltip_aroundclose(data.tip_id); }); $("#"+ div_id +" span[class^='List-pic-waku'] img").error(function(){ itsmo.changeNoImageSrc(this); }); }; // 地図最適化用周辺アイコン作成(小吹き出し) itsmo.sub.set_tooltip_around = function(tipHtml, data) { var clat = data.lat; var clon = data.lon; var uid = data.uid; var div_id = 'tip_c_' + uid; tipHtml = '
' + tipHtml + '
'; var sz = new ZDC.WH(18, 26); var offset = new ZDC.Pixel(-9, -23); var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(clat, clon), { html: tipHtml, size: sz, offset: offset }); var id = itsmo.vars.g_map_layer_clickable.add(tip); data['tip_id'] = id; itsmo.vars.g_map_tipid_clickable_s[uid] = data; itsmo.vars.g_map_layer_clickable.showById( id ); return div_id; }; // 地図最適化用周辺アイコン ツールチップclose itsmo.sub.set_tooltip_aroundclose = function(tip_id) { if(itsmo.vars.g_map_tipid_clickable_open == null) return; itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_map_tipid_clickable_open); itsmo.vars.g_map_layer_clickable.showById(tip_id); itsmo.vars.g_map_tipid_clickable_open = null; }; //------------------------------------------------ // クリック地図 //------------------------------------------------ itsmo.sub.map_clickopen = function() { var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); var url = '/map/mapclick.htm?'; url += 'lat='+loc.lat+'&lon='+loc.lon+'&lvl='+itsmo.vars.g_map_obj.getZoom(); if(itsmo.vars.g_map_setcursor_lat) url += '&slat='+itsmo.vars.g_map_setcursor_lat +'&slon='+itsmo.vars.g_map_setcursor_lon +'&sicn='+itsmo.vars.g_map_setcursor_icon; location.href = url; }; //------------------------------------------------ // 英字地図 //------------------------------------------------ itsmo.sub.map_engopen = function() { var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); var url = '/map/mapeng.htm?'; url += 'lat='+loc.lat+'&lon='+loc.lon+'&lvl='+itsmo.vars.g_map_obj.getZoom(); window.open(url,null); }; //------------------------------------------------ // 印刷 //------------------------------------------------ itsmo.sub.map_printopen = function() { var url = 'https://biz.its-mo.com' + '/biz/map/?'; var i = itsmo.vars.g_map_search_location; url += 'lat='+i.lat+'&lon='+i.lon+'&lvl='+itsmo.vars.g_map_search_scale; window.open(url, '_blank'); }; //------------------------------------------------ // 住宅地図印刷 //------------------------------------------------ itsmo.sub.residential_map_printopen = function(lat,lon) { var i = itsmo.vars.g_map_search_location; if(!lat) lat = i.lat; if(!lon) lon = i.lon; var url = 'https://biz.its-mo.com' + '/biz/map/fullscreen/?'; url += 'lat='+lat+'&lon='+lon+'&size=A3&color=CD&pageDirection=VT©able=DA&lvl=15'; window.open(url, '_blank'); }; //------------------------------------------------ // 天気 //------------------------------------------------ itsmo.sub.map_weatheropen = function() { var url='/weather.html?'; var i = itsmo.vars.g_map_search_location; url += 'lat='+i.lat+'&lon='+i.lon; window.open(url,null); }; //------------------------------------------------ // 住所逆引き表示 //------------------------------------------------ itsmo.sub.map_getaddr = function(loc,func,lvl) { if(!lvl) lvl = 3; var partsnum = lvl + 1; loc = itsmo.lib.toLatLon(loc); ZDC.Search.getAddrByLatLon({ latlons: [loc] }, function(status, result) { var items = []; if ('000' == status.code && result.length >= 1) { $.each(result, function(i, v) { if (v.address.parts.length <= partsnum) { s = v.address.text; } else { s = v.address.parts; s.splice(partsnum); s = s.join(''); } items.push({ addrCode: v.address.code, address: s }); }); } var res = { status: '000' == status.code ? 0 : 2, recCount: result.length, hitCount: result.length, rest: false, items: items }; func(res); }); }; //------------------------------------------------ // 天気表示 //------------------------------------------------ itsmo.sub.map_getweather = function() { var tenki = new ZdcNearTenki3Hour(); var opts = new ZdcNearTenki3HourOptions(); var i = itsmo.vars.g_map_search_location; opts.lon = i.lon; opts.lat = i.lat; opts.pointFlg = '2'; ZdcEvent.addListener(tenki, 'end', itsmo.sub.map_getweather_result); tenki.search(opts); }; itsmo.sub.map_getweather_result = function(result) { if(result.status != '0') return; var now = new Date(); var i = Math.floor(now.getHours() / 3) - 2; if(i < 0) i = 0; document.getElementById("ajax_weatherimg").src = result.items[i].tenkiIconUrl; }; //------------------------------------------------ // nextリンク //------------------------------------------------ itsmo.sub.map_next_open = function() { var i = itsmo.vars.g_map_search_location; var url = 'http://zen-in.zenrin.co.jp/?'; url += 'lat='+i.lat+'&lon='+i.lon+'&lvl='+itsmo.vars.g_map_search_scale; window.open(url,null); }; //------------------------------------------------ // 再検索リンク設定 //------------------------------------------------ itsmo.sub.set_genre_research = function() { if(itsmo.vars.g_freeword_beforeMode != 'range'){ return false; } if(itsmo.vars.g_freeword_beforeGenre == 'suumo'){ var href = 'itsmo.near_suumo.searchSubmit()'; var genre = 'マンション・不動産物件'; var icL= '09'; var icM= '001'; var icS= '0000'; //} else if(itsmo.vars.g_freeword_beforeGenre == 'osusume') { // おすすめの再検索 // itsmo.sub.map_osusume_search(null,itsmo.vars.osusume_word); } else if(itsmo.vars.g_freeword_beforeGenre == 'baitoru') { // アルバイトの再検索 var href = 'itsmo.near_baitoru.search()'; var genre = 'バイト・お仕事検索'; var icL= '09'; var icM= '003'; var icS= '0002'; } else if(itsmo.vars.g_freeword_beforeGenre == 'tabikura') { // 旅くらの再検索 var href = 'itsmo.tabikura.search()'; var genre = 'ホテル・旅館プラン検索'; var icL= '09'; var icM= '006'; var icS= '0000'; } else if(itsmo.vars.g_freeword_beforeGenre == itsmo.near_season.mode){ // 季節特集の再検索 var href = 'itsmo.near_season.cond_search()'; switch(itsmo.vars.g_freeword_beforeGenre){ case 'koyo': var genre = '紅葉情報'; var icL= '09'; var icM= '007'; var icS= '0001'; break; case 'hanabi': var genre = '花火大会情報'; var icL= '09'; var icM= '007'; var icS= '0000'; break; case 'spring': var genre = '桜情報'; var icL= '09'; var icM= '007'; var icS= '0014'; break; case 'illumi': var genre = 'イルミ情報'; var icL= '09'; var icM= '007'; var icS= '0002'; break; } } else { // それ以外の再検索 var href = 'itsmo.range.range_research()'; //var genre = itsmo.vars.g_range_topGenreName; var prm = 'cd=' + encodeURIComponent(itsmo.vars.g_freeword_beforeGenre); var func = function(result){ if(result != 'nodata'){ var cd = itsmo.vars.g_freeword_beforeGenre.split(':'); var icL= cd[0].substr(0, 2); var icM= cd[0].substr(2, 3); var icS= cd[0].substr(5, 4); var searchHtml = '
' + '' + '
'; $('#ajax_leftmenu_result .map-ttl-h1-sect').after( searchHtml ); $('#ajax_leftmenu_result #main_spot').before( searchHtml ); } }; itsmo.lib.XMLHttpRequest2_send('/map/ajax_getGenre.php',func,'GET',prm,'text'); return false; } var searchHtml = '
' + '' + '
'; $('#ajax_leftmenu_result .map-ttl-h1-sect').after( searchHtml ); $('#ajax_leftmenu_result #main_spot').before( searchHtml ); }; itsmo.sub.genre_research_clear = function() { itsmo.vars.g_freeword_beforeMode = ''; itsmo.vars.g_freeword_beforeGenre = ''; }; if (typeof itsmo.map == 'undefined') { itsmo.map = {}; } itsmo.map.UserLayer = function() { this.setZIndex(100); this._data = []; }; itsmo.map.UserLayer.prototype.setZIndex = function(n) { this.zIndexNum = n; }; itsmo.map.UserLayer.prototype.removeById = function(id) { if (id >= 0 && id < this._data.length) { } else { return false; } var n = this._data[id]; if (null == n) { return false; } this._data[id] = null; itsmo.vars.g_map_obj.removeWidget(n); return true; }; itsmo.map.UserLayer.prototype.clear = function() { $.each(this._data, function(i, v) { if (null != v) { itsmo.vars.g_map_obj.removeWidget(v); } }); this._data = []; }; itsmo.map.UserLayer.prototype.clearMarker = function() { for (var i = 0; i < this._data.length; ++i) { var v = this._data[i]; if (null == v || !v.isMarker) { continue; } this.setVisibleById(i, false); itsmo.vars.g_map_obj.removeWidget(v); this._data[i] = null; } }; itsmo.map.UserLayer.prototype.get = function(id) { if (id >= 0 && id < this._data.length) { } else { return null; } return this._data[id]; }; itsmo.map.UserLayer.prototype.add = function(widget, isMarker) { var n = $.inArray(null, this._data); if (n < 0) { n = this._data.length; this._data.push(widget); } else { this._data[n] = widget; } widget.isMarker = !!isMarker; itsmo.vars.g_map_obj.addWidget(widget); return n; }; itsmo.map.UserLayer.prototype.showById = function(id) { return this.setVisibleById(id, true); }; itsmo.map.UserLayer.prototype.showAll = function() { for (var i = 0; i < this._data.length; ++i) { this.setVisibleById(i, true); } }; itsmo.map.UserLayer.prototype.hideById = function(id) { return this.setVisibleById(id, false); }; itsmo.map.UserLayer.prototype.removeById = function(id) { var v = this.get(id); if (null == v) { return; } itsmo.vars.g_map_obj.removeWidget(v); this._data[id] = null; }; itsmo.map.UserLayer.prototype.setVisibleById = function(id, isShow) { if (id >= 0 && id < this._data.length) { } else { return false; } var n = this._data[id]; if (null == n) { return false; } if (isShow) { if (n instanceof ZDC.Marker || n instanceof ZDC.Polyline) { n.visible(); } else { n.open(); } } else { if (n instanceof ZDC.Marker || n instanceof ZDC.Polyline) { n.hidden(); } else { n.close(); } } return true; }; itsmo.vars.g_range_request = null; //条件 itsmo.vars.g_range_genre = null; itsmo.vars.g_range_page = 1; itsmo.vars.g_range_cnt = 10; itsmo.vars.g_range_word = null; itsmo.vars.g_range_cancel = null; itsmo.vars.g_range_flags = ''; itsmo.vars.g_range_cond_reset = false; // reset 中は true。 itsmo.vars.g_range_flag_rowcnt = 10; // 簡易検索欄で使用する条件 itsmo.vars.g_range_flag_gsort = 'near'; // 簡易検索欄で使用する条件 itsmo.vars.g_range_flags_cond = {}; itsmo.vars.g_range_topGenreName = ''; itsmo.vars.g_range_genreName = ''; //表示 itsmo.vars.g_range_tipid = []; itsmo.vars.g_range_myspot = []; itsmo.vars.g_range_opentip = null; itsmo.range = {}; itsmo.range.STR_PLEASE_SELECT = '選択してください'; // 初期化 itsmo.range.init = function() { $('#flg_freewd').keypress(function(e) { if (13 == e.which) { itsmo.range.cond_submit(); } }); }; // itsmo.range.range = function(genre, topGenreName, genreName) { itsmo.range.cond_reset(); itsmo.vars.g_range_genre = genre; itsmo.vars.g_range_word = null; itsmo.vars.g_range_page = 1; if (topGenreName) itsmo.vars.g_range_topGenreName = topGenreName; if (genreName) itsmo.vars.g_range_genreName = genreName; itsmo.vars.g_range_flags = 'gsort=' + itsmo.vars.g_range_flag_gsort; itsmo.vars.g_range_cnt = itsmo.vars.g_range_flag_rowcnt; var e = $("#ajax_range_condition input[name='flags']"); e.val('0'); e.filter('#flg_gsort').val(itsmo.vars.g_range_flag_gsort); e.filter('#flg_rowcnt').val('' + itsmo.vars.g_range_flag_rowcnt); e.filter('#flg_g_min_yosan').val(''); e.filter('#flg_g_max_yosan').val(''); if (itsmo.vars.g_home_p) { // 自宅~現在の地図中心との距離 var i = itsmo.lib.toLatLon(itsmo.vars.g_home_p); itsmo.vars.g_dist = ZDC.getLatLonToLatLonDistance(i, itsmo.lib.toLatLon(itsmo.vars.g_map_search_location)); } itsmo.range.range_search('genre', ['genre', genre, topGenreName, genreName]); }; /* itsmo.range.range_freeword = function(word, result) { itsmo.vars.g_range_genre = 'freeword'; itsmo.vars.g_range_word = word; itsmo.vars.g_range_page = 1; itsmo.vars.g_range_topGenreName = ''; itsmo.vars.g_range_genreName = ''; if(result == null) { itsmo.range.range_search(); } else { // 主にフリーワードからの分岐用 itsmo.sub.map_tab_change('range'); itsmo.range.range_search_result(result); } }; */ // itsmo.range.range_search = function(act, fn) { if(itsmo.vars.g_range_genre == null) return; //alert('bandodebug:itsmo.range.range_search() itsmo.vars.g_range_genre = '+itsmo.vars.g_range_genre+' & itsmo.vars.g_range_word = '+itsmo.vars.g_range_word); itsmo.sub.map_tab_change('range', fn); // ajax通信 var i = itsmo.vars.g_map_search_location; var prm = 'lat=' + i.lat + '&lon=' + i.lon + '&minx=' + itsmo.vars.g_map_search_box.minx + '&miny=' + itsmo.vars.g_map_search_box.miny + '&maxx=' + itsmo.vars.g_map_search_box.maxx + '&maxy=' + itsmo.vars.g_map_search_box.maxy + '&page=' + itsmo.vars.g_range_page + '&cnt=' + itsmo.vars.g_range_cnt + '&act=' + act; if(itsmo.vars.g_range_genre != null) prm += '&genre=' + encodeURIComponent(itsmo.vars.g_range_genre); if(itsmo.vars.g_range_topGenreName != null) prm += '&topGenreName=' + encodeURIComponent(itsmo.vars.g_range_topGenreName); if(itsmo.vars.g_range_genreName != null) prm += '&genreName=' + encodeURIComponent(itsmo.vars.g_range_genreName); if(itsmo.vars.g_range_word != null) prm += '&word=' + encodeURIComponent(itsmo.vars.g_range_word); prm += '&dist=' + encodeURIComponent(itsmo.vars.g_dist); prm += '&byway=' + encodeURIComponent(itsmo.vars.g_byway); // 1:レコメンド経由 if ('' != itsmo.vars.g_range_flags) { prm += '&' + itsmo.vars.g_range_flags; } itsmo.lib.map_waitopen(); if(itsmo.vars.g_range_request != null) itsmo.lib.XMLHttpRequest2_abort(itsmo.vars.g_range_request); itsmo.vars.g_range_request = itsmo.lib.XMLHttpRequest2_send('/map/ajax_range.php',itsmo.range.range_search_result,'GET',prm); }; itsmo.range.range_search_result = function(result) { //if( typeof( result.responseXML.normalize ) != 'undefined') result.responseXML.normalize();// FFの4096byte制限対策 //itsmo.range.range_tipclear(); itsmo.vars.g_range_request = null; // エラー処理 result = $(result); var err = result.find('err').text(); if(err != 0) { //alert('エラー '+err); return; } //チップクリア itsmo.sub.map_clickable_TipAllClear(1); $(result).find('items').each(function() { var prm = {}; prm['uid'] = $(this).find('uid').text(); prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['nm'] = $(this).find('nm').text(); prm['short_nm'] = $(this).find('short_nm').text(); prm['gnr_nm'] = $(this).find('gnr_nm').text(); prm['gnr_cd'] = $(this).find('gnr_cd').text(); prm['tip_c'] = $(this).find('tip_c').text(); prm['tip_o'] = $(this).find('tip_o').text(); var html = prm['tip_c']; var div_id = itsmo.sub.set_tooltip_s(html,prm); }); // 配置 //itsmo.vars.g_range_tipid = []; //itsmo.vars.g_range_myspot = []; itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml( result.find('left_html').text() ); $("#ajax_leftmenu_result input:text[name='keyword']").clearField().blur().keypress(function(e) { if (13 == e.which) { itsmo.range.openGenre_search(); } }); // 簡易絞込を調整。 var i = itsmo.vars.g_range_flags.split('&'); var sortnum = null; i = $.map(i, function(v, n) { v = v.split('='); if ('gsort' == v[0]) { sortnum = v[1]; return null; } return v[0]; }); var e = $("#ajax_leftmenu_result div.sibo-rich span.select-joken span[class^='ic-tell-']"); $.each(i, function(n, v) { if ('' == v) { return; } v = "[name='" + v + "']"; v = e.filter(v); if (v.length >= 1) { v.parent().click(); } }); if (null != sortnum) { e = $("#ajax_leftmenu_result div.sibo-rich ul li a[rel='" + sortnum + "']"); if (e.length >= 1) { e.click(); } } itsmo.range.show_simple_cond(); // 住所を取得。 ZDC.Search.getAddrByLatLon({ latlons: [itsmo.lib.toLatLon(itsmo.vars.g_map_search_location)] }, itsmo.range.range_event_condition_address); itsmo.vars.g_range_condhtml = result.find('condhtml').text(); //itsmo.map.map_resize(); // インタレストマッチ広告を挿入 itsmo.sub.map_getaddr(itsmo.vars.g_map_search_location, itsmo.range.im_getaddr, 1); // ココ吹き出し再表示 // if (itsmo.vars.g_maplink_set) itsmo.sub.maplink_tipopen(); }; itsmo.range.im_getaddr = function(result) { var pref = '', addr = ''; if(result.status == 0) { pref = result.items[0].addrCode; addr = result.items[0].address; } var gnrnm = $('#ajax_facet_genre_nm_b').text(); var s = $('#ajax_facet_genre_nm_b + span').text().split(',', 2); if ('' != s[1]) { gnrnm = s[1]; } else if ('' != s[0]) { gnrnm = s[0]; } s = '0000' + parseInt(pref.substring(0, 5), 10); s = s.substring(s.length - 5); var id = 'ad' + s; var type = 'mapContents'; var freewd = gnrnm + ' ' + addr; var num = 1; var url = itsmo.ad.make_im_url(num, freewd, id, type); $.ajax({ type: "GET", url: url, cache: false, dataType: "jsonp", async: false, timeout: 60000, error: function(xhr, textStatus, errorThrown) { // TODO:エラーの場合のログは? }, success: itsmo.range.im_getaddr_set }); }; itsmo.range.im_getaddr_set = function(json) { var e = $('#ajax_leftmenu_result div.scrollable div.List-kekka:first'); json = json['Results']['ResultSet']; e.find('a:first').attr('href', json['Listing'][0]['ClickUrl']); e.find('span > strong').text(json['Listing'][0]['title']); e.find('span.List-pr-txt, span.tmp-List-pr-txt').text(json['Listing'][0]['description']); e.find('span.List-pr-url').text(json['Listing'][0]['siteHost']); e.find('a.kekka-pr').attr('href', json['Label']['InquiryUrl']).text(json['Label']['LabelText']); e.show(); }; itsmo.range.range_page = function(page) { itsmo.vars.g_range_page = page; itsmo.range.range_search('page'); }; itsmo.range.range_research = function() { itsmo.vars.g_range_page = 1; if(itsmo.vars.g_range_genre == null) return; itsmo.range.range_search('map', ['genre', itsmo.vars.g_range_genre, itsmo.vars.g_range_topGenreName, itsmo.vars.g_range_genreName]); }; itsmo.range.range_event_condition_address = function(status, result) { var add = ''; if ('000' == status.code && typeof result[0] !== 'undefined') { add = result[0].address.parts.slice(0, 4); add = add.join('') + ' 付近'; } $('#ajax_range_condition span.c-search-tbl-area-add:first').text(add); }; //-------------------------------------------------------------------------------------------------- // 移動 //-------------------------------------------------------------------------------------------------- itsmo.range.range_move = function(lon,lat) { itsmo.vars.g_range_cancel = 1; itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); } //------------------------------------------------ itsmo.range.range_tipopen = function(uid) { if(uid == null || uid == ''){ return false;} var data = itsmo.vars.g_map_tipid_clickable_s[uid]; var div_id = itsmo.sub.map_clickable_tipopen(data.tip_o,data); }; itsmo.range.range_tipclear = function() { /* cnt = itsmo.vars.g_range_tipid.length; if(cnt == 0) return; for(var i = 0;i < cnt;i ++) { if(itsmo.vars.g_range_tipid[i] != null) { itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_range_tipid[i]); } } itsmo.vars.g_range_tipid = []; itsmo.vars.g_range_opentip = null; */ //チップクリア itsmo.sub.map_clickable_TipAllClear(); itsmo.vars.g_range_myspot = []; }; itsmo.range.range_stop = function() { itsmo.range.range_tipclear(); itsmo.vars.g_range_genre = null; }; //------------------------------------------------ itsmo.range.range_detail_disp = function(url) { window.open(url,'_blank'); return; }; itsmo.range.openGenre_last_type = false; itsmo.range.openGenre = function(isMid) { itsmo.range.openGenre_close(); if (itsmo.range.openGenre_last_type == isMid && $('#ajax_facet_genre_div').is(':visible')) { return false; } var i = [$('#ajax_facet_genre_b').val()]; var j = []; var xml = 'g2'; if (!isMid) { if ($('#ajax_facet_genre_selbox_s').attr('class').indexOf('-off') >= 0) { return false; } i.push($('#ajax_facet_genre_m').val()); j.push($('#ajax_facet_genre_div').parent().find('div.sibo-waku-pull span:first').text()); xml = 'g3'; } i = i.join(':'); j = j.join(' '); var url = '/c/' + encodeURIComponent(j) + '/' + i + '/'; i = itsmo.vars.g_map_search_location; var prm = 'lat=' + i.lat + '&lon=' + i.lon + '&minx=' + itsmo.vars.g_map_search_box.minx + '&miny=' + itsmo.vars.g_map_search_box.miny + '&maxx=' + itsmo.vars.g_map_search_box.maxx + '&maxy=' + itsmo.vars.g_map_search_box.maxy + '&xml=' + xml + '&openGenre=true' ; $('#ajax_leftmenu_result div.sibo-waku div.sibo-loading').fadeIn('fast'); itsmo.range.openGenre_last_type = isMid; itsmo.lib.XMLHttpRequest2_send(url, itsmo.range.openGenre_callback, 'GET', prm); }; itsmo.range.openGenre_result = []; itsmo.range.openGenre_result_page = 0; itsmo.range.openGenre_result_company = []; itsmo.range.openGenre_result_company_page = 0; itsmo.range.openGenre_callback = function(result) { itsmo.range.openGenre_close(); result = $(result); // $('#ajax_facet_genre_seltitle').text(result.find('title').text()); $('#ajax_facet_genre_seltitle').text($('#ajax_facet_genre_nm_b').text()); result = result.find('data'); var e = $('#ajax_facet_genre_sel'); e.find('ul').hide(); e.find('div:eq[1]').hide(); do { e.find('ul').hide(); if (result.length <= 0) { $('#ajax_facet_genre_sel div:first').hide().next().show(); e.find('ul:eq(1)').show(); break; } // 企業を集める。 itsmo.range.openGenre_result = []; itsmo.range.openGenre_result_page = 0; itsmo.range.openGenre_result_company = []; itsmo.range.openGenre_result_company_page = 0; var bl_set_reset_anchor = false; result.each(function(i, domEle) { domEle = $(domEle); var nm = domEle.find('nm').text(); var val = domEle.find('val').text(); var cnt = domEle.find('cnt').text(); var vals = val.split(':'); if (vals.length == 3 && vals[2].substring(5, 6) == '5') { itsmo.range.openGenre_result_company.push([nm, val, cnt]); } else { itsmo.range.openGenre_result.push([nm, val, cnt]); } if (!bl_set_reset_anchor) { bl_set_reset_anchor = true; vals[vals.length - 1] = ''; val = vals.join(':'); $('#ajax_facet_genre_seltitle').parent().attr('name', val); } }); $('#ajax_facet_genre_sel div:first').show().next().hide(); itsmo.range.openGenre_show(false); itsmo.range.openGenre_show(true); break; } while(false); $('#ajax_facet_genre_div').fadeIn('fast'); }; itsmo.range.openGenre_show = function(isCompany) { if (isCompany) { var num = 5; var start = num * itsmo.range.openGenre_result_company_page; if (start >= itsmo.range.openGenre_result_company.length) { start = 0; itsmo.range.openGenre_result_company_page = 0; } var offset = 0; var f = $('#ajax_facet_genre_sel ul:eq(1)'); f.hide().find('li').hide(); var div = $('#ajax_facet_genre_sel div:eq(1)').hide(); $.each(itsmo.range.openGenre_result_company, function(i, val) { if (i < start || i >= (start + num)) { return; } var nm = val[0]; var cnt = val[2]; var val = val[1]; var g = f.find('li:eq(' + (offset++) + ')').show().find('a'); g.html(nm).attr('name', val); }); if (offset >= 1) { f.show(); div.show(); if (itsmo.range.openGenre_result_company.length > num) { i = f.find('li:last'); j = i.find('strong'); j.hide(); if ((num * itsmo.range.openGenre_result_company_page + num) >= itsmo.range.openGenre_result_company.length) { j.eq(1).show(); } else { j.eq(0).show(); } i.show(); } } } else { var num = itsmo.range.openGenre_result_company.length >= 1 ? 5 : 10; var start = num * itsmo.range.openGenre_result_page; if (start >= itsmo.range.openGenre_result.length) { start = 0; itsmo.range.openGenre_result_page = 0; } var offset = 0; var f = $('#ajax_facet_genre_sel ul:first'); f.hide().find('li').hide(); $.each(itsmo.range.openGenre_result, function(i, val) { if (i < start || i >= (start + num)) { return; } var nm = val[0]; var cnt = val[2]; var val = val[1]; var g = f.find('li:eq(' + offset + ')').show().find('a'); offset++; g.html(nm).attr('name', val); }); if (offset >= 1) { f.show(); if (itsmo.range.openGenre_result.length > num) { i = f.find('li:last'); j = i.find('strong'); j.hide(); if ((num * itsmo.range.openGenre_result_page + num) >= itsmo.range.openGenre_result.length) { j.eq(1).show(); } else { j.eq(0).show(); } i.show(); } } } }; itsmo.range.openGenre_next = function(isCompany) { if (isCompany) { itsmo.range.openGenre_result_company_page++; } else { itsmo.range.openGenre_result_page++; } itsmo.range.openGenre_show(isCompany); }; itsmo.range.openGenre_close = function() { $('#ajax_facet_genre_div').fadeOut('fast'); $("#ajax_leftmenu_result div.sis-search-paka-genre[name^='gnr']").fadeOut('fast'); $('#ajax_leftmenu_result div.sibo-waku div.sibo-loading').fadeOut('fast'); }; itsmo.range.openGenre_select = function(e) { itsmo.range.openGenre_close(); e = $(e); var nm = e.text(); var i = nm.indexOf('('); if (i >= 0) { nm = nm.substring(0, i); } var id = itsmo.vars.g_range_genre = e.attr('name'); id = id.split(':'); var is_clear = (id[id.length - 1].length <= 0); if (is_clear) { // 末尾の : を取り除く。 itsmo.vars.g_range_genre = itsmo.vars.g_range_genre.substring(0, itsmo.vars.g_range_genre.length - 1); } $('#ajax_facet_genre_b').val(id.shift()); if (id.length == 1) { e = $('#ajax_facet_genre_selbox span.box-s:first'); } else { e = $('#ajax_facet_genre_selbox_s'); } e.text(is_clear ? itsmo.range.STR_PLEASE_SELECT : itsmo.range.limitString(nm, 9)); if (id.length == 1) { $('#ajax_facet_genre_m').val(id.shift()); $('#ajax_facet_genre_s').val(''); i = $('#ajax_facet_genre_selbox_s'); e = '-off'; if (is_clear) { } else if (i.attr('class').indexOf(e)) { e = ''; } else { e = null; } if (null != e) { i.attr('class', 'box-s' + e); } i.text(is_clear ? '' : itsmo.range.STR_PLEASE_SELECT); } else { $('#ajax_facet_genre_s').val(id[id.length - 1]); } itsmo.range.show_simple_cond(); }; itsmo.range.openGenre_search = function() { var s = itsmo.vars.g_range_flags_cond; itsmo.range.cond_reset(); itsmo.vars.g_range_flags_cond = s; var gnrb = $('#ajax_facet_genre_b').val(); var gnrm = $('#ajax_facet_genre_m').val(); itsmo.vars.g_range_topGenreName = '' != gnrb ? $('#ajax_facet_genre_nm_b').text() : ''; itsmo.vars.g_range_genreName = '' != gnrm ? $('#ajax_facet_genre_m_nm').text() : ''; itsmo.vars.g_range_word = ''; gnrb = $("#ajax_leftmenu_result div.sibo-waku-waku div:visible[class^='sibo-'] input:text[name='keyword']"); if (gnrb.length >= 1) { gnrb = gnrb.eq(0); gnrm = gnrb.attr('rel'); gnrb = gnrb.val(); itsmo.vars.g_range_word = gnrm == gnrb ? '' : gnrb; } var d = [], usedgnr = []; $("#ajax_leftmenu_result div.sibo-rich:visible span.select-joken:visible span[class^='ic-tell-']").each(function() { var e = $(this); var s = e.parent().attr('name'); if (undefined != s) { usedgnr.push(s.substring(3)); } s = e.attr('class'); var n = Math.max(0, s.length - 4); var v = e.attr('name'); if ('-off' == s.substring(n).toLowerCase()) { itsmo.vars.g_range_flags_cond[v] = '0'; return; } d.push(v + '=1'); itsmo.vars.g_range_flags_cond[v] = null; }); for (j in itsmo.vars.g_range_flags_cond) { if ('gsort' == j) { continue; } var s = itsmo.vars.g_range_flags_cond[j]; if (null != s && '0' != s) { d.push(j + '=' + encodeURIComponent(s)); } } $("#ajax_leftmenu_result div.sibo-rich:visible span.box-s[name^='sort']").each(function() { usedgnr.push($(this).attr('name').substring(4)); }); usedgnr = $.unique(usedgnr); // ソート条件があるか? var usesort = itsmo.vars.g_range_flag_gsort; $.each(usedgnr, function(i, v) { if (null == v || undefined == v || '' == v) { return; } v = "#ajax_leftmenu_result div.sibo-rich span.box-s[name='sort" + v + "']"; v = $(v).next('input:hidden'); if (v.length <= 0) { return; } usesort = v.val(); itsmo.range.set_default_range_flag_sort(usesort); return false; }); d.push('gsort=' + usesort); d.push('rowcnt=' + itsmo.vars.g_range_flag_rowcnt); itsmo.vars.g_range_flags = d.length >= 1 ? d.join('&') : ''; itsmo.vars.g_range_page = 1; itsmo.range.range_search(); }; itsmo.range.set_default_range_flag_sort = function(s) { if ('near' == s || 'nm_asc' == s || 'nm_desc' == s) { itsmo.vars.g_range_flag_gsort = s; } }; itsmo.range.cond_reset = function() { itsmo.vars.g_range_cond_reset = true; itsmo.vars.g_range_flags_cond = {}; $('#ajax_range_condition_td_cond a strong.joken-on').each(function() { var e = $(this).removeClass('joken-on').parent(); e.find('input:hidden').val('0'); e = e.find('span'); var s = e.attr('class'); if (s.substring(s.length - 4) != '-off') { e.attr('class', s + '-off'); } }); $('#ajax_range_condition_td_cond div.List-coL-link ul').each(function() { var e = $(this).find('li:first a'); if (e.is("[onclick*='rowcnt']")) { return; } e.find('a').click(); }); itsmo.range.cond_validate_sort(true); itsmo.vars.g_range_word = ''; itsmo.vars.g_range_cnt = itsmo.vars.g_range_flag_rowcnt; itsmo.vars.g_range_flags = ''; itsmo.vars.g_range_page = 1; itsmo.vars.g_range_cond_reset = false; }; itsmo.range.cond_open = function() { itsmo.range.cond_hide(true); // サブウィンドウのタイトルを設定。 var f = $('#ajax_range_condition_td_genre span.box-s'); f.eq(0).text(itsmo.range.limitString($('#ajax_facet_genre_nm_b').text(), 9)); // 中ジャンル、小ジャンルの選択欄を調整。 var e = $("#ajax_facet_genre_selbox span.box-s"); f.eq(1).text(e.eq(0).text()); if (e.length >= 2) { f.eq(2).text(e.eq(1).text()); } else { if (f.length >= 2) { f.eq(2).text('').attr('class', 'box-s-ff'); } } e = $('#ajax_range_condition_td_genre'); e.find("input[name='gnrb']").val($('#ajax_facet_genre_b').val()); e.find("input[name='gnrm']").val($('#ajax_facet_genre_m').val()); e.find("input[name='gnrs']").val($('#ajax_facet_genre_s').val()); itsmo.range.cond_set_genres(); itsmo.range.changeFlagsByGnr(); // 絞り込み条件をコピー。 $("#ajax_leftmenu_result div.sibo-rich:visible span.select-joken:visible span[class^='ic-tell-']").each(function() { var e = $(this); var s = e.attr('class'); var t = '#flg_' + e.attr('name'); t = $(t); if (s != t.attr('class')) { // on, off が一致しないならトグル。 t.parent().click(); } }); $("#ajax_leftmenu_result div.sibo-rich:visible span.box-s[name^='sort']").each(function() { var i = $(this).next('input:hidden').val(); $("#ajax_gsort_div ul li a[rel='" + i + "']").click(); return false; }); e = $("#ajax_leftmenu_result div:visible").filter('.sibo-normal, .sibo-rich').find("input:text[name='keyword']"); f = (null != itsmo.vars.g_range_word && undefined != itsmo.vars.g_range_word) ? itsmo.vars.g_range_word : ''; $('#flg_freewd').val(e.length >= 1 && (e.val() != e.attr('rel')) ? e.val() : f); itsmo.range.cond_validate_sort(true); $("#flg_span_rowcnt").html(itsmo.vars.g_range_cnt + '件表示'); itsmo.lib.map_windowopen('ajax_range_condition'); }; itsmo.range.cond_close = function() { itsmo.range.cond_hide(); itsmo.lib.map_windowclose(); }; itsmo.range.cond_set_genres = function() { var e = $('#ajax_range_condition_td_genre'); f = e.find('span'); do { if ('' == e.find("input[name='gnrm']").val()) { f.eq(2).text(itsmo.range.STR_PLEASE_SELECT); f.eq(4).removeClass('box-s').addClass('box-s-off').text(''); e.find("input[name='gnrs']").val(''); break; } f.eq(4).removeClass('box-s-off').addClass('box-s'); if ('' == e.find("input[name='gnrs']").val()) { f.eq(4).text(itsmo.range.STR_PLEASE_SELECT); } break; } while(false); }; itsmo.range.cond_hide = function(isHide) { var ids = [ 'ajax_facet_gnr_div' , 'ajax_gsort_div' , 'ajax_rowcnt_div' , 'ajax_g_max_yosan_div' , 'ajax_g_min_yosan_div' , 'ajax_rowcnt_div' ]; $.each(ids, function(i, val) { var e = $('#' + val); if (isHide) { e.hide(); } else { e.fadeOut('fast'); } }); $('#ajax_range_condition div.sibo-loading2').fadeOut('fast'); }; itsmo.range.cond_checkbox_include_freewd = function(flg) { var e = $('#ajax_range_condition a.tel-check span'); var bl = e.attr('class').indexOf('-on') >= 0; if (flg == 1) { if (bl) { e.removeClass('tel-check-on').addClass('tel-check-off'); } else { e.removeClass('tel-check-off').addClass('tel-check-on'); } return; } return bl; }; itsmo.range.cond_show_last_mode = ''; itsmo.range.cond_show = function(mode) { itsmo.range.cond_hide(); itsmo.range.changeFlagsByGnr(); if (itsmo.range.cond_show_last_mode == mode && $('#ajax_facet_gnr_div').is(':visible')) { return false; } var e = $('#ajax_range_condition_td_genre h3:first strong'); var f = $('#ajax_range_condition_td_genre span'); var type = ''; if ('b' == mode) { e.text('ジャンル'); type = 'g1'; } else if ('m' == mode) { e.text(f.eq(0).text()); type = 'g2'; } else if ('s' == mode) { if ($('#ajax_range_condition_td_genre span.box-s').length < 3) { return false; } e.text(f.eq(2).text()); type = 'g3'; } else { return false; } var url = itsmo.range.cond_makeSubmitUrl(!itsmo.range.cond_checkbox_include_freewd() , 'xml=' + type, mode); url = url.split('?', 2); $('#ajax_range_condition div.sibo-loading2').fadeIn('fast'); itsmo.range.cond_show_last_mode = mode; itsmo.lib.XMLHttpRequest2_send(url[0], itsmo.range.cond_show_callback, 'GET', url[1]); }; itsmo.range.cond_show_result = []; itsmo.range.cond_show_result_page = 0; itsmo.range.cond_show_result_company = []; itsmo.range.cond_show_result_company_page = 0; itsmo.range.cond_show_callback = function(result) { itsmo.range.cond_hide(); result = $(result); var nm = result.find('title').text(); if ('' != nm && null != nm) { $('#ajax_facet_gnr_div strong:first').text(nm); } result = result.find('data'); // 企業を集める。 itsmo.range.cond_show_result = []; itsmo.range.cond_show_result_company = []; var bl_set_reset_anchor = false; result.each(function(i, domEle) { domEle = $(domEle); var nm = domEle.find('nm').text(); var val = domEle.find('val').text(); var cnt = domEle.find('cnt').text(); if(val == "0200000000"){ nm = "レジャー・エンタメ・スポーツ"; } if(val == "0300000000"){ nm ="宿泊施設"; } if(val == "0400000000"){ nm = "交通・自動車関連・道の駅"; } if(val == "0500000000"){ nm = "公共・教育・金融機関"; } if(val == "0600000000"){ nm = "ショッピング"; } if(val == "0700000000"){ nm = "生活・美容・冠婚葬祭"; } if(val == "0800000000"){ nm = "ビジネス・企業間取引"; } var vals = val.split(':'); var d = [nm, val, cnt]; if (vals.length == 3 && vals[2].substring(5, 6) == '5') { itsmo.range.cond_show_result_company.push(d); } else { itsmo.range.cond_show_result.push(d); } if (!bl_set_reset_anchor) { bl_set_reset_anchor = true; vals[vals.length - 1] = ''; $('#ajax_facet_gnr_div strong:first').parent().attr('rel', vals.join(':')); } }); // ページ数計測。 var i = $('#ajax_facet_gnr_sel ul:first li').length; itsmo.range.cond_show_result_page = Math.floor((itsmo.range.cond_show_result.length + i - 1) / i); i = $('#ajax_facet_gnr_sel ul:eq(1) li').length; itsmo.range.cond_show_result_company_page = Math.floor((itsmo.range.cond_show_result_company.length + i - 1) / i); itsmo.range.cond_show_set_li(0); $('#ajax_facet_gnr_div').fadeIn('fast'); }; itsmo.range.cond_show_set_li = function(page) { var e = $('#ajax_facet_gnr_sel'); e.find('ul').hide(); e.find('div > h4').parent(0).hide(); var offset = 0; var n = 0; var cnt; if (itsmo.range.cond_show_result_page == 1 || page < itsmo.range.cond_show_result_page) { n = e.find('ul:first li').length; offset = page * n; if (itsmo.range.cond_show_result_page == 1) { offset = 0; } cnt = 0; e.find('ul:first').show().find('li').hide().each(function() { var i = cnt + offset; cnt++; if (i >= itsmo.range.cond_show_result.length) { return false; } var v = itsmo.range.cond_show_result[i]; $(this).show().find('a').attr('rel', v[1]).html(v[0]); }); } if (itsmo.range.cond_show_result_company_page == 1 || page < itsmo.range.cond_show_result_company_page) { n = e.find('ul:eq(1) li').length; offset = page * n; if (itsmo.range.cond_show_result_company_page == 1) { offset = 0; } cnt = 0; e.find('div > h4').parent().show(); e.find('ul:eq(1)').show().find('li').hide().each(function() { var i = cnt + offset; cnt++; if (i >= itsmo.range.cond_show_result_company.length) { return false; } var v = itsmo.range.cond_show_result_company[i]; $(this).show().find('a').attr('rel', v[1]).html(v[0]); }); } // ページ操作ボタン群の表示非表示制御。まずは群を消しておく。 e.find('div.lst-pg').hide(); if (itsmo.range.cond_show_result_page >= 2 || itsmo.range.cond_show_result_company_page >= 2) { n = Math.max(itsmo.range.cond_show_result_page, itsmo.range.cond_show_result_company_page); var f = e.find('div.lst-pg'); // DOM 組み立てなおし。 var s = $('#ajax_facet_gnr_company span.ajax_facet_gnr_company_page'); var i, j = s.eq(1).html(); for (i = 1; i <= n; ++i) { j += s.eq(0).html().replace(/000/g, '' + i); } j += s.eq(2).html(); f.html(j); // 表示非表示制御 var f_a = f.find('a'); var f_span = f.find('span'); var l = f.find('span').length; // まずは全て消しておく。 f.find('span, a').hide(); // 「前へ」を制御。 if (0 == page) { f_span.eq(0).show(); } else { f_a.eq(0).show(); } // 「次へ」を制御。 if (page >= (n - 1)) { f_span.eq(l - 1).show(); } else { f_a.eq(l - 1).show(); } // 各ページ操作ボタンを制御。 for (i = 1; i <= n; ++i) { if (i == (page + 1)) { f_span.eq(i).show(); } else { f_a.eq(i).show(); } } // 全体を表示。 f.show(); } }; itsmo.range.cond_show_set_page = function(page) { if (page >= 999 || page < 0) { } else { itsmo.range.cond_show_set_li(page); return; } var e = $('#ajax_facet_gnr_sel div.lst-pg span:not(:first, :last)'); var n = 0; for (var i = 0; i < e.length; ++i) { if (e.eq(i).is(':visible')) { n = i; break; } } n += (page < 0) ? -1 : 1; n = Math.max(0, n); n = Math.min(n, Math.max(itsmo.range.cond_show_result_page, itsmo.range.cond_show_result_company_page)); itsmo.range.cond_show_set_li(n); }; itsmo.range.cond_select = function(e) { e = $(e); var id = e.attr('rel').split(':'); var is_clear = (id[id.length - 1].length <= 0); if (is_clear && id.length == 1) { return false; } itsmo.range.cond_hide(); var f = $("#ajax_range_condition_td_genre input[name^='gnr']").val(''); var i; var nm = e.text(); i = nm.indexOf('('); if (i < 0) { i = nm.length; } nm = nm.substring(0, i); for (i = 0; i < 3 && id.length >= 1; ++i) { f.eq(i).val(id.shift()); } if (!e.is('strong')) { $("#ajax_range_condition_td_genre span").eq(i * 2 - 2).text(itsmo.range.limitString(nm, 9)); } itsmo.range.changeFlagsByGnr(); itsmo.range.cond_validate_sort(); itsmo.range.cond_set_genres(); }; itsmo.range.cond_selectflg_show = function(e, id) { id = $('#ajax_' + id + '_div'); var bl = id.is(':visible'); itsmo.range.cond_hide(); if (!bl) { id.fadeIn('fast'); } }; itsmo.range.cond_select_flg = function(e, id) { itsmo.range.cond_hide(); e = $(e); var val = e.attr('rel'); var nm = e.text(); if (itsmo.vars.g_range_cond_reset && e.attr('name') != undefined) { nm = e.attr('name'); } if ('~' == nm.substring(nm.length - 1)) { nm = nm.substring(0, nm.length - 1); } $("#ajax_range_condition input[name='flags'][id='flg_" + id + "']").val(val); $("#ajax_range_condition span[id='flg_span_" + id + "']").text(nm); itsmo.range.changeFlagsByGnr(); itsmo.range.cond_validate_sort(); if ('gsort' == id) { itsmo.range.set_default_range_flag_sort(val); } if ('rowcnt' == id) { itsmo.vars.g_range_flag_rowcnt = val; } //itsmo.range.show_use_flag(); }; itsmo.range.changeFlagsByGnr = function() { var i = $("#ajax_range_condition_td_genre input[name='gnrs']").val(); if (undefined == i || '' == i) { i = $("#ajax_range_condition_td_genre input[name='gnrm']").val(); } if (undefined == i || '' == i) { i = $("#ajax_range_condition_td_genre input[name='gnrb']").val(); } if (undefined == i || '' == i) { } else { i = i.split(':'); i = i[i.length - 1]; } $("[id^='gnrflags']").hide().css('visibility', 'hidden').each(function() { var e = $(this); var s = e.attr('id').substring(8); if (0 == i.indexOf(s)) { e.show().css('visibility', 'visible'); } }); $("li[name^='gsortflg']").hide().each(function() { var e = $(this); var s = e.attr('name').substring(8); if (0 == i.indexOf(s)) { e.show(); } }); return false; }; // ソート条件の適正チェック itsmo.range.cond_validate_sort = function(isReset) { var v = $('#flg_gsort').val(); var first_elm = null; var isFound = false; $('#ajax_gsort_div li').each(function() { var e = $(this); if (e.css('display') == 'none') { return; } if (null == first_elm) { first_elm = e; } e = e.find('a'); var val = e.attr('rel'); if (val == v) { isFound = true; if (isReset) { e.click(); } return false; } }); if (!isFound) { first_elm.find('a').click(); } }; itsmo.range.cond_toggle_icon = function(e, forceoff) { e = $(e); if (null == forceoff || undefined == forceoff) { forceoff = []; } else if (typeof forceoff == 'string') { forceoff = [ forceoff ]; } var cl = e.find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if (isOn) { e.find('span:first').attr('class', cl + '-off').find('input:hidden').val('0'); e.find('strong').removeClass('joken-on'); } else { e.find('span:first').attr('class', cl.substring(0, cl.length - 4)).find('input:hidden').val('1'); e.find('strong').addClass('joken-on'); $.each(forceoff, function() { e = $('#' + this); if ('1' == e.find('input:hidden').val()) { e.parent().click(); } }); } //itsmo.range.show_use_flag(); return false; }; itsmo.range.cond_toggle_icon2 = function(e, forceoff) { e = $(e); if (null == forceoff || undefined == forceoff) { forceoff = []; } else if (typeof forceoff == 'string') { forceoff = [ forceoff ]; } var cl = e.find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if (isOn) { e.find('span:first').attr('class', cl + '-off'); e.removeClass('joken-on'); } else { e.find('span:first').attr('class', cl.substring(0, cl.length - 4)); e.addClass('joken-on'); $.each(forceoff, function() { e = $("#ajax_leftmenu_result span[name='" + this + "']"); cl = e.attr('class'); if ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()) { e.parent().click(); } }); } //itsmo.range.show_use_flag(); return false; }; itsmo.range.cond_isNoneDisplayElement = function(e) { //while (!!e && e != g_document) { if (null == e) { return true; } e = e.parents(':hidden'); for (var i = 0; i < e.length; ++i) { if ('none' == e.eq(i).css('display')) { return true; } } return false; }; itsmo.range.cond_makeSubmitUrl = function(canFreewdOnly, addParam, useGenre) { var facetMode = 'submit' != useGenre; var i = $.trim($('#flg_freewd').val()); if (!facetMode && canFreewdOnly && i.length >= 1) { if ('submit' == useGenre) { return { freewd: i }; } i = '/c///?freewd=' + encodeURIComponent(i); if (null != addParam && addParam.length >= 1) { i += '&' + addParam; } return i; } var params = {}; var urlname = [], urlparam = []; if (!facetMode && i.length >= 1) { params['freewd'] = i; } params['minx'] = itsmo.vars.g_map_search_box.minx; params['miny'] = itsmo.vars.g_map_search_box.miny; params['maxx'] = itsmo.vars.g_map_search_box.maxx; params['maxy'] = itsmo.vars.g_map_search_box.maxy; // 検索フラグなどを取得。 //var es = g_document.getElementsByName('flags'); $("#ajax_range_condition [name='flags']").each(function() { if ('b' == useGenre || canFreewdOnly) { return false; // 大ジャンルではフラグを無視する。 } var e = $(this); if (itsmo.range.cond_isNoneDisplayElement(e)) { return; } var id = e.attr('id'); if (undefined == id || '' == id) { id = e.parent().attr('id'); } if (undefined == id || '' == id) { return; } var idRaw = id, j; id = id.substring(4); // 先頭の flg_ を除く。 if (e.is('input:hidden')) { j = e.val(); if ('0' != j && '' != j) { params[id] = j; } } else { j = itsmo.lib.document_getvalue(idRaw); if ('' != j) { params[id] = j; } } }); // ジャンル情報を取得。 var gnrcd = []; var e = $('#ajax_range_condition_td_genre'); do { if ('b' == useGenre || 'submit' == useGenre) { break; } gnrcd.push(e.find("input[name='gnrb']").val()); if ('m' == useGenre) { break; } gnrcd.push(e.find("input[name='gnrm']").val()); urlname.push(e.find('span:eq(2)').text()); if ('s' == useGenre) { break; } gnrcd.push(e.find("input[name='gnrs']").val()); urlname.push(e.find('span:eq(4)').text()); } while(false); gnrcd = gnrcd.join(':'); if ('' != gnrcd) { urlparam.push(gnrcd); } // URL の名称部とパラメータ部を作成。 for (i = 0; i < urlparam.length; ++i) { urlparam[i] = encodeURIComponent(urlparam[i]); } urlparam = urlparam.join('_'); for (i = 0; i < urlname.length; ++i) { urlname[i] = encodeURIComponent(urlname[i]); } urlname = urlname.join('+'); var p = []; if ('submit' == useGenre) { return params; } if (undefined != addParam && '' != addParam && null != addParam) { p.push(addParam); } for (i in params) { p.push(i + '=' + encodeURIComponent(params[i])); } p = p.join('&'); var url = '/c/' + urlname + '/' + urlparam + '/'; if ('' != p) { url += '?' + p; } return url; }; itsmo.range.cond_submit = function() { var i = [], j; var e = $('#ajax_range_condition input'); i.push(e.filter("[name='gnrb']").val()); j = e.filter("[name='gnrm']").val(); if ('' != j) { i.push(j); } j = e.filter("[name='gnrs']").val(); if ('' != j) { i.push(j); } itsmo.vars.g_range_genre = i.join(':'); var includeFreewd = itsmo.range.cond_checkbox_include_freewd(); i = itsmo.range.cond_makeSubmitUrl(!includeFreewd, '', 'submit'); if (!includeFreewd) { itsmo.freeword.freewordSelectArea('freewd_area'); $('#freewd').val(i.freewd); itsmo.range.cond_close(); $('div.header:first form:first').submit(); return false; } itsmo.vars.g_range_word = undefined != i.freewd ? i.freewd : ''; itsmo.vars.g_range_cnt = undefined != i.rowcnt ? i.rowcnt : 10; i.freewd = i.rowcnt = i.minx = i.miny = i.maxx = i.maxy = null; var d = []; itsmo.vars.g_range_flags_cond = {}; for (j in i) { if (null != i[j]) { d.push(j + '=' + encodeURIComponent(i[j])); itsmo.vars.g_range_flags_cond[j] = i[j]; } } if (includeFreewd) { itsmo.vars.g_range_flags = d.length >= 1 ? d.join('&') : ''; } itsmo.vars.g_range_page = 1; itsmo.range.cond_close(); itsmo.lib.map_waitopen(); if(itsmo.vars.g_range_request != null) { itsmo.lib.XMLHttpRequest2_abort(itsmo.vars.g_range_request); itsmo.vars.g_range_request = null; } /* alert(itsmo.vars.g_range_flags + "\r\n" + itsmo.vars.g_range_word + "\r\n" + itsmo.vars.g_range_cnt + "\r\n" ); */ itsmo.range.range_search(); }; itsmo.range.limitString = function(s, n) { if (s.length <= n) { return s; } return s.substring(0, n) + '...'; }; // 簡易絞込欄表示 itsmo.range.show_simple_cond = function() { var gnrcd = $('#ajax_facet_genre_s').val(); if ('' == gnrcd) { gnrcd = $('#ajax_facet_genre_m').val(); } if ('' == gnrcd) { gnrcd = $('#ajax_facet_genre_b').val(); } // 各ジャンル絞込欄と親divを非表示。 var e = $('#ajax_leftmenu_result'); e.find('div.sibo-rich').hide().find("span[name^='gnr']").hide(); do { if ('' == gnrcd) { break; } var f = null; for (var i = gnrcd.length; i >= 2; --i) { var s = "[name='gnr" + gnrcd.substring(0, i) + "']"; f = e.find('div span.select-joken' + s); if (f.length <= 0) { f = e.find('div.sibo-rich-waku' + s); if (f.length <= 0) { f = null; continue; } // fall down. } // 通常欄を消して対象ジャンル欄と親divを表示。 $('#ajax_leftmenu_result div.sibo-normal').hide(); f.show().parents('div.sibo-rich').show(); return; } } while(false); // 通常欄を表示 $('#ajax_leftmenu_result div.sibo-normal').show(); return; }; // 簡易絞込複数選択覧表示 itsmo.range.show_simple_cond_list = function(s) { itsmo.range.openGenre_close(); $("#ajax_leftmenu_result div.sis-search-paka-genre[name='" + s + "']").fadeIn('fast'); return false; }; itsmo.range.click_simple_cond_list = function(e) { itsmo.range.openGenre_close(); e = $(e); var val = e.attr('rel'); var txt = e.text(); var f = e.parents().filter("div[name^='gnr']"); var i = 'sort' + f.attr('name').substring(3); i = "#ajax_leftmenu_result div.sibo-rich span.box-s[name='" + i + "']"; $(i).text(itsmo.range.limitString(txt, 8)).next("input:hidden").val(val); }; // 絞り込み中か itsmo.range.is_use_flags = function() { var includeFreewd = itsmo.range.cond_checkbox_include_freewd(); var i = itsmo.range.cond_makeSubmitUrl(!includeFreewd, '', 'submit'); for (var j in i) { if (null == i[j]) { continue; } if ('minx' == j || 'miny' == j || 'maxx' == j || 'maxy' == j || 'rowcnt' == j || 'gsort' == j ) { continue; } return true; } return false; }; itsmo.range.show_use_flag = function() { var e = $('a.sibo-hoka span:first'); if (itsmo.range.is_use_flags()) { e.addClass('act'); } else { e.removeClass('act'); } }; itsmo.vars.google_image_api_control = null; itsmo.range.google_image_api_OnLoad = function(word) { itsmo.vars.google_image_api_control = new GSearchControl(); itsmo.vars.google_image_api_control.setResultSetSize(GSearch.SMALL_RESULTSET); itsmo.vars.google_image_api_control.setLinkTarget(GSearch.LINK_TARGET_BLANK); itsmo.vars.google_image_api_control.setResultSetSize(GSearch.LARGE_RESULTSET); var searcher = new GimageSearch(); searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE,GimageSearch.IMAGESIZE_LARGE); searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH,GSearch.SAFESEARCH_STRICT); var options = new GsearcherOptions(); options.setExpandMode(GSearchControl.EXPAND_MODE_OPEN); itsmo.vars.google_image_api_control.addSearcher(new GimageSearch(), options); }; itsmo.range.google_image_api_execute = function(word,id) { if(document.getElementById("searchcontrol") == null) return; itsmo.vars.google_image_api_control.draw(document.getElementById(id)); itsmo.vars.google_image_api_control.execute(word); }; // zIndex 調整 itsmo.vars.g_range_tipc_elem = null; itsmo.vars.g_range_tipc_time = null; itsmo.range.range_tipc_timeout = function() { itsmo.vars.g_range_tipc_time = null; itsmo.vars.g_range_tipc_elem.setZindex(itsmo.vars.g_range_tipc_elem.org_zIndex + 1); itsmo.vars.g_range_tipc_elem = null; }; itsmo.vars.g_freeword_page = 0; itsmo.vars.g_freeword_mode = null; itsmo.vars.g_freeword_flg = '1'; // 全国 itsmo.freeword = {}; itsmo.vars.g_freeword_beforeMode = ''; itsmo.vars.g_freeword_beforeGenre = ''; itsmo.vars.g_free_word = ''; itsmo.vars.g_freeword_addr = false; itsmo.vars.g_free_word_bsFromDetail = ''; itsmo.vars.g_genre_bus_click = ''; /* freeword フリーワード検索 @param mode string 検索モード @param word string 検索ワード for public use */ itsmo.freeword.freeword = function( mode, word, other ) { itsmo.vars.g_genre_bus_click = ''; if (word == BUS_SEARCH_KEYWORD) { mode = 'bus'; //Bus around from detail if (other == itsmo.map.bus.genreSearchFlag){ itsmo.vars.g_genre_bus_click = '1'; } else if (typeof (other) != 'undefined' && other != '') { var parseLatLon = other.split('_'); if (parseLatLon.length == 2) { itsmo.vars.g_free_word_bsFromDetail = '1'; var lat = ZDC.msTodeg(parseLatLon[0]); var lon = ZDC.msTodeg(parseLatLon[1]); var center = new ZDC.LatLon(lat, lon); itsmo.vars.g_map_obj.moveLatLon(center); itsmo.vars.g_map_search_location = itsmo.lib.toMilliSec(center); } } itsmo.sub.map_tab_change('freeword', ['freeword', mode, word, other]); } else { itsmo.lib.document_setvalue('freewd', word); itsmo.sub.map_tab_change('freeword', ['freeword', mode, word]); } if (itsmo.vars.g_freeword_page != 0) itsmo.vars.g_freeword_page = 1; itsmo.vars.g_free_word = word; itsmo.vars.g_freeword_mode = mode; itsmo.vars.g_freeword_act = 'top'; itsmo.vars.g_freeword_addr = false; itsmo.freeword.freeword_search(); }; /* for public use map_top.tpl からコールされているようです。 */ itsmo.freeword.freeword_submit = function(url, key) { if (typeof itsmo.vars.addon === 'undefined' || typeof itsmo.vars.addon.onClickFreeword === 'undefined') { } else { var cancel = false; $.each(itsmo.vars.addon.onClickFreeword, function(i, v) { if (v()) { cancel = true; } }); if (cancel) { return false; } } itsmo.vars.g_freeword_page = 0; itsmo.vars.g_freeword_addr = false; if (itsmo.vars.g_freeword_beforeMode == '' || itsmo.vars.g_freeword_beforeMode != itsmo.vars.g_map_tab_mode) { itsmo.vars.g_freeword_beforeMode = itsmo.vars.g_map_tab_mode; } if (itsmo.vars.g_freeword_beforeGenre == '' || itsmo.vars.g_freeword_beforeGenre != itsmo.vars.g_range_genre) { itsmo.vars.g_freeword_beforeGenre = itsmo.vars.g_range_genre; } itsmo.freeword.freeword('', itsmo.lib.document_getvalue('freewd')); let data ={}; data.nm = itsmo.lib.document_getvalue('freewd'); itsmo.lib.localstorage_set(data); $('div form div.serch-box #freewd').blur(); itsmo.vars.g_range_spots_drawin = false; return false; }; /* for public use 地図を動かしたとき */ itsmo.freeword.freeword_submit_move = function() { itsmo.freeword.freeword('', itsmo.lib.document_getvalue('freewd')); return false; }; /* for public use 別の候補を選択した場合 */ itsmo.freeword.freeword_other = function(word) { $('#freewd').attr('value', word); itsmo.vars.g_free_word = word; itsmo.vars.g_freeword_mode = 'addr'; itsmo.vars.g_freeword_act = 'top'; if (itsmo.vars.g_freeword_page != 0) itsmo.vars.g_freeword_page = 1; itsmo.vars.g_freeword_addr = true; itsmo.sub.map_tab_change('freewordaddr', ['freewordaddr', '', word]); itsmo.freeword.freeword_search(); return false; }; /* for public use */ itsmo.freeword.freeword_move = function( lat, lon, cat, id, name ) { //if ( cat != null ) { itsmo.myspot.myspot_history_add( cat, id, name, lat, lon ); } itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); itsmo.map.map_search_timer(false); itsmo.sub.map_setcursor( lat, lon ); }; /* for public use */ itsmo.freeword.freeword_page = function( page,mode ) { itsmo.vars.g_freeword_page = page; if(mode){ itsmo.vars.g_freeword_mode = mode; } itsmo.vars.g_freeword_addr = false; itsmo.freeword.freeword_search(); }; /* freeword_search map/ajax_freeword.php にリクエストを投げ、 レスポンス時に、freeword_search_result 関数にコールバックさせます。 for private use */ itsmo.freeword.freeword_search = function() { var path = location.pathname; var paths = path.split('/'); if (paths[1] == 'c' || paths[1] == 'map') { path = '/'+paths[1]+'/'; } else { path = '/'+paths[1]+'/'+paths[2]+'/'; } // 2017/04/12 Phuoc Le - #8434 Add dataLayer dataLayer.push(['_trackEvent', 'フリーワード', path, itsmo.vars.g_free_word, , true]); if(itsmo.vars.g_free_word.length > 30){ alert('30文字以内で入力してください'); return false; } // ajax通信 var prm = itsmo.freeword.freeword_set_param(); itsmo.lib.map_waitopen(); if ( itsmo.vars.g_range_request != null ) { itsmo.lib.XMLHttpRequest2_abort( itsmo.vars.g_range_request ); } itsmo.vars.g_range_request = itsmo.lib.XMLHttpRequest2_send( '/map/ajax_freeword.php', itsmo.freeword.freeword_search_result, 'GET', prm, 'xml' ); }; /* freeword_set_param map/ajax_freeword.php にリクエストを投げる際のパラメータをセット for private use */ itsmo.freeword.freeword_set_param = function() { if(!itsmo.vars.g_freeword_mode){ var cnt = 5; }else{ var cnt = itsmo.vars.g_range_cnt; } if (itsmo.vars.g_home_p) { // 自宅~現在の地図中心との距離 itsmo.vars.g_dist = itsmo.lib.getDistance(itsmo.vars.g_home_p.lat, itsmo.vars.g_home_p.lon, itsmo.vars.g_map_search_location.lat, itsmo.vars.g_map_search_location.lon); } if(itsmo.vars.g_free_word == itsmo.vars.g_freeWordComment["df"]){ itsmo.vars.g_free_word = ''; } /* if(itsmo.vars.g_freeword_flg == '1'){//全国検索 var prm = '&word=' + encodeURIComponent(itsmo.vars.g_free_word) + '&mode=' + itsmo.vars.g_freeword_mode + '&page=' + itsmo.vars.g_freeword_page + '&cnt=' + cnt; }else{//周辺検索 itsmo.vars.g_freeword_mode = 'all';//施設検索のみ */ prm = itsmo.vars.g_map_search_location; var prm = '&word=' + encodeURIComponent(itsmo.vars.g_free_word) + '&mode=' + itsmo.vars.g_freeword_mode + '&lat=' + prm.lat + '&lon=' + prm.lon + '&minx=' + itsmo.vars.g_map_search_box.minx + '&miny=' + itsmo.vars.g_map_search_box.miny + '&maxx=' + itsmo.vars.g_map_search_box.maxx + '&maxy=' + itsmo.vars.g_map_search_box.maxy + '&page=' + itsmo.vars.g_freeword_page + '&cnt=' + itsmo.vars.g_range_cnt; if(itsmo.vars.g_free_word_bsFromDetail != ''){ prm += '&frDetail=' + itsmo.vars.g_free_word_bsFromDetail; } if(itsmo.vars.g_genre_bus_click != ''){ prm += '&busGenre=' + itsmo.vars.g_genre_bus_click; } if (itsmo.vars.g_freeword_act) prm += '&act=' + itsmo.vars.g_freeword_act; if (itsmo.vars.g_freeword_addr) prm += '&addron=1'; prm += '&dist=' + encodeURIComponent(itsmo.vars.g_dist); prm += '&byway=' + encodeURIComponent(itsmo.vars.g_byway); // 1:レコメンド経由 // } itsmo.vars.g_free_word_bsFromDetail = ''; return prm; }; itsmo.freeword.freewordMoveFirst = function (result) { var lat = null; var lon = null; if ($('status tpl', result) == 'ajax_freeword_list') { if ($('all items', result).length > 0) { lat = $($('all items', result)[0]).find('lat').text(); lon = $($('all items', result)[0]).find('lon').text(); if(lat != '' && lon != ''){ itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); return; } } if ($('phone items', result).length > 0) { lat = $($('phone items', result)[0]).find('lat').text(); lon = $($('phone items', result)[0]).find('lon').text(); if(lat != '' && lon != ''){ itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); return; } } } else if($('addr_only', result).text() != 1){ if ($('post items', result).length > 0) { lat = $($('post items', result)[0]).find('lat').text(); lon = $($('post items', result)[0]).find('lon').text(); if(lat != '' && lon != ''){ itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); return; } } if ($('station items', result).length > 0) { lat = $($('station items', result)[0]).find('lat').text(); lon = $($('station items', result)[0]).find('lon').text(); if(lat != '' && lon != ''){ itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); return; } } if ($('addr items', result).length > 0) { lat = $($('addr items', result)[0]).find('lat').text(); lon = $($('addr items', result)[0]).find('lon').text(); if(lat != '' && lon != ''){ itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); return; } } if ($('phone items', result).length > 0) { lat = $($('phone items', result)[0]).find('lat').text(); lon = $($('phone items', result)[0]).find('lon').text(); if(lat != '' && lon != ''){ itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); return; } } if ($('all items', result).length > 0) { lat = $($('all items', result)[0]).find('lat').text(); lon = $($('all items', result)[0]).find('lon').text(); if(lat != '' && lon != ''){ itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); return; } } } } /* freeword_search_result freeword_search 関数で投げられたリクエストが、 レスポンスされた時の処理です。 @param result object[xmldocument] レスポンスXML($.ajax の戻り) for private use (system use) */ itsmo.freeword.freeword_search_result = function( result ) { //if( typeof( result.responseXML.normalize ) != 'undefined') result.responseXML.normalize();// FFの4096byte制限対策 // result が XML などの場合 var err = $('err', result).text(); //var type = $('type', result).text(); if ( err != 0 ) { //alert( 'itsmo.freeword.freeword_search_result エラー ' + err ); //return; } itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml( $('left_html', result).text() ); itsmo.freeword.freewordMoveFirst(result); //チップクリア itsmo.sub.map_clickable_TipAllClear(1); var arrayExistID = []; if($('all', result)){ itsmo.freeword.set_tip($('all', result), arrayExistID); } if($('station', result)){ itsmo.freeword.set_tip($('station', result), arrayExistID); } if($('post', result)){ itsmo.freeword.set_tip($('post', result), arrayExistID); } if($('phone', result)){ itsmo.freeword.set_tip($('phone', result), arrayExistID); } if($('bus', result)){ itsmo.freeword.set_tip($('bus', result), arrayExistID); } arrayExistID = []; if($('addr', result)){ if ($('addr_only', result).text() == 1) { itsmo.sub.map_tab_change('addrlist', 1); // 最適化用変数初期化 itsmo.spot_range.spots_init(); itsmo.freeword.set_tip_range($('addr_data', result), true); itsmo.freeword.set_tip_range($('addr_list items', result), false); itsmo.vars.g_range_spots_uid = $(result).find('addr_data').find('uid').text(); // 住所周辺施設取得 itsmo.spot_range.detail_addr_range_top($('word', result).text()); // 中心に表示 prm = itsmo.vars.g_range_spots[itsmo.vars.g_range_spots_uid]; itsmo.spot_range.range_move(prm['lat'], prm['lon']); itsmo.spot_range.range_tipopen(prm['uid']); // フリーワード内容変更 $('#freewd').val(prm['nm']); // 絞込から検索時、絞込情報取得 if (itsmo.vars.g_range_spots_drawin) itsmo.spot_range.addr_list($(result).find('addr_data').find('adcd').text(), 0); } else { // ココ吹き出し itsmo.sub.map_maplink_tipallclear(); itsmo.freeword.set_maplink_data($('addr', result)); } } // ジャンル再検索リンク設定 itsmo.sub.set_genre_research(); //$('#ajax_leftmenu_result').html(result); /* // 動作分岐 switch ( type ) { case 'range': case 'wide': case 'all': itsmo.sub.map_tab_sethtml( $('html_list', result).text() ); itsmo.range.range_freeword( itsmo.vars.g_free_word, result ); break; case 'addr': case 'addrlist': itsmo.sub.map_tab_sethtml( $('html_list', result).text() ); break; } */ }; //全国?付近? itsmo.freeword.freewordSelectArea = function(id){ if(id == 'freewd_area'){ itsmo.vars.g_freeword_flg = 0; }else{ itsmo.vars.g_freeword_flg = 1; } var txt = $('#' + id + ' strong').html(); $('#freeword_flg span').html(txt); itsmo.lib.document_off('freeword_chg_window'); }; //ツールチップ作成 itsmo.freeword.set_tip = function(data, arrayExistID){ var set_tip = function(){ //param var prm = {}; prm['uid'] = $(this).find('uid').text(); //check id exist if($.inArray(prm.uid, arrayExistID) == -1) { prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['nm'] = $(this).find('nm').text(); prm['short_nm'] = $(this).find('short_nm').text(); prm['gnr_nm'] = $(this).find('gnr_nm').text(); prm['gnr_id'] = $(this).find('gnr_id').text(); prm['iconL'] = $(this).find('iconL').text(); prm['iconM'] = $(this).find('iconM').text(); prm['iconS'] = $(this).find('iconS').text(); if(prm['uid'].indexOf("bus") != -1){ prm['groupId'] = $(this).find('groupId').text(); prm['company'] = $(this).find('company').text(); } prm['tip_c'] = $(this).find('tip_c').text(); prm['tip_o'] = $(this).find('tip_o').text(); arrayExistID.push(prm.uid); //ツールチップ作成 var div_id = itsmo.sub.set_tooltip_s(prm['tip_c'],prm); //bind $('#' + div_id + ' a').click(function() { itsmo.freeword.set_tip_open(prm.uid); }); $('#' + div_id + ' .tipc_range_open1').click(function() { itsmo.freeword.set_tip_open(prm.uid); }); } } $(data).find('items').each(set_tip); }; //ツールチップOPEN itsmo.freeword.set_tip_open = function(uid){ var data = itsmo.vars.g_map_tipid_clickable_s[uid]; if(!data){ return false; } var div_id = itsmo.sub.map_clickable_tipopen(data.tip_o,data); }; //ココ吹き出しデータ作成 itsmo.freeword.set_maplink_data = function(data){ $(data).find('items').each(function(){ //param var prm = {}; prm['uid'] = $(this).find('uid').text(); prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['nm'] = $(this).find('nm').text(); prm['short_nm'] = $(this).find('short_nm').text(); prm['maplink_o'] = $(this).find('maplink_o').text(); itsmo.sub.map_getaddr({ lat: prm['lat'], lon: prm['lon'] }, function(result) { if(result.status == 0) { var addr = result.items[0].address; } else { var addr = ''; } prm['addr'] = addr; }, 6); itsmo.vars.g_map_tipid_clickable_s[prm['uid']] = prm; }); }; // ココ吹き出しオープン itsmo.freeword.set_maplink_open = function(uid) { var data = itsmo.vars.g_map_tipid_clickable_s[uid]; if(!data){ return false; } // IPリンク アイコン+吹き出し Allclear itsmo.sub.map_maplink_tipallclear(); // IPリンク吹き出し作成 itsmo.vars.g_map_link_html_o = data.maplink_o; itsmo.sub.maplink_set(data.lat, data.lon); }; //ツールチップ作成(地図最適化) itsmo.freeword.set_tip_range = function(data, flg){ var set_tip = function(){ //param var prm = {}; prm['uid'] = $(this).find('uid').text(); prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['nm'] = $(this).find('nm').text(); prm['short_nm'] = $(this).find('short_nm').text(); prm['adcd'] = $(this).find('adcd').text(); prm['adcdupp'] = $(this).find('adcdupp').text(); prm['gnr_nm'] = $(this).find('gnr_nm').text(); prm['gnr_id'] = $(this).find('gnr_id').text(); prm['iconL'] = $(this).find('iconL').text(); prm['iconM'] = $(this).find('iconM').text(); prm['iconS'] = $(this).find('iconS').text(); prm['tip_c'] = $(this).find('tip_c').text(); prm['tip_o'] = $(this).find('tip_o').text(); prm.tooltipOffsetBottomCenter = [ 14, 0 ]; if (flg) itsmo.vars.g_range_spots[prm['uid']] = prm; //ツールチップ作成 var div_id = itsmo.sub.set_tooltip_opt_s(prm['tip_c'],prm); //bind $('#' + div_id + ' a').click(function() { itsmo.spot_range.range_move(prm['lat'], prm['lon']); itsmo.spot_range.range_tipopen(prm['uid']); }); } data.each(set_tip); }; itsmo.addrlist = {}; itsmo.vars.g_addr_rowest_adcd = null; itsmo.vars.g_addr_rowest_lat = null; itsmo.vars.g_addr_rowest_lon = null; itsmo.vars.g_addr_name = null; /* 住所一覧ページ表示( AJAX による遷移 ) 住所一覧ページ表示 パラメータの詳細は、map/ajax_addrlist.php を参照してください。 @param string pageType ページ種別 'top' 都道府県の一覧 ( 住所一覧トップ, デフォルト ) 'detail' 市区町村以降 ( どのレベルかは adcd で決まります ) @param string adcd 住所コード( pageType が 'top' 以外の場合有効 ) @param boolean rlat 最下層の緯度 @param boolean rlon 最下層の経度 @param boolean radcd 最下層の住所コード for public use */ itsmo.addrlist.showPage = function( pageType, adcd, rlat, rlon, radcd ) { itsmo.sub.map_tab_change('addrlist', ['addrlist', pageType, adcd, rlat, rlon, radcd]); itsmo.sub.genre_research_clear(); if ( pageType != 'detail' || adcd == '' ) { adcd = '00'; } if (rlat && rlon) { itsmo.vars.g_addr_rowest_lat = rlat; itsmo.vars.g_addr_rowest_lon = rlon; itsmo.vars.g_addr_rowest_adcd = radcd; } else { itsmo.vars.g_addr_rowest_lat = null; itsmo.vars.g_addr_rowest_lon = null; itsmo.vars.g_addr_rowest_adcd = null; } itsmo.addrlist.search( adcd ); }; /* 住所一覧 最下層ページ表示( AJAX による遷移 ) 地図中心を指定緯度経度に移動し、住所一覧 最下層ページを表示します。 @param int lat 緯度 @param int lon 経度 @param string adcd 住所コード for public use */ itsmo.addrlist.showLowest = function( lat, lon, adcd, zipcode ) { // ココ吹き出し itsmo.sub.map_maplink_tipallclear(); var name = itsmo.vars.g_addr_name +'−'+ adcd; itsmo.sub.set_maplink_pre(name, name, lat, lon, zipcode); itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); }; /* リクエスト map/ajax_addrlist.php にリクエストを投げ、 レスポンス時に、itsmo.addrlist.search_result 関数にコールバックさせます。 @param string adcd 住所コード for private use */ itsmo.addrlist.search = function( adcd , page) { // AJAX 通信 itsmo.vars.g_addrlist_adcd = adcd; var prm = '&adcd=' + adcd; if(page){ prm += '&page=' + page; } itsmo.lib.map_waitopen(); if ( itsmo.vars.g_range_request != null ) { itsmo.lib.XMLHttpRequest2_abort( itsmo.vars.g_range_request ); } itsmo.vars.g_range_request = itsmo.lib.XMLHttpRequest2_send( '/map/ajax_addrlist.php', itsmo.addrlist.search_result, 'GET', prm, 'xml' ); }; /* ページ指定 for private use */ itsmo.addrlist.addr_page = function( page ) { itsmo.addrlist.search(itsmo.vars.g_addrlist_adcd , page); }; /* search_result search 関数で投げられたリクエストが、 レスポンスされた時の処理です。 @param result object[xmldocument] レスポンスXML($.ajax の戻り) for private use (system use) */ itsmo.addrlist.search_result = function( result ) { itsmo.lib.map_waitclose(); // result が XML などの場合 var err = $('err', result).text(); var type = $('type', result).text(); if ( err != 0 ) { alert( 'itsmo.addrlist.search_result エラー err is ' + err ); return; } itsmo.sub.map_tab_sethtml( $('left_html', result).text() ); var lat = $('lat', result).text(); var lon = $('lon', result).text(); var isMaplink = true; if ( lat == '') { lat = itsmo.vars.g_map_search_location.lat; isMaplink = false; } if ( lon == '') { lon = itsmo.vars.g_map_search_location.lon; } itsmo.vars.g_addr_name = $('nm', result).text(); // ココ吹き出し itsmo.sub.map_maplink_tipallclear(); if (isMaplink) { $("#maplink_tipo_html").remove(); var html_balo = $('maplink_balo', result).text(); $('#ajax_leftmenu_result .map-pan-list1').after(html_balo); itsmo.sub.maplink_set(lat, lon); } if (itsmo.vars.g_addr_rowest_lat && itsmo.vars.g_addr_rowest_lon) { // 最下層データ再取得 itsmo.addrlist.showLowest(itsmo.vars.g_addr_rowest_lat,itsmo.vars.g_addr_rowest_lon,itsmo.vars.g_addr_rowest_adcd); } else { //地図移動 itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(lat, lon)); } }; /* 住所一覧で、最下層表示時の吹き出し HTML の取得 for private use */ itsmo.addrlist.getTipHtml = function( adcd ) { // AJAX 通信 var prm = '&act=gettip&adcd=' + adcd; itsmo.vars.g_range_request = itsmo.lib.XMLHttpRequest2_send( '/map/ajax_addrlist.php', itsmo.addrlist.getTipHtml_result, 'GET', prm, 'xml' ); }; /* 住所一覧で、最下層表示時の吹き出し HTML の取得 (callback) for private use (system use) */ itsmo.addrlist.getTipHtml_result = function( result ) { itsmo.lib.map_waitclose(); var err = $('err', result).text(); var type = $('type', result).text(); if ( err != 0 ) { alert( 'itsmo.addrlist.getTipHtml_result エラー err is ' + err ); return; } if($('addr_data', result).find('uid').text()){ itsmo.addrlist.set_tip($('addr_data', result)); } }; /* ツールチップ作成 */ itsmo.addrlist.set_tip = function(data){ //チップクリア itsmo.sub.map_clickable_TipAllClear(1); //param var prm = {}; prm['uid'] = $(data).find('uid').text(); prm['lat'] = $(data).find('lat').text(); prm['lon'] = $(data).find('lon').text(); prm['nm'] = $(data).find('nm').text(); prm['short_nm'] = $(data).find('short_nm').text(); prm['adcd'] = $(data).find('adcd').text(); prm['addr'] = $(data).find('addr').text(); prm['iconL'] = $(data).find('iconL').text(); prm['iconM'] = $(data).find('iconM').text(); prm['iconS'] = $(data).find('iconS').text(); prm['tip_c'] = $(data).find('tip_c').text(); prm['tip_o'] = $(data).find('tip_o').text(); //ツールチップ作成 var div_id = itsmo.sub.set_tooltip_s(prm.tip_c ,prm); //bind $('#' + div_id + ' a').click(function() { itsmo.addrlist.set_tip_open(prm.uid); }); $('#' + div_id + ' .tipc_range_open1').click(function() { itsmo.addrlist.set_tip_open(prm.uid); }); }; /* ツールチップOPEN */ itsmo.addrlist.set_tip_open = function(uid){ var data = itsmo.vars.g_map_tipid_clickable_s[uid]; if(!data){ return false; } //ツールチップ作成 var div_id = itsmo.sub.map_clickable_tipopen(data.tip_o,data); }; itsmo.vars.g_mypage_request = null; itsmo.vars.g_home_tipid_c = null; itsmo.vars.g_home_tipid_o = null; itsmo.vars.g_home_html_o = ''; itsmo.vars.g_home_p = null; itsmo.mypage = {}; itsmo.mypage.flgOpenBalloon = false; //------------------------------------------------ // ホームポジション //------------------------------------------------ itsmo.mypage.mypage = function(mode, point) { var addr = null; // 地点変更のイベント初期化 itsmo.myspot.chengeClickMap(); if (mode == 'top') { itsmo.sub.map_tab_change('mypage', ['mypage', mode]); } if (mode && mode != 'top') { // 処理中ウィンドウオープン itsmo.lib.map_wait2open('処理中'); } else if (mode == 'top') { // 処理中画像表示 itsmo.lib.document_off('ajax_leftmenu'); itsmo.lib.document_on('ajax_leftmenu_wait'); } itsmo.sub.genre_research_clear(); var i = itsmo.vars.g_map_search_location; var prm = ''; if (point) { prm = 'lat=' + point.lat + '&lon=' + point.lon } else { prm = 'lat=' + i.lat + '&lon=' + i.lon } prm += '&minx=' + itsmo.vars.g_map_search_box.minx + '&miny=' + itsmo.vars.g_map_search_box.miny + '&maxx=' + itsmo.vars.g_map_search_box.maxx + '&maxy=' + itsmo.vars.g_map_search_box.maxy; if (mode != null) prm += '&mode=' + encodeURIComponent(mode); // if (itsmo.vars.g_mypage_request != null) itsmo.lib.XMLHttpRequest2_abort(itsmo.vars.g_mypage_request); itsmo.vars.g_mypage_request = itsmo.lib.XMLHttpRequest2_send('/map/ajax_mypage.php' ,itsmo.mypage.mypage_result, 'GET', prm); itsmo.lib.lastAjaxObj = null; }; itsmo.mypage.mypage_result = function(result) { result = $(result); var err = result.find('err').text(); var text = ''; // 処理中ウィンドウクローズ if (result.find('mode').text() && result.find('mode').text() != 'top') { itsmo.lib.map_wait2close(); } else if (result.find('mode').text() == 'top') { // 処理中画像非表示 itsmo.lib.document_on('ajax_leftmenu'); itsmo.lib.document_off('ajax_leftmenu_wait'); } // エラー処理 if (err == 8) { itsmo.lib.aplErrorWindow('W', '0005', 'myhistory'); return; } else if (err == 13) { itsmo.lib.aplErrorWindow('W', '0004', 'myhome', '自宅'); return; } else if (err == 12) { itsmo.lib.aplErrorWindow('W', '0005', 'myhome', '自宅'); return; } else if (err == 11) { itsmo.lib.aplErrorWindow('W', '0003', 'myhome', '自宅'); return; } else if (err != 0) { itsmo.lib.aplErrorWindow('W', '0002', 'mypage', 'マイページ'); return; } // 完了メッセージ switch (result.find('mode').text()) { case 'home_add': itsmo.lib.aplErrorWindow('I', '0001', 'myhome', '自宅', 'home_add'); break; case 'home_del': itsmo.lib.aplErrorWindow('I', '0002', 'myhome', '自宅', 'home_del'); break; } // 自宅配置 if(itsmo.vars.g_home_tipid_c != null) { itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_home_tipid_c); itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_home_tipid_o); } if ((result.find('home lon').text() != '') && (result.find('home lat').text() != '')) { itsmo.vars.g_home_p = {lat: parseInt(result.find('home lat').text(), 10) , lon: parseInt(result.find('home lon').text(), 10)}; var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(itsmo.vars.g_home_p), { html: decodeURIComponent(result.find('home html_tipc').text()), offset: new ZDC.Pixel(-12, -34), size: new ZDC.WH(22, 34) }); tip.setZindex(itsmo.map.D_TIPZIDX_HOME); itsmo.vars.g_home_tipid_c = itsmo.vars.g_map_layer_clickable.add(tip); itsmo.vars.g_home_html_o = result.find('home html_tipo').text(); var html = decodeURIComponent(itsmo.vars.g_home_html_o); var size = itsmo.sub.getHtmlSize(html); tip = new ZDC.UserWidget(itsmo.lib.toLatLon(itsmo.vars.g_home_p), { html: html, size: size, offset: new ZDC.Pixel(-159, -(size.height) -25) }); tip.setZindex(itsmo.map.D_TIPZIDX_HOME); itsmo.vars.g_home_tipid_o = itsmo.vars.g_map_layer_clickable.add(tip); var noDisplay; if(false == itsmo.mypage.flgOpenBalloon){ noDisplay = true; } itsmo.mypage.home_openballoon(noDisplay); } else { itsmo.vars.g_home_p = null; } if(itsmo.vars.g_map_tab_mode == 'mypage') { // Myページタブ表示 itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml(result.find('html_list').text()); } // ログイン情報書き換え itsmo.vars.d_name = $('#login_name').html(); if ($('a').hasClass('btn-logout') && itsmo.vars.d_name == '') { $('div .login-head').html(''); } }; // 地図移動 itsmo.mypage.home_move = function(point) { if (point) itsmo.vars.g_home_p = point; if(itsmo.vars.g_home_p == null) { itsmo.mypage.mypage('home_add'); } else { itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(itsmo.vars.g_home_p)); itsmo.mypage.home_openballoon(); } } //------------------------------------------------ // ホームポジション //------------------------------------------------ // バルーン制御 itsmo.mypage.home_openballoon = function(noDisplay) { if(typeof noDisplay == "undefined" || noDisplay == null){ noDisplay = false; } if (itsmo.vars.g_home_tipid_o == null) { var html = decodeURIComponent(itsmo.vars.g_home_html_o); var tip = new ZDC.UserWidget(itsmo.vars.g_home_p, { html: html, size: itsmo.sub.getHtmlSize(html), offset: new ZDC.Pixel(-162, -155) }); tip.setZindex(itsmo.map.D_TIPZIDX_HOME); itsmo.vars.g_home_tipid_o = itsmo.vars.g_map_layer_clickable.add(tip); } itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_home_tipid_c); if(false == noDisplay){ itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_home_tipid_o); itsmo.mypage.flgOpenBalloon = true; } }; itsmo.mypage.home_closeballoon = function(idx) { itsmo.vars.g_map_layer_clickable.hideById(itsmo.vars.g_home_tipid_o); itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_home_tipid_c); itsmo.mypage.flgOpenBalloon = false; }; // SNS共有設定 itsmo.mypage.openSnsShare = function() { itsmo.lib.ScreenOpen(); var str = $('#wrap-map').html(); str += "
"; str += ""; str += ""; $('#wrap-map').html(str); }; itsmo.myspot = {}; itsmo.vars.g_myspot_request = null; itsmo.vars.g_myspot_list = [];//リストの内容保持 itsmo.vars.g_myspot_folder_id = [];//フォルダID itsmo.vars.g_myspot_folder_name = [];//フォルダ名 itsmo.vars.g_myspot_folder_cnt = [];//フォルダ件数 itsmo.vars.g_myspot_folder_up = [];//更新日 itsmo.vars.g_myspot_folder_selected = null; itsmo.vars.g_myspot_group_selected = null; itsmo.vars.g_myspot_tipcnt_c = 0;//TIP itsmo.vars.g_myspot_tipid_c = []; itsmo.vars.g_myspot_tiphtml_c = ''; itsmo.vars.g_myspot_tipcnt_o = 0; itsmo.vars.g_myspot_tipid_o = []; itsmo.vars.g_myspot_tiphtml_o = ''; itsmo.vars.g_myspot_opentip = null; itsmo.vars.g_myspot_elem_listfolderselect = null;//フォルダ選択ボックス itsmo.vars.g_myspot_elem_addfolderselect = null; itsmo.vars.g_myspot_elem_addikkatufolderselect = null; itsmo.vars.g_myspot_elem_myspotlistdiv = null;//myスポット一覧 itsmo.vars.g_myspot_listpage = 0; itsmo.vars.g_myspot_allcnt = 0; itsmo.vars.g_myspot_disp = ''; itsmo.vars.g_myspot_del = ''; itsmo.vars.g_myspot_edit_spot = false; // 地点変更時フラグ itsmo.vars.g_myspot_group_list = []; // グループリスト保持用 itsmo.vars.opened_cond_window = null; // リストWindow itsmo.vars.g_myspot_snspostset = {}; // SNS投稿設定保持用 itsmo.vars.g_myspot_adddata = {}; // 登録用データ //------------------------------------------------ // 基本処理 //------------------------------------------------ // メニュートップ itsmo.myspot.myspot_leftmenutop = function() { itsmo.vars.g_myspot_folder_selected = null; itsmo.vars.g_myspot_group_selected = null; itsmo.range.range_tipclear(); itsmo.myspot.myspot_clear(); itsmo.myspot.myspot_listreflesh(); }; //------------------------------------------------ // レイヤー制御 //------------------------------------------------ itsmo.myspot.myspot_clear = function() { if(itsmo.vars.g_myspot_tipcnt_c == 0 && itsmo.vars.g_myspot_tipcnt_o == 0) return; for(var i = 0;i < itsmo.vars.g_myspot_tipcnt_c;i ++) { itsmo.vars.g_map_layer_clickable.removeById( itsmo.vars.g_myspot_tipid_c[i] ) itsmo.vars.g_myspot_tipid_c[i] = null; } itsmo.vars.g_myspot_tipcnt_c = 0; itsmo.vars.g_map_layer_clickable.removeById( itsmo.vars.g_myspot_opentip ) itsmo.vars.g_myspot_opentip = null; itsmo.vars.g_myspot_opentip_uid = null; if ($('#ajax_menu-my').hasClass('act')) itsmo.sub.map_tab_sethtml(''); }; //------------------------------------------------ // バルーン制御 //------------------------------------------------ itsmo.myspot.myspot_openballoon = function(idx) { var data = itsmo.vars.g_myspot_list[idx]; // 中吹き出し var html = itsmo.vars.g_myspot_tiphtml_o; html = html.replace(/__TITLE__/g, '' + data.title); html = html.replace(/__COMMENT__/g, '' + data.comment); html = html.replace(/__ID__/g, '' + idx); html = html.replace(/__LAT__/g, '' + data.lat); html = html.replace(/__LON__/g, '' + data.lon); var view_js = ''; if (data.ckbn != '' && data.poicd != '') { // 駅詳細 // 住所一覧 // 施設詳細 if (data.view_detail != '' && data.view_detail != undefined && data.view_detail != null) { view_js = '詳細 '; } } else if (data.url != '') { // CP_URLなど view_js = '詳細 '; } else { // 施設以外 } html = html.replace(/__VIEW_DETAIL__/g, '' + view_js); //ツールチップ作成 var div_id = itsmo.myspot.myspot_tipopen(html, data, idx); }; // ツールチップ削除 itsmo.myspot.myspot_clearballoon = function() { if(itsmo.vars.g_myspot_opentip == null) return; itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_myspot_opentip); itsmo.vars.g_myspot_opentip = null; itsmo.vars.g_myspot_opentip_uid = null; itsmo.vars.g_map_draged = 2; }; // ツールチップ全部clear itsmo.myspot.myspot_TipAllClear = function(flg) { itsmo.myspot.myspot_clearballoon(); if(itsmo.vars.g_myspot_list){ $.each(itsmo.vars.g_myspot_list, function(i,val) { itsmo.vars.g_map_layer_clickable.removeById(val.tip_id); }); } itsmo.vars.g_myspot_list = {}; }; // 小吹き出し作成 itsmo.myspot.set_tooltip_s = function(tipHtml, data, idx) { var clat = data.lat; var clon = data.lon; var uid = data.uid; var div_id = 'tip_c_' + uid; tipHtml = '
' + tipHtml + '
'; var i = itsmo.vars.g_map_search_location; if ( clat == '') { clat = i.lat; } if ( clon == '') { clon = i.lon; } var point = itsmo.lib.toLatLon(clat, clon); var tip = new ZDC.UserWidget(point, { html: tipHtml, size: itsmo.sub.getHtmlSize(tipHtml), offset: new ZDC.Pixel(-8, -10) }); tip.setZindex(itsmo.map.d_map_zIdx_myspot); id = itsmo.vars.g_map_layer_clickable.add( tip ); itsmo.vars.g_map_layer_clickable.showById( id ); itsmo.vars.g_myspot_tipid_c[idx] = id; data['tip_id'] = id; itsmo.vars.g_myspot_list[idx] = data; itsmo.map.addEventTooltip(tip, itsmo.map.d_map_zIdx_myspot ); if(itsmo.vars.g_config.mapinfo_minimize != 0){ $('#'+ div_id +' .fukidasi0').attr('class','f-supper0'); } return div_id; }; // 中吹き出し表示 itsmo.vars.g_myspot_opentip_uid = null; itsmo.myspot.myspot_tipopen = function(html, data, idx) { if (itsmo.vars.g_myspot_opentip_uid == data.uid) { return; } itsmo.myspot.myspot_clearballoon(); var div_id = 'tip_o_' + data.uid; html = '
' + html + '
'; // ツールチップを作成 var point = itsmo.lib.toLatLon(data.lat, data.lon); var tip = new ZDC.UserWidget(point, { html: html, //size: itsmo.sub.getHtmlSize(html), offset: new ZDC.Pixel(-8, -10) }); tip.setZindex(itsmo.map.d_map_zIdx_myspot + 10); itsmo.vars.g_myspot_opentip = itsmo.vars.g_map_layer_clickable.add(tip); itsmo.vars.g_myspot_opentip_uid = data.uidl itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_myspot_opentip); // itsmo.vars.g_myspot_tipid_o[idx] = itsmo.vars.g_myspot_opentip; return div_id; }; //------------------------------------------------ // 登録 //------------------------------------------------ // 施設詳細(遷移) itsmo.myspot.detail_addmyspot = function(lat, lon, title, kn, addr, tel, poicd, gnrcd, ckbn) { itsmo.vars.g_myspot_disp = 'contDetail'; itsmo.myspot.other_addmyspot(lat, lon, title, kn, addr, tel, poicd, gnrcd, ckbn); }; // 施設・住所・不動産・アルバイト・ホテル・おすすめ情報の中吹き出し itsmo.myspot.other_addmyspot = function(lat, lon, title, kn, addr, tel, poicd, gnrcd, ckbn, comment, url, isAddress) { if(itsmo.lib.cookie_get('oUserInfoNavi')==''){ itsmo.lib.map_windowopen('regist_place_login_window'); return false; } setData = function(){}; setData.title = decodeURIComponent(title); setData.tel = tel; setData.lat = lat; setData.lon = lon; if (comment) { setData.comment = comment; } else { setData.comment = ''; } var fldid = '9999'; if (kn) fldid = itsmo.lib.initCheck(kn); setData.folder = fldid; setData.group = '0'; setData.regist_date = ''; setData.update_date = ''; setData.regist_client = ''; setData.update_client = ''; setData.poicd = poicd; setData.ckbn = ckbn; setData.gnrcd = gnrcd; if (url) { setData.url = url; } else { setData.url = ''; } if (addr || isAddress) { if(addr){ setData.addr = addr; } else { setData.addr = ''; } itsmo.vars.g_myspot_adddata = setData; // groupセレクトボックス if (itsmo.vars.g_myspot_group_list.length == 0 || typeof itsmo.vars.g_myspot_snspostset.con_fb === 'undefined') { itsmo.myspot.group_listget(); } else { itsmo.myspot.myspot_add(); } } else { var point = itsmo.lib.toLatLon(lat, lon); itsmo.sub.map_getaddr({ lat: lat, lon: lon}, function(result) { // itsmo.lib.map_wait2close(); if(result.status == 0) { var addr = result.items[0].address; } else { var addr = '住所なし'; } setData.addr = addr; itsmo.vars.g_myspot_adddata = setData; // groupセレクトボックス if (itsmo.vars.g_myspot_group_list.length == 0 || typeof itsmo.vars.g_myspot_snspostset.con_fb === 'undefined') { itsmo.myspot.group_listget(); } else { itsmo.myspot.myspot_add(); } }); } }; //------------------------------------------------ // myspot一覧取得 //------------------------------------------------ itsmo.myspot.myspot_listget = function(id) { if(itsmo.vars.g_myspot_folder_selected == null) itsmo.vars.g_myspot_folder_selected = ''; if(itsmo.vars.g_myspot_group_selected == null) itsmo.vars.g_myspot_group_selected = ''; var prm = 'mode=myspot_list'; prm += '&folder='+itsmo.vars.g_myspot_folder_selected+'&page='+itsmo.vars.g_myspot_listpage; prm += '&group='+itsmo.vars.g_myspot_group_selected; if(id) prm += '&id=' + id; if ($('#ajax_menu-my').hasClass('act')) { // 処理中画像表示 itsmo.lib.document_off('ajax_leftmenu'); itsmo.lib.document_on('ajax_leftmenu_wait'); } else { // 処理中ウィンドウオープン // itsmo.lib.map_wait2open('しばらくお待ちください。'); } if (itsmo.vars.g_myspot_request != null) itsmo.lib.XMLHttpRequest2_abort(itsmo.vars.g_myspot_request); itsmo.vars.g_myspot_request = itsmo.lib.XMLHttpRequest2_send('/map/ajax_myspot.php',itsmo.myspot.myspot_listget_result,'GET',prm); }; itsmo.myspot.myspot_listget_result = function(result) { // エラーチェック var err = parseInt($(result).find('err').text(), 10); if (err != 0) { if (err == 99) { itsmo.lib.aplErrorWindow('W', '0008', 'myspot'); } else { itsmo.lib.aplErrorWindow('W', '0003', 'myspot', '登録地点一覧'); if ($('#ajax_menu-my').hasClass('act')) { // 処理中画像非表示 itsmo.lib.document_on('ajax_leftmenu'); itsmo.lib.document_off('ajax_leftmenu_wait'); } return; } } if ($('#ajax_menu-my').hasClass('act')) { // 処理中画像非表示 itsmo.lib.document_on('ajax_leftmenu'); itsmo.lib.document_off('ajax_leftmenu_wait'); } // クリア itsmo.myspot.myspot_clear(); // IPリンクチップ最小化 itsmo.sub.map_maplink_tipclear(); // 小吹き出し var html_c = decodeURIComponent($(result).find('tiphtmlc').text()); itsmo.vars.g_myspot_tiphtml_c = html_c; // 中吹き出し var html_o = decodeURIComponent($(result).find('tiphtmlo').text()); itsmo.vars.g_myspot_tiphtml_o = html_o; // グループ一覧をリストに保持 var i = 0; $(result).find('group_list').each(function() { itsmo.vars.g_myspot_group_list[$(this).find('fldid').text()] = $(this).find('fldnm').text(); i++; }); // TIPS作成 i = 0; $(result).find('list').each(function() { // リスト保持 listData = function(){}; listData.uid = $(this).find('id').text(); listData.title = $(this).find('title').text(); listData.addr = $(this).find('addr').text(); listData.comment = $(this).find('comment').text(); listData.tel = $(this).find('tel').text(); listData.lat = $(this).find('lat').text(); listData.lon = $(this).find('lon').text(); listData.folder = $(this).find('folder').text(); listData.group = $(this).find('group').text(); listData.disp_imgurl = $(this).find('disp_imgurl').text(); listData.regist_date = $(this).find('regist_date').text(); listData.update_date = $(this).find('update_date').text(); listData.regist_client = $(this).find('regist_client').text(); listData.update_client = $(this).find('update_client').text(); listData.poicd = $(this).find('poicd').text(); listData.ckbn = $(this).find('ckbn').text(); listData.gnrcd = $(this).find('gnrcd').text(); listData.url = $(this).find('detail_url').text(); listData.view_detail = $(this).find('view_detail').text(); itsmo.vars.g_myspot_list[i] = listData; // 小吹き出し var html = itsmo.vars.g_myspot_tiphtml_c; html = html.replace(/__ID__/g, '' + i); html = html.replace(/__TITLE_S__/g, '' + $(this).find('title_s').text()); //ツールチップ作成 var div_id = itsmo.myspot.set_tooltip_s(html, itsmo.vars.g_myspot_list[i], i); itsmo.vars.g_myspot_tipcnt_c ++; i++; }); itsmo.vars.g_myspot_allcnt = $(result).find('allcnt').text(); if ($('#ajax_menu-my').hasClass('act')) { itsmo.sub.map_tab_sethtml($(result).find('listhtml').text()); itsmo.myspot.setSelectbox($('#init_'+itsmo.vars.g_myspot_folder_selected)); itsmo.myspot.setSelectbox($('#group_'+itsmo.vars.g_myspot_group_selected)); } else { // 左メニューリサイズ itsmo.map.setLeftContentSize(); } // 指定idを開く処理 var openid = $(result).find('openid').text(); if(openid != '') { itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(itsmo.vars.g_myspot_list[openid].lat, itsmo.vars.g_myspot_list[openid].lon)); itsmo.myspot.myspot_openballoon(openid); } // 処理中非表示 itsmo.lib.map_waitclose(); }; // 読み込みなおし itsmo.myspot.myspot_listreflesh = function() { itsmo.vars.g_myspot_listpage = 0; // 地点変更のイベント初期化 itsmo.myspot.chengeClickMap(); itsmo.myspot.myspot_listget(); }; // ページ遷移 itsmo.myspot.myspot_listpage = function(p) { itsmo.vars.g_myspot_listpage = p; // 地点変更のイベント初期化 itsmo.myspot.chengeClickMap(); itsmo.myspot.myspot_listget(); }; // 地図以外から登録地点表示 itsmo.myspot.myspot_disp = function(p) { itsmo.vars.g_myspot_listpage = 0; // マイページタブ表示 itsmo.sub.map_tab_change('myspot', ['myspot', p]); }; //------------------------------------------------ // myspot表示 //------------------------------------------------ itsmo.vars.g_myspot_view_idx = -1; itsmo.myspot.myspot_view = function(idx) { itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(itsmo.vars.g_myspot_list[idx].lat, itsmo.vars.g_myspot_list[idx].lon)); itsmo.myspot.myspot_openballoon(idx); // 地点変更のイベント初期化 itsmo.myspot.chengeClickMap(); // 文字整形 var comment = itsmo.vars.g_myspot_list[idx].comment.replace(/
/g,'\n'); var reg_cl = ''; if(itsmo.vars.g_myspot_list[idx].regist_client == 'P') reg_cl = '(PC)'; if(itsmo.vars.g_myspot_list[idx].regist_client == 'M') reg_cl = '(携帯)'; var upd_cl = ''; if(itsmo.vars.g_myspot_list[idx].update_client == 'P') upd_cl = '(PC)'; if(itsmo.vars.g_myspot_list[idx].update_client == 'M') upd_cl = '(携帯)'; // 値設定 itsmo.lib.document_setvalue('ajax_myspot_view_title',itsmo.vars.g_myspot_list[idx].title); itsmo.lib.document_setvalue('ajax_myspot_view_title2',itsmo.vars.g_myspot_list[idx].title); itsmo.lib.document_setvalue('ajax_myspot_view_imgurl',itsmo.vars.g_myspot_list[idx].disp_imgurl); itsmo.lib.document_setvalue('ajax_myspot_view_group',itsmo.vars.g_myspot_group_list[itsmo.vars.g_myspot_list[idx].group]); itsmo.lib.document_setvalue('ajax_myspot_view_folder',itsmo.myspot.myspot_foldername(itsmo.vars.g_myspot_list[idx].folder)); if (itsmo.vars.g_myspot_list[idx].group) { itsmo.lib.document_setvalue('ajax_myspot_view_group',itsmo.vars.g_myspot_group_list[itsmo.vars.g_myspot_list[idx].group]); } else { $('#ajax_myspot_view_group').parent().parent().css('display', 'none'); } itsmo.lib.document_setvalue('ajax_myspot_view_comment',itsmo.vars.g_myspot_list[idx].comment); itsmo.lib.document_setvalue('ajax_myspot_view_tel',itsmo.vars.g_myspot_list[idx].tel); itsmo.lib.document_setvalue('ajax_myspot_view_addr',itsmo.vars.g_myspot_list[idx].addr); itsmo.lib.document_setvalue('ajax_myspot_view_latlon','E'+itsmo.lib.map_dms2deg(itsmo.vars.g_myspot_list[idx].lon)+' N'+itsmo.lib.map_dms2deg(itsmo.vars.g_myspot_list[idx].lat)); itsmo.lib.document_setvalue('ajax_myspot_view_newdate',itsmo.vars.g_myspot_list[idx].regist_date + ' ' + reg_cl); itsmo.lib.document_setvalue('ajax_myspot_view_update',itsmo.vars.g_myspot_list[idx].update_date + ' ' + upd_cl); itsmo.vars.g_myspot_view_idx = idx; if (!$.support.opacity && !$.support.style && (typeof document.documentElement.style.maxHeight == "undefined")) { // IE6 $('#screen-wrap .screen').bgiframe(); } itsmo.lib.map_windowopen('ajax_myspot_view'); }; // 編集 itsmo.myspot.myspot_view_edit = function() { itsmo.lib.map_windowclose(); itsmo.myspot.myspot_addedit(itsmo.vars.g_myspot_view_idx); }; // ルート設定 itsmo.myspot.myspot_view_addstart = function() { itsmo.myroute.hereStart(itsmo.vars.g_myspot_list[itsmo.vars.g_myspot_view_idx].title, {lat:itsmo.vars.g_myspot_list[itsmo.vars.g_myspot_view_idx].lat,lon:itsmo.vars.g_myspot_list[itsmo.vars.g_myspot_view_idx].lon}); itsmo.lib.map_windowclose(); }; itsmo.myspot.myspot_view_addstop = function() { itsmo.myroute.hereByway(itsmo.vars.g_myspot_list[itsmo.vars.g_myspot_view_idx].title, {lat:itsmo.vars.g_myspot_list[itsmo.vars.g_myspot_view_idx].lat,lon:itsmo.vars.g_myspot_list[itsmo.vars.g_myspot_view_idx].lon}); itsmo.lib.map_windowclose(); }; itsmo.myspot.myspot_view_addgoal = function() { itsmo.myroute.hereGo(itsmo.vars.g_myspot_list[itsmo.vars.g_myspot_view_idx].title, {lat:itsmo.vars.g_myspot_list[itsmo.vars.g_myspot_view_idx].lat,lon:itsmo.vars.g_myspot_list[itsmo.vars.g_myspot_view_idx].lon}); itsmo.lib.map_windowclose(); }; //------------------------------------------------ // myspotいきなり表示 //------------------------------------------------ itsmo.myspot.myspot_open = function(id,fid,gid) { itsmo.sub.map_tab_change('myspot', ['myspot', id, fid, gid]); itsmo.lib.document_off('ajax_mypage_top'); itsmo.lib.document_on('ajax_mypage_myspot'); if(fid != null && fid != '') itsmo.vars.g_myspot_folder_selected = fid; if(gid != null && gid != '') itsmo.vars.g_myspot_group_selected = gid; itsmo.myspot.myspot_listget(id); return; } //------------------------------------------------ // myspot編集 //------------------------------------------------ // 新規保存(地図の中心/地図の右クリック) itsmo.myspot.myspot_addpoint = function(ckbn) { var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); // itsmo.lib.map_wait2open('しばらくお待ちください'); itsmo.vars.g_myspot_view_idx = -1; itsmo.sub.map_getaddr(loc,function(result) { // itsmo.lib.map_wait2close(); if(result.status == 0) { var addr = result.items[0].address; } else { var addr = '住所なし'; } itsmo.myspot.myspot_addpoint2(addr,loc.lat,loc.lon,ckbn); }); }; itsmo.myspot.myspot_addpoint2 = function(title,lat,lon,ckbn) { setData = function(){}; setData.title = title; setData.addr = title; setData.comment = ''; setData.tel = ''; setData.lat = lat; setData.lon = lon; setData.folder = '9999'; setData.group = '0'; setData.regist_date = ''; setData.update_date = ''; setData.regist_client = ''; setData.update_client = ''; setData.poicd = ''; setData.ckbn = (ckbn != '' && ckbn != undefined && ckbn != null)? ckbn : '' ; setData.gnrcd = ''; setData.url = ''; itsmo.vars.g_myspot_adddata = setData; // SNS投稿設定取得・設定 itsmo.myspot.grant_listget(); }; // 編集 itsmo.myspot.myspot_addedit = function(idx) { itsmo.vars.g_myspot_view_idx = idx; itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(itsmo.vars.g_myspot_list[idx].lat, itsmo.vars.g_myspot_list[idx].lon)); itsmo.vars.g_myspot_adddata = itsmo.vars.g_myspot_list[idx]; itsmo.myspot.myspot_add(); }; // ウィンドウ開く itsmo.myspot.myspot_add = function() { // グループ一覧設定 var group_sb = $('#ajax_myspot_add_group'); if(group_sb.get(0).type == 'select-one') { group_sb = group_sb.get(0); i = 0; for (var key in itsmo.vars.g_myspot_group_list) { group_sb.length = i+1; group_sb.options[i].value = key; group_sb.options[i].text = itsmo.vars.g_myspot_group_list[key]; i++; } } // 地点変更のイベント初期化 if (itsmo.vars.g_myspot_disp != 'contDetail') itsmo.myspot.chengeClickMap(); addData = itsmo.vars.g_myspot_adddata; // 文字整形 comment = addData.comment.replace(/
/g,'\n'); var reg_cl = ''; if(addData.regist_client == 'P') reg_cl = '(PC)'; if(addData.regist_client == 'M') reg_cl = '(携帯)'; var upd_cl = ''; if(addData.update_client == 'P') upd_cl = '(PC)'; if(addData.update_client == 'M') upd_cl = '(携帯)'; // タイトルの変更 if(addData.uid) { //-- 編集の場合 // タイトル設定 var head = addData.title; // 地点変更欄非表示 $('#ajax_myspot_edit_spot').show(); $('#ajax_myspot_edit_spot').click(function() { itsmo.myspot.myspotEditSpot(itsmo.vars.g_myspot_view_idx); return false; }); // SNS投稿欄非表示 $('#snspostchk').parent().hide(); } else { //-- 新規の場合 // タイトル設定 var head = "新規登録"; // 地点変更欄表示 $('#ajax_myspot_edit_spot').hide(); // SNS投稿欄表示 $('#snspostchk').parent().show(); } // 値セット itsmo.lib.document_setvalue('ajax_myspot_add_head', head); itsmo.lib.document_setvalue('ajax_myspot_add_title', addData.title); itsmo.lib.document_setvalue('ajax_myspot_add_addr', addData.addr); // コメントに住所を表示する - 新規登録時のみ 090515a-yanagawa if(addData.uid) { itsmo.lib.document_setvalue('ajax_myspot_add_comment', comment); } else { if (addData.comment) { itsmo.lib.document_setvalue('ajax_myspot_add_comment', addData.addr + addData.comment); } else { itsmo.lib.document_setvalue('ajax_myspot_add_comment', addData.addr); } } itsmo.lib.document_setvalue('ajax_myspot_add_tel', addData.tel); itsmo.lib.document_setvalue('ajax_myspot_add_latlon', 'E'+itsmo.lib.map_dms2deg(addData.lon)+' N'+itsmo.lib.map_dms2deg(addData.lat)); if(addData.regist_client) { itsmo.lib.document_setvalue('ajax_myspot_add_newdate', addData.regist_date + ' ' + reg_cl); } else { itsmo.lib.document_setvalue('ajax_myspot_add_newdate', ''); } if(addData.update_client) { itsmo.lib.document_setvalue('ajax_myspot_add_update', addData.update_date + ' ' + upd_cl); } else { itsmo.lib.document_setvalue('ajax_myspot_add_update', ''); } itsmo.lib.document_setvalue('ajax_myspot_add_folder', addData.folder); if (addData.group) { itsmo.lib.document_setvalue('ajax_myspot_add_group', addData.group); } else { $('#ajax_myspot_add_group').parent().parent().css('display', 'none'); } itsmo.lib.document_setvalue('ajax_myspot_add_imgurl', addData.disp_imgurl); itsmo.lib.document_setvalue('ajax_myspot_add_id', addData.uid); itsmo.lib.document_setvalue('ajax_myspot_add_lat', addData.lat); itsmo.lib.document_setvalue('ajax_myspot_add_lon', addData.lon); itsmo.lib.document_setvalue('ajax_myspot_add_poicd', addData.poicd); itsmo.lib.document_setvalue('ajax_myspot_add_ckbn', addData.ckbn); itsmo.lib.document_setvalue('ajax_myspot_add_gnrcd', addData.gnrcd); itsmo.lib.document_setvalue('ajax_myspot_add_url', addData.url); // SNS投稿設定 var sns_obj = $('#snspostchk'); var sns_set = itsmo.vars.g_myspot_snspostset; if (sns_set.con_fb || sns_set.con_twt || sns_set.con_mixi) { sns_obj.find('#snscon_on').show(); sns_obj.find('#snscon_off').hide(); if (sns_set.con_fb) { if (sns_set.tar_fb) { sns_obj.find('#sns_chk_fb').attr('checked','checked'); } else { sns_obj.find('#sns_chk_fb').attr('checked', false); } sns_obj.find('#sns_chk_fb').parent().parent().show(); } if (sns_set.con_twt) { if (sns_set.tar_twt) { sns_obj.find('#sns_chk_tw').attr('checked','checked'); } else { sns_obj.find('#sns_chk_tw').attr('checked', false); } sns_obj.find('#sns_chk_tw').parent().parent().show(); } if (sns_set.con_mixi) { if (sns_set.tar_mixi) { sns_obj.find('#sns_chk_mixi').attr('checked','checked'); } else { sns_obj.find('#sns_chk_mixi').attr('checked', false); } sns_obj.find('#sns_chk_mixi').parent().parent().show(); } } else { sns_obj.find('#snscon_on').hide(); sns_obj.find('#snscon_off').show(); } if (itsmo.vars.g_myspot_disp != 'contDetail') { if (!$.support.opacity && !$.support.style && (typeof document.documentElement.style.maxHeight == "undefined")) { // IE6 $('#screen-wrap .screen').bgiframe(); } } itsmo.lib.map_windowopen('ajax_myspot_add'); }; // 保存 ------------------------------------------ itsmo.myspot.myspot_add_submit = function() { // 値を取得 var title = itsmo.lib.document_getvalue('ajax_myspot_add_title'); var addr = itsmo.lib.document_getvalue('ajax_myspot_add_addr'); var comment = itsmo.lib.document_getvalue('ajax_myspot_add_comment'); var tel = itsmo.lib.document_getvalue('ajax_myspot_add_tel'); var folder = itsmo.lib.document_getvalue('ajax_myspot_add_folder'); if ($('#ajax_myspot_add_group').parent().parent().css('display') == 'none') { var group = 0; } else { var group = itsmo.lib.document_getvalue('ajax_myspot_add_group'); } var id = itsmo.lib.document_getvalue('ajax_myspot_add_id'); var lat = itsmo.lib.document_getvalue('ajax_myspot_add_lat'); var lon = itsmo.lib.document_getvalue('ajax_myspot_add_lon'); var poicd = itsmo.lib.document_getvalue('ajax_myspot_add_poicd'); var ckbn = itsmo.lib.document_getvalue('ajax_myspot_add_ckbn'); var gnrcd = itsmo.lib.document_getvalue('ajax_myspot_add_gnrcd'); var url = itsmo.lib.document_getvalue('ajax_myspot_add_url'); var post_f = itsmo.lib.document_getvalue('sns_chk_fb'); var post_t = itsmo.lib.document_getvalue('sns_chk_tw'); var post_m = itsmo.lib.document_getvalue('sns_chk_mixi'); var posts = []; if (post_f) posts.push(post_f); if (post_t) posts.push(post_t); if (post_m) posts.push(post_m); // 入力チェック ------------------------------ // タイトル title = title.replace(/^[\s ]+|[\s ]+$/g, ""); if(title.length < 2 || title.length > 24) { alert("タイトルは2~24文字で入力して下さい"); return; } // コメント tmp = comment; tmp = tmp.replace(/^[\s ]+|[\s ]+$/g, ""); tmp = tmp.replace(/\n/g,''); tmp = tmp.replace(/\r/g,''); if(tmp.length > 60) { alert("コメントは60文字以内で入力して下さい"); return; } // 電話番号 if(tel.length > 15) { alert("電話番号は15文字以内で入力して下さい"); return; } if(tel.match(/[^0-9-]+/)) { alert("電話番号は半角数字とハイフンで入力して下さい"); return; } // 実行 var prm = 'mode=myspot_edit'; prm += '&title='+encodeURIComponent(title)+'&addr='+encodeURIComponent(addr)+'&comment='+encodeURIComponent(comment)+'&tel='+encodeURIComponent(tel)+'&folder='+encodeURIComponent(folder); prm += '&group='+encodeURIComponent(group)+'&id=' + id + '&lat=' + lat + '&lon=' + lon + '&poicd=' + poicd + '&ckbn=' + ckbn + '&gnrcd=' + gnrcd + '&url=' + encodeURIComponent(url); if (posts.length > 0) prm += '&target='+encodeURIComponent(posts.join(',')); var path = '/map/ajax_myspot.php'; if (itsmo.vars.g_myspot_disp == 'contDetail') path = 'https://' + itsmo.vars.d_host_www + '/map/ajax_myspot.php'; itsmo.lib.map_windowclose(); itsmo.lib.XMLHttpRequest2_send_wait(path,itsmo.myspot.myspot_add_submit_result,'GET',prm,'保存中'); }; itsmo.myspot.myspot_add_submit_result = function(result) { // エラーチェック var err = $(result).find('err').text(); if(err != 0) { if (err == 99) { itsmo.lib.aplErrorWindow('W', '0008', 'myspot'); } else { itsmo.lib.aplErrorWindow('W', '0004', 'myspot', '登録地点'); } return; } // 確認ウィンドウ itsmo.lib.aplErrorWindow('I', '0001', 'myspot', '登録地点', 'spotadd'); // 正常処理 if (itsmo.vars.g_myspot_disp != 'contDetail') itsmo.myspot.myspot_listreflesh();//一覧更新 }; // 削除 ------------------------------------------ itsmo.myspot.myspot_del = function(idx) { // 地点変更のイベント初期化 itsmo.myspot.chengeClickMap(); if (typeof idx === 'undefined') { // 一覧から削除 var cnt = itsmo.lib.getCheckNum('ajax_mayspot_list_del'); if (cnt == false) { itsmo.lib.aplErrorWindow('E', '0006', 'myspot', '登録地点'); return; } } else { // 登録地点中吹き出しから削除 itsmo.vars.g_myspot_del = itsmo.vars.g_myspot_list[idx].uid; } itsmo.lib.map_confirm('登録地点の削除','選択した登録地点を削除いたします。
よろしいですか?',itsmo.myspot.myspot_del_submit); }; itsmo.myspot.myspot_del_submit = function() { if(itsmo.vars.g_map_confirm_yes == 0) return; if (itsmo.vars.g_myspot_del == '') { var i = 0; var del = ''; while(1) { var flg = itsmo.lib.document_getvalue('ajax_mayspot_list_del'+i); if (flg == null) break; if (flg != '') { if (del) del = del + ','; del = del + itsmo.vars.g_myspot_list[i].uid; } i++; } itsmo.vars.g_myspot_del = del; } // 実行 var prm = 'mode=myspot_del'; prm += '&id=' + itsmo.vars.g_myspot_del; itsmo.lib.XMLHttpRequest2_send_wait('/map/ajax_myspot.php',itsmo.myspot.myspot_del_result,'GET',prm,'削除中'); }; itsmo.myspot.myspot_del_result = function(result) { // エラーチェック var err = parseInt($(result).find('err').text(), 10); if(err != 0) { if (err == 99) { itsmo.lib.aplErrorWindow('W', '0008', 'myspot'); } else { itsmo.lib.aplErrorWindow('W', '0005', 'myspot', '登録地点'); } return; } itsmo.vars.g_myspot_del = ''; // 確認ウィンドウ itsmo.lib.aplErrorWindow('I', '0002', 'myspot', '登録地点', 'spotdel'); // 正常処理 itsmo.myspot.myspot_clearballoon(); // ツールチップ削除 itsmo.myspot.myspot_listreflesh(); // 一覧更新 }; //-------------------------------------------------------------------------------------------------- // フォルダ一覧取得 //-------------------------------------------------------------------------------------------------- itsmo.myspot.myspot_folderlistget = function(func) { // 特にする事なし itsmo.vars.g_myspot_folder_selected = 0; }; // フォルダidをフォルダ名に変更 itsmo.myspot.myspot_foldername = function(id) { if(id == 1) return 'あ行'; if(id == 2) return 'か行'; if(id == 3) return 'さ行'; if(id == 4) return 'た行'; if(id == 5) return 'な行'; if(id == 6) return 'は行'; if(id == 7) return 'ま行'; if(id == 8) return 'や行'; if(id == 9) return 'ら行'; if(id == 10) return 'わ行'; return 'その他'; }; //-------------------------------------------------------------------------------------------------- // グループ一覧取得(SNS投稿設定も同時取得) //-------------------------------------------------------------------------------------------------- // フォルダidをフォルダ名に変更 itsmo.myspot.group_listget = function() { var prm = 'mode=group_list'; /* if ($('#ajax_menu-my').hasClass('act')) { // 処理中画像表示 itsmo.lib.document_off('ajax_myspot_add'); itsmo.lib.document_on('ajax_myspot_window_wait'); } */ itsmo.lib.XMLHttpRequest2_send('/map/ajax_myspot.php',itsmo.myspot.group_listget_result,'GET',prm); return ''; }; itsmo.myspot.group_listget_result = function(result) { // エラーチェック var err = parseInt($(result).find('err').text(), 10); if (err != 0) { if (err == 99) { itsmo.lib.aplErrorWindow('W', '0008', 'myspot_group'); } else { itsmo.lib.aplErrorWindow('W', '0003', 'myspot_group', '登録地点グループ'); } return; } // グループ一覧をリストに保持 var i = 0; var group_sb = $('#ajax_myspot_add_group'); if(group_sb.get(0).type == 'select-one') { group_sb = group_sb.get(0); $(result).find('group_list').each(function() { itsmo.vars.g_myspot_group_list[$(this).find('fldid').text()] = $(this).find('fldnm').text(); i++; group_sb.length = i; group_sb.options[$(this).find('fldid').text()].value = $(this).find('fldid').text(); group_sb.options[$(this).find('fldid').text()].text = $(this).find('fldnm').text(); }); } // SNS投稿設定を保持 var setdata = {}; setdata.con_fb = $(result).find('con_fb').text() setdata.con_twt = $(result).find('con_twt').text() setdata.con_mixi = $(result).find('con_mixi').text() setdata.tar_fb = $(result).find('tar_fb').text() setdata.tar_twt = $(result).find('tar_twt').text() setdata.tar_mixi = $(result).find('tar_mixi').text() itsmo.vars.g_myspot_snspostset = setdata; itsmo.myspot.myspot_add(); // other_addmyspot で登録用データ整形済み } //-------------------------------------------------------------------------------------------------- // SNS投稿設定取得 //-------------------------------------------------------------------------------------------------- itsmo.myspot.grant_listget = function() { var prm = 'mode=grant_list'; itsmo.lib.XMLHttpRequest2_send('/map/ajax_myspot.php',itsmo.myspot.grant_listget_result,'GET',prm); return ''; }; itsmo.myspot.grant_listget_result = function(result) { // エラーチェック var err = parseInt($(result).find('err').text(), 10); if (err != 0) { return; } // SNS投稿設定を保持 var setdata = {}; setdata.con_fb = $(result).find('con_fb').text() setdata.con_twt = $(result).find('con_twt').text() setdata.con_mixi = $(result).find('con_mixi').text() setdata.tar_fb = $(result).find('tar_fb').text() setdata.tar_twt = $(result).find('tar_twt').text() setdata.tar_mixi = $(result).find('tar_mixi').text() itsmo.vars.g_myspot_snspostset = setdata; itsmo.myspot.myspot_add(); } //------------------------------------------------ // 地点変更 //------------------------------------------------ //地点変更イベント itsmo.myspot.myspotEditSpot = function(idx) { itsmo.vars.g_myspot_edit_spot = true; itsmo.myspot.myspot_clearballoon(); itsmo.lib.map_windowclose(); if(idx != null){ itsmo.myspot.chengeClickMap(1, idx); }else{ alert("不正な操作がありました。"); } }; //地点変更画面表示 itsmo.myspot.showEditLocation = function(idx){ itsmo.lib.map_windowopen('ajax_myspot_editspot'); itsmo.myspot.setEditLocaData(idx); if (!$.support.opacity && !$.support.style && (typeof document.documentElement.style.maxHeight == "undefined")) { // IE6 // $('#poi_work #screen-wrap .screen').bgiframe(); } }; //地点変更画面にデータセット itsmo.myspot.setEditLocaData = function(idx){ var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); itsmo.vars.g_map_obj.moveLatLon(itsmo.vars.g_map_obj.getPointerPosition()); itsmo.lib.document_setvalue('ajax_myspot_editspot_title', itsmo.vars.g_myspot_list[idx].title); itsmo.lib.document_setvalue('ajax_myspot_editspot_title_sub','「' + itsmo.vars.g_myspot_list[idx].title + '」の地点をこの場所に変更します。'); itsmo.lib.document_setvalue('ajax_myspot_editspot_idx',idx); itsmo.sub.map_getaddr(loc, function(result) { if(result.status == 0) { addr = result.items[0].address; } else { addr = '住所なし'; } itsmo.lib.document_setvalue('ajax_myspot_editspot_addr', addr); }); }; //地点変更 itsmo.myspot.editLocation = function(idx, mode){ itsmo.vars.g_myspot_edit_spot = false; switch (mode) { case "cancel": itsmo.lib.map_windowclose(); itsmo.lib.map_windowopen('ajax_myspot_add'); if (!$.support.opacity && !$.support.style && (typeof document.documentElement.style.maxHeight == "undefined")) { // IE6 // $('#poi_work #screen-wrap .screen').bgiframe(); } itsmo.myspot.chengeClickMap(); break; default: var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); spot_lat = loc.lat; spot_lon = loc.lon; addr = itsmo.lib.document_getvalue('ajax_myspot_editspot_addr'); itsmo.lib.document_setvalue('ajax_myspot_add_addr',addr); itsmo.lib.document_setvalue('ajax_myspot_add_lat',spot_lat); itsmo.lib.document_setvalue('ajax_myspot_add_lon',spot_lon); itsmo.lib.document_setvalue('ajax_myspot_add_latlon', 'E'+itsmo.lib.map_dms2deg(spot_lon)+' N'+itsmo.lib.map_dms2deg(spot_lat)); // $('#ajax_myspot_editspot').remove(); itsmo.lib.map_windowclose(); //元に戻す itsmo.myspot.chengeClickMap(); itsmo.lib.map_windowopen('ajax_myspot_add'); /* if (!$.support.opacity && !$.support.style && (typeof document.documentElement.style.maxHeight == "undefined")) { // IE6 $('#poi_work #screen-wrap .screen').bgiframe(); } */ } }; //地点変更時マウスカーソル処理 itsmo.myspot.chengeClickMap = function(flg, idx) { if(flg){ itsmo.map.setMouseCursor("users","/design/cur/pencil.cur","/design/cur/pencil.cur"); ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CLICK, function() { // マウスドラッグ時もクリックイベントが発生してしまうためドラッグ時は除外する if (!itsmo.vars.g_mouseDrag && !itsmo.vars.g_map_click_cancel) { itsmo.map.map_clickmap(); itsmo.myspot.showEditLocation(idx); } itsmo.map.setMouseCursor("users","/design/cur/pencil.cur","/design/cur/pencil.cur"); }); }else{ /* dcmpcfunc.OnClickFlg.flg = false; dcmpcfunc.OnClickFlg.method_name = null; if(itsmo.vars.g_myspot_edit_spot == true){ // 地点変更時にhideになっているウィンドウを削除 itsmo.vars.g_myspot_edit_spot = false; $('#poi_work #poi_detail').hide(); $('#poi_work #poi_detail_edit').hide(); } */ itsmo.map.setMouseCursor("hand"); ZDC.clearListeners(itsmo.vars.g_map_obj, ZDC.MAP_CLICK); if(itsmo.vars.premiumMap != null && typeof(itsmo.vars.premiumMap.reAddListener) == 'function'){ itsmo.vars.premiumMap.reAddListener(); } ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CLICK, itsmo.map.map_clickmap); //ルート設定中 if(itsmo.myroute.isSettingFlg){ itsmo.vars.g_myroute_eventx = -1; itsmo.vars.g_myroute_event.push(ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CLICK, function() { if(itsmo.vars.g_myroute_eventx < 5) { itsmo.myroute.myroute_panel_addmap(); itsmo.vars.g_myroute_eventx = 99; } })); } } }; // リストを開く itsmo.myspot.showListSelect = function(e, divid){ var id = $(e).attr('id') + '_cond'; if(itsmo.vars.opened_cond_window == id){ var bl = id }; itsmo.myspot.hideCondSelect(); if (bl) { return false; } itsmo.vars.opened_cond_window = id; $('#' + id).fadeIn('fast'); }; //リスト閉じる itsmo.myspot.hideCondSelect = function() { itsmo.vars.opened_cond_window = null; $("div[class^='sis-search-paka-waku-'] div.sis-search-paka-genre").hide(); }; // グループwindowオープン itsmo.myspot.grouplist_view = function(idx) { // selectbox閉じる itsmo.myspot.hideCondSelect(); var group_title_obj = null; var group_title_key_obj = null; var i = 0; for (var key in itsmo.vars.g_myspot_group_list) { if (i == 0) { i++;continue; } group_title_obj = $('#ajax_group_title'+i).get(0); group_title_key_obj = $('#ajax_group_title_key'+i).get(0); group_title_obj.value = itsmo.vars.g_myspot_group_list[key]; group_title_key_obj.value = key; i++; } if (!$.support.opacity && !$.support.style && (typeof document.documentElement.style.maxHeight == "undefined")) { // IE6 $('#screen-wrap .screen').bgiframe(); } itsmo.lib.map_windowopen('ajax_group_add'); }; itsmo.myspot.group_add_submit = function() { // 実行 var prm = 'mode=group_add'; var val_obj = null; for(var i = 1;i < 11;i++) { key_obj = $('#ajax_group_title_key'+i).get(0); val_obj = $('#ajax_group_title'+i).get(0); if (val_obj.value == '') { alert("グループ名を入力してください"); return; } if (val_obj.value.length > 10) { alert("グループ名は10桁以下で入力してください"); return; } prm += '&group_arr[' + key_obj.value + ']=' + val_obj.value; } itsmo.lib.map_windowclose(); itsmo.lib.XMLHttpRequest2_send_wait('/map/ajax_myspot.php',itsmo.myspot.group_add_submit_result,'GET',prm,'保存中'); }; itsmo.myspot.group_add_submit_result = function(result) { // エラーチェック var err = parseInt($(result).find('err').text(), 10); if(err != 0) { if (err == 99) { itsmo.lib.aplErrorWindow('W', '0008', 'myspot_group'); } else { itsmo.lib.aplErrorWindow('W', '0004', 'myspot_group', '登録地点グループ'); } return false; } // 確認ウィンドウ itsmo.lib.aplErrorWindow('I', '0001', 'myspot_group', '登録地点グループ', 'spotgroupadd'); itsmo.myspot.myspot_listreflesh(); // 一覧更新 }; //リストから選択 itsmo.myspot.setSearchCond = function(obj, key) { itsmo.myspot.hideCondSelect(); var obj_id = $(obj).attr("id"); if (obj_id.match(/^init/)) { itsmo.vars.g_myspot_folder_selected = key; } else if (obj_id.match(/^group/)) { itsmo.vars.g_myspot_group_selected = key; } itsmo.myspot.myspot_listreflesh(); // 一覧更新 }; itsmo.myspot.setSelectbox = function (obj) { e = $(obj); if ($(e).attr("id") == 'undefined') return; var txt = e.text(); var i, f = null; for (i = 0; i < 10; ++i) { e = e.parent(); f = e.find('span.box-s'); if (f.length >= 1) { break; } } if (null == f) { return false; } f.text(txt); }; itsmo.mysnspost = {}; itsmo.vars.g_mysnspost_request = null; itsmo.vars.g_mysnspost_list = [];//リストの内容保持 itsmo.vars.g_mysnspost_del = ''; itsmo.vars.g_mysnspost_edit_spot = false; // 地点変更時フラグ itsmo.vars.g_mysnspost_group_list = []; // グループリスト保持用 itsmo.vars.opened_cond_window = null; // リストWindow //------------------------------------------------ // mysnspost表示 //------------------------------------------------ // SNS投稿設定ウィンドウ表示 itsmo.mysnspost.mysnspost_view = function() { // 処理中ウィンドウオープン itsmo.lib.map_wait2open('読み込み中…'); // SNS投稿設定取得 var prm = 'mode=postget'; itsmo.lib.XMLHttpRequest2_send('/map/ajax_mysnspost.php', itsmo.mysnspost.mysnspost_get_result, 'GET', prm); }; itsmo.mysnspost.mysnspost_get_result = function(result) { // 処理中非表示 itsmo.lib.map_wait2close(); // エラーチェック var err = $(result).find('err').text(); if (err != 0) { itsmo.lib.aplErrorWindow('W', '0003', 'mysnspost', 'SNS投稿設定'); return false; } var html = $(result).find('post_win').text(); $('#ajax_mysnspost_edit').html(html); if (!$.support.opacity && !$.support.style && (typeof document.documentElement.style.maxHeight == "undefined")) { // IE6 $('#screen-wrap .screen').bgiframe(); } // SNS投稿設定表示 itsmo.lib.map_windowopen('ajax_mysnspost_edit'); }; //------------------------------------------------ // mysnspost編集 //------------------------------------------------ // 保存 ------------------------------------------ itsmo.mysnspost.mysnspost_edit = function() { // 値を取得 var set_f = itsmo.lib.document_getvalue('sns_set_fb'); var set_t = itsmo.lib.document_getvalue('sns_set_tw'); var set_m = itsmo.lib.document_getvalue('sns_set_mixi'); var sets = new Array(); if (set_f) sets.push(set_f); if (set_t) sets.push(set_t); if (set_m) sets.push(set_m); // 実行 var prm = 'mode=mysnspost_edit'; prm += '&target='+encodeURIComponent(sets.join(',')); var path = '/map/ajax_mysnspost.php'; itsmo.lib.map_windowclose(); itsmo.lib.XMLHttpRequest2_send_wait(path, itsmo.mysnspost.mysnspost_edit_result, 'GET', prm, '保存中'); }; itsmo.mysnspost.mysnspost_edit_result = function(result) { // エラーチェック var err = $(result).find('err').text(); if (err != 0) { if (err == 99) { itsmo.lib.aplErrorWindow('W', '0008', 'mysnspost'); } else { itsmo.lib.aplErrorWindow('W', '0004', 'mysnspost', 'SNS投稿設定'); } return; } // グローバル変数初期化 itsmo.vars.g_myspot_snspostset = {}; // 確認ウィンドウ itsmo.lib.aplErrorWindow('I', '0001', 'mysnspost', 'SNS投稿設定', 'snspostedit'); }; itsmo.vars.g_myroute_stop_num = 0;// 地点の数(出発+経由+目的) itsmo.vars.g_myroute_stops = [];// 位置選択リスト itsmo.vars.g_myroute_list = [];// リストの地点 itsmo.vars.g_myroute_elem_myroutelistdiv = null;//myスポット一覧 itsmo.vars.g_myroute_list_page = 0; itsmo.vars.g_myroute_routetitle = null; itsmo.vars.g_myroute_cond = null; itsmo.vars.g_myroute_rows = 10; itsmo.vars.g_myroute_cnt = 0; //地点の数をカウント itsmo.vars.g_route_tab_displayed = 0; itsmo.vars.routeKeep = 0; itsmo.vars.routeSearchResultKeep = 0; itsmo.myroute = {}; //入力チェック dcmpcsite より移植 itsmo.validate = {}; itsmo.validate.msg = {"required": 'は必須項目です', "tel" : 'は半角数字とハイフンで入力してください', "range" : '文字以内で入力してください', "num" : 'は半角数字で入力してください', "eisu" : 'は半角英数字で入力してください', "min" : '文字以上で入力してください', "email" : 'の形式が正しくありません', "url" : 'の形式が正しくありません', "date" : 'が正しくありません' }; itsmo.validate.msgEn = {"required": ['Your ', ' is mandatory.'], "tel" : ['Please enter a hyphen numbers and ', '.'], "range" : ['Please enter more than ', ' characters.'], "num" : ['Please enter a number of ', '.'], // "eisu" : 'は半角英数字で入力してください', "min" : ['Please enter at least ', ' characters.'], "email" : ['Is not in the correct format of ', '.'], "url" : ['Is not in the correct format of ', '.'], "date" : 'Invalid date.' }; itsmo.validate.msgAlert = true; itsmo.validate.messages = ''; itsmo.validate.isEn = false; itsmo.validate.check = function(arry) { itsmo.validate.messages = ''; var flg = true for (var i=0; i < arry['option'].length; i++) { var op = arry['option'][i].split(","); // 必須チェック if (op[0] == 'required') { if (!$('#'+ arry['id']).val()) { itsmo.validate.setMsg('required',arry['name']); flg = false; } } else if ($('#'+ arry['id']).val()) { switch (op[0]) { // スペースチェック case 'space': var req = $('#'+ arry['id']).val(); req = req.replace(/\s| /g,""); //req = jQuery.trim(req); if (!req) { itsmo.validate.setMsg('required',arry['name']); flg = false; } break; // 文字数範囲チェック case 'range': if (!op[1]) { op[1] = 0; } if (!op[2]) { op[2] = 0; } if ($('#'+ arry['id']).val().length < op[1] || $('#'+ arry['id']).val().length > op[2]) { itsmo.validate.setMsg('range',arry['name'] + "は" + op[1] + "~" + op[2]); flg = false; } break; // 電話番号チェック case 'tel': var num="0123456789-"; var tmp=new Array(); for (var i = 0; i < $('#'+ arry['id']).val().length; i++) { tmp[i] = $('#'+ arry['id']).val().substring(i,i+1); var f = num.indexOf(tmp[i]); if (f == -1){ itsmo.validate.setMsg('tel',arry['name']); flg = false; break; } } break; // 数字チェック case 'num': var req = $('#'+ arry['id']).val(); if (!req.match(/(\d+)/)) { itsmo.validate.setMsg('num',arry['name']); flg = false; } break; // 半角英数字チェック case 'eisu': var req = $('#'+ arry['id']).val(); if (req.match(/[^A-Za-z\s.-]+/)) { itsmo.validate.setMsg('eisu',arry['name']); flg = false; } break; // 最大文字数チェック case 'rangeMax': if (!op[1]) { op[1] = 0; } if ($('#'+ arry['id']).val().length > op[1]) { itsmo.validate.setMsg('range',arry['name'] + "は" + op[1]); flg = false; } break; // 最小文字数チェック case 'rangeMin': if (!op[1]) { op[1] = 0; } if ($('#'+ arry['id']).val().length < op[1]) { itsmo.validate.setMsg('range',arry['name'] + "は" + op[1]); flg = false; } break; // メールアドレスチェック case 'email': var str = $('#'+ arry['id']).val(); if (!str.match(/^[A-Za-z0-9]+[\w\.-]+@[\w\.-]+\.\w{2,}$/)) { itsmo.validate.setMsg('email',arry['name']); flg = false; } break; // URLチェック case 'url': var str = $('#'+ arry['id']).val(); if (!str.match(/^(http|https):\/\/.+/)) { itsmo.validate.setMsg('url',arry['name']); flg = false; } break; default: flg = true; } if (flg == false) { break; } } else if (op[0] == 'date') { // 日付妥当性チェック var year = arry['val'].substr(0, 4) - 0; var month = arry['val'].substr(4, 2) - 1; var day = arry['val'].substr(6, 2) - 0; var retDate = new Date(year, month, day); if (isNaN(retDate)) { itsmo.validate.setMsg('date',arry['name']); flg = false; } else if ( !(retDate.getFullYear() == year && retDate.getMonth() == month && retDate.getDate() == day)) { itsmo.validate.setMsg('date',arry['name']); flg = false; } } } if (itsmo.validate.msgAlert) { return flg; } else { return itsmo.validate.messages; } }; itsmo.validate.setMsg = function(type, title) { var mess = ''; if (itsmo.validate.isEn) { var msgs = itsmo.validate.msgEn[type]; mess = msgs[0] + title + msgs[1]; } else { mess = title + itsmo.validate.msg[type]; } if (itsmo.validate.msgAlert) { alert(mess); } else { itsmo.validate.messages = mess; } }; itsmo.vars.g_myroute_flag2id = []; itsmo.vars.g_myroute_poilyrtips = []; //-------------------------------------------------------------------------------------------------- // ルート探索 分岐 //-------------------------------------------------------------------------------------------------- itsmo.myroute.myroute_panel_submit = function() { itsmo.myroute.myroute_cond_submit(); // スタート・ゴールが無い場合に並び替える if(itsmo.vars.g_myroute_stops[0] == null) { for(var i = 1;i < itsmo.vars.g_myroute_stop_num-2;i ++) { if(itsmo.vars.g_myroute_stops[i] != null) { itsmo.vars.g_myroute_stops[i-1] = itsmo.vars.g_myroute_stops[i]; itsmo.vars.g_myroute_stops[i] = null; } } } if(itsmo.vars.g_myroute_stops[itsmo.vars.g_myroute_stop_num-1] == null) { for(var i = itsmo.vars.g_myroute_stop_num-1;i >= 1;i --) { if(itsmo.vars.g_myroute_stops[i] != null) { itsmo.vars.g_myroute_stops[itsmo.vars.g_myroute_stop_num-1] = itsmo.vars.g_myroute_stops[i]; itsmo.vars.g_myroute_stops[i] = null; break; } } } if (itsmo.vars.g_myroute_stops[0] == null || itsmo.vars.g_myroute_stops[itsmo.vars.g_myroute_stop_num-1] == null) { return false; } itsmo.vars.g_route_vics.show_mode = 'nomal'; itsmo.myroute.myroute_panel_submit_all(); }; // 消去 itsmo.myroute.myroute_panel_lyrclear = function() { // 自動車 if(itsmo.vars.g_myroute_routeobj != null) { itsmo.map.closeUserMsgWindow(); //itsmo.vars.g_map_obj.removeRouteSearch(); } // 電車 if(itsmo.vars.g_myroute_prouteobj != null) { itsmo.map.closeUserMsgWindow(); //itsmo.vars.g_map_obj.removePRouteSearch(); } // 徒歩 if(itsmo.vars.g_myroute_trainobj != null) { itsmo.map.closeUserMsgWindow(); //itsmo.vars.g_myroute_trainobj.clearRoute(); } itsmo.myroute.myroute_panel_lyrclear_tips(); }; itsmo.myroute.myroute_panel_lyrclear_tips = function() { itsmo.myroute.myroute_flagclear(); if (itsmo.vars.g_myroute_poilyrtips.length >= 1) { $.each(itsmo.vars.g_myroute_poilyrtips, function(i, v) { if (null != v) { itsmo.vars.g_map_layer_clickable.removeById(v); } }); itsmo.vars.g_myroute_poilyrtips = []; itsmo.vars.g_map_layer_route.clear(); } // ルートアイコンを消す itsmo.vars.g_map_layer_route.clearMarker(); itsmo.vars.g_map_layer_clickable.clearMarker(); }; //-------------------------------------------------------------------------------------------------- // 自動車ルート //-------------------------------------------------------------------------------------------------- itsmo.vars.g_myroute_routeobj = null;// ルート探索 // 検索処理 itsmo.myroute.myroute_panel_submit_car = function() { // 初期化 // 検索条件 itsmo.myroute.myroute_panel_eventdel(); itsmo.map.setMouseCursor('hand'); // 地点設定 var query = { from: itsmo.lib.toLatLon(itsmo.vars.g_myroute_stops[0]),//出発 to: itsmo.lib.toLatLon(itsmo.vars.g_myroute_stops[itsmo.vars.g_myroute_stop_num - 1]),//到着 mpoints: [], smartic: !!itsmo.vars.g_myroute_configs.car['smart'] //スマートIC }; for(var i = 1;i < itsmo.vars.g_myroute_stop_num-1; i++) {//経由 if(itsmo.vars.g_myroute_stops[i] == null) break; query['mpoints'].push(itsmo.lib.toLatLon(itsmo.vars.g_myroute_stops[i])); } // 探索条件 switch(itsmo.vars.g_myroute_configs.car['opt1']) { case '0':// 推奨ルート query['toll'] = true; query['straight'] = false; break; case '1':// 有料 query['toll'] = true; query['straight'] = false; break; case '2':// 一般 query['toll'] = false; query['straight'] = false; break; case '3':// 直線 query['straight'] = true; break; } switch (itsmo.vars.g_myroute_configs.car['opt2']) { case '0': query['cartype'] = 'light'; break; case '1': default: query['cartype'] = 'normal'; break; case '2': query['cartype'] = 'middle'; break; case '3': query['cartype'] = 'large'; break; case '4': query['cartype'] = 'big'; break; } //itsmo.vars.g_myroute_routeopts.sdate = itsmo.vars.g_myroute_configs.car['date'] + itsmo.vars.g_myroute_configs.car['time']; // 探索実行 itsmo.lib.map_wait2open("ルート計算中"); ZDC.Search.getRouteByDrive(query, itsmo.myroute.myroute_panel_result_car); }; // 結果の処理 ------------------------------------ itsmo.vars.g_myroute_icstart = null; itsmo.vars.g_myroute_icend = null; itsmo.myroute.myroute_panel_result_car = function() { // ルートタイプ取得 var routeType = itsmo.myroute.route.getRouteType(0); // ルート候補取得 var obj = itsmo.myroute.route.getRouteList(); if (false === obj || obj.length <= 0) { // フロート非表示 itsmo.lib.map_wait2close(); itsmo.lib.aplErrorWindow('E','0011',null,'(type=3)'); itsmo.myroute.myroute_panel_list(); return false; } // ルートを非表示 itsmo.myroute.myroute_panel_lyrclear_tips(); var idx = 0; itsmo.vars.g_myroute_icstart = null; itsmo.vars.g_myroute_icend = null; /* if (flg) { // ルート再検索 itsmo.myroute.route.research(idx); } */ // ルートを表示 itsmo.myroute.route.drawRoute(idx); // ルート候補取得(1件) var obj = itsmo.myroute.route.getRouteList(idx); // 距離 itsmo.lib.document_setvalue('ajax_myroute_panel3dis', parseInt(obj[0].TotalDistance / 100) / 10); // 料金 var price = parseInt(obj[0].TotalFare, 10); if (price >= 1000) { price = '' + price;//文字列にする price = itsmo.lib.setComma(price); } itsmo.lib.document_setvalue('ajax_myroute_panel3toll', '' + price); if (price == 0) { $('#ajax_etc_btn').hide(); } else { $('#ajax_etc_btn').show(); } // 時間 var hh = itsmo.myroute.getTotalTimeContent(obj[0].TotalTime); itsmo.lib.document_setvalue('ajax_myroute_panel3time', hh); // 条件 switch(itsmo.vars.g_myroute_configs.car['opt1']) { case '0':itsmo.lib.document_setvalue('ajax_myroute_panel3opt1','推奨ルート');break; case '1':itsmo.lib.document_setvalue('ajax_myroute_panel3opt1','有料道優先');break; case '2':itsmo.lib.document_setvalue('ajax_myroute_panel3opt1','一般道優先');break; case '3':itsmo.lib.document_setvalue('ajax_myroute_panel3opt1','直進優先');break; } switch(itsmo.vars.g_myroute_configs.car['opt2']) { case '0':itsmo.lib.document_setvalue('ajax_myroute_panel3opt2','軽自動車');break; case '1':itsmo.lib.document_setvalue('ajax_myroute_panel3opt2','普通車');break; case '2':itsmo.lib.document_setvalue('ajax_myroute_panel3opt2','中型車');break; case '3':itsmo.lib.document_setvalue('ajax_myroute_panel3opt2','大型車');break; case '4':itsmo.lib.document_setvalue('ajax_myroute_panel3opt2','特大車');break; } // 地点 var routeInfo = null; var nm; var html = ''; html += ''; html += ''; html += ''; /* routeInfo = itsmo.myroute.route.getQuickInfo(idx); $.each(routeInfo, function(i, info) { var tipimg = null; var j = 0; switch (info.type) { case 'start': //-- スタート nm = itsmo.vars.g_myroute_stops[0].title; if (nm.length > 7) nm = nm.substr(0,8) + "..."; html += itsmo.lib.htmlspecialchars(nm)+''; tipimg = '
'; j = 0; break; case 'goal': //-- ゴール html += ''; html += ''; html += ''; nm = itsmo.vars.g_myroute_stops[itsmo.vars.g_myroute_stop_num-1].title; if(nm.length > 7) nm = nm.substr(0,8) + "..."; html += itsmo.lib.htmlspecialchars(nm)+''; tipimg = '
'; j = itsmo.vars.g_myroute_stops.length - 1; break; case 11: case 12: case 13: // 経由地1~3 // タイトル短縮 j = info.type - 10; html += ''; html += ''; html += ''; //nm = itsmo.vars.g_myroute_stops[j].title; nm = info.name; if(nm.length > 7) nm = nm.substr(0,8) + "..."; html += itsmo.lib.htmlspecialchars(nm)+''; // 旗 if(itsmo.vars.g_myroute_flag2id[j] != null) itsmo.vars.g_map_layer_route.removeById(itsmo.vars.g_myroute_flag2id[j]); tipimg = '
'; break; default: //-- 経由 if (info.name) { nm = info.name; } else { nm = '交差点'; } // TODO //html += ''; html += ''; html += ''; html += '' + nm + ''; html += ''; //html += ''; var ic = null, cn = nm; if(cn != "") { if(cn.indexOf("料金所") != -1) { ic = cn.substr(0,cn.indexOf("料金所")); } else if(cn.indexOf("首都高") == 0) { ic = cn.substr(3,cn.length); } else if(cn.indexOf("IC") != -1) { ic = cn.substr(0,cn.indexOf("IC")); } else if(cn.indexOf("I.C") == 0) { ic = cn.substr(0,cn.indexOf("I.C")); } } if(ic != null) { // 余計な文字を消す if(ic.indexOf("高速") == 0) ic = ic.substr(2,ic.length); if(ic.indexOf("有料道路") == 0) ic = ic.substr(4,ic.length); if(ic.indexOf("有料道路") != -1) ic = ic.substr(0,ic.indexOf("有料道路")); if(ic.indexOf("第一") != -1) ic = ic.substr(0,ic.indexOf("第一")); if(ic.indexOf("第二") != -1) ic = ic.substr(0,ic.indexOf("第二")); if(ic.indexOf("第1") != -1) ic = ic.substr(0,ic.indexOf("第1")); if(ic.indexOf("第2") != -1) ic = ic.substr(0,ic.indexOf("第2")); if(ic.indexOf("JCT") != -1) ic = ic.substr(0,ic.indexOf("JCT")); if(itsmo.vars.g_myroute_icstart != null) itsmo.vars.g_myroute_icend = ic; if(itsmo.vars.g_myroute_icstart == null) itsmo.vars.g_myroute_icstart = ic; //alert("_debug ICを発見 「"+cn+"」→「"+ic+"」"); } break; } if (null != tipimg) { var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(itsmo.vars.g_myroute_stops[j]), { html: tipimg, size: itsmo.sub.getHtmlSize(tipimg), offset: new ZDC.Pixel(-3, -32) }); tip.setZindex(itsmo.map.d_map_zIdx_route); var id = itsmo.vars.g_map_layer_route.add(tip); tip.open(); itsmo.vars.g_myroute_flag2id[j] = id; } }); //*/ routeInfo = itsmo.myroute.route.getRouteData(idx).find('nodes node'); var poscnt = routeInfo.length; routeInfo.each(function(i, v) { v = $(v); var nm = v.attr('start'); var lat = v.attr('start_lat'); var lon = v.attr('start_lon'); var tipimg = null; var via = parseInt(v.attr('via'), 10); if (0 == i) { //-- スタート nm = itsmo.vars.g_myroute_stops[0].title; if (nm.length > 16) nm = nm.substr(0,17) + "..."; html += itsmo.lib.htmlspecialchars(nm)+''; tipimg = '
'; via = 0; } else if (poscnt - 1 == i) { //-- ゴール html += ''; html += ''; html += ''; nm = itsmo.vars.g_myroute_stops[itsmo.vars.g_myroute_stop_num-1].title; if(nm.length > 16) nm = nm.substr(0,17) + "..."; html += itsmo.lib.htmlspecialchars(nm)+''; tipimg = '
'; via = itsmo.vars.g_myroute_stops.length - 1; } else if (via >= 1 && via <= 3) { // 経由地1~3 // タイトル短縮 html += ''; html += ''; html += ''; //nm = itsmo.vars.g_myroute_stops[via].title; if(nm.length > 16) nm = nm.substr(0,17) + "..."; html += itsmo.lib.htmlspecialchars(nm)+''; // 旗 if(itsmo.vars.g_myroute_flag2id[via] != null) itsmo.vars.g_map_layer_route.removeById(itsmo.vars.g_myroute_flag2id[via]); tipimg = '
'; } else { //-- 経由 html += '' + '' + '' + nm + '' + '' ; var ic = null, cn = nm; if(cn != "") { if(cn.indexOf("料金所") != -1) { ic = cn.substr(0,cn.indexOf("料金所")); } else if(cn.indexOf("首都高") == 0) { ic = cn.substr(3,cn.length); } else if(cn.indexOf("IC") != -1) { ic = cn.substr(0,cn.indexOf("IC")); } else if(cn.indexOf("I.C") == 0) { ic = cn.substr(0,cn.indexOf("I.C")); } } if(ic != null) { // 余計な文字を消す if(ic.indexOf("高速") == 0) ic = ic.substr(2,ic.length); if(ic.indexOf("有料道路") == 0) ic = ic.substr(4,ic.length); if(ic.indexOf("有料道路") != -1) ic = ic.substr(0,ic.indexOf("有料道路")); if(ic.indexOf("第一") != -1) ic = ic.substr(0,ic.indexOf("第一")); if(ic.indexOf("第二") != -1) ic = ic.substr(0,ic.indexOf("第二")); if(ic.indexOf("第1") != -1) ic = ic.substr(0,ic.indexOf("第1")); if(ic.indexOf("第2") != -1) ic = ic.substr(0,ic.indexOf("第2")); if(ic.indexOf("JCT") != -1) ic = ic.substr(0,ic.indexOf("JCT")); if(itsmo.vars.g_myroute_icstart != null) itsmo.vars.g_myroute_icend = ic; if(itsmo.vars.g_myroute_icstart == null) itsmo.vars.g_myroute_icstart = ic; //alert("_debug ICを発見 「"+cn+"」→「"+ic+"」"); } return; } if (null != tipimg) { var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(itsmo.vars.g_myroute_stops[via]), { html: tipimg, size: itsmo.sub.getHtmlSize(tipimg), offset: new ZDC.Pixel(-3, -40) }); tip.setZindex(itsmo.map.d_map_zIdx_route); var id = itsmo.vars.g_map_layer_route.add(tip); tip.open(); itsmo.vars.g_myroute_flag2id[via] = id; } }); itsmo.lib.document_setvalue('ajax_myroute_panel3list', html); // タブ切り替え ------------------------------ itsmo.myroute.myroute_panel_change('result_car'); // VICS -------------------------------------- if(itsmo.vars.g_myroute_configs.car['ton'] == '1') { // 渋滞考慮 itsmo.vars.g_route_vics.show_mode = 'car'; $('#map_vics_link').attr('class','map-btn3-jutai2-act'); itsmo.myroute.map_vics(); } else { itsmo.vars.g_route_vics.show_mode = 'nomal'; itsmo.myroute.map_vics_clear(); } //表示 itsmo.myroute.ContentPanelHide(); $('#route_result_car').show(); // 位置、縮尺設定 itsmo.myroute.setMapLocationForRouteResult(); itsmo.lib.map_wait2close(); }; //------------------------------------------------ // VICS表示 //------------------------------------------------ itsmo.vars.g_map_vics_tipid = null; itsmo.myroute.map_vics = function() { //itsmo.lib.document_off('ajax_myroute_panel3_vics_max');return;// 負荷対策に外すときはこれ if(itsmo.vars.g_myroute_configs.car['date'] == null || itsmo.vars.g_myroute_configs.car['date'] == 0) { return; } var today = itsmo.vars.g_myroute_configs.car['date'] + itsmo.vars.g_myroute_configs.car['time']; //itsmo.vars.g_route_vics.setVisible(true); itsmo.vars.g_route_vics.setVicsShowDate(today); //itsmo.vars.g_route_vics.minimize(); return; // パネル t = parseInt(today.substr(4,2), 10)+'/'+parseInt(today.substr(6,2), 10)+' '+parseInt(today.substr(8,2), 10)+':'+today.substr(10,2); itsmo.lib.document_setvalue('ajax_myroute_panel3_vics_dt',t); //itsmo.lib.document_on('ajax_myroute_panel3_vics'); // レイヤー if(itsmo.vars.g_map_traffic_h == 0 && itsmo.vars.g_map_traffic_l == 0) { if(itsmo.vars.g_map_layer_traffic != null) itsmo.vars.g_map_layer_traffic.hidden(); return; } if(itsmo.vars.g_map_layer_traffic == null) { itsmo.vars.g_map_layer_traffic = new ZDC.Traffic({ date: parseInt(today, 10) }); itsmo.vars.g_map_obj.addWidget(g_map_layer_traffic); } else { itsmo.vars.g_map_layer_traffic.setDate(parseInt(today, 10)); } itsmo.vars.g_map_layer_traffic.visible(); if(itsmo.vars.g_map_traffic_h == 1 && itsmo.vars.g_map_traffic_l == 1) itsmo.vars.g_map_layer_traffic.setLayer('LOCAL,HIGHWAY'); if(itsmo.vars.g_map_traffic_h == 1 && itsmo.vars.g_map_traffic_l == 0) itsmo.vars.g_map_layer_traffic.setLayer('HIGHWAY'); if(itsmo.vars.g_map_traffic_h == 0 && itsmo.vars.g_map_traffic_l == 1) itsmo.vars.g_map_layer_traffic.setLayer('LOCAL'); }; itsmo.myroute.map_vics_clear = function() { itsmo.vars.g_route_vics.restoreMinimize(); itsmo.lib.document_off('ajax_myroute_panel3_vics'); if(itsmo.vars.g_map_layer_traffic == null) return; }; //-------------------------------------------------------------------------------------------------- // 総合ルート //-------------------------------------------------------------------------------------------------- itsmo.myroute.myroute_panel_submit_all = function() { itsmo.lib.map_wait2open("ルート計算中"); // ルートクラス itsmo.myroute.route = new itsmo.route(); itsmo.myroute.myroute_panel_eventdel(); itsmo.map.setMouseCursor('hand'); for (i = 0; i < itsmo.vars.g_myroute_stop_num; i++) { if (!itsmo.vars.g_myroute_stops[i]) { continue; } var point = itsmo.vars.g_myroute_stops[i]; if (i == 0) { // start itsmo.myroute.route.setStartPos(point.lat, point.lon, point.title); } else if (i == itsmo.vars.g_myroute_stop_num - 1) { // goal itsmo.myroute.route.setGoalPos(point.lat, point.lon, point.title); } else if ('car' == itsmo.vars.g_myroute_mode) { // 経由(電車・徒歩は不要) itsmo.myroute.route.addMidPos(point.lat, point.lon, point.title); } } // ルート検索条件設定 var config = null, resultfunc = null; switch (itsmo.vars.g_myroute_mode) { case 'car': //-- 車ルート resultfunc = itsmo.myroute.myroute_panel_result_car; config = itsmo.vars.g_myroute_configs.car; itsmo.myroute.route.setSearchType(0); itsmo.myroute.route.setUseOnlyWalk(false); //itsmo.myroute.route.useVics(config['ton'] == '1'); itsmo.myroute.route.setRouteOrder(config['sort']); itsmo.myroute.route.setWalkCond(0); itsmo.myroute.route.useDriveStr('3' == config['opt1'] ? 1 : 0); // 直線 itsmo.myroute.route.setDriveRouteOrder(config['opt1']); itsmo.myroute.route.useExpress(false); itsmo.myroute.route.setUseSmartIC(!!parseInt(config['smart'], 10)); itsmo.myroute.route.setCarType(parseInt(config['opt2'], 10)); // config['opt1'] break; case 'all': //-- 電車・徒歩ルート resultfunc = itsmo.myroute.myroute_panel_result_all; config = itsmo.vars.g_myroute_configs.all; itsmo.myroute.route.setSearchType(1); // 徒歩ルート優先か? if (itsmo.vars.g_myroute_isWalk === true) { itsmo.myroute.route.setUseOnlyWalk(true); } // 特急利用 if (config['exp'] == '1') { itsmo.myroute.route.useExpress(true); } else { itsmo.myroute.route.useExpress(false); } // 表示順(乗換検索条件) itsmo.myroute.route.setRouteOrder(config['sort']); // 徒歩条件 itsmo.myroute.route.setWalkCond(config['psc']); break; } itsmo.myroute.route.setDateTime(config['top'], config['date'], config['time']); // 検索開始 setTimeout (function() { // 少し時間を開けて実行 var ret = itsmo.myroute.route.search(); if (ret) { // 決定ルート線をクリア itsmo.vars.g_myroute_shapeline1.hidden(); itsmo.vars.g_myroute_shapeline1.removeAllPoints(); // 透過ルート線をクリア itsmo.vars.g_myroute_shapeline2.hidden(); itsmo.vars.g_myroute_shapeline2.removeAllPoints(); // if (itsmo.myroute.mouseMoveEvent) { // ZDC.removeListener(itsmo.myroute.mouseMoveEvent); // itsmo.myroute.mouseMoveEvent = null; // } // ルートを非表示 itsmo.myroute.route.clearRoute(); $(".config-buttons-wrap").hide(); // ルート地点情報をクリア // itsmo.myroute.route.clearPos(); // 結果表示 var index = 0; resultfunc(index); itsmo.myroute.route.isDisplayRoute = true; // 位置、縮尺設定 itsmo.myroute.setMapLocationForRouteResult(); } else { // フロート非表示 itsmo.lib.map_wait2close(); // エラーメッセージ取得 var errs = itsmo.myroute.route.errJudgment(); } }, 500); }; // 結果表示 itsmo.myroute.myroute_panel_result_all = function(index) { itsmo.myroute.myroute_panel_result_kouho_event('open'); // ルートタイプ取得 var routeType = itsmo.myroute.route.getRouteType(index); // ルート候補取得 var listAll = itsmo.myroute.route.getRouteList(); // 候補一覧表示 ------------------------------ var html = ''; $.each(listAll, function(i, obj) { if(i == index){ var class_name = 'r-k-list-act'; }else{ var class_name = 'r-k-list'; } if (obj.type != 1) { // 電車・徒歩ルート(車ルート以外) html += ''; html += '候補' + (i+1) + '('+obj.StartTime+'~'+obj.EndTime+')'; html += ''; html += '時間 : ' + itsmo.myroute.getTotalTimeContent(obj.TotalTime); if (obj.TotalFare && obj.TotalFare > 0){ html += '
料金 : ' + itsmo.lib.setComma(obj.TotalFare) + '円'; } if( obj.transCnt && obj.transCnt > 0){ html += '
乗換 : ' + obj.transCnt + '回'; } html += '
'; html += ''; html += ''; if(obj.useWalk) html += ''; if(obj.useTrain) html += ''; if(obj.useAirline) html += ''; if(obj.useBass) html += ''; if(obj.useCar) html += ''; if(obj.useCycle) html += ''; if(obj.useShip) html += ''; html += ''; html += ''; if(obj.haya) html += ''; if(obj.raku) html += ''; if(obj.yasu) html += ''; html += ''; html += ''; html += '
'; } else { } }); if (html == '') { // フロート非表示 itsmo.lib.map_wait2close(); itsmo.lib.aplErrorWindow('E','0011',null,'(type=3)'); itsmo.myroute.myroute_panel_list(); return false; } itsmo.lib.document_setvalue('ajax_myroute_panelall_kouholist',html); // ルート表示 itsmo.myroute.myroute_panel_result_all_detail(index); itsmo.myroute.myroute_panel_change('result_all'); // itsmo.myroute.myroute_panel_result_kouho('alert'); itsmo.lib.document_off('ajax_myroute_panelall_kouho'); // フロート非表示 itsmo.lib.map_wait2close(); }; itsmo.myroute.myroute_panel_result_kouho_event = function(act) { if( act == 'open'){ itsmo.lib.document_on('route_kouho_panel'); } else if( act == 'close'){ itsmo.lib.document_off('route_kouho_panel'); } }; // 結果詳細表示 ---------------------------------- itsmo.myroute.myroute_panel_result_all_detail = function(idx, flg) { // ルートを非表示 // itsmo.myroute.route.clearRoute(); itsmo.myroute.myroute_panel_lyrclear_tips(); if (flg) { // ルート再検索 itsmo.myroute.route.research(idx); var routeData = itsmo.myroute.route.getNaviData(idx); var routeParams = '&naviid=' + routeData.attr('naviid') + '&useType=' + routeData.attr('useType'); $('#route_param').text(routeParams); } // ルートを表示 itsmo.myroute.route.drawRoute(idx); // ルート候補取得(1件) var obj = itsmo.myroute.route.getRouteList(idx); // 時間,候補 var title = '候補' + (idx+1) + '(' + obj[0].StartTime + '~' + obj[0].EndTime +')'; itsmo.lib.document_setvalue('detail-title', title); // ルート検索結果取得 var routeInfo = itsmo.myroute.route.getQuickInfo(idx); var count = routeInfo.length; // 基本情報 やむなくhtml組み立て // リスト描画 var html = ''; $.each(routeInfo, function(i, info) { html += ''; html += ''; switch (1) { case info.useTrain: html += ''; break; case info.useAirline: html += ''; break; case info.useWalk: html += ''; break; case info.useBass: html += ''; break; case info.useCar: html += ''; break; case info.useCycle: html += ''; break; case info.useShip: html += ''; break; } if (info.type == 3 && typeof info.useWalk == 'undefined') { html += ''; } html += ''; html += ''; html += '' + info.start + '~' + info.end; if(info.linenm) html += '('+ info.linenm +')'; html += '
'; html += '' + info.start_time + '~' + info.end_time + ' '; if (info.fare && info.fare > 0) html += itsmo.lib.setComma(info.fare.toString()) + '円'; html += '
'; var pos = ''; if (i == 0) { pos = 'start'; } else if (i == count - 1) { pos = 'goal'; } if (pos != '') { // スタート・ゴールフラグ生成 itsmo.myroute.makeTooltip(info, pos); if (count == 1) itsmo.myroute.makeTooltip(info, 'goal'); } }); html += 'Powered by ジョルダン'; itsmo.lib.document_setvalue('ajax_myroute_panelall_kekka',html); $('.r-k-list-act').attr('class','r-k-list'); $('#r-k-list_' + idx).attr('class','r-k-list-act'); //表示 itsmo.myroute.ContentPanelHide(); $('#route_result').show(); itsmo.lib.document_off('ajax_myroute_panelall_kouho'); }; // 所要時間コンテンツを返す itsmo.myroute.getTotalTimeContent = function(totalTime) { var setTime = ''; var hour = Math.floor(totalTime / 60); var min = totalTime % 60; if (hour >= 1) { setTime += hour + '時間' + min + '分'; } else { setTime += min + '分'; } return setTime; }; // ルート表示用に地図の位置とズームを設定する itsmo.myroute.setMapLocationForRouteResult = function() { var data = itsmo.myroute.route.getRouteShowRange(); // 位置、縮尺設定 itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(data.clat, data.clon)); itsmo.vars.g_map_obj.setZoom(data.zoom); }; // ツールチップ生成 itsmo.myroute.makeTooltip = function(info, pos) { // ユーザ指定 スタート/ゴール for (i = 0; i < itsmo.vars.g_myroute_stop_num; i++) { if (!itsmo.vars.g_myroute_stops[i]) { continue; } var point = itsmo.vars.g_myroute_stops[i]; // ツールチップHTML var tiphtml = '', offset = null; var nh = '', nh_tbl = ''; var msg = 'itsmo.vars.g_map_layer_clickable.get(itsmo.vars.g_myroute_poilyrtips['+i+']).openmsg();return false;'; if (i == 0 && pos == 'start'){ //-- スタート tiphtml = '
' + '' + '' + '
'; offset = new ZDC.Pixel(-4, -32); if (info.start_time) nh_tbl += '出発' + info.start_time + ''; } else if (i == itsmo.vars.g_myroute_stop_num - 1 && pos == 'goal') { //-- ゴール tiphtml = '
' + '' + '' + '
'; offset = new ZDC.Pixel(-4, -32); if (info.end_time) nh_tbl += '到着' + info.end_time + ''; } if (nh_tbl != '') { nh += '

'+ decodeURIComponent(point.title) + '

'; if (info.fare) nh_tbl += '料金' + info.fare + ''; nh += '' + nh_tbl + '
'; nh += '

地図を拡大

'; /* var e = $('#screen-wrap #div_eki_kousa'); e.find('#div_eki_content').html(nh); nh = e.html(); */ var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(point.lat, point.lon), { html: tiphtml, size: itsmo.sub.getHtmlSize(tiphtml), offset: offset }); tip.point = point; tip.nh = nh; tip.openmsg = function() { itsmo.map.closeUserMsgWindow(); itsmo.map.openUserMsgWindow(this.point, this.nh, new ZDC.Pixel(-103, -22)); }; tip.zoom = function() { itsmo.map.closeUserMsgWindow(); itsmo.vars.g_map_obj.moveLatLon(this.getLatLon()); itsmo.vars.g_map_obj.setZoom(17); }; var id = itsmo.vars.g_map_layer_clickable.add(tip); itsmo.vars.g_map_layer_clickable.showById(id); while (itsmo.vars.g_myroute_poilyrtips.length <= i) { itsmo.vars.g_myroute_poilyrtips.push(null); } itsmo.vars.g_myroute_poilyrtips[i] = id; /* var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(point.lat, point.lon), { html: tiphtml, size: itsmo.sub.getHtmlSize(tiphtml), offset: offset }); var id = itsmo.vars.g_map_layer_route.add(tip); tip.open(); */ } } }; //------------------------------------------------ // ETC //------------------------------------------------ itsmo.myroute.myroute_etcopen = function() { //alert('_debug NEXCOに渡す名称 出発「'+itsmo.vars.g_myroute_icstart+'」 到着「'+itsmo.vars.g_myroute_icend+'」'); var url = 'http://www.driveplaza.com/SearchQuickOutside/?'; if(itsmo.vars.g_myroute_icstart != null) url += '&startPlaceKana='+encodeURI(itsmo.vars.g_myroute_icstart); if(itsmo.vars.g_myroute_icend != null) url += '&arrivePlaceKana='+encodeURI(itsmo.vars.g_myroute_icend); url += '&carType='+itsmo.vars.g_myroute_configs.car['opt2'];//車種 0:軽 1:普通 2:中型 3:大型 4:特大 url += '&priority=1';//優先 2:時間 1:距離 3:料金 window.open(url,null); }; // ルート検索&地図描画 itsmo.route = function() { this.clearPos(); this.setSearchType(0); this.setUseOnlyWalk(false); this.setDateTime(0, '', ''); //this.useVics(false); this.setDriveRouteOrder(0); this.useDriveStr(0); this.setDriveSpeed(25); this.setHighwaySpeed(80); this.setWalkSpeed(4); this.setWalkCond(0); this.useExpress(false); this.setUseSmartIC(false); this.setCarType(1); this.setRouteOrder(0); this.setCycleRouteOrder(0); this.setCycleSpeed(15); this.result = null; this.TaxiInfoData = null; this.result_naviid = new Array(); this.result_list = new Array();//車ルート退避用 this.shape_layer = null; this.layer_traffic = null; this.isHighway = this.isLocal = true; this.poi_layer = null; this.removePointMaxDeg = 4; // 間引き角度 this.isDisplayRoute = false; }; itsmo.route.isIE6 = (typeof document.documentElement.style.maxHeight == "undefined"); itsmo.route.stations_tip = []; itsmo.route.marker_id = {}; itsmo.route.poilayer = null; //itsmo.route.msgWindow = null; //itsmo.route.msgWindowSmall = null; //itsmo.route.msgWindow_train = null; itsmo.route.changedMapZoom_init = false; itsmo.route.init = function() { if (!itsmo.route.changedMapZoom_init) { ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CHG_ZOOM, itsmo.route.changedMapZoom); itsmo.route.changedMapZoom_init = true; } }; /* itsmo.route.prototype.test01 = function(useCar) { this.clearPos(); this.setSearchType(useCar); this.setStartPos(128439760,503167930,'tokyost'); this.setGoalPos(128359000,503094990,'tower'); this.addMidPos(128405958,503144763,'keiyu1'); this.addMidPos(128365537,503157740,'keiyu2'); this.setDateTime(0, '20100815', '1231'); //this.useVics(true); this.setRouteOrder(0); //this.setDriveRouteOrder(1); this.useDriveStr(1); this.setDriveSpeed(25); this.setHighwaySpeed(80); this.setWalkSpeed(4); this.setWalkCond(0); this.useExpress(false); this.setUseSmartIC(false); this.setCarType(1); var i = this.search(); var j = "route search result=" + (i ? 1 : 0); if (null != this.result) { j += ", err=" + this.result.find('err').text(); } if (!i) { return false; } j = 'route num=' + this.getRouteNum(); if (this.getRouteNum() >= 1) { j = this.getRouteShowRange(0); itsmo.vars.g_map_obj.moveLatLon(itsmo.lib.toLatLon(j.clat, j.clon)) itsmo.vars.g_map_obj.setZoom(j.zoom); this.drawRoute(0); } }; */ /** * ルートを検索する。検索成功で true が帰る。 */ itsmo.route.prototype.search = function() { if (null == this.startPos || null == this.goalPos) { return false; } var params = {}; //params['useCar'] = this.useCar ? 1 : 0; params['useType'] = this.useType; params['useOnlyWalk'] = this.useOnlyWalk ? 1 : 0; params['when'] = this.when; params['datestr'] = this.datestr; params['time'] = this.time; //params['vics'] = this.vics ? 1 : 0; params['driveRouteOrder'] = this.driveRouteOrder; params['str'] = this.str; params['int'] = $('#itsumo-navi').attr('data-int'); params['walkCond'] = this.walkCond; params['useExpress'] = this.express ? 1 : 0; params['carType'] = this.carType; params['useSmartIC'] = this.smartIC ? 1 : 0; params['routeOrder'] = this.routeOrder; params['cycleRouteOrder'] = this.cycleRouteOrder; params['cycleSpeed'] = this.cycleSpeed; params['driveSpeed'] = this.driveSpeed; params['highwaySpeed'] = this.highwaySpeed; params['walkSpeed'] = this.walkSpeed; params['removePointMaxDeg'] = this.removePointMaxDeg; // 地点情報作成。 var i = []; i.push(this.startPos.join("\t")); i.push(this.goalPos.join("\t")); if (this.midPos.length >= 1) { // 配列の配列が midPos なので、中身の配列をそれぞれタブでつないだ配列、を // map で作ってからその配列をさらに join する。 i.push($.map(this.midPos, function(n, i) { return n.join("\t"); }).join("\t")); } params['p'] = i.join("\t"); var ret = false; var this_obj = this; $.ajax({ type: "POST", url: '/map/ajax_route_navi.php', cache: false, dataType: "xml", async: false, timeout: 60000, data: params, error: function(xhr, textStatus, errorThrown) { // TODO:エラーの場合のログは? }, success: function(xml){ this_obj.result = $(xml); this_obj.result_naviid = new Array(); this_obj.result_list = new Array(); var err = this_obj.result.find('err').text(); var rawVertexCnt = this_obj.result.find('rawVertexCnt').text(); var removedVertexCnt = this_obj.result.find('removedVertexCnt').text(); if (err == '0' && rawVertexCnt > 0 && removedVertexCnt > 0) { this_obj.result.find('naviid').each(function(i, v1) { v1 = $(v1); this_obj.result_naviid[i] = v1; }); //this_obj.result.find('naviid').empty(); this_obj.result_list[0] = this_obj.result; ret = true; } else { var s = 'err[' + err + '],params=[' + params + ']'; var e = this_obj.result.find('errno'); if (e.length >= 1) { s += ' [errno=' + e.text() + ']' } e = this_obj.result.find('err_cd'); if (e.length >= 1) { s += ' [err_cd=' + e.text() + ']' } // TODO:エラーの場合のログは? } //印刷画面のルート表示用にパラメータを取得 var naviid = this_obj.result.find('naviid').attr('naviid'); var useType = this_obj.result.find('naviid').attr('useType'); var route_param = '&naviid=' + naviid + '&useType=' + useType; //印刷画面のルート表示用にパラメータを保持 $('#route_param').text(route_param); } }); return ret; }; /** * ルートを検索する。naviidだけで検索 */ itsmo.route.prototype.research = function(n, naviid, useType){ var this_obj = this; if(naviid == undefined){ if(this_obj.result_list[n]){//もうある this_obj.result = this_obj.result_list[n]; return true; } var naviinfo = this_obj.result_naviid[n]; if(naviinfo == undefined){ return false; } var naviid = naviinfo.attr('naviid'); var useType = naviinfo.attr('useType'); } var params = {}; params['naviid'] = naviid; params['useType'] = useType; var ret = false; $.ajax({ type: "POST", url: '/map/ajax_route_navi.php', cache: false, dataType: "xml", async: false, timeout: 60000, data: params, error: function(xhr, textStatus, errorThrown) { // TODO:エラーの場合のログは? }, success: function(xml){ this_obj.result = $(xml); var err = this_obj.result.find('err').text(); var rawVertexCnt = this_obj.result.find('rawVertexCnt').text(); var removedVertexCnt = this_obj.result.find('removedVertexCnt').text(); if (err == '0' && rawVertexCnt > 0 && removedVertexCnt > 0) { this_obj.result_list[n] = this_obj.result; ret = true; } else { var s = 'err[' + err + '],params=[' + params + ']'; var e = result.find('errno'); if (e.length >= 1) { s += ' [errno=' + e.text() + ']' } e = result.find('err_cd'); if (e.length >= 1) { s += ' [err_cd=' + e.text() + ']' } // TODO:エラーの場合のログは? } } }); return ret; }; /** * 検索したルートを表示する。 * @param n 何番目のルートか。 */ itsmo.route.prototype.drawRoute = function(n) { if(!n){ n = 0; } var nd = this.getNaviData(n); var useid = nd.attr('useid'); n = this.getRouteData(0); if (false == n) { return false; } // 表示済みのルートを消す。 this.clearRoute(); if (null == this.shape_layer) { // シェイプレイヤ作成。 this.shape_layer = new itsmo.map.UserLayer(); } var l = this.shape_layer; var addBlackline = function(v1){ var v1 = $(v1); var latlons = []; v1.find('v').each(function(j, v2) { v2 = $(v2); latlons.push(itsmo.lib.toLatLon(v2.attr('lat'), v2.attr('lon'))); }); // 黒で縁取り用ラインを描く。 var pl = new ZDC.Polyline(latlons, { strokeColor: '#333333', lineOpacity: 1.0, // 透明度 strokeWeight: parseInt(v1.attr('sz'), 10) + 2 }); l.add(pl); }; var addline = function(v1){ var v1 = $(v1); var latlons = []; v1.find('v').each(function(j, v2) { v2 = $(v2); latlons.push(itsmo.lib.toLatLon(v2.attr('lat'), v2.attr('lon'))); }); var pl = {}; pl.strokeColor = v1.attr('cl'); // pl.strokeWeight = parseInt(v1.attr('sz'), 10); pl.strokeWeight = 5; var road_type = parseInt(v1.attr('road_type'), 10); var line_color = v1.attr('cl'); var indoor = v1.attr('indoor'); switch (Math.floor(road_type / 1000)) { case 1: // 道路 pl.lineOpacity = 0.8; // 透明度 if (1000 == road_type || 1001 == road_type || 1010 == road_type || '#00d0c8' == line_color) { // 高速道路 pl.strokeColor = '#19afe7'; } else { // その他の道路。 pl.strokeColor = '#2361ed'; } break; case 2: // 徒歩 if (indoor == 1) { // 屋内 pl.lineOpacity = 0.8; // 透明度 pl.strokeColor = '#c000ff'; } else { pl.lineOpacity = 1.0; // 透明度 pl.strokeColor = '#ea5330'; } break; case 3: // 電車 pl.lineOpacity = 0.8; // 透明度 pl.strokeColor = '#e6b900'; break; default: // その他 pl.lineOpacity = 1.0; // 透明度 pl.strokeColor = '#04af00'; break; } pl = new ZDC.Polyline(latlons, pl); l.add(pl); }; // 線の本体を描く。 if(!$.support.opacity){//IE6,7,8は処理能力が実行キューへの登録に追いつかないためsettimeoutで登録を遅らせる var id; //clearTimeout(id); n.find('lines line').each(function(i, v1) { id = setTimeout(function(){ //clearTimeout(id); // addBlackline(v1); addline(v1); },5); }); //clearTimeout(id); } else { n.find('lines line').each(function(i, v1) { // addBlackline(v1); addline(v1); }); } this.shape_layer.showAll(); //if (this.useCar && this.vics) { // if (this.useType == 0 && this.vics) { //this.showTrafficLayer(); // } if (null == this.poi_layer) { this.poi_layer = new itsmo.map.UserLayer(); this.poi_layer.setZIndex(itsmo.map.D_ZINDEX_LAYER); } var poilayer = itsmo.route.poilayer = itsmo.route.stations_tip_layer = this.poi_layer; //初期化 $.each(itsmo.route.stations_tip, function(i, v1) { poilayer.removeById(v1); }); itsmo.route.stations_tip = []; itsmo.route.marker_id = {}; var func = function() { itsmo.map.closeUserMsgWindow(); if ('' != this.htmlForInner) { itsmo.map.openUserMsgWindow(this.latlon, this.htmlForInner); } }; var funcOpenSmall = function() { itsmo.map.closeUserMsgWindow(); if ('' != this.htmlForInner) { itsmo.map.openUserMsgWindow(this.latlon, this.htmlForInner); } }; var saCnt = 0; var paCnt = 0; var funcSetIcon = function(i, v1) { //電車? var type = $(v1).attr('road_type'); type = type.substr(0,1); if('3' == type || $(v1).attr('ttstcd') != ''){ train_funcSetIcon(i, v1);//電車 }else{ car_funcSetIcon(i, v1);//車,それ以外 } }; var car_funcSetIcon = function(i, v1) { v1 = $(v1); var terminal = v1.attr('terminal'); var iconimage = ''; var iconsize = null; var iconoffset = null; var divprop = ' style="width:200px;height:160px;overflow:auto;"'; if (terminal == 'JCT') { iconimage = '/design/img/route/icn_route_jct.png'; iconsize = new ZDC.WH(24, 24); iconoffset = new ZDC.Pixel(-12, -12); } else if (terminal == 'IC') { iconimage = '/design/img/route/icn_route_ic.png'; iconsize = new ZDC.WH(24, 24); iconoffset = new ZDC.Pixel(-12, -12); } else if (terminal == 'PA') { iconimage = '/design/img/route/icn_route_pa.png'; iconsize = new ZDC.WH(21, 16); iconoffset = new ZDC.Pixel(-10, -8); } else if (terminal == 'SA') { iconimage = '/design/img/route/icn_route_sa.png'; iconsize = new ZDC.WH(21, 16); iconoffset = new ZDC.Pixel(-10, -8); } else { iconimage = '/design/img/route/icn_route_highway.png'; iconsize = new ZDC.WH(16, 16); iconoffset = new ZDC.Pixel(-8, -8); //return; } var latlon = { lat: v1.attr('start_lat'), lon: v1.attr('start_lon') }; var mrk = new ZDC.Marker(itsmo.lib.toLatLon(latlon), { offset: iconoffset, custom: { base: { imgSize: iconsize, src: iconimage } } }); mrk.latlon = latlon; mrk.terminal = terminal; mrk.start_nm = v1.attr('start'); if (terminal == 'PA') { mrk.cnt = paCnt++; } else if (terminal == 'SA') { mrk.cnt = saCnt++; } var h = ''; h += ''; if ('' != v1.attr('start')) { h += ''; } else { h += ''; } mrk.func = func; if ('PA' == terminal || 'SA' == terminal) { if (v1.attr('terminal_text') != undefined) { h += ' '; } } else if ('' == v1.attr('image_url')) { mrk.func = funcOpenSmall; } else { h += ''; } h += '
' + v1.attr('start') + '
(名称なし)
'; } if (v1.attr('pa_service') != undefined) { h += '
' + v1.attr('terminal_text') + '
' + v1.attr('pa_service') + '
'; //mrk.node.innerHTML = h; mrk.htmlForInner = h; ZDC.addListener(mrk, ZDC.MARKER_MOUSEUP, mrk.func); var id = itsmo.route.poilayer.add(mrk, true); itsmo.route.marker_id[id] = true; }; // 電車用 var trainCnt = 0; var train_func = function() { itsmo.map.closeUserMsgWindow(); if ('' != this.htmlForInner) { this.useHTML = '
' + this.htmlForInner + '
'; this.htmlForInner = ''; } itsmo.map.openUserMsgWindow(itsmo.lib.toMilliSec(this.getLatLon()), this.useHTML); }; var train_zoomfunc = function() { itsmo.map.closeUserMsgWindow(); itsmo.vars.g_map_obj.moveLatLon(this.getLatLon()); itsmo.vars.g_map_obj.setZoom(17); }; var train_funcSetIcon = function(i, v1) { v1 = $(v1); var text = v1.attr('text'); if(!text){ return; } var texts = []; texts = text.split("\\n"); var ekiname = texts[0]; var start = '' var end = '' if(texts[1] != undefined){ var j = texts[1]; if(j.substr(0 , 1) == '着'){ end = j.replace('着' , ''); }else{ start = j.replace('発' , ''); } } if(texts[2] != undefined){ j = texts[2]; if(j.substr(0 , 1) == '着'){ end = j.replace('着' , ''); }else{ start = j.replace('発' , ''); } } if(start == '' && end == ''){ return false; } if (v1.attr('linenm') != undefined && v1.attr('linenm') != '') { ekiname += '(' + v1.attr('linenm') + ')'; } if (ekiname.length > 11) ekiname = ekiname.substr(0, 12) + "..."; var onclickhtml = 'itsmo.route.stations_tip_layer.get(itsmo.route.stations_tip[' + trainCnt + ']).openmsg();return false;'; var tiphtml = '
' + '
' + '' + '' + '' + '' + '' + '
' + '
' + '
' + '' + ekiname + '' + '' + '
' + '
' + '
' ; var offset = new ZDC.Pixel(-8, -8); var nh = ''; nh += '

'+ ekiname + '

'; var nh_tbl = ''; if (end != '') { nh_tbl += '到着' + end + ''; } if (start != '') { nh_tbl += '出発' + start + ''; } if (v1.attr('fare') != undefined) { nh_tbl += '料金' + v1.attr('fare') + '円'; } if(nh_tbl != '') { nh += '' + nh_tbl + '
'; } nh += '

地図を拡大

'; var e = $('#screen-wrap #div_eki_kousa'); e.find('#div_eki_content').html(nh); nh = e.find('#div_eki_content').html(); var tip = new ZDC.UserWidget(itsmo.lib.toLatLon(v1.attr('start_lat'), v1.attr('start_lon')), { html: tiphtml, size: itsmo.sub.getHtmlSize(tiphtml), offset: offset }); tip.htmlForInner = nh; tip.openmsg = train_func; tip.zoom = train_zoomfunc; var id = poilayer.add(tip, true); poilayer.showById(id); itsmo.route.stations_tip.push(id); trainCnt++; }; //チップ作成 n.find('nodes node').each(funcSetIcon); n.find('nodes_noname node').each(funcSetIcon); itsmo.route.changedMapZoom(); // 徒歩ルートにアイコンを載せる。 if (n.find('walkIcons').length >= 1) { var poilayer = this.poi_layer; n.find('walkIcons').each(function(i, v1) { v1 = $(v1); var mrk = new ZDC.UserWidget (itsmo.lib.toLatLon(v1.attr('lat'), v1.attr('lon')), { offset: new ZDC.Pixel(-12, -36 + 3), size: new ZDC.WH(24, 36), html: '
' }); i = poilayer.add(mrk, false); mrk.setZindex(itsmo.map.D_TIPZIDX_MAPLINK); poilayer.showById(i); }); } }; /** マーカーを表示する地図レベルを返却 */ itsmo.route.changedMapZoom_getShowLevel = function(m) { if ('SA' == m.terminal) { return [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; } if ('PA' == m.terminal) { return [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; } if (m.start_nm != '' && 'IC' != m.terminal && 'JCT' != m.terminal) { // IC, JCT でない交差点等 return [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; } if (m.start_nm != '' && 'JCT' != m.terminal) { // IC 等 return [11, 12, 13, 14, 15, 16, 17, 18]; } if (m.start_nm != '' && 'JCT' == m.terminal) { // JCT return [10, 11, 12, 13, 14, 15, 16, 17, 18]; } return [16, 17, 18]; }; /** * マップズーム変更時 */ itsmo.route.changedMapZoom = function() { var lv = itsmo.vars.g_map_obj.getZoom(); lv = parseInt(lv) + 1; $.each(itsmo.route.marker_id, function(id, isVisible) { var m = itsmo.route.poilayer.get(id); if (null == m || undefined == m) { return; } // 現在の地図レベルでそのマーカーを表示すべきかどうかのフラグ。 var isShow = itsmo.route.changedMapZoom_getShowLevel(m); isShow = $.inArray(lv, isShow) >= 0; if (isVisible) { if (!isShow) { // 表示されているが、非表示にすべきレベルだった。 itsmo.route.poilayer.setVisibleById(id, false); itsmo.route.marker_id[id] = false; } } else { if (isShow) { // 表示すべきレベルなのに非表示だった。 itsmo.route.poilayer.setVisibleById(id, true); itsmo.route.marker_id[id] = true; } } }); }; /** * マップズーム変更時 */ /* itsmo.route.changedMapZoom = function() { var lv = itsmo.vars.g_map_obj.getZoom(); if (lv >= 1 && lv <= 5) { // 特定のマーカーのみ表示。 itsmo.route.marker_id = $.map(itsmo.route.marker_id, function(v1, i) { var m = itsmo.route.poilayer.get(v1); if (null == m) { return null; } if ( 'SA' == m.terminal || 'PA' == m.terminal // || 'IC' == m.terminal // || 'JCT' == m.terminal ) { if ((m.cnt % 3) == 0) { return v1; } } ZDC.clearListeners(m, ZDC.MARKER_CLICK); itsmo.route.poilayer.removeById(v1) itsmo.route.marker_hidden.push(m); return null; }); } else { // 非表示になったマーカを再表示。 $.each(itsmo.route.marker_hidden, function(i, v1) { ZDC.addListener(v1, ZDC.MARKER_CLICK, v1.func); var mrk = itsmo.route.poilayer.add(v1); itsmo.route.marker_id.push(mrk); }); itsmo.route.marker_hidden = []; } }; */ /** * 表示済みルートを非表示かつ表示情報削除を行う。 */ itsmo.route.prototype.clearRoute = function() { this.isDisplayRoute = false; if (null != this.shape_layer) { this.shape_layer.clear(); } if(this.layer_traffic != null) { this.layer_traffic.hidden(); } if (null != this.poi_layer) { this.poi_layer.clear(); } itsmo.route.marker_id = {}; itsmo.map.closeUserMsgWindow(); }; /** * 渋滞統計情報表示レイヤーを表示する。 */ itsmo.route.prototype.showTrafficLayer = function() { var i = '20' + this.datestr + this.time; if (i.length != 12) { return false; } if(this.layer_traffic == null) { this.layer_traffic = new ZdcTrafficImageLayer(i); itsmo.vars.g_map_obj.addUserImageLayer(this.layer_traffic); } else { this.layer_traffic.setSdate(i); } if(!this.isHighway && !this.isLocal) { this.layer_traffic.hidden(); } else { this.layer_traffic.visible(); } if( this.isHighway && this.isLocal) this.layer_traffic.setRoadType('ALL'); if( this.isHighway && !this.isLocal) this.layer_traffic.setRoadType('HIGHWAY'); if(!this.isHighway && this.isLocal) this.layer_traffic.setRoadType('LOCAL'); return true; }; /** * ルート情報の個数を返す。主に車ルートは通常1、徒歩+電車ルートは2以上が帰る。 */ itsmo.route.prototype.getRouteNum = function() { return this.result_naviid.length; /* if (this.result == null) { return 0; } return this.result.find('route').length; */ }; /** * ルートのリストを配列で返す。 */ itsmo.route.prototype.getRouteList = function(num) { var leng = this.getRouteNum(); if (leng <= 0) { return false; } var ret = []; var cnt = 0; for(var i=0; i= this.getRouteNum()) { n = 0; } //return this.result.find('naviid:eq(' + n + ')'); return this.result_naviid[n]; }; /** * ルート情報を返す。 * @param n integer 何番目のルート情報を返すか。0~。 */ itsmo.route.prototype.getRouteData = function(n) { if (this.result == null) { return false; } if (undefined == n || null == n) { n = 0; } if (n < 0 || n >= this.getRouteNum()) { n = 0; } return this.result.find('route:eq(' + n + ')'); }; /** * ノード情報(アイコンの設置用やルートパネル内に表示する情報)を返す。 * @param n integer 何番目のルート情報を返すか。0~。 * @return array */ itsmo.route.prototype.getNodeInfo = function(n) { var ret = []; var names = [ 'start_lat' ,'start_lon' ,'end_lat' ,'end_lon' ,'start' ,'end' ,'fare' ,'isWalk' ,'isTrain' ,'isCar' ,'linenm' ,'start_time' ,'end_time' ,'via' ,'road_type' ,'terminal' ,'image_url' ,'pa_service' ,'terminal_text' ]; var regex = new RegExp("^-?[0-9]+$"); this.getRouteData(n).find('nodes node').each(function(i, v1) { v1 = $(v1); var d = {}; $.each(names, function(j, v2) { if ('' == v2 || undefined == v2) { return; } j = v1.attr(v2); if (j == undefined) { return; } if (regex.test(j)) { j = parseInt(j, 10); } d[v2] = j; }); ret.push(d); }); return ret; }; /** * ルートタイプを判定 * @param n integer * @return array */ itsmo.route.prototype.getRouteType = function(n) { return this.getNaviData(n).find('quick').attr('use');//電車:4、徒歩:2、車:1、自転車:8 }; /** * 簡易情報(左リストの情報)を返す。 * @param n integer 何番目のルート情報を返すか。0~。 * @return array */ itsmo.route.prototype.getQuickInfo = function(n) { if(!n){ n = 0; } var type = this.getRouteType(n); switch(type){ case '1': var ret = this.getQuickCar(n); break; case '2': var ret = this.getQuickWalk(n); break; case '4': var ret = this.getQuickTrain(n); break; case '8': var ret = this.getQuickCycle(n); break; } return ret; }; itsmo.route.prototype.getQuickList = function(n,names) { var ret = []; var regex = new RegExp("^-?[0-9]+$"); this.getNaviData(n).find('quick info').each(function(i, v1) { v1 = $(v1); var d = {}; $.each(names, function(j, v2) { if ('' == v2 || undefined == v2) { return; } j = v1.attr(v2); if (j == undefined) { return; } if (v2 != 'name' && regex.test(j)) { j = parseInt(j, 10); } d[v2] = j; }); ret.push(d); }); return ret; }; //簡易情報(車)を返す。 itsmo.route.prototype.getQuickCar = function(n) { var names = [ 'name' //名称 ,'time' //出発及び到着時刻 ,'road_name'//道路名 ,'gate_name'//料金所名 ,'fare' //料金 ,'type' //種別(start:出発地,goal:到着地,1:IC入口,2:IC出口,5:通過料金所,11:経由地点1,12:経由地点2,13:経由地点3) ]; var ret = this.getQuickList(n,names); return ret; }; //簡易情報(徒歩)を返す。 itsmo.route.prototype.getQuickWalk = function(n) { var names = [ 'start' //出発地 ,'end' //到着地 ,'start_time' //出発時刻 ,'end_time' //到着時刻 ,'time_ride' // ,'type' //3:徒歩 ,'taxi_info_no' ]; var ret = this.getQuickList(n,names); return ret; }; //簡易情報(電車)を返す。 itsmo.route.prototype.getQuickTrain = function(n) { var names = [ 'start' //出発地 ,'end' //到着地 ,'start_time' //出発時刻 ,'end_time' //到着時刻 ,'linenm' //路線名 ,'trainkind' //列車区分 ,'time_ride' //乗車時間 ,'time_wait' //待ち時間 ,'dir_name' //方面名 ,'fare' //料金 ,'type' //2:電車,3:徒歩,4:車,5:飛行機,6:バス,7:フェリー,8:自転車 ,'taxi_fare' //4:車の時のタクシー料金 ,'datestr' //タクシー利用時時間帯 ,'road_name' //タクシー利用時通行道路 ,'taxi_info_no' ,'useTrain' ,'useWalk' ,'useCar' ,'useAirline' ,'useBass' ,'useShip' ,'useCycle' ]; var ret = this.getQuickList(n,names); return ret; }; //簡易情報(自転車)を返す。 itsmo.route.prototype.getQuickCycle = function(n) { var names = [ 'name' //名称 ,'time' //出発,到着,通過時刻 ,'road_name'//道路名 ,'type' //種別(start:出発地,goal:到着地,11:経由地点1,12:経由地点2,13:経由地点3) ,'time_ride'//経過時間 ]; var ret = this.getQuickList(n,names); return ret; }; /** * 出発時間を返す。 * @param n integer 何番目のルート情報を返すか。0~。 */ itsmo.route.prototype.getStartTime = function(n) { return this.getNaviData(n).attr('start_time'); }; /** * 到着時間を返す。 * @param n integer 何番目のルート情報を返すか。0~。 */ itsmo.route.prototype.getEndTime = function(n) { return this.getNaviData(n).attr('end_time'); }; /** * 総旅費を返す。 * @param n integer 何番目のルート情報を返すか。0~。 */ itsmo.route.prototype.getTotalFare = function(n) { return this.getNaviData(n).attr('totalFare'); }; /** * 総時間を返す。 * @param n integer 何番目のルート情報を返すか。0~。 */ itsmo.route.prototype.getTotalTime = function(n) { n = this.getNaviData(n).attr('totalTime'); if(n){ return parseInt(n, 10); } return false; }; /** * 総距離を返す。 * @param n integer 何番目のルート情報を返すか。0~。 */ itsmo.route.prototype.getTotalDistance = function(n) { n = this.getNaviData(n).attr('distance'); if(!n){ return false; } return parseInt(n, 10); }; /** * タクシーの利用時間帯(日中等)を返す。 * 存在しない場合は false が帰る。 * @param n integer 何番目のルート情報を返すか。0~。 */ itsmo.route.prototype.getTaxiDateStr = function(n) { n = this.getNaviData(n).find('taxi_datestr'); if (n.length <= 0) { return false; } return n.text(); }; /** * タクシーの利用料金を返す。 * 存在しない場合は false が帰る。 * @param n integer 何番目のルート情報を返すか。0~。 */ itsmo.route.prototype.getTaxiFare = function(n) { n = this.getNaviData(n).find('taxi_fare'); if (n.length <= 0) { return false; } return n.text(); }; /** * 開始点におけるタクシーの一般利用料金情報を返す。 * 存在しない場合は false が帰る。 */ itsmo.route.prototype.TaxiFareInfoCache = null; itsmo.route.prototype.TaxiFareInfoParamCache = null; itsmo.route.prototype.getTaxiFareInfo = function(n1,n2) { var ret = this.getTaxiPrameter(n1,n2); if(ret){ var params = 'hour=' + ret.taxi_time +'&lat=' + ret.taxi_lat +'&lon=' + ret.taxi_lon +'&distance=' + ret.taxi_distance; if(this.TaxiFareInfoParamCache == params && this.TaxiFareInfoCache){//キャッシュあり。 return this.TaxiFareInfoCache; } ret = this.getTaxiInfo(params); if(ret != null && ret != ''){ this.TaxiFareInfoCache = this.TaxiInfoData; this.TaxiFareInfoParamCache = params; return this.TaxiInfoData; } } return false; }; /** * 開始点におけるタクシー各社の情報を返す。 * 存在しない場合は false が帰る。 */ itsmo.route.prototype.TaxiCorpInfoCache = null; itsmo.route.prototype.TaxiCorpInfoParamCache = null; itsmo.route.prototype.getTaxiCorpInfo = function(n1,n2) { var ret = this.getTaxiPrameter(n1,n2); if(ret){ var params = 'lat=' + ret.taxi_lat +'&lon=' + ret.taxi_lon; if(this.TaxiCorpInfoParamCache == params && this.TaxiCorpInfoCache){//キャッシュあり。 return this.TaxiCorpInfoCache; } ret = this.getTaxiInfo(params); if(ret != null && ret != ''){ this.TaxiCorpInfoCache = this.TaxiInfoData; this.TaxiCorpInfoParamCache = params; return this.TaxiInfoData; } } return false; }; /*タクシー情報取得に必要なパラメータを取得*/ itsmo.route.prototype.getTaxiPrameter = function(n1,n2) { var e = this.getNaviData(n1).find('taxi_infos').find('taxi_info'); var ret = []; e = $(e); e.each(function(i, v1) { var v1 = $(v1); var no = v1.attr('taxi_info_no'); if(n2 == no){ var names = [ 'taxi_time', 'taxi_lat', 'taxi_lon', 'taxi_distance' ]; $.each(names, function(j, v2) { if ('' == v2 || undefined == v2) { return; } j = v1.attr(v2); if (j == undefined) { return; } ret[v2] = j; }); } }); if(!ret){ return false; } return ret; }; /*タクシー情報取得*/ /* itsmo.route.prototype.getTaxiInfo = function(params) { this.TaxiInfoData = null; var ret = false; $.ajax({ type: "GET", url: '/route_taxi_json.php', cache: true, dataType: "json", async: false, data: params, error: function(xhr, textStatus, errorThrown) { itsmo.log("itsmo.route.prototype.getTaxiInfo ajax error. " + textStatus); }, success: function(json){ ret = json; } }); if(ret != null && ret != '' && ret != false){ this.TaxiInfoData = ret; ret = true; } return ret; }; */ /** * 開始点におけるタクシーの一般利用料金情報を返す。 * 存在しない場合は false が帰る。 itsmo.route.prototype.getTaxiFareInfo = function(n1,n2) { e = this.getNaviData(n).find('taxi_fare_info'); if (e.length <= 0) { return false; } e = $.parseJSON(e.text()); if(e == null ){ return false; } return e; }; */ /** * 開始点におけるタクシー各社の情報を返す。 * 存在しない場合は false が帰る。 itsmo.route.prototype.getTaxiCorpInfo = function(n1,n2) { e = this.getNaviData(n).find('taxi_corp_info'); if (e.length <= 0) { return false; } e = $.parseJSON(e.text()); if(e == null ){ return false; } return e; }; */ /** * 徒歩+電車ルートの「安早楽」フラグと電車利用フラグ、徒歩利用フラグを返す。 * フラグが存在しない場合は false が帰る。 * @param n integer 何番目のルートのフラグ情報を返すか。0~。 */ itsmo.route.prototype.getWalkRouteFlags = function(n) { n = this.getNaviData(n); if (n.attr('raku') == undefined) { return false; } return { haya: ('0' != n.attr('haya')), raku: ('0' != n.attr('raku')), yasu: ('0' != n.attr('yasu')), osusume: ('0' != n.attr('osusume')), useTrain: ('0' != n.attr('useTrain')), useWalk: ('0' != n.attr('useWalk')), useCar: ('0' != n.attr('useCar')), useAirline: ('0' != n.attr('useAirline')), useBass: ('0' != n.attr('useBass')), useShip: ('0' != n.attr('useShip')), useCycle: ('0' != n.attr('useCycle')), transCnt: n.attr('transcnt') }; }; /** * 電車・徒歩の時の遅延情報を返す。 * 情報がない場合は false が帰る。 * @param n integer 何番目のルートのフラグ情報を返すか。0~。 */ itsmo.route.prototype.getTrafficData = function(n) { n = this.getNaviData(n); var e = n.find('traffics traffic'); if (e.length <= 0) { return false; } var ret = []; n.find('traffics traffic').each(function(i, v1) { var data = {}; v1 = $(v1); data['line_nm'] = v1.attr('line_nm'); data['date'] = v1.attr('date'); data['time'] = v1.attr('time'); data['text'] = v1.attr('text'); ret[i] = data; }); return ret; }; /** * ルート情報の中心位置と表示領域の緯度経度を返す。 * @param n integer 何番目のルート情報を返すか。0~。 * @return object 以下のプロパティを含む object * box_min_lat * box_min_lon * box_max_lat * box_max_lon * clat * clon * zoom 最適ズームレベル */ itsmo.route.prototype.getRouteShowRange = function(n) { var n = this.getRouteData(n); // 最適ズームレベルを計測。 var ret = function(){}; var names = [ 'box_min_lat' , 'box_min_lon' , 'box_max_lat' , 'box_max_lon' , 'clat' , 'clon' ]; $.each(names, function(i, v1) { if ('' == v1 || undefined == v1) { return; } i = n.attr(v1); if (i == undefined) { return; } ret[v1] = i; }); var i = itsmo.vars.g_map_obj.getAdjustZoom( [itsmo.lib.toLatLon(ret.box_min_lat, ret.box_min_lon) , itsmo.lib.toLatLon(ret.box_max_lat, ret.box_max_lon) ]); ret['zoom'] = i.zoom; return ret; }; /** * エラー判定 * エラー */ itsmo.route.prototype.errJudgment = function(n) { if(!n){ n = 0; } var e = this.result.find('err_cd').text(); if (e.indexOf('8101',4) != -1) {//遠い return 'far'; }else if(e.indexOf('8001',4) != -1){//近い return 'near'; }else if(e.indexOf('0112',4) != -1){//失敗 return 'failure'; }else if(e.indexOf('9000',4) != -1){//パラメータ不正 return 'param'; } if(!this.result_list[n]){ return 'nodata'; } return true; }; /** * 自転車ルートで130kmを超えたかの判定。 * return 超えている場合:false、超えていない:true */ itsmo.route.prototype.cycleDistanceJudgment = function() { e = this.result.find('err_cd'); if (e.length >= 1) { if(e.text() == '03218101'){ return false; } } return true; }; /** * 車ルート検索なら true、電車・徒歩ルートなら false を渡す。 */ /* itsmo.route.prototype.setSearchType = function(useCar) { this.useCar = useCar; }; */ /** * 車ルート検索なら 0、電車・徒歩ルートなら 1、自転車ルートなら 2を渡す。 */ itsmo.route.prototype.setSearchType = function(use) { this.useType = use; }; /** * 直進優先(自転車) */ itsmo.route.prototype.setCycleRouteOrder = function(cycleRouteOrder) { this.cycleRouteOrder = cycleRouteOrder; }; /** * 自転車移動速度 * 引数:km単位 */ itsmo.route.prototype.setCycleSpeed = function(cycleSpeed) { this.cycleSpeed = cycleSpeed; }; /** * 車移動速度 * 引数:km単位 */ itsmo.route.prototype.setDriveSpeed = function(driveSpeed) { this.driveSpeed = driveSpeed; }; /** * 車移動速度(高速道路) * 引数:km単位 */ itsmo.route.prototype.setHighwaySpeed = function(highwaySpeed) { this.highwaySpeed = highwaySpeed; }; /** * 歩行移動速度 * 引数:km単位 */ itsmo.route.prototype.setWalkSpeed = function(walkSpeed) { this.walkSpeed = walkSpeed; }; /** * 徒歩ルート検索で徒歩のみ(電車を使用しない)なら true。 */ itsmo.route.prototype.setUseOnlyWalk = function(useOnlyWalk) { this.useOnlyWalk = useOnlyWalk; }; /** * 日時設定。 * @param when 0=現在時刻 1=出発時刻指定 2=到着時刻指定 * @param datestr YYYYMMDD * @param time HHMM */ itsmo.route.prototype.setDateTime = function(when, datestr, time) { this.when = when; this.datestr = datestr; this.time = time; }; /** * 渋滞予測を使用するかどうか。 */ //itsmo.route.prototype.useVics = function(vics) { // this.vics = vics; //}; /** * ドライブルートの優先順位を設定。 * @param driveRouteOrder integer * 0=時間優先 * 1=有料道路優先 * 2=一般道路優先 * 3=直進優先 */ itsmo.route.prototype.setDriveRouteOrder = function(driveRouteOrder) { this.driveRouteOrder = driveRouteOrder; }; /** * 直進優先(車) */ itsmo.route.prototype.useDriveStr = function(str) { this.str = str; }; /** * 徒歩+電車ルートの表示順 * @param order * 0=早い順 * 1=安い順 * 2=楽な順 */ itsmo.route.prototype.setRouteOrder = function(order) { this.routeOrder = order; }; /** * 徒歩条件。 * @param cond 0=おまかせ 1=屋根あり 2=階段少ない 3=大通り優先 */ itsmo.route.prototype.setWalkCond = function(cond) { this.walkCond = cond; }; /** * 特急利用。 * @param use boolean */ itsmo.route.prototype.useExpress = function(use) { this.express = use; }; /** * 車種。 * @param cond * 0 軽自動車・二輪車 * 1 普通車(default) * 2 中型自動車 * 3 大型自動車 * 4 超大型自動車 */ itsmo.route.prototype.setCarType = function(cond) { this.carType = cond; }; /** * スマートIC利用。 * @param use boolean */ itsmo.route.prototype.setUseSmartIC = function(use) { this.smartIC = use; }; /** * スタート地点設定 */ itsmo.route.prototype.setStartPos = function(lat, lon, name) { this.startPos = [lat, lon, name]; }; /** * ゴール地点設定 */ itsmo.route.prototype.setGoalPos = function(lat, lon, name) { this.goalPos = [lat, lon, name]; }; /** * 経由地点設定 */ itsmo.route.prototype.addMidPos = function(lat, lon, name) { this.midPos.push([lat, lon, name]); }; /** * 地点設定のクリア */ itsmo.route.prototype.clearPos = function() { this.startPos = null; this.goalPos = null; this.midPos = []; }; //------------------------------------------------ // myrouteいきなり表示 //------------------------------------------------ itsmo.myroute.routeTop = function(mode, forceChange) { if(forceChange){ if(mode == 'car' && (itsmo.vars.g_myroute_mode == 'car' || itsmo.vars.g_myroute_mode == 'result_car')){ return false; } if(mode == 'all' && (itsmo.vars.g_myroute_mode == 'all' || itsmo.vars.g_myroute_mode == 'result_all')){ return false; } itsmo.vars.g_route_tab_displayed = 0; itsmo.vars.routeKeep = 1; } itsmo.sub.map_tab_change('route',['route',mode]); return; }; itsmo.myroute.myroute_open = function(id) { itsmo.sub.map_tab_change('mypage', ['myroute', id]); itsmo.lib.document_off('ajax_mypage_top'); itsmo.lib.document_on('ajax_mypage_myspot'); itsmo.myroute.myroute_listget(id); return; }; //------------------------------------------------ // 基本処理 //------------------------------------------------ // メニュートップ itsmo.myroute.myroute_leftmenutop = function() { itsmo.vars.g_myroute_cond = null; itsmo.range.range_tipclear(); itsmo.myspot.myspot_clear(); itsmo.myroute.myroute_listreflesh(); }; //------------------------------------------------ // 表示 //------------------------------------------------ itsmo.vars.g_myroute_view_idx = 0; itsmo.myroute.myroute_view = function(idx) { itsmo.vars.g_myroute_view_idx = idx; //ルートパネルリセット // itsmo.myroute.onClickOpenBtn(); itsmo.myroute.myroute_panel_change('close'); itsmo.vars.g_myroute_panel_isvisible = 0 itsmo.myroute.routeTop(itsmo.vars.g_myroute_list[idx].mode); // 検索パターン switch(itsmo.vars.g_myroute_list[idx].mode) { default:// モードが無い場合は車 case 'car': itsmo.myroute.myroute_car(); itsmo.vars.g_myroute_configs.car['opt1'] = itsmo.vars.g_myroute_list[idx].cond_opt1; itsmo.vars.g_myroute_configs.car['opt2'] = itsmo.vars.g_myroute_list[idx].cond_opt2; itsmo.vars.g_myroute_configs.car['ton'] = itsmo.vars.g_myroute_list[idx].cond_ton; itsmo.vars.g_myroute_configs.car['date'] = itsmo.vars.g_myroute_list[idx].cond_date; itsmo.vars.g_myroute_configs.car['time'] = itsmo.vars.g_myroute_list[idx].cond_time; itsmo.vars.g_myroute_configs.car['top'] = itsmo.vars.g_myroute_list[idx].cond_top; itsmo.vars.g_myroute_configs.car['smart'] = itsmo.vars.g_myroute_list[idx].cond_smart; if(itsmo.vars.g_myroute_configs.car['date'] == '' || itsmo.vars.g_myroute_configs.car['date'] == 0) { var now = new Date(); now.setMinutes( now.getMinutes()+30 ); var today = now.getFullYear()*100000000 + (now.getMonth() + 1)*1000000 + now.getDate()*10000 + now.getHours()*100 + now.getMinutes(); itsmo.vars.g_myroute_configs.car['date'] = today.toString(10).substr(0, 8); itsmo.vars.g_myroute_configs.car['time'] = today.toString(10).substr(8); } else { var cond_date = itsmo.vars.g_myroute_list[idx].cond_date; var cond_time = itsmo.vars.g_myroute_list[idx].cond_time; var mm = cond_date.substr(4, 2); var dd = cond_date.substr(6, 2); var hh = cond_time.substr(2, 2); // 入力された時間が過去の場合は未来にする var now = new Date(); var yy = now.getFullYear(); var now_mm = now.getMonth() + 1; if (now_mm > mm) { yy = now.getFullYear() + 1; } else if (now_mm == mm) { if (now.getDate() > dd) { yy = now.getFullYear() + 1; } else if (now.getDate() == dd) { if (now.getHours() > hh) { yy = now.getFullYear() + 1; } } } itsmo.vars.g_myroute_configs.car['date'] = yy + mm + dd; // 日付 itsmo.vars.g_myroute_configs.car['time'] = cond_time; // 時刻 } break; case 'all': itsmo.myroute.myroute_all(); itsmo.vars.g_myroute_configs.all['date'] = itsmo.vars.g_myroute_list[idx].cond2_date; itsmo.vars.g_myroute_configs.all['time'] = itsmo.vars.g_myroute_list[idx].cond2_time; itsmo.vars.g_myroute_configs.all['top'] = itsmo.vars.g_myroute_list[idx].cond2_top; itsmo.vars.g_myroute_configs.all['sort'] = itsmo.vars.g_myroute_list[idx].cond2_pri; itsmo.vars.g_myroute_configs.all['exp'] = itsmo.vars.g_myroute_list[idx].cond2_exp; itsmo.vars.g_myroute_configs.all['psc'] = itsmo.vars.g_myroute_list[idx].cond2_psc; if(itsmo.vars.g_myroute_configs.all['date'] == '' || itsmo.vars.g_myroute_configs.all['date'] == 0) { var now = new Date(); var today = now.getFullYear()*100000000 + (now.getMonth() + 1)*1000000 + now.getDate()*10000 + now.getHours()*100 + now.getMinutes(); itsmo.vars.g_myroute_configs.all['date'] = today.toString(10).substr(0, 8); itsmo.vars.g_myroute_configs.all['time'] = today.toString(10).substr(8); } else { var cond2_date = itsmo.vars.g_myroute_list[idx].cond2_date; var cond2_time = itsmo.vars.g_myroute_list[idx].cond2_time; var mm = cond2_date.substr(4, 2); var dd = cond2_date.substr(6, 2); var hh = cond2_time.substr(2, 2); // 入力された時間が過去の場合は未来にする var now = new Date(); var yy = now.getFullYear(); var now_mm = now.getMonth() + 1; if (now_mm > mm) { yy = now.getFullYear() + 1; } else if (now_mm == mm) { if (now.getDate() > dd) { yy = now.getFullYear() + 1; } else if (now.getDate() == dd) { if (now.getHours() > hh) { yy = now.getFullYear() + 1; } } } itsmo.vars.g_myroute_configs.all['date'] = yy + mm + dd; // 日付 itsmo.vars.g_myroute_configs.all['time'] = cond2_time; // 時刻 } break; } itsmo.myroute.myroute_view_setpoints(); itsmo.myroute.myroute_move(); }; itsmo.myroute.myroute_move = function() { // 地図の移動 var latlons = []; for(var i = 0;i < itsmo.vars.g_myroute_stops.length;i ++) { if(!itsmo.vars.g_myroute_stops[i]) { continue; } latlons.push(itsmo.lib.toLatLon(itsmo.vars.g_myroute_stops[i].lat, itsmo.vars.g_myroute_stops[i].lon)); } var sc = itsmo.vars.g_map_obj.getAdjustZoom(latlons); itsmo.vars.g_map_obj.moveLatLon(sc.latlon); itsmo.vars.g_map_obj.setZoom(sc.zoom); }; itsmo.myroute.myroute_view_setpoints = function() { // 地点を設定 //itsmo.myroute.myroute_panel_change('point'); itsmo.vars.g_myroute_stops = []; var obj = itsmo.vars.g_myroute_list[itsmo.vars.g_myroute_view_idx]; var cnt = obj.stops.length - 1; for(var i = 0;i < cnt;i ++) { itsmo.vars.g_myroute_stops[i] = { lat: obj.stops[i].point.lat, lon: obj.stops[i].point.lon}; itsmo.vars.g_myroute_stops[i].title = obj.stops[i].title; itsmo.myroute.RoutePointRemainder('add'); } if (cnt < 0) cnt = 0; itsmo.vars.g_myroute_stops[itsmo.vars.g_myroute_stop_num-1] = { lat: obj.stops[ cnt ].point.lat, lon: obj.stops[ cnt ].point.lon }; itsmo.vars.g_myroute_stops[itsmo.vars.g_myroute_stop_num-1].title = obj.stops[ cnt ].title; itsmo.myroute.RoutePointRemainder('add'); // ルートを引く itsmo.myroute.myroute_panel_setmode(2); itsmo.vars.g_myroute_first = 0; if((obj.mode == 'car' && itsmo.vars.g_myroute_car_stops == obj.stops.length) || obj.mode == 'all'){//すでに地点を追加できないならイベント追加しない itsmo.myroute.myroute_panel_list(); }else{ itsmo.myroute.myroute_panel_list(1); } //itsmo.myroute.myroute_panel_submit(); }; //------------------------------------------------ // 一覧取得 //------------------------------------------------ itsmo.myroute.myroute_listget = function(id, rows) { var prm = 'mode=myroute_list&page='+itsmo.vars.g_myroute_list_page; if(id) prm += '&id=' + id; if(rows) prm += '&rows=' + rows; if(itsmo.vars.g_myroute_cond != null) prm += '&cond=' + itsmo.vars.g_myroute_cond; // 処理中画像表示 itsmo.lib.document_off('ajax_leftmenu'); itsmo.lib.document_on('ajax_leftmenu_wait'); // itsmo.lib.map_waitopen(); itsmo.lib.XMLHttpRequest2_send('/map/ajax_myroute.php',itsmo.myroute.myroute_listget_result,'GET',prm); }; itsmo.myroute.myroute_listget_result = function(result) { // エラーチェック var err = parseInt($(result).find('err').text(), 10); if (err == 99) { top.location.href = 'https://' + itsmo.vars.d_host_www + '/map/mypage/'; return; } else if (err != 0) { // 処理中画像非表示 itsmo.lib.document_on('ajax_leftmenu'); itsmo.lib.document_off('ajax_leftmenu_wait'); // itsmo.lib.map_waitclose(); // エラー表示 itsmo.lib.aplErrorWindow('W', '0003', 'myroute', '登録ルート'); return; } // ルート情報作成 itsmo.vars.g_myroute_list = []; var i = 0; $(result).find('list').each(function() { // 基本情報 itsmo.vars.g_myroute_list[i] = function(){}; itsmo.vars.g_myroute_list[i].id = $(this).find('id').text(); itsmo.vars.g_myroute_list[i].rtitle = $(this).find('title').text(); itsmo.vars.g_myroute_list[i].mode = $(this).find('mode').text(); itsmo.vars.g_myroute_list[i].cond_opt1 = $(this).find('cond_opt1').text(); itsmo.vars.g_myroute_list[i].cond_opt2 = $(this).find('cond_opt2').text(); itsmo.vars.g_myroute_list[i].cond_smart = $(this).find('cond_smart').text(); itsmo.vars.g_myroute_list[i].cond_ton = $(this).find('cond_ton').text(); itsmo.vars.g_myroute_list[i].cond_date = $(this).find('cond_date').text(); itsmo.vars.g_myroute_list[i].cond_time = $(this).find('cond_time').text(); itsmo.vars.g_myroute_list[i].cond_top = $(this).find('cond_top').text(); itsmo.vars.g_myroute_list[i].cond2_date = $(this).find('cond2_date').text(); itsmo.vars.g_myroute_list[i].cond2_time = $(this).find('cond2_time').text(); itsmo.vars.g_myroute_list[i].cond2_top = $(this).find('cond2_top').text(); itsmo.vars.g_myroute_list[i].cond2_pri = $(this).find('cond2_pri').text(); itsmo.vars.g_myroute_list[i].cond2_exp = $(this).find('cond2_exp').text(); itsmo.vars.g_myroute_list[i].cond2_psc = $(this).find('cond2_psc').text(); itsmo.vars.g_myroute_list[i].comment = $(this).find('comment').text(); // 地点 itsmo.vars.g_myroute_list[i].stops = []; j = 0; $(this).find('point').each(function() { if($(this).find('title').length >= 1) { itsmo.vars.g_myroute_list[i].stops[j] = function(){}; itsmo.vars.g_myroute_list[i].stops[j].title = $(this).find('title').text(); itsmo.vars.g_myroute_list[i].stops[j].point = { lat: $(this).find('lat').text(), lon: $(this).find('lon').text() }; } j++; }); // リスト作成 i++; }); itsmo.sub.map_tab_sethtml($(result).find('listhtml').text()); // 指定idを開く処理 var openid = $(result).find('openid').text(); if(openid != '') { itsmo.myroute.myroute_view(openid); } // 処理中画像非表示 itsmo.lib.document_on('ajax_leftmenu'); itsmo.lib.document_off('ajax_leftmenu_wait'); // itsmo.lib.map_waitclose(); }; // 読み込みなおし itsmo.myroute.myroute_listreflesh = function() { itsmo.vars.g_myroute_list_page = 0; itsmo.myroute.myroute_listget(); }; // ページ遷移 itsmo.myroute.myroute_listpage = function(page, rows) { itsmo.vars.g_myroute_list_page = page; if (null == rows) { rows = itsmo.vars.g_myroute_rows; } else { itsmo.vars.g_myroute_rows = rows; } itsmo.myroute.myroute_listget(null, rows); }; //-------------------------------------------------------------------------------------------------- // 保存 //-------------------------------------------------------------------------------------------------- itsmo.myroute.myroute_panel_add = function() { //var title = ""; //if(itsmo.vars.g_myroute_routetitle != null) title = itsmo.vars.g_myroute_routetitle; //itsmo.vars.g_document.getElementById('ajax_myroute_add_title').value = title; itsmo.lib.document_setvalue('ajax_myroute_add_title',''); itsmo.lib.map_windowopen('ajax_myroute_add'); }; // 保存 itsmo.myroute.myroute_add_submit = function() { if(itsmo.myroute.myroute_add_submit_check()) return; itsmo.vars.g_myroute_routetitle = itsmo.lib.document_getvalue('ajax_myroute_add_title'); // 基本情報 var prm = 'mode=myroute_add'; prm += '&title='+encodeURIComponent(itsmo.vars.g_myroute_routetitle); prm += '&other='+itsmo.vars.g_myroute_mode+":"; switch(itsmo.vars.g_myroute_mode) { case 'car': if (itsmo.vars.g_myroute_configs.car['date'] == '0') { var now = new Date(); var today = now.getFullYear()*100000000 + (now.getMonth() + 1)*1000000 + now.getDate()*10000 + now.getHours()*100 + now.getMinutes(); itsmo.vars.g_myroute_configs.car['date'] = today.toString(10).substr(0, 8); itsmo.vars.g_myroute_configs.car['time'] = today.toString(10).substr(8); } prm += itsmo.vars.g_myroute_configs.car['opt1'] +":"+ itsmo.vars.g_myroute_configs.car['opt2'] +":"+ itsmo.vars.g_myroute_configs.car['ton']; prm += ":"+ itsmo.vars.g_myroute_configs.car['date'] + itsmo.vars.g_myroute_configs.car['time']; prm += ":"+ itsmo.vars.g_myroute_configs.car['smart'] +":"+itsmo.vars.g_myroute_configs.car['top']; break; case 'all': prm += itsmo.vars.g_myroute_configs.all['date'] + itsmo.vars.g_myroute_configs.all['time']; prm += ":"+ itsmo.vars.g_myroute_configs.all['top'] +":"+ itsmo.vars.g_myroute_configs.all['sort']; prm += ":0:" + itsmo.vars.g_myroute_configs.all['exp'] +":0"; // chg,exf 未使用のためデフォ:0 prm += ":"+ itsmo.vars.g_myroute_configs.all['psc']; break; } // 地点 var prm2 = "" for(var i = 0;i < itsmo.vars.g_myroute_stop_num;i ++) { if(prm2) prm2 += ":"; if(itsmo.vars.g_myroute_stops[i] != null) { prm2 += encodeURIComponent(itsmo.vars.g_myroute_stops[i].title)+','+itsmo.vars.g_myroute_stops[i].lat+','+itsmo.vars.g_myroute_stops[i].lon+','+itsmo.vars.g_myroute_stops[i].id; } else { prm2 += ',,,'; } } prm += '&prms='+prm2; // 処理中 itsmo.lib.map_windowclose(); itsmo.lib.XMLHttpRequest2_send_wait('/map/ajax_myroute.php',itsmo.myroute.myroute_add_submit_result,'GET',prm,'ルート保存中'); }; // 入力チェック itsmo.myroute.myroute_add_submit_check = function() { var title = itsmo.lib.document_getvalue('ajax_myroute_add_title'); title = title.replace(/^[\s ]+|[\s ]+$/g, ""); if(title.length < 2 || title.length > 12) { alert("タイトルは2~12文字で入力して下さい"); return true; } return false; }; // 結果処理 itsmo.myroute.myroute_add_submit_result = function(result) { // エラーチェック var err = parseInt($(result).find('err').text(), 10); if (err != 0) { if (err == 99) { itsmo.lib.aplErrorWindow('W', '0008', 'myroute'); } else { itsmo.lib.aplErrorWindow('W', '0004', 'myroute', '登録ルート'); } return; } // 確認ウィンドウ itsmo.lib.aplErrorWindow('I', '0001', 'myroute', '登録ルート', 'routeadd'); // 正常処理 itsmo.myroute.myroute_leftmenutop(); }; //-------------------------------------------------------------------------------------------------- // 削除 //-------------------------------------------------------------------------------------------------- itsmo.vars.g_myroute_del = null; itsmo.myroute.myroute_del = function() { // 削除対象チェック var cnt = itsmo.lib.getCheckNum('ajax_myroute_list_chk'); if (cnt == false) { itsmo.lib.aplErrorWindow('E', '0006', 'myroute', '登録ルート'); return; } itsmo.vars.g_myroute_del = cnt.join(','); itsmo.lib.map_confirm('登録ルートの削除','選択した登録ルートを削除いたします。
よろしいですか?' ,itsmo.myroute.myroute_del_submit); }; itsmo.myroute.myroute_del_submit = function() { if(itsmo.vars.g_map_confirm_yes == 0) return; // 実行 var prm = 'mode=myroute_del'; prm += '&id=' + itsmo.vars.g_myroute_del; itsmo.lib.XMLHttpRequest2_send_wait('/map/ajax_myroute.php',itsmo.myroute.myroute_del_result,'GET',prm,'削除中'); }; itsmo.myroute.myroute_del_result = function(result) { // エラーチェック var err = parseInt($(result).find('err').text(), 10); if(err != 0) { if (err == 99) { itsmo.lib.aplErrorWindow('W', '0008', 'myroute'); } else { itsmo.lib.aplErrorWindow('W', '0004', 'myroute', '登録ルート'); } return; } // 確認ウィンドウ itsmo.lib.aplErrorWindow('I', '0002', 'myroute', '登録ルート', 'routedel'); // 正常処理 itsmo.myroute.myroute_listreflesh(); // 一覧更新 }; //-------------------------------------------------------------------------------------------------- // 地図設定関数 // // 開発履歴 // 2009/09/28 tsano 新規開発 // 2009/12/16 tsano 2nd 用に改修 //-------------------------------------------------------------------------------------------------- itsmo.config = {}; itsmo.config.MapEasyConfig = function() { this.loadConfig(); // ドラッグ時動作用のイベント登録。 /* ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_MOUSEDOWN, itsmo.config.configDragStart); ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_MOUSEUP, itsmo.config.configDragEnd); ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_MOUSEMOVE, itsmo.config.configDragMove); */ ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_RIGHTCLICK, itsmo.vars.g_config_dblclick_right); ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_SCROLL_END, itsmo.vars.dblclickZoomInScrollMapEnd); // jQueryUI でウィンドウのドラッグ移動を実験。 //$('#ajax_config_window').draggable(); }; itsmo.config.MapEasyConfig.prototype.getCookie = function(key, defaultVal) { var s = itsmo.lib.cookie_get(key); if ('' == s) { return defaultVal; } return s; }; //初期処理 itsmo.config.MapEasyConfig.prototype.init = function () { /* //オーバーライド(itsmo.vars.g_config.mapinfoを見るようにした) itsmo.vars.g_map_layer_clickable.visibleZdcTooltipById=function(id){ if(this.tooltips[id]){ this.tooltips[id].doc.style.width=this.tooltips[id].firstwidth; this.tooltips[id].doc.style.height=this.tooltips[id].firstheight; this.tooltips[id].doc.style.display="block"; } }; */ this.loadConfig(); this.setToMap(); this.setToWindow(); }; // Cookie から設定値を取得。 itsmo.config.MapEasyConfig.prototype.loadConfig = function() { var s = this.getCookie('config_wheeltype', '1'); this.wheeltype = parseInt(s); s = this.getCookie('config_dblclick', '0'); this.dblclick = parseInt(s); //s = this.getCookie('config_mappanel', '1'); s = '1'; this.mappanel = parseInt(s); // s = this.getCookie('config_recommend', '1'); // this.maprecommend = parseInt(s); s = this.getCookie('config_centerfirst', '1'); this.centerfirst = parseInt(s); s = this.getCookie('config_mapinfo_minimize', '0'); this.mapinfo_minimize = parseInt(s); if(0 != this.mapinfo_minimize){ $('#config_mapinfo_minimize').val(1); $(".map_header1 #balloon-size #small-icon").removeClass('off'); $(".map_header1 #balloon-size #large-icon").addClass('off'); } else { $('#config_mapinfo_minimize').val(0); $(".map_header1 #balloon-size #small-icon").addClass('off'); $(".map_header1 #balloon-size #large-icon").removeClass('off'); } s = this.getCookie('config_speedmode', '1'); this.speedmode = parseInt(s); }; // Cookie へ設定値をセット。 itsmo.config.MapEasyConfig.prototype.saveConfig = function() { itsmo.lib.cookie_set('config_wheeltype', '' + this.wheeltype); //itsmo.lib.cookie_set('config_drag', '' + this.drag); itsmo.lib.cookie_set('config_centerfirst', '' + this.centerfirst); itsmo.lib.cookie_set('config_dblclick', '' + this.dblclick); itsmo.lib.cookie_set('config_mappanel', '' + this.mappanel); // itsmo.lib.cookie_set('config_recommend', '' + this.maprecommend); itsmo.lib.cookie_set('config_mapinfo_minimize', '' + this.mapinfo_minimize); //itsmo.lib.cookie_set('config_rightclickmenu', this.rightclickmenu); itsmo.lib.cookie_set('config_speedmode', '' + this.speedmode); }; // ホイール時の拡大縮小を逆転させる。 itsmo.config.MapEasyConfig.prototype.setWheelType = function(n) { n = parseInt(n); if (0 != n) { n = 1; } this.wheeltype = n; }; // ホイール動作の設定。 itsmo.config.MapEasyConfig.prototype.setWheelTypeToMap = function() { // 画面変更。 $('#userzoomcontrol').unwrap(); itsmo.vars.g_map_obj.setWheelType(this.wheeltype == 0 ? 1 : 2); itsmo.vars.g_map_obj.removeUserZoomControl(); if (0 == this.wheeltype) { $('#userzoomcontrol').wrap('
'); } else { $('#userzoomcontrol').wrap('
'); } }; // ホイール時の拡大中心部の動作変更。 itsmo.config.MapEasyConfig.prototype.setCenterFirst = function(n) { n = parseInt(n); if (0 != n) { n = 1; } this.centerfirst = n; }; itsmo.vars.g_config_dblclick_zoomin = function() { // ダブルクリックで拡大。 itsmo.vars.g_map_obj.moveLatLon(itsmo.vars.g_map_obj.getClickLatLon()); itsmo.vars.g_map_obj.zoomIn(); }; itsmo.vars.g_config_dblclick_right_count = 0; // 右クリック回数 itsmo.vars.g_config_dblclick_right_timer = null; // 右ダブルクリック判定用タイムアウト。 itsmo.vars.g_config_dblclick_right_data = {}; itsmo.vars.g_config_dblclick_right = function() { // 右クリックされた。 ++itsmo.vars.g_config_dblclick_right_count; if (null == itsmo.vars.g_config_dblclick_right_timer) { itsmo.vars.g_config_dblclick_right_timer = setTimeout(itsmo.vars.g_config_dblclick_right_timerfunc, 300); } }; // 右ダブルクリック判定用のタイムアウト関数。 itsmo.vars.g_config_dblclick_right_timerfunc = function() { itsmo.vars.g_config_dblclick_right_timer = null; var n = itsmo.vars.g_config_dblclick_right_count; itsmo.vars.g_config_dblclick_right_count = 0; if (n <= 1 || !itsmo.vars.g_config.isDblClickNoMove()) { // 右シングルクリック。メニュー表示。 itsmo.vars.g_config.configShowRightClickMenu(); } else { // 右ダブルクリックで縮小。 if (itsmo.vars.g_config.dblclick != 0) { itsmo.vars.g_map_obj.moveLatLon(itsmo.vars.g_map_obj.getPointerPosition()); itsmo.vars.g_map_obj.zoomOut(); } } }; // ダブルクリック時の動作変更。 itsmo.config.MapEasyConfig.prototype.setDblClick = function(n) { n = parseInt(n); if (0 != n) { n = 1; } this.dblclick = n; }; // ダブルクリック時の動作をセットする。 itsmo.config.MapEasyConfig.prototype.setDblClickToMap = function() { ZDC.clearListeners(itsmo.vars.g_map_obj, ZDC.MAP_DBLCLICK); ZDC.clearListeners(itsmo.vars.g_map_obj, ZDC.MAP_CLICK); if (0 == this.dblclick) { // シングルクリックで移動。 ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CLICK, itsmo.map.map_clickmap); } else { // ダブルクリックの左で拡大、右で縮小。 ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_DBLCLICK, itsmo.vars.g_config_dblclick_zoomin); //ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CLICK, itsmo.map.map_clickmap); } if(itsmo.vars.premiumMap != null && typeof (itsmo.vars.premiumMap.reAddListener) == 'function'){ itsmo.vars.premiumMap.reAddListener(); } }; // ダブルクリック時拡大縮小モードか? itsmo.config.MapEasyConfig.prototype.isDblClickNoMove = function(n) { return 0 != this.dblclick; }; //地図の施設情報(ツールチップ)表示の動作設定 itsmo.config.MapEasyConfig.prototype.setMapInfoToMap = function () { itsmo.map.showMapTooltip(); }; // 地図の施設情報(ツールチップ)小さくする動作変更 itsmo.config.MapEasyConfig.prototype.setMapInfoMinimize = function(n) { n = parseInt(n); if (0 != n) { n = 1; } this.mapinfo_minimize = n; }; //地図の施設情報(ツールチップ)の大小を変更 itsmo.config.MapEasyConfig.prototype.setMapInfoMinimizeToMap = function () { var flg = this.mapinfo_minimize; /* if(flg == 0){ $('.f-supper0').attr('class','fukidasi0'); }else{ $('.fukidasi0').attr('class','f-supper0'); } */ itsmo.sub.set_tooltip_s.setHtmlAll(); }; //地図のお勧め情報表示の動作設定 //itsmo.config.MapEasyConfig.prototype.setMapRecommendToMap = function () { // // var flg = this.maprecommend; // if(flg == 0){ // $("div[id^='tip_c_osusume_']").hide(); // $("div[id^='tip_o_osusume_']").hide(); // //itsmo.map.hideMapTooltip(); // //}else{ // //itsmo.map.showMapTooltip(); // } //}; // 地図のお勧め情報表示の動作変更。(初回読込時吹き出し有無) //itsmo.config.MapEasyConfig.prototype.setMapRecommend = function(n) { // n = parseInt(n); // if (0 != n) { // n = 1; // } // this.maprecommend = n; // //}; // 地図のパネル表示の動作変更。 itsmo.config.MapEasyConfig.prototype.setMapPanel = function(n) { n = parseInt(n); if (0 != n) { n = 1; } this.mappanel = n; }; itsmo.config.MapEasyConfig.prototype.configShowRightClickMenu = function() { //var html = $('#right_click_div).html(); itsmo.map.closeUserMsgWindow(); //住所取得 prm = itsmo.vars.g_map_obj.getPointerPosition(); if(itsmo.config._request != null) { itsmo.lib.XMLHttpRequest2_abort(itsmo.config._request); } itsmo.config._request = itsmo.lib.XMLHttpRequest2_send('/map/right_click.php', function (result) { if(result.err){return false;} var addr = result[0].address.text; var zip = result[0].zipcode; var point = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getPointerPosition()); var lat = itsmo.vars.g_config_dblclick_right_data['lat'] = point.lat; var lon = itsmo.vars.g_config_dblclick_right_data['lon'] = point.lon; itsmo.vars.g_config_dblclick_right_data['addr'] = addr; $('#right_click_zipcode').text('〒' + zip); $('#right_click_addrnm').text(addr); var domEl = $('#right_click_div').html(); itsmo.map.openUserMsgWindow(point, domEl); itsmo.config._request = null; }, 'GET', prm, 'json'); }; itsmo.config.getHM = function(n) { var lat = itsmo.vars.g_config_dblclick_right_data['lat']; var lon = itsmo.vars.g_config_dblclick_right_data['lon']; open("https://biz.its-mo.com/biz/map/fullscreen/?lat="+lat+"&lon="+lon, "_blank" ) ; }; itsmo.config.configShowRightClickMenuDecide = function(id){ itsmo.map.closeUserMsgWindow(); if(!itsmo.vars.g_config_dblclick_right_data){return false;} var lat = itsmo.vars.g_config_dblclick_right_data['lat']; var lon = itsmo.vars.g_config_dblclick_right_data['lon']; var addr = itsmo.vars.g_config_dblclick_right_data['addr']; var latlon = {lat: lat, lon: lon}; switch(id){ case 0: itsmo.myroute.hereStart(addr, latlon); break; case 1://ココから出発 itsmo.myroute.hereGo(addr, latlon); break; case 2://ココへ行く itsmo.myroute.hereByway(addr, latlon); break; case 3://携帯へ itsmo.map.Sharing.getInstance().show(lat,lon,'',addr); break; case 4://登録 itsmo.myspot.other_addmyspot(lat,lon,addr,'','','','','','ADDR','','',true); break; case 5://自宅設定 itsmo.mypage.mypage('home_add', {lat: lat, lon: lon}); break; case 6://住宅地図へ遷移 //itsmo.sub.residential_map_printopen(); var url = 'https://biz.its-mo.com/biz/map/fullscreen/?'; url += 'lat='+lat+'&lon='+lon+'&size=A3&color=CD&pageDirection=VT©able=DA&lvl=15'; window.open(url, '_blank'); break; } itsmo.vars.g_config_dblclick_right_data = {}; }; // 動作の速度モード変更。 itsmo.config.MapEasyConfig.prototype.setSpeedMode = function(n) { n = parseInt(n); switch (n) { case 0: case 1: case 2: break; default: n = 0; break; } this.speedmode = n; }; // ドラッグ時の動作変更。 itsmo.config.MapEasyConfig.prototype.setDrag = function(n) { n = parseInt(n); if (0 != n) { n = 1; } var chg = this.drag != n; this.drag = n; if (!chg) { return; } }; itsmo.config.MapEasyConfig.prototype.getChecked = function(id) { var e = $(id); return this.isElementChecked(e); }; itsmo.config.MapEasyConfig.prototype.isElementChecked = function(e) { if (null == e) { return false; } return (e.className == 'check-on'); }; itsmo.config.MapEasyConfig.prototype.getCheckBoxes = function(nameStr, prefix) { var es = $("[name="+ nameStr +"]"); var cnt = 0, n = []; for (var i = 0; i < es.length; ++i) { var es2 = es[i].childNodes; for (var j = 0; j < es2.length; ++j) { var e = es2[j]; if (!('id' in e)) { continue; } if (null == e.id || e.id.indexOf(prefix) != 0) { continue; } n.push(e); } } return n; }; itsmo.config.MapEasyConfig.prototype.getRightClickMenuValue = function() { var prefix = 'config_rightclickmenu_'; var es = this.getCheckBoxes('config_rightclickmenu', prefix); var cnt = 0, n = []; for (var i = 0; i < es.length; ++i) { var e = es[i]; if (this.isElementChecked(e)) { ++cnt; n.push(e.id.substring(prefix.length)); } } n = n.join(','); this.setRightClickMenu(n); }; itsmo.config.MapEasyConfig.prototype.getCenterFirstValue = function() { var prefix = 'config_centerfirst_'; var es = this.getCheckBoxes('config_centerfirst', prefix); var n = -1; for (var i = 0; i < es.length; ++i) { var e = es[i]; if (this.isElementChecked(e)) { n = parseInt(e.id.substring(prefix.length)); break; } } if (n >= 0) { this.setCenterFirst(n); } }; itsmo.config.MapEasyConfig.prototype.getDblClickValue = function() { var es = $("input[name=config_dblclick]"); var n = -1; for (var i = 0; i < es.length; ++i) { e = es[i]; if (e.checked) { n = parseInt(e.id.substring(e.name.length + 1)); break; } } if (n >= 0) { this.setDblClick(n); } }; itsmo.config.MapEasyConfig.prototype.getSpeedModeValue = function() { var es = $("input[name=config_speedmode]"); var n = -1; for (var i = 0; i < es.length; ++i) { e = es[i]; if (e.checked) { n = parseInt(e.id.substr(e.name.length + 1)); break; } } if (n >= 0) { this.setSpeedMode(n); } }; itsmo.config.MapEasyConfig.prototype.getDragValue = function() { var es = $("input[name=config_drag]"); var n = -1; for (var i = 0; i < es.length; ++i) { e = es[i]; if (e.checked) { n = parseInt(e.id.substr(e.name.length + 1)); break; } } if (n >= 0) { this.setDrag(n); } }; itsmo.config.MapEasyConfig.prototype.getFromWindow = function() { this.getDblClickValue(); this.getSpeedModeValue(); var checked = $('#config_wheeltype').is(':checked'); this.setWheelType(checked ? 0 : 1); var checked = $('#config_mappanel').is(':checked'); this.setMapPanel(checked ? 1 : 0); // var checked = $('#config_recommend').is(':checked'); // this.setMapRecommend(checked ? 1 : 0); var checked = $('#config_centerfirst').is(':checked'); this.setCenterFirst(checked ? 0 : 1); this.setMapInfoMinimize($('#config_mapinfo_minimize').val()); }; itsmo.config.MapEasyConfig.prototype.setToWindow = function() { /* var prefix = 'config_rightclickmenu_'; var es = this.getCheckBoxes('config_rightclickmenu', prefix); if(this.rightclickmenu != ""){ var n = this.rightclickmenu.split(','); for (var i = 0; i < es.length; ++i) { e = es[i]; var j = e.id.substring(prefix.length); itsmo.config.configSetCheckBox(e, n.indexOf(j) >= 0); } } e = $('#config_drag_' + this.drag)[0]; if (null == e) { e = $('#config_drag_0')[0]; } e.checked = true; e = itsmo.vars.g_document.getElementById('config_centerfirst_' + this.centerfirst); if (null == e) { e = itsmo.vars.g_document.getElementById('config_centerfirst_0'); } e.checked = true; */ e = $('#config_dblclick_' + this.dblclick)[0]; if (null == e) { e = $('#config_dblclick_0')[0]; } e.checked = true; if(itsmo.vars.g_range_cnt == 30){ this.speedmode = 1; }else if(itsmo.vars.g_range_cnt == 50){ this.speedmode = 2; }else{ this.speedmode = 0; } e = $('#config_speedmode_' + this.speedmode)[0]; if (null == e) { e = $('#config_speedmode_1')[0]; } e.checked = true; if(this.wheeltype == 0){ $('#config_wheeltype').attr('checked', 'checked'); }else{ $('#config_wheeltype').attr('checked', false); } /* if(this.mappanel != 0){ $('#config_mappanel').attr('checked', 'checked'); }else{ $('#config_mappanel').attr('checked', false); } */ // if(this.maprecommend != 0){ // $('#config_recommend').attr('checked', 'checked'); // }else{ // $('#config_recommend').attr('checked', false); // } if(this.centerfirst != 1){ $('#config_centerfirst').attr('checked', 'checked'); }else{ $('#config_centerfirst').attr('checked', false); } // if(this.mapinfo_minimize != 0){ // $('#config_mapinfo_minimize').attr('checked', 'checked'); // }else{ // $('#config_mapinfo_minimize').attr('checked', false); // } }; itsmo.config.MapEasyConfig.prototype.setToMap = function() { // TODO ////////////////////////////// /* if (0 == this.drag) { itsmo.vars.g_map_obj.dragOn(); } else { itsmo.vars.g_map_obj.dragOff(); } */ //this.setWheelTypeToMap(); //itsmo.vars.g_map_obj.CenterFirst = this.centerfirst; this.setDblClickToMap(); if (0 == this.mapcenter) { // 非表示 itsmo.vars.g_map_center_icon.hidden(); } else { // 表示 itsmo.vars.g_map_center_icon.visible(); } this.setMapInfoToMap(); this.setMapInfoMinimizeToMap(); // this.setMapRecommendToMap(); switch (this.speedmode){ case 0: itsmo.vars.g_range_cnt = 10; itsmo.vars.g_range_flag_rowcnt = 10; break; case 2: itsmo.vars.g_range_cnt = 50; itsmo.vars.g_range_flag_rowcnt = 50; break; case 1: default : itsmo.vars.g_range_cnt = 30; itsmo.vars.g_range_flag_rowcnt = 30; break; } // if (0 == this.mappanel) { // $('#map-btn').hide(); // } else { $('#map-btn').show(); // } }; //地図の表示情報パネル設定(中心点) itsmo.config.MapEasyConfig.prototype.configSetPanelMapCenter = function () { var e = $('#ajax_config_mapcenter span')[0]; if(e.className == "check-on"){//非表示 itsmo.vars.g_map_center_icon.visible(); this.mapcenter = 1; if (null != itsmo.vars.g_map_setcursor_id) { itsmo.vars.g_map_obj.visibleZdcTooltipById(itsmo.vars.g_map_setcursor_id); } }else if(e.className == "check-off"){//表示 itsmo.vars.g_map_center_icon.hidden(); this.mapcenter = 0; if (null != itsmo.vars.g_map_setcursor_id) { itsmo.vars.g_map_obj.hiddenZdcTooltipById(itsmo.vars.g_map_setcursor_id); } } itsmo.lib.cookie_set('config_mapcenter','' + this.mapcenter); }; itsmo.vars.g_config_drag_start_xy = null; // ドラッグ開始位置(座標) itsmo.vars.g_config_drag_add = [0, 0]; // マウス追従時の加算値 itsmo.vars.g_config_drag_timer = null; // マウス追従時のタイマー // ドラッグ動作:追従時のドラッグ開始。 itsmo.config.configDragStart = function() { itsmo.vars.g_config_drag_start_xy = new ZDC.Pixel(itsmo.vars.g_map_obj.MouseMoveX, itsmo.vars.g_map_obj.MouseMoveY); }; // ドラッグ動作:追従時のドラッグ移動。 itsmo.config.configDragMove = function() { if (null == itsmo.vars.g_config_drag_start_xy) { return; } // マウスの移動量を計算。 var x = itsmo.vars.g_map_obj.MouseMoveX - itsmo.vars.g_config_drag_start_xy.x; var y = itsmo.vars.g_map_obj.MouseMoveY - itsmo.vars.g_config_drag_start_xy.y; var nomove = 5; if (Math.abs(x) < nomove && Math.abs(y) < nomove) { // 少し動かした位では移動させない。 itsmo.vars.g_config_drag_add[0] = itsmo.vars.g_config_drag_add[1] = 0; return; } // 以下のピクセルまでの移動速度に制限する。 var maxmove = 64; if (x < 0) { x = Math.max(x, -maxmove); } else { x = Math.min(x, maxmove); } if (y < 0) { y = Math.max(y, -maxmove); } else { y = Math.min(y, maxmove); } itsmo.vars.g_config_drag_add[0] = x; itsmo.vars.g_config_drag_add[1] = y; if (null == itsmo.vars.g_config_drag_timer) { // タイマの呼び出し間隔。 var config_drag_timeout = 10; itsmo.vars.g_config_drag_timer = setInterval(itsmo.config.configDragTimer, config_drag_timeout); } }; // ドラッグ動作:追従時のタイマ関数 itsmo.config.configDragTimer = function() { if (null == itsmo.vars.g_config_drag_timer) { return; } if (0 == itsmo.vars.g_config_drag_add[0] && 0 == itsmo.vars.g_config_drag_add[1]) { return; } itsmo.vars.g_map_obj.movePx(itsmo.vars.g_config_drag_add[0], itsmo.vars.g_config_drag_add[1]); }; // ドラッグ動作:追従時のドラッグ終了。 itsmo.config.configDragEnd = function() { if (null != itsmo.vars.g_config_drag_timer) { clearInterval(itsmo.vars.g_config_drag_timer); } itsmo.vars.g_config_drag_start_xy = itsmo.vars.g_config_drag_timer = null; }; // 簡易設定値。 itsmo.vars.g_config = null; itsmo.config.configSetCheckBox = function(chkBox, isOn) { if(isOn){chkBox.attr('class','check-on');}else{chkBox.attr('class','check-off');} }; itsmo.config.configCheckBox = function(id) { var chkBox = $('#'+ id + ' span'); var clsName = chkBox.attr('class'); if(clsName == 'check-off'){ itsmo.config.configSetCheckBox(chkBox, true); }else{ itsmo.config.configSetCheckBox(chkBox, false); } }; // コンフィグ画面を表示。 itsmo.config.configShowWindow = function() { itsmo.vars.g_screen_non = 0; itsmo.vars.g_config.setToWindow(); itsmo.lib.map_windowopen('ajax_config_window'); }; itsmo.config.configSubmit = function() { itsmo.vars.g_config.getFromWindow(); itsmo.vars.g_config.saveConfig(); itsmo.vars.g_config.setToMap(); itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose('ajax_config_window'); return false; }; itsmo.config.configCancel = function() { itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose('ajax_config_window'); return false; }; /////// // 渋滞統計表示。 itsmo.vars.g_route_vics = null; var RouteVics = function() { // init. this.init(); } RouteVics.prototype.init = function() { // カレンダー表示用の日付。 this.showday = new Date(); // VICS を表示する日時。 this.vicsday = new Date(); // VICS は 15 分単位。 this.vicsday.setMinutes(this.vicsday.getMinutes() - (this.vicsday.getMinutes() % 15)); this.setCalendar(); // VICS ウィンドウ表示状態。 this.isVisible = false; this.show_mode = 'nomal'; // 道路選択状況。 this.isHighway = true; this.isLocal = true; // スライダ。 $('#ajax_normalroute_panel_vics div.traffic-time-tumami').draggable({ stop: function(ev, ui) { itsmo.vars.g_route_vics.showLayer(); }, drag: function(ev, ui) { itsmo.vars.g_route_vics.dragTimeTsumami(ev, ui); }, containment: $('#ajax_normalroute_panel_vics div.traffic-time-tumami-bg'), axis: 'x' }); // スライダの増減ボタン。 this.timeAddBtnTimeout = null; this.timeAdd = 0; var timeAddBtnEndFunc = function() { if (null != itsmo.vars.g_route_vics.timeAddBtnTimeout) { window.clearTimeout(itsmo.vars.g_route_vics.timeAddBtnTimeout); itsmo.vars.g_route_vics.timeAddBtnTimeout = null; } itsmo.vars.g_route_vics.showLayer(); return false; }; $("#ajax_normalroute_panel_vics div.traffic-time a[class^='arrow-']").mousedown(function(e) { e = $(e.target); var s = e.attr('class').substring(6); if (s.indexOf('left') == 0) { itsmo.vars.g_route_vics.timeAdd = -1; } else { itsmo.vars.g_route_vics.timeAdd = 1; } itsmo.vars.g_route_vics.onClickAddTime(itsmo.vars.g_route_vics.timeAdd); if (null != itsmo.vars.g_route_vics.timeAddBtnTimeout) { window.clearTimeout(itsmo.vars.g_route_vics.timeAddBtnTimeout); } itsmo.vars.g_route_vics.timeAddBtnTimeout = window.setTimeout(RouteVics.repeatAddTime, 500); return false; }).mouseup(timeAddBtnEndFunc).mouseout(timeAddBtnEndFunc); // スライダ上をクリックしたときの対応。 $("#ajax_normalroute_panel_vics div.traffic-time div.traffic-time-tumami-bg2").click(RouteVics.onClickTsumamiBar); // スケールレベルの変化に対応。 ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CHG_ZOOM, RouteVics.onChangeZoomEnd); $("#ajax_normalroute_panel_vics div[class^='traffic_btn_off-'] span.traffic-search").click(RouteVics.onClickCancelTraficBtnOff); RouteVics.onChangeZoomEnd(); // 一応呼んでおく。 this.showTimeTsumamiFuki(); } // VICS 表示時刻をセット。n => 0~95 RouteVics.prototype.setVicsTimeByCount = function(n, isShowLayer) { if (undefined == isShowLayer || null == isShowLayer) { isShowLayer = true; } n = Math.max(0, n); n = Math.min(95, n); this.vicsday.setHours(Math.floor(n / 4)); this.vicsday.setMinutes((n % 4) * 15); this.showTimeTsumamiFuki(); if (isShowLayer) { this.showLayer(); } } // つまみ移動ボタンのリピート。 RouteVics.repeatAddTime = function() { itsmo.vars.g_route_vics.onClickAddTime(itsmo.vars.g_route_vics.timeAdd); itsmo.vars.g_route_vics.timeAddBtnTimeout = window.setTimeout(RouteVics.repeatAddTime, 100); } // つまみ下のバーをクリックした処理。 RouteVics.onClickTsumamiBar = function(ev) { var pos = $(ev.currentTarget).offset(); var n = ev.pageX - pos.left - 4; itsmo.vars.g_route_vics.setVicsTimeByCount(n); } // ツマミの移動。 RouteVics.prototype.dragTimeTsumami = function(ev, ui) { var s = $('#ajax_normalroute_panel_vics div.traffic-time-tumami').css('left'); var n = parseInt(s.substring(0, s.length - 2), 10); this.setVicsTimeByCount(n - 4, false); } // つまみとフキダシの表示、調整。 RouteVics.prototype.showTimeTsumamiFuki = function() { var m = this.vicsday.getMinutes(); m -= m % 15; this.vicsday.setMinutes(m); // 分は2桁にする。 m = this.get02d(m); m = this.vicsday.getHours() + ':' + m; // フキダシの移動、表示文字列の変更。 var px = this.vicsday.getHours() * 4 + Math.floor(this.vicsday.getMinutes() / 15) + 4; //px += 'px'; $('#ajax_normalroute_panel_vics div.traffic-time-tumami').css('left', px + 'px'); px += 21; $('#ajax_normalroute_panel_vics div.traffic-time-num').hide().css('left', px + 'px').show().find('div.traffic-time-num2').html(m); } // 時間の前後ボタン押下。 RouteVics.prototype.onClickAddTime = function(n) { var d = new Date(this.vicsday.getTime() + n * 15 * 60 * 1000); if (this.vicsday.getDate() != d.getDate()) { return false; } this.vicsday = d; this.showTimeTsumamiFuki(); return false; } // %02d を返す。 RouteVics.prototype.get02d = function(n) { n = '0' + n; n = n.substring(n.length - 2); return n; } // 渋滞統計を表示する日時を返す。 RouteVics.prototype.getShowDate = function() { var s = '' + this.vicsday.getFullYear(); s += this.get02d(this.vicsday.getMonth() + 1); s += this.get02d(this.vicsday.getDate()); s += this.get02d(this.vicsday.getHours()); s += this.get02d(this.vicsday.getMinutes()); return s; } // 渋滞統計を表示する日時を設定する。datestr=>'201007051230'みたいな。 RouteVics.prototype.setVicsShowDate = function(datestr) { var i = parseInt(datestr.substring(0, 4), 10); this.vicsday.setFullYear(i); i = parseInt(datestr.substring(4, 6), 10); this.vicsday.setMonth(i - 1); i = parseInt(datestr.substring(6, 8), 10); this.vicsday.setDate(i); i = parseInt(datestr.substring(8, 10), 10); this.vicsday.setHours(i); i = parseInt(datestr.substring(10, 12), 10); this.vicsday.setMinutes(i); this.showday.setTime(this.vicsday.getTime()); this.setCalendar(); this.showTimeTsumamiFuki(); this.showLayer(); } // レイヤー作成。 RouteVics.prototype.showLayer = function() { if(itsmo.vars.g_map_layer_traffic == null) { itsmo.vars.g_map_layer_traffic = new ZDC.Traffic({ date: parseInt(this.getShowDate(), 10) }); itsmo.vars.g_map_obj.addWidget(itsmo.vars.g_map_layer_traffic); } else { itsmo.vars.g_map_layer_traffic.setDate(parseInt(this.getShowDate(), 10)); } if(!this.isHighway && !this.isLocal) { itsmo.vars.g_map_layer_traffic.hidden(); } else { itsmo.vars.g_map_layer_traffic.visible(); } if( this.isHighway && this.isLocal) itsmo.vars.g_map_layer_traffic.setLayer('LOCAL,HIGHWAY'); if( this.isHighway && !this.isLocal) itsmo.vars.g_map_layer_traffic.setLayer('HIGHWAY'); if(!this.isHighway && this.isLocal) itsmo.vars.g_map_layer_traffic.setLayer('LOCAL'); } // 表示 On/Off ボタンの押下。 RouteVics.prototype.onClickOpenBtn = function() { //this.setVisible(!this.isVisible); this.showVicsWindow(); } // VICS ウィンドウを表示する。 /* RouteVics.prototype.showVicsWindow = function() { var cl; //$('#ajax_normalroute_panel_vics_min').hide(); if (this.isVisible) { cl = 'traffic-check-act'; this.isHighway = this.isLocal = true; this.showHighwayLocal(); $('#ajax_normalroute_panel_vics_max').show(); this.showLayer(); } else { cl = 'traffic-check'; $('#ajax_normalroute_panel_vics_max').hide(); if (itsmo.vars.g_map_layer_traffic != null) { itsmo.vars.g_map_layer_traffic.hidden(); } } $('#ajax_normalroute_panel_vics_btn').attr('class', cl); return false; } // VICS ウィンドウの表示非表示を設定。 RouteVics.prototype.setVisible = function(bl) { this.isVisible = bl; this.showVicsWindow(); } */ //暫定対応。やりたくはない. RouteVics.prototype.showVicsWindow = function() { if(itsmo.vars.g_myroute_panel_isvisible == 1){ itsmo.vars.g_myroute_panel_isvisible = 2; itsmo.myroute.showRoutePanel(); } if(this.isVisible == 0 || this.isVisible == false ){ $('#map_vics_link').attr('class','map-btn3-jutai2-act'); this.isVisible = 1; cl = 'traffic-check-act'; this.isHighway = this.isLocal = true; this.showHighwayLocal(); $('#ajax_normalroute_panel_vics_max').show(); this.ChangeShowMode(); this.showLayer(); if ($('#vics_menu_resize').attr('class') == 'maxsize'){ $('#vics_traffic_time').hide(); } return false; } if(this.isVisible == 2){ $('#map_vics_link').attr('class','map-btn3-jutai2-keep'); this.isVisible = 0; $('#ajax_normalroute_panel_vics_max').hide(); } if(this.isVisible == 1){ this.isVisible = 0; cl = 'traffic-check'; $('#ajax_normalroute_panel_vics_max').hide(); $('#map_vics_link').attr('class','map-btn3-jutai2'); if (itsmo.vars.g_map_layer_traffic != null) { itsmo.vars.g_map_layer_traffic.hidden(); } return false; } if(this.isVisible == 3){ $('#ajax_normalroute_panel_vics_max').show().css('z-index','999'); $('#map_vics_link').attr('class','map-btn3-jutai2-act'); this.isVisible = 1; } $('#ajax_normalroute_panel_vics_btn').attr('class', cl); }; // 道路選択チェックボックスを反映。 RouteVics.prototype.showHighwayLocal = function() { var h = this.isHighway ? '-act' : ''; var l = this.isLocal ? '-act' : ''; $('#ajax_normalroute_panel_vics_highway1').attr('class', 'traffic-highway' + h); $('#ajax_normalroute_panel_vics_local1').attr('class', 'traffic-local' + l); $('#ajax_normalroute_panel_vics_highway2').attr('class', 'traffic-check' + h); $('#ajax_normalroute_panel_vics_local2').attr('class', 'traffic-check' + l); } RouteVics.prototype.onClickHighway = function() { this.isHighway = !this.isHighway; this.showHighwayLocal(); this.showLayer(); return false; } RouteVics.prototype.onClickLocal = function() { this.isLocal = !this.isLocal; this.showHighwayLocal(); this.showLayer(); return false; } // カレンダーの前月次月ボタン押下。 RouteVics.prototype.onClickAddCalendar = function(n) { var day = new Date(this.showday.getTime()); day.setDate(1); if (n < 0) { day.setTime(day.getTime() - 2 * 24 * 60 * 60 * 1000); } else { day.setTime(day.getTime() + 32 * 24 * 60 * 60 * 1000); } day.setDate(1); var y = day.getFullYear(); var m = day.getMonth(); var today = new Date(); if (y < today.getFullYear()) { y = today.getFullYear(); } if (y == today.getFullYear() && m < today.getMonth()) { m = today.getMonth(); } if (y > (today.getFullYear() + 1)) { y = today.getFullYear() + 1; m = 11; } this.showday.setFullYear(y); this.showday.setMonth(m); $('#ajax_normalroute_panel_vics div.traffic-time-num').hide(); this.setCalendar(); // IE6,7でカレンダーが6週あった場合にフキダシ位置がズレることへの対応。 $('#ajax_normalroute_panel_vics div.traffic-time-num').show(); return false; } // カレンダーを表示。 RouteVics.prototype.setCalendar = function() { var today = new Date(); // 表示月の1日目を作成。 this.showday.setDate(1); // カレンダーの前月次月ボタンの制御。 var i = $('#ajax_normalroute_panel_vics .traffic-month a.arrow-left'); if (this.showday.getFullYear() < today.getFullYear() || (this.showday.getFullYear() == today.getFullYear() && this.showday.getMonth() <= today.getMonth())) { i.hide(); } else { i.show(); } i = $('#ajax_normalroute_panel_vics .traffic-month a.arrow-right'); if (this.showday.getFullYear() > (today.getFullYear() + 1) || (this.showday.getFullYear() == (today.getFullYear() + 1) && 11 == this.showday.getMonth())) { i.hide(); } else { i.show(); } // 末日を作成。 var lastday = new Date(this.showday.getTime()); lastday.setDate(1); var start = lastday.getDay(); var end = lastday.getDay(); // 1日の曜日 lastday.setTime(lastday.getTime() + 32 * 24 * 60 * 60 * 1000); lastday.setDate(1); lastday.setHours(0); lastday.setMinutes(0); lastday.setSeconds(0); lastday.setTime(lastday.getTime() - 12 * 60 * 60); this.setCalendarDateText(false); // カレンダー作成。 end = Math.floor((lastday.getDate() + end + 6) / 7 - 1) * 10 + lastday.getDay(); i = $("#ajax_normalroute_panel_vics table.traffic-calender tr[name='tracal5']"); if (end >= 50) { i.show(); } else { i.hide(); } var week = 0; var tbl = $('#ajax_normalroute_panel_vics table.traffic-calender'); var showDate = this.showday; today = this.vicsday; var isTodayMonth = this.showday.getMonth() == today.getMonth() && this.showday.getFullYear() == today.getFullYear(); $("#ajax_normalroute_panel_vics table.traffic-calender td[name^=tracal]").each(function() { var s = $(this).parent().attr('name'); var w = parseInt(s.substring(6), 10); var d = parseInt($(this).attr('name').substring(6), 10); s = w * 10 + d; var e = $(this); if (s < start || s > end) { e.html(''); if (0 == d) { e.removeClass('cellSat'); } else if (6 == d) { e.removeClass('cellSun'); } else { e.removeClass('cellSun cellSat'); } return null; } if (w >= 1) { s = 7 - start + 1 + (w - 1) * 7 + d; } else { s = d - start + 1; } RouteVics.clickCal(e, showDate.getFullYear(), showDate.getMonth() + 1, s , (s == today.getDate() && isTodayMonth)); }); } // カレンダーの日付セット。 RouteVics.clickCal = function(e, y, m, d, isToday) { var s; var isSun = new Date(y, m - 1, d); var isSat = isSun.getDay() == 6; isSun = (isSun.getDay() == 0) || isSun.isJpHoliday(); if (isToday) { s = '
' + d + '
'; } else { s = '' + d + ''; } if (isSun || isSat) { if (isSun) { e.removeClass('cellSat'); e.addClass('cellSun'); } else { e.removeClass('cellSun'); e.addClass('cellSat'); } } else { e.removeClass('cellSun cellSat'); } e.html(s); } // カレンダーの日付クリック。 RouteVics.prototype.clickCal = function(y, m, d, e) { // vics 制御。 this.vicsday.setFullYear(y); this.vicsday.setMonth(m - 1); this.vicsday.setDate(d); this.showLayer(); // カレンダーの調整。 var i = $("#ajax_normalroute_panel_vics table.traffic-calender td div.today"); var n = i.html(); i = i.parent(); RouteVics.clickCal(i, y, m, n, false); e = $(e); e = e.parent(); RouteVics.clickCal(e, y, m, d, true); } // カレンダー上部の年月日表示。 RouteVics.prototype.setCalendarDateText = function(isFull) { var s = ''; if (isFull) { s = this.vicsday.getFullYear() + '年' + (this.vicsday.getMonth() + 1) + '月' + this.vicsday.getDate() + '日' + this.vicsday.getHours() + ':' + this.get02d(this.vicsday.getMinutes()); } else { s = this.showday.getFullYear() + '年' + (this.showday.getMonth() + 1) + '月'; } $('#ajax_normalroute_panel_vics_cal_ym').html(s); } /* // ルート表示時用に小さくする。 RouteVics.prototype.minimize = function() { $('#ajax_normalroute_panel_vics').addClass('route-traffic'); $("#ajax_normalroute_panel_vics .traffic-month a[class^='arrow-']").hide(); this.setCalendarDateText(true); } */ // ルート表示用?通常? RouteVics.prototype.ChangeShowMode = function() { if(this.show_mode == 'car'){ $("#ajax_normalroute_panel_vics .traffic-month0").hide(); $("#ajax_normalroute_panel_vics .traffic-time").hide(); $("#vics_traffic_time").hide(); this.setCalendarDateText(true); }else{ $("#ajax_normalroute_panel_vics .traffic-month0").show(); $("#ajax_normalroute_panel_vics .traffic-time").show(); $("#vics_traffic_time").show(); } } // ルート表示時用に小さくしたウィンドウを戻す。 RouteVics.prototype.restoreMinimize = function() { $('#ajax_normalroute_panel_vics').removeClass('route-traffic'); this.setCalendar(); } // ルート表示時用に VICS 表示日時を返す。 RouteVics.prototype.makeVicsShowDateStr = function() { // VICS 表示日時が現在時刻+15分より過去なら後者を使う。 var t = new Date(this.vicsday.getTime()); var now = (new Date()).getTime() + 15 * 60 * 1000 + 14 * 60 * 1000; now -= now % (15 * 60 * 1000); if (t.getTime() < now) { t.setTime(now); } return '' + t.getFullYear() + this.get02d(t.getMonth() + 1) + this.get02d(t.getDate()) + this.get02d(t.getHours()) + this.get02d(t.getMinutes()); } // 地図ズームレベル変更時。 RouteVics.onChangeZoomEnd = function() { var id = '#ajax_normalroute_panel_vics div.traffic_btn_off-highway0'; var n = itsmo.vars.g_map_obj.getZoom(); if (n <= 3) { $(id).show(); } else { $(id).hide(); } id = '#ajax_normalroute_panel_vics div.traffic_btn_off-lowway0'; if (n <= 8) { $(id).show(); } else { $(id).hide(); } } // 地図ズームレベル変更時。 RouteVics.onClickCancelTraficBtnOff = function(ev) { var e = $(ev.currentTarget); var s = e.parent().attr('class'); if (s.indexOf('highway') >= 0) { itsmo.vars.g_map_obj.setZoom(4); } else { itsmo.vars.g_map_obj.setZoom(9); } RouteVics.onChangeZoomEnd(); } // ======================================================== // http://labs.d4k.net/index.php?%BD%CB%C6%FC%A1%CA%BA%D7%C6%FC%A1%CB%BC%AB%C6%B0%BB%BB%BD%D0%A5%C4%A1%BC%A5%EB%20JavaScript%20%C8%C7 // jp-holidays.js ---- 祝日取得のための Date 拡張 // Copyright 2008 Kiyoshi Sakai // 2008/06/23 - JSでの最初のバージョン // 2008/09/25 - 昭和23(1948)年からの過去を意識しました // 参考にしたサイト // http://www.asahi-net.or.jp/~ci5m-nmr/misc/holiday.html // 2008/10/07 - バグ修正 // version: 0.0.2 // ======================================================== Date.prototype.one_day_epoch = 1000 * 60 * 60 * 24; Date.prototype.jp_hol_vernal_equinox_days = { 1925 : '3/21', 1926 : '3/21', 1927 : '3/21', 1928 : '3/21', 1929 : '3/21', 1930 : '3/21', 1931 : '3/21', 1932 : '3/21', 1933 : '3/21', 1934 : '3/21', 1935 : '3/21', 1936 : '3/21', 1937 : '3/21', 1938 : '3/21', 1939 : '3/21', 1940 : '3/21', 1941 : '3/21', 1942 : '3/21', 1943 : '3/21', 1944 : '3/21', 1945 : '3/21', 1946 : '3/21', 1947 : '3/21', 1948 : '3/21', 1949 : '3/21', 1950 : '3/21', 1951 : '3/21', 1952 : '3/21', 1953 : '3/21', 1954 : '3/21', 1955 : '3/21', 1956 : '3/21', 1957 : '3/21', 1958 : '3/21', 1959 : '3/21', 1960 : '3/20', 1961 : '3/21', 1962 : '3/21', 1963 : '3/21', 1964 : '3/20', 1965 : '3/21', 1966 : '3/21', 1967 : '3/21', 1968 : '3/20', 1969 : '3/21', 1970 : '3/21', 1971 : '3/21', 1972 : '3/20', 1973 : '3/21', 1974 : '3/21', 1975 : '3/21', 1976 : '3/20', 1977 : '3/21', 1978 : '3/21', 1979 : '3/21', 1980 : '3/20', 1981 : '3/21', 1982 : '3/21', 1983 : '3/21', 1984 : '3/20', 1985 : '3/21', 1986 : '3/21', 1987 : '3/21', 1988 : '3/20', 1989 : '3/21', 1990 : '3/21', 1991 : '3/21', 1992 : '3/20', 1993 : '3/20', 1994 : '3/21', 1995 : '3/21', 1996 : '3/20', 1997 : '3/20', 1998 : '3/21', 1999 : '3/21', 2000 : '3/20', 2001 : '3/20', 2002 : '3/21', 2003 : '3/21', 2004 : '3/20', 2005 : '3/20', 2006 : '3/21', 2007 : '3/21', 2008 : '3/20', 2009 : '3/20', 2010 : '3/21', 2011 : '3/21', 2012 : '3/20', 2013 : '3/20', 2014 : '3/21', 2015 : '3/21' }; Date.prototype.jp_hol_autumnal_equinox_days = { 1925 : '9/23', 1926 : '9/24', 1927 : '9/24', 1928 : '9/23', 1929 : '9/23', 1930 : '9/24', 1931 : '9/24', 1932 : '9/23', 1933 : '9/23', 1934 : '9/24', 1935 : '9/24', 1936 : '9/23', 1937 : '9/23', 1938 : '9/24', 1939 : '9/24', 1940 : '9/23', 1941 : '9/23', 1942 : '9/24', 1943 : '9/24', 1944 : '9/23', 1945 : '9/23', 1946 : '9/24', 1947 : '9/24', 1948 : '9/23', 1949 : '9/23', 1950 : '9/23', 1951 : '9/24', 1952 : '9/23', 1953 : '9/23', 1954 : '9/23', 1955 : '9/24', 1956 : '9/23', 1957 : '9/23', 1958 : '9/23', 1959 : '9/24', 1960 : '9/23', 1961 : '9/23', 1962 : '9/23', 1963 : '9/24', 1964 : '9/23', 1965 : '9/23', 1966 : '9/23', 1967 : '9/24', 1968 : '9/23', 1969 : '9/23', 1970 : '9/23', 1971 : '9/24', 1972 : '9/23', 1973 : '9/23', 1974 : '9/23', 1975 : '9/24', 1976 : '9/23', 1977 : '9/23', 1978 : '9/23', 1979 : '9/24', 1980 : '9/23', 1981 : '9/23', 1982 : '9/23', 1983 : '9/23', 1984 : '9/23', 1985 : '9/23', 1986 : '9/23', 1987 : '9/23', 1988 : '9/23', 1989 : '9/23', 1990 : '9/23', 1991 : '9/23', 1992 : '9/23', 1993 : '9/23', 1994 : '9/23', 1995 : '9/23', 1996 : '9/23', 1997 : '9/23', 1998 : '9/23', 1999 : '9/23', 2000 : '9/23', 2001 : '9/23', 2002 : '9/23', 2003 : '9/23', 2004 : '9/23', 2005 : '9/23', 2006 : '9/23', 2007 : '9/23', 2008 : '9/23', 2009 : '9/23', 2010 : '9/23', 2011 : '9/23', 2012 : '9/22', 2013 : '9/23', 2014 : '9/23', 2015 : '9/23' }; Date.prototype.getJpHolNationalFoundationDay = function (y) { return 1967 <= y ? '2/11' : null; } Date.prototype.getJpHolEquinoxDateCalc = function (y, va) { // 1太陽年は(西暦2000年において)365.24219日(365.24219040日)となっており、100年間で約0.53秒ずつ短くなっている。 // 2000年の太陽の春分点通過日 // 3月20.69115日 // 2000年の太陽の秋分点通過日 // 9月23.09日 var equinox; switch(va) { case 'vernal': // date('2000/03/20').getTime() + (60 * 60 * 24 * 0.69115) equinox = 953537715.36; break; case 'autumnal': // date('2000-09-23').getTime() + (60 * 60 * 24 * 0.09) equinox = 969642576.00; break; } // 2000年の春(秋)分点 + 2000年から太陽年の計算 + 太陽年の誤差修正(100年間で約0.53短くなりつつある) var i; var y_sum = 0; for(i = 0; i > y - 2000; i--) { y_sum += i; } for(i = 0; i < y - 2000; i++) { y_sum += i; } // var target_date_equinox = new Date(equinox + (3155692525056 * (y - 2000) / 100000) + (53 * (array_sum(range(0, y - 2000))) / 10000)); var target_date_equinox = new Date((equinox + (3155692525056 * (y - 2000) / 100000) + (53 * y_sum / 10000)) * 1000); return (target_date_equinox.getMonth() + 1) + '/' + target_date_equinox.getDate(); } Date.prototype.isJpHolVernalEquinoxDay = function (y, m_d) { var ve_m_d; if(this.jp_hol_vernal_equinox_days[y]) { ve_m_d = this.jp_hol_vernal_equinox_days[y]; } else { ve_m_d = this.getJpHolEquinoxDateCalc(y, 'vernal'); this.jp_hol_vernal_equinox_days[y] = ve_m_d; } return m_d == ve_m_d ? true : false; } Date.prototype.isJpHolAutumnalEquinoxDay = function (y, m_d) { // return m_d == (this.jp_hol_autumnal_equinox_days[y] ? this.jp_hol_autumnal_equinox_days[y] : this.getJpHolEquinoxDateCalc(y, 'autumnal')); var va_m_d; if(this.jp_hol_autumnal_equinox_days[y]) { va_m_d = this.jp_hol_autumnal_equinox_days[y]; } else { va_m_d = this.getJpHolEquinoxDateCalc(y, 'autumnal'); this.jp_hol_autumnal_equinox_days[y] = va_m_d; } return m_d == va_m_d ? true : false; } Date.prototype.isJpHoliday = function(by_date_itself) { var y = this.getFullYear(); var m_d = (this.getMonth() + 1) + '/' + this.getDate(); var y_m_d = y + '/' + m_d; // 2008-10-07 追加 バグ修正ごめん var national_foundation_m_d = this.getJpHolNationalFoundationDay(y); if(this.is_jp_holiday && typeof(this.is_jp_holiday) == 'boolean' && this.y_m_d && this.y_m_d == y_m_d) { return this.is_jp_holiday; } this.y_m_d = y_m_d; switch(m_d) { case '1/1': if(1949 <= y) { this.jp_hol_name = '元日'; this.jp_hol_engl = 'New Year\'s Day'; this.jp_hol_desc = '年のはじめを祝う。'; this.is_jp_holiday = true; return true; } break; case '1/15': if(1949 <= y && y <= 1999) { this.jp_hol_name = '成人の日'; this.jp_hol_engl = 'Coming of Age Day'; this.jp_hol_desc = 'おとなになったことを自覚し、みずから生き抜こうとする青年を祝いはげます。'; this.is_jp_holiday = true; return true; // 2008-10-07 追加 バグ修正ごめん } break; case '4/29': if(1927 <= y && y <= 1988) { this.jp_hol_name = '天皇誕生日'; this.jp_hol_engl = 'Emperor\'s Birthday'; this.jp_hol_desc = '天皇の誕生日を祝う。'; this.is_jp_holiday = true; return true; } else if(1989 <= y && y <= 2006) { this.jp_hol_name = 'みどりの日'; this.jp_hol_engl = 'Greenery Day'; this.jp_hol_desc = '自然に親しむとともにその恩恵に感謝し、豊かな心をはぐくむ。'; this.is_jp_holiday = true; return true; } else if(2007 <= y) { this.jp_hol_name = '昭和の日'; this.jp_hol_engl = 'Showa Day'; // 正式な発表ではありません… this.jp_hol_desc = '激動の日々を経て、復興を遂げた昭和の時代を顧み、国の将来に思いをいたす。'; this.is_jp_holiday = true; return true; } break; case '5/3': if(1949 <= y) { this.jp_hol_name = '憲法記念日'; this.jp_hol_engl = 'Constitution Memorial Day'; this.jp_hol_desc = '日本国憲法の施行を記念し、国の成長を期する。'; this.is_jp_holiday = true; return true; } break; case '5/4': if(2007 <= y) { this.jp_hol_name = 'みどりの日'; this.jp_hol_engl = 'Greenery Day'; this.jp_hol_desc = '自然に親しむとともにその恩恵に感謝し、豊かな心をはぐくむ。'; this.is_jp_holiday = true; return true; } break; case '5/5': if(1949 <= y) { this.jp_hol_name = 'こどもの日'; this.jp_hol_engl = 'Children\'s Day'; this.jp_hol_desc = 'こどもの人格を重んじ、こどもの幸福をはかるとともに、母に感謝する。'; this.is_jp_holiday = true; return true; } break; case '7/20': if(1996 <= y && y <= 2002) { this.jp_hol_name = '海の日'; this.jp_hol_engl = 'Marine Day'; this.jp_hol_desc = '海の恩恵に感謝するとともに、海洋国日本の繁栄を願う。'; this.is_jp_holiday = true; return true; } break; case '9/15': if(1967 <= y && y <= 2002) { this.jp_hol_name = '敬老の日'; this.jp_hol_engl = 'Respect for the Aged Day'; this.jp_hol_desc = '多年にわたり社会につくしてきた老人を敬愛し、長寿を祝う。'; this.is_jp_holiday = true; return true; } break; case '10/10': if(1966 <= y && y <= 1999) { this.jp_hol_name = '体育の日'; this.jp_hol_engl = 'Health and Sports Day'; this.jp_hol_desc = 'スポーツにしたしみ、健康な心身をつちかう。'; this.is_jp_holiday = true; return true; } break; case '11/3': if(1948 <= y) { this.jp_hol_name = '文化の日'; this.jp_hol_engl = 'National Culture Day'; this.jp_hol_desc = '自由と平和を愛し、文化をすすめる。'; this.is_jp_holiday = true; return true; } break; case '11/23': if(1948 <= y) { this.jp_hol_name = '勤労感謝の日'; this.jp_hol_engl = 'Labor Thanksgiving Day'; this.jp_hol_desc = '勤労をたっとび、生産を祝い、国民たがいに感謝しあう。'; this.is_jp_holiday = true; return true; } break; case '12/23': if(1989 <= y) { this.jp_hol_name = '天皇誕生日'; this.jp_hol_engl = 'Emperor\'s Birthday'; this.jp_hol_desc = '天皇の誕生日を祝う。'; this.is_jp_holiday = true; return true; } break; case national_foundation_m_d: // 政令で定める日 if(1967 <= y) { this.jp_hol_name = '建国記念の日'; this.jp_hol_engl = 'National Foundation Day'; this.jp_hol_desc = '建国をしのび、国を愛する心を養う。'; this.is_jp_holiday = true; return true; } break; } switch((this.getMonth() + 1) + '-' + Math.ceil(this.getDate() / 7) + '-' + this.getDay()) { case '1-2-1': // 1月の第2月曜日 if(2000 <= y) { this.jp_hol_name = '成人の日'; this.jp_hol_engl = 'Coming of Age Day'; this.jp_hol_desc = 'おとなになったことを自覚し、みずから生き抜こうとする青年を祝いはげます。'; this.is_jp_holiday = true; return true; } break; case '7-3-1': // 7月の第3月曜日 if(2003 <= y) { this.jp_hol_name = '海の日'; this.jp_hol_engl = 'Marine Day'; this.jp_hol_desc = '海の恩恵に感謝するとともに、海洋国日本の繁栄を願う。'; this.is_jp_holiday = true; return true; } break; case '9-3-1': // 9月の第3月曜日 if(2003 <= y) { this.jp_hol_name = '敬老の日'; this.jp_hol_engl = 'Respect for the Aged Day'; this.jp_hol_desc = '多年にわたり社会につくしてきた老人を敬愛し、長寿を祝う。'; this.is_jp_holiday = true; return true; } break; case '10-2-1': // 10月の第2月曜日 if(2000 <= y) { this.jp_hol_name = '体育の日'; this.jp_hol_engl = 'Health and Sports Day'; this.jp_hol_desc = 'スポーツにしたしみ、健康な心身をつちかう。'; this.is_jp_holiday = true; return true; } break; } if(this.isJpHolVernalEquinoxDay(y, m_d)) { if(1949 <= y) { this.jp_hol_name = '春分の日'; this.jp_hol_engl = 'Vernal Equinox'; this.jp_hol_desc = '自然をたたえ、生物をいつくしむ。'; this.is_jp_holiday = true; return true; } } if(this.isJpHolAutumnalEquinoxDay(y, m_d)) { if(1948 <= y) { this.jp_hol_name = '秋分の日'; this.jp_hol_engl = 'Autumnal Equinox'; this.jp_hol_desc = '祖先をうやまい、なくなった人々をしのぶ。'; this.is_jp_holiday = true; return true; } } if(by_date_itself) { this.jp_hol_name = null; this.jp_hol_engl = null; this.jp_hol_desc = null; this.is_jp_holiday = false; return false; } var date_before = new Date(this.getTime() - this.one_day_epoch); if(date_before.isJpHoliday(true)) { // 前日が祝日 if(date_before.getDay() == 0) { // 前日が祝日かつ日曜ならば this.jp_hol_name = '振替休日'; this.jp_hol_engl = 'Substitute Holiday'; this.jp_hol_desc = null; this.is_jp_holiday = true; return true; } if(1986 <= y) { var date_after = new Date(this.getTime() + this.one_day_epoch); if(date_after.isJpHoliday(true)) { // 前日も翌日も祝日ならば this.jp_hol_name = '国民の休日'; this.jp_hol_engl = 'Holiday for a Nation'; this.jp_hol_desc = null; this.is_jp_holiday = true; return true; } } if(2007 <= y) { date_before.setTime(date_before.getTime() - this.one_day_epoch); while(date_before.isJpHoliday(true)) { // 前日以前が祝日の連続になっている場合 if(date_before.getDay() == 0) { // 前日以前が祝日の連続で、日曜が重なる場合 this.jp_hol_name = '振替休日'; this.jp_hol_engl = 'Substitute Holiday'; this.jp_hol_desc = null; this.is_jp_holiday = true; return true; } date_before.setTime(date_before.getTime() - this.one_day_epoch); } } } this.jp_hol_name = null; this.jp_hol_engl = null; this.jp_hol_desc = null; this.is_jp_holiday = false; return false; } if (!itsmo.ad) { itsmo.ad = {}; } itsmo.ad.hotspot = {}; itsmo.ad.hotspot._request = null; // 初期化 itsmo.ad.hotspot.init = function() { }; itsmo.ad.hotspot.onClickSearch = function(e) { var s; if (null != e) { s = $(e).text(); } else { s = $('#ajax_facet_range_freewd').val(); } itsmo.ad.hotspot.search(s); }; // itsmo.ad.hotspot.search = function(freewd) { itsmo.sub.map_tab_change('range', ['hostspot', freewd]); // ajax通信 var prm = itsmo.vars.g_map_search_location; prm = 'lat=' + prm.lat + '&lon=' + prm.lon + '&freewd=' + encodeURIComponent(freewd) ; itsmo.lib.map_waitopen(); if(itsmo.ad.hotspot._request != null) { itsmo.lib.XMLHttpRequest2_abort(itsmo.ad.hotspot._request); } itsmo.ad.hotspot._request = itsmo.lib.XMLHttpRequest2_send('/map/ajax_ad_hotspot.php' , itsmo.ad.hotspot.search_result, 'GET', prm); }; itsmo.ad.hotspot.search_result = function(result) { itsmo.ad.hotspot._request = null; // エラー処理 result = $(result); var err = result.find('err').text(); if(err != 0) { //alert('エラー '+err); return; } itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml(result.find('left_html').text()); $('#ajax_facet_range_freewd').clearField().blur().keypress(function(e) { if (13 == e.which) { itsmo.ad.hotspot.onClickSearch(null); } }); }; //-------------------------------------------------------------------------------------------------- // メニュー選択 //-------------------------------------------------------------------------------------------------- itsmo.near_baitoru = function() {}; itsmo.near_baitoru.classification = []; itsmo.near_baitoru.classification_cat = []; itsmo.near_baitoru.is_init = false; itsmo.near_baitoru.cond = {}; itsmo.near_baitoru.opened_cond_window = null; itsmo.near_baitoru.start = function() { itsmo.near_baitoru.classification = []; itsmo.near_baitoru.classification_cat = []; itsmo.near_baitoru.cond = {}; itsmo.near_baitoru.cond['sort'] = 'location'; itsmo.vars.g_range_genre = 'baitoru'; itsmo.near_baitoru.search(); }; itsmo.near_baitoru.setSearchCond = function(e, key, val) { itsmo.near_baitoru.hideCondSelect(); if (null != key && undefined != key) { itsmo.near_baitoru.cond[key] = val; } e = $(e); var txt = e.text(); var i, f = null; for (i = 0; i < 10; ++i) { e = e.parent(); f = e.find('span.box-s'); if (f.length >= 1) { break; } } if (null == f) { return false; } f.text(txt); e.find('input:hidden').val(val); if ('salary' == key) { itsmo.near_baitoru.onchange_salary(); } }; itsmo.near_baitoru.setCond = function() { $("#ajax_leftmenu_result span[class^='sis-search-paka-waku0']").each(function() { var e = $(this); var box = e.find('span.box-s'); var id = box.attr('id'); var key = (null == id || undefined == id) ? '' : id.substring(8); var f = e.find('input:hidden'); if (f.length == 1) { key = f.attr('name'); } var n = itsmo.near_baitoru.cond[key]; if (n == null || n == undefined) { return; } e.find('ul li').each(function() { var f = $(this).find("a"); var s = f.attr('onclick'); if (null == s || undefined == s) { return; } if (typeof s != 'string') { s = s.toString(); } if ('' == n || s.indexOf(n) >= 0) { box.text(f.text()); return false; } }); }); itsmo.near_baitoru.onchange_salary(); itsmo.near_baitoru.setClassificationCondLink(); }; itsmo.near_baitoru.showCondSelect = function(e) { var id = $(e).attr('id') + '_cond'; var bl = itsmo.near_baitoru.opened_cond_window == id; itsmo.near_baitoru.hideCondSelect(); if (bl) { return false; } itsmo.near_baitoru.opened_cond_window = id; $('#' + id).fadeIn('fast'); }; itsmo.near_baitoru.hideCondSelect = function() { itsmo.near_baitoru.opened_cond_window = null; $("#ajax_leftmenu_result span[class^='sis-search-paka-waku0'] div.sis-search-paka-genre").fadeOut('fast'); }; //-------------------------------------------------------------------------------------------------- // 検索 //-------------------------------------------------------------------------------------------------- itsmo.near_baitoru.search = function(act) { itsmo.near_baitoru.hideCondSelect(); itsmo.sub.map_tab_change('range', ['baitoru']); if (act != 'page') { itsmo.vars.g_range_page = 1; } var cond = [], i; for (i in itsmo.near_baitoru.cond) { cond.push(i + '=' + encodeURIComponent(itsmo.near_baitoru.cond[i])); } cond.push('classify=' + encodeURIComponent(itsmo.near_baitoru.classification.join(','))); cond.push('classifycat=' + encodeURIComponent(itsmo.near_baitoru.classification_cat.join(','))); i = itsmo.vars.g_map_search_location; var prm = 'lat=' + i.lat + '&lon=' + i.lon + '&minx=' + itsmo.vars.g_map_search_box.minx + '&miny=' + itsmo.vars.g_map_search_box.miny + '&maxx=' + itsmo.vars.g_map_search_box.maxx + '&maxy=' + itsmo.vars.g_map_search_box.maxy + '&page=' + itsmo.vars.g_range_page + '&cnt=' + itsmo.vars.g_range_cnt + '&' + cond.join('&') ; //alert(prm); itsmo.lib.map_waitopen(); itsmo.lib.XMLHttpRequest2_send('/map/ajax_near_baitoru.php', itsmo.near_baitoru.result, 'GET', prm); }; itsmo.near_baitoru.result = function (result) { // エラー処理 result = $(result); var err = result.find('err').text(); if(err != 0) { itsmo.lib.aplErrorWindow('W', '0003', 'baitoru', 'アルバイト検索'); return; } //チップクリア itsmo.sub.map_clickable_TipAllClear(1); $(result).find('list').each(function(){ var prm = {}; prm['uid'] = $(this).find('id').text(); prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['nm'] = $(this).find('title').text(); prm['short_nm'] = $(this).find('title').text(); prm['tip_c'] = $(this).find('tiphtmlc').text(); prm['tip_o'] = $(this).find('tiphtmlo').text(); var html = prm['tip_c']; var div_id = itsmo.sub.set_tooltip_s(html,prm); //bind $('#' + div_id + ' a').click(function() { itsmo.range.range_tipopen(prm.uid); }); $('#' + div_id + ' .tipc_range_open1').click(function() { itsmo.range.range_tipopen(prm.uid); }); }); itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml( result.find('listhtml').text() ); itsmo.near_baitoru.setCond(); }; itsmo.near_baitoru.set_pange_and_search = function(page) { itsmo.vars.g_range_page = page + 1; itsmo.near_baitoru.search('page'); }; itsmo.near_baitoru.onchange_salary = function() { $("#ajax_leftmenu_result span.sis-search-paka-waku0d[id^='baitoru_salary_']").hide(); var i = itsmo.near_baitoru.cond['salary']; if (i == null || i == undefined || '' == i) { i = '9'; } i = $('#baitoru_salary_' + i).show().find('input:hidden'); if (i.length >= 1) { itsmo.near_baitoru.cond[i.attr('name')] = i.val(); } }; itsmo.near_baitoru.showCond = function() { if (!itsmo.near_baitoru.is_init) { itsmo.near_baitoru.is_init = true; $("#ajax_baitoru_cond input:checkbox[name='job_cat']").click(itsmo.near_baitoru.onClickCategory); $("#ajax_baitoru_cond input:checkbox[name!='job_cat']").click(itsmo.near_baitoru.onClickJob); } itsmo.near_baitoru.setClassificationCond(); itsmo.lib.map_windowopen('ajax_baitoru_cond'); }; itsmo.near_baitoru.setClassificationCondLink = function() { var e = $('#ajax_baitoru_jobcat').find('span'); if (itsmo.near_baitoru.classification.length >= 1 || itsmo.near_baitoru.classification_cat.length >= 1) { e.eq(0).hide(); e.eq(1).show(); } else { e.eq(0).show(); e.eq(1).hide(); } }; itsmo.near_baitoru.setClassificationCond = function() { $("#ajax_baitoru_cond input:checkbox").attr("checked", false); var f = $("#ajax_baitoru_cond input:checkbox"); $.each(itsmo.near_baitoru.classification, function(i, v) { var e = f.filter("#baitoru" + v); e.attr('checked', true); }); f.filter("[name='job_cat']").each(function() { var e = $(this); var v = e.attr('id').substring(7); var i = "[name='job_" + v + "']"; var g = f.filter(i); if (g.length == g.filter(':checked').length) { e.attr('checked', true); } }); }; itsmo.near_baitoru.submit = function() { itsmo.near_baitoru.classification = []; itsmo.near_baitoru.classification_cat = []; var f = $("#ajax_baitoru_cond input:checkbox"); f.filter(":checked[name^='job_']").each(function() { var e = $(this); var n = e.attr('name'); var v = e.attr('id').substring(7); if ('job_cat' == n) { } else { itsmo.near_baitoru.classification.push(v); } }); f.filter("[name='job_cat']").each(function() { var e = $(this); var v = e.attr('id').substring(7); if (f.filter(":checked[name='job_" + v + "']").length >= 1) { itsmo.near_baitoru.classification_cat.push(v); } }); itsmo.lib.map_windowclose(); itsmo.near_baitoru.setClassificationCondLink(); itsmo.near_baitoru.search(); }; itsmo.near_baitoru.cancel = function() { map_windowclose(); }; itsmo.near_baitoru.onClickCategory = function(e) { e = $(e.target); $("#ajax_baitoru_cond input:checkbox[name='job_" + e.attr('id').substring(7) + "']").attr('checked', e.is(':checked')); }; itsmo.near_baitoru.onClickJob = function(e) { e = $(e.target); var n = e.attr('name'); var f = $("#ajax_baitoru_cond input:checkbox[name='" + n + "']"); var bl = f.filter(':checked').length == f.length; $("#ajax_baitoru_cond input:checkbox[name='job_cat'][id='baitoru" + n.substring(4) + "']").attr('checked', bl); }; itsmo.near_suumo = function() {}; itsmo.near_suumo.mode = 'buy'; itsmo.near_suumo.mode_panel = 'buy'; itsmo.near_suumo.condition = { 'rent':{} , 'buy':{} }; itsmo.near_suumo.condition_panel = { 'rent':{} , 'buy':{} }; itsmo.near_suumo.cnt = 10; itsmo.near_suumo.opened_cond_window = null; itsmo.near_suumo.nameToSE = {}; itsmo.near_suumo.nameToSE['land'] = '030'; itsmo.near_suumo.nameToSE['house'] = '020'; itsmo.near_suumo.nameToSE['mansion'] = '010'; itsmo.near_suumo.nameToSE['usedhouse'] = '021'; itsmo.near_suumo.nameToSE['usedmansion'] = '011'; itsmo.near_suumo.lastStartParam = null; itsmo.near_suumo.isLastSubmitPanel = false; itsmo.near_suumo.start = function(param) { itsmo.near_suumo.isLastSubmitPanel = false; itsmo.vars.g_range_genre = 'suumo'; itsmo.vars.g_range_page = 1; itsmo.near_suumo.CondReset(); if (typeof param == 'string') { itsmo.near_suumo.lastStartParam = param; } else if (null != itsmo.near_suumo.lastStartParam) { param = itsmo.near_suumo.lastStartParam; itsmo.near_suumo.lastStartParam = null; } if (typeof param !== 'undefined' && null != param) { if (param instanceof Array && param.length >= 1) { param = param[0]; } // モード設定 if (param.indexOf('mode=') == 0) { var i = param.substring(5); itsmo.near_suumo.mode = itsmo.near_suumo.mode_panel = 'rent' == i ? 'rent' : 'buy'; $('input[name="suumo_cond_SE"]').val(['buy' == itsmo.near_suumo.mode ? '1' : '0']); if (typeof itsmo.near_suumo.nameToSE[i] !== 'undefined') { itsmo.near_suumo.condition['buy']['SE' + itsmo.near_suumo.nameToSE[i]] = '1'; } } } itsmo.near_suumo.searchSubmit(param); }; /* 検索 */ itsmo.near_suumo.search = function(cond, param){ var i = ['suumo']; itsmo.sub.map_tab_change('range', i); if(!cond){ cond = 'mode=' + itsmo.near_suumo.mode; } i = itsmo.vars.g_map_search_location; var prm = cond + '&' + 'lat=' + i.lat + '&lon=' + i.lon + '&minx=' + itsmo.vars.g_map_search_box.minx + '&miny=' + itsmo.vars.g_map_search_box.miny + '&maxx=' + itsmo.vars.g_map_search_box.maxx + '&maxy=' + itsmo.vars.g_map_search_box.maxy + '&CNT=' + itsmo.vars.g_range_cnt + '&P=' + itsmo.vars.g_range_page; itsmo.lib.map_waitopen(); itsmo.lib.XMLHttpRequest2_send('/map/ajax_near_suumo.php', itsmo.near_suumo.result, 'GET', prm ,'xml'); }; //左リストから検索 itsmo.near_suumo.searchSubmit = function(param){ itsmo.near_suumo.isLastSubmitPanel = false; var prm = itsmo.near_suumo.condition[itsmo.near_suumo.mode]; var cond = itsmo.near_suumo.getCond(prm); cond = cond + '&mode=' + itsmo.near_suumo.mode; itsmo.vars.g_range_page = 1; itsmo.near_suumo.search(cond, param); }; //検索パネルから検索 itsmo.near_suumo.searchSubmitPanel = function(page){ itsmo.near_suumo.isLastSubmitPanel = true; var prm = itsmo.near_suumo.condition_panel[itsmo.near_suumo.mode_panel]; itsmo.vars.g_range_cnt = itsmo.near_suumo.cnt; itsmo.vars.g_range_flag_rowcnt = itsmo.near_suumo.cnt; var cond = itsmo.near_suumo.getCond(prm); cond = cond + '&mode=' + itsmo.near_suumo.mode_panel; var keyword = $('#ajax_suumo_cond #suumo_keyword').val(); if($('#suumo_condition_flg').find('span:first').attr('class') == 'tel-check-off'){ cond = ''; }else{ itsmo.near_suumo.mode = itsmo.near_suumo.mode_panel; itsmo.near_suumo.condition[itsmo.near_suumo.mode] = prm; if(keyword){ cond += '&QUERY=' + encodeURIComponent(keyword);} } itsmo.vars.g_range_page = undefined != page && null != page ? page : 1; itsmo.near_suumo.search(cond); itsmo.lib.map_windowclose(); }; //ページング itsmo.near_suumo.set_pange_and_search = function(page) { if (itsmo.near_suumo.isLastSubmitPanel) { itsmo.near_suumo.searchSubmitPanel(page); return; } itsmo.vars.g_range_page = page; var prm = itsmo.near_suumo.condition[itsmo.near_suumo.mode]; var cond = itsmo.near_suumo.getCond(prm); cond = cond + '&mode=' + itsmo.near_suumo.mode; itsmo.near_suumo.search(cond); }; //検索パラメータ生成 itsmo.near_suumo.getCond = function(prm){ var tmp = new Array(); var tmp_SE = ''; var num = 0 $.each(prm,function(i,val){ if(val != ''){ if(i.match(/^SE[0-9][0-9][0-9]/)){//表示種別 if (tmp_SE.length >= 1){ tmp_SE += ','; } tmp_SE += i.substring(2,5); }else{ tmp[num] = i + '=' + encodeURIComponent(val); num++; } } }); if(tmp_SE != ''){ tmp_SE = '&SE=' + tmp_SE; } var cond = tmp.join('&') + tmp_SE; return cond; }; itsmo.near_suumo.result = function(result){ // エラー処理 result = $(result); var err = result.find('err').text(); if(err != 0) { itsmo.lib.aplErrorWindow('W', '0003', 'suumo', '不動産検索'); itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml( result.find('listhtml').text() ); return; } //チップクリア itsmo.sub.map_clickable_TipAllClear(1); $(result).find('list').each(function(){ var prm = {}; prm['uid'] = $(this).find('uid').text(); prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['nm'] = $(this).find('nm').text(); prm['short_nm'] = $(this).find('nm').text(); prm['tip_c'] = $(this).find('tip_c').text(); prm['tip_o'] = $(this).find('tip_o').text(); var html = prm['tip_c']; var div_id = itsmo.sub.set_tooltip_s(html,prm); //bind $('#' + div_id + ' a').click(function() { itsmo.range.range_tipopen(prm.uid); }); $('#' + div_id + ' .tipc_range_open1').click(function() { itsmo.range.range_tipopen(prm.uid); }); }); itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml( result.find('listhtml').text() ); itsmo.near_suumo.setCond(); }; //左リスト絞込みパネル itsmo.near_suumo.changeWindow = function(){ var mode = $('input[name=suumo_SE]:checked').val(); switch(mode){ case '0': itsmo.near_suumo.mode = 'rent'; $('#buy_sibo_win').hide(); $('#rent_sibo_win').show(); break; case '1': itsmo.near_suumo.mode = 'buy'; $('#rent_sibo_win').hide(); $('#buy_sibo_win').show(); break; } }; //リスト開く itsmo.near_suumo.showCondSelect = function(e, divid){ var id = $(e).attr('id') + '_cond'; if(itsmo.near_suumo.opened_cond_window == id){ var bl = id }; itsmo.near_suumo.hideCondSelect(divid); if (bl) { return false; } itsmo.near_suumo.opened_cond_window = id; $('#' + id).fadeIn('fast'); }; //リスト閉じる itsmo.near_suumo.hideCondSelect = function(divid) { if(!divid){ var divid = 'ajax_leftmenu_result'; } itsmo.near_suumo.opened_cond_window = null; $("#" + divid + " span[class^='sis-search-paka-waku0'] div.sis-search-paka-genre").fadeOut('fast'); }; //リストから選択 itsmo.near_suumo.setSearchCond = function(e, key, val) { itsmo.near_suumo.hideCondSelect(); if (null != key && undefined != key) { itsmo.near_suumo.condition[itsmo.near_suumo.mode][key] = val; } e = $(e); var txt = e.text(); var i, f = null; for (i = 0; i < 10; ++i) { e = e.parent(); f = e.find('span.box-s'); if (f.length >= 1) { break; } } if (null == f) { return false; } f.text(txt); }; //アイコンオンオフ itsmo.near_suumo.cond_toggle_icon = function(e,key,val) { e = $(e); var cl = e.find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if (isOn) { e.find('span:first').attr('class', cl + '-off'); itsmo.near_suumo.condition['buy'][key] = ''; } else { e.find('span:first').attr('class', cl.substring(0, cl.length - 4)); itsmo.near_suumo.condition['buy'][key] = val; } return false; }; /*--------------------------------------------------------------- 検索パネルからの検索 ---------------------------------------------------------------*/ //絞込み検索パネル開く itsmo.near_suumo.showCondWindow = function(mode) { if(!mode){ mode = itsmo.near_suumo.mode; itsmo.near_suumo.mode_panel = mode; } itsmo.near_suumo.setCondPanel(); switch (mode) { case 'rent': $('input[name=suumo_cond_SE]').val(['0']); $('#ajax_suumo_cond_rent').show(); $('#ajax_suumo_cond_rent_k').show(); $('#ajax_suumo_cond_buy').hide(); $('#ajax_suumo_cond_buy_k').hide(); if (itsmo.map.isOldIE()) {//ie6,7はhide()だけでは消えないので $('#ajax_suumo_cond_buy').css("visibility" , "hidden"); $('#ajax_suumo_cond_buy_k').css("visibility" , "hidden"); $('#ajax_suumo_cond_rent').css("visibility" , "visible"); $('#ajax_suumo_cond_rent_k').css("visibility" , "visible"); } break; case 'buy': $('input[name=suumo_cond_SE]').val(['1']); $('#ajax_suumo_cond_buy').show(); $('#ajax_suumo_cond_buy_k').show(); $('#ajax_suumo_cond_rent').hide(); $('#ajax_suumo_cond_rent_k').hide(); if (itsmo.map.isOldIE()) {//ie6,7はhide()だけでは消えないので $('#ajax_suumo_cond_rent').css("visibility" , "hidden"); $('#ajax_suumo_cond_rent_k').css("visibility" , "hidden"); $('#ajax_suumo_cond_buy').css("visibility" , "visible"); $('#ajax_suumo_cond_buy_k').css("visibility" , "visible"); } break; } var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); itsmo.sub.map_getaddr(loc,function(result){ $("#ajax_suumo_cond span[class^='c-search-tbl-area-add']").text(result.items[0].address + ' 付近'); },4); itsmo.lib.map_windowopen('ajax_suumo_cond'); }; //絞込み検索パネル切替 itsmo.near_suumo.changeCondWindow = function(){ var mode = $('input[name="suumo_cond_SE"]:checked').val(); switch(mode){ case '0': mode = 'rent'; break; case '1': mode = 'buy'; break; } itsmo.near_suumo.mode_panel = mode; itsmo.near_suumo.showCondWindow(mode); }; //itsmo.near_suumo.conditionを左検索パネルに反映 itsmo.near_suumo.setCond = function() { switch(itsmo.near_suumo.mode){ case 'rent': $("#ajax_leftmenu_result #rent_sibo_win span[class^='sis-search-paka-waku0']").each(function() { var e = $(this); var box = e.find('span.box-s'); var id = box.attr('id'); var key = (null == id || undefined == id) ? '' : id.replace('suumo_rent_',''); var n = itsmo.near_suumo.condition[itsmo.near_suumo.mode][key]; if (n == null || n == undefined) { return; } e.find('ul li').each(function() { var f = $(this).find('a'); if ('' == n || f.attr('onclick').indexOf(n) >= 0) { box.text(f.text()); return false; } }); }); break; case 'buy': $("#ajax_leftmenu_result #buy_sibo_win span[class^='sis-search-paka-waku0']").each(function() { var e = $(this); var box = e.find('span.box-s'); var id = box.attr('id'); var key = (null == id || undefined == id) ? '' : id.replace('suumo_buy_',''); var n = itsmo.near_suumo.condition[itsmo.near_suumo.mode][key]; if (n == null || n == undefined) { return; } e.find('ul li').each(function() { var f = $(this).find('a'); if ('' == n || f.attr('onclick').indexOf(n) >= 0) { box.text(f.text()); return false; } }); }); var box = $("#ajax_leftmenu_result #buy_sibo_win div[class^='select-joken']"); box.find('a').each(function() { var id = $(this).attr('id'); var key = id.replace('suumo_buy_',''); var cl = $(this).find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if(itsmo.near_suumo.condition['buy'][key] == ''){ if(isOn){$(this).find('span:first').attr('class', cl + '-off');} }else if(itsmo.near_suumo.condition['buy'][key] == '1'){ if(!isOn){$(this).find('span:first').attr('class', cl.substring(0, cl.length - 4));} } }); break; } }; //itsmo.near_suumo.conditionを絞込パネルに反映 itsmo.near_suumo.setCondPanel = function() { switch(itsmo.near_suumo.mode){ case 'rent': $("#ajax_suumo_cond #ajax_suumo_cond_rent span[class^='sis-search-paka-waku0']").each(function() { var e = $(this); var box = e.find('span.box-s'); var id = box.attr('id'); var key = (null == id || undefined == id) ? '' : id.replace('suumo_rent_panel_',''); var n = itsmo.near_suumo.condition[itsmo.near_suumo.mode][key]; if (n == null || n == undefined) { n = ''; } itsmo.near_suumo.condition_panel[itsmo.near_suumo.mode][key] = n; e.find('ul li').each(function() { var f = $(this).find('a'); if ('' == n || f.attr('onclick').indexOf(n) >= 0) { box.text(f.text()); return false; } }); }); break; case 'buy': $("#ajax_suumo_cond #ajax_suumo_cond_buy span[class^='sis-search-paka-waku0']").each(function() { var e = $(this); var box = e.find('span.box-s'); var id = box.attr('id'); var key = (null == id || undefined == id) ? '' : id.replace('suumo_buy_panel_',''); var n = itsmo.near_suumo.condition[itsmo.near_suumo.mode][key]; if (n == null || n == undefined) { n = ''; } itsmo.near_suumo.condition_panel[itsmo.near_suumo.mode][key] = n; e.find('ul li').each(function() { var f = $(this).find('a'); if ('' == n || f.attr('onclick').indexOf(n) >= 0) { box.text(f.text()); return false; } }); }); var box = $("#ajax_suumo_cond #ajax_suumo_cond_buy div[class^='select-joken']"); box.find('a').each(function() { var id = $(this).attr('id'); var key = id.replace('suumo_buy_panel_',''); var cl = $(this).find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if(itsmo.near_suumo.condition['buy'][key] == ''){ if(isOn){ $(this).find('span:first').attr('class', cl + '-off'); $(this).find('strong').removeClass('joken-on'); } itsmo.near_suumo.condition_panel['buy'][key] = ''; }else if(itsmo.near_suumo.condition['buy'][key] == '1'){ itsmo.near_suumo.condition_panel['buy'][key] = '1'; if(!isOn){ $(this).find('span:first').attr('class', cl.substring(0, cl.length - 4)); $(this).find('strong').addClass('joken-on'); } } }); break; } $('#suumo_rent_panel_CNT').html(itsmo.vars.g_range_cnt + '件表示'); $('#suumo_buy_panel_CNT').html(itsmo.vars.g_range_cnt + '件表示'); itsmo.near_suumo.cnt = itsmo.vars.g_range_cnt; }; //検索条件リセット itsmo.near_suumo.CondReset = function() { //itsmo.near_suumo.mode = 'rent'; //itsmo.near_suumo.mode_panel = 'rent'; itsmo.near_suumo.condition = { 'rent':{} , 'buy':{} }; itsmo.near_suumo.condition_panel = { 'rent':{} , 'buy':{} }; $("#ajax_suumo_cond #ajax_suumo_cond_rent_k span[class^='sis-search-paka-waku0']").each(function() { var e = $(this); var box = e.find('span.box-s'); e.find('ul li').each(function() { var f = $(this).find('a'); box.text(f.text()); return false; }); }); $("#ajax_suumo_cond #ajax_suumo_cond_buy_k span[class^='sis-search-paka-waku0']").each(function() { var e = $(this); var box = e.find('span.box-s'); e.find('ul li').each(function() { var f = $(this).find('a'); box.text(f.text()); return false; }); }); $('#ajax_suumo_cond #ajax_suumo_cond_rent_k #suumo_rent_panel_HOUI').find('span:first').attr('class', 'ic-tell-fudosan10-off').find('strong:first').attr('class', ''); $('#ajax_suumo_cond #ajax_suumo_cond_rent_k #suumo_rent_panel_PET').find('span:first').attr('class', 'ic-tell-camp15-off').find('strong:first').attr('class', ''); $('#ajax_suumo_cond #ajax_suumo_cond_buy_k #suumo_buy_panel_HOUI').find('span:first').attr('class', 'ic-tell-fudosan10-off').find('strong:first').attr('class', ''); $('#ajax_suumo_cond #ajax_suumo_cond_buy_k #suumo_buy_panel_PET').find('span:first').attr('class', 'ic-tell-camp15-off').find('strong:first').attr('class', ''); $('#ajax_suumo_cond #suumo_keyword').val(''); }; //リストから選択 itsmo.near_suumo.setSearchCondPanel = function(e, key, val) { itsmo.near_suumo.hideCondSelect('ajax_suumo_cond'); if (null != key && undefined != key && key != 'CNT') { itsmo.near_suumo.condition_panel[itsmo.near_suumo.mode_panel][key] = val; }else if(key == 'CNT'){ itsmo.near_suumo.cnt = val; } e = $(e); var txt = e.text(); var i, f = null; for (i = 0; i < 10; ++i) { e = e.parent(); f = e.find('span.box-s'); if (f.length >= 1) { break; } } if (null == f) { return false; } f.text(txt); }; //アイコンオンオフ itsmo.near_suumo.cond_toggle_icon_panel = function(e,key,val) { e = $(e); var cl = e.find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if (isOn) { e.find('span:first').attr('class', cl + '-off'); e.find('strong').removeClass('joken-on'); itsmo.near_suumo.condition_panel[itsmo.near_suumo.mode_panel][key] = ''; } else { e.find('span:first').attr('class', cl.substring(0, cl.length - 4)); e.find('strong').addClass('joken-on'); itsmo.near_suumo.condition_panel[itsmo.near_suumo.mode_panel][key] = val; } return false; }; //条件を含めるか?? itsmo.near_suumo.cond_toggle_keyword = function(e){ e = $(e); var cl = e.find('span:first').attr('class'); if (cl == 'tel-check-on') { e.find('span:first').attr('class', 'tel-check-off'); } else { e.find('span:first').attr('class', 'tel-check-on'); } return false; };//-------------------------------------------------------------------------------------------------- // メニュー選択 //-------------------------------------------------------------------------------------------------- itsmo.tabikura = function() {}; itsmo.tabikura.docName = ''; itsmo.tabikura.docNameLeft = 'ajax_leftmenu_result'; itsmo.tabikura.docNameWin = 'ajax_tabikura_cond'; itsmo.tabikura.is_init = false; itsmo.tabikura.cond = {}; itsmo.tabikura.opened_cond_window = null; itsmo.tabikura.flagsHotel = {}; itsmo.tabikura.flagsPlan = {}; itsmo.tabikura.start = function() { itsmo.tabikura.docName = itsmo.tabikura.docNameLeft; itsmo.tabikura.cond = {}; itsmo.tabikura.cond['date'] = ''; itsmo.tabikura.cond['stay'] = '1'; itsmo.tabikura.cond['num'] = '2'; itsmo.tabikura.cond['room'] = '1'; itsmo.tabikura.cond['sort'] = 'location'; itsmo.vars.g_range_genre = 'tabikura'; itsmo.tabikura.cond_toggle_init(); itsmo.tabikura.search(); }; itsmo.tabikura.setSearchCond = function(e, key, val) { itsmo.tabikura.hideCondSelect(); var sels = itsmo.tabikura.cond[key]; if (null != key && undefined != key) { itsmo.tabikura.cond[key] = val; } elm = $(e); var txt = elm.text(); var i, f = null; for (i = 0; i < 10; ++i) { elm = elm.parent(); fm = elm.find('span.box-s'); if (fm.length >= 1) { break; } } if (null == fm) { return false; } elm.find('li').each(function() { var opt = $(this); if (opt.css('display') == 'none') { opt.css('display', 'block'); } }); fm.text(txt); $(e).parent().css('display', 'none'); }; itsmo.tabikura.setSearchCondInit = function(key, val) { itsmo.tabikura.hideCondSelect(); var sel = key + val; var elem_p = $('#' + itsmo.tabikura.docNameWin + ' #tabikura_' + key + '_cond'); var setText = ''; var opt, elem, line = null; $.each(elem_p.find('ul li'), function(i, val) { opt = $(this); if (opt.css('display') == 'none') { opt.css('display', 'block'); } elem = $(this).find('a'); id = elem.attr('id'); if (sel == id) { setText = elem.text(); line = opt; } }); if (!setText) return false; var cond_p = elem_p.parent().parent().find('span.box-s'); cond_p.text(setText); line.css('display', 'none'); }; itsmo.tabikura.setCond = function() { var opt, f, line = null; $("#" + itsmo.tabikura.docNameLeft + " span[class^='sis-search-paka-waku0']").each(function() { var e = $(this); var box = e.find('span.box-s'); var id = box.attr('id'); var key = (null == id || undefined == id) ? '' : id.substring(9); var val = itsmo.tabikura.cond[key]; if (val == null || val == undefined) { return; } var sel = key + val; e.find('ul li').each(function() { opt = $(this); if (opt.css('display') == 'none') { opt.css('display', 'block'); } var f = $(this).find('a'); var aid = f.attr('id'); if (sel == aid) { box.text(f.text()); line = opt; } }); line.css('display', 'none'); }); $("#" + itsmo.tabikura.docNameLeft + " input[name='flags_hotel']").each(function() { var elem_p = $(this).parent().parent(); var id = elem_p.attr('id'); id = id.substring(5); // h[p]_数値 if (itsmo.tabikura.flagsHotel[id]) { var cl = elem_p.find('span:first').attr('class'); elem_p.find('span:first').attr('class', cl.substring(0, cl.length - 4)).find('input:hidden').val('1'); } }); }; itsmo.tabikura.showCondSelect = function(e) { var id = $(e).attr('id') + '_cond'; var pe = $(e).parent(); var bl = itsmo.tabikura.opened_cond_window == id; itsmo.tabikura.hideCondSelect(); if (bl) { return false; } itsmo.tabikura.opened_cond_window = id; pe.find("div[id='" + id + "']").fadeIn('fast'); }; itsmo.tabikura.hideCondSelect = function() { itsmo.tabikura.opened_cond_window = null; $("#" + itsmo.tabikura.docName + " span[class^='sis-search-paka-waku0'] div.sis-search-paka-genre").fadeOut('fast'); }; itsmo.tabikura.cond_toggle_init = function() { $("#" + itsmo.tabikura.docNameWin + " a[id^='flag_']").each(function() { var bn = $(this); var cl = bn.find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if (isOn) { bn.find('span:first').attr('class', cl + '-off').find('input:hidden').val('0'); bn.find('strong').removeClass('joken-on'); } }); return false; }; itsmo.tabikura.cond_toggle_icon = function(e) { e = $(e); id = e.attr('id'); id = id.substring(5); // h[p]_数値 ids = id.substring(2); // 数値 var cl = e.find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if (isOn) { e.find('span:first').attr('class', cl + '-off').find('input:hidden').val('0'); e.find('strong').removeClass('joken-on'); if (e.find('input').attr('name') == 'flags_hotel') { if (itsmo.tabikura.flagsHotel[id]) delete itsmo.tabikura.flagsHotel[id]; } else if (e.find('input').attr('name') == 'flags_plan') { if (itsmo.tabikura.flagsPlan[id]) delete itsmo.tabikura.flagsPlan[id]; } } else { e.find('span:first').attr('class', cl.substring(0, cl.length - 4)).find('input:hidden').val('1'); e.find('strong').addClass('joken-on'); if (e.find('input').attr('name') == 'flags_hotel') { if (!itsmo.tabikura.flagsHotel[id]) itsmo.tabikura.flagsHotel[id] = ids; } else if (e.find('input').attr('name') == 'flags_plan') { if (!itsmo.tabikura.flagsPlan[id]) itsmo.tabikura.flagsPlan[id] = ids; } } return false; }; itsmo.tabikura.cond_toggle_icon_to_win = function(elem, name) { var id = elem.attr("id"); id = id.substring(5); // h[p]_数値 var cl = elem.find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if (itsmo.tabikura.flagsHotel[id] || itsmo.tabikura.flagsPlan[id]) { if (isOn) { elem.find('span:first').attr('class', cl).find('input:hidden').val('1'); } else { elem.find('span:first').attr('class', cl.substring(0, cl.length - 4)).find('input:hidden').val('1'); } elem.find('strong').addClass('joken-on'); } else { if (isOn) { elem.find('span:first').attr('class', cl + '-off').find('input:hidden').val('0'); } else { elem.find('span:first').attr('class', cl).find('input:hidden').val('0'); } elem.find('strong').removeClass('joken-on'); } }; itsmo.tabikura.setStayList = function(el) { weeks = new Array("日","月","火","水","木","金","土"); var today = new Date(); var date = new Date(); var month, day, week, mday = 0; var lists = {}; for (i = 0; i < 180; i++) { date.setTime(today.getTime() + (i * 24 * 3600 * 1000)); month = date.getMonth() + 1; day = date.getDate(); week = date.getDay(); if ( month < 10 ) month = '0' + month; if ( day < 10 ) day = '0' + day; mday = month + '月' + day + '日(' + weeks[week] + ')~'; lists[i] = "
  • " + mday + "
  • "; } var listStr = "
  • 日付指定なし
  • \n"; for (n in lists) { listStr += lists[n] + "\n"; } if (el) { el.find("#tabikura_date_cond").find("ul").html(listStr); } else { $("#" + itsmo.tabikura.docName + " #tabikura_date_cond").find("ul").html(listStr); } }; //-------------------------------------------------------------------------------------------------- // 検索 //-------------------------------------------------------------------------------------------------- // 左メニューの検索ボタン itsmo.tabikura.search = function(act, freewdFlg) { itsmo.tabikura.hideCondSelect(); itsmo.sub.map_tab_change('range', ['tabikura']); if (act != 'page') { itsmo.vars.g_range_page = 1; } // フリーワード検索のみ var freewdOnly = false; var word = $.trim($('#tabikura_freewd').val()); itsmo.tabikura.cond['freewd'] = word; if (freewdFlg && word.length >= 1 && $('#tabikura_freewd_above span').attr('class').indexOf('check-off') >= 0) { freewdOnly = true; } var cond = []; var i; for (i in itsmo.tabikura.cond) { if(i == 'cnt'){ itsmo.vars.g_range_cnt = itsmo.vars.g_range_flag_rowcnt = itsmo.tabikura.cond['cnt']; } cond.push(i + '=' + encodeURIComponent(itsmo.tabikura.cond[i])); } // 日本測地→世界測地 var dtm = ZDC.tkyTowgs(itsmo.lib.toLatLon(itsmo.vars.g_map_search_location)); //dtm = itsmo.lib.toMilliSec(dtm); i = itsmo.vars.g_map_search_location; var prm = 'lat=' + i.lat + '&lon=' + i.lon + '&dlat=' + dtm.lat + '&dlon=' + dtm.lon + '&minx=' + itsmo.vars.g_map_search_box.minx + '&miny=' + itsmo.vars.g_map_search_box.miny + '&maxx=' + itsmo.vars.g_map_search_box.maxx + '&maxy=' + itsmo.vars.g_map_search_box.maxy + '&page=' + itsmo.vars.g_range_page + '&cnt=' + itsmo.vars.g_range_cnt ; if (freewdOnly) { prm += '&freewd=' + word; } else { var hs = [], ps = []; for (j in itsmo.tabikura.flagsHotel) { hs.push(itsmo.tabikura.flagsHotel[j]); } prm += '&opt_h=' + hs.join('-'); for (k in itsmo.tabikura.flagsPlan) { ps.push(itsmo.tabikura.flagsPlan[k]); } prm += '&opt_p=' + ps.join('-'); prm += '&' + cond.join('&'); // freewd含有 } itsmo.lib.map_waitopen(); itsmo.lib.XMLHttpRequest2_send('/map/ajax_near_tabikura.php', itsmo.tabikura.result, 'GET', prm); }; itsmo.tabikura.result = function (result) { itsmo.lib.map_waitclose(); // エラー処理 result = $(result); var err = result.find('err').text(); if(err != 0) { itsmo.lib.aplErrorWindow('W', '0003', 'tabikura', 'ホテル検索'); return; } //チップクリア itsmo.sub.map_clickable_TipAllClear(1); $(result).find('list').each(function(){ var prm = {}; prm['uid'] = $(this).find('id').text(); prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['imgurl'] = $(this).find('imgurl').text(); prm['title'] = $(this).find('title').text(); prm['short_title'] = $(this).find('short_title').text(); prm['icon'] = $(this).find('icon').text(); prm['detail'] = $(this).find('detail').text(); prm['url_detail'] = $(this).find('url_detail').text(); prm['max_price'] = $(this).find('max_price').text(); prm['min_price'] = $(this).find('min_price').text(); prm['tip_c'] = $(this).find('tiphtmlc').text(); prm['tip_o'] = $(this).find('tiphtmlo').text(); $(this).find('plan').each(function(){ var prm_p = {}; prm_p['pcnt'] = $(this).find('j').text(); prm_p['plan_title'] = $(this).find('plan_title').text(); prm_p['plan_price'] = $(this).find('plan_price').text(); prm_p['plan_price_sum'] = $(this).find('plan_price_sum').text(); prm_p['url_detail'] = $(this).find('url_detail').text(); prm_p['url_travel'] = $(this).find('url_travel').text(); prm_p['site_code'] = $(this).find('site_code').text(); prm_p['site_name'] = $(this).find('site_name').text(); prm_p['site_image_url'] = $(this).find('site_image_url').text(); prm_p['siteHotelCode'] = $(this).find('siteHotelCode').text(); prm_p['sitePlanCode'] = $(this).find('sitePlanCode').text(); prm['plan'] = prm_p; }); var html = prm['tip_c']; var div_id = itsmo.sub.set_tooltip_s(html,prm); // bind $('#' + div_id + ' a').click(function() { itsmo.range.range_tipopen(prm.uid); }); $('#' + div_id + ' .tipc_range_open1').click(function() { itsmo.range.range_tipopen(prm.uid); }); }); itsmo.tabikura.docName = itsmo.tabikura.docNameLeft; itsmo.sub.map_tab_sethtml( result.find('listhtml').text() ); itsmo.tabikura.setStayList(); itsmo.tabikura.setCond(); }; itsmo.tabikura.set_page_and_search = function(page) { itsmo.vars.g_range_page = page; itsmo.tabikura.search('page'); }; // 検索条件小窓表示 itsmo.tabikura.showCond = function() { itsmo.tabikura.docName = itsmo.tabikura.docNameWin; if (!itsmo.tabikura.is_init) { itsmo.tabikura.is_init = true; } itsmo.tabikura.setClassificationCond(); itsmo.lib.map_windowopen(itsmo.tabikura.docNameWin); }; // 検索条件小窓初期設定 itsmo.tabikura.setClassificationCond = function() { itsmo.tabikura.cond['cnt'] = itsmo.vars.g_range_cnt; itsmo.sub.map_getaddr(itsmo.vars.g_map_search_location, function(result) { if(result.status == 0) { var addr = result.items[0].address + ' 付近'; } else { var addr = '住所なし'; } $("#" + itsmo.tabikura.docNameWin + " .c-search-tbl-area-add").text(addr); }); var elem = $("#" + itsmo.tabikura.docNameWin); itsmo.tabikura.setStayList(elem); $.each(itsmo.tabikura.cond, function(key, val) { itsmo.tabikura.setSearchCondInit(key, val); }); elem.find("a[id^='flag_']").each(function() { elem = $(this); itsmo.tabikura.cond_toggle_icon_to_win(elem); }); if (itsmo.tabikura.cond['freewd']) elem.find("#tabikura_freewd").val(itsmo.tabikura.cond['freewd']); }; itsmo.tabikura.onClickIncludeFreewd = function(e) { $(e).find('span').toggleClass('tel-check-on').toggleClass('tel-check-off'); }; // 検索条件小窓の検索ボタン itsmo.tabikura.submit = function() { itsmo.lib.map_windowclose(); itsmo.tabikura.search(null, true); }; itsmo.tabikura.cancel = function() { itsmo.tabikura.docName = itsmo.tabikura.docNameLeft; itsmo.lib.map_windowclose(); }; itsmo.near_season = function() {}; itsmo.near_season.mode = 'hanabi'; itsmo.near_season.opened_cond_window = null; itsmo.near_season.clickCalCnt = 0;//カレンダー日付クリック回数 itsmo.near_season.panelCalOpenFlg = false;//絞込みパネルのカレンダーを開いているかのフラグ itsmo.near_season.tmp_calday = {};//カレンダーの選択した日付を一時的格納しておくフォルダ itsmo.near_season.cond = {};//検索条件 itsmo.near_season.start = function(mode) { if(mode){ itsmo.near_season.mode = mode; } itsmo.near_season.cond = {}; itsmo.vars.g_range_page = 1; itsmo.vars.g_range_genre = itsmo.near_season.mode; itsmo.near_season.clear(); itsmo.near_season.search(); }; itsmo.near_season.clear = function() { e = $('#season_select_joken a'); var cl = ''; var isOn = ''; for(var i = 0 ; i < e.length ; i++){ cl = e.find('span:first').attr('class'); isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if (!isOn) { e.find('span:first').attr('class', cl + '-off'); e.find('strong').removeClass('joken-on'); if(e.find('input:hidden').length){ e.find('input:hidden').val(''); } } } s_condition = $('#season_condition_flg'); s_condition.find('span:first').attr('class', 'tel-check-on'); }; itsmo.near_season.search = function(mode) { if(!mode){ mode = itsmo.near_season.mode; } itsmo.sub.map_tab_change('range', ['season', mode]); var cond = [], i; for (i in itsmo.near_season.cond) { cond.push(i + '=' + encodeURIComponent(itsmo.near_season.cond[i])); } cond = cond.join('&'); if (cond.length >= 1) { cond = '&' + cond; } i = itsmo.vars.g_map_search_location; var prm = 'lat=' + i.lat + '&lon=' + i.lon + '&minx=' + itsmo.vars.g_map_search_box.minx + '&miny=' + itsmo.vars.g_map_search_box.miny + '&maxx=' + itsmo.vars.g_map_search_box.maxx + '&maxy=' + itsmo.vars.g_map_search_box.maxy + '&page=' + itsmo.vars.g_range_page + '&cnt=' + itsmo.vars.g_range_cnt + '&mode=' + mode + cond ; itsmo.lib.map_waitopen(); itsmo.lib.XMLHttpRequest2_send('/map/ajax_near_season.php', itsmo.near_season.result, 'GET', prm); }; itsmo.near_season.result = function (result) { // エラー処理 result = $(result); var err = result.find('err').text(); if(err != 0) { itsmo.lib.aplErrorWindow('W', '0003', 'season', '季節特集'); return; } //チップクリア itsmo.sub.map_clickable_TipAllClear(1); $(result).find('item').each(function(){ var prm = {}; prm['uid'] = $(this).find('uid').text(); prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['nm'] = $(this).find('nm').text(); prm['short_nm'] = $(this).find('short_nm').text(); prm['tip_c'] = $(this).find('tip_c').text(); prm['tip_o'] = $(this).find('tip_o').text(); var html = prm['tip_c']; var div_id = itsmo.sub.set_tooltip_s(html,prm); //bind $('#' + div_id + ' a').click(function() { itsmo.range.range_tipopen(prm.uid); }); $('#' + div_id + ' .tipc_range_open1').click(function() { itsmo.range.range_tipopen(prm.uid); }); }); itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml( result.find('listhtml').text() ); itsmo.near_season.setCalendarInit(); itsmo.near_season.setCond(); $("#ajax_leftmenu_result input:text[name='keyword']").clearField().blur().keypress(function(e) { if (13 == e.which) { itsmo.near_season.cond_search(); } });; }; //検索ボタン itsmo.near_season.cond_search = function() { itsmo.vars.g_range_page = 1; var key_e = $('#ajax_leftmenu_result').find("input:[name='keyword']"); var keyword = ''; if(key_e != undefined){ if(key_e.val() != key_e.attr('rel')){ keyword = key_e.val(); } } if(keyword){ itsmo.near_season.cond['keyword'] = keyword; }else{ delete(itsmo.near_season.cond['keyword']); } itsmo.near_season.search(); }; //ページング itsmo.near_season.set_pange_and_search = function(page) { itsmo.vars.g_range_page = page; itsmo.near_season.search(); }; //絞り込み検索ボタン itsmo.near_season.cond_search_panel = function() { itsmo.vars.g_range_page = 1; itsmo.near_season.cond = {}; if($('#ajax_season_cond #season_condition_flg').find('span:first').attr('class') == 'tel-check-on'){ itsmo.near_season.setHiddenVal(); }else{ $('#ajax_season_cond').find('input:hidden').each(function(){ var val = $(this).val(); var name = $(this).attr('name'); if(name == 'cnt'){ $(this).val(10); }else{ $(this).val(''); } }); } var keyword = $('#ajax_season_cond #near_season_keyword').val(); if(keyword){ itsmo.near_season.cond['keyword'] = keyword; }else{ delete(itsmo.near_season.cond['keyword']); } itsmo.near_season.search(); itsmo.near_season.hideCond(); }; //絞り込み検索パネルから条件設定 itsmo.near_season.setHiddenVal = function(){ $('#ajax_season_cond').find('input:hidden').each(function(){ var val = $(this).val(); var name = $(this).attr('name'); if(name == 'cnt'){ if(val){itsmo.vars.g_range_cnt = val;itsmo.vars.g_range_flag_rowcnt = val;} }else{ itsmo.near_season.cond[name] = val; } }); }; //検索条件引継ぎ itsmo.near_season.setCond = function(){ if(itsmo.near_season.cond['date_s'] && itsmo.near_season.cond['date_e']){ $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_s']").html(itsmo.near_season.cond['date_s']); $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_e']").html(itsmo.near_season.cond['date_e']); }else{ $('#ajax_leftmenu_result #season_hanabi_cal_s').html('日付指定なし'); $('#ajax_leftmenu_result #season_hanabi_cal_e').html('日付指定なし'); } if(itsmo.near_season.cond['parking']){ $('#ajax_leftmenu_result #season_parking').click(); } if(itsmo.near_season.cond['charge']){ $('#ajax_leftmenu_result #season_charge').click(); } if(itsmo.near_season.cond['festival']){ $('#season_festival').click(); } if(itsmo.near_season.cond['event']){ $('#season_event').click(); } if(itsmo.near_season.cond['hotel']){ $('#season_hotel').click(); } if(itsmo.near_season.cond['yakei']){ $('#season_yakei').click(); } if(itsmo.near_season.cond['kyoshou']){ $('#season_kyoshou').click(); } if(itsmo.near_season.cond['kakurega']){ $('#season_kakurega').click(); } if(itsmo.near_season.cond['plan']){ $('#season_plan').click(); } if(itsmo.near_season.cond['sakurafes']){ $('#season_sakurafes').click(); } if(itsmo.near_season.cond['night']){ $('#season_night').click(); } if(itsmo.near_season.cond['shop']){ $('#season_shop').click(); } if(itsmo.near_season.cond['party']){ $('#season_party').click(); } if(itsmo.near_season.cond['sort']){ $('#ajax_leftmenu_result #season_sort_' + itsmo.near_season.cond['sort']).click(); } }; //絞込みパネルを開く itsmo.near_season.showCond = function(){ itsmo.near_season.setCondPanel(); var loc = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); itsmo.sub.map_getaddr(loc,function(result){ $("#ajax_season_cond span[class^='c-search-tbl-area-add']").text(result.items[0].address + ' 付近'); },4); // 表示条件調整。 $('#season_calendar_tr').show(); $('#season_sort_div a').hide().eq(0).show(); $('#season_select_joken a').hide().eq(0).show(); $('tr#tr_condle_joken').show(); if ('hanabi' == itsmo.near_season.mode) { var e = $('#season_sort_div a'); e.eq(1).show(); e.eq(3).show(); var tmp = $('#season_select_joken'); for (i = 0; i < 10; ++i) { tmp = tmp.parent(); if (tmp.get(0).tagName.toUpperCase() == 'TR') { tmp.hide(); break; } } } else if ('koyo' == itsmo.near_season.mode) { $('#season_sort_div a').eq(2).show(); //$('#season_select_joken a').eq(2).show(); $('#tr_condle_joken').hide(); } else if ('spring' == itsmo.near_season.mode) { var e = $('#season_sort_div a'); e.eq(2).show(); $('tr#tr_condle_joken').hide(); } else if ('illumi' == itsmo.near_season.mode) { var e = $('#season_sort_div a'); e.eq(2).show(); e.eq(3).show(); //$('#season_select_joken a').eq(3).show(); //$('#season_select_joken a').eq(4).show(); } else if('hotel' == itsmo.near_season.mode) { $('#season_calendar_tr').hide(); $('#season_sort_div a').eq(2).show(); $('#season_select_joken a').eq(0).hide(); $('#season_select_joken a').eq(9).show(); } else if('dinner' == itsmo.near_season.mode){ $('#season_calendar_tr').hide(); $('#season_sort_div a').eq(2).show(); var e = $('#season_select_joken'); e.find('a').eq(0).hide(); e.find('a').eq(5).show(); e.find('a').eq(6).show(); e.find('a').eq(7).show(); e.find('a').eq(8).show(); e.find('a').eq(9).show(); } itsmo.lib.map_windowopen('ajax_season_cond'); }; //絞込みパネルを閉じる itsmo.near_season.hideCond = function(){ itsmo.lib.map_windowclose('ajax_season_cond'); }; //絞込みパネルに条件引継ぎ itsmo.near_season.setCondPanel = function(){ if(itsmo.near_season.cond['date_s'] && itsmo.near_season.cond['date_e']){ $("#ajax_season_cond span[id^='season_hanabi_cal_s_panel']").html(itsmo.near_season.cond['date_s']); $("#ajax_season_cond span[id^='season_hanabi_cal_e_panel']").html(itsmo.near_season.cond['date_e']); }else{ $('#ajax_season_cond #season_hanabi_cal_s_panel').html('日付指定なし'); $('#ajax_season_cond #season_hanabi_cal_e_panel').html('日付指定なし'); } if(itsmo.near_season.cond['parking']){ $('#ajax_season_cond #season_parking_panel').find('span:first').attr('class', 'ic-tell-p'); $('#ajax_season_cond #season_parking_panel').find('strong').addClass('joken-on'); }else{ $('#ajax_season_cond #season_parking_panel').find('span:first').attr('class', 'ic-tell-p-off'); $('#ajax_season_cond #season_parking_panel').find('strong').removeClass('joken-on'); } if(itsmo.near_season.cond['charge']){ $('#ajax_season_cond #season_charge_panel').find('span:first').attr('class', 'ic-tell-charge'); $('#ajax_season_cond #season_charge_panel').find('strong').addClass('joken-on'); }else{ $('#ajax_season_cond #season_charge_panel').find('span:first').attr('class', 'ic-tell-charge-off'); $('#ajax_season_cond #season_charge_panel').find('strong').removeClass('joken-on'); } if(itsmo.near_season.cond['festival']){ $('#season_festival_panel').find('span:first').attr('class', 'ic-tell-koyo'); $('#season_festival_panel').find('strong').addClass('joken-on'); }else{ $('#season_festival_panel').find('span:first').attr('class', 'ic-tell-koyo-off'); $('#season_festival_panel').find('strong').removeClass('joken-on'); } if(itsmo.near_season.cond['event']){ $('#season_event_panel').find('span:first').attr('class', 'ic-tell-illumi02'); $('#season_eventl_panel').find('strong').addClass('joken-on'); }else{ $('#season_event_panel').find('span:first').attr('class', 'ic-tell-illumi02-off'); $('#season_event_panel').find('strong').removeClass('joken-on'); } if(itsmo.near_season.cond['hanabi']){ $('#season_hanabi_panel').find('span:first').attr('class', 'ic-tell-illumi01'); $('#season_hanabi_panel').find('strong').addClass('joken-on'); }else{ $('#season_hanabi_panel').find('span:first').attr('class', 'ic-tell-illumi01-off'); $('#season_hanabi_panel').find('strong').removeClass('joken-on'); } if(itsmo.near_season.cond['hotel']){ $('#season_hotel_panel').find('span:first').attr('class', 'ic-tell-oz01'); $('#season_hotel_panel').find('strong').addClass('joken-on'); $('#season_hotel_panel').find('input:hidden').val(1); }else{ $('#season_hotel_panel').find('span:first').attr('class', 'ic-tell-oz01-off'); $('#season_hotel_panel').find('strong').removeClass('joken-on'); $('#season_hotel_panel').find('input:hidden').val(''); } if(itsmo.near_season.cond['yakei']){ $('#season_yakei_panel').find('span:first').attr('class', 'ic-tell-oz02'); $('#season_yakei_panel').find('strong').addClass('joken-on'); $('#season_yakei_panel').find('input:hidden').val(1); }else{ $('#season_yakei_panel').find('span:first').attr('class', 'ic-tell-oz02-off'); $('#season_yakei_panel').find('strong').removeClass('joken-on'); $('#season_yakei_panel').find('input:hidden').val(''); } if(itsmo.near_season.cond['kyoshou']){ $('#season_kyoshou_panel').find('span:first').attr('class', 'ic-tell-oz03'); $('#season_kyoshou_panel').find('strong').addClass('joken-on'); $('#season_kyoshou_panel').find('input:hidden').val(1); }else{ $('#season_kyoshou_panel').find('span:first').attr('class', 'ic-tell-oz03-off'); $('#season_kyoshou_panel').find('strong').removeClass('joken-on'); $('#season_kyoshou_panel').find('input:hidden').val(''); } if(itsmo.near_season.cond['kakurega']){ $('#season_kakurega_panel').find('span:first').attr('class', 'ic-tell-oz04'); $('#season_kakurega_panel').find('strong').addClass('joken-on'); $('#season_kakurega_panel').find('input:hidden').val(1); }else{ $('#season_kakurega_panel').find('span:first').attr('class', 'ic-tell-oz04-off'); $('#season_kakurega_panel').find('strong').removeClass('joken-on'); $('#season_kakurega_panel').find('input:hidden').val(''); } if(itsmo.near_season.cond['plan']){ $('#season_plan_panel').find('span:first').attr('class', 'ic-tell-oz05'); $('#season_plan_panel').find('strong').addClass('joken-on'); $('#season_plan_panel').find('input:hidden').val(1); }else{ $('#season_plan_panel').find('span:first').attr('class', 'ic-tell-oz05-off'); $('#season_plan_panel').find('strong').removeClass('joken-on'); $('#season_plan_panel').find('input:hidden').val(''); } if(itsmo.near_season.cond['sakurafes']){ $('#season_sakurafes_panel').find('span:first').attr('class', 'ic-tell-sp01'); $('#season_sakurafes_panel').find('strong').addClass('joken-on'); }else{ $('#season_sakurafes_panel').find('span:first').attr('class', 'ic-tell-sp01-off'); $('#season_sakurafes_panel').find('strong').removeClass('joken-on'); } if(itsmo.near_season.cond['night']){ $('#season_night_panel').find('span:first').attr('class', 'ic-tell-sp02'); $('#season_night_panel').find('strong').addClass('joken-on'); }else{ $('#season_night_panel').find('span:first').attr('class', 'ic-tell-sp02-off'); $('#season_night_panel').find('strong').removeClass('joken-on'); } if(itsmo.near_season.cond['shop']){ $('#season_shop_panel').find('span:first').attr('class', 'ic-tell-sp03'); $('#season_shop_panel').find('strong').addClass('joken-on'); }else{ $('#season_shop_panel').find('span:first').attr('class', 'ic-tell-sp03-off'); $('#season_shop_panel').find('strong').removeClass('joken-on'); } if(itsmo.near_season.cond['party']){ $('#season_party_panel').find('span:first').attr('class', 'ic-tell-party'); $('#season_party_panel').find('strong').addClass('joken-on'); }else{ $('#season_party_panel').find('span:first').attr('class', 'ic-tell-party-off'); $('#season_party_panel').find('strong').removeClass('joken-on'); } e = $("#ajax_leftmenu_result div:visible").filter('.sibo-normal, .sibo-rich').find("input:text[name='keyword']"); f = (null != itsmo.near_season.cond['keyword'] != itsmo.near_season.cond['keyword']) ? itsmo.near_season.cond['keyword'] : ''; $('#near_season_keyword').val(e.length >= 1 && (e.val() != e.attr('rel')) ? e.val() : f); $('#ajax_season_cond #season_cnt_panel').html(itsmo.vars.g_range_cnt + '件表示'); if(itsmo.near_season.cond['sort']){ itsmo.near_season.cond_sort_reset(); var sort = itsmo.near_season.cond['sort']; if(sort.indexOf('_desc') != -1){ sort = sort.replace('_desc',''); $('#ajax_season_cond #season_sort_panel_'+ sort).click(); }else if(sort.indexOf('_asc') != -1){ sort = sort.replace('_asc',''); $('#ajax_season_cond #season_sort_panel_'+ sort).click().click(); }else if(sort == 'famous'){ $('#ajax_season_cond #season_sort_panel_famous').click(); }else { $('#ajax_season_cond #season_sort_panel_dist').click(); } }else{ $('#ajax_season_cond #season_sort_panel_dist').click(); } $('#ajax_season_cond').find('input:hidden').each(function(){ var val = ''; if(itsmo.near_season.cond[$(this).attr('name')]){ val = itsmo.near_season.cond[$(this).attr('name')]; $(this).val(val); } }); }; //カレンダーを開く itsmo.near_season.showCondSelectCal = function(mode){ itsmo.near_season.hideCondSelect(); if(mode == 'panel'){ itsmo.near_season.panelCalOpenFlg = true; $('#ajax_season_cond #hanabi_cal_content_panel').html($('#season_map_calendar_html').html()); $('#ajax_season_cond #hanabi_calender_panel_div').show(); if(itsmo.near_season.clickCalCnt == 0){ var tmpHtml = $("#ajax_season_cond span[id^='season_hanabi_cal_s']").html(); $("#ajax_season_cond span[id^='season_hanabi_cal_s']").html('' + tmpHtml + ''); }else{ var tmpHtml = $("#ajax_season_cond span[id^='season_hanabi_cal_e']").html(); $("#ajax_season_cond span[id^='season_hanabi_cal_e']").html('' + tmpHtml + ''); } }else{ $('#m-left').addClass('hanabi-index'); $('#ajax_leftmenu_result #hanabi_cal_content').html($('#season_map_calendar_html').html()); $('#ajax_leftmenu_result #hanabi_calender_div').show(); if(itsmo.near_season.clickCalCnt == 0){ var tmpHtml = $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_s']").html(); $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_s']").html('' + tmpHtml + ''); }else{ var tmpHtml = $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_e']").html(); $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_e']").html('' + tmpHtml + ''); } } }; //カレンダーを開く(終了日から) itsmo.near_season.showCondSelectCalEnd = function(mode){ if((itsmo.near_season.cond['date_e'] && itsmo.near_season.cond['date_s']) && (itsmo.near_season.cond['date_e'] != itsmo.near_season.cond['date_s'])){ itsmo.near_season.clickCalCnt = 1; if(mode == 'panel'){ $("#ajax_season_cond span[id^='season_hanabi_cal_e']").html('日付指定なし'); }else{ $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_e']").html('日付指定なし'); } itsmo.near_season.tmp_calday['s'] = itsmo.near_season.cond['date_s']; itsmo.near_season.tmp_calday['e'] = itsmo.near_season.cond['date_s']; $('#season_map_calendar_html .elected').removeClass('elected'); $("#season_map_calendar_html table td div[id^='cal_day_"+ itsmo.near_season.cond['date_s'] +"']").addClass('elected'); } itsmo.near_season.showCondSelectCal(mode); }; //カレンダーを閉める itsmo.near_season.showCondCloseCal = function(mode){ if(mode == 'panel'){ itsmo.near_season.panelCalOpenFlg = false; $('#ajax_season_cond #hanabi_calender_panel_div').hide(); var date_s = $("#ajax_season_cond input[name='date_s']").val(); var date_e = $("#ajax_season_cond input[name='date_e']").val(); if(!date_s){ date_s = '日付指定なし'; } if(!date_e){ date_e = '日付指定なし'; } $("#ajax_season_cond span[id='season_hanabi_cal_s_panel']").html(date_s); $("#ajax_season_cond span[id='season_hanabi_cal_e_panel']").html(date_e); }else{ $('#m-left').removeClass('hanabi-index'); $('#ajax_leftmenu_result #hanabi_calender_div').hide(); if(itsmo.near_season.cond['date_s']){ var sHtml = itsmo.near_season.cond['date_s']; }else{ var sHtml = '日付指定なし'; } if(itsmo.near_season.cond['date_e']){ var eHtml = itsmo.near_season.cond['date_e']; }else{ var eHtml = '日付指定なし'; } $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_s']").html(sHtml); $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_e']").html(eHtml); } delete(itsmo.near_season.tmp_calday['e']); delete(itsmo.near_season.tmp_calday['s']); }; //カレンダーリセット itsmo.near_season.calReset = function(mode){ delete(itsmo.near_season.cond['date_e']); delete(itsmo.near_season.cond['date_s']); if(mode == 'panel'){ //$("#ajax_season_cond span[id^='season_hanabi_cal_']").html('日付指定なし'); $("#ajax_season_cond div[id^='hanabi_cal_content'] .elected").removeClass('elected'); $("#ajax_season_cond input[name='date_s']").val(''); $("#ajax_season_cond input[name='date_e']").val(''); $('#season_map_calendar_html').html($('#ajax_season_cond #hanabi_cal_content_panel').html()); }else{ //$("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_']").html('日付指定なし'); $('#hanabi_cal_content .elected').removeClass('elected'); $('#season_map_calendar_html').html($('#ajax_leftmenu_result #hanabi_cal_content').html()); } itsmo.near_season.showCondCloseCal(mode); }; //カレンダー決定 itsmo.near_season.calDecision = function(){ if(itsmo.near_season.tmp_calday['s']){ itsmo.near_season.cond['date_s'] = itsmo.near_season.tmp_calday['s']; }else{ itsmo.near_season.showCondCloseCal(); return false; } if(itsmo.near_season.tmp_calday['e']){ itsmo.near_season.cond['date_e'] = itsmo.near_season.tmp_calday['e']; }else{ itsmo.near_season.cond['date_e'] = itsmo.near_season.tmp_calday['s']; } /* $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_s']").html(itsmo.near_season.cond['date_s']); $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_e']").html(itsmo.near_season.cond['date_e']); */ $('#season_map_calendar_html').html($('#ajax_leftmenu_result #hanabi_cal_content').html()); itsmo.near_season.showCondCloseCal(); }; //カレンダー決定絞込みパネル itsmo.near_season.calDecisionPanel = function(){ if(itsmo.near_season.tmp_calday['s']){ $("#ajax_season_cond input[name='date_s']").val(itsmo.near_season.tmp_calday['s']); }else{ itsmo.near_season.showCondCloseCal('panel'); return false; } if(itsmo.near_season.tmp_calday['e']){ $("#ajax_season_cond input[name='date_e']").val(itsmo.near_season.tmp_calday['e']); }else{ $("#ajax_season_cond input[name='date_e']").val(itsmo.near_season.tmp_calday['s']); } //var date_s = $("#ajax_season_cond input[name='date_s']").val(); //var date_e = $("#ajax_season_cond input[name='date_e']").val(); //$("#ajax_season_cond span[id='season_hanabi_cal_s_panel']").html(date_s); //$("#ajax_season_cond span[id='season_hanabi_cal_e_panel']").html(date_e); $('#season_map_calendar_html').html($('#ajax_season_cond #hanabi_cal_content_panel').html()); itsmo.near_season.showCondCloseCal('panel'); }; //リスト閉じる itsmo.near_season.hideCondSelect = function() { itsmo.near_season.opened_cond_window = null; $("div[class^='sis-search-paka-waku-'] div.sis-search-paka-genre").hide(); }; //リスト開く itsmo.near_season.showCondSelect = function(e, divid){ var id = $(e).attr('id') + '_cond'; if(itsmo.near_season.opened_cond_window == id){ var bl = id }; itsmo.near_season.hideCondSelect(); if (bl) { return false; } itsmo.near_season.opened_cond_window = id; $('#' + id).fadeIn('fast'); }; //リストから選択 itsmo.near_season.setSearchCond = function(e, key, val) { itsmo.near_season.hideCondSelect(); e = $(e); var txt = e.text(); var i, f = null; for (i = 0; i < 10; ++i) { e = e.parent(); f = e.find('span.box-s'); if (f.length >= 1) { break; } } if (null == f) { return false; } if(txt.length >= 9){ txt = txt.slice(0, 8) + '...'; } f.text(txt); var h = e.parent().parent().find('input:hidden'); if(h.length){//絞込みパネル h.val(val); }else{ if (null != key && undefined != key) { itsmo.near_season.cond[key] = val; } } }; //アイコンオンオフ itsmo.near_season.cond_toggle_icon_panel = function(e,key,val) { e = $(e); var cl = e.find('span:first').attr('class'); var isOn = ('-off' != cl.substring(Math.max(0, cl.length - 4)).toLowerCase()); if (isOn) { e.find('span:first').attr('class', cl + '-off'); e.find('strong').removeClass('joken-on'); if(e.find('input:hidden').length){//絞込みパネル e.find('input:hidden').val(''); }else{ itsmo.near_season.cond[key] = ''; } } else { e.find('span:first').attr('class', cl.substring(0, cl.length - 4)); e.find('strong').addClass('joken-on'); if(e.find('input:hidden').length){//絞込みパネル e.find('input:hidden').val(val); }else{ itsmo.near_season.cond[key] = val; } } return false; }; //絞込みパネルの表示順 itsmo.near_season.cond_toggle_sort_clickCnt = 0; itsmo.near_season.cond_toggle_sort = function(e,key){ var hidval = $(e).parent().find('input:hidden').val(); var flg = hidval.indexOf(key); if(flg == -1){ itsmo.near_season.cond_sort_reset(); } var sort = ''; if(itsmo.near_season.cond_toggle_sort_clickCnt == 2 && key != 'dist'){ itsmo.near_season.cond_toggle_sort_clickCnt = 0; itsmo.near_season.cond_sort_change(e); var val = $(e).find('span:odd').html(); val = val.replace('▼',''); val = val.replace('▲',''); val = $(e).find('span:odd').html(val); $(e).parent().find('input:hidden').val(''); }else if(itsmo.near_season.cond_toggle_sort_clickCnt == 1 ){ if(key == 'dist'){ itsmo.near_season.cond_toggle_sort_clickCnt = 0; itsmo.near_season.cond_sort_change(e); $(e).parent().find('input:hidden').val(''); }else{ sort = '_asc'; var val = $(e).find('span:odd').html(); val = val.replace('▼',''); val = $(e).find('span:odd').html(val + '▲'); itsmo.near_season.cond_toggle_sort_clickCnt = 0; $(e).parent().find('input:hidden').val(key + sort); } }else if(itsmo.near_season.cond_toggle_sort_clickCnt == 0 ){ itsmo.near_season.cond_sort_change(e); itsmo.near_season.cond_toggle_sort_clickCnt++; if(key != 'dist'){ sort = '_desc'; var val = $(e).find('span:odd').html(); val = val.replace('▲',''); val = $(e).find('span:odd').html(val + '▼'); } $(e).parent().find('input:hidden').val(key + sort); } if ('dist' == key) { $('#season_sort_dist').click(); } else if ('nm' == key) { $('#season_sort_nm_asc').click(); } }; itsmo.near_season.cond_sort_change = function(e){ var e = $(e); var cls = e.find('span:first').attr('class'); var clm = e.find('span:odd').attr('class'); var cle = e.find('span:last').attr('class'); var isOn = ('-on' == cls.substring(Math.max(0, cls.length - 3)).toLowerCase()); if(isOn){ //e.find('span:first').attr('class', cls.substring(0, cls.length - 3)); //e.find('span:odd').attr('class', clm.substring(0, clm.length - 3)); //e.find('span:last').attr('class', cle.substring(0, cle.length - 3)); }else{ e.find('span:first').attr('class', cls + '-on'); e.find('span:odd').attr('class', clm + '-on'); e.find('span:last').attr('class', cle + '-on'); } }; itsmo.near_season.cond_sort_reset = function(){ itsmo.near_season.cond_toggle_sort_clickCnt = 0; $('#ajax_season_cond #season_sort_div').find('a').each(function(){ var f = $(this); var cls = f.find('span:first').attr('class'); var clm = f.find('span:odd').attr('class'); var cle = f.find('span:last').attr('class'); var isOn = ('-on' == cls.substring(Math.max(0, cls.length - 3)).toLowerCase()); if(isOn){ f.find('span:first').attr('class', cls.substring(0, cls.length - 3)); f.find('span:odd').attr('class', clm.substring(0, clm.length - 3)); f.find('span:last').attr('class', cle.substring(0, cle.length - 3)); } var val = f.find('span:odd').html(); val = val.replace('▼',''); val = val.replace('▲',''); f.find('span:odd').html(val); }); }; itsmo.near_season.setCalendarInit = function(){//指定された月分のカレンダーを作成 itsmo.calendar.init(); //$('#ajax_leftmenu_result #hanabi_cal_content').html(html); }; itsmo.near_season.clickCalDate = function(y,m,d,e){ itsmo.near_season.clickCalCnt++; var date = y + '/' + m + '/' + d; if(itsmo.near_season.clickCalCnt <= 1 || itsmo.near_season.tmp_calday['s'] == date){ itsmo.near_season.tmp_calday['s'] = date; itsmo.near_season.tmp_calday['e'] = ''; $("div[id^='hanabi_cal_content'] .elected").removeClass('elected'); if(itsmo.near_season.panelCalOpenFlg == true){ $("#ajax_season_cond span[id^='season_hanabi_cal_s']").html(date); var tmpHtml = $("#ajax_season_cond span[id^='season_hanabi_cal_e']").html(); $("#ajax_season_cond span[id^='season_hanabi_cal_e']").html('' + tmpHtml + ''); }else{ $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_s']").html(date); var tmpHtml = $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_e']").html(); $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_e']").html('' + tmpHtml + ''); } itsmo.near_season.clickCalCnt = 1; $(e).addClass('elected'); }else if(itsmo.near_season.clickCalCnt <= 2){ if(!itsmo.near_season.tmp_calday['s']){ itsmo.near_season.tmp_calday['s'] = itsmo.near_season.cond['date_s']; } var date_s = itsmo.near_season.tmp_calday['s']; if(date_s > date){ itsmo.near_season.tmp_calday['e'] = itsmo.near_season.tmp_calday['s']; itsmo.near_season.tmp_calday['s'] = date; }else{ itsmo.near_season.tmp_calday['e'] = date; } if(!itsmo.near_season.tmp_calday['s']){ itsmo.near_season.clickCalCnt = 0; itsmo.near_season.clickCalDate(y,m,d,e); return false; } $(e).addClass('elected'); if(itsmo.near_season.panelCalOpenFlg == true){ $("#ajax_season_cond span[id^='season_hanabi_cal_s']").html('' + itsmo.near_season.tmp_calday['s'] + ''); $("#ajax_season_cond span[id^='season_hanabi_cal_e']").html(itsmo.near_season.tmp_calday['e']); }else{ $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_s']").html('' + itsmo.near_season.tmp_calday['s'] + ''); $("#ajax_leftmenu_result .hanabi-waku span[id^='season_hanabi_cal_e']").html(itsmo.near_season.tmp_calday['e']); } var cnt = 0 //$("#hanabi_cal_content table td div[id^='cal_day_']").each(function(){ $("div[id^='hanabi_cal_content']").each(function(){ cnt = 0; $(this).find("table td div[id^='cal_day_']").each(function(){ var cal_day = $(this).attr('id'); cal_day = cal_day.replace('cal_day_',''); if($(this).attr('class') == 'elected'){cnt++;} if(cnt == 1){$(this).addClass('elected');} }); }); itsmo.near_season.clickCalCnt = 0; } if(itsmo.near_season.panelCalOpenFlg == true){ $('#season_map_calendar_html').html($('#ajax_season_cond #hanabi_cal_content_panel').html()); }else{ $('#season_map_calendar_html').html($('#ajax_leftmenu_result #hanabi_cal_content').html()); } }; //画像がくずれるので高さ調整 itsmo.near_season.chgWidth = function(e){ var tmpImg = new Image(); tmpImg.src = e.src; if(tmpImg.width <= tmpImg.height){ $(e).width(56); }else if(tmpImg.width > tmpImg.height){ $(e).height(56); }else{ $(e).width(56); } }; itsmo.calendar = function() {}; itsmo.calendar.nowday = new Date();//現在 itsmo.calendar.months = 4;//何か月分 itsmo.calendar.showday = new Date(itsmo.calendar.nowday.getTime() - itsmo.calendar.months / 2 * 30 * 24 * 60 * 60 * 1000); itsmo.calendar.showday = new Date(itsmo.calendar.showday.getFullYear(), itsmo.calendar.showday.getMonth());//はじめのカレンダー itsmo.calendar.show_months = 2 ;//表示月数 itsmo.calendar.months_divs = new Array();//array(201107,201108...)年月日を配列で格納 itsmo.calendar.dateFunc = 'itsmo.near_season.clickCalDate';//日付クリック時の関数 //指定された月から指定された分のカレンダーを作成 itsmo.calendar.init = function(){ if(!$('#season_map_calendar_html').html()){ var html = ''; $('body').append('');//作成したカレンダーを格納しておくところ var num = itsmo.calendar.months; for(var i = 1; i <= num ; i++){ html += itsmo.calendar.add(1); } $('#season_map_calendar_html').html(html); for(var i = 1; i <= itsmo.calendar.show_months ; i++){ var set_y = itsmo.calendar.nowday.getFullYear(); var set_m = itsmo.calendar.nowday.getMonth() + i; if (set_m > 12) { set_y = itsmo.calendar.nowday.getFullYear() + 1; set_m = 1; } var div_id = 'map_calnum_' + set_y + set_m;//初期表示は今月と来月 $('#season_map_calendar_html #'+div_id).show(); } } itsmo.calendar.setCalBtn(); return $('#season_map_calendar_html').html(); }; itsmo.calendar.add = function(n){ var day = new Date(itsmo.calendar.showday.getTime()); day.setDate(1); if (n < 0) { day.setTime(day.getTime() - 2 * 24 * 60 * 60 * 1000); } else { day.setTime(day.getTime() + 32 * 24 * 60 * 60 * 1000); } day.setDate(1); var y = day.getFullYear(); var m = day.getMonth(); var today = new Date(); if (y < today.getFullYear()) { y = today.getFullYear(); } if (y == today.getFullYear() && m < today.getMonth()) { m = today.getMonth(); } if (y > (today.getFullYear() + 1)) { y = today.getFullYear() + 1; m = 11; } itsmo.calendar.showday.setFullYear(y); itsmo.calendar.showday.setMonth(m); return itsmo.calendar.make(); }; // カレンダーを表示。 itsmo.calendar.make = function() { // 表示月の1日目を作成。 itsmo.calendar.showday.setDate(1); // 末日を作成。 var lastday = new Date(itsmo.calendar.showday.getTime()); lastday.setDate(1); var start = lastday.getDay(); var end = lastday.getDay(); // 1日の曜日 lastday.setTime(lastday.getTime() + 32 * 24 * 60 * 60 * 1000); lastday.setDate(1); lastday.setHours(0); lastday.setMinutes(0); lastday.setSeconds(0); lastday.setTime(lastday.getTime() - 12 * 60 * 60); itsmo.calendar.setCalendarDateText(); // カレンダー作成。 end = Math.floor((lastday.getDate() + end + 6) / 7 - 1) * 10 + lastday.getDay(); i = $("#season_map_calendar table.traffic-calender tr[name='tracal5']"); if (end >= 50) { i.show(); } else { i.hide(); } var week = 0; var tbl = $('#season_map_calendar table.paka-calender'); var showDate = itsmo.calendar.showday; today = itsmo.calendar.nowday; var isTodayMonth = itsmo.calendar.showday.getMonth() == today.getMonth() && itsmo.calendar.showday.getFullYear() == today.getFullYear(); $("#season_map_calendar table.paka-calender td[name^=tracal]'").each(function() { var s = $(this).parent().attr('name'); var w = parseInt(s.substring(6), 10); var d = parseInt($(this).attr('name').substring(6), 10); s = w * 10 + d; var e = $(this); if (s < start || s > end) { e.html(''); if (0 == d) { e.removeClass('cellSat'); } else if (6 == d) { e.removeClass('cellSun'); } else { e.removeClass('cellSun cellSat'); } return null; } if (w >= 1) { s = 7 - start + 1 + (w - 1) * 7 + d; } else { s = d - start + 1; } itsmo.calendar.clickCal(e, showDate.getFullYear(), showDate.getMonth() + 1, s , (s == today.getDate() && isTodayMonth)); }); var div_id = String(itsmo.calendar.showday.getFullYear())+ (itsmo.calendar.showday.getMonth() + 1); $('#season_map_calendar .this_calDate_hidden').val(div_id); itsmo.calendar.months_divs.push(div_id); return ''; }; // カレンダー上部の年月日表示。 itsmo.calendar.setCalendarDateText = function() { var s = ''; s = itsmo.calendar.showday.getFullYear() + '年' + (itsmo.calendar.showday.getMonth() + 1) + '月'; $('#season_map_calendar #cal_month_div').html(s); }; // カレンダーの日付セット。 itsmo.calendar.clickCal = function(e, y, m, d, isToday) { var s; var isSun = new Date(y, m - 1, d); var isSat = isSun.getDay() == 6; isSun = (isSun.getDay() == 0) || isSun.isJpHoliday(); if(m < 10){ var m2 = '0' + m;}else{var m2 = m;} if(d < 10){ var d2 = '0' + d;}else{var d2 = d;} s = ''; if (isSun || isSat) { if (isSun) { e.removeClass('cellSat'); e.addClass('cellSun'); } else { e.removeClass('cellSun'); e.addClass('cellSat'); } } else { e.removeClass('cellSun cellSat'); } e.html(s); } itsmo.calendar.setCalBtn = function(){ // カレンダーの前月次月ボタンの制御。 var setLeftArrow = function(e,flg){ if(flg) {e.find('.traffic-month a.arrow-left').show();}else{e.find('.traffic-month a.arrow-left').hide();} e.find('.traffic-month0').addClass('leftcal'); }; var setRightArrow = function(e,flg){ if(flg) {e.find('.traffic-month a.arrow-right').show();}else{e.find('.traffic-month a.arrow-right').hide();} e.find('.traffic-month0').removeClass('leftcal'); }; var num = 1; for(var i=0 ; i num && num == 1){ setRightArrow(e,false);setLeftArrow(e,true); }else if(itsmo.calendar.show_months == num){ setLeftArrow(e,false);setRightArrow(e,true); }else if(itsmo.calendar.show_months > num){ setRightArrow(e,false);setLeftArrow(e,false); } if(month == itsmo.calendar.months_divs[0]){setLeftArrow(e,false);} if(month == itsmo.calendar.months_divs[itsmo.calendar.months_divs.length-1]){setRightArrow(e,false);} num++; } } }; itsmo.calendar.onClickAddCalendar = function(e,flg){ var date = $(e).parent(); var id = date.find('.this_calDate_hidden').val(); for(var i=0 ; i0){ var prev = itsmo.calendar.months_divs[i-1]; var next = itsmo.calendar.months_divs[i+1]; } } } switch(flg){ case 1://next $('#season_map_calendar_html').find('#map_calnum_' + next).show(); $('#season_map_calendar_html').find('#map_calnum_' + prev).hide(); break; case -1://prev $('#season_map_calendar_html').find('#map_calnum_' + next).hide(); $('#season_map_calendar_html').find('#map_calnum_' + prev).show(); break } itsmo.calendar.setCalBtn(); var html = $('#season_map_calendar_html').html(); $('#ajax_leftmenu_result #hanabi_cal_content').html(html); $('#ajax_season_cond #hanabi_cal_content_panel').html(html); }; //キーワード初期化 itsmo.near_season.keyword_check = function(e){ e = $(e); if(e.attr('rel') == e.val()){ e.val(''); }else if (e.val() == ''){ e.val(e.attr('rel')); } }; //条件を含めるか?? itsmo.near_season.cond_toggle_keyword = function(e){ e = $(e); var cl = e.find('span:first').attr('class'); if (cl == 'tel-check-on') { e.find('span:first').attr('class', 'tel-check-off'); } else { e.find('span:first').attr('class', 'tel-check-on'); } return false; };//-------------------------------------------------------------------------------------------------- // メニュー選択 //-------------------------------------------------------------------------------------------------- itsmo.near_new_building = function() {}; itsmo.near_new_building.classification = []; itsmo.near_new_building.classification_cat = []; itsmo.near_new_building.is_init = false; itsmo.near_new_building.cond = {}; /** * スタート */ itsmo.near_new_building.start = function() { itsmo.near_new_building.classification = []; itsmo.near_new_building.classification_cat = []; itsmo.near_new_building.cond = {}; itsmo.near_new_building.cond['sort'] = 'location'; itsmo.vars.g_range_genre = 'new_building'; itsmo.near_new_building.search(); }; //-------------------------------------------------------------------------------------------------- // 検索 //-------------------------------------------------------------------------------------------------- /** * 検索 */ itsmo.near_new_building.search = function(act) { itsmo.sub.map_tab_change('range', ['new_building']); if (act != 'page') { itsmo.vars.g_range_page = 1; } var cond = [], i; for (i in itsmo.near_new_building.cond) { cond.push(i + '=' + encodeURIComponent(itsmo.near_new_building.cond[i])); } cond.push('classify=' + encodeURIComponent(itsmo.near_new_building.classification.join(','))); cond.push('classifycat=' + encodeURIComponent(itsmo.near_new_building.classification_cat.join(','))); i = itsmo.vars.g_map_search_location; var prm = 'lat=' + i.lat + '&lon=' + i.lon + '&minx=' + itsmo.vars.g_map_search_box.minx + '&miny=' + itsmo.vars.g_map_search_box.miny + '&maxx=' + itsmo.vars.g_map_search_box.maxx + '&maxy=' + itsmo.vars.g_map_search_box.maxy + '&page=' + itsmo.vars.g_range_page + '&cnt=' + itsmo.vars.g_range_cnt + '&' + cond.join('&') ; itsmo.lib.map_waitopen(); //検索し、検索結果を記述 itsmo.lib.XMLHttpRequest2_send('/map/ajax_near_new_building.php', itsmo.near_new_building.result, 'GET', prm); }; /** * 検索結果一覧を表示 */ itsmo.near_new_building.result = function (result) { //エラー処理 result = $(result); var err = result.find('err').text(); if(err != 0) { itsmo.lib.aplErrorWindow('W', '0003', 'new_building', '新規施設検索'); return; } //チップクリア itsmo.sub.map_clickable_TipAllClear(1); $(result).find('list').each(function(){ var prm = {}; prm['uid'] = $(this).find('id').text(); prm['lat'] = $(this).find('lat').text(); prm['lon'] = $(this).find('lon').text(); prm['nm'] = $(this).find('title').text(); prm['short_nm'] = $(this).find('title').text(); prm['tip_c'] = $(this).find('tiphtmlc').text(); prm['tip_o'] = $(this).find('tiphtmlo').text(); var html = prm['tip_c']; var div_id = itsmo.sub.set_tooltip_s(html,prm); //bind $('#' + div_id + ' a').click(function() { itsmo.range.range_tipopen(prm.uid); }); $('#' + div_id + ' .tipc_range_open1').click(function() { itsmo.range.range_tipopen(prm.uid); }); }); itsmo.lib.map_waitclose(); itsmo.sub.map_tab_sethtml( result.find('listhtml').text() ); }; /** * ページ数をセット * 検索実行 */ itsmo.near_new_building.set_pange_and_search = function(page) { //ページ数 itsmo.vars.g_range_page = page + 1; //検索 itsmo.near_new_building.search('page'); }; itsmo.map.Sharing = function () { var _class = this; _class.mapImgHeight = 140; _class.mapImgWidth = 530; _class.map = itsmo.vars.g_map_obj; _class.popupElId = 'sharing-popup'; _class.introText = '☆ゼンリンいつもNAVI[マルチ]が提供する新たな地図・ナビの世界を体験!☆'; _class.shareLatLon = null; _class.shareFacilityName = ''; _class.shareAddress = ''; _class.shareLink = ''; _class.getAddressRequest = null; }; itsmo.map.Sharing._instance = null; itsmo.map.Sharing.getInstance = function () { if (itsmo.map.Sharing._instance == null) { itsmo.map.Sharing._instance = new itsmo.map.Sharing(); } return itsmo.map.Sharing._instance; }; itsmo.map.Sharing.closeBalloon = function () { if (itsmo.map.LandTourist.getInstance() != null) { itsmo.map.LandTourist._instance.closeBalloon(); } }; itsmo.map.Sharing.prototype.getCenterAddress = function () { var _class = this; if (_class.getAddressRequest != null) { itsmo.lib.XMLHttpRequest2_abort(_class.getAddressRequest); } _class.getAddressRequest = itsmo.lib.XMLHttpRequest2_send('/map/right_click.php', function (result) { if (result.err) { return false; } _class.shareAddress = result[0].address.text; _class.display(); }, 'GET', _class.shareLatLon, 'json'); }; itsmo.map.Sharing.prototype.setShareLink = function () { var _class = this; var loc = itsmo.lib.toMilliSec(_class.shareLatLon); var proto = location.protocol; _class.shareLink = proto + '//' + itsmo.vars.d_host_www + '/z-' + loc.lat + '-' + loc.lon + '-' + (_class.map.getZoom() + 1) + '.htm'; }; itsmo.map.Sharing.prototype.setMapImage = function () { var _class = this; var lvl = _class.map.getZoom() + 1;//scale lv = zoom + 1 (zoom range 1 -> 18) var wh = {width: _class.mapImgWidth, height: _class.mapImgHeight}; var mapImageLink = itsmo.lib.getMapImgLink(_class.shareLatLon, lvl, wh, true); $('#' + _class.popupElId + ' #map-img').attr('src', mapImageLink); }; itsmo.map.Sharing.prototype.setTextArea = function () { var _class = this; var text = ''; if (_class.shareFacilityName) { text += "[" + _class.shareFacilityName + "]"; } if(_class.shareAddress){ if (_class.shareFacilityName){ text+= '-'; } text += '[' + _class.shareAddress + ']'; } text += '\n地図:' + _class.shareLink; $('#' + _class.popupElId + ' #share-text').val(text); _class.setQRCode(encodeURIComponent(text)); }; itsmo.map.Sharing.prototype.setQRCode = function (text) { var _class = this; $('#' + _class.popupElId + ' #qr-code').attr('src', itsmo.lib.getQRCodeLink(text, "3")); }; itsmo.map.Sharing.prototype.setShareButtons = function () { var _class = this; $('#' + _class.popupElId + ' #email').attr('href', _class.makeMailLink()); $('#' + _class.popupElId + ' #line-share').attr('href', _class.makeLineLink()); $('#' + _class.popupElId + ' #twitter-share').attr('href', _class.makeTwitterLink()); $('#' + _class.popupElId + ' #fb-share').attr('href', _class.makeFbLink()); }; itsmo.map.Sharing.prototype.resetData = function () { var _class = this; _class.shareLatLon = null; _class.shareFacilityName = ''; _class.shareAddress = ''; _class.shareLink = ''; }; itsmo.map.Sharing.prototype.show = function (lat, lon, facilityName, addr) { var _class = this; _class.resetData(); if (lat && lon) { _class.shareLatLon = new ZDC.LatLon(lat, lon); if (facilityName) { _class.shareFacilityName = facilityName; } if (addr) { _class.shareAddress = addr; } _class.display(); } else { _class.shareLatLon = _class.map.getLatLon(); _class.getCenterAddress(); } }; itsmo.map.Sharing.prototype.display = function () { var _class = this; _class.setShareLink(); _class.setMapImage(); _class.setTextArea(); _class.setShareButtons(); itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowopen(_class.popupElId); }; itsmo.map.Sharing.prototype.hide = function () { var _class = this; _class.resetData(); itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose(_class.popupElId); }; itsmo.map.Sharing.prototype.encodeShareData = function () { var _class = this; var introText = encodeURIComponent(_class.introText); var name = encodeURIComponent(_class.shareFacilityName); var addr = encodeURIComponent(_class.shareAddress); var link = encodeURI(_class.shareLink); var baseURL = encodeURI(itsmo.lib.getBaseURL()); return {introText: introText, name: name, addr: addr, link: link, baseURL: baseURL}; }; itsmo.map.Sharing.prototype.makeMailLink = function () { var _class = this; var href = 'mailto:?body= %0a %0a'; var prm = _class.encodeShareData(); if (prm.name) { href += prm.name; } if(prm.addr){ if(prm.name){ href += '%0a'; } href += prm.addr; } href += '%0a' + encodeURIComponent('地図:') + prm.link + '%0a%0a' + prm.introText + '%0a' + prm.baseURL; return href; }; itsmo.map.Sharing.prototype.makeLineLink = function () { var _class = this; var href = 'line://msg/text/'; var prm = _class.encodeShareData(); if (prm.name != '') { href += prm.name; } if (prm.addr) { if (prm.name) { href += '%0a'; } href += prm.addr; } href += '%0a地図:' + prm.link;// + '%0a%0a' + prm.introText + '%0a' + prm.baseURL; return href; }; itsmo.map.Sharing.prototype.makeTwitterLink = function () { var _class = this; var href = 'http://twitter.com/share?text='; var prm = _class.encodeShareData(); if (prm.name) { href += '[' + prm.name + ']'; } if(prm.addr){ if(prm.name){ href += '-'; } href += '[' + prm.addr + ']'; } href += '%0a' + encodeURIComponent('地図:') +'&url=' + prm.link; return href; }; itsmo.map.Sharing.prototype.makeFbLink = function () { var _class = this; var app_face = '268920203204669'; if (itsmo.lib.getBaseURL() == "https://dev-itm-multi.its-mo.com") { app_face = '268920203204669'; } else if (itsmo.lib.getBaseURL() == "https://test-itm-multi.its-mo.com") { app_face = '268920203204669'; } else if (itsmo.lib.getBaseURL() == "https://www.its-mo.com") { app_face = '268920203204669'; } var title = ''; var shareContent = ''; var prm = _class.encodeShareData(); if (prm.name) { title += '[' + prm.name + ']'; } if (prm.addr) { if (prm.name) { title += '-'; } title += '[' + prm.addr + ']'; } shareContent += '[地図: ' + prm.link + ']' + '%0a %0a ' + prm.introText; var app_id = 'app_id=' + app_face + '&'; var redirect_uri = 'redirect_uri=' + 'https://facebook.com&'; var display = 'display=page&'; var _link = 'link=' + prm.link + '&'; var name = 'name=' + title + '&'; var description = 'description=' + shareContent + '&'; var picture = '&picture=https://www.its-mo.com/design/img/smart/bookmark.png&'; var sdk = 'sdk=joey'; var href = 'https://www.facebook.com/dialog/feed?' + app_id + redirect_uri + picture + name + description + _link + display + sdk; return href; }; /* global itsmo, ZDC, BUS_SPECIAL_BRACKET_OPEN, BUS_SPECIAL_BRACKET_CLOSE, BUS_SEARCH_KEYWORD */ itsmo.map.bus = {}; itsmo.map.bus.genreSearchFlag = '1'; itsmo.map.bus.showGroupBSAround = function (groupId) { $("#bus-group-popup #bus-stops-list").html(''); for (var key in itsmo.vars.g_map_tipid_clickable_s) { var item = itsmo.vars.g_map_tipid_clickable_s[key]; if (item.groupId == groupId) { var html = '
  • ' + '' + item['nm'] + '' + '' + item['company'] + '' + '
  • '; $("#bus-group-popup #bus-stops-list").append(html); } } itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowopen('bus-group-popup'); }; itsmo.map.bus.closeBSGroupPopup = function () { itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose('bus-group-popup'); }; itsmo.map.bus.goToBSDetail = function (bsName, comName) { window.open('/bus/detail/' + bsName + BUS_SPECIAL_BRACKET_OPEN + comName + BUS_SPECIAL_BRACKET_CLOSE, '_blank'); }; /**Route**/ itsmo.map.bus.routeParams = null; itsmo.map.bus.routeSearchData = null; itsmo.map.bus.routeBalloons = null; itsmo.map.bus.routePolyline = null; itsmo.map.bus.routeLargeBalloon = null; itsmo.map.bus.templateList = "
    \ [route-name]([com-name])\ [via-string]\ クリア\
    \
    \
    \ [list-bs]\
    \
    "; itsmo.map.bus.templateItem = "
    \ \ \ \ \ [name]  詳細\\ \
    "; itsmo.map.bus.smallBLTempalte = "
    \ \ \ \ \
    \
    \ \ \
    \
    \
    "; itsmo.map.bus.mediumBLTempalte = "
    \ \ \ \ \ \
    \
    \ \ \
    \
    \ [name]\ \
    \
    "; itsmo.map.bus.largeBLTemplate = "
    \
    \
    [name]\ 詳細
    \ [company]
    \ \
    \
    \
    "; itsmo.map.bus.busRouteSearch = function (names, codes) { itsmo.sub.map_clickable_TipAllClear(); itsmo.map.bus.parseRouteParams(names, codes); var params = itsmo.map.bus.routeParams; itsmo.sub.map_tab_change('bus', [names, codes]); itsmo.map.bus.callSearchRoute(params['routeCode'], params['bsCode'], params['ptCode'], params['bsName'] , params['comName']); }; itsmo.map.bus.parseRouteParams = function (names, codes) { itsmo.map.bus.routeParams = {}; var codes = codes.split('-'); var bracketOpenIndex = names.indexOf(BUS_SPECIAL_BRACKET_OPEN); var bracketCloseIndex = names.indexOf(BUS_SPECIAL_BRACKET_CLOSE); itsmo.map.bus.routeParams['bsName'] = names.substring(0, bracketOpenIndex); itsmo.map.bus.routeParams['comName'] = names.substring(bracketOpenIndex + 1, bracketCloseIndex); itsmo.map.bus.routeParams['routeCode'] = codes[0]; itsmo.map.bus.routeParams['bsCode'] = codes[1]; itsmo.map.bus.routeParams['ptCode'] = codes[2]; }; itsmo.map.bus.callSearchRoute = function (routeCode, bsCode, pt, bsName, comName) { itsmo.lib.map_waitopen(); var url = '/bus/ajaxRouteSearchPC.php?routeCode=' + routeCode + '&pt=' + pt + '&bsName=' + encodeURIComponent(bsName) + '&comName=' + encodeURIComponent(comName) + '&bsCode=' + bsCode; itsmo.lib.XMLHttpRequest2_send(url, function (result) { if (result) { itsmo.map.bus.searchRouteSuccess(result); } else { itsmo.map.bus.searchRouteError(); } }, 'GET', '', 'json', itsmo.map.bus.searchRouteError); }; itsmo.map.bus.searchRouteSuccess = function (result) { itsmo.map.bus.routeSearchData = result; if (itsmo.vars.g_config.mapinfo_minimize == 0) { itsmo.map.bus.createRouteBalloons(result, true); } else { itsmo.map.bus.createRouteBalloons(result); } itsmo.map.bus.createRouteList(result); itsmo.lib.map_waitclose(); }; itsmo.map.bus.searchRouteError = function () { itsmo.lib.map_waitclose(); }; itsmo.map.bus.createRouteList = function (result) { var info = result.Info; var busStops = result.BusStops; var templateList = itsmo.map.bus.templateList; var listHtml = ''; for (var i = 0; i < busStops.length; i++) { var templateItem = itsmo.map.bus.templateItem; var className = itsmo.map.bus.getClassIcon(i, busStops.length, busStops[i]['BsCode']); var html = templateItem.replace(/\[icon-class\]/g, className); html = html.replace(/\[onclick\]/g, "itsmo.map.bus.goToBSDetail('" + busStops[i]['Name'] + "','" + itsmo.map.bus.routeParams['comName'] + "')"); html = html.replace(/\[name\]/g, busStops[i]['Name']); var moveOver = "onmouseover=\"itsmo.map.bus.openRouteLargeBalloon('" + i + "');return false;\""; html = html.replace(/\[mouseover\]/g, moveOver); var onclickMove = "onclick=\"itsmo.vars.g_map_obj.moveLatLon(new ZDC.LatLon( " + busStops[i]['Lat'] + ", " + busStops[i]['Lon'] + "));return false;\""; html = html.replace(/\[onclickmove\]/g, onclickMove); listHtml += html; } listHtml = templateList.replace(/\[list-bs\]/g, listHtml); listHtml = listHtml.replace(/\[route-name\]/g, itsmo.map.bus.routeParams['bsName']); listHtml = listHtml.replace(/\[com-name\]/g, itsmo.map.bus.routeParams['comName']); listHtml = listHtml.replace(/\[via-string\]/g, (info['ViaString']) ? info['ViaString'] : ''); itsmo.sub.map_tab_sethtml(listHtml); }; itsmo.map.bus.getClassIcon = function (index, length, bsCode, isBalloon) { var prefix = 'icon-bs-'; if (typeof (isBalloon) != 'undefined' && isBalloon == true) { prefix = 'icon-bs2-'; } var className = prefix + (index + 1); if (index == 0) { className = prefix + 'start'; } else if (index == length - 1) { className = prefix + 'end'; } else if (bsCode == itsmo.map.bus.routeParams['bsCode']) { className = prefix + 'focus-' + (index + 1); } return className; }; itsmo.map.bus.createRouteBalloons = function (result, isMedium, noMoveMap) { if (typeof (result) == 'undefined' || result == null) { return; } if (typeof (noMoveMap) == 'undefined') { noMoveMap = false; } var dataSearch = result.BusStops; itsmo.map.bus.clearRoute(); itsmo.map.bus.routeBalloons = []; var template = itsmo.map.bus.smallBLTempalte; if (true == isMedium) { template = itsmo.map.bus.mediumBLTempalte; } var latLons = []; for (var i = 0; i < dataSearch.length; i++) { var className = itsmo.map.bus.getClassIcon(i, dataSearch.length, dataSearch[i]['BsCode'], true); itsmo.map.bus.routeSearchData.BusStops[i]['className'] = className; var html = template.replace(/\[ico-class\]/g, className); html = html.replace(/\[onclick\]/g, "itsmo.map.bus.openRouteLargeBalloon('" + i + "')"); html = html.replace(/\[name\]/g, dataSearch[i]['Name']); var latLon = new ZDC.LatLon(parseFloat(dataSearch[i]['Lat']), parseFloat(dataSearch[i]['Lon'])); latLons.push(latLon); var data = { html: html, latLon: latLon }; itsmo.map.bus.routeBalloons.push(itsmo.map.bus.createBalloon(data)); } itsmo.map.bus.routePolyline = new ZDC.Polyline(latLons, { strokeWeight: 4, strokeColor: '#FF0000' }); itsmo.vars.g_map_obj.addWidget(itsmo.map.bus.routePolyline); if (false == noMoveMap) { var adjustZoom = itsmo.vars.g_map_obj.getAdjustZoom(latLons); itsmo.vars.g_map_obj.moveLatLon(adjustZoom.latlon); itsmo.vars.g_map_obj.setZoom(adjustZoom.zoom); } }; itsmo.map.bus.openRouteLargeBalloon = function (indexData) { itsmo.map.bus.clearRouteLargeBalloon(true); var data = itsmo.map.bus.routeSearchData.BusStops[indexData]; var html = itsmo.map.bus.largeBLTemplate.replace(/\[ico-class\]/g, data.className); html = html.replace(/\[name\]/g, data['Name']); html = html.replace(/\[lat\]/g, ZDC.degToms(data['Lat'])); html = html.replace(/\[lon\]/g, ZDC.degToms(data['Lon'])); html = html.replace(/BUS_KEYWORD/g, BUS_SEARCH_KEYWORD); html = html.replace(/\[company\]/g, itsmo.map.bus.routeParams['comName']); html = html.replace(/\[onclick\]/g, "itsmo.map.bus.goToBSDetail('" + data['Name'] + "','" + itsmo.map.bus.routeParams['comName'] + "')"); var dataBalloon = { html: html, latLon: {lat: data['Lat'], lon: data['Lon']}, index: indexData }; itsmo.map.bus.routeLargeBalloon = itsmo.map.bus.createBalloon(dataBalloon, false); itsmo.map.bus.routeBalloons[indexData].close(); }; itsmo.map.bus.createBalloon = function (data) { var el = $('#id_div_calc_size'); el.html(data.html); var offset = new ZDC.Pixel(-13, -26); var widget = new ZDC.UserWidget(data.latLon, { html: data.html, size: itsmo.sub.getHtmlSize(data.html), offset: offset }); itsmo.vars.g_map_obj.addWidget(widget); if (typeof (data.index) != 'undefined') { widget._indexBalloon = data.index; } widget.open(); return widget; }; itsmo.map.bus.clearRoute = function () { if (itsmo.map.bus.routeBalloons != null) { for (var i = 0; i < itsmo.map.bus.routeBalloons.length; i++) { itsmo.map.bus.routeBalloons[i].close(); itsmo.vars.g_map_obj.removeWidget(itsmo.map.bus.routeBalloons[i]); } } if (itsmo.map.bus.routePolyline != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.map.bus.routePolyline); } itsmo.map.bus.routePolyline = null; itsmo.map.bus.routeBalloons = null; }; itsmo.map.bus.clearRouteLargeBalloon = function (reOpen) { if (itsmo.map.bus.routeLargeBalloon != null) { if (reOpen && itsmo.map.bus.routeBalloons != null && itsmo.map.bus.routeBalloons[itsmo.map.bus.routeLargeBalloon._indexBalloon]) { itsmo.map.bus.routeBalloons[itsmo.map.bus.routeLargeBalloon._indexBalloon].open(); } itsmo.map.bus.routeLargeBalloon.close(); itsmo.vars.g_map_obj.removeWidget(itsmo.map.bus.routeLargeBalloon); } itsmo.map.bus.routeLargeBalloon = null; }; itsmo.map.bus.isExistPoint = function () { if (itsmo.map.bus.routeBalloons != null && itsmo.map.bus.routeBalloons.length > 0) { return true; } }; itsmo.map.bus.clearRouteResult = function () { itsmo.map.bus.clearRoute(); itsmo.map.bus.clearRouteLargeBalloon(); itsmo.map.bus.routeSearchData = null; }; itsmo.map.bus.minimizeBalloons = function () { itsmo.map.bus.clearRouteLargeBalloon(true); itsmo.map.bus.createRouteBalloons(itsmo.map.bus.routeSearchData, false, true); }; itsmo.map.bus.maximizeBalloons = function () { itsmo.map.bus.clearRouteLargeBalloon(true); itsmo.map.bus.createRouteBalloons(itsmo.map.bus.routeSearchData, true, true); }; itsmo.map.bus.genreSearch = function () { itsmo.freeword.freeword('bus', BUS_SEARCH_KEYWORD, itsmo.map.bus.genreSearchFlag); }; // Bus detail map itsmo.map.bus.detailBallons = []; itsmo.map.bus.detailParams = []; itsmo.map.bus.makeDetailBus = function (names, latLon) { itsmo.map.bus.clearDetailBalloons(); itsmo.lib.map_waitopen(); latLon = latLon.split('_'); var convertedLatLon = new ZDC.LatLon(ZDC.msTodeg(latLon[0]), ZDC.msTodeg(latLon[1])); itsmo.vars.g_map_obj.moveLatLon(convertedLatLon); var bracketOpenIndex = names.indexOf(BUS_SPECIAL_BRACKET_OPEN); var bracketCloseIndex = names.indexOf(BUS_SPECIAL_BRACKET_CLOSE); var bsName = names.substring(0, bracketOpenIndex); var comName = names.substring(bracketOpenIndex + 1, bracketCloseIndex); itsmo.map.bus.detailParams['latLon'] = latLon; itsmo.map.bus.detailParams['bsName'] = bsName; itsmo.map.bus.detailParams['comName'] = comName; itsmo.lib.XMLHttpRequest2_send('/map/right_click.php', itsmo.map.bus.displayBusDetail, 'GET', convertedLatLon, 'json'); }; itsmo.map.bus.displayBusDetail = function (result) { itsmo.lib.map_waitclose(); if (result.err) { return false; } var address = result[0].address.text; var zipCode = result[0].zipcode; var data = {zipCode: zipCode, address: address}; itsmo.map.bus.fillDataLargeBallon(data); itsmo.map.bus.fillDataSmallBallon(); var listHtml = ''; var templateList = $("#bus-detail-list-wrapper").html(); var listHtml = templateList.replace(/__name__/g, itsmo.map.bus.detailParams['bsName']); listHtml = listHtml.replace(/__name__/g, itsmo.map.bus.detailParams['bsName']); listHtml = listHtml.replace(/__zipCode__/g, zipCode); listHtml = listHtml.replace(/__addr__/g, address); listHtml = listHtml.replace(/__comName__/g, itsmo.map.bus.detailParams['comName']); var moveOver = "itsmo.map.bus.openDetailBalloon('largeBalloon');"; listHtml = listHtml.replace(/__mouseover__/g, moveOver); var onclickMove = "itsmo.range.range_move(" + itsmo.map.bus.detailParams['latLon'][1] + "," + itsmo.map.bus.detailParams['latLon'][0] + ");"+moveOver; listHtml = listHtml.replace(/__onclickmove__/g, onclickMove); itsmo.sub.map_tab_sethtml(listHtml); var bsName = decodeURIComponent(itsmo.map.bus.detailParams['bsName']); var bsCom = decodeURIComponent(itsmo.map.bus.detailParams['comName']); itsmo.sub.map_tab_change('busDetail', ['busDetail', bsName + BUS_SPECIAL_BRACKET_OPEN + bsCom + BUS_SPECIAL_BRACKET_CLOSE, itsmo.map.bus.detailParams['latLon'][0] + '_' + itsmo.map.bus.detailParams['latLon'][1]]); }; itsmo.map.bus.createBalloonDetail = function (data) { var size = itsmo.sub.getHtmlSize(data.html); var offset = new ZDC.Pixel(-(size.width / 2 - 14), -(size.height)); if (typeof (data.offset) != 'undefined') { offset = data.offset; } var widget = new ZDC.UserWidget(data.latLon, { html: data.html, size: itsmo.sub.getHtmlSize(data.html), offset: offset }); itsmo.vars.g_map_obj.addWidget(widget); if (typeof (data.index) != 'undefined') { widget._indexBalloon = data.index; } if (typeof (data.zIndex) != 'undefined') { widget.setZindex(data.zIndex); } widget.open(); return widget; }; itsmo.map.bus.closeDetailBalloon = function (data) { if(typeof(typeof (itsmo.map.bus.detailBallons[data]) != 'undefined')){ itsmo.map.bus.detailBallons[data].close(); } }; itsmo.map.bus.openDetailBalloon = function (data) { if(typeof(typeof (itsmo.map.bus.detailBallons[data]) != 'undefined')){ itsmo.map.bus.detailBallons[data].open(); } }; itsmo.map.bus.closeDetailBalloons = function () { if (typeof (itsmo.map.bus.detailBallons['smallBalloon']) != 'undefined') { itsmo.map.bus.detailBallons['smallBalloon'].close(); } if (typeof (itsmo.map.bus.detailBallons['largeBalloon']) != 'undefined') { itsmo.map.bus.detailBallons['largeBalloon'].close(); } }; itsmo.map.bus.clearDetailBalloons = function () { if (typeof (itsmo.map.bus.detailBallons['smallBalloon']) != 'undefined') { itsmo.map.bus.detailBallons['smallBalloon'].close(); itsmo.vars.g_map_obj.removeWidget(itsmo.map.bus.detailBallons['smallBalloon']); } if (typeof (itsmo.map.bus.detailBallons['largeBalloon']) != 'undefined') { itsmo.map.bus.detailBallons['largeBalloon'].close(); itsmo.vars.g_map_obj.removeWidget(itsmo.map.bus.detailBallons['largeBalloon']); } itsmo.map.bus.detailBallons = []; }; itsmo.map.bus.fillDataLargeBallon = function (data) { var detailParams = itsmo.map.bus.detailParams; var detailLink = '/bus/detail/' + detailParams['bsName'] + BUS_SPECIAL_BRACKET_OPEN + detailParams['comName'] + BUS_SPECIAL_BRACKET_CLOSE; var largeBalloon = $("#bus-detail-large-balloon-template").html(); largeBalloon = largeBalloon.replace(/__closeLarge__/g, "itsmo.map.bus.closeDetailBalloon('largeBalloon');itsmo.map.bus.openDetailBalloon('smallBalloon');"); largeBalloon = largeBalloon.replace(/__name__/g, detailParams['bsName']); largeBalloon = largeBalloon.replace(/__zipCode__/g, data.zipCode); largeBalloon = largeBalloon.replace(/__comName__/g, detailParams['comName']); largeBalloon = largeBalloon.replace(/__addr__/g, data.address); largeBalloon = largeBalloon.replace(/__jsShare__/g, itsmo.map.bus.shareBalloonString(data)); // 2017/04/12 Phuoc Le - #8434 Add dataLayer var jsRouteStart = "itsmo.myroute.hereStart('" + detailParams['bsName'] + "', {lat:" + detailParams['latLon'][0] + ", lon:" + detailParams['latLon'][1] + "} ); dataLayer.push(['_trackEvent', 'Maps', 'RouteSearch', 'RouteSearch_Start_吹き出し']);itsmo.map.bus.closeDetailBalloon('largeBalloon'); "; largeBalloon = largeBalloon.replace(/__jsRouteStart__/g, jsRouteStart); var jsRouteEnd = "itsmo.map.bus.closeDetailBalloon('largeBalloon'); itsmo.myroute.hereGo('" + detailParams['bsName'] + "', {lat:" + detailParams['latLon'][0] + ", lon:" + detailParams['latLon'][1] + "} ); dataLayer.push(['_trackEvent', 'Maps', 'RouteSearch', 'RouteSearch_Goal_吹き出し']);"; largeBalloon = largeBalloon.replace(/__jsRouteEnd__/g, jsRouteEnd); var jsRouteStep = "itsmo.map.bus.closeDetailBalloon('largeBalloon'); itsmo.myroute.hereByway('" + detailParams['bsName'] + "', {lat:" + detailParams['latLon'][0] + ", lon:" + detailParams['latLon'][1] + "} ); dataLayer.push(['_trackEvent', 'Maps', 'RouteSearch', 'RouteSearch_StopOver_吹き出し']);"; largeBalloon = largeBalloon.replace(/__jsRouteStep__/g, jsRouteStep); var jsMySpot = "itsmo.myspot.other_addmyspot(" + detailParams['latLon'][0] + "," + detailParams['latLon'][1] + ",'" + detailParams['bsName'] + "','','" + data.address + "','','','','" + BUS_SEARCH_KEYWORD + "','','" + detailLink + "');"; largeBalloon = largeBalloon.replace(/__jsAddMySpot__/g, jsMySpot); var jsHome = "itsmo.mypage.mypage('home_add', { lat: " + detailParams['latLon'][0] + ", lon: " + detailParams['latLon'][1] + " } )\ ;itsmo.map.bus.closeDetailBalloon('largeBalloon');"; largeBalloon = largeBalloon.replace(/__jsHome__/g, jsHome); var dataLarge = { html: largeBalloon, latLon: new ZDC.LatLon(ZDC.msTodeg(detailParams['latLon'][0]), ZDC.msTodeg(detailParams['latLon'][1])), zIndex: itsmo.map.D_TIPZIDX_RANGE + 3 }; itsmo.map.bus.detailBallons['largeBalloon'] = itsmo.map.bus.createBalloonDetail(dataLarge); }; itsmo.map.bus.fillDataSmallBallon = function () { var detailParams = itsmo.map.bus.detailParams; var smallBalloon = $("#bus-detail-small-balloon-template").html(); smallBalloon = smallBalloon.replace(/__openLarge__/g, "itsmo.map.bus.openDetailBalloon('largeBalloon');"); var dataSmall = { html: smallBalloon, latLon: new ZDC.LatLon(ZDC.msTodeg(detailParams['latLon'][0]), ZDC.msTodeg(detailParams['latLon'][1])), offset: new ZDC.Pixel(-12, -34) }; itsmo.map.bus.detailBallons['smallBalloon'] = itsmo.map.bus.createBalloonDetail(dataSmall); }; itsmo.map.bus.shareBalloonString = function (data) { var jsShare = "itsmo.map.Sharing.getInstance().show(" + ZDC.msTodeg(itsmo.map.bus.detailParams['latLon'][0]) + ", " + ZDC.msTodeg(itsmo.map.bus.detailParams['latLon'][1]) + ", '" + itsmo.map.bus.detailParams['bsName'] + "', '" + data.address + "');"; return jsShare; }; itsmo.map.bus.clearAllBalloons = function () { itsmo.map.bus.clearRouteResult(); itsmo.map.bus.clearDetailBalloons(); }; itsmo.map.roadStation = {}; itsmo.map.roadStation.searchData = null; itsmo.map.roadStation.balloons = null; itsmo.map.roadStation.largeBalloon = null; itsmo.map.roadStation.initSearch = function (latLon, lvl) { if (typeof (latLon) != 'undefined') { var parseLatLon = latLon.split('-'); if (parseLatLon.length == 2) { latLon = new ZDC.LatLon(ZDC.msTodeg(parseLatLon[0]), ZDC.msTodeg(parseLatLon[1])); itsmo.vars.g_map_obj.moveLatLon(latLon); } else { latLon = itsmo.vars.g_map_obj.getLatLon(); } } if (typeof (lvl) != 'undefined') { itsmo.vars.g_map_obj.setZoom(lvl); } lvl = itsmo.vars.g_map_obj.getZoom(); itsmo.sub.map_tab_change('michinoeki', ['michinoeki', ZDC.degToms(latLon.lat) + '-' + ZDC.degToms(latLon.lon), lvl]); itsmo.map.roadStation.searchRS(ZDC.degToms(latLon.lat), ZDC.degToms(latLon.lon)); }; itsmo.map.roadStation.reSearchMapEvent = function (){ var latLon = itsmo.vars.g_map_obj.getLatLon(); var lvl = itsmo.vars.g_map_obj.getZoom(); itsmo.sub.map_tab_change('michinoeki', ['michinoeki', ZDC.degToms(latLon.lat) + '-' + ZDC.degToms(latLon.lon), lvl]); } itsmo.map.roadStation.searchRS = function (lat, lon) { itsmo.lib.map_waitopen(); var url = '/special/michinoeki/ajaxAroundRadius.php?lat=' + lat + '&lon=' + lon; itsmo.lib.XMLHttpRequest2_send(url, function (result) { if (result) { itsmo.map.roadStation.searchSuccess(result); } else { itsmo.map.roadStation.searchError(); } }, 'GET', '', 'json', itsmo.map.roadStation.searchError); }; itsmo.map.roadStation.searchSuccess = function (result) { itsmo.sub.map_clickable_TipAllClear(1); itsmo.map.roadStation.searchData = result; itsmo.map.roadStation.createBalloons(result); itsmo.map.roadStation.createRSList(result); itsmo.lib.map_waitclose(); }; itsmo.map.roadStation.searchError = function () { itsmo.sub.map_clickable_TipAllClear(1); itsmo.lib.map_waitclose(); }; itsmo.map.roadStation.createRSList = function (result) { var listHtml = $("#road-station-list-no-result").html(); do{ if (typeof (result) == 'undefined' || result == null || typeof result.list == 'undefined') { break; } listHtml = ''; var list = result.list; var templateList = $("#road-station-list-wrapper").html(); for (var i = 0; i < list.length; i++) { var data = list[i]; var templateItem = $("#road-station-list-item").html(); var html = templateItem.replace(/__detail__/g, data['detail_url']); html = html.replace(/__name__/g, data['nm']); var moveOver = "itsmo.map.roadStation.openLargeBalloon('" + i + "');"; html = html.replace(/__mouseover__/g, moveOver); var onclickMove = "itsmo.range.range_move('"+ data['lon'] +"','"+ data['lat'] +"');"; html = html.replace(/__onclickmove__/g, onclickMove); listHtml += html; } listHtml = templateList.replace(/__listRoadStation__/g, listHtml); } while(false) itsmo.sub.map_tab_sethtml(listHtml); }; itsmo.map.roadStation.createBalloons = function (result) { if (typeof (result) == 'undefined' || result == null || typeof result.list == 'undefined') { return; } var dataSearch = result.list; itsmo.map.roadStation.balloons = []; var template = $("#road-station-small-balloon-template").html(); for (var i = 0; i < dataSearch.length; i++) { var html = template.replace(/__openLarge__/g, "itsmo.map.roadStation.openLargeBalloon('" + i + "');"); var latLon = new ZDC.LatLon(ZDC.msTodeg(dataSearch[i]['lat']), ZDC.msTodeg(dataSearch[i]['lon'])); var data = { html: html, latLon: latLon, zIndex: itsmo.map.D_TIPZIDX_RANGE, offset: new ZDC.Pixel(-12, -34) }; itsmo.map.roadStation.balloons.push(itsmo.map.roadStation.createBalloon(data)); } }; itsmo.map.roadStation.openLargeBalloon = function (indexData) { itsmo.map.roadStation.clearLargeBalloon(true); var data = itsmo.map.roadStation.searchData.list[indexData]; var html = $("#road-station-large-balloon-template").html(); html = html.replace(/__name__/g, data['nm']); html = html.replace(/__detail__/g, data['detail_url']); html = html.replace(/__zipCode__/g, data['zipCode']); html = html.replace(/__addr__/g, data['addr']); // 2017/04/12 Phuoc Le - #8434 Add dataLayer var jsRouteStart = "itsmo.map.roadStation.clearLargeBalloon(true); itsmo.myroute.hereStart('" + data['nm'] + "', {lat:" + data['lat'] + ", lon:" + data['lon'] + "} ); dataLayer.push(['_trackEvent', 'Maps', 'RouteSearch', 'RouteSearch_Start_吹き出し']);"; html = html.replace(/__jsRouteStart__/g, jsRouteStart); var jsRouteEnd = "itsmo.map.roadStation.clearLargeBalloon(true); itsmo.myroute.hereGo('" + data['nm'] + "', {lat:" + data['lat'] + ", lon:" + data['lon'] + "} ); dataLayer.push(['_trackEvent', 'Maps', 'RouteSearch', 'RouteSearch_Goal_吹き出し']);"; html = html.replace(/__jsRouteEnd__/g, jsRouteEnd); var jsRouteStep = "itsmo.map.roadStation.clearLargeBalloon(true); itsmo.myroute.hereByway('" + data['nm'] + "', {lat:" + data['lat'] + ", lon:" + data['lon'] + "} ); dataLayer.push(['_trackEvent', 'Maps', 'RouteSearch', 'RouteSearch_StopOver_吹き出し']);"; html = html.replace(/__jsRouteStep__/g, jsRouteStep); var jsShare = "itsmo.map.Sharing.getInstance().show(" + data['lat'] + ", " + data['lon'] + ", '" + data['nm'] + "', '" + data['addr'] + "');"; html = html.replace(/__jsShare__/g, jsShare); var jsMySpot = "itsmo.myspot.other_addmyspot(" + data['lat'] + "," + data['lon'] + ",'" + data['nm'] + "','" + data['kn'] + "','" + data['addr'] + "','" + data['telno1'] + "','" + data['id'] + "','" + data['gnr_cd'] + "','" + data['ckbn'] + "','','" + data['detail_url'] + "');"; html = html.replace(/__jsAddMySpot__/g, jsMySpot); html = html.replace(/__jsHome__/g, "itsmo.mypage.mypage('home_add', { lat: " + data['lat'] + ", lon: " + data['lon'] + " } )\ ;itsmo.map.roadStation.closeBalloon(" + indexData + ");itsmo.map.roadStation.clearLargeBalloon();"); html = html.replace(/__closeLarge__/g, 'itsmo.map.roadStation.clearLargeBalloon(true);'); var dataBalloon = { html: html, latLon: {lat: ZDC.msTodeg(data['lat']), lon: ZDC.msTodeg(data['lon'])}, zIndex: itsmo.map.D_TIPZIDX_RANGE + 3, index: indexData }; itsmo.map.roadStation.largeBalloon = itsmo.map.roadStation.createBalloon(dataBalloon, false); itsmo.map.roadStation.balloons[indexData].close(); }; itsmo.map.roadStation.closeBalloon = function (index) { itsmo.map.roadStation.balloons[index].close(); } itsmo.map.roadStation.createBalloon = function (data) { var size = itsmo.sub.getHtmlSize(data.html); var offset = new ZDC.Pixel(-(size.width / 2 - 14), -(size.height)); if (typeof (data.offset) != 'undefined') { offset = data.offset; } var widget = new ZDC.UserWidget(data.latLon, { html: data.html, size: itsmo.sub.getHtmlSize(data.html), offset: offset }); itsmo.vars.g_map_obj.addWidget(widget); if (typeof (data.index) != 'undefined') { widget._indexBalloon = data.index; } if (typeof (data.zIndex) != 'undefined') { widget.setZindex(data.zIndex); } widget.open(); return widget; }; itsmo.map.roadStation.clearBalloons = function () { if (itsmo.map.roadStation.balloons != null) { for (var i = 0; i < itsmo.map.roadStation.balloons.length; i++) { itsmo.map.roadStation.balloons[i].close(); itsmo.vars.g_map_obj.removeWidget(itsmo.map.roadStation.balloons[i]); } } itsmo.map.roadStation.balloons = null; }; itsmo.map.roadStation.clearLargeBalloon = function (reOpen) { if (itsmo.map.roadStation.largeBalloon != null) { if (reOpen && itsmo.map.roadStation.balloons != null && itsmo.map.roadStation.balloons[itsmo.map.roadStation.largeBalloon._indexBalloon]) { itsmo.map.roadStation.balloons[itsmo.map.roadStation.largeBalloon._indexBalloon].open(); } itsmo.map.roadStation.largeBalloon.close(); itsmo.vars.g_map_obj.removeWidget(itsmo.map.roadStation.largeBalloon); } itsmo.map.roadStation.largeBalloon = null; }; itsmo.map.roadStation.isExistPoint = function () { if (itsmo.map.roadStation.balloons != null && itsmo.map.roadStation.balloons.length > 0) { return true; } }; itsmo.map.roadStation.clearResult = function () { itsmo.map.roadStation.clearLargeBalloon(); itsmo.map.roadStation.clearBalloons(); itsmo.map.roadStation.searchData = null; }; /***Facillity***/ itsmo.facilityNight = {}; itsmo.facilityNight.vars = {}; itsmo.facilityNight.vars.urlSearchFac = " /lasup/ajaxSearchAround.php?lat=[lat]&lon=[lon]&facnum=[facnums]&isMap=1&limit=[limit]&pos=[pos]"; itsmo.facilityNight.vars.facnumTypeList = {}; itsmo.facilityNight.vars.facilityBalloons = []; itsmo.facilityNight.iconPrefix = 'lasup-ico-facnum-'; itsmo.facilityNight.vars.currentFacLatLon = null; itsmo.facilityNight.vars.currentPos = 1; itsmo.facilityNight.vars.topHash = '#facnum,1,2,3,4,5'; itsmo.facilityNight.vars.noResearch = false; window.onload = function () { if (typeof (itsmo.facilityNight.vars.karaoke) != "undefined" && typeof (itsmo.facilityNight.vars.manga) != "undefined" && typeof (itsmo.facilityNight.vars.sauna) != "undefined" && typeof (itsmo.facilityNight.vars.drink) != "undefined" && typeof (itsmo.facilityNight.vars.restaurant) != "undefined") { if (!itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.karaoke]) { itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.karaoke] = false; } if (!itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.manga]) { itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.manga] = false; } if (!itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.sauna]) { itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.sauna] = false; } if (!itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.drink]) { itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.drink] = false; } if (!itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.restaurant]) { itsmo.facilityNight.vars.facnumTypeList[itsmo.facilityNight.vars.restaurant] = false; } } }; itsmo.facilityNight.initFacility = function () { var hash = window.location.hash; var facnum = hash.split(','); if((facnum[0] == '#facnum')){ facnum.shift(); } else { facnum = facilityNumber; } if (!facnum) { return; } //reset facnumTypeList itsmo.facilityNight.vars.facnumTypeList = {}; for (var i = 0; i < facnum.length; i++) { itsmo.facilityNight.vars.facnumTypeList[facnum[i]] = true; } }; itsmo.facilityNight.changeTypes = function(el){ var id = $(el).attr('id'); id = (id.split('-'))[1]; if(el.checked == true){ itsmo.facilityNight.vars.facnumTypeList[id] = true; itsmo.facilityNight.vars.noResearch = true; } else { itsmo.facilityNight.vars.facnumTypeList[id] = false; itsmo.facilityNight.vars.noResearch = false; //Not initFacility when any option genre is selecting for (var i in itsmo.facilityNight.vars.facnumTypeList) { if (itsmo.facilityNight.vars.facnumTypeList[i] == true) { itsmo.facilityNight.vars.noResearch = true; break; } } } itsmo.facilityNight.getFacilities(itsmo.facilityNight.vars.currentFacLatLon, itsmo.facilityNight.vars.currentPos); }; itsmo.facilityNight.getFacilities = function (latlon, pos) { itsmo.facilityNight.vars.facData = []; itsmo.lasup.closeDetailBalloon(); itsmo.sub.map_clickable_TipAllClear(); if (typeof pos == 'undefined' || pos == null) { pos = '1'; } itsmo.facilityNight.vars.currentPos = pos; var isMedium = false; if (itsmo.vars.g_config.mapinfo_minimize == 0) { var isMedium = true; } var facnums = ''; for (var i in itsmo.facilityNight.vars.facnumTypeList) { if (itsmo.facilityNight.vars.facnumTypeList[i] == true) { facnums += i + ','; } } if (facnums.length > 0) { itsmo.lib.map_waitopen(); facnums = facnums.substr(0, facnums.length - 1); if (!latlon) { latlon = itsmo.vars.g_map_obj.getLatLon(); } itsmo.facilityNight.vars.currentFacLatLon = latlon; var url = itsmo.facilityNight.vars.urlSearchFac; url = url.replace(/\[lat\]/g, ZDC.degToms(latlon.lat)); url = url.replace(/\[lon\]/g, ZDC.degToms(latlon.lon)); url = url.replace(/\[facnums\]/g, facnums); url = url.replace(/\[limit\]/g, itsmo.vars.g_range_cnt); url = url.replace(/\[pos\]/g, pos); itsmo.lib.XMLHttpRequest2_send(url, function (data) { itsmo.lib.map_waitclose(); if (data['list'] != null && data['list'].length > 0) { itsmo.facilityNight.vars.facData = data['list']; itsmo.facilityNight.createFacilityBalloons(itsmo.facilityNight.vars.facData, isMedium); itsmo.facilityNight.createListFacility(data, pos); } else { itsmo.facilityNight.showFacilityMessage(); } }, 'GET', '', 'json', function(){itsmo.lib.map_waitclose();}); } else { var hash = window.location.hash; if (hash.indexOf("#facnum") == 0) { itsmo.sub.map_tab_change('top'); } } }; itsmo.facilityNight.createListFacility = function (data, pos) { var wrapperTpl = $("#lasup-fac-list-wrapper").html(); var itemTpl = $("#lasup-fac-list-item").html(); var htmlList = ''; var list = data['list']; for (var i = 0; i < list.length; i++) { var itemHtml = ''; itemHtml = itemTpl.replace(/__iconClass__/g, itsmo.facilityNight.iconPrefix + list[i].typeIcon); itemHtml = itemHtml.replace(/__index__/g, i); itemHtml = itemHtml.replace(/__lat__/g, list[i]['lat']); itemHtml = itemHtml.replace(/__lon__/g, list[i]['lon']); itemHtml = itemHtml.replace(/__name__/g, list[i]['name']); itemHtml = itemHtml.replace(/__typeName__/g, list[i]['typeName']); itemHtml = itemHtml.replace(/__detailLink__/g, list[i]['detailUrl']); htmlList += itemHtml; } htmlList = wrapperTpl.replace(/__listFacility__/g, htmlList); htmlList = htmlList.replace(/__activeClass__/g, 'check-list-ac'); htmlList = htmlList.replace(/__hitCount__/g, data['hitCount']); htmlList = htmlList.replace(/__start__/g, pos); htmlList = htmlList.replace(/__end__/g, parseInt(pos) - 1 + list.length); var pagging = itsmo.map.setPaging(data['hitCount'], (pos - 1) / itsmo.vars.g_range_cnt + 1, 'itsmo.facilityNight.otherFacPage', itsmo.vars.g_range_cnt); htmlList = htmlList.replace(/__pagging__/g, pagging); itsmo.sub.map_tab_sethtml(htmlList); var facnumHash = ['facnum']; for (var i in itsmo.facilityNight.vars.facnumTypeList) { if(itsmo.facilityNight.vars.facnumTypeList[i] == true){ $('#lasup-checkbox-area.check-list-ac #checkbox-' + i).attr('checked', 'checked'); facnumHash.push(i); } else { $('#lasup-checkbox-area.check-list-ac #checkbox-' + i).removeAttr('checked'); } } itsmo.sub.map_tab_change('facnum',facnumHash); }; itsmo.facilityNight.showFacilityMessage = function(){ var wrapperTpl = $("#lasup-fac-list-wrapper").html(); var htmlList = wrapperTpl.replace(/__listFacility__/g, ''); htmlList = htmlList.replace(/__activeClass__/g, 'check-list-ac'); htmlList = htmlList.replace(/__hitCount__/g, 0); htmlList = htmlList.replace(/__start__/g, 0); htmlList = htmlList.replace(/__end__/g, 0); htmlList = htmlList.replace(/__pagging__/g, ''); itsmo.sub.map_tab_sethtml(htmlList); var facnumHash = ['facnum']; for (var i in itsmo.facilityNight.vars.facnumTypeList) { if (itsmo.facilityNight.vars.facnumTypeList[i] == true) { $('#lasup-checkbox-area.check-list-ac #checkbox-' + i).attr('checked', 'checked'); facnumHash.push(i); } else { $('#lasup-checkbox-area.check-list-ac #checkbox-' + i).removeAttr('checked'); } } itsmo.sub.map_tab_change('facnum', facnumHash); itsmo.facilityNight.showFacilityPopup(); }; itsmo.facilityNight.otherFacPage = function(page){ var pos = (page - 1) * itsmo.vars.g_range_cnt + 1; itsmo.facilityNight.getFacilities(itsmo.facilityNight.vars.currentFacLatLon, pos); }; itsmo.facilityNight.createFacilityBalloons = function (data, isMedium) { if (data == null) { return; } var template = $('#lasup-small-fac-tpl').html(); if (true == isMedium) { template = $('#lasup-medium-fac-tpl').html(); } for (var i = 0; i < data.length; i++) { var html = template.replace(/__iconClass__/g, itsmo.facilityNight.iconPrefix + data[i].typeIcon); html = html.replace(/__name__/g, data[i].name); html = html.replace(/__onclick__/g, "itsmo.facilityNight.openFacilityLargeBalloon('" + i + "')"); if (true == isMedium) { if (data[i].womenFlag == 1) { html = html.replace(/__womenIcon__/g, ''); } else { html = html.replace(/__womenIcon__/g, ""); } } var latlon = itsmo.lib.toLatLon(data[i].lat, data[i].lon); var dataBalloon = { html: html, latLon: {lat: latlon.lat, lon: latlon.lon}, zIndex: itsmo.map.D_TIPZIDX_RANGE }; itsmo.facilityNight.vars.facilityBalloons.push(itsmo.facilityNight.drawFacilityBalloon(dataBalloon)); } }; itsmo.facilityNight.drawFacilityBalloon = function (data) { var size = itsmo.sub.getHtmlSize(data.html); var widget = new ZDC.UserWidget(data.latLon, { html: data.html, size: size, offset: new ZDC.Pixel(0, 0) }); itsmo.vars.g_map_obj.addWidget(widget); if (typeof (data.index) != 'undefined') { widget._indexBalloon = data.index; } if (typeof (data.zIndex) != 'undefined') { widget.setZindex(data.zIndex); } widget.open(); itsmo.facilityNight.addMouseEventWidget(widget, data.zIndex) return widget; }; itsmo.facilityNight.clearFacilityBalloons = function () { if (itsmo.facilityNight.vars.facilityBalloons != null) { for (var i = 0; i < itsmo.facilityNight.vars.facilityBalloons.length; i++) { itsmo.facilityNight.vars.facilityBalloons[i].close(); itsmo.vars.g_map_obj.removeWidget(itsmo.facilityNight.vars.facilityBalloons[i]); } } itsmo.facilityNight.vars.facilityBalloons = []; }; itsmo.facilityNight.minimizeBalloons = function () { itsmo.facilityNight.clearFacilityLargeBalloon(); itsmo.facilityNight.clearFacilityBalloons(); if (itsmo.facilityNight.vars.facData != null && itsmo.facilityNight.vars.facData.length > 0) { itsmo.facilityNight.createFacilityBalloons(itsmo.facilityNight.vars.facData, false); } }; itsmo.facilityNight.maximizeBalloons = function () { itsmo.facilityNight.clearFacilityLargeBalloon(); itsmo.facilityNight.clearFacilityBalloons(); if (itsmo.facilityNight.vars.facData != null && itsmo.facilityNight.vars.facData.length > 0) { itsmo.facilityNight.createFacilityBalloons(itsmo.facilityNight.vars.facData, true); } }; itsmo.facilityNight.openFacilityLargeBalloon = function (indexData) { itsmo.facilityNight.clearFacilityLargeBalloon(true); var data = itsmo.facilityNight.vars.facData[indexData]; var latlon = itsmo.lib.toLatLon(data.lat, data.lon); var html = $('#lasup-large-fac-tpl').html(); ; html = html.replace(/__iconClass__/g, itsmo.facilityNight.iconPrefix + data.typeIcon); html = html.replace(/__name__/g, data['name']); html = html.replace(/__detailLink__/g, data['detailUrl']); html = html.replace(/__distance__/g, data['distance']); html = html.replace(/__lat__/g, data['lat']); html = html.replace(/__lon__/g, data['lon']); html = html.replace(/__addr__/g, data['addr']); if (parseInt(data['womenFlag']) == 1) { html = html.replace(/__womenIcon__/g, ''); if (parseInt(data.typeIcon) == 2 || parseInt(data.typeIcon) == 3) { if (parseInt(data.typeIcon) == 2) { html = html.replace(/__womenText__/g, '
    女性専用エリア/シートあり'); } else { html = html.replace(/__womenText__/g, '
    女性専用エリアあり'); } } else { html = html.replace(/__womenText__/g, ""); } } else { html = html.replace(/__womenText__/g, ""); html = html.replace(/__womenIcon__/g, ""); } var dataBalloon = { html: html, latLon: {lat: latlon.lat, lon: latlon.lon}, index: indexData, zIndex: itsmo.map.D_TIPZIDX_RANGE + 3 }; itsmo.facilityNight.vars.facLargeBalloon = itsmo.facilityNight.drawFacilityBalloon(dataBalloon); itsmo.facilityNight.vars.facilityBalloons[indexData].close(); }; itsmo.facilityNight.clearFacilityLargeBalloon = function (reOpen) { if (itsmo.facilityNight.vars.facLargeBalloon != null) { if (reOpen && itsmo.facilityNight.vars.facilityBalloons != null && itsmo.facilityNight.vars.facilityBalloons[itsmo.facilityNight.vars.facLargeBalloon._indexBalloon]) { itsmo.facilityNight.vars.facilityBalloons[itsmo.facilityNight.vars.facLargeBalloon._indexBalloon].open(); } itsmo.facilityNight.vars.facLargeBalloon.close(); itsmo.vars.g_map_obj.removeWidget(itsmo.facilityNight.vars.facLargeBalloon); itsmo.facilityNight.vars.facLargeBalloon = null; } }; itsmo.facilityNight.timmerMouseEventWidget = null; itsmo.facilityNight.addMouseEventWidget = function (userWidget, zIndex) { ZDC.addListener(userWidget, ZDC.USERWIDGET_MOUSEOVER, function () { clearTimeout(itsmo.facilityNight.timmerMouseEventWidget); itsmo.facilityNight.timmerMouseEventWidget = setTimeout(function () { userWidget.setZindex(itsmo.map.D_TIPZIDX_MAX); }, 200); }); if (typeof zIndex == 'undefined') { zIndex = itsmo.map.D_TIPZIDX_RANGE; } ZDC.addListener(userWidget, ZDC.USERWIDGET_MOUSEOUT, function () { clearTimeout(itsmo.facilityNight.timmerMouseEventWidget); userWidget.setZindex(zIndex); }); }; itsmo.facilityNight.searchFacilities = function(){ var hash = ''; var facnums = ''; for (var i in itsmo.facilityNight.vars.facnumTypeList) { if (itsmo.facilityNight.vars.facnumTypeList[i] == true) { facnums += i + ','; } } if (facnums.length > 0){ facnums = facnums.substr(0, facnums.length - 1); hash = '#facnum,' + facnums; } else { hash = itsmo.facilityNight.vars.topHash; } window.location.hash = hash; itsmo.facilityNight.initFacility(); itsmo.facilityNight.getFacilities(); }; itsmo.facilityNight.showFacilityPopup = function(){ itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowopen('no-facility-popup'); }; itsmo.facilityNight.hideFacilityPopup = function(){ itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose('no-facility-popup'); }; itsmo.facilityNight.clearAllBalloons = function(){ itsmo.facilityNight.vars.facData = []; itsmo.facilityNight.clearFacilityBalloons(); itsmo.facilityNight.clearFacilityLargeBalloon(); }; var d_corp = ''; // グローバル変数 -------------------------------- itsmo.vars.g_map_obj = null;//地図オブジェクト itsmo.vars.g_map_aid = 0;//ログイン情報 itsmo.vars.g_map_sid = 0; itsmo.vars.g_map_cid = 0; itsmo.vars.g_map_corp = null; // 検索系。緯度経度はすべてミリ秒。 itsmo.vars.g_map_search_location = null;//検索時の位置(getLatLon) itsmo.vars.g_map_search_scale = null;//検索時の縮尺(getZoom) itsmo.vars.g_map_search_box = null;//検索時の範囲(getMapBoundBox) itsmo.vars.g_map_search_location_old = null;//前回検索時の位置(getMapLocation) itsmo.vars.g_map_search_scale_old = null;//前回検索時の縮尺(getMapScale) itsmo.vars.g_map_search_box_old = null;//前回検索時の範囲(getMapBoundBox) itsmo.vars.g_map_address = "";//現在地の住所 itsmo.vars.g_map_is_town = false; itsmo.vars.isFullScreen = false; // check FullScreen; // レイヤー itsmo.vars.g_map_layer_clickable = null; itsmo.vars.g_map_layer_route = null; itsmo.vars.g_map_layer_vics = null; itsmo.vars.g_map_layer_vicsid = null; // 上下関係 itsmo.map.d_map_zIdx_route = 10002;//ルート itsmo.map.d_map_zIdx_routetip = 10003;//ルートチップ itsmo.map.d_map_zIdx_myspot = 10002;//登録地点 itsmo.map.D_LYRZIDX_NEAR = 10003;//通常小吹き出し itsmo.map.D_TIPZIDX_RANGE = 10003;//料金系の小吹き出し itsmo.map.D_TIPZIDX_MAPLINK = 10004;//ここアイコン itsmo.map.D_TIPZIDX_HOME = 10005;//自宅アイコン itsmo.map.D_TIPZIDX_MAX = 10006;//マウスオーバー吹き出し itsmo.map.D_ZINDEX_LAYER = 10003; // サイズ itsmo.vars.g_windowHeight = 0; itsmo.vars.g_windowWidth = 0; itsmo.vars.PAGE_WIDTH_MIN = 950; itsmo.vars.PAGE_HEIGHT_MIN = 540; itsmo.vars.PAGE_HEADER_HEIGHT = 76; itsmo.vars.PAGE_NARROW_HEIGHT = 0; itsmo.vars.MAP_HEADER_HEIGHT = 40; itsmo.vars.MAP_FOOTER_HEIGHT = 60; // その他 itsmo.vars.g_map_draged = 0; itsmo.vars.g_map_ctlcur = null; itsmo.vars.g_map_ctlzoom = null; itsmo.vars.g_map_click_cancel = null; itsmo.vars.g_mouseDownEvent = null; itsmo.vars.g_mouseDragb = null; itsmo.vars.g_dist = 0; itsmo.vars.g_byway = 0; itsmo.vars.g_ad_init_func = []; // 広告初期化関数群 itsmo.vars.addon = {}; itsmo.vars.addon.onClickFreeword = []; itsmo.vars.addon.onload_end = []; itsmo.vars.g_userMsgInfo = null; itsmo.vars.g_cursor_normal = 'auto'; itsmo.vars.g_cursor_drag = 'move'; itsmo.vars.g_msginfo = null; itsmo.vars.premiumMap = null; itsmo.vars.mapUserControl = null; itsmo.vars.mapUserControlConfig = null; itsmo.vars.isCancelGPS = false; //------------------------------------------------ // ログイン //------------------------------------------------ itsmo.map.map_login = function(corp,aid,cid,sid) { itsmo.vars.g_map_corp = corp; itsmo.vars.g_map_aid = aid; itsmo.vars.g_map_cid = cid; itsmo.vars.g_map_sid = sid; }; itsmo.map.MAP_TYPE = { 'NORMAL' : '', 'TOWN' : '?town=1', 'TOURIST': 'tourist', 'TRANSIT': 'transit', 'LANDMARK': 'landmark', 'LASTTRAIN': 'lasttrain', 'LASUP': 'lasup', 'SPRING': 'spring' } //------------------------------------------------ // 画面初期化 //------------------------------------------------ itsmo.map.map_onload = function(lat,lon,lvl) { var flgFullScreen = itsmo.lib.cookie_get('full_screen'); if(flgFullScreen){ itsmo.lib.map_windowopen('map_confirm_fullscreen_popup'); } // 画面要素取得 ------------------------------ if (lvl >= 18) { lvl = 18; } var latlon = itsmo.lib.toLatLon(lat, lon); var i = location.search; var isTownMap = false; if (i.length >= 1) { i = i.substring(1).split('&'); $.each(i, function(n, v) { if (v.indexOf('town') == 0) { isTownMap = true; return null; } }); } // jQuery ajax設定 jQuery.ajaxSetup({ timeout: 30000, cache: false }); $.getScript('/js/jquery.ba-bbq.min.js', function() { $(window).bind('hashchange', itsmo.sub.onHashChange); }); ZDC._TILE_SERVERS = TILE_MAP; // メイン画面 ZDC._TILE_PATHS["4"] = ZDC._TILE_PATHS["24"]; var mapType = isTownMap ? ZDC.MAPTYPE_TOWNWALK : ZDC.MAPTYPE_COLOR /* Remove tourist layer from spring map if(mapAction == 'spring'){ ZDC._TILE_PATHS["4"] = ZDC._TILE_PATHS["ond/42"]; } */ if(mapAction == 'koyo' || mapAction == itsmo.map.MAP_TYPE.SPRING){ ZDC._TILE_PATHS["4"] = ZDC._TILE_PATHS["ond/42"]; } if(typeof(itsmo.map.PremiumMap) != 'undefined'){ itsmo.map.PremiumMap.initTilePath(mapAction); } // remove map lasup // if(mapAction == itsmo.map.MAP_TYPE.LASUP){ // ZDC._TILE_PATHS["4"] = ZDC._TILE_PATHS["ond/40"]; // if (!(document.referrer.match('/map/'))){ // lvl = 9; // if (facilityNumber != null){ // lvl = 16; // } // } // } // 地図初期化 -------------------------------- itsmo.vars.g_map_obj = new ZDC.Map( $('#ajax_map').get(0), { mapType: mapType, latlon: latlon, zoomCenter: true, zoomRange: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], zoom: lvl - 1 } ); itsmo.vars.g_map_is_town = isTownMap; itsmo.vars.g_map_obj.dragOn(); itsmo.vars.g_map_obj.zoomOn(); //itsmo.vars.g_map_obj.setMapType(10); // 街歩き地図 itsmo.map.setMouseCursor('hand'); //itsmo.vars.g_map_obj.CenterFirst = true; itsmo.vars.g_map_center_icon = new ZDC.MapCenter(); // 中心のクロスを描画しないよう変更 // changed by konishi 2013/08/29 //itsmo.vars.g_map_obj.addWidget(itsmo.vars.g_map_center_icon); //中心アイコン itsmo.vars.g_map_obj.addWidget(new ZDC.ScaleBar()); // ズームコントロール ------------------------ var mapControlImage = '/design/cssimg/map-ctr.png'; itsmo.vars.mapUserControlConfig = { bar: { src: mapControlImage, pos:{top : 172,left: 32}, imgTL:{top: 480,left: 71}, imgSize:{width:10,height:106} }, plus: { src: mapControlImage, pos:{top : 152,left: 28}, imgTL:{top: 513,left: 1}, imgSize:{width:18,height:18} }, minus: { src: mapControlImage, pos:{top : 280,left: 28}, imgTL:{top: 535,left: 1}, imgSize:{width:18,height:18} }, btn: { src: mapControlImage, pos:{top : 0,left: -4}, imgTL:{top: 557,left: 1}, imgSize:{width:18,height:10} }, bar_hvr: { src: mapControlImage, pos:{top : 172,left: 32}, imgTL:{top: 480,left: 71}, imgSize:{width:10,height:106} }, plus_hvr: { src: mapControlImage, pos:{top : 152,left: 28}, imgTL:{top: 513,left: 21}, imgSize:{width:18,height:18} }, minus_hvr: { src: mapControlImage, pos:{top : 280,left: 28}, imgTL:{top: 535,left: 21}, imgSize:{width:18,height:18} }, btn_hvr: { src: mapControlImage, pos:{top : 0,left: -4}, imgTL:{top: 557,left: 21}, imgSize:{width:18,height:10} } } itsmo.vars.mapUserControl = new ZDC.UserControl(itsmo.vars.mapUserControlConfig,{start:-3,interval:6,close:false}); itsmo.vars.g_map_obj.addWidget(itsmo.vars.mapUserControl); $('#ajax_mapbor #maptype-btn').click(function (event) { var isOn = ($(this).attr('class').indexOf('maptype-open') != -1); if (isOn) { $(this).removeClass('maptype-open'); $(this).addClass('maptype-close'); } else { $(this).removeClass('maptype-close'); $(this).addClass('maptype-open'); } $("#maptype-panel").toggle({duration:400}); }); // レイヤー作成 ------------------------------ // ルート用 itsmo.vars.g_map_layer_route = new itsmo.map.UserLayer(); itsmo.vars.g_map_layer_route.setZIndex(itsmo.map.D_LYRZIDX_NEAR - 1); // 周辺用 itsmo.vars.g_map_layer_clickable = new itsmo.map.UserLayer(); itsmo.vars.g_map_layer_clickable.setZIndex(itsmo.map.D_LYRZIDX_NEAR); // VICS用 itsmo.vars.g_map_layer_vics = new itsmo.map.UserLayer(); itsmo.vars.g_map_layer_vics.setZIndex(itsmo.map.d_map_zIdx_route - 1); // 渋滞統計表示 itsmo.vars.g_route_vics = new RouteVics(); // マウスダウン・アップイベント処理 $(document).bind('mousedown', itsmo.map.onMouseDown).bind('mouseup', itsmo.map.onMouseUp); // シングルクリックで移動させる処理 ---------- ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_DRAG_START, itsmo.map.map_dragmap); ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CLICK, itsmo.map.map_clickmap); // ------------------------------------------- itsmo.vars.d_url_login = $('#login_url').html(); itsmo.map.map_menu_open(); itsmo.map.map_search(); //itsmo.map.map_search_nozoom(); itsmo.sub.map_ad_areamatch(); itsmo.sub.map_ad_hotspot(); itsmo.mypage.mypage(); // 詳細設定 ---------------------------------- itsmo.vars.g_config = new itsmo.config.MapEasyConfig(); itsmo.vars.g_config.init(); // 画面初期化 -------------------------------- itsmo.map.eventCallbackSet(); itsmo.myroute.myroute_panel_change('close'); itsmo.map.map_onload_corp(); itsmo.range.init(); // ルート検索作業領域 $('body').append(itsmo.vars.g_myroute_work); // パネルのマウス移動対応。 $("#sc").bind('keyup', function(e) { if (27 == e.keyCode) { itsmo.lib.map_windowclose(); } }); // 広告初期化 $.each(itsmo.vars.g_ad_init_func, function() { this(); }); if(typeof(itsmo.map.PremiumMap) != 'undefined' && typeof(itsmo.map.PremiumMapBuilder) != 'undefined'){ var premiumMapBuilder = new itsmo.map.PremiumMapBuilder(mapAction); itsmo.vars.premiumMap = premiumMapBuilder.build(); if(itsmo.vars.premiumMap != null){ itsmo.vars.premiumMap.run(); } } itsmo.map.addFullScreenListener(); itsmo.map.createMarkerCenter(); }; itsmo.map.map_onload_end = function() { $.each(itsmo.vars.addon.onload_end, function(i, v) { v(); }); var isHashChange = true; if(mapAction == itsmo.map.MAP_TYPE.LASUP){ isHashChange = false; itsmo.lasup.initStationAreas(); if (startStation == 'false') { if (document.referrer.match('/map/')) { var latlon = itsmo.vars.g_map_obj.getLatLon(); itsmo.lasup.getStartStation(latlon); } else { itsmo.lasup.getStartStation(); } } else { itsmo.lasup.init(); var latlon = itsmo.lib.toLatLon(startStation.station_lat, startStation.station_lon); itsmo.vars.g_map_obj.moveLatLon(latlon); itsmo.lasup.initEndStations(); } itsmo.vars.g_map_tab_mode = 'facnum'; } var hasHash = window.location.hash.indexOf('#') >= 0; if (hasHash) { } else if(itsmo.vars.g_map_tab_mode == 'top') { if(mapAction != 'smp'){ itsmo.sub.map_tab_change('top'); }else{ itsmo.sub.map_tab_change(''); } // if(itsmo.vars.g_config.maprecommend != 0){ // itsmo.sub.map_osusume_search(1);//オススメ情報ツールチップ // } } //itsmo.sub.map_overture(); itsmo.sub.map_overture_by_scrollend(); ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_DRAG_END, itsmo.map.map_dragmapend); ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_SCROLL_END, itsmo.map.map_scrollmapend); ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CHG_LATLON, itsmo.map.map_scrollmapend); ZDC.addListener(itsmo.vars.g_map_obj, ZDC.MAP_CHG_ZOOM, itsmo.map.map_changezoomend); //地図上メニューバー // var flg = itsmo.lib.cookie_get('menu_bar_flg'); // if(flg == 'close'){ $('#map_other_close_link').click(); } // flg = $("#ajax_mapbor img[src*='blank.gif']").parent(); // if (flg.is('div')) { // flg.attr('title', '右クリックでピンポイント住所を表示'); // } if (window.location.hash.indexOf('#') >= 0) { if (isHashChange) { itsmo.sub.onHashChange(); } } $(".route-config-component").on("change", function(){ if(itsmo.myroute.route && itsmo.myroute.route.isDisplayRoute){ $(".config-buttons-wrap").show(); } }); }; itsmo.map.map_onload_corp = function() { // }; // 各イベント itsmo.map.map_dragmap = function() { itsmo.vars.g_map_draged++; itsmo.map.setCursorToMap(true); }; itsmo.map.map_clickmap = function() { // ドラッグ中、ルート設定中、クリックキャンセル中以外 if(itsmo.vars.g_map_draged < 2 && itsmo.vars.g_myroute_event.length <= 0 && !itsmo.vars.g_mouseDrag && !itsmo.vars.g_map_click_cancel) { if (null != itsmo.vars.g_config && itsmo.vars.g_config.isDblClickNoMove()) { //itsmo.vars.g_map_obj.moveLatLon(itsmo.vars.g_map_obj.getClickLatLon()); } else { // 中心へ移動 itsmo.vars.g_map_obj.moveLatLon(itsmo.vars.g_map_obj.getClickLatLon()); } } itsmo.vars.g_map_draged = 0; }; itsmo.map.map_dragmapend = function() { itsmo.map.setCursorToMap(false); itsmo.map.map_search_timer(false); if(mapAction == 'lasup'){ itsmo.lasup.initEndStations(); } }; itsmo.map.map_scrollmapend = function() { itsmo.map.map_search_timer(false); if(mapAction == 'lasup'){ itsmo.lasup.initEndStations(); } }; itsmo.map.map_changezoomend = function() { itsmo.vars.g_map_draged = 0; itsmo.myroute.map_vics_clear(); itsmo.map.map_search_timer(true); if(mapAction == 'lasup'){ itsmo.lasup.mapChangeZoom(); itsmo.lasup.initEndStations(); } }; // マウスダウン時の処理 itsmo.map.onMouseDown = function(event) { itsmo.vars.g_mouseDownEvent = event; /* // 右クリックパネルにマウスオーバーしていなければ非表示 if (!dcmpc.vars.rightClickPanelMouseOver) { dcmpc.hideRightClickPanel(); } // ルートタイプパネルにマウスオーバーしていなければ非表示 if (!dcmpc.vars.routeTypePanelMouseOver) { dcmpc.routepanel.hideRouteTypePanel(); } */ if (!itsmo.vars.g_myspot_edit_spot){ itsmo.map.setMouseCursor("hand"); } }; // マウスアップ時の処理 itsmo.map.onMouseUp = function(event) { if (itsmo.vars.g_mouseDownEvent) { itsmo.vars.dx = event.pageX - itsmo.vars.g_mouseDownEvent.pageX; itsmo.vars.dy = event.pageY - itsmo.vars.g_mouseDownEvent.pageY; if (itsmo.vars.dx > 5 || itsmo.vars.dx < -5 || itsmo.vars.dy > 5 || itsmo.vars.dy < -5) { itsmo.vars.g_mouseDrag = true; } else { itsmo.vars.g_mouseDrag = false; } } }; // 一定時間地図クリックイベントをキャンセルする itsmo.map.cancelMapClickEvent = function() { itsmo.vars.g_map_click_cancel = true; setTimeout(function() { itsmo.vars.g_map_click_cancel = null; }, 200); }; //------------------------------------------------ // リサイズ処理 //------------------------------------------------ itsmo.map.map_resize = function() { // スクロールバーが出たり消えたりするので一旦地図を消す $('#ajax_map').width(1).height(1); if (itsmo.vars.g_map_obj) { itsmo.vars.g_map_obj.refresh(); } if (itsmo.map.isOldIE()) { $('body').attr('scroll', 'auto'); } else { $('body').css('overflow', 'visible'); } // ウィンドウサイズ取得 var win_w = $(window).width(); var win_h = $(window).height(); if(win_w < 950) win_w = 950; if(win_h < 540) win_h = 540; var map_h = parseInt(win_h) - itsmo.vars.PAGE_HEADER_HEIGHT; if(itsmo.vars.isFullScreen === true){ map_h = parseInt(win_h); $('#wrap-map').css({'position':'fixed', zIndex: 80}); } else { $('#wrap-map').css({'position': 'static', zIndex: 'auto'}); } itsmo.vars.g_windowHeight = win_h; itsmo.vars.g_windowWidth = win_w; // デザイン変更 //$("#screen-wrap").height(win_h);下に余白がいっぱいできるのでとりあえずコメアウ2011/1/20 $("#wrap-map").height(map_h); if (itsmo.map.isOldIE()) { $('#wrap-map').attr('scroll', 'auto'); } else { $('#wrap-map').css('overflow', 'visible'); } // 地図サイズ変更 var map_w = $("#ajax_mapbor").width(); $('#ajax_map').width(map_w - 2).height(map_h - 2); itsmo.vars.g_map_obj.refresh(); if (itsmo.vars.premiumMap != null) { itsmo.vars.premiumMap.centerTimerBox(); } //overtureサイズ変更 var userAgent = window.navigator.userAgent.toLowerCase(); if (userAgent.indexOf("chrome") > -1) { $('#ajax_map_overture_header').css('width','100%'); $('#ajax_map_overture_header').fadeOut(1).fadeIn(1); }else{ var overture_w = $('#ajax_map_overture_header').width('100%'); } //var overture_h = $('#ajax_map_overture_header').height(); // 左側コンテンツのサイズ調整 itsmo.map.setLeftContentSize(); itsmo.map.createMarkerCenter(); }; // 左メニュー開閉 itsmo.map.map_menu_open = function() { itsmo.lib.document_on('m-left'); itsmo.lib.document_on('ajax_m-close'); itsmo.lib.document_off('ajax_m-open'); $('#content').css('padding', ''); itsmo.vars.g_map_bor_w = -1; itsmo.map.map_resize(); }; itsmo.map.map_menu_close = function() { itsmo.lib.document_off('m-left'); itsmo.lib.document_off('ajax_m-close'); itsmo.lib.document_on('ajax_m-open'); $('#content').css('padding', '0px 0px 0px 5px'); itsmo.vars.g_map_bor_w = -1; itsmo.map.map_resize(); }; /* * 左メニューのサイズ設定 */ itsmo.map.setLeftContentSize = function() { var win_h = itsmo.vars.g_windowHeight; var header_h = itsmo.vars.PAGE_HEADER_HEIGHT; // 絞込み枠サイズ取得 var narrow_h = 22; var left_footer_h = 22; if ($('#ajax_leftmenu_result div').hasClass('sibo-waku-2')) { // 不動産 //narrow_h = $('#ajax_leftmenu_result .sibo-waku-2').height(); narrow_h = 200; } else if($('#ajax_leftmenu_result div').hasClass('sibo-waku-4')) { // アルバイト //narrow_h = $('#ajax_leftmenu_result .sibo-waku-4').height(); narrow_h = 190; } else if($('#ajax_leftmenu_result div').hasClass('sibo-waku-3')) { // おすすめ //narrow_h = $('#ajax_leftmenu_result .sibo-waku-3').height(); narrow_h = 83; } else if($('#ajax_leftmenu_result div').hasClass('sibo-waku')) { // 施設検索 //narrow_h = $('#ajax_leftmenu_result .sibo-waku').height(); narrow_h = 135; } else if($('#ajax_leftmenu_result div').hasClass('hanabi-waku')) { // 花火 //narrow_h = $('#ajax_leftmenu_result .sibo-waku').height(); narrow_h = 135; } else if($('#ajax_leftmenu_result p').hasClass('sibo-waku-pan')) { // 地図最適化 narrow_h = $('#ajax_leftmenu_result .sibo-waku-pan').height(); if (narrow_h == 0) narrow_h = 44; if ($('#ajax_leftmenu_result .bNavArea').css('height')) { // 絞込一覧 narrow_h = parseInt(narrow_h) + parseInt($('#ajax_leftmenu_result #select_addrlist').css('height')); } } else if($("#ajax_leftmenu_result div").hasClass('bus-left-header')){ narrow_h = (itsmo.sub.getHtmlSize($('.bus-left-header').html())).height + 12; } if($("#ajax_leftmenu_result div#lasup-checkbox-area").length > 0){ narrow_h += 164; } // fotterサイズ取得 if ($('#ajax_leftmenu_result div').hasClass('map-left-kaipage')) { // fotter改ページ //left_footer_h += $('#ajax_leftmenu_result .map-left-kaipage').height(); left_footer_h += 45; }//else{ // left_footer_h = 22; // } // リサイズ設定 //var map_pan_h = 22;//.map-pan-list1 var ht = win_h - header_h - narrow_h - left_footer_h - itsmo.vars.MAP_HEADER_HEIGHT; // - map_pan_h ; $('#ajax_leftmenu_result .scrollable').height(ht).scrollTop(0); //$("#ajax_scrollable_4").height($("#wrap-map").height() - 102); //$("#ajax_scrollable_4").height((itsmo.vars.g_windowHeight - itsmo.vars.PAGE_HEADER_HEIGHT - 102)); $("#ajax_scrollable_4").height((itsmo.vars.g_windowHeight - itsmo.vars.PAGE_HEADER_HEIGHT - itsmo.vars.MAP_HEADER_HEIGHT)); $("#route_menu").height((itsmo.vars.g_windowHeight - itsmo.vars.PAGE_HEADER_HEIGHT - itsmo.vars.MAP_HEADER_HEIGHT)); }; //------------------------------------------------ // 自動検索の処理 //------------------------------------------------ // 検索メイン処理 itsmo.map.map_search = function() { if(itsmo.vars.g_range_cancel == 1){//左リストをクリックして中心点を変えた場合 itsmo.vars.g_range_cancel = 0; return false; } itsmo.vars.g_map_search_location = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); itsmo.vars.g_map_search_scale = itsmo.vars.g_map_obj.getZoom() + 1; itsmo.map.setSearchBox(); flg = 0; if(itsmo.vars.g_map_search_location_old != null) { //移動無しなら検索しない if(itsmo.vars.g_map_search_location.lat == itsmo.vars.g_map_search_location_old.lat && itsmo.vars.g_map_search_location.lon == itsmo.vars.g_map_search_location_old.lon && itsmo.vars.g_map_search_scale == itsmo.vars.g_map_search_scale_old) { flg = 1; } } // 検索条件設定 itsmo.vars.g_map_search_location_old = itsmo.vars.g_map_search_location; itsmo.vars.g_map_search_scale_old = itsmo.vars.g_map_search_scale; itsmo.vars.g_map_search_box_old = itsmo.vars.g_map_search_box; // 各検索処理呼び出し if(flg) return false; itsmo.map.map_search_corp(); // 周辺検索 if(itsmo.vars.g_map_tab_mode == 'range') { if(itsmo.vars.g_range_genre == 'suumo'){ itsmo.near_suumo.set_pange_and_search(1); } else if(itsmo.vars.g_range_genre == 'osusume') { // おすすめの再検索 itsmo.sub.map_osusume_search(null,itsmo.vars.osusume_word); } else if(itsmo.vars.g_range_genre == 'baitoru') { // アルバイトの再検索 itsmo.near_baitoru.search(); } else if(itsmo.vars.g_range_genre == 'tabikura') { // 旅くらの再検索 itsmo.tabikura.search(); } else if(itsmo.vars.g_range_genre == itsmo.near_season.mode){ // 季節特集の再検索 itsmo.near_season.cond_search(); } else if(itsmo.vars.g_range_genre == 'new_building'){ // 新規施設の再検索 itsmo.near_new_building.search(); } else { // それ以外の再検索 itsmo.range.range_research(); } } //フリーワード if(itsmo.vars.g_map_tab_mode == 'freeword') { if(itsmo.vars.g_freeword_mode == 'all' && itsmo.vars.g_freeword_flg != '1'){itsmo.freeword.freeword_submit_move();} } if(itsmo.vars.g_map_tab_mode == 'michinoeki'){ itsmo.map.roadStation.reSearchMapEvent(); } if(itsmo.vars.g_map_tab_mode == 'facnum'){ itsmo.facilityNight.getFacilities(); }; return true; }; itsmo.map.setSearchBox = function() { itsmo.vars.g_map_search_box = itsmo.vars.g_map_obj.getLatLonBox(); var flg = itsmo.lib.toMilliSec(itsmo.vars.g_map_search_box.getMin()); itsmo.vars.g_map_search_box.minx = flg.lon; itsmo.vars.g_map_search_box.miny = flg.lat; flg = itsmo.lib.toMilliSec(itsmo.vars.g_map_search_box.getMax()); itsmo.vars.g_map_search_box.maxx = flg.lon; itsmo.vars.g_map_search_box.maxy = flg.lat; }; // ズーム以外の場合にだけ呼ばれる。 itsmo.map.map_search_nozoom = function() { // 広告(エリアマッチ、hotspot) if(itsmo.vars.g_map_tab_mode == 'top') { //itsmo.sub.map_ad_areamatch(); itsmo.sub.map_ad_hotspot(); // if(itsmo.vars.g_config.maprecommend != 0){ // itsmo.sub.map_osusume_search(1);//オススメ情報ツールチップ // } } itsmo.sub.map_overture_by_scrollend(); }; // 検索サブ処理 itsmo.map.map_search_corp = function() { // }; // 検索ウェイト itsmo.vars.g_searchetimer = null; itsmo.vars.g_searchetimer_is_zoom = false; itsmo.map.map_search_timer = function(isZoom) { itsmo.vars.g_map_search_location = itsmo.lib.toMilliSec(itsmo.vars.g_map_obj.getLatLon()); itsmo.vars.g_map_search_scale = itsmo.vars.g_map_obj.getZoom() + 1; itsmo.map.setSearchBox(); // 現在地を保存 var i = itsmo.vars.g_map_search_location; itsmo.lib.cookie_set('cktg_pos', i.lat + "\t" + i.lon + "\t" + itsmo.vars.g_map_search_scale); itsmo.vars.g_searchetimer_is_zoom = isZoom; // 検索処理 if(itsmo.vars.g_searchetimer != null) { itsmo.lib.map_waitclose(); clearTimeout(itsmo.vars.g_searchetimer); } itsmo.vars.g_searchetimer = setTimeout(itsmo.map.map_search_timer_func, 2 * 1000); // //itsmo.sub.map_overture(); itsmo.map.map_search_timer_corp(); }; // 検索サブ処理 itsmo.map.map_search_timer_corp = function() { }; itsmo.map.map_search_timer_func = function() { itsmo.vars.g_searchetimer = null; itsmo.lib.map_waitclose(); if (itsmo.map.map_search()) { if (!itsmo.vars.g_searchetimer_is_zoom) { itsmo.map.map_search_nozoom(); } if(itsmo.vars.g_map_tab_mode == 'top') { itsmo.sub.map_ad_areamatch(); } } }; // 地図表示関連。 itsmo.vars.g_map_hyouji_hover_timer = null; itsmo.map.map_hyouji_hover = function(isShow) { var s = 'ajax-map-hyouji-hover'; if (isShow) { if (null != itsmo.vars.g_map_hyouji_hover_timer) { clearTimeout(itsmo.vars.g_map_hyouji_hover_timer); itsmo.vars.g_map_hyouji_hover_timer = null; } itsmo.lib.document_on(s); } else { if (null == itsmo.vars.g_map_hyouji_hover_timer) { itsmo.vars.g_map_hyouji_hover_timer = setTimeout(function() { itsmo.lib.document_off(s); itsmo.vars.g_map_hyouji_hover_timer = null; }, 0); } } }; //ツールチップの表示 itsmo.map.showMapTooltip = function () { //施設ツールチップ if(itsmo.vars.g_map_tipid_clickable_s){ jQuery.each(itsmo.vars.g_map_tipid_clickable_s, function(i,val) { itsmo.vars.g_map_layer_clickable.showById(val.tip_id); }); } //自宅ツールチップ if (itsmo.vars.g_home_tipid_c != null) { itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_home_tipid_c); } //ココツールチップ if (itsmo.vars.g_map_link_tipid_c != null) { itsmo.vars.g_map_layer_clickable.showById(itsmo.vars.g_map_link_tipid_c); } } //ツールチップの非表示 itsmo.map.hideMapTooltip = function () { //施設ツールチップ if(itsmo.vars.g_map_tipid_clickable_open != null){ itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_map_tipid_clickable_open); itsmo.vars.g_map_tipid_clickable_open = null; } if(itsmo.vars.g_map_tipid_clickable_s){ jQuery.each(itsmo.vars.g_map_tipid_clickable_s, function(i,val) { itsmo.vars.g_map_layer_clickable.hideById(val.tip_id); }); } //自宅ツールチップ if(itsmo.vars.g_home_tipid_o != null){ itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_home_tipid_o); itsmo.vars.g_home_tipid_o = null; } if(itsmo.vars.g_home_tipid_c != null){ itsmo.vars.g_map_layer_clickable.hideById(itsmo.vars.g_home_tipid_c); } //ココツールチップ if(itsmo.vars.g_map_link_tipid_o != null){ itsmo.vars.g_map_layer_clickable.removeById(itsmo.vars.g_map_link_tipid_o); itsmo.vars.g_map_link_tipid_o = null; } if(itsmo.vars.g_map_link_tipid_c != null){ itsmo.vars.g_map_layer_clickable.hideById(itsmo.vars.g_map_link_tipid_c); } } //ツールチップのマウスオーバー、マウスアウト時の処理 itsmo.map.addEventTooltip = function(tip, z_index) { ZDC.addListener(tip, ZDC.USERWIDGET_MOUSEOVER, function() { clearTimeout(itsmo.vars.pickupTooltipTimeout); itsmo.vars.currentTooltip = tip; itsmo.vars.pickupTooltipTimeout = setTimeout(function() { itsmo.vars.currentTooltip.setZindex(itsmo.map.D_TIPZIDX_MAX); }, 200); }); if(typeof z_index != 'undefined'){ ZDC.addListener(tip, ZDC.USERWIDGET_MOUSEOUT, function() { clearTimeout(itsmo.vars.pickupTooltipTimeout); tip.setZindex(z_index); }); } }; // ブラウザが旧IEかどうかを返す itsmo.map.isOldIE = function() { return $.support.msie && !$.support.style; }; //地図上その他ボタンの開け閉め //itsmo.map.clickOnMapBtn = function (event) //{ // itsmo.lib.cookie_set('menu_bar_flg','' + event.data.css); // $('#' + event.data.closeId).hide(); // $('#' + event.data.openId).show(); // $('#map-btn').attr('class','map-rt0-' + event.data.css); //}; //地図上パネルの開け閉め itsmo.map.onMapMenuEvent = function (event) { var id= event.data.id; if(event.data.act == 'open'){ $('#' + id).show().css('z-index','999'); }else{ $('#' + id).hide(); } }; // 地図タイプ変更 itsmo.map.setMapType = function(type) { if(itsmo.vars.isFullScreen){ itsmo.lib.cookie_set('full_screen','full'); } var url = location.protocol + '//' + location.host + '/map/'; var hash = window.location.hash; location.href = url + type + hash; }; /* 初期化時にまとめてバインド for public use */ itsmo.map.eventCallbackSet = function() { $(window).resize(itsmo.map.map_resize); //ヘッダータブ $('#ajax_menu-tp a').bind('click',itsmo.sub.map_genre); $('#ajax_menu-add a').bind('click',function(){itsmo.addrlist.showPage('top');}); $('#ajax_menu-my a').bind('click',function(){itsmo.mypage.mypage('top');}); $('#menu-route-search a').bind('click',function(){itsmo.myroute.routeTop('car');}); //その他ボタン // $('#map-other a').bind('click', {openId:'map-other-open',closeId:'map-other',css:'open'},itsmo.map.clickOnMapBtn); // $('#map_other_close_link').bind('click', {openId:'map-other',closeId:'map-other-open',css:'close'},itsmo.map.clickOnMapBtn); //送信ボタン //設定ボタン $('#map_config_link').bind('click',itsmo.config.configShowWindow); //渋滞統計 // $('#vics_menu_resize').bind('click',{id: 'vics_content,vics_traffic_time'},itsmo.myroute.onMapRoutePanelResize); }; itsmo.map.closeUserMsgWindow = function() { if (null == itsmo.vars.g_userMsgInfo) { return; } itsmo.vars.g_userMsgInfo.close(); itsmo.vars.g_userMsgInfo = null; }; itsmo.map.openUserMsgWindow = function(latlon, html, offset) { latlon = itsmo.lib.toLatLon(latlon); itsmo.map.closeUserMsgWindow(); var sz = itsmo.sub.getHtmlSize(html); if (null == itsmo.vars.g_userMsgInfo) { var param = { size: sz, html: html }; if (typeof offset === 'undefined') { param['offset'] = offset; } itsmo.vars.g_userMsgInfo = new ZDC.MsgInfo(latlon, param); itsmo.vars.g_map_obj.addWidget(itsmo.vars.g_userMsgInfo); } else { itsmo.vars.g_userMsgInfo.moveLatLon(latlon); itsmo.vars.g_userMsgInfo.setHtml(html, sz); } itsmo.vars.g_userMsgInfo.open(); }; itsmo.map.setMouseCursor = function(type, urlNormal, urlDrag) { switch (type) { case 'users': itsmo.vars.g_cursor_drag = itsmo.vars.g_cursor_normal = "url(" + urlNormal + "),pointer"; if (null != urlDrag && undefined != urlDrag) { itsmo.vars.g_cursor_drag = "url(" + urlDrag + "),pointer"; } break; case 'css': if (itsmo.vars.g_cursor_normal == urlNormal) { return; } itsmo.vars.g_cursor_drag = itsmo.vars.g_cursor_normal = urlNormal; if (null != urlDrag && undefined != urlDrag) { itsmo.vars.g_cursor_drag = urlDrag; } break; default: itsmo.vars.g_cursor_drag = 'move'; itsmo.vars.g_cursor_normal = 'auto'; break; }; itsmo.map.setCursorToMap(false); }; itsmo.map.setCursorToMap = function(isDrag) { var c = isDrag ? itsmo.vars.g_cursor_drag : itsmo.vars.g_cursor_normal; $('#ajax_map').css('cursor', c).find('div:first').css('cursor', c); }; itsmo.map.addFullScreenListener = function () { document.addEventListener("fullscreenchange", function () { if (document.fullscreen) { itsmo.map.fixMapFullScreen(); } else { itsmo.map.fixMapExitFullScreen(); } }, false); document.addEventListener("mozfullscreenchange", function () { if (document.mozFullScreen) { itsmo.map.fixMapFullScreen(); } else { itsmo.map.fixMapExitFullScreen(); } }, false); document.addEventListener("webkitfullscreenchange", function () { if (document.webkitIsFullScreen) { itsmo.map.fixMapFullScreen(); } else { itsmo.map.fixMapExitFullScreen(); } }, false); document.addEventListener("MSFullscreenChange", function () { if (document.msFullscreenElement) { itsmo.map.fixMapFullScreen(); } else { itsmo.map.fixMapExitFullScreen(); } }, false); } itsmo.map.fullScreen = function(){ var el = document.documentElement; if(el.requestFullscreen) { el.requestFullscreen(); } else if(el.mozRequestFullScreen) { el.mozRequestFullScreen(); } else if(el.webkitRequestFullScreen) { el.webkitRequestFullScreen(); } else if(el.msRequestFullscreen) { el.msRequestFullscreen(); } else { alert('ご利用のブラウザはフルスクリーン操作に対応していません'); return; } } itsmo.map.exitFullScreen = function (){ if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } } itsmo.map.fixMapFullScreen = function(){ itsmo.vars.isFullScreen = true; itsmo.map.fullScreenCancelPopup(); $(".map_header1").css('background-color','rgba(0,0,0,0)'); $("#full-screen-map-btn").attr('onClick','itsmo.map.exitFullScreen();'); $("#full-screen-map-btn").attr('title','全画面表示解除'); $(".map-header-right").css('zIndex','79'); $("#full-screen-map-btn").addClass('exit'); $("#ajax_mapbor").css({position:'fixed',width:'100%',height:'100%',zIndex:'80',top:0,left:0, bottom:0, right:0}); itsmo.map.map_resize(); }; itsmo.map.fixMapExitFullScreen = function () { //exitFullScreen itsmo.vars.isFullScreen = false; itsmo.map.fullScreenCancelPopup(); itsmo.lib.cookie_del('full_screen'); $(".map_header1").css('background-color', 'rgba(0,0,0,0.5)'); $("#full-screen-map-btn").attr('onClick', 'itsmo.map.fullScreen();'); $("#full-screen-map-btn").attr('title', '全画面表示'); $(".map-header-right").css('zIndex', '2000'); $("#full-screen-map-btn").removeClass('exit'); $("#ajax_mapbor").removeAttr('style'); itsmo.map.map_resize(); }; $(document).keyup(function(e) { // key code 27 = ESC | key code 122 = F11 if ((e.keyCode == 27 || e.keyCode == 122) && itsmo.vars.isFullScreen == true) { itsmo.map.exitFullScreen(); } }); itsmo.map.changeBalloonSize = function(){ if (0 != itsmo.vars.g_config.mapinfo_minimize) { itsmo.map.bus.maximizeBalloons(); itsmo.facilityNight.maximizeBalloons(); $('#config_mapinfo_minimize').val(0); $(".map_header1 #balloon-size #small-icon").addClass('off'); $(".map_header1 #balloon-size #large-icon").removeClass('off'); } else { itsmo.map.bus.minimizeBalloons(); itsmo.facilityNight.minimizeBalloons(); $('#config_mapinfo_minimize').val(1); $(".map_header1 #balloon-size #small-icon").removeClass('off'); $(".map_header1 #balloon-size #large-icon").addClass('off'); } itsmo.config.configSubmit(); }; itsmo.map.closeMapUserControl = function(){ itsmo.vars.g_map_obj.removeWidget(itsmo.vars.mapUserControl); itsmo.vars.mapUserControlConfig.minus.pos.top = 175; itsmo.vars.mapUserControlConfig.minus_hvr.pos.top = 175; itsmo.vars.mapUserControl = new ZDC.UserControl(itsmo.vars.mapUserControlConfig,{start:-3,interval:6,close:true}); itsmo.vars.g_map_obj.addWidget(itsmo.vars.mapUserControl); $("#ajax_mapbor #map-control-close-btn").attr('href', 'javascript:itsmo.map.openMapUserControl();'); $("#ajax_mapbor #map-control-close-btn").attr('title', '閉じる'); $("#ajax_mapbor #map-control-close-btn").addClass('open'); }; itsmo.map.openMapUserControl = function(){ itsmo.vars.g_map_obj.removeWidget(itsmo.vars.mapUserControl); itsmo.vars.mapUserControlConfig.minus.pos.top = 280; itsmo.vars.mapUserControlConfig.minus_hvr.pos.top = 280; itsmo.vars.mapUserControl = new ZDC.UserControl(itsmo.vars.mapUserControlConfig,{start:-3,interval:6,close:false}); itsmo.vars.g_map_obj.addWidget(itsmo.vars.mapUserControl); $("#ajax_mapbor #map-control-close-btn").attr('href', 'javascript:itsmo.map.closeMapUserControl();'); $("#ajax_mapbor #map-control-close-btn").attr('title', '開く'); $("#ajax_mapbor #map-control-close-btn").removeClass('open'); }; itsmo.map.displayNoPremiumPopup = function (type){ itsmo.vars.g_screen_non = 0; var popupTitle = ''; var heading = ''; var title = ''; var description = ''; var classCss = ''; var actionMapType = ''; switch(type){ case 'rain-map': popupTitle = '雨雲表示機能のご案内'; heading = '雨雲表示機能をご利用頂くには 「プレミアコース登録」 が必要です。'; title = '雨雲表示機能とは?'; description = '地図に雨雲を重ねて表示できるから、
    お天気が心配な日でもピンポイントで天気を予測可能!'; classCss= 'rain'; actionMapType = itsmo.map.MAP_TYPE.NORMAL; break; case itsmo.map.MAP_TYPE.TRANSIT: popupTitle = ''; heading = ''; title = ''; description =''; classCss = ''; break; case itsmo.map.MAP_TYPE.LASTTRAIN: popupTitle = ''; heading = ''; title = ''; description =''; classCss = ''; break; case itsmo.map.MAP_TYPE.LANDMARK: popupTitle = '目印地図のご案内'; heading = '目印地図をご利用頂くには 「プレミアコース登録」 が必要です。'; title = '目印地図とは?'; description ='目印が多くて分かりやすい!
    普段よく使うコンビニ情報やチェーン
    店情報を常に最新情報でご提供!'; classCss = 'landmark'; actionMapType = itsmo.map.MAP_TYPE.LANDMARK; break; case itsmo.map.MAP_TYPE.TOURIST: popupTitle = '観光地図のご案内'; heading = '観光地図をご利用頂くには 「プレミアコース登録」 が必要です。'; title = '観光地図とは?'; description ='観光スポットをアイコン化した楽しい地図!
    スポット情報も分かるからお出掛けが楽しくなります。'; classCss = 'tourist'; actionMapType = itsmo.map.MAP_TYPE.TOURIST; break; } $("#no-premium-popup div.komado-type02 > h3 > strong").text(popupTitle); $("#no-premium-popup div.content-box-popup .heading").text(heading); $("#no-premium-popup div.content-box-popup .map-overview .title-content").text(title); $("#no-premium-popup div.content-box-popup .map-overview .map-icon").attr('class','map-icon ' + classCss); $("#no-premium-popup div.content-box-popup .map-overview .title-content").attr('class','title-content ' + classCss); $("#no-premium-popup div.content-box-popup .map-overview .img-wrap").attr('class','img-wrap ' + classCss); $("#no-premium-popup div.content-box-popup .map-overview .description").html(description); $("#no-premium-popup #action-map-type").attr('value',actionMapType); itsmo.lib.map_windowopen('no-premium-popup'); }; itsmo.map.hideNoPremiumPopup = function (){ itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose('no-premium-popup'); }; itsmo.map.moveToGPS = function () { itsmo.lib.map_wait2open('位置情報取得中...', true); navigator.geolocation.getCurrentPosition( function (position) { var latlon = new ZDC.LatLon(position.coords.latitude, position.coords.longitude); latlon = ZDC.wgsTotky(latlon); itsmo.lib.map_wait2close(); if(itsmo.vars.isCancelGPS == true) { itsmo.vars.isCancelGPS = false; return; } itsmo.vars.g_map_obj.moveLatLon(latlon); } , function (err) { if(itsmo.vars.isCancelGPS == true) { itsmo.vars.isCancelGPS = false; return; } itsmo.lib.map_wait2open('位置情報を取得できませんでした。しばらくしてからもう一度お試しください。'); setTimeout(function () { itsmo.lib.map_wait2close(); }, 1500); } , {enableHighAccuracy: true, timeout: 10 * 1000, maximumAge: 20 * 1000} ); }; itsmo.map.cancelGPS = function(){ itsmo.vars.isCancelGPS = true; itsmo.lib.map_wait2close(); } itsmo.map.fullScreenCancelPopup = function(){ itsmo.lib.cookie_del('full_screen'); itsmo.lib.map_windowclose('map_confirm_fullscreen_popup'); return false; }; itsmo.map.setUrlLastBeforePayment = function(){ var url = location.protocol + '//' + location.host + '/map/'; var hash = window.location.hash; var typeMap = $("#no-premium-popup #action-map-type").val(); var urlLastBFPayment = url + typeMap + hash; itsmo.lib.cookie_set("back_url",urlLastBFPayment); }; itsmo.map.redirectSignupHighrose = function(url){ var useSSL = 'https:' == document.location.protocol; var hash = window.location.hash; var typeMap = $("#no-premium-popup #action-map-type").val(); itsmo.lib.cookie_set('cktg_lasturl', '//' + itsmo.vars.d_host_www + '/map/' + typeMap + hash); var retPath = 'http://' + itsmo.vars.d_host_www + '/highrose_redirect.php'; if (useSSL) { retPath = 'https://' + itsmo.vars.d_host_www + '/highrose_redirect.php'; } url += '?ret=' + encodeURIComponent(retPath); url += '?expire=0'; location.href = url; }; itsmo.map.markerCenter = null; itsmo.map.createMarkerCenter = function () { if (null != itsmo.vars.g_map_obj) { var latlon = itsmo.vars.g_map_obj.getLatLon(); var pos = itsmo.vars.g_map_obj.getMapSize(); var html = ''; var widgetlabel = { html: html, size: new ZDC.WH(10, 10), propagation: true }; if(itsmo.map.markerCenter != null){ itsmo.vars.g_map_obj.removeWidget(itsmo.map.markerCenter); } itsmo.map.markerCenter = new ZDC.StaticUserWidget({ left: (pos.width - 10) / 2, top: (pos.height - 10) / 2 }, widgetlabel); itsmo.vars.g_map_obj.addWidget(itsmo.map.markerCenter); itsmo.map.markerCenter.open(); } }; itsmo.map.setPaging = function (total,currentPage, callBackfunc, limit, pageCount) { if (typeof pageCount == 'undefined' || !pageCount){ pageCount = 6; } if(typeof limit == 'undefined' || !limit){ limit = itsmo.vars.g_range_cnt; } if(typeof callBackfunc == 'undefined' || typeof total == 'undefined'){ return null; } if(typeof currentPage == 'undefined' || !currentPage){ currentPage = 1; } var totalPage = Math.ceil(total/limit); var indexStart = currentPage - Math.floor(pageCount / 2); var indexEnd =''; var nextPage =''; var prevPage =''; if (indexStart < 1 ){ indexStart = 1; } if (totalPage < pageCount) { indexEnd = totalPage + 1; }else{ indexEnd = indexStart + pageCount; if(indexEnd > totalPage){ indexEnd = totalPage + 1; } } if ((indexEnd - indexStart) < pageCount) { while ((indexEnd - indexStart) < pageCount) { indexStart -= 1; } if (indexStart < 1) { indexStart = 1; } } if (totalPage > currentPage){ nextPage = currentPage + 1; } if (currentPage != 1){ prevPage = currentPage - 1; } var html = '
    '; if (prevPage == ''){ html += '前へ'; }else{ html += '前へ'; } for (var i=indexStart; i < indexEnd; i++){ if(i == currentPage){ html += '' + currentPage +''; }else{ html += '' + i + ''; } } if (nextPage == ''){ html += '次へ'; }else{ html += '次へ'; } html += '
    '; return html; };