if (typeof itsmo == 'undefined') { var itsmo = {}; } if (typeof itsmo.vars == 'undefined') { itsmo.vars = {} ; } var tile_map = 'mapcache.e-map.ne.jp'; itsmo.bus = {}; itsmo.bus.listBusStopAround = []; itsmo.bus.isPremium = null; itsmo.bus.g_map_obj = null; itsmo.bus.urlHighroseLogin = 'https://ssl.its-mo.com/login' ; itsmo.bus.dayOfWeek = ['日', '月', '火', '水', '木', '金', '土']; itsmo.bus.loadMap = function () { if (typeof ZDC === 'undefined' || typeof ZDC.Map === 'undefined') { return; } var lat = $('#bus-stop-lat').val(); var lon = $('#bus-stop-lon').val(); var latlon = new ZDC.LatLon(lat, lon); var maptype = ZDC.MAPTYPE_COLOR; var lvl = 13 ZDC._TILE_SERVERS = tile_map; ZDC._TILE_PATHS["4"] = ZDC._TILE_PATHS["24"]; itsmo.bus.g_map_obj = new ZDC.Map( $('#idMap').get(0), { mapType: maptype, latlon: latlon, zoom: lvl } ); itsmo.bus.g_map_obj.dragOn(); itsmo.bus.g_map_obj.zoomOn(); // クリック地点を地図の中心点として移動 ZDC.addListener(itsmo.bus.g_map_obj, ZDC.MAP_CLICK, function(){ var latlon = itsmo.bus.g_map_obj.getClickLatLon(); itsmo.bus.g_map_obj.moveLatLon(latlon); }); var sz = new ZDC.WH(44, 44); var e = new ZDC.StaticUserWidget({ top: 8, left: 8}, { html: '
', size: sz }); itsmo.bus.g_map_obj.addWidget(e); e.open(); // -ボタン e = new ZDC.StaticUserWidget({ top: 51, left: 8}, { html: '
', size: sz }); itsmo.bus.g_map_obj.addWidget(e); e.open(); }; itsmo.bus.createBusStopWidget = function (url) { itsmo.bus.loadMap(); var el = $('#id_bus_stop_div_calc_size'); el.html(); var width = el.width(); var height = el.height(); var offset = new ZDC.Pixel(Math.floor(-width / 2), -height); var lat = $('#bus-stop-lat').val(); var lon = $('#bus-stop-lon').val(); var latlon = new ZDC.LatLon(lat, lon); var latlons = []; var html = ''; if (url){ html = ''; } else { html = ''; } var makerCenter = new ZDC.UserWidget(latlon, { size: new ZDC.WH(22, 34), html: html, offset: new ZDC.Pixel(-10, -29) }); latlons.push(latlon); var bsName = $('#bus-stop-name').val(); var company = $('#company-name').val(); var count = itsmo.bus.listBusStopAround.length; for (var j = itsmo.bus.listBusStopAround.length; j > 0; j--) { if ((bsName == itsmo.bus.listBusStopAround[j-1].Name) && (company == itsmo.bus.listBusStopAround[j-1].Company)){ count = count - 1; } } for (var i = itsmo.bus.listBusStopAround.length; i > 0; i--) { if ((bsName == itsmo.bus.listBusStopAround[i-1].Name) && (company == itsmo.bus.listBusStopAround[i-1].Company)){ continue; } if (count == 0){ break; } var latlon = new ZDC.LatLon(itsmo.bus.listBusStopAround[i-1].Lat, itsmo.bus.listBusStopAround[i-1].Lon) latlons.push(latlon); var url = $('.basic-1col-syuhen li:nth-child('+ count + ') a').attr('href'); var widget = new ZDC.UserWidget(latlon, { html: '', size: new ZDC.WH(width, height), offset: offset }); itsmo.bus.g_map_obj.addWidget(widget); widget.open(); count = count - 1; } itsmo.bus.g_map_obj.addWidget(makerCenter); makerCenter.open(); var adjustZoom = itsmo.bus.g_map_obj.getAdjustZoom(latlons); itsmo.bus.g_map_obj.setZoom(adjustZoom.zoom); }; itsmo.bus.submitSearchRouteBus = function () { itsmo.bus.setHistorySearchRouteBus(itsmo.bus.searchHistoryRouteBus, 'name-search-route-bus'); var wordSearch = $.trim($('#name-search-route-bus').val()); location = '/bus/search/' + wordSearch + '/'; }; itsmo.bus.createBusRouteWidget = function(){ itsmo.bus.loadMap(); var el = $('#id_bus_stop_div_calc_size'); el.html(); var width = el.width(); var height = el.height(); var offset = new ZDC.Pixel(Math.floor(-width / 2), Math.floor(-height)); var latlons = []; var htmlBSroute = ''; var bsCode = $('#bus-stop-code').val(); for (var i = 0; i < itsmo.bus.listBusStopAround.length; i++) { var latlon = new ZDC.LatLon(itsmo.bus.listBusStopAround[i].Lat, itsmo.bus.listBusStopAround[i].Lon) latlons.push(latlon); if(i == 0){ htmlBSroute = ''; }else if(i == (itsmo.bus.listBusStopAround.length-1)){ htmlBSroute = ''; }else if(itsmo.bus.listBusStopAround[i].BsCode == bsCode){ htmlBSroute = ''; }else{ htmlBSroute = ''; } var widget = new ZDC.UserWidget(latlon, { html: htmlBSroute, size: new ZDC.WH(width, height), offset: offset }); itsmo.bus.g_map_obj.addWidget(widget); widget.open(); } var pl = new ZDC.Polyline(latlons, { strokeWeight: 4, strokeColor: '#FF0000' }); itsmo.bus.g_map_obj.addWidget(pl); var adjustZoom = itsmo.bus.g_map_obj.getAdjustZoom(latlons); itsmo.bus.g_map_obj.moveLatLon(adjustZoom.latlon); itsmo.bus.g_map_obj.setZoom(adjustZoom.zoom); }; itsmo.bus.closeFeePopup = function () { itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose('fee_bus_window'); }; itsmo.bus.openNoPremiumPopup = function () { itsmo.vars.g_screen_non = 0; var popupTitle = 'バス情報のご案内'; var heading = 'すべてのバス情報を確認頂くには「プレミアコース登録」が必要です。'; var title = 'バスをもっと便利に活用!'; var description = '路線図や到着時間などの気になる情報が盛り沢山。全国網羅であなたの移動をサポートします!' + '
対応バス会社の確認'; var classCss = 'busstop'; $("#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); itsmo.lib.map_windowopen('no-premium-popup'); $("#no-premium-popup #popup-close").attr('onclick', 'return itsmo.bus.closeNoPremiumPopup();'); $("#no-premium-popup .payment-block .payment-link.first").attr('onclick', 'return itsmo.lib.dispHighrose("' + itsmo.bus.urlHighroseLogin + '");'); $("#no-premium-popup .payment-block .payment-link:nth-of-type(2)").attr('onclick', 'return itsmo.bus.closeNoPremiumPopup();'); }; itsmo.bus.closeNoPremiumPopup = function () { itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose('no-premium-popup'); }; itsmo.bus.busFee = function (event){ if(itsmo.bus.isPremium){ var parent = $(event).parent(); var rtName = $('#route-name').val(); var company = $('#company-name').val(); var bsStart = $('#bs-start-name').val(); var bsEnd = parent.find('#bs-end-name').val(); var url = '/bus/ajaxGetFee.php?rtName=' + encodeURIComponent(rtName) + '&bsStart=' + encodeURIComponent(bsStart) + '&comStart=' + encodeURIComponent(company) + '&bsEnd=' + encodeURIComponent(bsEnd) + '&comEnd=' + encodeURIComponent(company); itsmo.lib.XMLHttpRequest2_send(url, itsmo.bus.openBusFee , 'GET', '', 'json'); }else{ return false; } }; itsmo.bus.openBusFee = function (data) { var str = ''; var fee = ''; var lastBs = $('.basic-1col-syuhen ul > li:last-child .bus-routes-list span.bus-name').text(); $("#fee_bus_window #name_info .route-name").text(data.routeName + '(' +data.comStart + ')'); $("#fee_bus_window #name_info .last-bs-name").text(lastBs); if (data.fee || data.feeIC) { if (data.fee && data.feeIC && data.fromName && data.timeFrom && data.timeTo && data.toName) { str += ''; str += ''; str += ''; str += ''; str += '
出 発' + data.timeFrom + '' + data.fromName + '
到 着' + data.timeTo + '' + data.toName + '
'; $('.c-search-tbl-area').html(str); if (data.fee) { fee += '現金:' + data.fee + '円'; } if (data.feeIC) { fee += 'IC利用:' + data.feeIC + '円'; } $('.fee-box div').html(fee); } } else { $('.c-search-tbl-area').hide(); $('.c-search-tbl-area').html(str); str = '
該当情報が見つかりませんでした。
'; $('.fee-box div').html(str); } itsmo.lib.map_windowopen('fee_bus_window'); }; itsmo.bus.submitSearchRouteBus = function () { var wordSearch = $.trim($('#bs-search').val()); if(itsmo.bus.validateSearchBox('bs-search', 1, 20, 'お手数ですが20文字以下で再検索してください。')){ location = '/bus/search/' + wordSearch + '/'; } }; itsmo.bus.submitSearchFacility = function () { var wordSearch = $.trim($('#bus-facility-search').val()); if(itsmo.bus.validateSearchBox('bus-facility-search', 1, 40, 'お手数ですが40文字以下で再検索してください。')){ location = '/bus/search-f/' + wordSearch; } }; itsmo.bus.validateSearchBox = function (elementId, minLength, maxLength, message){ if($('#' + elementId).val().length < minLength || $('#' + elementId).val().length > maxLength){ $("#error-message-input > p").html(message); itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowopen('error-message-input'); return false; } return true; }; itsmo.bus.closeErrorMessagePopup = function (){ itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose('error-message-input'); }; $(function(){ $('body').click(function () { $('.sis-detail-tbl tr th div.active').removeClass('active'); $('.time-box-tbl tr td div.active').removeClass('active'); }); $('.sis-detail-tbl tr th .box-dropdown').click(function (event) { if ($('.sis-detail-tbl tr th div').hasClass('active')) { $('.sis-detail-tbl tr th div.active').removeClass('active'); } else { $('.sis-detail-tbl tr th div').addClass('active'); event.stopPropagation(); } }); $('.time-box-tbl tr td .box-dropdown').click(function (event) { if ($('.time-box-tbl tr td div').hasClass('active')) { $('.time-box-tbl tr td div.active').removeClass('active'); } else { $('.time-box-tbl tr td div').addClass('active'); event.stopPropagation(); } }); $('#bs-search').keydown(function(event){ if(event.keyCode == 13){ itsmo.bus.submitSearchRouteBus(); } }); $('#bus-facility-search').keydown(function(event){ if(event.keyCode == 13){ itsmo.bus.submitSearchFacility(); } }); }); itsmo.bus.changeRouteDropDown = function (event){ $(".focus-route-dd").removeClass('focus-route-dd'); $(event).addClass('focus-route-dd'); var txt = $(event).text(); $('#routes_dropdown').text(txt); var value = $(event).find('#valueRoute').val(); $('#valueRouteselected').val(value); $('.sis-detail-tbl tr th div').hide(); var dataPost = value.split('-'); var url = '/bus/ajaxGetTimeTable.php?rtCode=' + dataPost[0] + '&bsCode=' + dataPost[1] + '&toCode=' + dataPost[2] + '&dow=' + dataPost[3] + '&isFull=1'; itsmo.lib.XMLHttpRequest2_send(url, itsmo.bus.reloadListTimeTable , 'GET', '', 'json'); var bsName = $.trim($('#bsStart').val()); var comName = $.trim($('#comStart').val()); var printUrl = '/bus/timetable/' + bsName + '〔' + comName + '〕/' + dataPost[0] + '-' + dataPost[1] + '-' + dataPost[2] + '-' + dataPost[3] + '/'; var timeTableLink = '/bus/timetable/' + bsName + '〔' + comName +'〕/' + dataPost[0] + '-' + dataPost[1] + '-' + dataPost[2] + '-'; $('.dow1').attr('href', timeTableLink + '1/'); $('.dow2').attr('href', timeTableLink + '2/'); $('.dow4').attr('href', timeTableLink + '4/'); $('.time-table-print-A4').attr('href', printUrl+ 'printA4/'); $('.time-table-print-pocket').attr('href', printUrl+ 'print-pocket/'); }; itsmo.bus.reloadListTimeTable = function (data){ var str = ''; function displayErrorTimeTable(){ $(".tt-print-btn").hide(); return '

時刻表が存在しません。

'; } if(data.TimeTablesNull == 0){ if(typeof(data.TimeTables) != 'undefined'){ var countTimeTable = data.TimeTables.length; for (var i = 0; i < data.TimeTables.length; i++) { if(data.TimeTables[i].Bus != null && data.TimeTables[i].Num != '0'){ if(i % 2 != 0){ str += ''; }else{ str += ''; } str += '' + data.TimeTables[i].Hour + ''; str += ''; for (var j = 0; j < data.TimeTables[i].Bus.length; j++) { if (!itsmo.bus.isPremium) { str += '' + data.TimeTables[i].Bus[j].Min; }else{ str += '' + data.TimeTables[i].Bus[j].Min; } str += ''; } str += ""; } } str += ''; }else{ str = displayErrorTimeTable(); } } else { str = displayErrorTimeTable(); } $('.jikokuhyo').html(str); }; itsmo.bus.hourSelected = ''; itsmo.bus.minSelected = ''; itsmo.bus.arrivalTime = function (event) { if(itsmo.bus.isPremium){ $('#arrivaltime_window').show(); var dataPost = $('#valueRouteselected').val().split('-'); var bsStart = $.trim($('#bsStart').val()); var comStart = $.trim($('#comStart').val()); var rtName = dataPost[7];; var bsEnd = $(event).children("input[name='via']").val(); if(!bsEnd) { bsEnd = dataPost[4]; } var comEnd = dataPost[5]; itsmo.bus.minSelected = $(event).text(); itsmo.bus.hourSelected = $(event).parent().parent().parent().find('th').text(); $('.popup-content .c-search-tbl-area .time-box-tbl tbody tr td .time-list').hide(); var datetime = $.trim($(event).find('#datetime').val()); var urlTimeTable = '/bus/ajaxGetTimeTable.php?rtCode=' + dataPost[0] + '&bsCode=' + dataPost[1] + '&toCode=' + dataPost[2] + '&dow=' + dataPost[3] + '&isFull=1'; itsmo.lib.XMLHttpRequest2_send(urlTimeTable, itsmo.bus.getTimeTablePopup , 'GET', '', 'json'); var url = '/bus/ajaxGetArrivalTime.php?rtName=' + encodeURIComponent(rtName) + '&bsStart=' + encodeURIComponent(bsStart) + '&comStart=' + encodeURIComponent(comStart) + '&bsEnd=' + encodeURIComponent(bsEnd) + '&comEnd=' + encodeURIComponent(comEnd) + '&dateTime=' + datetime + ''; itsmo.lib.XMLHttpRequest2_send(url, itsmo.bus.openArrivalTime , 'GET', '', 'json'); }else{ return false; } }; itsmo.bus.selectTimeTable = {}; itsmo.bus.getTimeTablePopup = function (data) { return itsmo.bus.selectTimeTable = data; } itsmo.bus.openArrivalTime = function (data) { var str = ''; var strlist = ''; var ymd = $.trim($('#datetime').val()); var year = ymd.substring(0, 4); var month = ymd.substring(4, 6); var date = ymd.substring(6, 8); var dateOfWeek = itsmo.bus.dayOfWeek[(new Date(year, parseInt(month) -1, date)).getDay()]; $('.popup-content .name-info .route-name').text(data.routeName + '(' + data.comStart + ')'); $('.popup-content .name-info .last-bs-name').text(data.bsEnd); $('.popup-content .c-search-tbl-area .time-box-tbl tbody tr th.bs-name-from').text(data.bsStart); if(itsmo.bus.selectTimeTable.TimeTables){ for (var i = 0; i < itsmo.bus.selectTimeTable.TimeTables.length; i++) { if(itsmo.bus.selectTimeTable.TimeTables[i].Bus != null && itsmo.bus.selectTimeTable.TimeTables[i].Num != '0'){ for (var j = 0; j < itsmo.bus.selectTimeTable.TimeTables[i].Bus.length; j++) { var activeClass = ''; if(itsmo.bus.hourSelected == itsmo.bus.selectTimeTable.TimeTables[i].Hour && itsmo.bus.minSelected == itsmo.bus.selectTimeTable.TimeTables[i].Bus[j].Min){ $('.popup-content .c-search-tbl-area .time-box-tbl tbody tr td #timetable_dropdown').text( month + '月' + date + '日('+ dateOfWeek +')' + itsmo.bus.selectTimeTable.TimeTables[i].Hour + ':' + itsmo.bus.selectTimeTable.TimeTables[i].Bus[j].Min + '発' ); activeClass = 'focus-arival-time-item'; } str += '

' + month + '月' + date + '日(' + dateOfWeek +')'; str += itsmo.bus.selectTimeTable.TimeTables[i].Hour + ':' + itsmo.bus.selectTimeTable.TimeTables[i].Bus[j].Min + '発'; str += ''; str += ''; str += '

'; } } } } $('.popup-content .c-search-tbl-area .time-box-tbl tbody tr td .time-list').html(str); if(typeof(data.busStops) != 'undefined' && data.busStops.length > 0){ for (var i = 0; i < data.busStops.length; i++) { strlist += '

'+ data.busStops[i].arriveTime + '' + data.busStops[i].ename +'

'; } }else{ strlist += '

該当情報が見つかりませんでした。

'; } $('.popup-content .list-arrivaltime').html(strlist); itsmo.lib.map_windowopen('arrivaltime_window'); }; itsmo.bus.timeTableDropDown = function (){ $('.popup-content .c-search-tbl-area .time-box-tbl tbody tr td .time-list').toggle(); }; itsmo.bus.reloadArrivalTime = function (event) { if(itsmo.bus.isPremium){ $(".focus-arival-time-item").removeClass('focus-arival-time-item'); $(event).addClass('focus-arival-time-item'); $('#arrivaltime_window').show(); var dataPost = $('#valueRouteselected').val().split('-'); var bsStart = $.trim($('#bsStart').val()); var comStart = $.trim($('#comStart').val()); var rtName = dataPost[7]; var bsEnd = $(event).children("input[name='via']").val(); if(!bsEnd) { bsEnd = dataPost[4]; } var comEnd = dataPost[5]; var dropdownText = $(event).text(); $('.popup-content .c-search-tbl-area .time-box-tbl tbody tr td #timetable_dropdown').text(dropdownText); $('.popup-content .c-search-tbl-area .time-box-tbl tbody tr td .time-list').hide(); var datetime = $.trim($(event).find('#datetime').val()); var url = '/bus/ajaxGetArrivalTime.php?rtName=' + encodeURIComponent(rtName) + '&bsStart=' + encodeURIComponent(bsStart) + '&comStart=' + encodeURIComponent(comStart) + '&bsEnd=' + encodeURIComponent(bsEnd) + '&comEnd=' + encodeURIComponent(comEnd) + '&dateTime=' + datetime + ''; itsmo.lib.XMLHttpRequest2_send(url, itsmo.bus.reloadListArrivalTime , 'GET', '', 'json'); }else{ return false; } }; itsmo.bus.reloadListArrivalTime = function (data){ var strlist = ''; if(typeof data.busStops != 'undefined' && data.busStops.length > 0){ for (var i = 0; i < data.busStops.length; i++) { strlist += '

'+ data.busStops[i].arriveTime + '' + data.busStops[i].ename +'

'; } }else{ strlist += '

該当情報が見つかりませんでした。

'; } $('.popup-content .list-arrivaltime').html(strlist); }; itsmo.bus.redirectToRouteMap = function (){ var dataPost = $('#valueRouteselected').val().split('-'); var bsStart = $.trim($('#bsStart').val()); var comStart = $.trim($('#comStart').val()); var url = '/bus/route/' + bsStart + '〔' + comStart + '〕/' + dataPost[0] + '-' + dataPost[1] + '-' + dataPost[6]; location = url; };