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 += '' + data.timeFrom + '' + data.fromName + ' |
';
str += '到 着 | ';
str += '' + data.timeTo + '' + data.toName + ' |
';
str += '
';
$('.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;
};