if (typeof itsmo == 'undefined') { var itsmo = {}; } if (typeof itsmo.vars == 'undefined') { itsmo.vars = {}; } itsmo.c = function() {}; itsmo.c.STR_PLEASE_SELECT = '選択してください'; itsmo.c.init = function() { // 検索条件欄を取得。 var url = window.location.search; if ('' == url || undefined == url || null == url) { url = '?'; } else { url += '&'; } url += 'search_cond=1&_=' + Math.floor(Math.random() * 65536); url = window.location.pathname + url; $.get(url, function(data) { var e = $('div.content div.select-serch-area:first'); e.find("div[class^='c-search-load-']:first").hide(); e.prepend(data); itsmo.c.init2(); }); itsmo.c.init_common(); }; itsmo.c.init2 = function() { itsmo.c.setSearchConditionDrag(); itsmo.c.changeFlagsByGnr(); // ソート名称設定 var s = $('#flg_gsort').val(); var gsortnm = null; var gsortval = null; $('#ajax_gsort_div li').each(function() { if ('none' == this.style.display) { return; } var e = $(this).find('a'); var val = e.attr('href').split('#').pop(); if (null != gsortnm && s != val) { return; } gsortval = e.attr('href').split('#').pop(); gsortnm = e.attr('title'); }); $('#flg_gsort').val(gsortval); $('#ajax_gsort_selbox').text(gsortnm); // グルメ最低最高予算 var fnc = function() { var i = $(this).attr('href').split('#').pop(); if (i == s) { $(this).click(); } }; s = $('#flg_g_min_yosan').val(); $('#ajax_g_min_yosan_div ul a').each(fnc); s = $('#flg_g_max_yosan').val(); $('#ajax_g_max_yosan_div ul a').each(fnc); }; itsmo.c.init_common = function() { // ESC に機能追加。 var func_esc = function(e) { if (27 == e.keyCode) { itsmo.c.cnt_select_close(); itsmo.lib.map_windowclose(); } }; $(document).bind('keyup', func_esc); $(document).keydown(function(e) { if ($('#screen-wrap').is(':visible') && 0x20 == e.keyCode) { return false; } }); $(window).bind('click', function(e) { if (itsmo.c.flg_open_window) { return; } var f = $(e.target); while (null != f && f.length >= 1) { if (f.is("div[id^='ajax_'][id$='_div']")) { return; } f = f.parent(); } itsmo.c.cnt_select_close(); }); }; itsmo.c.init_detail = function() { itsmo.c.cnt_select_close(); itsmo.c.init_common(); }; itsmo.c.cnt_show_loading = function() { $('#ajax_search_loading').fadeIn(300); }; itsmo.c.cnt_hide_loading = function() { $('#ajax_search_loading').fadeOut(300); }; itsmo.c.flg_open_window = false; // ウィンドウが開いている間、true。 itsmo.c.flag_on_open_window = function() { itsmo.c.flg_open_window = true; }; itsmo.c.flag_off_open_window = function() { itsmo.c.flg_open_window = false; }; // コンテンツ表示 itsmo.c.cnt_select = function(id, e) { var t = $('#ajax_'+id+'_div'); var isShow = t.is(':visible'); itsmo.c.cnt_select_close(); if (null != e && $(e).hasClass('box-s-off')) { return false; } if (isShow) { return false; } itsmo.c.flag_on_open_window(); t.fadeIn('fast', itsmo.c.flag_off_open_window); return false; }; itsmo.c.cnt_select_genre = function(id) { var t = $('#ajax_' + id + '_' + s + '_div'); var isShow = t.is(':visible'); itsmo.c.cnt_select_close(); var s = 'ajax_facet_gnr2_select_num'; if ('facet_gnr2' == id) { s = 'ajax_facet_gnr1_select_num'; } s = $('#' + s).val(); if ('' == s) { return false; } if (isShow) { return false; } s = s.replace('.', "\\."); s = s.replace(':', "\\:"); itsmo.c.flag_on_open_window(); t.fadeIn('fast', itsmo.c.flag_off_open_window); return false; }; itsmo.c.open_more_tab = function() { var t = $('div.content div.detail-cp-tab div.sis-search-paka-more'); var isShow = t.is(':visible'); itsmo.c.cnt_select_close(); if (isShow) { return false; } itsmo.c.flag_on_open_window(); t.fadeIn('fast', itsmo.c.flag_off_open_window); return false; }; itsmo.c.cnt_select_ajax_id = null; itsmo.c.cnt_select_ajax_result = null; itsmo.c.cnt_select_ajax_result_company = []; itsmo.c.cnt_select_ajax_result_other = []; itsmo.c.cnt_select_ajax = function(type, id, e) { var t = $('#ajax_' + itsmo.c.cnt_select_ajax_id + '_div'); var isShow = t.is(':visible'); itsmo.c.cnt_select_close(); if (null != e && $(e).hasClass('box-s-off')) { return false; } if (isShow) { return false; } itsmo.c.cnt_select_ajax_id = id; //facet_gnr1などの引数のキー。ビュー側にそのまま引数として与えられている) itsmo.c.cnt_select_ajax_result_company = []; itsmo.c.cnt_select_ajax_result_other = []; var i = itsmo.c.makeSubmitUrl(false, 'xml=' + type, id); i = i.split('?'); i[1] = 'xml=' + type; itsmo.c.cnt_show_loading(); // type == g1の場合リクエストなしにする。 let url_parse = i[0].split('/'); let cond = url_parse[3]; let url = i[0];// /c/// let qs = i[1];//xml=g1 など if(type=="g2" || type=="g3"){ //ジャンルコードはエリア指定の場合 _ で区切った最後の配列 let gnrcode = cond.split('_'); url = "/c/ajax.php"; qs = "device=pc&gnrcd=" + gnrcode.slice(-1)[0]; } itsmo.lib.XMLHttpRequest2_send(url, itsmo.c.cnt_select_ajax_callback, 'GET', qs); return false; }; itsmo.c.cnt_select_ajax_callback = function(result) { itsmo.c.cnt_hide_loading(); var e = $('#ajax_' + itsmo.c.cnt_select_ajax_id + '_div'); result = itsmo.c.cnt_select_ajax_result = $(result); result = result.find('data'); e.find('ul').hide(); if ('facet_tod' == itsmo.c.cnt_select_ajax_id) { $("#ajax_facet_tod_sel table td a").hide(); var vals = []; if (result.length >= 1) { 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(); vals.push(val); }); $("#ajax_facet_tod_sel table td a").each(function() { var f = $(this); var v = f.attr('href').split('#').pop(); if ($.inArray(v, vals) >= 0) { f.show(); } }); } $("#ajax_facet_tod_sel table tr").show().each(function() { var e = $(this); var isShow = false; e.find('td a').each(function() { var v = $(this).attr('href').split('#').pop(); if ($.inArray(v, vals) >= 0) { isShow = true; return false; } }); if (!isShow) { e.hide(); } }); } else { do { e.find('ul').hide(); if (result.length <= 0) { e.find('ul:eq(1)').show(); break; } // 企業を集める。 itsmo.c.cnt_select_ajax_result_company = []; itsmo.c.cnt_select_ajax_result_other = []; 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(); // -----< beauty パワーバランス対応 start>----- var splitVal = val.split(':'); if (splitVal.length == 1 && splitVal[0] == '0700000000') nm = nm.replace('・美容', ''); // 大ジャンルから「美容」を除外 // -----< beauty パワーバランス対応 end>----- var vals = val.split(':'); if (vals.length == 3 && vals[2].substring(5, 6) == '5') { itsmo.c.cnt_select_ajax_result_company.push([nm, val, cnt]); } else { itsmo.c.cnt_select_ajax_result_other.push([nm, val, cnt]); } }); var f = e.find('ul:first'); var shownum_other = f.show().find('li').hide().length; // page 選択を準備。IE6 だと hide しても余分な space が出てしまうため動的に組む。 var i, t = ''; var shownum = $('#ajax_facet_gnr3_tenpo ul li').length; f = Math.floor((itsmo.c.cnt_select_ajax_result_other.length + shownum_other - 1) / shownum_other); var maxpage = Math.floor((itsmo.c.cnt_select_ajax_result_company.length + shownum - 1) / shownum); maxpage = Math.max(maxpage, f); var pages_elm = $('#ajax_facet_gnr3_tenpo_pages'); var s = $('#c_gnr3_t_pages_pb').html(); t = ''; for (i = 0; i < maxpage; ++i) { t += s.replace(/__d/g, i + 1); } t = $('#c_gnr3_t_pages_pa').html() + t + $('#c_gnr3_t_pages_pc').html(); pages_elm.html(t); itsmo.c.cnt_company_genre_page(1, itsmo.c.cnt_select_ajax_id); break; } while(false); } itsmo.c.cnt_select_close(); itsmo.c.flag_on_open_window(); e.fadeIn('fast', itsmo.c.flag_off_open_window); }; itsmo.c.cnt_company_genre_page = function(page, id) { if (null == id || undefined == id) { id = '#ajax_facet_gnr3_div'; } else { id = '#ajax_' + itsmo.c.cnt_select_ajax_id + '_div'; } // ページ選択部分を調整。 var pages_elm = $('#ajax_facet_gnr3_tenpo_pages'); if (page < 0 || page >= 100) { var e = pages_elm.find('span.act:visible'); var nowpage = parseInt(e.text()); page = nowpage + ((page < 0) ? -1 : 1); } // 最大ページを計算。 var elm_li = $('#ajax_facet_gnr3_tenpo ul li'); var shownum = elm_li.length; var maxpage = Math.floor((itsmo.c.cnt_select_ajax_result_company.length + shownum - 1) / shownum); var f = $(id).find('ul:first'); if (itsmo.c.cnt_select_ajax_result_other.length >= 1) { f = f.show(); } f = f.find('li').hide(); var shownum_other = f.length; var maxpage_other = Math.floor((itsmo.c.cnt_select_ajax_result_other.length + shownum_other - 1) / shownum_other); maxpage = Math.max(maxpage, maxpage_other); // 最大ページに合わせて補正。 if (page <= 0 || isNaN(page)) { page = 1; } else if (page > maxpage) { page = maxpage; } // 1ページしかないならそもそもページ選択部分はいらない。 if (maxpage <= 1) { $('#ajax_facet_gnr3_tenpo_pages').hide(); } else { $('#ajax_facet_gnr3_tenpo_pages').show(); } // ページ番号と前後への表示制御。 if (1 == page) { pages_elm.find('span:first').show(); pages_elm.find('a:first').hide(); } else { pages_elm.find('span:first').hide(); pages_elm.find('a:first').show(); } var i = 0, e; pages_elm.find('span.act').each(function(i, e) { e = $(e); var f = e.next(); if (i >= maxpage) { e.hide(); f.hide(); return; } if ((page - 1) == i) { e.show(); f.hide(); } else { e.hide(); f.show(); } }); if (maxpage == page || maxpage <= 1) { pages_elm.find("span:contains('次へ')").show(); pages_elm.find('a:last').hide(); } else { pages_elm.find("span:contains('次へ')").hide(); pages_elm.find('a:last').show(); } if (itsmo.c.cnt_select_ajax_result_other.length >= 1) { var offset = (page - 1) * shownum_other; while (offset >= itsmo.c.cnt_select_ajax_result_other.length) { offset -= shownum_other; } $.each(itsmo.c.cnt_select_ajax_result_other, function(i, val) { if (i < offset || i >= (offset + shownum_other)) { return; } var nm = val[0]; var cnt = val[2]; var val = val[1]; //ここでa内の書き換え var g = f.eq(i - offset).show().find('a'); g.html(nm).attr('href', '#' + val).attr('name', nm); }); } if (itsmo.c.cnt_select_ajax_result_company.length <= 0) { $('#ajax_facet_gnr3_tenpo').hide(); return; } --page; elm_li.hide().parent().show(); var firstoffset = page * shownum; while (firstoffset >= itsmo.c.cnt_select_ajax_result_company.length) { firstoffset -= shownum; } $.each(itsmo.c.cnt_select_ajax_result_company, function(i, val) { if (i < firstoffset || i >= (firstoffset + shownum)) { return; } var n = i - firstoffset; var e = elm_li.eq(n); var nm = val[0]; var cnt = val[2]; var val = val[1]; e.show().find('a').html(nm).attr('href', '#' + val).attr('name', nm); }); $('#ajax_facet_gnr3_tenpo').show(); }; itsmo.c.cnt_select_close = function() { var names = [ 'ajax_facet_gnr1_divs' , 'ajax_facet_gnr2_divs' , 'ajax_facet_gnr3_divs' ]; $.each(names, function(i, n) { $("[name='" + n + "']").fadeOut('fast'); }); $('div.content div.detail-cp-tab div.sis-search-paka-more').hide(); return false; }; itsmo.c.changeStationTod = function(is_station) { if (is_station) { $('#ajax_areatype_tod_hide, #ajax_areatype_station').hide(); $('#ajax_areatype_tod, #ajax_areatype_station_hide').show(); } else { $('#ajax_areatype_tod, #ajax_areatype_station_hide').hide(); $('#ajax_areatype_station, #ajax_areatype_tod_hide').show(); } $('#flg_areatype').val(is_station); $('#ajax_facet_tod_selbox').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_facet_area_selbox, #ajax_facet_station_selbox').removeClass('box-s').addClass('box-s-off').text(''); $('#ajax_facet_area_selbox, #ajax_facet_station_selbox').next().removeClass('box-s-r').addClass('box-s-r-off'); $('#ajax_facet_area_selbox, #ajax_facet_station_selbox').prev().removeClass('box-s-l').addClass('box-s-l-off'); $('#ajax_tod_num, #ajax_area_num, #ajax_station_num, #ajax_area_name, #ajax_station_name').val(''); }; itsmo.c.changeFlagsByGnr = function() { var i = $('#ajax_facet_gnr3_select_num').val(); if (undefined == i || '' == i) { i = $('#ajax_facet_gnr2_select_num').val(); } if (undefined == i || '' == i) { i = $('#ajax_facet_gnr1_select_num').val(); } if (undefined == i || '' == i) { } else { i = i.split(':'); i = i[i.length - 1]; } $("[id^='gnrflags']").hide().each(function() { var e = $(this); var s = e.attr('id').substring(8); if (0 == i.indexOf(s)) { e.show(); } }); $("li[name^='gsortflg']").hide().each(function() { var e = $(this); var s = e.attr('name').substring(8); if (0 == i.indexOf(s)) { e.show(); } }); var e = $('span.sis-search-paka-waku0b:has(#ajax_gsort_div)'); if (0 == i.indexOf('04004')) { e.hide(); } else { e.show(); } return false; }; itsmo.c.getFlagsTypeFromGnr = function(gnr) { if (0 == gnr.indexOf('01')) { return 'gourmet'; } if (0 == gnr.indexOf('05002')) { return 'hospital'; } if (0 == gnr.indexOf('20070011')) { return 'camp'; } if (0 == gnr.indexOf('04005')) { return 'rental_car'; } if (0 == gnr.indexOf('07006')) { return 'haircut'; } if (0 == gnr.indexOf('20030017')) { return 'pachinko'; } if (0 == gnr.indexOf('02008')) { return 'golf'; } if (0 == gnr.indexOf('04003')) { return 'gs'; } if (0 == gnr.indexOf('04004')) { return 'sapa'; } return null; }; var g_sorts = { '70' : [ ["g_score", "評価点数が高い順"] , ["g_yosan_expen", "平均予算が高い順"] , ["g_yosan_cheap", "平均予算が安い順"] ] , '20' : [ ] , 'E0' : [ ["golf_chatnum", "クチコミ件数が多い順"] , ["golf_score", "総合評価が高い順"] ] , 'C0' : [ ["parking_max_charge_day", "平均一日最大料金が安い順"] , ["parking_max_charge_holiday", "休日一日最大料金が安い順"] , ["parking_space_num", "時間貸車室数が多い順"] ] , 'G0' : [ ["gs_regular", "(現金)レギュラー料金が安い順"] , ["gs_highoct", "(現金)ハイオク料金が安い順"] , ["gs_light", "(現金)軽油料金が安い順"] , ["gs_regular_member", "(看板)レギュラー料金が安い順"] , ["gs_highoct_member", "(看板)ハイオク料金が安い順"] , ["gs_light_member", "(看板)軽油料金が安い順"] ] };; var g_sorts_before = null; itsmo.c.changeSortByGnr = function(gnr, gsort) { if (gnr in g_sorts) { } else { g_sorts_before = null; itsmo.lib.document_off('idSort'); itsmo.lib.document_off('idSortLabel'); return; } if (g_sorts_before == gnr) { return; } g_sorts_before = gnr; gnr = g_sorts[gnr]; //var e = g_document.getElementById('flg_gsort'); var e = document.getElementById('flg_gsort'); if (null != e) { e.length = 1; var sel = 0; for (var i = 0; i < gnr.length; ++i) { e.options[i + 1] = new Option(gnr[i][1], gnr[i][0]); if (gsort == gnr[i][0]) { sel = i + 1; } } e.selectedIndex = sel; } itsmo.lib.document_on('idSort', 'inline'); itsmo.lib.document_on('idSortLabel', 'inline'); }; itsmo.c.cnt_select_submit = function(id, e, val, prm) { if (null == e) { itsmo.c.cnt_select_submit_clear(id); itsmo.c.cnt_select_close(); return false; } if ((typeof e) == 'object') { e = $(e); if (undefined == prm) { prm = e.attr('href').split('#').pop(); } if (undefined == val) { val = e.attr('name'); if (undefined == val || '' == val) { val = e.attr('title'); } if (undefined == val) { val = ''; } } } itsmo.c.cnt_select_close(); if ( 'facet_gnr1' == id || 'facet_gnr2' == id || 'facet_gnr3' == id ) { //タイトル $('#ajax_' + id + '_title').text(val); if ('facet_gnr1' == id) { $('#ajax_facet_gnr2_selbox').removeClass('box-s-off').addClass('box-s').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_facet_gnr2_selbox').next().removeClass('box-s-r-off').addClass('box-s-r'); $('#ajax_facet_gnr2_selbox').prev().removeClass('box-s-l-off').addClass('box-s-l'); $('#ajax_facet_gnr3_selbox').removeClass('box-s').addClass('box-s-off').text(''); $('#ajax_facet_gnr3_selbox').next().removeClass('box-s-r').addClass('box-s-r-off'); $('#ajax_facet_gnr3_selbox').prev().removeClass('box-s-l').addClass('box-s-l-off'); $('#ajax_facet_gnr2_select_num, #ajax_facet_gnr3_select_num, #ajax_facet_gnr2_select_name, #ajax_facet_gnr3_select_name').val(''); } else if ('facet_gnr2' == id) { $('#ajax_facet_gnr3_selbox').removeClass('box-s-off').addClass('box-s').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_facet_gnr3_selbox').next().removeClass('box-s-r-off').addClass('box-s-r'); $('#ajax_facet_gnr3_selbox').prev().removeClass('box-s-l-off').addClass('box-s-l'); $('#ajax_facet_gnr3_select_num, #ajax_facet_gnr3_select_name').val(''); } $('#ajax_' + id + '_selbox').text(itsmo.c.limitString(val, 10)); $('#ajax_' + id + '_select_name').val(val); $('#ajax_' + id + '_select_num').val(prm); itsmo.c.changeFlagsByGnr(); itsmo.c.cnt_validate_sort(); return false; } if ('g_min_yosan' == id || 'g_max_yosan' == id || 'rowcnt' == id || 'gsort' == id) { // 平均予算とか $('#ajax_' + id + '_selbox').text(val); $('#flg_' + id).val(prm); return false; } var isIArea = $('#flg_areatype').val(); isIArea = 0 == isIArea; if ('facet_tod' == id) { $('#ajax_facet_area_seltitle, #ajax_facet_tod_selbox').text(val); $('#ajax_facet_area_selbox' ).removeClass('box-s-off').addClass('box-s').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_facet_area_selbox' ).next().removeClass('box-s-r-off').addClass('box-s-r'); $('#ajax_facet_area_selbox' ).prev().removeClass('box-s-l-off').addClass('box-s-l'); $('#ajax_facet_station_selbox' ).removeClass('box-s').addClass('box-s-off').text(''); $('#ajax_tod_num').val(prm); $('#ajax_area_num, #ajax_station_num, #ajax_area_name, #ajax_station_name').val(''); return false; } if ('facet_station' == id) { itsmo.lib.document_setvalue('ajax_facet_station_selbox', itsmo.c.limitString(val, 10)); $('#ajax_station_name').val(val); itsmo.lib.document_setvalue('ajax_station_num', prm); return false; } // facet_area itsmo.lib.document_setvalue('ajax_facet_area_selbox', itsmo.c.limitString(val, 10)); $('#ajax_area_name').val(val); var tod = itsmo.lib.document_getvalue('ajax_tod_num'); itsmo.lib.document_setvalue('ajax_area_num', prm); if (isIArea) { itsmo.lib.document_setvalue('ajax_facet_station_seltitle', val); prm = 'tod=' + tod + '&di=' + encodeURIComponent(prm); } else { itsmo.lib.document_setvalue('ajax_facet_station_seltitle', val + 'の駅'); prm = 'tod=' + tod + '&line=' + encodeURIComponent(prm); } $('#ajax_facet_station_selbox').removeClass('box-s-off').addClass('box-s').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_facet_station_selbox').next().removeClass('box-s-r-off').addClass('box-s-r'); $('#ajax_facet_station_selbox').prev().removeClass('box-s-l-off').addClass('box-s-l'); $('#ajax_station_num, #ajax_station_name').val(''); return false; }; itsmo.c.cnt_select_submit_clear = function(id) { if ( 'facet_gnr1' == id || 'facet_gnr2' == id || 'facet_gnr3' == id ) { if ('facet_gnr1' == id) { $('#ajax_facet_gnr2_selbox').removeClass('box-s').addClass('box-s-off').text(''); $('#ajax_facet_gnr2_selbox').next().removeClass('box-s-r').addClass('box-s-r-off'); $('#ajax_facet_gnr2_selbox').prev().removeClass('box-s-l').addClass('box-s-l-off'); $('#ajax_facet_gnr3_selbox').removeClass('box-s').addClass('box-s-off').text(''); $('#ajax_facet_gnr3_selbox').next().removeClass('box-s-r').addClass('box-s-r-off'); $('#ajax_facet_gnr3_selbox').prev().removeClass('box-s-l').addClass('box-s-l-off'); $('#ajax_facet_gnr2_select_num, #ajax_facet_gnr3_select_num, #ajax_facet_gnr2_select_name, #ajax_facet_gnr3_select_name').val(''); } else if ('facet_gnr2' == id) { $('#ajax_facet_gnr3_selbox').removeClass('box-s').addClass('box-s-off').text(''); $('#ajax_facet_gnr3_selbox').next().removeClass('box-s-r').addClass('box-s-r-off'); $('#ajax_facet_gnr3_selbox').prev().removeClass('box-s-l').addClass('box-s-l-off'); $('#ajax_facet_gnr3_select_num, #ajax_facet_gnr3_select_name').val(''); } $('#ajax_' + id + '_selbox').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_' + id + '_select_name').val(''); $('#ajax_' + id + '_select_num').val(''); itsmo.c.changeFlagsByGnr(); itsmo.c.cnt_validate_sort(); return false; } if ('facet_tod' == id) { $('#ajax_facet_tod_selbox').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_facet_area_selbox' ).removeClass('box-s').addClass('box-s-off').text(''); $('#ajax_facet_area_selbox' ).next().removeClass('box-s-r').addClass('box-s-r-off'); $('#ajax_facet_area_selbox' ).prev().removeClass('box-s-l').addClass('box-s-l-off'); $('#ajax_facet_station_selbox' ).removeClass('box-s').addClass('box-s-off').text(''); $('#ajax_facet_station_selbox' ).next().removeClass('box-s-r').addClass('box-s-r-off'); $('#ajax_facet_station_selbox' ).prev().removeClass('box-s-l').addClass('box-s-l-off'); $('#ajax_tod_num').val(''); $('#ajax_area_num, #ajax_station_num, #ajax_area_name, #ajax_station_name').val(''); return false; } if ('facet_area' == id) { $('#ajax_facet_area_selbox').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_facet_station_selbox' ).removeClass('box-s').addClass('box-s-off').text(''); $('#ajax_facet_station_selbox' ).next().removeClass('box-s-r').addClass('box-s-r-off'); $('#ajax_facet_station_selbox' ).prev().removeClass('box-s-l').addClass('box-s-l-off'); $('#ajax_facet_area_num, #ajax_facet_area_name').val(''); $('#ajax_station_num, #ajax_station_name').val(''); return false; } $('#ajax_facet_station_selbox').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_station_num, #ajax_station_name').val(''); return false; }; // ソート条件の適正チェック itsmo.c.cnt_validate_sort = function() { 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; } var val = e.find('a').attr('href').split('#').pop(); if (val == v) { isFound = true; return false; } }); if (!isFound) { first_elm.find('a').click(); } }; // 都道府県選択後の ajax 通信。 itsmo.c.cnt_select_tod_callback = function(result) { $('#ajax_facet_wait').hide; $('#ajax_facet_area_sel').html($(result).find('data').text()); $('#ajax_facet_area_selbox').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_facet_area_selbox').removeClass('box-s-off').addClass('box-s'); $('#ajax_facet_area_selbox').next().removeClass('box-s-r-off').addClass('box-s-r'); $('#ajax_facet_area_selbox').prev().removeClass('box-s-l-off').addClass('box-s-l'); }; // 鉄道もしくは大エリア選択後の ajax 通信。 itsmo.c.cnt_select_line_callback = function(result) { $('#ajax_facet_wait').hide; $('#ajax_facet_station_sel').html($(result).find('data').text()); $('#ajax_facet_station_selbox').text(itsmo.c.STR_PLEASE_SELECT); $('#ajax_facet_station_selbox').removeClass('box-s-off').addClass('box-s'); $('#ajax_facet_station_selbox').next().removeClass('box-s-r-off').addClass('box-s-r'); $('#ajax_facet_station_selbox').prev().removeClass('box-s-l-off').addClass('box-s-l'); }; itsmo.c.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.c.onClickIncludeFreewd = function(e) { $(e).find('span').toggleClass('tel-check-on').toggleClass('tel-check-off'); }; itsmo.c.makeSubmitUrl = function(canFreewdOnly, addParam, useGenreID) { var i = $.trim($('#flg_freewd').val()); if (canFreewdOnly && i.length >= 1 && $('#ajax_freewd_inc_above span').attr('class').indexOf('check-off') >= 0) { return '/c/' + encodeURIComponent(i) + '/'; } var isIArea = itsmo.lib.document_getvalue('flg_areatype'); isIArea = 0 == isIArea; var params = {}; var urlname = [], urlparam = []; if (i.length >= 1) { params['freewd'] = i; } var areanm = ''; i = itsmo.lib.document_getvalue('ajax_tod_num'); if ('' != i && 'facet_tod' != useGenreID) { urlparam.push(i); areanm = $('#ajax_facet_tod_selbox').text(); } if (isIArea) { // 都道府県情報を取得。 do { if ('facet_area' == useGenreID || 'facet_tod' == useGenreID) { break; } i = $('#ajax_area_num').val(); if ('' != i && undefined != i) { urlparam.push(i); areanm = $('#ajax_area_name').val(); } if ('facet_station' == useGenreID) { break; } i = $('#ajax_station_num').val(); if ('' != i && undefined != i) { urlparam.push(i); areanm = itsmo.lib.document_getvalue('ajax_station_name'); } } while(false); } else { // 路線情報 i = itsmo.lib.document_getvalue('ajax_area_num'); if ('' != i) { params['line'] = i; } // 駅情報 i = itsmo.lib.document_getvalue('ajax_station_num'); i = i.split(':'); if (i.length == 3) { // 駅情報を持っている。 params['station'] = i[0]; params['lat'] = i[1]; params['lon'] = i[2]; } } if ('' != areanm) { urlname.push(areanm); } // 検索フラグなどを取得。 //var es = g_document.getElementsByName('flags'); $("div.c-search-tbl-area form [name='flags']").each(function() { var e = $(this); if (itsmo.c.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; id = id.substring(4); // 先頭の flg_ を除く。 if (e.is('input:hidden')) { if ('0' != e.val() && '' != e.val()) { params[id] = e.val(); } } else { var j = itsmo.lib.document_getvalue(idRaw); if ('' != j) { params[id] = j; } } }); // デフォルトの検索フラグは削除。 if (params['gsort'] == 'ps_desc') { params['gsort'] = null; } if (params['rowcnt'] == '20') { params['rowcnt'] = null; } // ジャンル情報を取得。 var gnrcd = gnrnm = ''; if (undefined == useGenreID || null == useGenreID) { useGenreID = '___'; } do { var j = 'ajax_facet_gnr1_select_num'; if (j.indexOf(useGenreID) >= 0) { break; } i = itsmo.lib.document_getvalue(j); if ('' != i) { gnrcd = i; } j = 'ajax_facet_gnr2_select_num'; if (j.indexOf(useGenreID) >= 0) { break; } i = itsmo.lib.document_getvalue(j); if ('' != i) { gnrcd = i; gnrnm = $('#ajax_facet_gnr2_select_name').val(); } j = 'ajax_facet_gnr3_select_num'; if (j.indexOf(useGenreID) >= 0) { break; } i = itsmo.lib.document_getvalue(j); if ('' != i) { gnrcd = i; gnrnm = $('#ajax_facet_gnr3_select_name').val(); } } while(false); if ('' != gnrcd) { urlparam.push(gnrcd); } if ('' != gnrnm) { urlname.push(gnrnm); } // URL の名称部とパラメータ部を作成。 for (i = 0; i < urlparam.length; ++i) { urlparam[i] = encodeURIComponent(urlparam[i]); } urlparam = urlparam.join('_'); urlname = urlname.join(' '); urlname = encodeURIComponent(urlname); var p = []; if (undefined != addParam) { p.push(addParam); } for (i in params) { if (null != params[i]) { p.push(i + '=' + encodeURIComponent(params[i])); } } p = p.join('&'); var url = '/c/' + urlname + '/' + urlparam + '/'; if ('' != p) { url += '?' + p; } return url; }; itsmo.c.cnt_form_submit = function(form) { var i = itsmo.c.makeSubmitUrl(true); //form.action = url; //alert(url); window.location.href = i; return false; }; itsmo.c.cnt_detail_change_img = function(src) { $('#ajax_detailimage').attr('src', src); return false; }; itsmo.c.setSearchConditionDrag = function() { $('.sis-search-paka-genre, .sis-search-paka').each(function() { var e = $(this); var hand = e.find('.sis-serch-ttl2'); if (hand.length >= 1) { e.draggable({ handle: hand }); } }); }; itsmo.c.cnt_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(); } }); } return false; }; itsmo.c.set_init_data = function() { var details = {}; $(".sis-access input[type='hidden']").each(function(i, v) { var elem = $(this); var name = elem.attr('name'); var val = elem.val(); switch (name) { case 'telno1': name = 'tel'; break; case 'telno2': if (details['tel']) name = 'tel'; break; case 'id': name = 'poiid'; break; case 'nm': name = 'name'; break; } details[name] = val; }); // 遷移データCookieセット itsmo.setCookieTemp(details); }; // GoogleImages itsmo.c.searchGoogleImagesComplete = function(imageSearch, isDigest) { $('#id_related_img_loading:visible').hide(); var cursor = imageSearch.cursor; if ((!cursor || cursor.currentPageIndex == 0) && (!imageSearch.results || imageSearch.results.length <= 0)) { $('#id_related_img_ul').append('
  • 画像がありません
  • '); } if (imageSearch.results && imageSearch.results.length > 0) { $.each(imageSearch.results, function(i, val) { var html = '
  • ' + val.titleNoFormatting + '
  • '; $('#id_related_img_ul').append(html); }); } if (!isDigest && cursor.currentPageIndex < (cursor.pages.length - 1)) { imageSearch.gotoPage(cursor.currentPageIndex + 1); // 次のページ。 } }; itsmo.c.searchGoogleImages = function(freewd, isDigest) { var imageSearch = new google.search.ImageSearch(); imageSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_LARGE); imageSearch.setRestriction(google.search.Search.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_STRICT); imageSearch.setResultSetSize(isDigest ? 4 : 8); imageSearch.setSearchCompleteCallback(this, itsmo.c.searchGoogleImagesComplete, [imageSearch, isDigest]); imageSearch.execute(freewd); }; itsmo.c.limitString = function(s, n) { if (s.length < n) { return s; } return s.substring(0, n) + '...'; }; // 天気予報 // 天気 itsmo.c.weather = function() {}; itsmo.c.weather.codes = null; itsmo.c.weather.getCodes = function() { if (null != itsmo.c.weather.codes) { return itsmo.c.weather.codes; } itsmo.c.weather.codes = {}; var d = [ ['01', '晴れ(昼)', 'fine'], ['02', '晴れ(夜)', 'star'], ['03', '曇り', 'cloudy'], ['04', '雪', 'snow'], ['05', '雨', 'rain'], ['101', '晴れ時々曇り', ''], ['100', '晴れ', ''], ['102', '晴れ一時雨', ''], ['103', '晴れ時々雨', ''], ['104', '晴れ一時雪', ''], ['105', '晴れ時々雪', ''], ['111', '晴れのち曇り', ''], ['114', '晴れのち雨', ''], ['117', '晴れのち雪', ''], ['201', '曇り時々晴れ', ''], ['202', '曇り一時雨', ''], ['203', '曇り時々雨', ''], ['204', '曇り一時雪', ''], ['205', '曇り時々雪', ''], ['209', '霧', ''], ['211', '曇りのち晴れ', ''], ['214', '曇りのち雨', ''], ['217', '曇りのち雪', ''], ['301', '雨時々晴れ', ''], ['302', '雨時々やむ', ''], ['303', '雨時々雪', ''], ['304', '雨もしくは雪', ''], ['309', '雨一時雪', ''], ['311', '雨のち晴れ', ''], ['313', '雨のち曇り', ''], ['315', '雨のち雪', ''], ['340', '雪もしくは雨', ''], ['401', '雪時々晴れ', ''], ['402', '雪時々やむ', ''], ['403', '雪時々雨', ''], ['409', '雪一時雨', ''], ['411', '雪のち晴れ', ''], ['413', '雪のち曇り', ''], ['414', '雪のち雨', ''], ['999', '不明', ''] ]; $.each(d, function(i, v) { itsmo.c.weather.codes[v[0]] = { nm: v[1], _class: v[2] }; }); return itsmo.c.weather.codes; }; itsmo.c.weather.getTenkiHtml = function(code, isAddName) { var s = itsmo.c.weather.getCodes(); s = s[code]; if (undefined == s || null == s) { s = '不明'; } else { var nm = s.nm; if ('' == s._class) { s = '' + nm + ''; } else { s = ''; } if (isAddName) { s += '' + nm + ''; } } return s; }; itsmo.c.weather.daysNameStr = [ '日', '月', '火', '水', '木', '金', '土' ]; itsmo.c.weather.getDateStr = function(d) { var s = (d.getMonth() + 1) + '/' + d.getDate() + '(' + itsmo.c.weather.daysNameStr[d.getDay()] + ')'; return s; }; itsmo.c.weather.get02d = function(n) { n = '0' + n; return n.substring(n.length - 2); }; itsmo.c.weather.eventSentaku = function(result) { if (null != result && 0 == result.status) { } else { return; } $.each(result.items, function(i, v) { var n = $.inArray(v.tenkiDate, itsmo.c.weather.days); if (n < 0 || n >= 2) { return; } if (v.sentaku >= 1 && v.sentaku <= 4) { // ok.正常な値。 } else { return; } var s = '' + v.sentakuName + '' + v.sentakuName + ''; $('#id_table_' + n + ' tr.wash td').html(s); }); }; itsmo.c.weather.eventTenki3hour = function(result) { if (null == result) { return; } else if (0 != result.status) { return; } // 発表日時 var s = result.pubDate; $('#id_pubY').html(s.substring(0, 4)); $('#id_pubM').html(parseInt(s.substring(4, 6), 10) + ''); $('#id_pubD').html(parseInt(s.substring(6, 8), 10) + ''); s = result.pubTime; $('#id_pubH').html(parseInt(s.substring(0, 2), 10) + ''); $('#id_pubI').html(s.substring(2, 4)); $.each(result.items, function(i, v) { var n = $.inArray(v.tenkiDate, itsmo.c.weather.days); if (n < 0 || n >= 2) { return null; } var h = parseInt(v.tenkiTime.substring(0, 2), 10); if (0 == n) { h = (h - 6) / 3; } else { h /= 3; } var id = '#id_table_' + n; var id2 = 'td:eq(' + h + ')'; if (v.tenkiCode == '') { s = '-'; } else { s = itsmo.c.weather.getTenkiHtml(v.tenkiCode); } $(id + ' tr:eq(1) ' + id2).html(s); if (v.tenkiCode == '') { s = ''; } else { s = v.temperature; } $(id + ' tr:eq(2) ' + id2 + ' span').html(s); if (v.tenkiCode == '') { s = ''; } else { s = v.rainMm; } $(id + ' tr:eq(3) ' + id2 + ' span').html(s); return null; }); }; itsmo.c.weather.eventTenkiWeek = function(result) { if (null != result && 0 == result.status) { } else { return; } $.each(result.items, function(i, v) { var n = $.inArray(v.tenkiDate, itsmo.c.weather.days); if (n < 2) { return; } var id = '#id_table_2'; var id2 = 'td:eq(' + (n - 2) + ')'; var e = $(id + ' tr:eq(2) ' + id2); e.find('span.highest').html('' + v.maxTemperature); e.find('span.lowest').html('' + v.minTemperature); var s = v.rainPercent; $(id + ' tr:eq(3) ' + id2 + ' span').html(s); s = itsmo.c.weather.getTenkiHtml(v.tenkiCode, true); $(id + ' tr:eq(1) ' + id2).html(s); }); }; itsmo.c.weather.days = null; itsmo.c.weather.init = function(lat, lon) { var s, i, v; if (lat <= 0 || lon <= 0) { lat = 128441320; lon = 503169540; } // 日付設定。 s = new Date(); itsmo.c.weather.days = []; for (i = 0; i < 7; ++i) { $('span.id_daystr_' + i).html(itsmo.c.weather.getDateStr(s)); itsmo.c.weather.days.push(s.getFullYear() + itsmo.c.weather.get02d(s.getMonth() + 1) + itsmo.c.weather.get02d(s.getDate())); s.setTime(s.getTime() + 1 * 24 * 60 * 60 * 1000); } // 洗濯情報取得。 opt = new ZdcNearTenkiOptions(); opt.point = new ZdcPoint(lon, lat, 2); opt.timeout = 3000; gik = new ZdcNearTenki(); ZdcEvent.addListener(gik, 'end', itsmo.c.weather.eventSentaku); gik.search(opt); // 3時間毎の天気を取得。 opt = new ZdcNearTenki3HourOptions(); opt.point = new ZdcPoint(lon, lat, 2); opt.timeout = 3000; gik = new ZdcNearTenki3Hour(); ZdcEvent.addListener(gik, 'end', itsmo.c.weather.eventTenki3hour); gik.search(opt); // 週間天気を取得。 opt = new ZdcNearTenkiWeekOptions(); opt.point = new ZdcPoint(lon, lat, 2); opt.timeout = 3000; gik = new ZdcNearTenkiWeek(); ZdcEvent.addListener(gik, 'end', itsmo.c.weather.eventTenkiWeek); gik.search(opt); }; itsmo.c.weather.week = function(lat, lon) { var s, i, v; if (lat <= 0 || lon <= 0) { lat = 128441320; lon = 503169540; } // 日付設定。 s = new Date(); myDate = s.getDate(); s.setDate(myDate+1); itsmo.c.weather.days = []; for (i = 0; i < 7; ++i) { $('span.id_daystr_' + i).html(itsmo.c.weather.getDateStr(s)); itsmo.c.weather.days.push(s.getFullYear() + itsmo.c.weather.get02d(s.getMonth() + 1) + itsmo.c.weather.get02d(s.getDate())); s.setTime(s.getTime() + 1 * 24 * 60 * 60 * 1000); } // 週間天気を取得。 opt = new ZdcNearTenkiWeekOptions(); opt.point = new ZdcPoint(lon, lat, 2); opt.timeout = 3000; gik = new ZdcNearTenkiWeek(); ZdcEvent.addListener(gik, 'end', itsmo.c.weather.eventTenkiWeek2); gik.search(opt); } itsmo.c.weather.eventTenkiWeek2 = function(result) { if (null != result && 0 == result.status) { } else { return; } // 発表日時 var st = result.pubDate; $('#id_pubY').html(st.substring(0, 4)); $('#id_pubM').html(parseInt(st.substring(4, 6), 10) + ''); $('#id_pubD').html(parseInt(st.substring(6, 8), 10) + ''); st = result.pubTime; $('#id_pubH').html(parseInt(st.substring(0, 2), 10) + ''); $('#id_pubI').html(st.substring(2, 4)); $.each(result.items, function(i, v) { var n = $.inArray(v.tenkiDate, itsmo.c.weather.days); var id = '#id_table_2'; var id2 = 'td:eq(' + n + ')'; var e = $(id + ' tr:eq(2) ' + id2); e.find('span.highest').html((v.maxTemperature=='') ? '-': '' + v.maxTemperature); e.find('span.lowest').html((v.minTemperature=='') ? '-': '' + v.minTemperature); var s = (v.rainPercent=='') ? '-': '' + v.rainPercent; $(id + ' tr:eq(3) ' + id2 + ' span').html(s); s = itsmo.c.weather.getTenkiHtml(v.tenkiCode, true); $(id + ' tr:eq(1) ' + id2).html(s); }); }; // 詳細画面地図・アクセスタブ itsmo.c.g_map_obj = null; itsmo.c.initDetailTabMapAccess = function(url) { if (typeof ZDC === 'undefined' || typeof ZDC.Map === 'undefined') { return; } var e = $('#idMapLatLon'); if (e.length <= 0) { return; } e = e.val().split(','); var lat = parseInt(e[0], 10) / (60 * 60 * 1000); var lon = parseInt(e[1], 10) / (60 * 60 * 1000); var latlon = new ZDC.LatLon(lat, lon); var lvl = 13; ZDC._TILE_PATHS["4"] = ZDC._TILE_PATHS["24"]; itsmo.c.g_map_obj = new ZDC.Map( $('#idMap').get(0), { mapType: ZDC.MAPTYPE_COLOR, latlon: latlon, zoom: lvl } ); itsmo.c.g_map_obj.dragOn(); itsmo.c.g_map_obj.zoomOn(); // クリック地点を地図の中心点として移動 ZDC.addListener(itsmo.c.g_map_obj, ZDC.MAP_CLICK, function(){ var latlon = itsmo.c.g_map_obj.getClickLatLon(); itsmo.c.g_map_obj.moveLatLon(latlon); }); // ココアイコン e = new ZDC.UserWidget(latlon, { size: new ZDC.WH(22, 34), html: '', offset: new ZDC.Pixel(-10, -29) }); itsmo.c.g_map_obj.addWidget(e); e.open(); // +ボタン var sz = new ZDC.WH(44, 44); e = new ZDC.StaticUserWidget({ top: 8, left: 8}, { html: '
    ', size: sz }); itsmo.c.g_map_obj.addWidget(e); e.open(); // -ボタン e = new ZDC.StaticUserWidget({ top: 51, left: 8}, { html: '
    ', size: sz }); itsmo.c.g_map_obj.addWidget(e); e.open(); }; itsmo.c.onClickLine = function() { var url = $('#id_line_url').attr('href') if (url.indexOf('javascript:void') < 0) { return true; } var ret = false; $.ajax({ async: false, success: function(data) { var url = 'http://line.naver.jp/R/msg/text/?' + $('#id_detail_nm').val() + encodeURIComponent(data.id); $('#id_line_url').attr('href', url); ret = true; }, dataType: 'json', timeout: 5 * 1000, url: '/c/shorten_url.php', data: 'cache=3600&url=' + encodeURIComponent($('#id_detail_url').val()) }); return ret; }; itsmo.c.initDetailTabParking = function(url) { itsmo.c.initDetailTabMapAccess(url); var latlons = []; var totalRecord = $('div.basic-1col-syuhen li').length; for (var indexNum = totalRecord; indexNum > 0; indexNum--) { var e = $('div.basic-1col-syuhen li').eq(indexNum - 1); var s = e.find('input:hidden').val().split('_', 3); if (s.length != 3) { return; } s[0] = parseInt(s[0], 10) / (60 * 60 * 1000); s[1] = parseInt(s[1], 10) / (60 * 60 * 1000); s[2] = decodeURIComponent(s[2]).replace('"', '"'); s[0] = new ZDC.LatLon(s[0], s[1]); var url = e.find('a').attr('href'); var f = new ZDC.UserWidget(s[0], { size: new ZDC.WH(22, 34), html: '' + e.find('span.syuhen-num').text() + '', offset: new ZDC.Pixel(-11, -34 + 3) }); itsmo.c.g_map_obj.addWidget(f); f.open(); latlons.push(s[0]); } latlons = itsmo.c.g_map_obj.getAdjustZoom(latlons, true); itsmo.c.g_map_obj.setZoom(latlons.zoom); };