/* global itsmo, lasUpMapType, ZDC, tsmo, facilityNumber, toTime, karaoke, manga, sauna, drink, restaurant, is_appStore, is_chrome_v35 */
itsmo.lasup = {};
itsmo.lasup.vars = {};
itsmo.lasup.vars.areas = {};
itsmo.lasup.vars.endStations = [];
itsmo.lasup.vars.endDelayStations = [];
itsmo.lasup.vars.stationsUnDraw = [];
if (typeof (lasUpMapType) != "undefined") {
itsmo.lasup.vars.mapType = lasUpMapType == 1 ? 'weekday' : 'holiday';
}
itsmo.lasup.vars.message = {
E220: '申し訳ございません。終電地図の対応エリアは東京・名古屋・大阪近郊です。',
I222: '出発駅を[param]に変更しました。',
I223: '出発駅のエリアが[param1]近郊エリアのため、到着駅を[param2]駅にしました。',
I8520: '出発駅を[param]駅に設定中。駅をタップすると出発駅に変更出来ます。',
F8520: '検索結果が見つかりませんでし,・検索範囲は中心から半径800m以内です。'
};
itsmo.lasup.vars.startStation = null;
itsmo.lasup.vars.goalStation = null;
itsmo.lasup.vars.detailBalloon = null;
itsmo.lasup.vars.currentTime = null;
itsmo.lasup.vars.ajaxEndStation = null;
itsmo.lasup.vars.ajaxDelayStartStation = null;
itsmo.lasup.vars.timmerDelayStartStation = null;
itsmo.lasup.vars.ajaxEndStationInfo = null;
itsmo.lasup.vars.currentViewArea = null;
itsmo.lasup.vars.station = {};
itsmo.lasup.vars.firstLoadPage = true;
itsmo.lasup.vars.title = '[param]駅の終電時刻・周辺の地図 | いつもNAVI';
itsmo.lasup.vars.hideStartStationMessage = null;
itsmo.lasup.init = function () {
if (itsmo.vars.g_map_obj == null){
return;
}
startStation = $.parseJSON(startStation);
var latlon = itsmo.lib.toLatLon(startStation.station_lat, startStation.station_lon);
itsmo.lasup.vars.startStation = {data: {
layerText: startStation.station_cd,
point: {lat: latlon.lat, lon: latlon.lon}
}, info: {
name: startStation.station_nm,
lat: latlon.lat,
lon: latlon.lon
}};
itsmo.lasup.drawStartStation(itsmo.lasup.vars.startStation);
setTimeout(function () {
itsmo.lasup.showMessage(itsmo.lasup.vars.message.I8520.replace(
'[param]', itsmo.lasup.vars.startStation.info.name));
}, 10);
var startStationName = itsmo.lasup.vars.startStation.info.name + '駅';
if (startStationName.length > 8){
startStationName = startStationName.substr(0,8) + '...';
}
$("#lasup-daytype-choosen .start-name").html(startStationName);
var daytype = '平日の時刻表';
switch (lasUpMapType) {
case '1':
daytype = '平日の時刻表';
$("#lasup-daytype-choosen #daytype-list #item1").addClass('selected');
break;
case '2':
daytype = '土曜の時刻表';
$("#lasup-daytype-choosen #daytype-list #item2").addClass('selected');
break;
case '3':
daytype = '日曜・祝日の時刻表';
$("#lasup-daytype-choosen #daytype-list #item3").addClass('selected');
break;
}
$('#lasup-daytype-choosen > .type').html(daytype);
$("#lasup-daytype-choosen #daytype-list .item").on('click', function () {
$('#lasup-daytype-choosen > .type').html($(this).find('.type').html());
$("#lasup-daytype-choosen #daytype-list .item").removeClass('selected');
$(this).addClass('selected');
var mapType = itsmo.lasup.detectMapType($(this).attr('daytype'));
if (mapType != itsmo.lasup.vars.mapType) {
itsmo.lasup.vars.mapType = mapType;
itsmo.lasup.drawEndStation();
}
});
itsmo.map.map_search_timer(false);
itsmo.facilityNight.initFacility();
itsmo.facilityNight.getFacilities(latlon);
};
itsmo.lasup.openUsePopup = function () {
itsmo.vars.g_screen_non = 0;
itsmo.lib.map_windowopen('use_lasup_window');
};
itsmo.lasup.closeUsePopup = function () {
itsmo.vars.g_screen_non = 0;
itsmo.lib.map_windowclose('use_lasup_window');
};
itsmo.lasup.detectMapType = function (dayType) {
return dayType == 1 ? 'weekday' : 'holiday';
};
itsmo.lasup.drawEndStation = function () {
itsmo.lasup.closeDetailBalloon();
for (var i in itsmo.lasup.vars.endStations) {
itsmo.lasup.drawEndStationWidget(itsmo.lasup.vars.endStations[i]);
}
for (var i in itsmo.lasup.vars.endDelayStations) {
itsmo.lasup.drawEndDelayStationWidget(itsmo.lasup.vars.endDelayStations[i]);
}
};
itsmo.lasup.drawEndStationWidget = function (station, outSize) {
var checkTime = null;
if (!outSize) {
if (station.widget != null) {
itsmo.vars.g_map_obj.removeWidget(station.widget);
}
var time = '------';
var info = station.info[itsmo.lasup.vars.mapType];
if (info['@attributes'].resCode == '200' && info['@attributes'].errCode == '0') {
if (info.charge != '0') {
var stationArea = itsmo.lasup.getStationArea(new ZDC.LatLon(
station.data.point.lat, station.data.point.lon
));
var goalStation = itsmo.lasup.vars.goalStation != null ?
itsmo.lasup.vars.goalStation : itsmo.lasup.vars.startStation;
var stationAreaGoal = itsmo.lasup.getStationArea(new ZDC.LatLon(
goalStation.data.point.lat, goalStation.data.point.lon
));
if (stationArea != null && stationAreaGoal != null && stationArea.alias == stationAreaGoal.alias) {
if (typeof (info.latestTimeFrom) == 'string') {
time = itsmo.lasup.toTime(2, 0, ':', info.latestTimeFrom);
checkTime = time.split(":");
}
}
} else {
time = '徒歩推奨';
}
} else if (info['@attributes'].errCode == '6') {
var meter = parseInt(station.info['@attributes'].meters);
if (meter <= 500) {
time = '徒歩推奨';
}
} else if (info['@attributes'].errCode == '-1004') {
time = '徒歩推奨';
}
var html = $("#lasup-medium-tpl").html();
var htmlOutDate = '';
if (checkTime != null && checkTime.length > 0) {
if (parseInt(checkTime[0]) >= 2 && parseInt(checkTime[0]) <= 6) {
htmlOutDate = 'out-of-date';
}
}
var classParam = '';
if (time == '徒歩推奨') {
classParam = htmlOutDate;
html = html.replace(/__walk__/g, 'ls-walk-icon');
} else {
classParam = htmlOutDate;
html = html.replace(/__walk__/g, '');
}
html = html.replace(/__eId__/g, station.info.eId);
html = html.replace(/__class__/g, classParam);
html = html.replace(/__time__/g, time);
itsmo.lasup.drawStationWidget(station, html, station.data.number_icon * 8 - 3);
classParam = null;
style = null;
htmlOutDate = null;
} else {
if (station.widget != null) {
itsmo.vars.g_map_obj.removeWidget(station.widget);
}
var time = '------';
var html = $("#lasup-medium-tpl").html();
html = html.replace(/__eId__/g, station.data.layerText);
html = html.replace(/__time__/g, time);
itsmo.lasup.drawStationWidget(station, html, station.data.number_icon * 8 - 3);
}
};
itsmo.lasup.initStationAreas = function () {
var temp = itsmo.lib.toLatLon(128441320, 503169540);
itsmo.lasup.vars.areas.tokyo = {
alias: 'tokyo',
name: '東京近郊',
area: new ZDC.LatLonBox(
itsmo.lib.toLatLon(126592030, 501157162),
itsmo.lib.toLatLon(130217450, 505674809)
),
station: {data: {
layerText: 2590,
point: {lat: temp.lat, lon: temp.lon}
}, info: {
name: '東京',
lat: temp.lat,
lon: temp.lon
}}
};
itsmo.lasup.drawArea([
itsmo.lib.toLatLon(126592030, 501157162),
itsmo.lib.toLatLon(126592030, 505674809),
itsmo.lib.toLatLon(130217450, 505674809),
itsmo.lib.toLatLon(130217450, 501157162),
itsmo.lib.toLatLon(126592030, 501157162)
], '#000000');
var temp = itsmo.lib.toLatLon(126602880, 492784520);
itsmo.lasup.vars.areas.nagoya = {
alias: 'nagoya',
name: '名古屋近郊',
area: new ZDC.LatLonBox(
itsmo.lib.toLatLon(125008469, 491741516),
itsmo.lib.toLatLon(127688730, 494868575)
),
station: {data: {
layerText: 4455,
point: {lat: temp.lat, lon: temp.lon}
}, info: {
name: '名古屋',
lat: temp.lat,
lon: temp.lon
}}
};
itsmo.lasup.drawArea([
itsmo.lib.toLatLon(125008469, 491741516),
itsmo.lib.toLatLon(125008469, 494868575),
itsmo.lib.toLatLon(127688730, 494868575),
itsmo.lib.toLatLon(127688730, 491741516),
itsmo.lib.toLatLon(125008469, 491741516)
], '#CC0033');
var temp = itsmo.lib.toLatLon(124915160, 487792030);
itsmo.lasup.vars.areas.kansai = {
alias: 'kansai',
name: '大阪近郊',
area: new ZDC.LatLonBox(
itsmo.lib.toLatLon(123639579, 485748575),
itsmo.lib.toLatLon(126394612, 489673281)
),
station: {data: {
layerText: 5006,
point: {lat: temp.lat, lon: temp.lon}
}, info: {
name: '大阪',
lat: temp.lat,
lon: temp.lon
}}
};
itsmo.lasup.drawArea([
itsmo.lib.toLatLon(123639579, 485748575),
itsmo.lib.toLatLon(123639579, 489673281),
itsmo.lib.toLatLon(126394612, 489673281),
itsmo.lib.toLatLon(126394612, 485748575),
itsmo.lib.toLatLon(123639579, 485748575)
], '#0099CC');
var stationTokyo = itsmo.lasup.vars.areas.tokyo.station;
var stationNagoya = itsmo.lasup.vars.areas.nagoya.station;
var stationKansai = itsmo.lasup.vars.areas.kansai.station;
var latlon = itsmo.lib.toMilliSec(stationTokyo.info.lat,stationTokyo.info.lon);
itsmo.lasup.vars.station.tokyo = {
station_nm: stationTokyo.info.name,
station_cd: stationTokyo.data.layerText,
station_lat: latlon.lat,
station_lon: latlon.lon
};
latlon = itsmo.lib.toMilliSec(stationNagoya.info.lat,stationNagoya.info.lon);
itsmo.lasup.vars.station.nagoya = {
station_nm: stationNagoya.info.name,
station_cd: stationNagoya.data.layerText,
station_lat: latlon.lat,
station_lon: latlon.lon
};
latlon = itsmo.lib.toMilliSec(stationKansai.info.lat,stationKansai.info.lon);
itsmo.lasup.vars.station.kansai = {
station_nm: stationKansai.info.name,
station_cd: stationKansai.data.layerText,
station_lat: latlon.lat,
station_lon: latlon.lon
};
};
itsmo.lasup.drawArea = function (latlons, strokeColor) {
itsmo.vars.g_map_obj.addWidget(new ZDC.Polyline(latlons, {
strokeWeight: 2,
strokeColor: strokeColor
}));
};
itsmo.lasup.drawStartStation = function (station) {
if (station.widget != null) {
itsmo.vars.g_map_obj.removeWidget(station.widget);
}
if (itsmo.lasup.vars.startStation.widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.startStation.widget);
}
if (itsmo.lasup.vars.goalStation != null && itsmo.lasup.vars.goalStation.widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.goalStation.widget);
}
var nameDisplay = station.info.name + '駅';
if (nameDisplay.length > 8) {
nameDisplay = nameDisplay.substr(0, 8);
nameDisplay += '...';
}
$("#lasup-daytype-choosen .start-name").html(nameDisplay);
itsmo.lasup.replaceUrl();
itsmo.lasup.drawStationWidget(station, '
出発駅
', 0);
};
itsmo.lasup.drawStationWidget = function (station, html, offsetX, offsetY) {
var size = itsmo.sub.getHtmlSize(html);
var w = size.width;
var h = size.height;
if (typeof offsetY == 'undefined') {
offsetY = -h + 26;
}
station.widget = new ZDC.UserWidget(new ZDC.LatLon(
station.data.point.lat, station.data.point.lon
), {
html: html,
size: size,
offset: new ZDC.Pixel(offsetX, offsetY)
});
itsmo.vars.g_map_obj.addWidget(station.widget);
station.widget.open();
station.widget.setZindex(itsmo.map.D_TIPZIDX_RANGE + 2);
};
itsmo.lasup.initEndStations = function () {
if (itsmo.lasup.vars.ajaxEndStation != null) {
itsmo.lib.XMLHttpRequest2_abort(itsmo.lasup.vars.ajaxEndStation);
}
if (itsmo.lasup.vars.ajaxDelayStartStation != null) {
itsmo.lib.XMLHttpRequest2_abort(itsmo.lasup.vars.ajaxDelayStartStation);
}
if (itsmo.lasup.vars.ajaxEndStationInfo != null) {
itsmo.lib.XMLHttpRequest2_abort(itsmo.lasup.vars.ajaxEndStationInfo);
}
var latlon = itsmo.vars.g_map_obj.getLatLon();
var zoom = itsmo.vars.g_map_obj.getZoom();
var paramsQuery = {
'zoom': zoom + 1,
'isPC': '1',
'latlon': latlon.lat + ',' + latlon.lon
};
var area = itsmo.lasup.getStationArea(latlon);
if (area != null) {//Has area
if (itsmo.lasup.vars.currentViewArea != null) {//Has viewer area before
if (area.alias != itsmo.lasup.vars.currentViewArea.alias) {//Area changed
itsmo.lasup.vars.currentViewArea = area;
var homeArea = itsmo.lasup.getStationArea(new ZDC.LatLon(
itsmo.lasup.vars.startStation.data.point.lat,
itsmo.lasup.vars.startStation.data.point.lon
));
if (itsmo.lasup.vars.goalStation != null
&& itsmo.lasup.vars.goalStation.widget != null)
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.goalStation.widget);
for (var i in itsmo.lasup.vars.endStations) {
if (itsmo.lasup.vars.endStations[i].widget != null)
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endStations[i].widget);
}
itsmo.lasup.vars.endStations = [];
if (area.alias != homeArea.alias) {
itsmo.lasup.vars.goalStation = area.station;
setTimeout(function () {
itsmo.lasup.showMessage(itsmo.lasup.vars.message.I223.replace(
'[param1]', area.name).replace('[param2]', area.station.info.name));
}, 10);
itsmo.lasup.drawStartStation(itsmo.lasup.vars.goalStation);
} else {
itsmo.lasup.vars.goalStation = null;
itsmo.lasup.drawStartStation(itsmo.lasup.vars.startStation);
setTimeout(function () {
itsmo.lasup.showMessage(itsmo.lasup.vars.message.I222.replace(
'[param]', decodeURI(itsmo.lasup.vars.startStation.info.name)
));
}, 10);
}
}
} else {//Hasn't viewer before
itsmo.lasup.vars.currentViewArea = area;
var homeArea = itsmo.lasup.getStationArea(new ZDC.LatLon(
itsmo.lasup.vars.startStation.data.point.lat,
itsmo.lasup.vars.startStation.data.point.lon
));
if (area.alias != homeArea.alias) {
for (var i in itsmo.lasup.vars.endStations) {
if (itsmo.lasup.vars.endStations[i].widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endStations[i].widget);
}
}
itsmo.lasup.vars.endStations = [];
if (itsmo.lasup.vars.goalStation != null
&& itsmo.lasup.vars.goalStation.widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.goalStation.widget);
}
itsmo.lasup.vars.goalStation = area.station;
setTimeout(function () {
itsmo.lasup.showMessage(itsmo.lasup.vars.message.I223.replace('[param1]', area.name)
.replace('[param2]', decodeURI(area.station.info.name)));
}, 10);// Show message after set home message
itsmo.lasup.vars.hideStartStationMessage = true;
itsmo.lasup.drawStartStation(itsmo.lasup.vars.goalStation);
}
}
}
itsmo.lasup.vars.ajaxEndStation = itsmo.lib.XMLHttpRequest2_send(
'/map/get_goal_station.php', function (data) {
setTimeout(function () {
itsmo.lasup.currentLocationInStationArea();
}, 2000);
if (data.status == 200) {
var stations = [];
if (data.item.length > 0) {
var goalStation = itsmo.lasup.vars.goalStation != null ?
itsmo.lasup.vars.goalStation : itsmo.lasup.vars.startStation;
var dataRequest = {s: goalStation.data.layerText, e: [], isLasup: '1'};
$.each(data.item, function (i, item) {
if (item.drawFlag && item.layerText != null) {
if (dataRequest.s != item.layerText) {
stations[item.layerText] = {data: item};
}
}
});
var stationArea;
var stationAreaGoal = itsmo.lasup.getStationArea(new ZDC.LatLon(
goalStation.data.point.lat, goalStation.data.point.lon
));
for (var i in stations) {
if (itsmo.lasup.vars.endStations[i] == null) {
stationArea = itsmo.lasup.getStationArea(new ZDC.LatLon(
stations[i].data.point.lat, stations[i].data.point.lon
));
if (stationArea != null && stationAreaGoal != null
&& stationArea.alias == stationAreaGoal.alias)
{
dataRequest.e.push(i);
} else {
itsmo.lasup.vars.stationsUnDraw.push(stations[i]);
itsmo.lasup.drawEndStationWidget(stations[i], true);
}
}
}
for (var i in itsmo.lasup.vars.endDelayStations) {
if (itsmo.lasup.vars.endDelayStations[i].widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endDelayStations[i].widget);
}
}
itsmo.lasup.vars.endDelayStations = [];
if (dataRequest.e.length > 0) {
itsmo.lasup.getInfoStations(dataRequest, stations);
}
}
}
}, 'GET', paramsQuery, 'json');
};
itsmo.lasup.getStationArea = function (latLon) {
var stationArea = null;
$.each(itsmo.lasup.vars.areas, function (i, item) {
if (item.area.isLatLonInclude(latLon)) {
stationArea = item;
return;
}
});
return stationArea;
};
itsmo.lasup.currentLocationInStationArea = function () {
var latlon = itsmo.vars.g_map_obj.getLatLon();
var area = itsmo.lasup.getStationArea(latlon);
if (area == null) {
itsmo.lasup.showMessage(itsmo.lasup.vars.message.E220);
} else {
itsmo.lasup.closeMessage();
}
};
itsmo.lasup.drawEndDelayStationWidget = function (station) {
if (station.widget != null) {
itsmo.vars.g_map_obj.removeWidget(station.widget);
}
var html = $("#lasup-medium-tpl").html();
html = html.replace(/__eId__/g, '');
html = html.replace(/__time__/g, '----');
html = html.replace(/__class_/g, '');
itsmo.lasup.drawStationWidget(station, html, station.data.number_icon * 8 - 3);
};
itsmo.lasup.showMessage = function (message) {
$('#ajax_mapbor #bottom-message').html(message);
$('#ajax_mapbor #bottom-message').show();
setTimeout(function () {
$('#ajax_mapbor #bottom-message').hide();
}, 3000);
};
itsmo.lasup.closeMessage = function () {
$('#ajax_mapbor #bottom-message').hide();
};
itsmo.lasup.mapChangeZoom = function () {
itsmo.lasup.closeDetailBalloon();
itsmo.lasup.closeMessage();
clearTimeout(itsmo.lasup.vars.timmerDelayStartStation);
for (var i in itsmo.lasup.vars.endStations) {
if (itsmo.lasup.vars.endStations[i].widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endStations[i].widget);
}
}
for (var i in itsmo.lasup.vars.endDelayStations) {
if (itsmo.lasup.vars.endDelayStations[i].widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endDelayStations[i].widget);
}
}
for (var i in itsmo.lasup.vars.stationsUnDraw) {
if (itsmo.lasup.vars.stationsUnDraw[i].widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.stationsUnDraw[i].widget);
}
}
itsmo.lasup.vars.endStations = [];
itsmo.lasup.vars.stationsUnDraw = [];
itsmo.lasup.vars.endDelayStations = [];
};
itsmo.lasup.mapDragEnd = function () {
itsmo.lasup.closeMessage();
};
itsmo.lasup.drawDetailBalloon = function (code) {
itsmo.lasup.closeDetailBalloon();
if (itsmo.lasup.vars.endStations[code] == null) {
return;
}
var station = itsmo.lasup.vars.endStations[code];
var goalStation = itsmo.lasup.vars.goalStation != null
? itsmo.lasup.vars.goalStation : itsmo.lasup.vars.startStation;
var info = station.info[itsmo.lasup.vars.mapType];
var fromTime = toTime = chargeFare = '----';
if (info['@attributes'].resCode == '200' && info['@attributes'].errCode == '0') {
if (info.charge != '0') {
var stationArea = itsmo.lasup.getStationArea(new ZDC.LatLon(
station.data.point.lat, station.data.point.lon
));
var stationAreaGoal = itsmo.lasup.getStationArea(new ZDC.LatLon(
goalStation.data.point.lat, goalStation.data.point.lon
));
if (stationArea != null && stationAreaGoal != null && stationArea.alias == stationAreaGoal.alias) {
if (typeof (info.latestTimeFrom) == 'string') {
fromTime = itsmo.lasup.toTime(2, 0, ':', info.latestTimeFrom);
}
if (typeof (info.latestTimeTo) == 'string') {
toTime = itsmo.lasup.toTime(2, 0, ':', info.latestTimeTo);
}
if (typeof (info.charge) == 'string') {
chargeFare = info.charge + '円';
}
}
}
} else if (info['@attributes'].errCode == '-1004') {
fromTime = '徒歩推奨';
} else if (info['@attributes'].errCode == '6') {
var meter = parseInt(station.info['@attributes'].meters);
if (meter <= 500) {
fromTime = '徒歩推奨';
}
}
var html = $("#lasup-large-tpl").html();
var htmlOutDate = '';
if (fromTime == '徒歩推奨') {
html = html.replace(/__cost__/g, '');
html = html.replace(/__time__/g, '※ 徒歩推奨');
html = html.replace(/__walk__/g, 'ls-walk-icon');
} else if (fromTime == '----') {
html = html.replace(/__cost__/g, chargeFare);
html = html.replace(/__time__/g, fromTime);
html = html.replace(/__walk__/g, '');
} else {
html = html.replace(/__cost__/g, chargeFare);
html = html.replace(/__time__/g, fromTime + ' → ' + toTime);
html = html.replace(/__walk__/g, '');
var checkTime = toTime.split(":");
if (checkTime != null && checkTime.length > 0) {
if (parseInt(checkTime[0]) >= 2 && parseInt(checkTime[0]) <= 6) {
htmlOutDate = 'out-of-date';
}
}
}
html = html.replace(/__classTime__/g, htmlOutDate);
html = html.replace(/__start__/g, decodeURI(goalStation.info.name));
html = html.replace(/__seId__/g, goalStation.data.layerText);
html = html.replace(/__end__/g, station.info.name);
html = html.replace(/__eId__/g, station.info.eId);
html = html.replace(/__lat__/g, station.info.lat);
html = html.replace(/__lon__/g, station.info.lon);
var size = itsmo.sub.getHtmlSize(html);
var offset = new ZDC.Pixel(station.data.number_icon * 8 - 3, 0);
itsmo.lasup.vars.detailBalloon = new ZDC.UserWidget(new ZDC.LatLon(
station.data.point.lat, station.data.point.lon), {
html: html,
size: size,
offset: offset
});
itsmo.vars.g_map_obj.addWidget(itsmo.lasup.vars.detailBalloon);
itsmo.lasup.vars.detailBalloon.setZindex(itsmo.map.D_TIPZIDX_RANGE + 3);
itsmo.lasup.vars.detailBalloon.open();
itsmo.vars.g_map_obj.moveLatLon(new ZDC.LatLon(station.data.point.lat, station.data.point.lon));
};
itsmo.lasup.closeDetailBalloon = function () {
if (itsmo.lasup.vars.detailBalloon != null) {
itsmo.lasup.vars.detailBalloon.close();
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.detailBalloon);
}
};
itsmo.lasup.setStartStation = function (code) {
if (itsmo.lasup.vars.endStations[code] == null) {
return;
}
var station = itsmo.lasup.vars.endStations[code];
itsmo.lasup.closeDetailBalloon();
setTimeout(function () {
var msg = itsmo.lasup.vars.message.I222.replace('[param]', station.info.name);
itsmo.lasup.showMessage(msg);
}, 200);
if (itsmo.lasup.vars.goalStation != null && itsmo.lasup.vars.goalStation.widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.goalStation.widget);
}
itsmo.lasup.vars.goalStation = station;
for (var i in itsmo.lasup.vars.endStations) {
if (itsmo.lasup.vars.endStations[i].widget != null) {
itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endStations[i].widget);
}
}
itsmo.lasup.vars.endStations = [];
itsmo.lasup.drawStartStation(itsmo.lasup.vars.goalStation);
itsmo.lasup.vars.startStation = itsmo.lasup.vars.goalStation;
itsmo.lasup.initEndStations();
};
itsmo.lasup.startDelayStationInfo = function (startDelayStations, stations) {
itsmo.lasup.vars.ajaxDelayStartStation = itsmo.lib.XMLHttpRequest2_send(
'/map/start_to_home_station_info.php', function (result) {
if (result.success) {
if (result.data.startStations != null) {
$.each(result.data.startStations.item, function (i, item) {
if (stations[item.eId] != null) {
itsmo.lasup.vars.endStations[item.eId] = stations[item.eId];
itsmo.lasup.vars.endStations[item.eId].info = item;
if (itsmo.lasup.vars.endDelayStations[item.eId] != null
&& itsmo.lasup.vars.endDelayStations[item.eId].widget != null) {
itsmo.vars.g_map_obj.removeWidget(
itsmo.lasup.vars.endDelayStations[item.eId].widget
);
}
itsmo.lasup.drawEndStationWidget(
itsmo.lasup.vars.endStations[item.eId]
);
delete itsmo.lasup.vars.endDelayStations[item.eId];
}
});
}
if(itsmo.lasup.vars.firstLoadPage) {
itsmo.sub.onHashChange();
itsmo.lasup.vars.firstLoadPage = false;
}
} else {
// Handle when error
}
}, 'GET', startDelayStations, 'json');
};
itsmo.lasup.getInfoStations = function (dataRequest, stations) {
itsmo.lasup.vars.ajaxEndStationInfo = itsmo.lib.XMLHttpRequest2_send(
'/map/start_to_home_station_info.php', function (result) {
if (result.success) {
itsmo.lasup.vars.currentTime = result.currentTime;
if (result.data.startStations != null) {
$.each(result.data.startStations.item, function (i, item) {
if (stations[item.eId] != null) {
itsmo.lasup.vars.endStations[item.eId] = stations[item.eId];
itsmo.lasup.vars.endStations[item.eId].info = item;
itsmo.lasup.drawEndStationWidget(
itsmo.lasup.vars.endStations[item.eId]
);
}
});
}
if (result.data.startDelayStations.e.length > 0) {
$.each(result.data.startDelayStations.e, function (i, code) {
itsmo.lasup.vars.endDelayStations[code] = stations[code];
itsmo.lasup.drawEndDelayStationWidget(
itsmo.lasup.vars.endDelayStations[code]
);
});
itsmo.lasup.vars.timmerDelayStartStation = setTimeout(function () {
result.data.startDelayStations.isLasup = '1';
itsmo.lasup.startDelayStationInfo(result.data.startDelayStations, stations);
}, 3000);
} else if (itsmo.lasup.vars.firstLoadPage){
itsmo.sub.onHashChange();
itsmo.lasup.vars.firstLoadPage = false;
}
} else {
// Handle when error
}
}, 'GET', dataRequest, 'json');
};
itsmo.lasup.toTime = function (idx, rem, s, string) {
return string.slice(0, idx) + s + string.slice(idx + Math.abs(rem));
};
itsmo.lasup.replaceUrl = function () {
var stationCodeOld = itsmo.lasup.vars.startStation.data.layerText;
var stationCodeNew = itsmo.lasup.vars.goalStation;
var hash = window.location.hash;
var url = '';
if (stationCodeNew != null) {
stationCodeNew = itsmo.lasup.vars.goalStation.data.layerText;
}else{
stationCodeNew = itsmo.lasup.vars.startStation.data.layerText;
}
url += stationCodeNew;
url += hash;
history.replaceState(stationCodeOld, "obj", url);
return false;
};
itsmo.lasup.getStartStation = function (latlon) {
if (!latlon){
itsmo.lasup.getCurrentPosition();
return;
}
var area = itsmo.lasup.getStationArea(latlon);
if (!area){
startStation = itsmo.lasup.vars.station.tokyo;
$('title').text(itsmo.lasup.vars.title.replace('[param]',startStation.station_nm));
startStation = JSON.stringify(startStation);
itsmo.lasup.init();
var latlon = itsmo.lib.toLatLon(startStation.station_lat, startStation.station_lon);
itsmo.vars.g_map_obj.moveLatLon(latlon);
itsmo.lasup.initEndStations();
return;
} else {
itsmo.lasup.vars.currentViewArea = area;
}
latlon = itsmo.lib.toMilliSec(latlon.lat,latlon.lon);
var lat = latlon.lat;
var lon = latlon.lon;
var url = '/lasup/ajaxSearchStartStation.php?lat=' + lat + '&lon=' + lon;
itsmo.lib.XMLHttpRequest2_send(url, itsmo.lasup.getStartStationCallback, 'GET', '', 'json');
};
itsmo.lasup.getStartStationCallback = function(data) {
if (!data){
var area = itsmo.lasup.vars.currentViewArea.alias;
startStation = itsmo.lasup.vars.station[area];
} else {
startStation = data;
}
$('title').text(itsmo.lasup.vars.title.replace('[param]',startStation.station_nm));
startStation = JSON.stringify(startStation);
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.lasup.getCurrentPosition = function(){
itsmo.lib.map_wait2open('位置情報取得中...');
navigator.geolocation.getCurrentPosition(
function (position) {
var latlon = new ZDC.LatLon(position.coords.latitude, position.coords.longitude);
latlon = ZDC.wgsTotky(latlon);
itsmo.lib.map_wait2close();
itsmo.lasup.getStartStation(latlon);
}
, function (err) {
var latlon = itsmo.lib.toLatLon(itsmo.lasup.vars.station.tokyo.station_lat, itsmo.lasup.vars.station.tokyo.station_lon);
itsmo.lib.map_wait2close();
itsmo.lasup.getStartStation(latlon);
}
, {enableHighAccuracy: true, timeout: 10 * 1000, maximumAge: 20 * 1000}
);
};