var isBlueTheme=true;var themecolor="#0055b8";var bmmodeline="#0055b8";var v_slide_d="v-slide-d-0623.png";var v_slide="v-slide-0623.png";var stop_marker="busstop_marker_purple.png";var shareauto=0;
var mouseonfeature = null;
var acode=1;
var lsearchday="";
var rsortmode=1;
var sn=0;
var sys_nearby=0;
var sys_nearby_radius=250;
var lastlat=0.0;
var lastlon=0.0;
var bmlat=0.0;
var bmlon=0.0;
var sysseq=0;
var errorcnt=0;
var v_ustatus="";
var hadjust=0;
var ppresult='';
var ppresult2='';
var ppresult3='';
var kmblink='';
var nwfblink='';
var map;
var view;
var layerLines;
var trafficSource = new ol.source.Vector({});
var ptSource = new ol.source.Vector({});
var vectorSource = new ol.source.Vector({});
var stopSource = new ol.source.Vector({});
var circleSource = new ol.source.Vector({});
var walkSource = new ol.source.Vector({style: styleFunction});
var lineSource = new ol.source.Vector({});
var popup;
var markerpopup;
var mappopupelement;
var hotspotpopup;
var hotspotpopupelement;
var popupposition=null;
var startname="";
var startlat=0.0;
var startlon=0.0;
var endname="";
var endlat=0.0;
var endlon=0.0;
var lastname="";
var lastlat=0.0;
var lastlon=0.0;
var markers = new Array(1000);
var markercodes = new Array(1000);
var markerlat = new Array(1000);
var markercount=0;
var stopNearbyMarkers = new Array(1000); // nearby markers for route detail's selected stop
var stopNearbyMarkercodes = new Array(1000);
var stopNearbyMarkerlat = new Array(1000);
var stopNearbyMarkercount=0;
var circle = new ol.geom.Circle(ol.proj.transform([114.173, 22.3], 'EPSG:4326', 'EPSG:3857'), 1000);
var CircleFeature = new ol.Feature(circle);
var circleC = new ol.geom.Point(ol.proj.transform([114.173, 22.3], 'EPSG:4326', 'EPSG:3857'));
var CircleFeatureC = new ol.Feature(circleC);
var CircleLayer
var linecount = 0;
var maxlinecount = 0;
var mapLayerPtStr = "";
var mapLayerPtLat = 0.0;
var mapLayerPtLon = 0.0;
var mapLayerRadius = 0.0;
var layerCenterMap2 = "";
var layermark1 = [0,0,0,0,0,0,0,0,0,0];
var layermark2 = [0,0,0,0,0,0,0,0,0,0];
var layerpt = [1,2,81,7,4,5,80];
var bookmarkmode=0;
var bookmarkno=0;
var skipmapclick=0;
var sys_audio=0;
var lastP2PResultListScrollY = 0;
var lastP2PResultListPopUpScrollY = 0;
var lastP2PResultListViewMode = 0; //0=normal list, 1=popup list
var autoRouteSearch_info = "";
var autoRouteSearch_rdv = "";
var autoRouteSearch_r = "";
var autoRouteSearch_d = "";
var autoRouteSearch_v = "";
var autoRouteSearch_bound = "";
var autoRouteSearch_stopid = "";
var hihi = "hihi 2";
var recaptcha_rendered = false;
var recaptchaId = "";
var recaptcha_type = "";
var recaptcha_value = "";
var recaptcha_check_called = false;
var recaptcha_key = "";
function gosearchclick(){
lastP2PResultListScrollY = 0;
lastP2PResultListPopUpScrollY = 0;
lastP2PResultListViewMode = 0; //0=normal list, 1=popup list
lsearchday=document.getElementById('search_day').innerHTML;
ppsearch_p3(document.ppsearch.slat.value,document.ppsearch.slon.value,document.ppsearch.elat.value,document.ppsearch.elon.value ,document.getElementById('walkingspeed').value,document.getElementById('leg').value, getselectloc(), getselectdate());
goresize();
}
function initmap(){
}
var trafficInfoObject = {
init : true,
drawjourney :false,
drawspeedmap : false,
drawcctv : false,
drawsmp : false,
timer : null,
journey : [],
journeydata : [],
speedmap : [],
cctv : [],
smp : [],
cctvCallbackCloseMarkers : false,
drawSpeedMap : function drawSpeedMap(){ godrawspeedmap(); },
drawCCTVMarker : function drawCCTVMarker(){ godrawcctvmarker(); },
drawJourneyMarker : function drawJourneyMarker(){ godrawjourneymarker(); },
drawSMPMarker : function drawSMPMarker(){ godrawsmpmarker();}
}
var styleFunction = function(feature) {
var geometry = feature.getGeometry();
var styles = [
// linestring
new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#ffcc33',
width: 2
})
})
];
geometry.forEachSegment(function(start, end) {
var dx = end[0] - start[0];
var dy = end[1] - start[1];
var rotation = Math.atan2(dy, dx);
// arrows
styles.push(new ol.style.Style({
geometry: new ol.geom.Point(end),
image: new ol.style.Icon({
src: 'icons/barrow.png',
anchor: [0.75, 0.5],
rotateWithView: true,
rotation: -rotation
})
}));
});
return styles;
};
function setdiv(dname,str){
document.getElementById(dname).innerHTML=str;
}
function initsystem(){
}
function sortclick(no){
var glist = "s_clock.png|s_price.png|s_work.png";
var aaa = glist.split("|");
for(var i=1; i<=3; i++){
var tobj = document.getElementById("rsort"+i);
var iobj = document.getElementById("rsortimg"+i);
if(tobj){
if(i==no){
tobj.style.backgroundColor=themecolor;
iobj.src="w_"+aaa[i-1];
tobj.style.color="#FFFFFF";
}else{
tobj.style.backgroundColor="";
iobj.src="b_"+aaa[i-1];
tobj.style.color="#444444";
}
}
}
rsortmode=no;
}
function getlatlon_td(key, route, stopid, appcall){
makeRequest('getlatlon_td.php?key='+key+'&route='+route+'&stopid='+stopid+'&appcall='+appcall+'&l='+lang,'dummydiv');
}
function geteta_td(route, stopid, lon, lat, key, appcall){
if(lon=="" || lat==""){
alert("Invalid TD ETA Call!");
return;
}
tlon = parseFloat(lon);
tlat = parseFloat(lat);
var coord = ol.proj.transform([tlon, tlat], 'EPSG:4326', 'EPSG:3857');
markerpopup.setPosition(coord);
//showmarkerpopupinfo(undefined)
var z = Math.floor(map.getView().getZoom());
if(z>=10 && z<=18){
var coord2 = ol.proj.transform([tlon+difflon[z], tlat-difflat[z]], 'EPSG:4326', 'EPSG:3857');
mappantoxy(coord2);
}
ajaxindex++;
makeRequestref('getrouteinstop_o.php?callfrom=td&route='+route+'&stopid='+stopid+'&lat='+lat+'&lon='+lon+'&key='+key+'&appcall='+appcall+'&l='+lang,'popupcontent',ajaxindex);
document.getElementById('redcross').style.visibility='hidden';
currentlist=0;
}
function showtraffic(){
cleartraffic();
if(layermark1[0]==1) makeRequest('loadsmp.php','*jscode*');
if(layermark1[1]==1) makeRequest('loadjtime.php','*jscode*');
if(layermark1[2]==1) makeRequest('loadspeedmap.php','*jscode*');
if(layermark1[3]==1) makeRequest('loadcctv.php','*jscode*');
loadptstop();
}
function loadptstop(){
var plist="";
for(var i=0; i<7; i++){
if(layermark2[i]==1) plist +=","+layerpt[i];
}
if(plist!=""){
plist = plist.substring(1);
var coord = ol.proj.transform(map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326');
var lon = coord[0]+alon;
var lat = coord[1]+alat;
calldummy('loadptstop.php?type='+plist+'&lat='+lat+'&lon='+lon);
}
}
function cleartraffic(){
lineSource.clear();
trafficSource.clear();
ptSource.clear();
}
function removeMarkersByType(type,layer){
ptSource.clear();
}
function buildPtMarker(){
var aaa = mapLayerPtStr.split("|*|");
for(var i=0; i10){
var bbb = rec.split("||");
var lon = parseFloat(bbb[0]);
var lat = parseFloat(bbb[1]);
var type = parseInt(bbb[3]);
var name = bbb[2];
var link = bbb[5];
var code='b';
if(type==1) code='b';
if(type==2) code='g';
if(type==3) code='m';
if(type==4) code='t';
if(type==5) code='p';
if(type==6) code='l';
if(type==7) code='f';
if(type==13) code='m';
if(type==15) code='a';
if(type==20) code='r';
if(type==80) code='a';
if(type==81) code='m';
trafficmarker(code, lat, lon, name, link);
}
}
}
function removeline() {
linecount=0;
cleartraffic();
}
function godrawsmpmarker(){
$.each( trafficInfoObject.smp, function( key, value ) {
trafficmarker('S', value.lat, value.lon, value.name, value.link);
});
}
function godrawjourneymarker(){
$.each( trafficInfoObject.journey, function( key, value ) {
var name = value.tc_name;
if(lang==1) name = value.en_name;
if(lang==2) name = value.sc_name;
trafficmarker('J', value.lat, value.lon, value.loc_id+": "+name, "");
});
}
function godrawcctvmarker(){
$.each( trafficInfoObject.cctv, function( key, value ) {
trafficmarker('C', value.lat, value.lon, value.id+": "+value.name, value.url);
});
}
function godrawspeedmap(){
lineSource.clear();
var lineStyle = [];
for(var i=0; i<3; i++){
if(i==0) color='#00FF00';
if(i==1) color='#FF0000';
if(i==2) color='#FFFF00';
lineStyle[i] = new ol.style.Style({
stroke: new ol.style.Stroke(({
color: color,
width: 3
}))
});
}
var pointsgreen = [];
var pointsred = [];
var pointsblue = [];
$.each( trafficInfoObject.speedmap, function( key, value ) {
var i=0;
if(value.color=='G') i=0;
if(value.color=='R') i=1;
if(value.color=='Y') i=2;
var segment = [];
$.each( this.lines, function( key2, value2 ) {
segment.push(ol.proj.transform( [value2.lon+alon, value2.lat+alat], 'EPSG:4326', 'EPSG:3857'));
});
if(i==0) pointsgreen.push(segment);
if(i==1) pointsred.push(segment);
if(i==2) pointsblue.push(segment);
});
var greenline = new ol.Feature({
geometry: new ol.geom.MultiLineString(pointsgreen),
name: "Line"
});
greenline.setStyle(lineStyle[0]);
var redline = new ol.Feature({
geometry: new ol.geom.MultiLineString(pointsred),
name: "Line"
});
redline.setStyle(lineStyle[1]);
var blueline = new ol.Feature({
geometry: new ol.geom.MultiLineString(pointsblue),
name: "Line"
});
blueline.setStyle(lineStyle[2]);
lineSource.addFeature(greenline);
lineSource.addFeature(redline);
lineSource.addFeature(blueline);
}
function clearwalkline(){
walkSource.clear();
}
function drawwalkline(slat,slon,elat,elon){
var dist = getDistanceFromLatLonInKm(slat,slon,elat,elon);
var step = Math.ceil(dist/0.1);
var lineStyle = new ol.style.Style({
stroke: new ol.style.Stroke(({
color: '#0000FF',
lineDash: [.1, 5],
width: 3
}))
});
var dx = slon - elon;
var dy = slat - elat;
var rotation = Math.atan2(dy, dx);
for(var i=0; i1 && info.substring(0,1)=="*") info=info.substring(1);
overlay.setPosition(evt.coordinate);
var aaa = info.split("{");
if(info.indexOf("|*")>0){
aaa = info.split("|*");
}
if(aaa.length==1) aaa = info.split("||");
tooltip.innerHTML = aaa[0];
debug(tooltip.innerHTML);
}else{
overlay.setPosition(undefined);
}
}
map = new ol.Map({
interactions: interactions, //Block Rotation
controls : ol.control.defaults({
attribution : false,
zoom : true,
}).extend([
scaleLineControl
]),
target: "map",
layers: [
new ol.layer.Tile({
source: new ol.source.XYZ({
tilePixelRatio: 2,
url: 'https://map.citybus.com.hk/map/HJP/TC{z}/{x}-{y}.jpg?v=202401',
//url: 'https://map.nwstbus.com.hk/map/SJP/TC{z}/{x}-{y}.jpg',
//url: 'http://mobile.nwstbus.com.hk/map/HJP/TC13/6690-3572.jpg',
wrapX: false
})
}),
CircleLayer,
new ol.layer.Vector({
source: lineSource
}),
new ol.layer.Vector({
source: walkSource
}),
new ol.layer.Vector({
source: trafficSource
}),
new ol.layer.Vector({
source: ptSource
}),
new ol.layer.Vector({
source: stopSource
}),
new ol.layer.Vector({
source: vectorSource
}),
new ol.layer.Vector({
source: tramRailSource
}),
new ol.layer.Vector({
source: csNearByStopSource
})
],
view: view
});
//applyInitialUIState();
//applyMargins();
mappopupelement = document.getElementById('markerpopup');
hotspotpopupelement = document.getElementById('hotspotpopup');
var overlay = new ol.Overlay({
element: tooltip,
offset: [10, 0],
positioning: 'bottom-left'
});
map.addOverlay(overlay);
popup = new ol.Overlay({
element: document.getElementById('popup'),
autoPan: true,
autoPanAnimation: {
duration: 250
}
});
map.addOverlay(popup);
markerpopup = new ol.Overlay({
element: mappopupelement,
positioning: 'bottom-center',
stopEvent: true
});
map.addOverlay(markerpopup);
hotspotpopup = new ol.Overlay({
element: hotspotpopupelement,
positioning: 'bottom-center',
stopEvent: true
});
map.addOverlay(hotspotpopup);
map.getViewport().addEventListener('contextmenu', function (evt) {
closeautocom();
mapstandclick(evt);
downmark=0;
});
map.getViewport().addEventListener('click', function (evt) {
closeautocom();
if(downmark==2 && mouseonfeature==null){
}else{
mapstandclick(evt);
}
downmark=0;
});
var downmark=0;
var mousex=0;
var mousey=0;
map.getViewport().addEventListener('mousedown', function (evt) {
downmark=1;
mousex=evt.layerX;
mousey=evt.layerY;
});
map.getViewport().addEventListener('mousemove', function (evt) {
if( (Math.abs(mousex-evt.layerX)>3 || Math.abs(mousey-evt.layerY)>3) && downmark==1) downmark=2;
});
function mapstandclick(evt){
redrawMarkerIcon();
mouseonfeature = null;
evt.preventDefault();
var location = map.getCoordinateFromPixel([evt.layerX, evt.layerY]);
var coord = ol.proj.transform(location, 'EPSG:3857', 'EPSG:4326');
var lon = coord[0];
var lat = coord[1];
for(var i=markercount-1; i>=0; i--){
var tempfeature = markers[i];
var geometry = tempfeature.getGeometry();
var flocation = geometry.getCoordinates();
var pix = map.getPixelFromCoordinate(flocation);
var pix = map.getPixelFromCoordinate(flocation);
var sizex = markersize[i][0]/2;
var sizey = markersize[i][1]/2;
var offx = markersize[i][2]/2;
var offy = markersize[i][3]/2;
if(markersize[i][1]<70 && Math.abs(evt.layerX-pix[0]-offx)=0; i--){
var tempfeature = stopNearbyMarkers[i];
var geometry = tempfeature.getGeometry();
var flocation = geometry.getCoordinates();
var pix = map.getPixelFromCoordinate(flocation);
var pix = map.getPixelFromCoordinate(flocation);
var sizex = stopNearbyMarkersize[i][0]/2;
var sizey = stopNearbyMarkersize[i][1]/2;
var offx = stopNearbyMarkersize[i][2]/2;
var offy = stopNearbyMarkersize[i][3]/2;
if(stopNearbyMarkersize[i][1]<70 && Math.abs(evt.layerX-pix[0]-offx)0){
nnn1 = s.split("[");
nnn2 = nnn1[1].split("]");
var temp = '||0||0||0';
var etainfo = nnn2.concat(temp);
makeRequest('auto_9c16716c8c2f4918912936ac89a14679.php?info='+etainfo,'dummydiv');
/* ??? */
var infos = s.split("||");
var newImg = infos[4];
if (infos[4] == "stop3.png")
newImg = "stop3b.png";
offx = infos[7];
offy = infos[8];
amode='pixels';
ax=(-offx)*2;
ay=(-offy);
if(sizex==15){
ax=0.5;
ay=0.5;
amode='fraction';
}
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
scale: 1,
anchor: [ax,ay],
anchorXUnits: amode,
anchorYUnits: amode,
opacity: 1,
src: newImg
}))
});
mouseonfeature.setStyle(iconStyle);
}
if(s.length>1 && s.indexOf("|*|")>0)
nearbyclickpopup(feature);
else if(s.length>1 && s.substring(0,1)=="*")
hotspotclickpopup(feature)
else
markerclickpopup(feature)
return;
}
}else{
if(hotspotpopup.getPosition()!=undefined)
hotspotpopup.setPosition(undefined);
else if(markerpopup.getPosition()!=undefined)
markerpopup.setPosition(undefined);
else if (CircleLayer.getVisible()){
// do nothing
}
else
maparepopup(location,lat,lon);
}
}
//map.on('singleclick', function(evt) {
// mapclickaction(evt,evt.coordinate);
//});
function mapclickaction(evt,location){
if(skipmapclick==1){
skipmapclick=0;
return;
}
var coord = ol.proj.transform(location, 'EPSG:3857', 'EPSG:4326');
var lon = coord[0];
var lat = coord[1];
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, layer) {
return feature;
});
if (feature && !(feature==CircleFeature || feature==CircleFeatureC)) {
popup.setPosition(undefined);
var s = feature.get('name');
if(s.indexOf("[")>0){
nnn1 = s.split("[");
nnn2 = nnn1[1].split("]");
var temp = '||0||0||0';
var etainfo = nnn2.concat(temp);
makeRequest('auto_9c16716c8c2f4918912936ac89a14679.php?info='+etainfo,'dummydiv');
}
if(s.length>1 && s.indexOf("|*|")>0)
nearbyclickpopup(feature);
else if(s.length>1 && s.substring(0,1)=="*")
hotspotclickpopup(feature)
else
markerclickpopup(feature)
return;
}
lastlat = (lat-alat);
lastlon = (lon-alon);
debug("ll="+lastlat+","+lastlon);
if(markerpopup.getPosition()==undefined ){
/*
mappanto(lon,lat);
markerpopup.setPosition(evt.coordinate);
showmarkerpopupinfo(undefined);
//makeRequest("getPoiByLoc.php?lng="+lastlon+"&lat="+lastlat+"&lang="+lcode+"&mode=2","*popup*");
lastname = "--";
*/
}else{
//hidemappop();
}
/*
if(document.getElementById("sloc") && linecount==0 && markerpopup.getPosition()==undefined && hotspotpopup.getPosition()==undefined){
maparepopup(evt.coordinate,lat,lon);
}
*/
maparepopup(evt.coordinate,lat,lon);
/*
if(markerpopup.getPosition()==undefined)
maparepopup(evt.coordinate,lat,lon);
markerpopup.setPosition(undefined);
*/
//Show popup
}
map.on('pointermove', displayTooltip);
map.on('moveend', onMoveEnd);
map.panTo = function(ll) {
mappanto(ll[0],ll[1]);
}
map.zoomTo = function(z){
mapzoom(z);
}
map.zoomIn= function(){
var z = map.getView().getZoom();
if(z<18) mapzoom(z+1);
}
map.zoomOut = function(){
var z = map.getView().getZoom();
if(z>10) mapzoom(z-1);
}
map.getZoom = function(){
return map.getView().getZoom();
}
});
function redrawMarkerIcon()
{
//alert('in redrawMarkerIcon() ' + markercount);
for(var i=markercount-1; i>=0; i--){
redrawMarkerIconProcess(markers[i]);
}
if (stopNearbyMarkercount > 0)
{
for(var i=stopNearbyMarkercount-1; i>=0; i--){
//alert(stopNearbyMarkers[i].get('name'));
redrawMarkerIconProcess(stopNearbyMarkers[i]);
//i = 0;
}
}
}
function redrawMarkerIconProcess(feature)
{
var s = feature.get('name');
//alert(s);
if(s.indexOf("[")>0){
var infosCat = s.split("|*|");
/* ??? */
var infos = infosCat[3].split("||");
//alert(infos[4]);
offx = infos[7];
offy = infos[8];
if(infos[5]==15){
ax=0.5;
ay=0.5;
amode='fraction';
}
ax = 4;
ay = 40;
amode = "pixels";
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
scale: 1,
anchor: [ax,ay],
anchorXUnits: amode,
anchorYUnits: amode,
opacity: 1,
src: infos[4]
}))
});
feature.setStyle(iconStyle);
}
}
function hidemappop(){
markerpopup.setPosition(undefined);
hotspotpopup.setPosition(undefined);
redrawMarkerIcon();
}
function onMoveEnd(evt){
onMoveEndAction('');
}
function onMoveEndAction(fromQr)
{
if(markerpopup.getPosition()!=undefined && fromQr!='') return;
var coord = ol.proj.transform( map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326');
var tlon = coord[0];
var tlat = coord[1];
if(CircleLayer.getVisible()){
setcirclecenter(tlat,tlon);
ajaxindex++;
makeRequestref('getnearbyroute.php?lat='+tlat+'&lon='+tlon+'&l='+lang,'sysitembox',ajaxindex);
setTimeout(function(){ makeRequestref('getnearbystop.php?lat='+tlat+'&lon='+tlon+'&l='+lang,'dummydiv',ajaxindex);}, 200);
}
loadptstop();
}
function calldummy(url){
makeRequest(url,'dummydiv');
}
function hotspotclickpopup(feature){
var info = feature.get('name');
var aaa = info.split("{");
if(aaa.length==1) return;
var geometry = feature.getGeometry();
var coord = geometry.getCoordinates();
hotspotpopup.setPosition(coord);
var bbb = aaa[1].split("}");
var ccc = bbb[0].split("^");
var id = ccc[0];
var lat = parseFloat(ccc[1]);
var lon = parseFloat(ccc[2]);
makeRequest('gethotspotresult.php?id='+id+'&lat='+lat+'&lon='+lon+'&l='+lang,'hpopupcontent');
var z = Math.floor(map.getView().getZoom());
if(z>=10 && z<=18){
var coord2 = ol.proj.transform([lon, lat-difflat[z]], 'EPSG:4326', 'EPSG:3857');
mappantoxy(coord2);
}
}
function nearbyclickpopup(feature){
//alert('in nearbyclickpopup');
var info = feature.get('name');
var aaa = info.split("|*|");
if(aaa.length==1) return;
var bbb = aaa[1].split("||");
var altXY = aaa[2].split("||");
var geometry = feature.getGeometry();
var coord = geometry.getCoordinates();
markerpopup.setPosition(coord);
var nnn1 = bbb[0].split("[");
var nnn2 = nnn1[1].split("]");
makeRequest('getrouteinstop_nearby.php?id='+nnn2[0]+'&lat='+bbb[2]+'&lon='+bbb[3]+'&l='+lang+'&altLon='+altXY[0]+'&altLat='+altXY[1],'popupcontent');
var coord2 = ol.proj.transform(coord, 'EPSG:3857', 'EPSG:4326');
var tlon = coord2[0];
var tlat = coord2[1];
var z = Math.floor(map.getView().getZoom());
if(z>=10 && z<=18){
var coord2 = ol.proj.transform([tlon+difflon[z], tlat-difflat[z]], 'EPSG:4326', 'EPSG:3857');
mappantoxy(coord2);
}
}
function markerclickpopup(feature){
var info = feature.get('name');
var aaa = info.split("{");
if(aaa.length==1) return;
var geometry = feature.getGeometry();
var coord = geometry.getCoordinates();
markerpopup.setPosition(coord);
showmarkerpopupinfo(feature);
}
var lsetstart = '設為起點';
var lsetend = '設為終點';
var lnewbookmark = '加至我的書籤';
var lclose = '關閉';
function maparepopup(coord,lat,lon){
var element = popup.getElement();
var coordinate = coord;
var hdms = ol.coordinate.toStringHDMS(ol.proj.transform(coordinate, 'EPSG:3857', 'EPSG:4326'));
$(element).popover('destroy');
popupposition=coordinate;
popup.setPosition(coordinate);
mappantoxy(coordinate);
var tlat = lat-alat;
var tlon = lon-alon;
makeRequest("get_rgeocode.php?lon="+tlon+"&lat="+tlat+"&l="+lcode+"","*popup*");
var name=". . .";
lastname = name;
lastlat = tlat;
lastlon = tlon;
name = ' ';
var popupcontent = ' '+
'
'+
''+lsetstart+'
'+
''+lsetend+'
'+
''+lnewbookmark+'
';
$(element).popover({
'placement': 'top',
'animation': false,
'html': true,
'content': popupcontent
});
$(element).popover('show');
}
function screensize(mode){
if (self.innerHeight){
x = self.innerWidth;
y = self.innerHeight;
}else if (document.documentElement && document.documentElement.clientHeight){
x = document.documentElement.clientWidth;
y = document.documentElement.clientHeight;
}else if (document.body){
x = document.body.clientWidth;
y = document.body.clientHeight;
}
if(mode=="W")
return x;
else
return x;
}
function goresize(){
var x = screensize("W");
var adjust=0;
var logobar = document.getElementById('fb_logo');
var dmap = document.getElementById('map');
if(x<768){
adjust=44;
dmap.style.marginLeft="0px";
logobar.align="left";
}else{
dmap.style.marginLeft="380px";
logobar.align="center";
showleftpanel();
}
adjust+=0;
var dmenu1box = document.getElementById('menu1box');
if(dmenu1box){
dmenu1box.style.height="calc(100% - "+(255-adjust)+"px)";
}
var dgocatbox = document.getElementById('gocatbox');
if(dgocatbox){
dgocatbox.style.height="calc(100% - "+(113-adjust)+"px)";
}
var dgocatitembox = document.getElementById('gocatitembox');
if(dgocatitembox){
dgocatitembox.style.height="calc(100% - "+(113-adjust)+"px)";
}
var dstoplistbox = document.getElementById('stoplistbox');
if(dstoplistbox){
dstoplistbox.style.height="calc(100% - "+(85-adjust)+"px)";
}
var dfullbox = document.getElementById('fullbox');
if(dfullbox){
dfullbox.style.height="calc(100% - "+(43-adjust)+"px)";
}
var dferrylist = document.getElementById('ferrylistbox');
if(dferrylist){
dferrylist.style.height="calc(100% - "+(288-adjust)+"px)";
}
var dtranlistbox = document.getElementById('tranlistbox');
if(dtranlistbox){
dtranlistbox.style.height="calc(100% - "+(175-adjust)+"px)";
}
var dppresultlist = document.getElementById('ppresultlist');
if(dppresultlist){
dppresultlist.style.height="calc(100% - "+(115-adjust)+"px)";
}
var dnearbylist = document.getElementById('nearbylist');
if(dnearbylist){
dnearbylist.style.height="calc(100% - "+(133-adjust)+"px)";
}
var droutelist2 = document.getElementById('routelist2');
if(droutelist2){
droutelist2.style.height="calc(100% - "+(133-adjust)+"px)";
}
goresizex();
}
function ppbookmark(no){
}
var lpath = '途徑路線';
var laddbm = '添加書籤';
var lstreetview = '街景';
var lmin = '分鐘';
function showmarkerpopupinfo(feature){
var obj = document.getElementById('popupcontent');
if(obj){
if(feature!=undefined){
var data = feature.get('name');
var aaa = data.split("{");
if(aaa.length==2){
var bbb = aaa[1].split("}");
var ccc = bbb[0].split("^");
stopclick1(ccc[0],ccc[1],ccc[2],ccc[3],ccc[4],ccc[5],ccc[6],ccc[7],ccc[8]);
}
}
}
}
function elastic(t) {
return Math.pow(2, -10 * t) * Math.sin((t - 0.075) * (2 * Math.PI) / 0.3) + 1;
}
function closepopup(){
popup.setPosition(undefined);
}
function gosetstartend(mode,name,lat,lon){
if(mode<0){
if(startname==""){
mode=0;
}else{
mode=1;
}
}
lastname = name;
//lastlat = parseFloat(lat)-(2*alat);
//lastlon = parseFloat(lon)-(2*alon);
lastlat = parseFloat(lat)-(alat);
lastlon = parseFloat(lon)-(alon);
setstartend(mode,name,lastlat,lastlon);
//panto(lastlon,lastlat);
}
function setstartend(mode,name,lat,lon){
if(mode==0){
startname = lastname;
startlat = lastlat;
startlon = lastlon;
}else{
endname = lastname;
endlat = lastlat;
endlon = lastlon;
}
gomenu(2,1);
closepopup();
//addhistory("LOCATIONHISTORY",lastname+'~'+lastlat+'~'+lastlon);
}
function setstart(){
setstartend(0,lastname,lastlat,lastlon);
hidepopup();
panto(lastlon,lastlat);
}
function setend(){
setstartend(1,lastname,lastlat,lastlon);
hidepopup();
panto(lastlon,lastlat);
}
function disabledEventPropagation(event)
{
if (event.stopPropagation){
event.stopPropagation();
}
else if(window.event){
window.event.cancelBubble=true;
}
}
function clearmarkers(){
clearmaproute();
}
function clearmaproute(){
clearwalkline();
clearallstop();
clearallmarker();
//showstartendmarker();
showstartendpoints();
}
function clearallstop(){
stopSource.clear();
}
function trafficmarker(code,lat,lng,name,extra){
var info = name+"||"+code+"||"+lat+"||"+lng+"||"+extra;
var traffic = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([lng+alon,lat+alat],'EPSG:4326', 'EPSG:3857')),
name: info
});
var png = 'icons/cctvdot.png';
var xoff=0.5;
var yoff=1;
if(code=='C'){
png = 'icons/cctvdot.png';
yoff=0.5;
xoff=0.5
}
if(code=='J'){
png = 'icons/jtime.png';
yoff=1.0;
xoff=0.24
}
if(code=='S'){
png = 'icons/smpanel.png';
yoff=1.0;
xoff=0.24
}
if(code=='b'){
png = 'icons/m_bus.png';
}
if(code=='t'){
png = 'icons/m_tram.png';
}
if(code=='p'){
png = 'icons/m_ptram.png';
}
if(code=='a'){
png = 'icons/m_taxi.png';
}
if(code=='f'){
png = 'icons/m_ferry.png';
}
if(code=='m'){
png = 'icons/m_mtr.png';
}
if(code=='l'){
png = 'icons/m_lrt.png';
}
if(code=='g'){
png = 'icons/m_gvan.png';
}
if(code=='r'){
png = 'icons/m_rvan.png';
}
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
scale: 0.5,
anchor: [xoff,yoff],
anchorXUnits: 'fraction',
anchorYUnits: 'fraction',
opacity: 0.8,
src: png
}))
});
traffic.setStyle(iconStyle);
if(code=='C' || code=='S' || code=='J'){
trafficSource.addFeature(traffic);
}else{
ptSource.addFeature(traffic);
}
}
function stopmarker(leg,lat,lng,name){
var info = name+"||"+leg+"||"+lat+"||"+lng;
var stop = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([lng+alon,lat+alat],'EPSG:4326', 'EPSG:3857')),
name: info
});
var png = 'icons/gdot.png';
if(leg==1) png = 'icons/rdot.png';
if(leg==2) png = 'icons/bdot.png';
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
scale: 0.5,
anchor: [0.5,0.5],
anchorXUnits: 'fraction',
anchorYUnits: 'fraction',
opacity: 0.8,
src: png
}))
});
stop.setStyle(iconStyle);
stopSource.addFeature(stop);
}
function clearallmarker(){
for(var i=0; i<1000; i++){
markers[i]=null;
markercodes[i]='';
markerlat[i]=0.0;
}
markercount=0;
}
var mstart = '起點';
var mend = '終點';
var mupcar = '上車';
var mdowncar = '落車';
var mupboat = '上船';
var mdownboat = '落船';
var mchange = '轉乘';
function etmarker(code,lat,lng,name){
if(true) return;
var increment = 1;
var lastpoint = -1;
var info = name+"||"+(code=="S"?"O":code)+"||"+lat+"||"+lng;
if(code=="S" || code=="E"){
for(i=0;i
markerlat[tempindex[i+1]]){
var t = tempindex[i+1];
tempindex[i+1] = tempindex[i];
tempindex[i] = t;
needsort = 1;
}
}
}
stopSource.clear;
vectorSource.clear();
for(var i=0; i5){
var aaa = linepoint[i].split(",");
var lon = parseFloat(aaa[2]);
var lat = parseFloat(aaa[1]);
segment.push(ol.proj.transform( [lon, lat], 'EPSG:4326', 'EPSG:3857'));
}
}
if(col==0)
pointsred.push(segment);
else if(col==1)
pointsgreen.push(segment);
else if(col==2)
pointsblue.push(segment);
var greenline = new ol.Feature({
geometry: new ol.geom.MultiLineString(pointsgreen),
name: "Line"
});
greenline.setStyle(lineStyle[0]);
var redline = new ol.Feature({
geometry: new ol.geom.MultiLineString(pointsred),
name: "Line"
});
redline.setStyle(lineStyle[1]);
var blueline = new ol.Feature({
geometry: new ol.geom.MultiLineString(pointsblue),
name: "Line"
});
blueline.setStyle(lineStyle[2]);
lineSource.addFeature(greenline);
lineSource.addFeature(redline);
lineSource.addFeature(blueline);
}
function showhidemenu(){
var left = $('#sidebar').offset().left;
if(left>-100)
$("#sidebar").css({left:left}).animate({"left":"-340px"}, "fast");
else
$("#sidebar").css({left:left}).animate({"left":"0px"}, "fast");
}
function checkshowlayer(){
var obj = document.getElementById('tranlayer');
if(obj && (obj.style.display=="" || obj.style.display=="none")){
obj.style.right="-300px";
obj.style.display="block";
}
}
function checkhidelayer(){
var obj = document.getElementById('tranlayer');
if(obj){
obj.style.right="0px";
obj.style.display="none";
}
}
function showhidelayer(){
checkshowlayer();
var right = parseInt($('#tranlayer').css('right'));
if(right==0){
$("#tranlayer").css({right:right}).animate({"right":"-300px"}, "fast");
setTimeout("checkhidelayer();",500);
}else{
makeRequest('layer.php','tranlayer')
$("#tranlayer").css({right:right}).animate({"right":"0px"}, "fast");
}
}
function showhidelegend(){
checkshowlayer();
var right = parseInt($('#tranlayer').css('right'));
debug(right);
if(right==0){
$("#tranlayer").css({right:right}).animate({"right":"-300px"}, "fast");
setTimeout("checkhidelayer();",500);
}else{
makeRequest('legend.php','tranlayer')
$("#tranlayer").css({right:right}).animate({"right":"0px"}, "fast");
}
}
function smenu(mno){
showhidemenu();
}
function infoboxloadaction(){
hideppoption();
}
/*
function makeRequest(urlx,id) {
if(id=="infobox"){
infoboxloadaction();
}
sn++;
var url="";
if(urlx.indexOf("?")>0)
url=urlx+'&sysid='+sn;
else
url=urlx+'?sysid='+sn;
var http_request = false;
var ts1 = "";
var ts2 = "";
var p=0;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = function() {
alertContents(http_request,id); };
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContents(http_request,id) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var mesg = http_request.responseText;
if(id=="*popup*"){
popup_request(mesg);
}else if(id=="*jscode*"){
eval(mesg);
}else if(id=="v_ustatus"){
v_ustatus=mesg;
}else{
if(id.substring(0,4)=='txt_'){
document.getElementById(id).value=mesg;
}else{
var checkcnt=0;
while(document.getElementById(id) && checkcnt<5){
setTimeout('',500);
checkcnt=checkcnt+1;
}
document.getElementById(id).innerHTML=mesg;
if(id=="infobox") goresize();
if(id=="autocom" || id=="autocom2"){
if(mesg.length<10){
document.getElementById(id).style.display ="none";
}
}
}
window.scrollTo(0,0);
}
}else{
errorcnt++;
}
}
}
*/
var unknownname = '不知名位置';
function popup_request(s){
var aaa = s.split("||");
var name = aaa[0];
if(name==undefined) name = unknownname;
lastname = name;
document.getElementById("popupname").innerHTML = name;
}
function showinfobox(url){
makeRequest(url,"infobox");
}
function showmenu(no){
if(sys_nearby==1) togglenearby();
showleftpanel();
showinfobox("menu"+no+".php");
}
function callweb(weburl){
var url = weburl;
var result = "";
$.ajax({
url: url,
type: 'GET',
async: false,
cache: false,
timeout: 30000,
error: function(){
debug("Error to connect server!");
},
success: function(msg){
result = msg;
}
});
return result;
}
function debug(s){
var obj=document.getElementById("debug");
if(obj) obj.innerHTML=s;
}
function swapppinfo(){
lastname="";
lastlat=0.0;
lastlon=0.0;
var tstr = startname;
startname = endname
endname = tstr;
var tlat = startlat;
var tlon = startlon;
startlat = endlat;
startlon = endlon;
endlat = tlat;
endlon = tlon;
showppinfo();
}
function clearppinfo(){
startname="";
endname="";
startlat=startlon=0.0;
endlat=endlon=0.0;
document.getElementById("fstartpo").value = "";
document.getElementById("fendpo").value = "";
vectorSource.clear();
}
var lstartpo = '起點';
var lendpo = '終點';
function showppinfo(){
var lcnt=0;
if(startname!=""){
document.getElementById("fstartpo").value = startname;
etmarker("S",startlat,startlon,lstartpo+": "+startname);
lcnt++;
}
if(endname!=""){
document.getElementById("fendpo").value = endname;
etmarker("E",endlat,endlon,lendpo+": "+endname);
lcnt++;
}
if(lcnt==2){
//clearwalkline();
//drawwalkline(startlat,startlon,endlat,endlon);
}
showmarker();
}
function showstartendmarker(){
etmarker("S",startlat,startlon,lstartpo+": "+startname);
etmarker("E",endlat,endlon,lendpo+": "+endname);
showmarker();
}
var timeint;
var newpoint = new Array(2);
var newzoom=0;
function goanimate(zoom,point){
newzoom = zoom;
newpoint = point;
timeint = setInterval(function(){ mapTimer() }, 100);
}
function mapTimer(){
var z = map.getView().getZoom();
var p = map.getView().getCenter();
var zdiff=1;
var pdiff=1;
if(newzoom==undefined || Math.abs(z-newzoom)<0.1){
view.setZoom(newzoom);
z=newzoom;
zdiff=0;
}
if(Math.abs(p[0]-newpoint[0])<3 && Math.abs(p[1]-newpoint[1])<3){
view.setCenter(newpoint);
p=newpoint;
pdiff=0;
}
console.log(p[0]+" "+newpoint[0]+" "+Math.abs(p[0]-newpoint[0])+" "+Math.abs(p[1]-newpoint[1])+" : "+z+" "+newzoom);
if(zdiff==0 && pdiff==0){
clearInterval(timeint);
}else{
var tempp = new Array(2);
var tempz = (z+newzoom)/2;
tempp[0] = (p[0]+newpoint[0])/2;
tempp[1] = (p[1]+newpoint[1])/2;
view.setCenter(tempp);
view.setZoom(tempz);
}
}
function mappanto(lon,lat){
if(lon>0 && lat>0){
var tpoint = ol.proj.fromLonLat([lon+alon, lat+alat]);
var z = map.getView().getZoom();
//goanimate(z,tpoint);
//view.setCenter(tpoint);
//view.animate({ center: tpoint, duration: 500});
gopanTo(tpoint);
}
}
function mappantoxy(tpoint){
//view.setCenter(tpoint);
//var z = map.getView().getZoom();
//goanimate(z,tpoint);
//view.animate({ center: tpoint, duration: 500});
gopanTo(tpoint);
}
function mapzoom(z){
gozoom(z);
//var tpoint = map.getView().getCenter();
//goanimate(z,tpoint);
//view.setZoom(z);
//view.animate({ zoom: z, duration: 500});
}
function gozoom(zoom_level) {
if(acode==1){
var zoom = ol.animation.zoom({
resolution: view.getResolution(),
duration: 300
});
map.beforeRender(zoom);
}
view.setZoom(zoom_level);
}
function gopanTo(location){
if(acode==1){
var pan = ol.animation.pan({
source: map.getView().getCenter(),
duration: 300
});
map.beforeRender(pan);
}
view.setCenter(location);
}
function keysearch(mode){
showinfobox("keysearch.php?m="+mode);
}
function goback(){
showmenu(1);
}
function gofocus(dname){
var obj = document.getElementById(dname);
if(obj) obj.focus();
}
function timestr(expires_seconds){
var d = new Date();
d = new Date(d.getTime() + 1000 * expires_seconds);
//return d.toGMTString();
return moment().format("YYYY-MM-DD HH:mm:ss");
}
function showlocation(dname){
var hdata='';
var oldlist = getCookie("LOCATIONHISTORY");
var aaa = oldlist.split("||");
for(var i=0; i';
hdata+=''+bbb[0]+' ';
hdata+=speechbut("H"+i,bbb[0])+'';
}
}
hdata+='
';
hdata+='
';
var obj = document.getElementById(dname);
if(obj) obj.innerHTML=hdata;
}
function showhistory(mode,dname){
var hdata='';
var oldlist = getCookie("SEARCH_A");
var aaa = oldlist.split("||");
for(var i=0; i';
hdata+=''+aaa[i]+' ';
}
}
hdata+='
';
hdata+='
';
var obj = document.getElementById(dname);
if(obj) obj.innerHTML=hdata;
}
function gokeysearch(mode,dname){
ppresult = document.getElementById("infobox").innerHTML;
if(dname.length>0 && dname.substring(0,1)=="*"){
showinfobox("gosearch.php?m="+mode+"&k="+dname.substring(1));
}else{
var obj = document.getElementById(dname);
if(obj.value=="") return;
addhistory("SEARCH_A",obj.value);
showinfobox("gosearch.php?m="+mode+"&k="+obj.value);
}
}
function addhistory(code,kword){
addrecord(code,kword,10);
}
function addrecord(code,kword,limit){
var oldlist = getCookie(code);
var aaa = oldlist.split("||");
var newlist = kword+"||";
var cnt=0;
var ss1 = kword.split("~");
for(var i=0; ilimit) break;
}
}
}
setCookie(code,newlist,1000000000);
}
function setCookie(variable, value, expires_seconds) {
document.cookie = variable + '=' + value + '; expires=' + timestr(expires_seconds) + ';';
callweb("setcookie.php?c="+variable+"&v="+encodeURI(value));
}
function getCookie(cname) {
return callweb("getcookie.php?c="+cname);
}
function deleterecord(code,kword){
var oldlist = getCookie(code);
var aaa = oldlist.split("||");
var newlist = "";
var cnt=0;
var ss1 = kword.split("~");
for(var i=0; i '+lsearching+'
';
}
function goppsearch(){
if(startname!="" && endname!=""){
showloading();
showinfobox("goppsearch.php?slat="+startlat+"&slon="+startlon+"&elat="+endlat+"&elon="+endlon+"&sname="+startname+"&ename="+endname);
}
}
function backtoppresult(){
document.getElementById("infobox").innerHTML = ppresult;
}
function goppresult(i,m){
if(m=='S'){
ppresult = document.getElementById("infobox").innerHTML;
showloading();
}
showinfobox("goppresult.php?i="+i+"&m="+m);
}
function showstartendname(sdiv,ediv){
document.getElementById(sdiv).innerHTML=startname;
document.getElementById(ediv).innerHTML=endname;
}
function pantostartend(code){
if(code=="S")
panto(startlon,startlat);
else
panto(endlon,endlat);
}
function setcolor(c){
callweb("setcolor.php?c="+c);
document.location.href = "index.php";
}
var startlab='起點';
var endlab='終點';
var laddbookmark='加入書籤';
var markmarkname='書籤名稱';
var selectas='選擇此地點為';
var select='請選擇';
var lsave='儲存';
var ldelete='刪除';
var lkmb='九巴';
var lnwst='新巴城巴';
function setpopupcontent(mode){
var c1='
'+
''+startlab+' '+
''+endlab+' '+
''+laddbookmark+' '+
'
';
var c2='
';
var c3='
'+
''+startlab+' '+
''+endlab+' '+
'
';
var c4='
'+
''+lkmb+' '+
''+lnwst+' '+
'
';
var c5='
';
if(mode==2){
setpopupcontentstr(laddbookmark+" :",c2);
document.getElementById("fbookmark").value=lastname;
}else if(mode==3){
setpopupcontentstr(selectas+" :",c3);
}else if(mode==4){
setpopupcontentstr(select+" :",c4);
}else if(mode==5){
setpopupcontentstr(markmarkname+" :",c5);
document.getElementById("fbookmark").value=lastname;
}else{
setpopupcontentstr(selectas+" :",c1);
}
}
function tdalert(title,content){
setpopupcontentstr(title,content);
showpopup();
}
function setpopupcontentstr(title,content){
document.getElementById("popupcontent").innerHTML=content;
document.getElementById("popuptitle").innerHTML=title;
}
function newbookmark(tname,tlat,tlon){
var aaa = tname.split(": ");
if(aaa.length>0) tname=aaa[1];
bookmarkmode=0;
bmlat=tlat;
bmlon=tlon;
lastname=tname;
setpopupcontent(2);
showpopup();
}
function savebookmark(){
var bmname = document.getElementById("fbookmark").value;
if(bmname=="") return;
if(bookmarkmode==0){
savebookmarkwithinfo(bmname,bmlat,bmlon);
}else if(bookmarkmode==1){
calldummy("routebookmark.php?no="+bookmarkno+"&name="+encodeURI(bmname));
hidepopup();
}else if(bookmarkmode==2){
calldummy("ppbookmark.php?no="+bookmarkno+"&name="+encodeURI(bmname));
hidepopup();
}
}
function savebookmarkwithinfo(tname,tlat,tlon){
var newbm = tname+"~"+tlat+"~"+tlon+"~"+timestr(0);
addrecord("BOOKMARK",newbm,500);
hidepopup();
deleterecord("LOCATIONHISTORY",newbm);
showmenu(1)
}
function hideoverlay(){
$('#fulloverlay').modal('hide');
}
function hideoverlay_p2p_result_detailed_list(){
$('#fulloverlay_p2p_result_detailed_list').modal('hide');
}
function showpopup(){
$('#tddailog').modal('show');
}
function hidepopup(){
$('#tddailog').modal('hide');
}
function promptstartend_bm(name,lat,lon){
lastname=name;
lastlat=lat;
lastlon=lon;
setpopupcontent(3);
showpopup();
}
function promptstartend(name,lat,lon){
lastname=name;
lastlat=lat;
lastlon=lon;
bmlat=lat;
bmlon=lon;
setpopupcontent(1);
showpopup();
}
function setbookmark(){
bookmarkmode=0;
setpopupcontent(2);
showpopup();
}
function speechbut($code,$text){
if(sys_audio==0)
return '
';
else
return '
';
}
function showbookmark(dname){
var hdata='
';
var oldlist = getCookie("BOOKMARK");
var aaa = oldlist.split("||");
for(var i=0; i';
hdata+=''+bbb[0]+' ';
hdata+=speechbut("H"+i,bbb[0])+'';
}
}
hdata+='
';
hdata+='
';
var obj = document.getElementById(dname);
if(obj) obj.innerHTML=hdata;
}
function streetview(lat,lon){
var url = 'http://maps.google.com/maps?q=&layer=c&cbll='+lat+','+lon;
// Fixes dual-screen position Most browsers Firefox
var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screenX;
var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screenY;
var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
var w = width * 0.6;
var h = height * 0.7;
var left = ((width / 2) - (w / 2)) + dualScreenLeft;
var top = ((height / 2) - (h / 2)) + dualScreenTop;
var newWindow = window.open(url, '_blank', 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
// Puts focus on the newWindow
if (window.focus) {
newWindow.focus();
}
//window.open(url, '_blank', 'width=400,height=400');
/*$('#fulloverlay').modal('show');
$('#fulloverlay_title').html('街景');
googlemap_initialize(lat,lon);
//showoverlay('街景','http://app1.hketransport.td.gov.hk/et/streetview_iphone.php?lat='+lat+'&lon='+lon+'&lang=TC&p=iphone');
*/
}
function showfulloverlay(title, content){
$('#fulloverlay').modal('show');
$('#fulloverlay_title').html(title);
var d = content.split("---").join('"');
d = d.split("===").join('
');
$('#streetLayer').html(d);
//document.getElementById('streetLayer').innerHtml = content;
}
function showfulloverlay_p2p_result_detailed_list(content){
$('#fulloverlay_p2p_result_detailed_list').modal('show');
var d = content.split("---").join('"');
d = d.split("===").join('
');
$('#fulloverlay_p2p_result_detailed_list_content').html(d);
//document.getElementById('streetLayer').innerHtml = content;
}
function showoverlay(title,url){
return;
//document.getElementById("overlayframe").innerHTML="";
//document.getElementById("overlaytitle").innerHTML=title;
//document.getElementById("overlayframe").src=url;
//$('#fulloverlay').modal('show');
}
function showweb(link){
window.open(link,'_blank');
}
function showlink(b){
if(b==0)
window.open(kmblink,'_blank');
else
window.open(nwfblink,'_blank');
hidepopup();
}
function showheadway(i){
url=callweb("getheadway.php?i="+i);
var aaa = url.split("|");
debug(url);
if(aaa.length>1){
kmblink=aaa[0];
nwfblink=aaa[1];
setpopupcontent(4);
showpopup();
}else{
window.open(url,'_blank');
}
}
function showppcctv(){
ppresult3 = document.getElementById("infobox").innerHTML;
showinfobox("ppcctv.php");
}
function backtoppresult3(){
document.getElementById("infobox").innerHTML = ppresult3;
}
function backtoppresult2(){
document.getElementById("infobox").innerHTML = ppresult2;
}
function googlemap_initialize(lat, lon) {
var latlng = new google.maps.LatLng(lat, lon);
var objRequest = {
travelMode: google.maps.TravelMode.DRIVING,
origin: latlng,
destination: latlng,
unitSystem: google.maps.UnitSystem.METRIC
};
var objDS = new google.maps.DirectionsService();
objDS.route(objRequest, function (objResult, intStatus) {
if (intStatus == google.maps.DirectionsStatus.OK) {
if (google.maps.geometry.spherical.computeDistanceBetween(latlng, objResult.routes[0].legs[0].steps[0].path[0]) <= 100){
gsm_core(objResult.routes[0].legs[0].steps[0].path[0], latlng);
}else{
gsm_core(latlng, latlng);
}
}
});
}
function gsm_core(latlng, targetPovLatlon) {
var streetViewService = new google.maps.StreetViewService();
var STREETVIEW_MAX_DISTANCE = 100;
streetViewService.getPanoramaByLocation(latlng, STREETVIEW_MAX_DISTANCE, function (streetViewPanoramaData, status) {
if (status === google.maps.StreetViewStatus.ZERO_RESULTS) {
if (lang==0){
alert("對不起,選取的地點100米範圍內無街景資料。");
}else if(lang==1){
alert("Sorry, the chosen location does not contains any street view data within proximity of 100 meters.");
}else{
alert("对不起,选取的地点100米范围内无街景资料。");
}
return -1;
}
if (status === google.maps.StreetViewStatus.OK) {
var myOptions = {
zoom: 8,
center: streetViewPanoramaData.location.latLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var gmap = new google.maps.Map(document.getElementById("streetLayer"),
myOptions);
var panoramaOptions = {
position: latlng,
imageDateControl: true,
pov: {
heading: google.maps.geometry.spherical.computeHeading(latlng, targetPovLatlon), pitch: 0, zoom: 1
}
};
var panorama = new google.maps.StreetViewPanorama(document.getElementById("streetLayer"), panoramaOptions);
gmap.setStreetView(panorama);
var svlayer = document.getElementById('streetLayer');
svlayer.style.visibility = "visible";
//svlayer.style.width = "80%";
$.ajax({
url: "increment-street-view-counter.php",
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
tryCount : 0,
retryLimit : 3,
error : function(xhr, textStatus, errorThrown ) {
this.tryCount++;
if (this.tryCount <= this.retryLimit) {
$.ajax(this);
return;
} else {
if (errorThrown.indexOf("data-error") > -1) {
if (console)
showlog("Something wrong with SQL");
}
}
},
success: function( data , textStatus, xhr) {
if (data.indexOf("success") == -1) {
this.error(xhr, textStatus, "data-error");
}
}
});
}else{
alert('Google Street View not available');
}
});
}
function layerclick(layer,item,event){
disabledEventPropagation(event);
var id = "layer"+layer+"_"+item;
var obj = document.getElementById(id);
if(obj){
var info = obj.innerHTML;
if(info=='
'){
obj.innerHTML='
';
if(layer==1)
layermark1[item]=1;
else
layermark2[item]=1;
}else{
obj.innerHTML='
';
if(layer==1)
layermark1[item]=0;
else
layermark2[item]=0; }
}
showtraffic();
}
function getrafficinfo(mode){
makeRequest("loadtrafficinfo.php?mode="+mode+"&lang=TC&color="+colorcode,'gocatbox');
}
function play(link1,link2){
var twoMinuteMessage = "為了讓更多使用者能使用此項網上直播服務,每名使用者進入本頁兩分鐘後,交通直播便會自動停止。此時,使用者可再次選擇所需的網上直播。";
if (PluginDetect.getVersion("Flash") != null){
$( "#player" ).html('');
var flash=link2;
var params='src='+flash+'&streamType=live&loop=false&autoPlay=true&playButtonOverlay=false&controlBarAutoHide=true&poster=images/play.png&clipEndTime=60';
$( "#player" ).append('
');
setTimeout(function(){ $( "#player" ).html(twoMinuteMessage); }, 120000);
}else{
$( "#player" ).html('
請安裝 Real Player 或 Flash Player 外掛程式 或使用支援 html5 的瀏覽器 ');
var video = document.getElementById('videolink');
video.addEventListener('click',function() {
video.play();
setTimeout(function(){ $( "#player" ).html(twoMinuteMessage); }, 120000);
},false);
}
}
function traninfo(no){
if(no==1){
showinfobox("tranmtr.php");
}else if(no==2){
showroutelistsearch('BALL');
}else if(no==3){
showinfobox("tranlrt.php");
}else if(no==4){
showroutelistsearch('GBUS');
}else if(no==5){
showinfobox("tranferry.php");
}else if(no==6){
showtranweb("TRAM");
}else if(no==7){
showinfobox("trantaxi.php");
}else if(no==8){
showinfobox("tranrmb.php");
}
}
function showtranweb(code){
var s = callweb("trandata.txt");
var aaa = s.split("\n");
for(var i=0; i
768) return;
var obj=document.getElementById("leftpanel");
var tbut=document.getElementById("showmapbuttotton");
if(obj.style.display=="none"){
tbut.innerHTML=lmap;
obj.style.display="block";
}else{
tbut.innerHTML=lback;
obj.style.display="none";
}
goresizex();
}
function hideleftpanel(){
var obj=document.getElementById("leftpanel");
var x = screensize("W");
if(x<768){
obj.style.display="none";
var tbut=document.getElementById("showmapbuttotton");
tbut.innerHTML=lback;
}
}
function showleftpanel(){
var obj=document.getElementById("leftpanel");
obj.style.display="block";
var tbut=document.getElementById("showmapbuttotton");
tbut.innerHTML=lmap;
}
function fitmap(){
var extent = stopSource.getExtent();
//map.getView().fit(extent, { duration: 1000 });
map.getView().fit(extent, map.getSize(), { duration: 250 });
}
function fitmapSE(){
var extent = vectorSource.getExtent();
//map.getView().fit(extent, { duration: 1000 });
map.getView().fit(extent, map.getSize(), { duration: 250});
}
var pplist = [];
function showoption(no){
var obj = document.getElementById("ppoption"+no);
var box = document.getElementById("optionbox");
box.innerHTML = "..";
debug(jQuery(obj).offset().left);
var pos=jQuery(obj).offset().left;
box.style.left=(pos+2)+"px";
box.style.display="block";
if(pplist[no]==undefined){
pplist[no] = callweb("ppoption.php?n="+no);
}
box.innerHTML = pplist[no];
}
function hideppoption(){
var box = document.getElementById("optionbox");
box.style.display="none";
}
function ppitemselect(no,option,str){
hideppoption();
var obj = document.getElementById("ppoption"+(no+1));
obj.innerHTML = str+'
';
if(no==0) setCookie("PPDIST",option);
if(no==1) setCookie("PPSERV",option);
if(no==2) setCookie("PPFARE",option);
if(no==3){
setCookie("PPTRAN",option);
showinfobox("goppsearch.php?sort=0")
}
}
function getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) {
var R = 6371; // Radius of the earth in km
var dLat = deg2rad(lat2-lat1); // deg2rad below
var dLon = deg2rad(lon2-lon1);
var a =
Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2)
;
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c; // Distance in km
return d;
}
function deg2rad(deg) {
return deg * (Math.PI/180)
}
function showaudiobardirect(str,event){
var url="getmp3.php?s="+encodeURI(str)+"&r"+sysseq;
playaudio("D",event,url);
sysseq++;
}
function showaudiobar(code,event){
var url="getmp3.php?c="+code+"&r"+sysseq;
playaudio(code,event,url);
sysseq++;
}
function playaudio(code,event,url){
var obj = document.getElementById('audiobar');
obj.style.display="block";
var audioEl = document.getElementById("audioTag");
var src = document.getElementById("audiosrc");
audioEl.controls=false;
audioEl.addEventListener('ended', hideaudiobar);
src.src=url;
audioEl.load();
audioEl.play();
disabledEventPropagation(event);
}
function audioctrl(code,event){
var audioEl = document.getElementById("audioTag");
if(code=='P')
audioEl.pause();
if(code=='S'){
hideaudiobar();
audioEl.pause();
}
if(code=='A'){
audioEl.play();
}
}
function hideaudiobar(){
document.getElementById('audiobar').style.display="none";
}
function dummygosetting(code,option){
}
function gosetting(code,option){
if(code.substring(0,1)=="*"){
if(code=="*FONT"){
document.location.href="index.php?fsize="+option;
}
if(code=="*LANG"){
if(option==0) document.location.href="index.php?golang=EN";
if(option==1) document.location.href="index.php?golang=TC";
if(option==2) document.location.href="index.php?golang=SC";
}
}else{
setCookie(code,option);
if(code=="PPSERV" && option==1) setCookie("PPTRAN",0);
showmenu(5);
}
}
function startnearby(fromQr){
cleartraffic();
sys_nearby=1;
if (fromQr!='Y'){
CircleLayer.setVisible(true);
onMoveEnd(null);
}
}
function stopnearby(){
sys_nearby=0;
CircleLayer.setVisible(false);
}
function togglenearby(){
var obj = document.getElementById('nearbybut');
if(sys_nearby==0){
startnearby('');
}else{
stopnearby();
}
}
function gonearby(dist){
sys_nearby_radius=dist;
onMoveEnd(null);
}
var bmcode="";
function editbookmark(code,str,event){
bmcode=code;
lastname=str;
setpopupcontent(5);
showpopup();
disabledEventPropagation(event);
}
function deletebookmark(){
makeRequest("godeletebookmark.php?c="+bmcode,"dummydiv");
}
function updatebookmark(){
var bmname = document.getElementById("fbookmark").value;
if(bmname=="") return;
makeRequest("goupdatebookmark.php?c="+bmcode+"&n="+encodeURI(bmname),"dummydiv");
}
//old js
var actioncode = ' ';
var p2pbookmark_info = ' ';
var searchcount=0;
var stack = new Array(); //record search result
var tmpsmaker="";
var tmpemaker="";
var mapstartlat=0.0;
var mapstartlon=0.0;
var mapendlat=0.0;
var mapendlon=0.0;
var mapstartname = "";
var mapendname = "";
var inforoutenumber1 = "";
var inforoutenumber2 = "";
var tmpstr1="";
var tmpstr2="";
var abl=false;
var abl2=false;
var abl3=false;
var abl6=false;
var tabfromfield=false;
var lasttab=0;
var bookmode=0;
var hotspottype = [];
var refreshIntervalId = null;
var topboxheight = 0;
var currentlist=0;
var ssmar="startpoint-f.png";
var eemar="endpoint-f.png";
var oldpdf="";
var selectdate="";
var selectdatelab="";
var selectdateindex=0;
var processingnearby=0;
var nearbystop="";
var stopselect="";
var tstopselect="";
var shareinfo="";
var variantcount=0;
var pdfid=0;
var pdfroute="";
var locbookmark = "";
var nearbymode=true;
var currentloc="";
var currentloc_mode="";
var selectedcell="";
var currentmenu=2;
var pdfname='';
var pdfnamex='';
function showpoi(){
if(true) return;
clearmarkerswithttl('xxxxxx');
var s="";
if(hotspottype[1]==1)
s=s+"Leisure";
if(hotspottype[2]==1)
s=s+"Shopping";
if(hotspottype[3]==1)
s=s+"Exhibitions";
makeRequest('gethotspotmap.php?t='+s+'&c=1','dummydiv');
}
function googlemap_initialize(lat, lon){
var latlng = new google.maps.LatLng(lat, lon);
//alert(lat + ', ' + lon);
var streetViewService = new google.maps.StreetViewService();
var STREETVIEW_MAX_DISTANCE = 100;
streetViewService.getPanorama({location: latlng, radius: STREETVIEW_MAX_DISTANCE, source: google.maps.StreetViewSource.OUTDOOR}, function (streetViewPanoramaData,status) {
if (status === google.maps.StreetViewStatus.OK)
{
// ok
//alert('existed');
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var gmap = new google.maps.Map(document.getElementById("streetLayer"),
myOptions);
var panoramaOptions = {
position: latlng,
pov: {
heading: 34,
pitch: 10,
zoom: 1
}
};
var panorama = new google.maps.StreetViewPanorama(document.getElementById("streetLayer"), panoramaOptions);
panorama.setPano(streetViewPanoramaData.location.pano);
gmap.setStreetView(panorama);
document.getElementById('streetLayerBackground').style.visibility = "visible";
var svlayer = document.getElementById('streetLayer');
svlayer.style.visibility = "visible";
svlayer.style.width = "80%";
document.getElementById('streetLayerClose').style.visibility = "visible";
}
else
{
alert('Google Street View not available');
}
});
}
function showGoogleStreeView(){
//document.getElementById('streetFrame').reload(true);
document.getElementById('streetLayerBackground').style.visibility = "visible";
document.getElementById('streetLayer').style.visibility = "visible";
}
function closeGoogleStreeView(){
//document.getElementById('streetFrame').reload(true);
document.getElementById('streetLayerBackground').style.visibility = "hidden";
var svlayer = document.getElementById('streetLayer');
svlayer.style.visibility = "hidden";
svlayer.style.width = "0%";
document.getElementById('streetLayerClose').style.visibility = "hidden";
}
var geteta_ref = 0;
function showeta_bak(stopid, rdv, seq, bound){
ajaxindex++;
makeRequestref('auto_b4d99dc7b4a248609d4789a7458d9f08.php?stopid='+stopid+'&rdv='+rdv+'&seq='+seq+'&bound='+bound+'&l='+lang,'popupboxlist', ajaxindex);
}
function showeta(){
//-----Check call recaptcha or not------
if (recaptcha_check_called == false) {
makeRequest("checkCall.php?type=eta", "dummydiv");
return;
}
recaptcha_check_called = false;
//-----Origin code-----
var tmpref = ++ajaxindex;
geteta_ref = tmpref;
makeRequestref('auto_b4d99dc7b4a248609d4789a7458d9f08.php?l='+lang,'popupboxlist', tmpref);
}
function showprintout(code){
document.getElementById('printout').style.visibility = "visible";
makeRequest('printout.php?code='+code+'&l='+lang,'printout');
}
function hideprintout(){
document.getElementById('printout').style.visibility = "hidden";
}
function shownotice_stop(stopid){
makeRequest('getnotice_stop.php?stopid='+stopid+'&l='+lang+'<ab='+lasttab,'popupboxlist');
}
function showroute_eta_extra_bak(stopid){
makeRequest('auto_9210320c302a4df997fe435a37149a0f.php?stopid='+stopid+'&l='+lang,'popupboxlist');
}
function showroute_eta_extra(stopid){
//-----Check call recaptcha or not------
if (recaptcha_check_called == false) {
makeRequest("checkCall.php?type=route&stopid=" + stopid, "dummydiv");
return;
}
recaptcha_check_called = false;
//-----Origin code-----
makeRequest('auto_9210320c302a4df997fe435a37149a0f.php?l='+lang,'popupboxlist');
}
function showblank(){
makeRequest('blank.php','popupboxlist');
}
function restartPopupboxlist()
{
document.getElementById('popupboxlist').style.backgroundColor = themecolor;
document.getElementById('popupboxlist').style.overflow="auto";
}
function shownotice(r){
loadbox2("boxtitle2.php?t=notice&l="+lang,"custnotice.php?l="+lang+"&route="+r+"&route2="+r2+"&syscode=762650984928828d4a8f3719c43cb61881776095d7");
}
function shownotice2(r,r2){
loadbox2("boxtitle2.php?t=notice&l="+lang,"custnotice.php?l="+lang+"&route="+r+"&route2="+r2+"&syscode=762650357588f62acda2d8bb7cb64fb2610af17135");
}
// function popupNotice(r)
// {
// makeRequest("specialNotice.php?l="+lang+"&route="+r,'dummydiv');
// }
function popupNotice()
{
var r = arguments[0];
var r2 = arguments[1];
var click = arguments[2] == 1 ? 1 : 0;
if (r2 == '' || r2 === undefined)
{
makeRequest("specialNotice.php?click="+click+"&l="+lang+"&route="+r+"&syscode=7626503730e95a6ad9ab61d94d2225bab41626e8bd",'dummydiv');
}
else
{
makeRequest("specialNotice.php?click="+click+"&l="+lang+"&route="+r+"&route2="+r2+"&syscode=7626504095bfab5f0b72e2fe8412b967a3f66e8d41",'dummydiv');
}
}
function hotspotselect(n){
if(hotspottype[n]==0)
hotspottype[n]=1;
else
hotspottype[n]=0;
if(hotspottype[1]==0)
document.getElementById('hot1').src='tdummy.png';
else
document.getElementById('hot1').src='Ok-icon.png';
if(hotspottype[2]==0)
document.getElementById('hot2').src='tdummy.png';
else
document.getElementById('hot2').src='Ok-icon.png';
if(hotspottype[3]==0)
document.getElementById('hot3').src='tdummy.png';
else
document.getElementById('hot3').src='Ok-icon.png';
showpoi();
}
function zoomclick(event){
pos_x = event.clientX;
pos_y = event.clientY;
//alert(pos_x+" "+pos_y);
if(pos_x>405 && pos_x<425 && pos_y>120 && pos_y<216){
z = 18 - Math.round((pos_y -120 - 5) / 11);
map.zoomTo(z);
}
}
function stopauto(e,input,div){
var keynum;
var skey;
var tmpstr="";
var type="";
var i=0;
if(window.event) // IE
{
keynum = e.keyCode;
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which;
}
if(keynum==8||keynum==46){
if(input=="sloc"){
var arr=tmpstr1.split('|*|');
$('#sloc').unautocomplete();
}
else if(input=="eloc"){
var arr=tmpstr2.split('|*|');
$('#eloc').unautocomplete();
}
else{
var arr=tmpstr1.split('|*|');
$('#skey').unautocomplete();
}
skey=document.getElementById(input);
if(countchar(skey.value,':')==4&&skey.value.charAt(skey.value.length-1)!=":"){
skey.value=skey.value.substring(0,skey.value.lastIndexOf(":")+1);
for(i=0;i0.0&&mapstartlon>0.0){
addcustommarker(getlonlat(mapstartlon,mapstartlat),ssmar,36,80,-20,-80);
document.getElementById("slat").value=mapstartlat;
document.getElementById("slon").value=mapstartlon;
}
reordermarker();
map.panTo(ll);
*/
abl3=false;
});
}
function getautodata2(){
//var x=document.getElementsByName("stype");
$('#sloc').unautocomplete();
var link;
link="bsearch_p3.php?l="+lang;
$("#sloc").autocomplete(link, {
width: 280,
highlight: false,
scroll: true,
scrollHeight: 300,
matchContains: true,
max: 100,
minChars:2
}).result(function(event, data, formatted) {
var result1=document.getElementById("sloc");
result1.value=data[1];
mapstartname=data[1];
var result2=document.getElementById("slat");
result2.value=data[2];
var result3=document.getElementById("slon");
result3.value=data[3];
mapstartlat=parseFloat(data[2]);
mapstartlon=parseFloat(data[3]);
startlat=mapstartlat;
startlon=mapstartlon;
startname=mapstartname;
gomenu(2,1);
mappanto(startlon,startlat);
/*
alert(mapstartlat+" "+mapstartlon);
clearmarkers();
clearCsNearbyMarker();
addcustommarker(ll,ssmar,36,80,-20,-80);
if(mapendlat>0.0&&mapendlon>0.0){
addcustommarker(getlonlat(mapendlon,mapendlat),eemar,36,80,-20,-80);
document.getElementById("elat").value=mapendlat;
document.getElementById("elon").value=mapendlon;
}
reordermarker();
map.panTo(ll);
*/
abl2=false;
});
}
function getautodata1(){
//var x=document.getElementsByName("stype");
$('#skey').unautocomplete();
var link;
link="bsearch_p3.php?l="+lang;
$("#skey").autocomplete(link, {
width: 280,
highlight: false,
scroll: true,
scrollHeight: 300,
matchContains: true,
max: 100,
minChars:2
}).result(function(event, data, formatted) {
var result1=document.getElementById("skey");
result1.value=data[1];
var result2=document.getElementById("lat");
result2.value=data[2];
var result3=document.getElementById("lon");
result3.value=data[3];
var tlat=parseFloat(data[2]);
var tlon=parseFloat(data[3]);
mappanto(tlon,tlat);
abl2=false;
});
}
function getautodata(type,div) {
if(div=="autocom"){
if(document.getElementById("autocom2")){
autooff("autocom2");
}
}
else{
if(document.getElementById("autocom")){
autooff("autocom");
}
}
var skey="";
var cnt;
var tmpstr;
var arr;
var ibottom = 0;
if(type=="s"){
skey =document.getElementById('sloc').value;
arr=tmpstr1.split('|*|');
tmpstr=arr[arr.length-2];
ibottom = findPosY(document.getElementById('ppstart'))+38;
}else if(type=="e"){
skey =document.getElementById('eloc').value;
arr=tmpstr2.split('|*|');
tmpstr=arr[arr.length-2];
ibottom = findPosY(document.getElementById('ppend'))+38;
}else{
skey =document.getElementById('skey').value;
arr=tmpstr1.split('|*|');
tmpstr=arr[arr.length-2];
ibottom = findPosY(document.getElementById('nearbybox'))+34;
}
if(skey!=""){
if(!tmpstr){
tmpstr="";
}
if(tmpstr.indexOf("|n")<=-1){
tmpstr+="|n";
}
if(tmpstr.length>2){
//document.getElementById('testing').value="IN";
c_autolist(tmpstr,div,true);
var list = document.getElementById(div);
list.style.top = ibottom+'px';
list.style.display = "block";
}
}else{
if(type=="s"){
tmpstr1="";
}else if(type=="e"){
tmpstr2="";
}else{
tmpstr1="";
}
//document.getElementById('test333').value=2;
var list = document.getElementById(div);
list.innerHTML = '...';
makeRequest("getlocation.php?k="+skey+"&t="+type+"&div="+div+"&lang="+lang+"<ab="+lasttab,div);
list.style.top = ibottom+'px';
list.style.display = "block";
}
}
function findPosY(obj)
{
var curtop = 0;
if(obj.offsetParent)
while(1)
{
curtop += obj.offsetTop;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
else if(obj.y)
curtop += obj.y;
return curtop;
}
function countchar(str,sec){
var arr=str.split(sec);
return arr.length;
}
function autooff(div){
var list = document.getElementById(div);
list.style.display="none";
list.innerHTML ='';
}
function clearstr(i,div,type){
var input=document.getElementById(i);
var str1;
var str2;
if(i=="sloc"){
str1="請選擇或輸入起點";
if(lang==1){
str1="Please select or input the origin";
}
if(lang==2){
str1="请选择或输入起点";
}
input.value=str1;
input.style.color='#707070';
mapstartlat=0.0;
mapstartlon=0.0;
mapstartname="";
document.getElementById('slat').value="";
document.getElementById('slon').value="";
clearmarkers();
clearCsNearbyMarker();
tmpstr1="";
if(mapendlat>0.0&&mapendlon>0.0){
addcustommarker(getlonlat(mapendlon,mapendlat),eemar,36,80,-20,-80);
document.getElementById("elat").value=mapendlat;
document.getElementById("elon").value=mapendlon;
}
}
else if(i=="eloc"){
str2="請選擇或輸入終點";
if(lang==1){
str2="Please select or input the destination";
}
if(lang==2){
str2="请选择或输入终点";
}
input.value=str2;
input.style.color='#707070';
mapendlat=0.0;
mapendlon=0.0;
mapendname="";
document.getElementById('elat').value="";
document.getElementById('elon').value="";
tmpstr2="";
clearmarkers();
clearCsNearbyMarker();
if(mapstartlat>0.0&&mapstartlon>0.0){
addcustommarker(getlonlat(mapstartlon,mapstartlat),ssmar,36,80,-20,-80);
document.getElementById("slat").value=mapstartlat;
document.getElementById("slon").value=mapstartlon;
}
}
else{
str1="請選擇或輸入地點";
if(lang==1){
str1="Please select or input the location";
}
if(lang==2){
str1="请选择或输入地点";
}
input.value=str1;
input.style.color='#707070';
tmpstr1="";
}
abl=false;
abl2=false;
abl3=false;
abl6=false;
}
function c_autolist(str,div,adstr){
var list = document.getElementById(div);
var arr=str.split('|');
var arr2;
var skey;
var tmpstr;
if(arr[5]=="s"){
skey =document.getElementById('sloc');
tmpstr=tmpstr1;
}
else if(arr[5]=="e"){
skey =document.getElementById('eloc');
tmpstr=tmpstr2;
}
else{
skey =document.getElementById('skey');
tmpstr=tmpstr1;
//document.getElementById('testing').value=tmpstr;
}
if(arr[2]<5){
if(arr[6]!="n"){
// skey.value+=arr[0]+":";
skey.value = arr[0];
//skey.focus();
}
if(arr[5]=="s"&&adstr==false){
tmpstr1+=str+"|*|";
}
else if(arr[5]=="e"&&adstr==false){
tmpstr2+=str+"|*|";
}
else{
if(adstr==false){
tmpstr1+=str+"|*|";
}
//document.getElementById('test333').value=tmpstr1;
}
//document.getElementById('test333').value=tmpstr;
list.innerHTML = '...';
//document.getElementById('testing2').value=str;
makeRequest("getlocation.php?k="+arr[1]+"&l="+arr[2]+"&t="+arr[5]+"&div="+div+'&lang='+lang+'<ab='+lasttab,div);
}
else if(arr[2]>=5){
if((countchar(tmpstr,'|'))>6){
// skey.value=skey.value.substring(0,skey.value.lastIndexOf(":")+1)+arr[0];
skey.value = arr[0];
//alert(skey.value.lastIndexOf(":"));
}
else{
// skey.value+=arr[0];
skey.value = arr[0];
if(arr[5]=="s"){
tmpstr1+="";
}
else if(arr[5]=="e"){
tmpstr2+="";
}
else{
tmpstr1+="";
}
//document.getElementById('test333').value=tmpstr;
}
//document.getElementById('tempstr').value=tmpstr;
}
if(arr[5]=="s"){
mapstartname=skey.value;
document.getElementById('slat').value=arr[3];
document.getElementById('slon').value=arr[4];
if(arr[2]==5){
mapstartlat=parseFloat(arr[3]);
mapstartlon=parseFloat(arr[4]);
startlat=mapstartlat;
startlon=mapstartlon;
startname=mapstartname;
gomenu(2,1);
mappanto(startlon,startlat);
list.style.display = "none";
abl=false;
}
}else if(arr[5]=="e"){
mapendname=skey.value;
document.getElementById('elat').value=arr[3];
document.getElementById('elon').value=arr[4];
if(arr[2]==5){
mapendlat=parseFloat(arr[3]);
mapendlon=parseFloat(arr[4]);
endlat=mapendlat;
endlon=mapendlon;
endname=mapendname;
gomenu(2,1);
mappanto(endlon,endlat);
list.style.display = "none";
abl=false;
}
}else{
if(arr[2]==5){
clearmarkers();
clearCsNearbyMarker();
map.zoomTo(16);
var lon = parseFloat(arr[4]);
var lat = parseFloat(arr[3]);
mappanto(lon,lat);
document.getElementById("lat").value=arr[3];
document.getElementById("lon").value=arr[4];
document.getElementById("autocom").style.display="none";
abl=false;
}
}
}
var lat=22.290000
var lon=114.1800
var zoom=10
var map; //complex object of type OpenLayers.Map
var alat=-0.0001935197;
var alon=0.0000697374;
var layerCenterMap;
//var markersize = new OpenLayers.Size(49,32);
//var markeroffset = new OpenLayers.Pixel(-17, -markersize.h);
var checkcnt=0;
var sysmode=-1;
var errorcnt=0;
var ajaxindex=0;
var mapclicklat=0.0;
var mapclicklon=0.0;
var templocname="";
var chmenumode=0;
var controls;
var movingmarker = null;
var smarker = null;
var emarker = null;
var sn=0;
var hlstop="";
var lastnearbylat = "";
var lastnearbylon = "";
var ssid = "66a49e6a7b455";
//var lang=0;
//Initialise the 'map' object
function init() {
alert("hello");
mapinit();
map.events.register("click", map, function(e) {
hiderightclickbox();
var ll1= map.getLonLatFromViewPortPx(e.xy);
if(syspopup=="A"){
map.panTo(ll1);
var ll2= ll1.transform(map.getProjectionObject(), new OpenLayers.Projection("EPSG:4326"));
tlat=ll2.lat-alat;
tlon=ll2.lon-alon;
}else{
mwypopupremove();
map.panTo(ll1);
var ositem=document.getElementById(hlstop);
if(ositem){
ositem.style.backgroundColor='';
hlstop='';
}
}
});
map.events.register("mousemove", map, function(e) {
//hiderightclickbox();
if(emarker!=null && movingmarker==emarker){
var opx = map.getLayerPxFromViewPortPx(e.xy) ;
emarker.moveTo(opx) ;
}
});
map.events.register("moveend",map,function(e){
if(sysmode==0 && syspopup=="A"){
nearby();
hidep2pmenu();
}
});
map.events.register("movestart", map, function(e) {
if(sysmode==0 && syspopup=="A"){
//document.getElementById('redcross').style.visibility = "visible";
}
});
map.div.oncontextmenu = function noContextMenu(evt) {
var str,str1,str2;
if (true || OpenLayers.Event.isRightClick(evt)){
var mx=0; var my=0;
if(document.all){
mx=window.event.clientX;
my=window.event.clientY;
}else{
mx= evt.pageX;
my= evt.pageY;
}
var posx = (mx-4)+"px"; var posy = (my-4)+"px";
var atts = document.getElementById("rightclickoption");
var ll1= map.getLonLatFromViewPortPx(new OpenLayers.Pixel(mx-386,my-24));
var ll2= ll1.transform(map.getProjectionObject(), new OpenLayers.Projection("EPSG:4326"));
mapclicklat=ll2.lat-alat;
mapclicklon=ll2.lon-alon;
atts.oncontextmenu=function(){return false;};
if (lang==0){
str="設為起點";
str1="設為終點";
str2="加至我的書籤";
}
else if(lang==1){
str="Set Origin";
str1="Set Destination";
str2="Add Bookmark";
}
else{
str="设为起点";
str1="设为终点";
str2="加至我的书签";
}
var s = '';
s+='';
s+=' '+str+' ';
s+=' '+str1+' ';
s+=' '+str2+' ';
s+='
';
atts.innerHTML = s;
atts.style.position='absolute';
atts.style.top=posy;
atts.style.left=posx;
atts.style.display='block';
//Event.stop(evt);
}
return false;
};
hotspottype[0]=hotspottype[1]=hotspottype[2]=hotspottype[3]=1;
showpoi();
}
function rmenumousedown(){
return false;
}
function hiderightclickbox(){
var atts = document.getElementById("rightclickoption");
if(atts.style.top.substring(0,1)!='-'){
atts.style.top="-300px";
}
}
function shownearbybookmark(name,lat,lon){
clearmarkers();
clearCsNearbyMarker();
var ll = getlonlat(lon,lat);
addmarker(ll,"B");
map.panTo(ll);
var sss = document.getElementById("skey");
if(sss){
sss.value=name;
}
}
function showbookmarkonmap(lat,lon){
clearmarkers();
clearCsNearbyMarker();
var ll = getlonlat(lon,lat);
addcustommarker(ll,"marker-blue.png",49,32,-8,-32,"Dummy");
mappanto(ll[0],ll[1]);
showmarker();
}
function addbookmark(lat,lon,name){
name=encodeURIComponent(name);
if(lat!=""&&lon!=""&&name!="")
loadbox2("boxtitle2.php?t=bookmark"+"&l="+lang+"<ab="+lasttab,"newlocationbookmark.php?lat="+lat+"&lon="+lon+"&name="+name+"&l="+lang+"<ab="+lasttab);
}
function callweb(weburl){
var url = weburl;
var result = "";
$.ajax({
url: url,
type: 'GET',
async: false,
cache: false,
timeout: 30000,
error: function(){
alert("Error to connect server!");
},
success: function(msg){
result = msg;
}
});
return result;
}
function gorightclick(mode){
switch(mode){
case 0:
startlat=mapclicklat;
startlon=mapclicklon;
mapstartlat=mapclicklat;
mapstartlon=mapclicklon;
var rrr = callweb("get_rgeocode.php?lat="+mapclicklat+"&lon="+mapclicklon+"&l="+lang);
mapstartname = rrr;
if (locbookmark != "") mapstartname = locbookmark;
startname = mapendname;
gomenu(2,1);
//mapstartname=mapclicklat.toPrecision(8)+","+mapclicklon.toPrecision(9);
break;
case 1:
endlat=mapclicklat;
endlon=mapclicklon;
mapendlat=mapclicklat;
mapendlon=mapclicklon;
var rrr = callweb("get_rgeocode.php?lat="+mapclicklat+"&lon="+mapclicklon+"&l="+lang);
mapendname = rrr;
if (locbookmark != "") mapendname = locbookmark;
endname = mapendname;
gomenu(2,1);
//mapendname=mapclicklat.toPrecision(8)+","+mapclicklon.toPrecision(9);
break;
case 2:
var rrr = callweb("get_rgeocode.php?lat="+mapclicklat+"&lon="+mapclicklon+"&l="+lang);
bookmarkname = rrr;
addbookmark(mapclicklat,mapclicklon, bookmarkname);
clearmarkers();
clearCsNearbyMarker();
removeline();
break;
}
hiderightclickbox();
if(mode==0 || mode==1){
chmenumode=1;
gomenu(2);
if(mapendlat>mapstartlat){
if(mapendlat>0.0){
var ll = getlonlat(mapendlon,mapendlat);
//emarker = addcustommarker(ll,"endpoint_tc.png",84,31,-33,-31);
emarker = addcustommarker(ll,eemar,36,80,-20,-80);
emarker.events.register("mousedown", emarker, function(e) {
movingmarker=emarker;
});
emarker.events.register("mouseup", emarker, function(e) {
movingmarker=null;
});
emarker.events.register("mouseout", emarker, function(e) {
movingmarker=null;
});
}
if(mapstartlat>0.0){
var ll=getlonlat(mapstartlon,mapstartlat);
emarker = addcustommarker(ll,ssmar,36,80,-20,-80);
m.events.register("click", m, function(e) {
movingmarker=m;
movingmarkerxy=e.xy;
});
}
reordermarker();
}else{
if(mapstartlat>0.0){
var ll=getlonlat(mapstartlon,mapstartlat);
var m = addcustommarker(ll,ssmar,36,80,-20,-80);
m.events.register("click", m, function(e) {
movingmarker=m;
movingmarkerxy=e.xy;
});
}
if(mapendlat>0.0){
var ll=getlonlat(mapendlon,mapendlat);
var m = addcustommarker(ll,eemar,36,80,-20,-80);
m.events.register("click", m, function(e) {
movingmarker=m;
movingmarkerxy=e.xy;
});
}
reordermarker();
}
}
loclocbookmark = "";
}
function showstartendpoints(){
if(mapstartlat>0.0){
var ll=getlonlat(mapstartlon,mapstartlat);
console.log(mapstartlon);
var m = addcustommarker(ll,ssmar,36,80,-10,-80,lstartpo);
}
if(mapendlat>0.0){
var ll=getlonlat(mapendlon,mapendlat);
var m = addcustommarker(ll,eemar,36,80,-10,-80,lendpo);
}
//reordermarker();
showmarker();
}
var markersize = new Array(1000);
function addcustommarker(ll,png,sizex,sizey,offx,offy,name){
var lng=parseFloat(ll[0]);
var lat=parseFloat(ll[1]);
var increment = 1;
var lastpoint = -1;
var info = name+"||C||"+lat+"||"+lng+"||"+png+"||"+sizex+"||"+sizey+"||"+offx+"||"+offy;
if(lastpoint==-1) lastpoint=markercount;
if(sizex==15)
markercodes[lastpoint] = "P";
else
markercodes[lastpoint] = "C";
markerlat[lastpoint] = lat;
markersize[lastpoint] = [sizex,sizey,offx,offy];
markers[lastpoint] = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([lng+alon,lat+alat],'EPSG:4326', 'EPSG:3857')),
name: info
});
amode='pixels';
ax=(-offx)*2;
ay=(-offy);
if(sizex==15){
ax=0.5;
ay=0.5;
amode='fraction';
}
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
scale: 1,
anchor: [ax,ay],
anchorXUnits: amode,
anchorYUnits: amode,
opacity: 1,
src: png
}))
});
markers[lastpoint].setStyle(iconStyle);
markercount+=increment;
}
function addstoponmap(stopid,lon,lat,ccode,bsa_seq,name,rdv,bound,eta,altLon,altLat){
name=name+"{"+stopid+"^"+lat+"^"+lon+"^"+bsa_seq+"^"+rdv+"^"+bound+"^"+eta+"^"+altLat+"^"+altLon+"}";
if(ccode=='B')
var mmm = addcustommarker(getlonlat(lon,lat),"xstop.png",40,40,-2,-40,name);
else if(ccode=='S')
var mmm = addcustommarker(getlonlat(lon,lat),"sstop.png",40,40,-2,-40,name);
else if(ccode=='E')
var mmm = addcustommarker(getlonlat(lon,lat),"estop.png",40,40,-2,-40,name);
else if(ccode=='C')
var mmm = addcustommarker(getlonlat(lon,lat),"xstop.png",40,40,-2,-40,name);
else if(ccode=='R')
var mmm = addcustommarker(getlonlat(lon,lat),"sstop.png",40,40,-2,-40,name);
else if(ccode=='G')
var mmm = addcustommarker(getlonlat(lon,lat),"estop.png",40,40,-2,-40,name);
else if(ccode=='Y')
var mmm = addcustommarker(getlonlat(lon,lat),stop_marker,40,40,-2,-40,name);
else
var mmm = addcustommarker(getlonlat(lon,lat),"stop.png",15,15,-7,-7,name);
if(ccode=='S' || ccode=='E')
var mmm = addcustommarker(getlonlat(lon,lat),"dummy.png",15,15,-7,-7,name);
/*
mmm.events.register("click", mmm, function(e){
stopclick1(stopid,lat,lon,bsa_seq,rdv,bound,eta)
});
*/
}
function addstoponmap_near(stopid,lon,lat,ccode,bsa_seq,name,rdv,altLon,altLat){
lon = lon-0;
lat = lat-0;
altLon = altLon - 0;
altLat = altLat - 0;
var temp = '||0||0||0';
var etainfo = stopid.concat(temp);
//makeRequest(\'auto_9c16716c8c2f4918912936ac89a14679.php?info='.$etainfo.'\',\'dummydiv\')
//var mmm = addmarker(getlonlat(lon,lat),ccode,num,name);
name=name+"|*|["+stopid+"]"+stopid+"|*|"+altLon+"||"+altLat+"|*|";
//alert(name);
if(ccode=='B')
var mmm = addcustommarker(getlonlat(lon,lat),"xstop.png",40,40,-2,-40,name);
else if(ccode=='S')
var mmm = addcustommarker(getlonlat(lon,lat),"sstop.png",40,40,-2,-40,name);
else if(ccode=='E')
var mmm = addcustommarker(getlonlat(lon,lat),"estop.png",40,40,-2,-40,name);
else if(ccode=='C')
var mmm = addcustommarker(getlonlat(lon,lat),"xstop.png",40,40,-2,-40,name);
else if(ccode=='R')
var mmm = addcustommarker(getlonlat(lon,lat),"sstop.png",40,40,-2,-40,name);
else if(ccode=='G')
var mmm = addcustommarker(getlonlat(lon,lat),"estop.png",40,40,-2,-40,name);
else if(ccode=='Y')
var mmm = addcustommarker(getlonlat(lon,lat),stop_marker,40,40,-2,-40,name);
else
var mmm = addcustommarker(getlonlat(lon,lat),"stop.png",15,15,-7,-7,name);
/*
mmm.events.register("click", mmm, function(e){
makeRequest('auto_9c16716c8c2f4918912936ac89a14679.php?info='+etainfo,'dummydiv')
stopclick1_nearby(stopid,lat,lon)
});
*/
}
var lhotspot = "熱點";
function hotspotonmap(id,lat,lon,cat,name){
lat = lat-0;
lon = lon-0;
var ll = getlonlat(lon,lat);
//var mmm = addmarker(ll,"B");
var img = "";
if (cat=='Leisure')
img='poi_leisure.png';
else if (cat=='Shopping')
img='poi_shopping.png';
else if (cat=='Exhibitions')
img='poi_exhibitions.png';
var name = "*"+name+"{"+id+"^"+lat+"^"+lon;
addcustommarker(getlonlat(lon,lat),img,40,40,-6,-40,name);
}
function hotspotclick(id,tlat,tlon){
var lat=parseFloat(tlat);
var lon=parseFloat(tlon);
var coord = ol.proj.transform([lon, lat], 'EPSG:4326', 'EPSG:3857');
hotspotpopup.setPosition(coord);
makeRequestref('gethotspotresult.php?id='+id+'&lat='+lat+'&lon='+lon+'&l='+lang,'hpopupcontent',ajaxindex);
var z = Math.floor(map.getView().getZoom());
if(z>=10 && z<=18){
var coord2 = ol.proj.transform([lon, lat-difflat[z]], 'EPSG:4326', 'EPSG:3857');
mappantoxy(coord2);
}
hideleftpanel();
}
function hotspotclickdelay(id,lat,lon){
poipopup(getlonlat(lon,lat));
ajaxindex++;
var ositem=document.getElementById(hlstop);
if(ositem){
ositem.style.backgroundColor="";
}
var sitem=document.getElementById(id);
if(sitem){
hlstop=id;
sitem.style.backgroundColor="#FFEA80";
}
var url='gethotspotresult.php?id='+id+'&lat='+lat+'&lon='+lon+'&l='+lang;
setTimeout("makeRequestref('"+url+"','popupcontent',ajaxindex)",1000);
}
/************* Not In Use *************/
function stopclick(id,lat,lon,num,rnum,d,v,altLat,altLon){
fbpopup(getlonlat(lon,lat));
ajaxindex++;
var ositem=document.getElementById(hlstop);
if(ositem){
ositem.style.backgroundColor="";
}
var sitem=document.getElementById(num);
if(sitem){
hlstop=num;
sitem.style.backgroundColor="#FFEA80";
}
makeRequestref('getrouteinstop.php?id='+id+'&lat='+lat+'&lon='+lon+'&r='+rnum+'&d='+d+'&v='+v+'&l='+lang+'&altLat='+altLat+'&altLon='+altLon,'popupcontent',ajaxindex);
document.getElementById('redcross').style.visibility='hidden';
currentlist=0;
}
var latest_stopclick1_time = (new Date()).getTime();
var getrouteinstop_ref = 0;
//function stopclick1(stopid,lat,lon,bsa_seq,rdv,bound){
function stopclick1(stopid,lat,lon,bsa_seq,rdv,bound,eta,altLat,altLon){
//alert('in stopclick1');
if (isBlueTheme){
// alert('it is blue theme' + v_slide_d);
}
if ((new Date()).getTime() - latest_stopclick1_time < 500)
{
//alert( 'too fast');
return;
}
getrouteinstop_ref = ++ajaxindex;
latest_stopclick1_time = (new Date()).getTime();
//alert(latest_stopclick1_time);
tlon = parseFloat(lon)+alon;
tlat = parseFloat(lat)+alat;
var ositem=document.getElementById(hlstop);
if(ositem){
ositem.style.backgroundColor="";
}
var sitem=document.getElementById('slist'+stopid+'-'+bsa_seq);
if(sitem){
hlstop='slist'+stopid+'-'+bsa_seq;
sitem.style.backgroundColor="#FFEA80";
}
makeRequestref('getrouteinstop.php?stopid='+stopid+'&lat='+lat+'&lon='+lon+'&seq='+bsa_seq+'&rdv='+rdv+'&bound='+bound+'&eta='+eta+'&l='+lang+'&ref='+getrouteinstop_ref+
'&altLat='+altLat+'&altLon='+altLon
,'popupcontent',getrouteinstop_ref);
document.getElementById('redcross').style.visibility='hidden';
currentlist=0;
var coord = ol.proj.transform([tlon, tlat], 'EPSG:4326', 'EPSG:3857');
markerpopup.setPosition(coord);
//showmarkerpopupinfo(undefined)
var z = Math.floor(map.getView().getZoom());
if(z>=10 && z<=18){
var coord2 = ol.proj.transform([tlon+difflon[z], tlat-difflat[z]], 'EPSG:4326', 'EPSG:3857');
mappantoxy(coord2);
}
}
// ******** Not in use ********
function stopclick1_nearby(stopid,lat,lon){
fbpopup(getlonlat(lon,lat));
ajaxindex++;
makeRequestref('getrouteinstop_nearby.php?stopid='+stopid+'&lat='+lat+'&lon='+lon+'&l='+lang,'popupcontent',ajaxindex);
document.getElementById('redcross').style.visibility='hidden';
currentlist=0;
}
function panto(lat,lon){
map.panTo(getlonlat(lon,lat));
}
function mapgoto(lat,lon){
var lonlat = getlonlat(lon,lat);
map.setCenter (lonlat, 14);
hidebox2();
}
function nearby(){
currentloc="";
showloading();
clearmarkers();
clearCsNearbyMarker();
removeline();
var ll1= map.getCenter();
var ll2= ll1.transform(map.getProjectionObject(), new OpenLayers.Projection("EPSG:4326"));
tlat=ll2.lat-alat;
tlon=ll2.lon-alon;
lastnearbylat = lat;
lastnearbylon = lon;
ajaxindex++;
makeRequestref('getnearbyroute.php?lat='+tlat+'&lon='+tlon+'&l='+lang,'sysitembox',ajaxindex);
setTimeout(function(){ makeRequestref('getnearbystop.php?lat='+tlat+'&lon='+tlon+'&l='+lang,'dummydiv',ajaxindex);}, 1000);
currentlist=0;
currentloc = callweb("get_rgeocode.php?lat="+tlat+"&lon="+tlon+"&l="+lang);
var aaa = document.getElementById('skey');
aaa.value = currentloc;
// map.zoomTo(17);
}
function shownearbystop(r,d,v,lat,lon){
clearmarkers();
clearCsNearbyMarker();
var ll1= map.getCenter();
var ll2= ll1.transform(map.getProjectionObject(), new OpenLayers.Projection("EPSG:4326"));
tlat=ll2.lat-alat;
tlon=ll2.lon-alon;
ajaxindex++;
if(lat!=0,lon!=0){
makeRequestref('getnearbystopinroute.php?lat='+lat+'&lon='+lon+'&r='+r+'&d='+d+'&v='+v,'dummydiv',ajaxindex);
}
else{
makeRequestref('getnearbystopinroute.php?lat='+tlat+'&lon='+tlon+'&r='+r+'&d='+d+'&v='+v,'dummydiv',ajaxindex);
}
}
function getlonlat(lon,lat){
return [lon,lat];
//alert(lon+" "+lat);
//return ol.proj.transform( [lon+alon, lat+alat], 'EPSG:4326', 'EPSG:3857');
}
function callweb(weburl){
var url = weburl;
var result = "";
url = url.replace("'","~SQ~");
url = url.replace('""','~DQ~');
var n = url.indexOf("?");
if (n > 0){
url = url + "&ssid=" + ssid;
}else{
url = url + "?ssid=" + ssid;
}
sn++;
if(url.indexOf("?")>0)
url=url+'&sysid='+sn;
else
url=url+'?sysid='+sn;
$.ajax({
url: url,
type: 'GET',
async: false,
cache: false,
timeout: 30000,
error: function(){
//debug("Error to connect server!");
},
success: function(msg){
result = msg;
}
});
return result;
}
var lastmakerequesturl = "";
function makeRequestref(urlx,id,ref) {
if(id=="sysinfo"){
lastmakerequesturl=urlx;
}
urlx = urlx.replace("'","~SQ~");
urlx = urlx.replace('""','~DQ~');
var n = urlx.indexOf("?");
if (n > 0){
urlx = urlx + "&ssid=" + ssid;
}else{
urlx = urlx + "?ssid=" + ssid;
}
sn++;
var pdf11 = document.getElementById('pdf11');
if(pdf11 && id!="lbox2"){
hidebox2();
}
sn++;
var url="";
if(urlx.indexOf("?")>0)
url=urlx+'&sysid='+sn;
else
url=urlx+'?sysid='+sn;
var http_request = false;
var ts1 = "";
var ts2 = "";
var p=0;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = function() {
alertContentsref(urlx,http_request,id,ref); };
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContentsref(urlx,http_request,id,ref) {
if (http_request.readyState == 4 && ajaxindex==ref) {
if (http_request.status == 200) {
var mesg = http_request.responseText;
if(id=="v_ustatus"){
v_ustatus=mesg;
}else{
if(id.substring(0,4)=='txt_'){
document.getElementById(id).value=mesg;
}else{
if (urlx.indexOf('auto_b4d99dc7b4a248609d4789a7458d9f08.php'))
{
console.log('>>>>>>>>>>>>>> ' + ref);
}
var checkcnt=0;
/*while(document.getElementById(id) && checkcnt<5){
setTimeout('',500);
checkcnt=checkcnt+1;
}*/
if (urlx.indexOf('auto_b4d99dc7b4a248609d4789a7458d9f08.php') > -1 && geteta_ref != ref)
return;
else
document.getElementById(id).innerHTML=mesg;
}
window.scrollTo(0,0);
}
} else {
errorcnt++;
//alert('There was a problem with the ajax request.');
}
}
}
function menu2action(){
if(chmenumode==1 || true){
if(startlat>0.0){
document.ppsearch.sloc.value = Math.round(startlat*1000000)/1000000+','+Math.round(startlon*1000000)/1000000;
startname=convertcharBACK(startname);
document.getElementById('sloc').value=startname;
document.getElementById('sloc').style.color='#000000';
mapstartname=startname;
mapstartlat=startlat;
mapstartlon=startlon;
}
if(endlat>0.0){
document.ppsearch.eloc.value = Math.round(endlat*1000000)/1000000+','+Math.round(endlon*1000000)/1000000;
endname=convertcharBACK(endname);
document.getElementById('eloc').value=endname;
document.getElementById('eloc').style.color='#000000';
mapendname=endname;
mapendlat=endlat;
mapendlon=endlon;
}
}else{
startlon=startlat=endlon=endlat=0.0;
}
chmenumode=0;
if(actioncode=='B' || true){
clearmarkers();
clearCsNearbyMarker();
showstartendpoints();
}
}
function makeRequest(urlx,id) {
if(id=="sysinfo"){
var aaa = urlx.split(".");
if(aaa[0]=="menu2" && lastmakerequesturl=="menu2"){
menu2action();
return;
}
lastmakerequesturl=aaa[0];
}
urlx = urlx.replace("'","~SQ~");
urlx = urlx.replace('""','~DQ~');
var n = urlx.indexOf("?");
if (n > 0){
urlx = urlx + "&ssid=" + ssid;
}else{
urlx = urlx + "?ssid=" + ssid;
}
sn++;
var url="";
if(urlx.indexOf("?")>0)
url=urlx+'&sysid='+sn;
else
url=urlx+'?sysid='+sn;
var http_request = false;
var ts1 = "";
var ts2 = "";
var p=0;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = function() {
alertContents(http_request,id); };
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContents(http_request,id) {
if (http_request.readyState == 4) {
if (id=='sysitembox2' || id=='sysitembox3' || id=='darea' || id=='dummydiv')
hideloading(1000);
if (http_request.status == 200) {
var mesg = http_request.responseText;
if(id=="v_ustatus"){
v_ustatus=mesg;
}else if(id=="*popup*"){
popup_request(mesg);
}else{
if(id.substring(0,4)=='txt_'){
document.getElementById(id).value=mesg;
}else{
var checkcnt=0;
while(document.getElementById(id) && checkcnt<5){
setTimeout('',500);
checkcnt=checkcnt+1;
}
document.getElementById(id).innerHTML=mesg;
if(id=="autocom" || id=="autocom2"){
if(mesg.length<10){
document.getElementById(id).style.display ="none";
}
}
}
window.scrollTo(0,0);
}
goresize();
} else {
errorcnt++;
//alert('There was a problem with the ajax request.');
}
}
}
function gosearch(aaa){
makeRequest('gosearch.php','search');
}
function vmarker(lat,lon){
var ll;
clearmarkers();
clearCsNearbyMarker();
ll=getlonlat(lon,lat);
addmarker(ll,"R");
map.setCenter(ll, 17);
//map.panTo(ll);
}
function vroute(id){
addline('route.php?id='+id,'#FF0000');
makeRequest('busstop.php?id='+id,'dummydiv');
}
function goresizex()
{
var p2p_guide = document.getElementById('p2p_guide');
var p2pmenu = document.getElementById('p2pmenu');
var myHeight = document.body.clientHeight-10;
//alert(myHeight);
if(p2p_guide && p2pmenu) {
p2p_guide.style.height=(myHeight - 22 - 52 - 84 - 8 - p2pmenu.clientHeight)+"px";
}
var itemlist_title_height=0;
var itemlist_title = document.getElementById('itemlist_title');
if(itemlist_title) {
itemlist_title_height = itemlist_title.clientHeight;
}
var stoplist_title_height=0;
var stoplist_title = document.getElementById('stoplist_title');
if(stoplist_title) {
stoplist_title_height = stoplist_title.clientHeight;
}
var p2p_routelist_title_height=0;
var p2p_routelist_title = document.getElementById('p2p_routelist_title');
if(p2p_routelist_title) {
p2p_routelist_title_height = p2p_routelist_title.clientHeight;
console.log("set p2p_routelist_title_height");
}
var p2p_stoplist_title_height=0;
var p2p_stoplist_title = document.getElementById('p2p_stoplist_title');
if(p2p_stoplist_title) {
p2p_stoplist_title_height = p2p_stoplist_title.clientHeight;
console.log("set p2p_stoplist_title_height");
}
var p2p_routenote_height=0;
var routenote = document.getElementById('routenote');
if(routenote) {
p2p_routenote_height = routenote.clientHeight;
console.log("set p2p_routenote_height");
}
var ajheight=0;
var businfo = document.getElementById('businfo');
if(businfo){
ajheight=businfo.clientHeight-32;
}
var businfo2 = document.getElementById('businfo2');
if(businfo2){
ajheight=businfo2.clientHeight-50;
}
var x,y;
if (self.innerHeight) // all except Explorer
{
x = self.innerWidth;
y = self.innerHeight;
}
else if (document.documentElement && document.documentElement.clientHeight)
// Explorer 6 Strict Mode
{
x = document.documentElement.clientWidth;
y = document.documentElement.clientHeight;
}
else if (document.body) // other Explorers
{
x = document.body.clientWidth;
y = document.body.clientHeight;
}
var screenh = y-28;
var screenw = x-389;
var ob = document.getElementById('optionbar');
if(ob)
ob.style.left = (screenw+265)+"px";
var bmlist = document.getElementById('bookmarklist');
if(bmlist)
bmlist.style.left = (screenw+265-190)+"px";
var bs1 = document.getElementById('hotspot');
if(bs1){
bs1.style.left = (screenw+265)+"px";
bs1.style.top = (screenh-25)+"px";
}
var bs2 = document.getElementById('hotspot2');
if(bs2){
bs2.style.left = (screenw+265)+"px";
bs2.style.top = (screenh-84)+"px";
}
var mwy = document.getElementById('mapwithyou');
if(mwy){
mwy.style.left = (screenw+235)+"px";
mwy.style.top = (screenh+6)+"px";
}
var w = document.getElementById('wrapper');
if(w){
w.style.top = ((document.documentElement.clientHeight-500)/2)+"px";
w.style.left = ((document.documentElement.clientWidth-600)/2)+"px";
}
var w2 = document.getElementById('wrapper2');
if(w2){
w2.style.top = ((document.documentElement.clientHeight-300)/2)+"px";
w2.style.left = ((document.documentElement.clientWidth-400)/2)+"px";
}
var w3 = document.getElementById('wrapper3');
if(w3){
document.getElementById('wrapper3').style.top = ((document.documentElement.clientHeight-600)/2) +"px";
if (document.getElementById('wrapper4').style.visibility!="hidden")
{
document.getElementById('wrapper3').style.left = ((document.documentElement.clientWidth)/2+50)+"px";
}
else
{
document.getElementById('wrapper3').style.left = ((document.documentElement.clientWidth-400)/2)+"px";
}
// document.getElementById('wrapper3').style.visibility = "visible";
}
var w4 = document.getElementById('wrapper4');
if(w4){
document.getElementById('wrapper4').style.top = ((document.documentElement.clientHeight-600)/2) +"px";
if (document.getElementById('wrapper3').style.visibility!="hidden")
{
document.getElementById('wrapper4').style.left = ((document.documentElement.clientWidth)/2-450)+"px";
}
else
{
document.getElementById('wrapper4').style.left = ((document.documentElement.clientWidth-500)/2)+"px";
}
// document.getElementById('wrapper4').style.visibility = "visible";
}
var w5 = document.getElementById('wrapper5');
if(w5){
document.getElementById('wrapper5').style.top = ((document.documentElement.clientHeight-600)/2) +"px";
// if (document.getElementById('wrapper3').style.visibility!="hidden")
// {
document.getElementById('wrapper4').style.left = ((document.documentElement.clientWidth)/2-450)+"px";
// }
// else
// {
// document.getElementById('wrapper4').style.left = ((document.documentElement.clientWidth-500)/2)+"px";
// }
// document.getElementById('wrapper4').style.visibility = "visible";
}
var ibox = document.getElementById('sysitembox');
if(ibox){
sysboxheight(ibox);
}
var ibox2 = document.getElementById('sysitembox2');
if(ibox2){
sysboxheight(ibox2);
}
var ibox3 = document.getElementById('sysitembox3');
if(ibox3){
console.log("Top "+ibox3.style.top);
sysboxheight(ibox3);
}
var ibox4 = document.getElementById('sysitembox4');
if(ibox4){
ibox4.style.height=(screenh-162)+"px";
}
var nbbox = document.getElementById('nearbylist');
if(nbbox){
var cheight = parseInt(ibox.style.height.replace("px", ""));
nbbox.style.height=(cheight-43)+"px";
}
var al1 = document.getElementById('arealist1');
if(al1){
var cheight = parseInt(ibox3.style.height.replace("px", ""));
al1.style.height=(cheight-43)+"px";
}
var rl1 = document.getElementById('routelist1');
if(rl1){
if(ibox2){
var cheight = parseInt(ibox2.style.height.replace("px", ""));
rl1.style.height=(cheight-42)+"px";
}
if(ibox3){
var cheight = parseInt(ibox3.style.height.replace("px", ""));
rl1.style.height=(cheight-48)+"px";
}
}
var rl2 = document.getElementById('routelist2');
if(rl2 && ibox2){
var cheight = parseInt(ibox2.style.height.replace("px", ""));
if (p2p_routelist_title_height!= 0){
rl2.style.height=(cheight - p2p_routelist_title_height- p2p_routenote_height - 5)+"px";
console.log("r1="+rl2.style.height);
}
if (itemlist_title_height!= 0){
rl2.style.height=(cheight - itemlist_title_height)+"px";
rl2.style.height="calc(100vh - 230px)";
console.log("r3="+rl2.style.height);
}
}else if(rl2 && ibox){
var cheight = parseInt(ibox.style.height.replace("px", ""));
rl2.style.height=(cheight-42)+"px";
rl2.style.height="calc(100vh - 226px)";
console.log("r4="+rl2.style.height);
}else if(rl2 && ibox3){
var cheight = parseInt(ibox3.style.height.replace("px", ""));
rl2.style.height=(cheight - p2p_routelist_title_height - p2p_routenote_height - 5)+"px";
console.log("set p2p_routelist height");
console.log("r5="+rl2.style.height);
}
var slpp = document.getElementById('sysstoplistpp');
if(slpp){
var dtheight = 0;
var ttheight = 26;
var cheight = parseInt(ibox3.style.height.replace("px", ""));
slpp.style.height=(cheight-101-40-ajheight)+"px";
var dtheight=(cheight-101-40-ajheight-ttheight);
var dtsl1 = document.getElementById('dtsysstoplist1');
dtsl1.style.height=(dtheight+45)+"px";
console.log("test 3");
}
var sl1 = document.getElementById('sysstoplist1');
if(sl1){
var dtheight = 0;
var ttheight = 26;
var sysstoplist1_height = 0;
if(ibox2){
var cheight = parseInt(ibox2.style.height.replace("px", ""));
sl1.style.height=(cheight-42-stoplist_title_height-35-5+5)+"px";
dtheight=(cheight-101-40-ajheight-ttheight-50);
console.log("set sysstoplist 1");
}else if(ibox3){
var cheight = parseInt(ibox3.style.height.replace("px", ""));
sl1.style.height=(cheight-42-stoplist_title_height-35-5+5)+"px";
dtheight=(cheight-101-40-ajheight-ttheight);
console.log("set sysstoplist 1");
}else{
var cheight = parseInt(ibox.style.height.replace("px", ""));
sl1.style.height=(cheight-42-stoplist_title_height-35-5+5)+"px";
dtheight=(cheight-101-35-ajheight-ttheight);
console.log("xtest 3");
}
sysstoplist1_height = parseInt(sl1.style.height.replace("px", ""));
}
var il1 = document.getElementById('itemlist1');
if(il1){
if(ibox3){
var cheight = parseInt(ibox3.style.height.replace("px", ""));
il1.style.height = (cheight - p2p_stoplist_title_height - p2p_routenote_height)+"px";
il1.style.height = (sysstoplist1_height)+"px";
}else if(ibox2 || ibox){
il1.style.height = (sysstoplist1_height)+"px";
console.log("set itemlist1height");
}
var dtsl1 = document.getElementById('dtsysstoplist1');
if(dtsl1){
dtsl1.style.height=(sysstoplist1_height-24)+"px"; // Busstop, fare title height = 24
console.log("set dtsystoplist1 height");
}
}
var il2 = document.getElementById('itemlist2');
if(il2){
if(ibox3){
var cheight = parseInt(ibox3.style.height.replace("px", ""));
il2.style.height = (cheight - p2p_stoplist_title_height)+"px";
il2.style.height = (sysstoplist1_height)+"px";
}else if(ibox2 || ibox){
il2.style.height = (sysstoplist1_height)+"px";
console.log("set itemlist2 height");
}
}
var pbar = document.getElementById('pdfbar');
if(pbar){
pbar.style.top=(screenh+20)+"px";
}
var rc = document.getElementById('redcross');
if(rc){
rc.style.top=(screenh/2+7)+"px";
rc.style.left=(screenw/2+387-15)+"px";
}
var snote = document.getElementById('specialNote');
if(snote){
snote.style.bottom=10+"px";
}
}
function fixtop(sid,top){
var sbox = document.getElementById(sid);
if(sbox){
sbox.style.top = top+"px";
}
}
function goetaresize()
{
var popupboxlist = document.getElementById('popupboxlist');
var nextbus = document.getElementById('nextbus');
nextbus.style.height = (popupboxlist.clientHeight - 18) + "px";
var nextbus_title = document.getElementById('nextbus_title');
var nextbus_list = document.getElementById('nextbus_list');
var nextbus_refresh = document.getElementById('nextbus_refresh');
if(nextbus_refresh){
nextbus_list.style.height=(nextbus.clientHeight - nextbus_title.clientHeight - nextbus_refresh.clientHeight - 10)+"px";
var nextbus_listitem = document.getElementById('nextbus_listitem');
var nextbus_space = document.getElementById('nextbus_space');
var nextbus_disclaimer = document.getElementById('nextbus_disclaimer');
console.log("Listitem ="+nextbus_listitem.clientHeight+"||Disclaimer ="+nextbus_disclaimer.clientHeight+"|| List ="+nextbus_list.clientHeight);
if((nextbus_listitem.clientHeight + nextbus_disclaimer.clientHeight) < nextbus_list.clientHeight){
nextbus_space.style.height = (nextbus_list.clientHeight - nextbus_listitem.clientHeight - nextbus_disclaimer.clientHeight) + "px";
}
}
}
function gorouteinstopresize()
{
var infoonmap = document.getElementById('infoonmap');
var busstopname = document.getElementById('busstopname');
var popupboxlist = document.getElementById('popupboxlist');
var popupboxlistmenu = document.getElementById('popupboxlistmenu');
popupboxlist.style.height=(infoonmap.clientHeight - busstopname.clientHeight - popupboxlistmenu.clientHeight)+"px";
}
function movesider(){
var siderbar = document.getElementById('zoomslider');
if(siderbar && map!=null){
siderbar.style.top = ((18-map.getZoom())*11+119)+"px";
}
}
function itemhighlighton(ss){
if(ss.substring(0,2)=="xx")
//document.getElementById(ss).style.backgroundColor='#808080';
document.getElementById(ss).style.backgroundColor='#bdbdbd';
else
document.getElementById(ss).style.backgroundColor=themecolor;
}
function itemhighlightoff(ss){
document.getElementById(ss).style.backgroundColor='';
}
function menuon(ss,mode){
if(mode==1)
document.getElementById(ss).style.backgroundColor='#FF0000';
else
document.getElementById(ss).style.backgroundColor='#FFA500';
}
function moption(ss,mode){
if(mode==1)
document.getElementById(ss).style.backgroundColor='#E0E0E0';
else
document.getElementById(ss).style.backgroundColor='#FFFFFF';
}
function gomenu(ss,m){
if(ss!=4){
clearmarkers();
clearCsNearbyMarker();
hidebox2();
}
if(ss!=0 && ss!=4 ){
clearmarkers();
}
clearCsNearbyMarker();
if(mapstartlat>0.0&&mapstartlon>0.0){
addcustommarker(getlonlat(mapstartlon,mapstartlat),ssmar,36,80,-20,-80);
}
if(mapendlat>0.0&&mapendlon>0.0){
addcustommarker(getlonlat(mapendlon,mapendlat),eemar,36,80,-20,-80);
}
if(ss!=4){
//mwypopupremove();
//removeline();
hidebox5();
hidebox4();
}
makeRequest('menu'+ss+'.php'+'?l='+lang+'&m='+m,'sysinfo');
currentmenu=ss;
if(ss!=0){
stopnearby();
}
cleartraffic();
}
function hidemenubar(){
document.getElementById("hotspot_line").style.backgroundColor='';
}
function loadbox2(boxheadfile,boxfile){
makeRequest(boxheadfile,'boxhead2');
makeRequest(boxfile,'lbox2');
showbox2();
}
function loadbox3(boxheadfile,boxfile)
{
makeRequest(boxheadfile,'boxhead3');
makeRequest(boxfile,'lbox3');
showbox3();
}
function loadbox4(boxheadfile,boxfile,mode)
{
makeRequest(boxheadfile,'boxhead4');
makeRequest(boxfile,'lbox4');
showbox4(mode);
}
function loadbox5(boxheadfile,boxheadfile2,boxfile,boxfile2)
{
makeRequest(boxheadfile,'boxhead5-1');
makeRequest(boxheadfile2,'boxhead5-2');
makeRequest(boxfile,'lbox5-1');
makeRequest(boxfile2,'lbox5-2');
showbox5();
}
function loadbox6(boxheadfile,boxfile)
{
makeRequest(boxheadfile,'boxhead6');
makeRequest(boxfile,'lbox6');
showbox6();
}
function loadbox7(boxheadfile,boxfile)
{
makeRequest(boxheadfile,'boxhead7');
makeRequest(boxfile,'lbox7');
showbox7();
}
function genpdf(f){
str1="正在產生報表,請稍候...";
if(lang==1){
str1="Generating, please wait...";
}
if(lang==2){
str1="正在产生报表,请稍候...";
}
var box2=document.getElementById('lbox2');
box2.innerHTML=''+
' '+str1+'
';
makeRequest('pp2genpdf.php?f='+f,'dummydiv');
}
function fbgenpdf(f1,f2){
makeRequest("fbgenpdf.php?f1="+f1+"&f2="+f2,"dummydiv");
}
function pdftomail(e,f,fx){
pic="pdfview.png";
pdfname=f;
pdfnamex=fx;
str1="檢視";
str2="發送郵件";
bk="返回";
if(lang==1){
str1="View";
str2="Send Email";
bk="back";
}
if(lang==2){
str1="检视";
str2="发送邮件";
bk="返回";
}
var box2=document.getElementById('lbox2');
if(e!=""){
sendpdf(e);
box2.innerHTML=oldpdf;
document.getElementById('femail').value=e;
/*
box2.innerHTML='';
*/
}else{
var p=oldpdf.toLowerCase().indexOf(' '+str1+' ';
if(fx!="")
ts2=' '+str1+' ';
var tpdf = oldpdf.substring(0,p);
box2.innerHTML=''+tpdf+
' '+
' '+
''+
''+bk+'
';
/*
box2.innerHTML=oldpdf.substring(0,p)+
' '+ts1+ts2+
''+
''+bk+' '+
'
';
*/
}
}
function pdftoprint(f){
var pic="";
if(f.indexOf("_1")>0)
pic="pdf1.png";
else if(f.indexOf("_2")>0)
pic="pdf2.png";
else if(f.indexOf("_3")>0)
pic="pdf3.png";
else
pic="pdf4.png";
pdfname=f;
str1="資料完成按這裡顯示";
if(lang==1){
str1="Click here to show";
}
if(lang==2){
str1="资料完成按这里显示";
}
var box2=document.getElementById('lbox2');
box2.innerHTML='';
}
function sendpdf(eee){
makeRequest('sendpdf.php?f='+pdfname+'&fx='+pdfnamex+'&email='+eee+'&l='+lang,'dummydiv');
}
function msendpdf(mode,pdf,f1,f2,extra){
//alert(mode + ', ' + pdf +', ' + f1 + ', ' + f2 + ', ' + extra);
var box2=document.getElementById('lbox2');
oldpdf=box2.innerHTML;
str1="請輸入有效的電郵地址";
str2="請選擇所需資料";
str3="您只能傳送電郵給一位收件者";
if(lang==1){
str1="Please enter a valid email address";
str2="Please select your required information";
str3="You can send email to one recipient only";
}
if(lang==2){
str1="请输入有效的电邮地址";
str2="请选择所需资料";
str3="您只能传送电邮给一位收件者";
}
var femail=document.getElementById('femail');
var ee=femail.value;
var emailCount = ee.match(/@/g);
if(extra=="V")
ee="";
if (emailCount != null && emailCount.length > 1){
alert(str3);
}
else if(extra!="V" && (ee.length<5 || !emailValidation(ee))){
alert(str1);
}
else{
var t1=document.getElementById('pdf11').src.indexOf('Ok-icon');
var t2=document.getElementById('pdf12').src.indexOf('Ok-icon');
var t3=document.getElementById('pdf21').src.indexOf('Ok-icon');
var t4=-1;
var tt=document.getElementById('pdf22');
if(tt)
t4=tt.src.indexOf('Ok-icon');
var p1="";
if(mode=="A"){
if(t1>0 && t2>0){
p1=pdf+"_A";
}else if(t1>0){
p1=pdf+"_1";
}else if(t2>0){
p1=pdf+"_2";
}
}else{
if(t1>0 && t2>0){
p1=pdf+"_B";
}else if(t1>0){
p1=pdf+"_3";
}else if(t2>0){
p1=pdf+"_4";
}
}
if(t3<0)
f1="";
if(t4<0)
f2="";
if(p1=="" && f1=="" && f1==""){
alert(str2);
}else{
str1="載入中, 請稍候...";
if(lang==1){
str1="Loading, please wait...";
}
if(lang==2){
str1="载入中, 请稍候...";
}
box2.innerHTML=''+
' '+str1+'
';
makeRequest('msendpdf.php?e='+ee+'&p='+p1+'&f1='+f1+'&f2='+f2+'&l='+lang,'dummydiv');
}
}
}
// email validation
function emailValidation(email) {
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if(reg.test(email) == false) {
return false;
}
return true;
}
function showbox2()
{
document.getElementById('wrapper2').style.top = ((document.documentElement.clientHeight-300)/2)+"px";
document.getElementById('wrapper2').style.left = ((document.documentElement.clientWidth-400)/2)+"px";
document.getElementById('wrapper2').style.visibility = "visible";
}
function hidebox2(){
document.getElementById('wrapper2').style.visibility = 'hidden';
document.getElementById('lbox2').innerHTML='';
}
function showbox3()
{
document.getElementById('wrapper3').style.top = ((document.documentElement.clientHeight-600)/2) +"px";
if (document.getElementById('wrapper4').style.visibility!="hidden")
{
document.getElementById('wrapper3').style.left = ((document.documentElement.clientWidth)/2+50)+"px";
}
else
{
document.getElementById('wrapper3').style.left = ((document.documentElement.clientWidth-400)/2)+"px";
}
document.getElementById('wrapper3').style.visibility = "visible";
}
function hidebox3(){
document.getElementById('wrapper3').style.visibility = 'hidden';
document.getElementById('lbox3').innerHTML='';
}
function showbox4(mode)
{
document.getElementById('wrapper4').style.top = ((document.documentElement.clientHeight-600)/2) +"px";
if (document.getElementById('wrapper3').style.visibility!="hidden")
{
document.getElementById('wrapper4').style.left = ((document.documentElement.clientWidth)/2-450)+"px";
}
else
{
document.getElementById('wrapper4').style.left = ((document.documentElement.clientWidth-500)/2)+"px";
}
document.getElementById('wrapper4').style.visibility = "visible";
}
function hidebox4(){
document.getElementById('wrapper4').style.visibility = 'hidden';
document.getElementById('lbox4').innerHTML='';
}
function showbox5()
{
document.getElementById('wrapper5').style.top = ((document.documentElement.clientHeight-600)/2)+"px";
document.getElementById('wrapper5').style.left = ((document.documentElement.clientHeight-600)/2)+"px";
document.getElementById('wrapper5').style.visibility = "visible";
}
function hidebox5(){
document.getElementById('wrapper5').style.visibility = 'hidden';
document.getElementById('lbox5-1').innerHTML='';
document.getElementById('lbox5-2').innerHTML='';
}
function showbox6()
{ //left: calc(380px + (100% - 380px - 206px)/2); top: calc(50% + 50px);
document.getElementById('wrapper6').style.top = ((document.documentElement.clientHeight)/2 + 50)+"px";
//document.getElementById('wrapper6').style.left = (380 + (document.documentElement.clientWidth -380 -206)/2)+"px";
document.getElementById('wrapper6').style.visibility = "visible";
}
function hidebox6(){
document.getElementById('wrapper6').style.visibility = 'hidden';
document.getElementById('lbox6').innerHTML='';
}
function showbox7()
{
document.getElementById('wrapper7').style.top = ((document.documentElement.clientHeight-300)/2)+"px";
document.getElementById('wrapper7').style.left = ((document.documentElement.clientWidth-300)/2)+"px";
document.getElementById('wrapper7').style.visibility = "visible";
}
function hidebox7(){
document.getElementById('wrapper7').style.visibility = 'hidden';
document.getElementById('lbox7').innerHTML='';
}
function hidesysitembox(s){
var list = document.getElementById(s);
list.style.display = "none";
}
function showsysitembox(s){
var list = document.getElementById(s);
list.style.display = "block";
}
function loadbox(boxheadfile,boxfile)
{
makeRequest(boxheadfile,'boxhead');
makeRequest(boxfile,'lbox');
showbox();
}
function showbox()
{
document.getElementById('wrapper').style.top = ((document.documentElement.clientHeight-500)/2)+"px";
document.getElementById('wrapper').style.left = ((document.documentElement.clientWidth-600)/2)+"px";
document.getElementById('wrapper').style.visibility = "visible";
}
function hidebox(){
document.getElementById('wrapper').style.visibility = 'hidden';
document.getElementById('lbox').innerHTML='';
}
function routeinfo(r,d,v){
makeRequest('getstopinroute.php?r='+r+'&d='+d+'&v='+v,'sysinfo');
}
function showxarea(id,s,e,t,darea){
showloading();
makeRequest("ppxsearch_2.php?id="+id+"&s="+s+"&e="+e+"&t="+t+'&l='+lang,darea);
stack.push(document.getElementById('sysitembox3').innerHTML);
}
function showdroute(r,d,v,r2,d2,v2,s,e,sz,ez,xa){
r = trim(r);
d = trim(d);
v = trim(v);
current_r = r.toUpperCase();
current_d = d.toUpperCase();
current_v = v.toUpperCase();
if(current_d=='')
current_d="T";
r2 = trim(r2);
d2 = trim(d2);
v2 = trim(v2);
current_r2 = r2.toUpperCase();
current_d2 = d2.toUpperCase();
current_v2 = v2.toUpperCase();
if(current_d2=='')
current_d2="T";
showloading();
mwypopupremove();
addline('getpproute.php?r='+r+'&d='+d+'&v='+v+"&s="+s+"&e="+e+"&line=1",'#FF0000');
appendline('getpproute.php?r='+r2+'&d='+d2+'&v='+v2+"&s="+s+"&e="+e+'&l='+lang + "&line=1",'#0000FF');
makeRequest('getpp2rroutestop.php?r='+r+'&d='+d+'&v='+v+'&r2='+r2+'&d2='+d2+'&v2='+v2+'&s='+s+'&e='+e+'&l='+lang+'&sz='+sz+'&ez='+ez+'&xa='+xa,'sysitembox3');
//alert('getpp2rroutestop.php?r='+r+'&d='+d+'&v='+v+'&r2='+r2+'&d2='+d2+'&v2='+v2+'&s='+s+'&e='+e+'&l='+lang+'&sz='+sz+'&ez='+ez+'&xa='+xa);
stack.push(document.getElementById('sysitembox3').innerHTML);
}
function showpdf(r,d,v,r2,d2,v2,s,e,sz,ez,xa){
var sl=encodeURIComponent(document.getElementById('sloc').value);
var el=encodeURIComponent(document.getElementById('eloc').value);
loadbox2("boxtitle2.php?t=PDF&l="+lang,'getpp2rroutestopscript.php?r='+r+'&d='+d+'&v='+v+'&r2='+r2+'&d2='+d2+'&v2='+v2+'&s='+s+'&e='+e+'&l='+lang+'&sz='+sz+'&ez='+ez+'&xa='+xa+'&sl='+sl+'&el='+el);
}
function showpdfs(r,d,v,s,e,sz,ez){
var sl=encodeURIComponent(document.getElementById('sloc').value);
var el=encodeURIComponent(document.getElementById('eloc').value);
loadbox2("boxtitle2.php?t=PDF&l="+lang,'getpproutestopscript.php?r='+r+'&d='+d+'&v='+v+'&s='+s+'&e='+e+'&l='+lang+'&sz='+sz+'&ez='+ez+'&sl='+sl+'&el='+el);
}
function showpdfd(r,d,v,r2,d2,v2,s,e,sz,ez,xa){
alert("Not Ready");
}
function showpproute(r,d,v,s,e){
r = trim(r);
d = trim(d);
v = trim(v);
current_r = r.toUpperCase();
current_d = d.toUpperCase();
current_v = v.toUpperCase();
if(current_d=='')
current_d="T";
current_r2 = '';
current_d2 = '';
current_v2 = '';
hlstop="";
mwypopupremove();
addline('getpproute.php?r='+r+'&d='+d+'&v='+v+"&s="+s+"&e="+e+"&line=1",'#FF0000');
if(sysmode==0 || sysmode==-10){
makeRequest('getppstopinroute.php?r='+r+'&d='+d+'&v='+v+'&s='+s+'&e='+e+'&l='+lang,'sysitembox');
stack.push(document.getElementById('sysitembox').innerHTML);
sysmode=-10;
}else if(sysmode==1){
makeRequest('getppstopinroute.php?r='+r+'&d='+d+'&v='+v+'&s='+s+'&e='+e+'&l='+lang,'sysitembox2');
stack.push(document.getElementById('sysitembox2').innerHTML);
}else{
makeRequest('getppstopinroute.php?r='+r+'&d='+d+'&v='+v+'&s='+s+'&e='+e+'&l='+lang,'sysitembox3');
stack.push(document.getElementById('sysitembox3').innerHTML);
}
}
var current_r;
var current_d;
var current_v;
var current_r2;
var current_d2;
var current_v2;
function ltrim(instr){
return instr.replace(/^[\s]*/gi,"");
}
function rtrim(instr){
return instr.replace(/[\s]*$/gi,"");
}
function trim(instr){
instr = ltrim(instr);
instr = rtrim(instr);
return instr;
}
/* function showvariance(r,d,v,to,addStack){
r = trim(r);
d = trim(d);
v = trim(v);
current_r = r.toUpperCase();
current_d = d.toUpperCase();
current_v = v.toUpperCase();
if(current_d=='')
current_d="T";
current_r2 = '';
current_d2 = '';
current_v2 = '';
showloading();
hlstop="";
mwypopupremove();
addline('getroute.php?r='+r+'&d='+d+'&v='+v,'#FF0000');
makeRequest('getroutestop.php?r='+r+'&d='+d+'&v='+v+'&l='+lang,'dummydiv');
if(sysmode==0 || sysmode==-10){
makeRequest('getvariance.php?r='+r+'&d='+d+'&v='+v+'&l='+lang+'&to='+to+'&cur='+currentlist+'&rdv='+rdv+'&bound='+bound,'sysitembox');
if (addStack)
stack.push(document.getElementById('sysitembox').innerHTML);
sysmode=-10;
}else if(sysmode==1){
makeRequest('getvariance.php?r='+r+'&d='+d+'&v='+v+'&l='+lang+'&to='+to+'&cur='+currentlist+'&rdv='+rdv+'&bound='+bound,'sysitembox2');
if (addStack)
stack.push(document.getElementById('sysitembox2').innerHTML);
}else{
makeRequest('getvariance.php?r='+r+'&d='+d+'&v='+v+'&l='+lang+'&to='+to+'&cur='+currentlist+'&rdv='+rdv+'&bound='+bound,'sysitembox3');
}
goresize();
currentlist=0;
}*/
function showvariance1(list_id, addStack){
showloading();
hlstop="";
mwypopupremove();
if(sysmode==0 || sysmode==-10){
var tbox = document.getElementById('sysitembox');
tbox.style.top="150px";
makeRequest('getvariance.php?lid='+list_id+'&l='+lang+'&cur='+currentlist+'&rdv='+autoRouteSearch_rdv+'&bound='+autoRouteSearch_bound,'sysitembox');
if (addStack)
stack.push(document.getElementById('sysitembox').innerHTML);
sysmode=-10;
}else if(sysmode==1){
var tbox = document.getElementById('sysitembox2');
tbox.style.top="150px";
makeRequest('getvariance.php?lid='+list_id+'&l='+lang+'&cur='+currentlist+'&rdv='+autoRouteSearch_rdv+'&bound='+autoRouteSearch_bound,'sysitembox2');
if (addStack)
stack.push(document.getElementById('sysitembox2').innerHTML);
}else{
var tbox = document.getElementById('sysitembox3');
if(tbox) tbox.style.top="150px";
makeRequest('getvariance.php?lid='+list_id+'&l='+lang+'&cur='+currentlist+'&rdv='+autoRouteSearch_rdv+'&bound='+autoRouteSearch_bound,'sysitembox3');
}
goresize();
currentlist=0;
}
function showvariance2(info, addStack){
showloading();
// hlstop="";
mwypopupremove();
console.log('stopselect=');
console.log(stopselect);
console.log('actioncode=');
console.log(actioncode);
if(sysmode==0 || sysmode==-10){
makeRequest('getvariance.php?info='+info+'&l='+lang+'&cur='+currentlist+'&rdv='+autoRouteSearch_rdv+'&bound='+autoRouteSearch_bound,'sysitembox');
if (addStack) stack.push(document.getElementById('sysitembox').innerHTML);
sysmode=-10;
}else if(sysmode==1){
makeRequest('getvariance.php?info='+info+'&l='+lang+'&cur='+currentlist+'&rdv='+autoRouteSearch_rdv+'&bound='+autoRouteSearch_bound,'sysitembox2');
if (addStack) stack.push(document.getElementById('sysitembox2').innerHTML);
}else{
var tbox = document.getElementById('sysitembox3');
tbox.style.top="150px";
makeRequest('getvariance.php?info='+info+'&l='+lang+'&cur='+currentlist+'&rdv='+autoRouteSearch_rdv+'&bound='+autoRouteSearch_bound,'sysitembox3');
}
//goresize();
currentlist=0;
showleftpanel();
}
function showroute(r,d,v,addStack){
r = trim(r);
d = trim(d);
v = trim(v);
current_r = r.toUpperCase();
current_d = d.toUpperCase();
current_v = v.toUpperCase();
if(current_d=='')
current_d="T";
current_r2 = '';
current_d2 = '';
current_v2 = '';
showloading();
hlstop="";
mwypopupremove();
addline('getroute.php?r='+r+'&d='+d+'&v='+v,'#FF0000');
makeRequest('getroutestop.php?r='+r+'&d='+d+'&v='+v+'&l='+lang,'dummydiv');
if(sysmode==0 || sysmode==-10){
makeRequest('getstopinroute.php?l='+lang+'&cur='+currentlist,'sysitembox');
if (addStack)
stack.push(document.getElementById('sysitembox').innerHTML);
sysmode=-10;
}else if(sysmode==1){
makeRequest('getstopinroute.php?l='+lang+'&cur='+currentlist,'sysitembox2');
if (addStack)
stack.push(document.getElementById('sysitembox2').innerHTML);
}else{
makeRequest('getstopinroute.php?l='+lang+'&cur='+currentlist,'sysitembox3');
}
goresize();
currentlist=0;
}
function showroute1(info, addStack){
info=encodeURIComponent(info);
//alert(info);
//info = "1||G||11-CEF-1||一二三||CTB***11-CEF-1***1***48***10100***O";
clearmarkers();
clearCsNearbyMarker();
removeCircle();
showloading();
hlstop="";
mwypopupremove();
variantcount = 1;
addline('getline.php?info='+info,'#FF0000');
makeRequest('showsingleroutestops2.php?info='+info+'&l='+lang,'dummydiv');
if(sysmode==0 || sysmode==-10){
makeRequest('getstopinroute.php?l='+lang+'&info='+info+'&cur='+currentlist,'sysitembox');
if (addStack)
stack.push(document.getElementById('sysitembox').innerHTML);
sysmode=-10;
}else if(sysmode==1){
makeRequest('getstopinroute.php?l='+lang+'&info='+info+'&cur='+currentlist,'sysitembox2');
if (addStack)
stack.push(document.getElementById('sysitembox2').innerHTML);
}else{
makeRequest('getstopinroute.php?l='+lang+'&info='+info+'&cur='+currentlist,'sysitembox3');
}
//goresize();
currentlist=0;
console.log(variantcount);
}
function showsingleroutestops(info, eta){
makeRequest('showsingleroutestops2.php?info='+info+'&eta='+eta+'&l='+lang,'dummydiv');
}
function showroutep2p(info, list_id, generalinfo){
showloading();
mwypopupremove();
// addline('getlinep2p.php?info='+info,'#FF0000');
// addline('getpproute.php?r='+r+'&d='+d+'&v='+v+"&s="+s+"&e="+e+"&line=1",'#FF0000');
// appendline('getpproute.php?r='+r2+'&d='+d2+'&v='+v2+"&s="+s+"&e="+e+'&l='+lang + "&line=1",'#0000FF');
makeRequest('getp2pstopinroute.php?info='+info+'&ginfo='+generalinfo+'&lid='+list_id+'&l='+lang,'sysitembox3');
//alert('getpp2rroutestop.php?r='+r+'&d='+d+'&v='+v+'&r2='+r2+'&d2='+d2+'&v2='+v2+'&s='+s+'&e='+e+'&l='+lang+'&sz='+sz+'&ez='+ez+'&xa='+xa);
stack.push(document.getElementById('sysitembox3').innerHTML);
}
function showrouteline(s){
linelayer = 0;
var aaa = s.split("|*|");
for(var i=0;i<=aaa[0]-1;i++){
var bbb = aaa[(i+1)].split("||");
if(bbb[1].indexOf("-")>0){
var col = '#FF0000';
if(i==1) col = '#0000FF';
if(i==2) col = '#006000';
if(i==0)
addline('getlinep2p.php?rdv='+bbb[1]+'&start='+bbb[2]+'&dest='+bbb[3]);
else
appendline('getlinep2p.php?rdv='+bbb[1]+'&start='+bbb[2]+'&dest='+bbb[3]);
}
}
}
function showroutestop(s){
makeRequest('showstops2.php?r='+s+'&l='+lang,'dummydiv');
autozoom();
}
function backsearch(){
//stack.pop();
hidebox2();
hidebox5();
hidebox4();
var id="";
if(document.getElementById('sysitembox')!=null){
id="sysitembox";
}
else if(document.getElementById('sysitembox2')!=null){
id="sysitembox2";
}else if(document.getElementById('sysitembox3')!=null){
id="sysitembox3";
}
if(stack.length>0){
var hdata = stack.pop();
if(hdata.indexOf("-- NEARBYROUTE --")>0){
startnearby('');
}
document.getElementById(id).innerHTML=hdata;
if(hdata.indexOf('id="p2p_routelist"')>0){
// Normal list
if (lastP2PResultListViewMode == 0)
setTimeout(function(){ document.getElementById("routelist2").scrollTop = lastP2PResultListScrollY; }, 300);
else if(lastP2PResultListViewMode == 1){
document.getElementById("p2p_detailed_list_btn").click();
}
//document.getElementById("routelist2").scrollTop = lastP2PResultListScrollY;
//alert(lastP2PResultListScrollY)
}
//alert(stack.pop());
}
fixtop('sysitembox2',161);
goresize();
}
function routeremark(r,d,v){
loadbox('boxtitle.php?t=路線備注','routeremark.php?r='+r+'&d='+d+'&v='+v);
}
function routetimetable(r,d,v){
loadbox('boxtitle.php?t=服務時間','routetimetable.php?r='+r+'&d='+d+'&v='+v);
}
function showroute2(){
var bmlist = document.getElementById('itemlist1');
var bmlist2 = document.getElementById('itemlist2');
bmlist2.style.display = "none";
bmlist.style.display="block";
currentlist=0;
}
function showtimetable1(info,bound,m){
//showloading();
var bmlist = document.getElementById('itemlist1');
var bmlist2 = document.getElementById('itemlist2');
var bmlist3 = document.getElementById('p2pstoplist');
if(bmlist) bmlist.style.display = "none";
if(bmlist3) bmlist3.style.display = "none";
bmlist2.style.display="block";
makeRequest('gettimetable.php?info='+info+'&m='+m+'&bound='+bound+'&l='+lang+'<ab='+lasttab,'itemlist2');
currentlist=2;
}
function genpdftimetable(info,bound,m){
makeRequest('genpdftimetable.php?info='+info+'&m='+m+'&bound='+bound+'&l='+lang,'dummydiv');
}
function genpdfstop(info){
makeRequest('genpdfstop.php?info='+info+'&l='+lang,'dummydiv');
}
function showtimetable_multi(r,d,v, r2, d2, v2){
showloading();
var bmlist = document.getElementById('itemlist1');
var bmlist2 = document.getElementById('itemlist2');
bmlist.style.display = "none";
bmlist2.style.display="block";
makeRequest('getpptimetable.php?r='+r+'&d='+d+'&v='+v+'&r2='+r2+'&d2='+d2+'&v2='+v2+'&l='+lang,'itemlist2');
}
function getremark(r,d,v){
showloading();
var bmlist = document.getElementById('itemlist1');
var bmlist2 = document.getElementById('itemlist2');
bmlist.style.display = "none";
bmlist2.style.display="block";
makeRequest('getremark.php?r='+r+'&d='+d+'&v='+v+'&l='+lang,'itemlist2');
currentlist=1;
}
function getremark1(info,m){
//showloading();
var bmlist = document.getElementById('itemlist1');
var bmlist2 = document.getElementById('itemlist2');
bmlist.style.display = "none";
bmlist2.style.display="block";
makeRequest('getremark.php?info='+info+'&m='+m+'&l='+lang+'<ab='+lasttab,'itemlist2');
currentlist=1;
}
function getremark_multi(r,d,v, r2, d2, v2){
showloading();
var bmlist = document.getElementById('itemlist1');
var bmlist2 = document.getElementById('itemlist2');
bmlist.style.display = "none";
bmlist2.style.display="block";
makeRequest('getremark_multi.php?r='+r+'&d='+d+'&v='+v+'&r2='+r2+'&d2='+d2+'&v2='+v2+'&l='+lang+'<ab='+lasttab,'itemlist2');
}
function getnotice1(id){
//showloading();
var bmlist = document.getElementById('itemlist1');
var bmlist2 = document.getElementById('itemlist2');
bmlist.style.display = "none";
bmlist2.style.display="block";
makeRequest('getnotice.php?id='+id+'&l='+lang+'<ab='+lasttab,'itemlist2');
currentlist=1;
}
function getpdf1(info,mode){
showloading();
var bmlist = document.getElementById('itemlist1');
var bmlist2 = document.getElementById('itemlist2');
bmlist.style.display = "none";
bmlist2.style.display="block";
makeRequest('share'+mode+'.php?info='+info+'&l='+lang+'<ab='+lasttab,'itemlist2');
currentlist=1;
}
function zoomroute(minlat,maxlat,minlon,maxlon){
autozoomed=0;
}
function startendmarker(slon,slat,elon,elat){
addcustommarker(getlonlat(elon,elat),eemar,36,80,-20,-80);
addcustommarker(getlonlat(slon,slat),ssmar,36,80,-20,-80);
reordermarker();
}
function poiaddmarker(type,lat,lon,name,event){
skipmapclick=1;
if(type=="s"){
startname = name;
startlat = lat;
startlon = lon;
}else{
endname = name;
endlat = lat;
endlon = lon;
}
gomenu(2,1);
}
function addtitle(input,str,lat,lon){
var skey=document.getElementById(input);
if(input=="sloc"){
mapstartname = str;
console.log(mapstartname);
mapstartlat=lat;
mapstartlon=lon;
}
else if(input=="eloc"){
mapendname = str;
mapendlat=lat;
mapendlon=lon;
}
}
function kkksearch(e)
{
var keynum
var keychar
var numcheck
if(window.event) // IE
{
keynum = e.keyCode
}else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}
keychar = String.fromCharCode(keynum)
if(keychar=='\r'){
if(document.ksearch.skey.value!=""){
searchcount++;
}
showloading();
//alert( $('#routeSearchBtn').attr('src'));
//setTimeout(function(){ $('#skey').autocomplete("close"); } , 3000);
//document.getElementById('srec').innerHTML="搜尋記錄:"+searchcount+" ";
makeRequest('routesearch.php?skey='+document.ksearch.skey.value+'&rtype='+getCheckedValue(document.ksearch.rrr)+'&savecookie=1&l='+lang,'sysitembox2');
hidep2pmenu();
currentlist=0;
// It stored search num to cookie at routesearch.php already. We should not store cookie again at here
//makeRequest('setcookie.php?skey='+document.ksearch.skey.value+'&rtype='+getCheckedValue(document.ksearch.rrr),'aaa');
return false;
}else{
return true;
}
}
function getCheckedValue(radioObj) {
if(!radioObj)
return "";
var radioLength = radioObj.length;
if(radioLength == undefined)
if(radioObj.checked)
return radioObj.value;
else
return "";
for(var i = 0; i < radioLength; i++) {
if(radioObj[i].checked) {
return radioObj[i].value;
}
}
return "";
}
function togglebookmark(){
var bmlist = document.getElementById('bookmarklist');
if(bmlist.style.visibility == "hidden")
{
showbookmark();
document.getElementById('bookmarko_noff').src='minus.png';
}
else
{
hidebookmark();
document.getElementById('bookmarko_noff').src='plus.png';
}
}
function showhotspotbutton(){
var bmlist = document.getElementById('hotspot');
if(bmlist)
bmlist.style.visibility = "visible";
// document.getElementById('hotspot_noff').src='plus.png';
}
function hidehotspotbutton(){
var bmlist = document.getElementById('hotspot');
if(bmlist)
bmlist.style.visibility = "hidden";
var bmlist2 = document.getElementById('hotspot2');
if(bmlist2)
bmlist2.style.display = "none";
}
function togglehotspot(){
var bmlist = document.getElementById('hotspot2');
if(bmlist){
if(bmlist.style.display == "none")
{
bmlist.style.display = "block";
document.getElementById('hotspot_noff').src='minus.png';
}
else
{
bmlist.style.display = "none";
document.getElementById('hotspot_noff').src='plus.png';
}
}
}
function showbookmark2(mode){
bookmode=mode;
showbookmark();
document.getElementById('bookmarko_noff').src='minus.png';
}
function showbookmarktext(name,lat,lon){
if(bookmode==1){
document.getElementById('sloc').value=name;
document.getElementById('sloc').style.color='#000000';
mapstartname=name;
var ll=getlonlat(lon,lat);
mapstartlat=lat;
mapstartlon=lon;
clearmarkers();
clearCsNearbyMarker();
addcustommarker(ll,ssmar,36,80,-20,-80);
if(mapendlat>0.0&&mapendlon>0.0){
addcustommarker(getlonlat(mapendlon,mapendlat),eemar,36,80,-20,-80);
document.getElementById("elat").value=mapendlat;
document.getElementById("elon").value=mapendlon;
}
}
if(bookmode==2){
document.getElementById('eloc').value=name;
document.getElementById('eloc').style.color='#000000';
mapendname=name;
var ll=getlonlat(lon,lat);
mapendlat=lat;
mapendlon=lon;
clearmarkers();
clearCsNearbyMarker();
addcustommarker(ll,eemar,36,80,-20,-80);
if(mapstartlat>0.0&&mapstartlon>0.0){
addcustommarker(getlonlat(mapstartlon,mapstartlat),ssmar,36,80,-20,-80);
document.getElementById("slat").value=mapstartlat;
document.getElementById("slon").value=mapstartlon;
}
}
bookmode=0;
hidebookmark();
}
function showbookmark(){
var bmlist = document.getElementById('bookmarklist');
bmlist.style.visibility = "visible";
document.getElementById('bookmarko_noff').src='minus.png';
makeRequest("getbookmark_8_15.php?l="+lang,"bookmarklist");
}
function showbookmark1(m){
makeRequest("getbookmark.php?m="+m+"&l="+lang+"<ab="+lasttab,"sysitembox4");
}
function showbookmarkroute(info){
info=encodeURIComponent(info);
console.log("Bookmarkselectstop=");
console.log(stopselect);
sysmode=1;
var tbox = document.getElementById('sysitembox2');
if (tbox)
tbox.style.top="146px";
makeRequest("getbookmarkroute.php?info="+info+"&l="+lang,"sysitembox2");
}
function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
function showbookmarkp2p(){
var aaa = p2pbookmark_info.split("||");
//alert(p2pbookmark_info);
var bbb = aaa[1].split(",");
var ccc = aaa[2].split(",");
var ddd = aaa[6].split(",");
var tdate = aaa[5];
tdate =tdate.replace(/-/g,"/");
var today = new Date();
var slon = bbb[1];
var slat = bbb[0];
var elon = ccc[1];
var elat = ccc[0];
var sloc = ddd[0];
var eloc = ddd[1];
var ws = aaa[3];
var leg = aaa[4]
var datetime = new Date(tdate);
if (datetime < today) datetime = today;
var year = datetime.getFullYear();
var month = datetime.getMonth()+1;
var day = datetime.getDate();
var date = year + "-" + month + "-" + day;
var hour = addZero(datetime.getHours());
var minute = addZero(datetime.getMinutes());
document.ppsearch.slat.value=slat;
document.ppsearch.slon.value=slon;
document.ppsearch.elat.value=elat;
document.ppsearch.elon.value=elon;
document.ppsearch.sloc.value=convertcharBACK(sloc);
document.ppsearch.eloc.value=convertcharBACK(eloc);
document.getElementById('search_day').innerHTML=datetolab(date);
document.getElementById('search_hour').value=hour;
document.getElementById('search_minute').value=minute;
//document.getElementById('search_time').value=time;
setspeedmode(ws);
setdrmode(leg);
mapstartlat=slat;
mapstartlon=slon;
mapendlat=elat;
mapendlon=elon;
}
function modifybookmark(id,data,i){
data=encodeURIComponent(data);
document.getElementById(id).innerHTML="';
}
function updatebookmark(i){
//alert(i);
document.getElementById('myform'+i).submit();
//showbookmark();
}
function hidebookmark(){
var bmlist = document.getElementById('bookmarklist');
bmlist.style.visibility = "hidden";
}
function ppsearchx(slat,slon,elat,elon,time){
//alert("x");
/*
if(slat!=""&&slon!=""&&elat!=""&&elon!=""){
showloading();
document.getElementById('p2p_guide').innerHTML='';
makeRequest("ppsearch.php?s="+slat+" "+slon+"&e="+elat+" "+elon+"&daytime="+time+'&l='+lang,"sysitembox3");
stack.push(document.getElementById('sysitembox3').innerHTML);
document.getElementById('sysitembox3').innerHTML='';
hidep2pmenu();
}
else
*/
document.getElementById('sysitembox3').style.display="block";
if(mapstartlat!=0.0&&mapstartlon!=0.0&&mapendlat!=0.0&&mapendlon!=0.0){
showloading();
document.getElementById('p2p_guide').innerHTML='sdfasf';
makeRequest("ppsearch.php?s="+mapstartlat+" "+mapstartlon+"&e="+mapendlat+" "+mapendlon+"&daytime="+time+'&l='+lang,"sysitembox3");
stack.push(document.getElementById('sysitembox3').innerHTML);
document.getElementById('sysitembox3').innerHTML='';
hidep2pmenu();
currentlist=0;
}
else{
if(lang==2){
var ttstr1="请确定起点 / 终点";
var ttstr2="请确定起点";
var ttstr3="请确定终点";
}
else if(lang==1){
var ttstr1='Please confirm origin / destination'
var ttstr2="Please confirm origin";
var ttstr3="Please confirm destination";
}
else{
var ttstr1="請確定起點 / 終點";
var ttstr2="請確定起點";
var ttstr3="請確定終點";
}
if(mapstartlat=="0"&&mapstartlon=="0"&&mapendlat=="0"&&mapendlon=="0"){
alert(ttstr1);
}
else if(mapstartlat=="0"&&mapstartlon=="0"){
alert(ttstr2);
}
else if(mapendlat=="0"&&mapendlon=="0"){
alert(ttstr3);
}
}
}
function ppsearch_p3(slat,slon,elat,elon,ws,leg,loc,time){
lastmakerequesturl="";
loc=encodeURIComponent(loc);
document.getElementById('sysitembox3').style.display="block";
if(mapstartlat!=0.0&&mapstartlon!=0.0&&mapendlat!=0.0&&mapendlon!=0.0){
showloading();
document.getElementById('p2p_guide').innerHTML='';
var smode="T";
if(rsortmode==2) smode="F";
if(rsortmode==3) smode="W";
makeRequest("ppsearch_p3.php?slat="+mapstartlat+"&slon="+mapstartlon+"&elat="+mapendlat+"&elon="+mapendlon+"&t="+time+"&ws="+ws+"&leg="+leg+"&loc="+loc+"&m1="+smode+"&l="+lang,"sysitembox3");
stack.push(document.getElementById('sysitembox3').innerHTML);
document.getElementById('sysitembox3').innerHTML='';
hidep2pmenu();
currentlist=0;
}
else{
if(lang==2){
var ttstr1="请确定起点 / 终点";
var ttstr2="请确定起点";
var ttstr3="请确定终点";
}
else if(lang==1){
var ttstr1='Please confirm origin / destination'
var ttstr2="Please confirm origin";
var ttstr3="Please confirm destination";
}
else{
var ttstr1="請確定起點 / 終點";
var ttstr2="請確定起點";
var ttstr3="請確定終點";
}
if(mapstartlat=="0"&&mapstartlon=="0"&&mapendlat=="0"&&mapendlon=="0"){
//alert(ttstr1);
loadbox7("boxtitle7.php?t=bookmark&l="+lang+"<ab=311","alertmsg.php?ltab=310&l="+lang+"&msg="+ttstr1);
//alert(ttstr1);
}
else if(mapstartlat=="0"&&mapstartlon=="0"){
loadbox7("boxtitle7.php?t=bookmark&l="+lang+"<ab=311","alertmsg.php?ltab=310&l="+lang+"&msg="+ttstr2);
//alert(ttstr2);
}
else if(mapendlat=="0"&&mapendlon=="0"){
loadbox7("boxtitle7.php?t=bookmark&l="+lang+"<ab=311","alertmsg.php?ltab=310&l="+lang+"&msg="+ttstr3);
//alert(ttstr3);
}
}
}
function route_search_category(mode)
{
showloading();
document.getElementById('ksearch_air').src = 'rs_air.png';
document.getElementById('ksearch_tourist').src = 'rs_tourist.png';
document.getElementById('ksearch_eta').src = 'rs_eta.png';
document.getElementById('ksearch_overnight').src = 'rs_night.png';
document.getElementById('ksearch_all').src = 'rs_all.png';
/*if (mode==0)
document.getElementById('ksearch_day').src = 'rs_normal_selected.png';
else if (mode==1)
document.getElementById('ksearch_night').src = 'rs_night_selected.png';
else if (mode==2)
document.getElementById('ksearch_air').src = 'rs_air_selected.png';
else if (mode==3)
document.getElementById('ksearch_all').src = 'rs_all_selected.png';
*/
}
function search_cookie(rtype,skey,savecookie){
if(skey!=""){
searchcount++;
}
//showloading();
//document.getElementById('srec').innerHTML="搜尋記錄:"+searchcount+" ";
makeRequest('routesearch.php?rtype='+rtype+'&skey='+skey+'&l='+lang+'&savecookie='+savecookie,'sysitembox2');
//stack.push(document.getElementById('sysitembox2').innerHTML);
hidep2pmenu();
currentlist=0;
//if (rtype=='')
//makeRequest('setcookie.php?skey='+skey+'&rtype='+rtype,'dummydiv');
}
function getcookie(){
makeRequest('getsearch.php?l='+lang,'sysitembox2');
}
function delhistory(type){
if(type=="all"){
makeRequest('delhistory.php?id=all','sysitembox2');
searchcount=0;
//document.getElementById('srec').innerHTML="搜尋記錄:"+searchcount+" ";
}
else{
makeRequest('delhistory.php?id='+type,'sysitembox2');
searchcount--;
//document.getElementById('srec').innerHTML="搜尋記錄:"+searchcount+" ";
}
}
function gethistory(skey,rtype){
makeRequest('routesearch.php?rtype='+rtype+'&skey='+skey+'&l='+lang,'sysitembox2');
hidep2pmenu();
currentlist=0;
}
function searchpress(lat,lon){
showloading();
if(sysmode==-10){
sysmode=0;
}
removeline();
if(lat!=""&&lon!=""){
var ll = getlonlat(lon,lat);
map.panTo(ll);
// makeRequest('getnearbyroute.php?lat='+lat+'&lon='+lon+'&l='+lang,'sysitembox');
currentlist=0;
}
}
function switchloc(){
var sloc=document.getElementById("sloc").value;
var eloc=document.getElementById("eloc").value;
var slat=document.getElementById("slat").value;
var slon=document.getElementById("slon").value;
var elat=document.getElementById("elat").value;
var elon=document.getElementById("elon").value;
var mslat=mapstartlat;
var mslon=mapstartlon;
var melat=mapendlat;
var melon=mapendlon;
if(lang==2){
var ttstr1="请选择或输入起点";
var ttstr2="请选择或输入终点";
}
else if(lang==1){
var ttstr1='Please select or input the origin'
var ttstr2="Please select or input the destination";
}
else{
var ttstr1="請選擇或輸入起點";
var ttstr2="請選擇或輸入終點";
}
if(sloc!=ttstr1&&eloc!=ttstr2){
document.getElementById("sloc").value=eloc;
document.getElementById("eloc").value=sloc;
document.getElementById("slat").value=elat;
document.getElementById("slon").value=elon;
document.getElementById("elat").value=slat;
document.getElementById("elon").value=slon;
mapstartlat=melat;
mapstartlon=melon;
mapendlat=mslat;
mapendlon=mslon;
clearmarkers();
clearCsNearbyMarker();
addcustommarker(getlonlat(mapstartlon,mapstartlat),ssmar,36,80,-20,-80);
addcustommarker(getlonlat(mapendlon,mapendlat),eemar,36,80,-20,-80);
}
/*var tmpSrc = document.getElementById("p2p_1st").src;
document.getElementById("p2p_1st").src=document.getElementById("p2p_2nd").src;
document.getElementById("p2p_2nd").src=tmpSrc;*/
}
var topBarLinkColor = '#bda8d1';
var topBarLinkSelectedColor = '#ffffff';
var topBarEnColor = '#bda8d1';
var topBarTcColor = '#ffffff';
var topBarScColor = '#bda8d1';
function setlang(l,b){
lang=l;
map.zoomIn();
topBarEnColor = topBarLinkColor;
topBarTcColor = topBarLinkColor;
topBarScColor = topBarLinkColor;
if (l==0)
{
topBarTcColor = topBarLinkSelectedColor;
nwfbLang = 2;
}
else if (l==1)
{
topBarEnColor = topBarLinkSelectedColor;
nwfbLang = 1;
}
else if (l==2)
{
topBarScColor = topBarLinkSelectedColor;
nwfbLang = 3;
}
document.getElementById('lang_tc').style.color=topBarTcColor;
document.getElementById('lang_en').style.color=topBarEnColor;
document.getElementById('lang_sc').style.color=topBarScColor;
if(l==1){
document.getElementById('fb_logo').innerHTML=' ';
document.getElementById('bookmark').innerHTML=' Bookmark';
document.getElementById('hotspot4').innerHTML=' Hot Spots';
document.getElementById('hotspot5').innerHTML=' Leisure';
document.getElementById('hotspot6').innerHTML=' Shopping';
document.getElementById('hotspot7').innerHTML=' Exhibitions';
document.getElementById('closestr').innerHTML='Close';
document.getElementById('copyright').innerHTML='Copyright © 2016 Citybus Limited & New World First Bus Services Limited. All Rights Reserved. ';
ssmar="startpoint-f_en.png";
eemar="endpoint-f_en.png";
templocname="New bookmark";
}else if(l==2){
document.getElementById('fb_logo').innerHTML=' ';
document.getElementById('bookmark').innerHTML=' 我的书签';
document.getElementById('hotspot4').innerHTML=' 热点推介';
document.getElementById('hotspot5').innerHTML=' 消闲';
document.getElementById('hotspot6').innerHTML=' 购物';
document.getElementById('hotspot7').innerHTML=' 展览';
document.getElementById('closestr').innerHTML='关闭';
document.getElementById('copyright').innerHTML='版权所有© 2016 城巴有限公司及新世界第一巴士服务有限公司 ';
ssmar="startpoint-f_sc.png";
eemar="endpoint-f_sc.png";
templocname="新书签";
}
else{
document.getElementById('fb_logo').innerHTML=' ';
document.getElementById('bookmark').innerHTML=' 我的書籤';
document.getElementById('hotspot4').innerHTML=' 熱點推介';
document.getElementById('hotspot5').innerHTML=' 消閒';
document.getElementById('hotspot6').innerHTML=' 購物';
document.getElementById('hotspot7').innerHTML=' 展覽';
document.getElementById('closestr').innerHTML='關閉';
document.getElementById('copyright').innerHTML='版權所有© 2016 城巴有限公司及新世界第一巴士服務有限公司 ';
ssmar="startpoint-f.png";
eemar="endpoint-f.png";
templocname="新書籤";
}
if(b==1){
gomenu(currentmenu);
}
//makeRequest('test_914.php?a='+l,'aaa');
//alert();
}
function setlangclick(l,b){
var f;
if (b == 2)
f=0;
else if (b == 1)
f=1;
else if (b == 0)
f=2;
else if (b == 4)
f=3;
//alert('b='+b + ', f='+f);
window.location='?l='+ l +'&f=' + f;
}
function fun(e,o) {
/* FF 下判断鼠标是否离开DIV */
var list = document.getElementById('autocom');
if(window.navigator.userAgent.indexOf("Firefox")>=1) {
var x = e.clientX + document.body.scrollLeft;
var y = e.clientY + document.body.scrollTop ;
var left = o.offsetLeft;
var top = o.offsetTop;
var w = o.offsetWidth;
var h = o.offsetHeight;
if(y < top || y > (h + top) || x > left + w || x 50)
{
pos = 320;
}
else
{
pos = 250;
}
}
if(v==3){
tbox = document.getElementById('sysitembox3');
pos = 275;
}
if((tbox.style.top<(pos-2)+'px')){
var ctop = parseInt(tbox.style.top.replace("px", ""));
var step = (pos-ctop)/2;
if(step < 2) step = 2;
tbox.style.top = (ctop+step)+'px';
}else{
tbox.style.top = (pos)+'px';
clearInterval(refreshIntervalId);
var sbar = document.getElementById('slidebar');
if (sbar){
if(sbar.src.indexOf("v-slide")>0)
sbar.src=v_slide;
else
sbar.src="w-slide.png";
}
}
goresize();
}
function sysboxheight(tbox){
var ctop = parseInt(tbox.style.top.replace("px", ""));
var h = getsheight();
tbox.style.height = (h-ctop-4+3)+'px';
}
function totop(v){
var tbox;
if(v==1){
tbox = document.getElementById('sysitembox');
}
if(v==2){
tbox = document.getElementById('sysitembox2');
}
if(v==3){
tbox = document.getElementById('sysitembox3');
}
if(tbox) tbox.style.top = '150px';
var sbar = document.getElementById('slidebar');
if (sbar){
if(sbar.src.indexOf("v-slide")>0)
sbar.src=v_slide_d;
else
sbar.src="w-slide-d.png";
}
}
function hidetop(v){
var tbox;
if(v==1){
tbox = document.getElementById('sysitembox');
}
if(v==2){
tbox = document.getElementById('sysitembox2');
}
if(v==3){
tbox = document.getElementById('sysitembox3');
}
if((tbox.style.top>'146px')){
var ctop = parseInt(tbox.style.top.replace("px", ""));
var step = (ctop-150)/2;
if(step < 2) step = 2;
tbox.style.top = (ctop-step)+'px';
}else{
tbox.style.top = '150px';
clearInterval(refreshIntervalId);
var sbar = document.getElementById('slidebar');
if(sbar.src.indexOf("v-slide")>0)
sbar.src=v_slide_d;
else
sbar.src="w-slide-d.png";
}
goresize();
}
function setslidebar(){
var vbox;
tbox = document.getElementById('sysitembox');
if(!tbox)
tbox = document.getElementById('sysitembox2');
if(!tbox)
tbox = document.getElementById('sysitembox3');
if(tbox){
var sbar = document.getElementById('slidebar');
if (sbar){
if(tbox.style.top<'160px'){
if(sbar.src.indexOf("v-slide")>0)
sbar.src=v_slide_d;
else
sbar.src="w-slide-d.png";
}else{
if(sbar.src.indexOf("v-slide")>0)
sbar.src=v_slide;
else
sbar.src="w-slide.png";
}
}
}
}
function showp2pmenux(){
document.getElementById('p2pmenu').style.display = "block";
if(p2pMenu){
p2pMenu = false;
refreshIntervalId = setInterval(hidetop, 200);
}else{
p2pMenu = true;
topboxheight=document.getElementById('p2pmenu').style.height;
refreshIntervalId = setInterval(showtop, 200);
}
}
function showp2pmenu(){
if(p2pMenu){
document.getElementById('p2pmenu').style.display = "none";
p2pMenu = false;
}else{
document.getElementById('p2pmenu').style.display = "block";
p2pMenu = true;
}
goresize();
}
/*function stopProp(e) {
if (e && e.stopPropogation) e.stopPropogation();
else if (window.event && window.event.cancelBubble)
window.event.cancelBubble = true;
}*/
function pselect(v){
var sss=document.getElementById('pdfsss');
if(!sss)
return;
var p=document.getElementById('pdf'+v);
if(p){
if(p.src.indexOf("tdummy")>0){
p.src='Ok-icon.png';
if(v<10){
var p1=document.getElementById('pdf'+v+'1');
if(p1)
p1.src='Ok-icon.png';
var p2=document.getElementById('pdf'+v+'2');
if(p2)
p2.src='Ok-icon.png';
}else{
if(v<20)
document.getElementById('pdf1').src="tdummy.png";
else
document.getElementById('pdf2').src="tdummy.png";
}
}else{
p.src="tdummy.png";
if(v<10){
var p1=document.getElementById('pdf'+v+'1');
if(p1)
p1.src="tdummy.png";
var p2=document.getElementById('pdf'+v+'2');
if(p2)
p2.src="tdummy.png";
}else{
if(v<20)
document.getElementById('pdf1').src="tdummy.png";
else
document.getElementById('pdf2').src="tdummy.png";
}
}
}
}
function checkTime(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
function getEtaLastUpdate() {
var today = new Date();
var y = today.getFullYear();
var mm = today.getMonth() + 1;
var d = today.getDate();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
m = checkTime(m);
s = checkTime(s);
mm = checkTime(mm);
d = checkTime(d);
document.getElementById('etalastupdate').innerHTML = ('0' + h).slice(-2) + ":" + m + ":" + s;
}
function clearppdata(){
document.ppsearch.slat.value=document.ppsearch.slon.value=document.ppsearch.elat.value=document.ppsearch.elon.value="";
document.ppsearch.sloc.value=document.ppsearch.eloc.value="";
mapstartlat=0.0;
mapstartlon=0.0;
mapendlat=0.0;
mapendlon=0.0;
clearmarkers();
clearCsNearbyMarker();
}
function settimemode(m){
document.getElementById('timemode1').style.backgroundColor="";
document.getElementById('timemode2').style.backgroundColor="";
if(m==1)
document.getElementById('timemode1').style.backgroundColor="#FF8822";
else
document.getElementById('timemode2').style.backgroundColor="#FF8822";
}
function setdrmode(m){
document.getElementById('drmode1').style.backgroundColor="";
document.getElementById('drmode2').style.backgroundColor="";
document.getElementById('drmode1').style.color="";
document.getElementById('drmode2').style.color="";
if(m==1){
document.getElementById('drmode1').style.backgroundColor=themecolor;
document.getElementById('drmode1').style.color="#FFFFFF";
document.ppsearch.leg.value="1";
}
else{
document.getElementById('drmode2').style.backgroundColor=themecolor;
document.getElementById('drmode2').style.color="FFFFFF";
document.ppsearch.leg.value="2";
}
}
function setbmmode(m){
document.getElementById('bmmode1').style.backgroundColor="#404040";
document.getElementById('bmmode2').style.backgroundColor="#404040";
document.getElementById('bmmode3').style.backgroundColor="#404040";
document.getElementById('bmmodeline1').style.backgroundColor="#404040";
document.getElementById('bmmodeline2').style.backgroundColor="#404040";
document.getElementById('bmmodeline3').style.backgroundColor="#404040";
document.getElementById('bmmode1').style.color="#FFFFFF";
document.getElementById('bmmode2').style.color="#FFFFFF";
document.getElementById('bmmode3').style.color="#FFFFFF";
if(m==1){
document.getElementById('bmmode1').style.backgroundColor="#FFFFFF";
document.getElementById('bmmodeline1').style.backgroundColor=bmmodeline;
document.getElementById('bmmode1').style.color="#404040";
}
if(m==2){
document.getElementById('bmmode2').style.backgroundColor="#FFFFFF";
document.getElementById('bmmodeline2').style.backgroundColor=bmmodeline;
document.getElementById('bmmode2').style.color="#404040";
}
else if(m==3){
document.getElementById('bmmode3').style.backgroundColor="#FFFFFF";
document.getElementById('bmmodeline3').style.backgroundColor=bmmodeline;
document.getElementById('bmmode3').style.color="#404040";
}
}
function setdistmode(m){
document.getElementById('distmode1').style.backgroundColor="";
document.getElementById('distmode2').style.backgroundColor="";
document.getElementById('distmode3').style.backgroundColor="";
document.getElementById('distmode4').style.backgroundColor="";
document.getElementById('distmode5').style.backgroundColor="";
if(m==1){
document.getElementById('distmode1').style.backgroundColor="#FF8822";
}
if(m==2){
document.getElementById('distmode2').style.backgroundColor="#FF8822";
}
if(m==3){
document.getElementById('distmode3').style.backgroundColor="#FF8822";
}
if(m==4){
document.getElementById('distmode4').style.backgroundColor="#FF8822";
}
if(m==5){
document.getElementById('distmode5').style.backgroundColor="#FF8822";
}
}
function setsortmode(m){
document.getElementById('sortmode1').style.backgroundColor="";
document.getElementById('sortmode2').style.backgroundColor="";
document.getElementById('sortmode3').style.backgroundColor="";
if(m==1){
document.getElementById('sortmode1').style.backgroundColor="#FF8822";
}
if(m==2){
document.getElementById('sortmode2').style.backgroundColor="#FF8822";
}
if(m==3){
document.getElementById('sortmode3').style.backgroundColor="#FF8822";
}
}
function setspeedmode(m){
document.getElementById('speedmode1').style.backgroundColor="";
document.getElementById('speedmode2').style.backgroundColor="";
document.getElementById('speedmode3').style.backgroundColor="";
document.getElementById('speedmode4').style.backgroundColor="";
document.getElementById('speedmode1').style.color="";
document.getElementById('speedmode2').style.color="";
document.getElementById('speedmode3').style.color="";
document.getElementById('speedmode4').style.color="";
if(m==0.5){
document.getElementById('speedmode1').style.backgroundColor=themecolor;
document.getElementById('speedmode1').style.color="#FFFFFF";
document.ppsearch.walkingspeed.value=m;
}
if(m==0.8){
document.getElementById('speedmode2').style.backgroundColor=themecolor;
document.getElementById('speedmode2').style.color="#FFFFFF";
document.ppsearch.walkingspeed.value=m;
}
if(m==1.3){
document.getElementById('speedmode3').style.backgroundColor=themecolor;
document.getElementById('speedmode3').style.color="#FFFFFF";
document.ppsearch.walkingspeed.value=m;
}
if(m==1.8){
document.getElementById('speedmode4').style.backgroundColor=themecolor;
document.getElementById('speedmode4').style.color="#FFFFFF";
document.ppsearch.walkingspeed.value=m;
}
}
function expandtable(){
var tblock=document.getElementById('stopbetween');
var tblocktext=document.getElementById('expandtext')
if(tblock.style.display=="none"){
tblock.style.display="block";
tblocktext.innerHTML="Hide ▲";
}else{
tblock.style.display="none";
tblocktext.innerHTML="Show ▼";
}
}
function expandtable2(){
var tblock=document.getElementById('stopbetween2');
var tblocktext=document.getElementById('expandtext2')
if(tblock.style.display=="none"){
tblock.style.display="block";
tblocktext.innerHTML="Hide ▲";
}else{
tblock.style.display="none";
tblocktext.innerHTML="Show ▼";
}
}
function showtimesearch(){
var tblock=document.getElementById('selecttime');
var sblock=document.getElementById('changesetting');
if(tblock.style.display=="none"){
tblock.style.display="block";
sblock.style.display="none";
}else{
tblock.style.display="none";
}
}
function showsetting(){
var tblock=document.getElementById('changesetting');
if(tblock.style.display=="none"){
tblock.style.display="block";
}else{
tblock.style.display="none";
}
}
function showstartendpoint(){
document.getElementById('startingpoint').innerHTML = mapstartname;
document.getElementById('endingpoint').innerHTML = mapendname;
}
function showp2pstop(i){
var tblock=document.getElementById('route'+i);
var tblocktext=document.getElementById('expandtext'+i)
var tstopimage=document.getElementById('stopimage'+i)
if(tblock.style.display=="none"){
tblock.style.display="block";
tblocktext.innerHTML="▲";
tstopimage.src="ypole.png";
}else{
tblock.style.display="none";
tblocktext.innerHTML="▼";
tstopimage.src="exchangeexpand.png";
}
}
function copyroutelinkold(idname)
{
var id=document.getElementById(idname);
id.select();
document.execCommand('copy');
}
var copyroutelink = function(elementId) {
var input = document.getElementById(elementId);
var isiOSDevice = navigator.userAgent.match(/ipad|iphone/i);
if (isiOSDevice) {
var editable = input.contentEditable;
var readOnly = input.readOnly;
input.contentEditable = true;
input.readOnly = false;
var range = document.createRange();
range.selectNodeContents(input);
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
input.setSelectionRange(0, 999999);
input.contentEditable = editable;
input.readOnly = readOnly;
} else {
input.select();
}
document.execCommand('copy');
}
function setselectdate(jump){
selectdateindex += jump;
if(selectdateindex<0) selectdateindex=2;
if(selectdateindex>2) selectdateindex=0;
if(jump==0) selectdateindex=0;
var aaa = selectdatelab.split(",");
document.getElementById('search_day').innerHTML = aaa[selectdateindex];
}
function datetolab(date){
var aaa = selectdate.split(",");
var bbb = selectdatelab.split(",");
for(i=0;i=0 && h<24){
return true;
}else {
alert(errmsg);
aaa.value = '00';
}
}
function validate_minute(){
var aaa = document.getElementById('search_minute');
var m = aaa.value;
var errmsg ="分鐘錯誤";
if (lang == 1) {errmsg = "Invalid Minute";
}else if (lang == 2) {errmsg = "分钟错误";
}
if (m>=0 && m<60){
return true;
}else {
alert(errmsg);
aaa.value = '00';
}
}
function convertquote(s){
var aaa = document.getElementById('s').value;
aaa = convertcharGO(aaa);
document.getElementById('s').value = aaa;
}
function getLocation(m){
currentloc_mode = m;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition,geoerror);
}else{
alert("Geolocation is not supported by this browser.");
}
}
function geoerror(error){
if (currentloc_mode == '0') {
lat=22.280403429297003 - alat;
lon=114.18416613911 - alon;
var ll = getlonlat(lon,lat);
map.panTo(ll);
gomenu(0,1);
} else {
alert("Geolocation is not supported by this browser: "+error.message);
}
}
function showPosition(position) {
var tlat1 = 22.396429 - 0.002;
var tlat2 = 22.396429 + 0.002;
var tlon1 = 114.109496 - 0.002;
var tlon2 = 114.109496 + 0.002;
if(currentloc_mode == 's'){
mapstartlat=position.coords.latitude;
mapstartlon=position.coords.longitude;
if(mapstartlat > tlat1 && mapstartlat < tlat2 && mapstartlon > tlon1 && mapstartlon tlat1 && mapendlat tlon1 && mapendlon tlat1 && lat tlon1 && lon = min_length) {
$.ajax({
url: 'ajax_refresh.php',
type: 'POST',
data: {keyword:keyword},
success:function(data){
$('#country_list_id').show();
$('#country_list_id').html(data);
}
});
} else {
$('#country_list_id').hide();
}
}
function convertcharGO(s){
s = s.replace("'","~SQ~");
s = s.replace('"','~DQ~');
s = s.replace("&","~AND~");
s = s.replace("!","~XM~");
s = s.replace("/","~EM~");
return s;
}
function convertcharBACK(s){
s = s.replace("~SQ~","'");
s = s.replace('~DQ~"','"');
s = s.replace("~AND~","&");
s = s.replace("~XM~","!");
s = s.replace("~EM~","!");
return s;
}
function validatebm(){
var aaa = document.getElementById('bmname');
var bmname = aaa.value;
var errmsg ="書籤不能包括特別符號";
if (lang == 1) {errmsg = "Bookmark can not contains special symbol";
}else if (lang == 2) {errmsg = "书籤不能包括特别符号";
}
filter=/.[\u4e00-\u9fa5_0-9a-zA-Z'"()]$/
if (filter.test(bmname)){
return true;
}else {
alert(errmsg);
return false;
}
}
function keepalive(){
makeRequest("dummy.php?ssid=66a49e6a7b455","dummydiv");
}
var timehandle = setInterval("keepalive();", 600000);
function removeCircle(){
}
function mwypopupremove(){
hidemappop();
}
function fbpopup(ll){
}
function reordermarker(){
}
function autozoom(){
}
function stopdocment(){
}
var matched, browser;
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie)[\s?]([\w.]+)/.exec( ua ) ||
/(trident)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
matched = jQuery.uaMatch( navigator.userAgent );
//IE 11+ fix (Trident)
matched.browser = matched.browser == 'trident' ? 'msie' : matched.browser;
browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
jQuery.browser = browser;
// log removed - adds an extra dependency
//log(jQuery.browser)
function langinit(){
if(lang==1){
ssmar="startpoint-f_en.png";
eemar="endpoint-f_en.png";
}else if(lang==2){
ssmar="startpoint-f_sc.png";
eemar="endpoint-f_sc.png";
}else{
ssmar="startpoint-f.png";
eemar="endpoint-f.png";
}
}
function hidebookmark(){
var box = document.getElementById('getbookmarklist');
box.style.display="none";
}
function getbookmark(obj,no){
var box = document.getElementById('getbookmarklist');
var h = $(obj).offset().top;
var l = $(obj).offset().left;
box.style.top = (h+5)+"px";
box.style.left = (l+5)+"px";
box.style.display="block";
makeRequest("bookmarklist.php?mode="+no,"getbookmarklist");
}
function setbmstartend(mode,str){
var aaa = str.split("||");
if(mode==0){
startname = aaa[1];
startlat = parseFloat(aaa[2]);
startlon = parseFloat(aaa[3]);
}else{
endname = aaa[1];
endlat = parseFloat(aaa[2]);
endlon = parseFloat(aaa[3]);
}
mappanto(parseFloat(aaa[3]),parseFloat(aaa[2]));
gomenu(2,1);
hidebookmark();
}
function closeautocom(){
var box = document.getElementById('autocom');
var box2 = document.getElementById('autocom2');
if(box){
box.style.display="none";
}
if(box2){
box2.style.display="none";
}
}
//-------------------- For CS --------------------------
var tramRailSource = new ol.source.Vector({});
var csNearByStopSource = new ol.source.Vector({}); // nearby stops of selected stop
var isTramRailOn = false;
var stopNearbyMarkersize = new Array(1000);
// show nearby stops of selected stop
function addstoponmap_near_cs(stopid,lon,lat,ccode,bsa_seq,name,rdv,altLon,altLat){
lon = lon-0;
lat = lat-0;
var temp = '||0||0||0';
var etainfo = stopid.concat(temp);
//makeRequest(\'auto_9c16716c8c2f4918912936ac89a14679.php?info='.$etainfo.'\',\'dummydiv\')
//var mmm = addmarker(getlonlat(lon,lat),ccode,num,name);
name=name+"|*|["+stopid+"]"+stopid+"|*|"+altLon+"||"+altLat+"|*|";
var mmm = addcustommarker_cs(getlonlat(lon,lat),stop_marker,40,40,-2,-40,name);
}
function addcustommarker_cs(ll,png,sizex,sizey,offx,offy,name){
var lng=parseFloat(ll[0]);
var lat=parseFloat(ll[1]);
var increment = 1;
var lastpoint = -1;
var info = name+"||C||"+lat+"||"+lng+"||"+png+"||"+sizex+"||"+sizey+"||"+offx+"||"+offy;
lastpoint=stopNearbyMarkercount;
stopNearbyMarkerlat[lastpoint] = lat;
stopNearbyMarkersize[lastpoint] = [sizex,sizey,offx,offy];
stopNearbyMarkers[lastpoint] = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([lng+alon,lat+alat],'EPSG:4326', 'EPSG:3857')),
name: info
});
amode='pixels';
ax=(-offx)*2;
ay=(-offy);
if(sizex==15){
ax=0.5;
ay=0.5;
amode='fraction';
}
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
scale: 1,
anchor: [ax,ay],
anchorXUnits: amode,
anchorYUnits: amode,
opacity: 1,
src: png
}))
});
stopNearbyMarkers[lastpoint].setStyle(iconStyle);
csNearByStopSource.addFeature(stopNearbyMarkers[lastpoint]);
stopNearbyMarkercount++;
}
function clearCsNearbyMarker()
{
csNearByStopSource.clear();
}
function showTramRail(){
tramRailSource.clear()
if (!isTramRailOn){
document.getElementById("tramrailBtn").style.background="#6c3f98";
//addtramRail('getTramRailLine.php?id=1','#FF0000');
/*for (i=0; i<10; i++)
addTramLineColor('getTramRailLine.php?id='+i, 0.6, 200, 0, 155);{
}*/
var s=callweb('getTramRailLine.php');
var routeItem = s.split("|**|");
for(var i=0; i5){
var aaa = linepoint[i].split("||");
var lon = parseFloat(aaa[1]);
var lat = parseFloat(aaa[0]);
segment.push(ol.proj.transform( [lon, lat], 'EPSG:4326', 'EPSG:3857'));
}
}
pointscolor.push(segment);
var colorline = new ol.Feature({
geometry: new ol.geom.MultiLineString(pointscolor),
name: "Line"
});
colorline.setStyle(lineStyle);
tramRailSource.addFeature(colorline);
}
function clearAutoRouteSearchData()
{
autoRouteSearch_info = "";
autoRouteSearch_rdv = "";
autoRouteSearch_r = "";
autoRouteSearch_d = "";
autoRouteSearch_v = "";
autoRouteSearch_bound = "";
autoRouteSearch_stopid = "";
}
var routeDetailMode="p2p";
function reCalItemList2Height()
{
if (routeDetailMode=='p2p')
$('#itemlist2').css({ 'height': 'calc(100% - ' + document.getElementById('routenote').clientHeight + 'px - 95px' });
else if (routeDetailMode=='single')
$('#itemlist2').css({ 'height': '100%' });
}
function changevarianceicon(route_index, bound, lang){
var box = document.getElementById('variance_icon');
var imagesrc = box.src;
var filename = imagesrc.replace(/^.*[\\\/]/, '');
var rect = box.getBoundingClientRect();
console.log(rect.top, rect.right, rect.bottom, rect.left);
if(filename=="variant_close.png"){
box.src="variant_open.png";
hidevarianceoption();
}else{
box.src="variant_close.png";
showvarianceoption(rect.top);
makeRequest('showvarianceoption.php?rid='+route_index+'&bound='+bound+'&l='+lang+'<ab='+lasttab,'variance_options');
}
console.log(filename);
}
function showvarianceoption(top){
var box = document.getElementById('variance_options');
box.style.display="block";
box.style.top = top+'px';
var boxback = document.getElementById('variance_options_back');
boxback.style.top = (top+25)+'px';
boxback.style.bottom = '0px';
boxback.style.display = "block";
}
function hidevarianceoption(){
var box = document.getElementById('variance_options');
box.style.display="none";
var obj = document.getElementById('variance_icon');
obj.src="variant_open.png";
var boxback = document.getElementById('variance_options_back');
boxback.style.display = "none";
}
//-------------------- For Recaptcha -------------------------
function showRecaptcha() {
var obj = document.getElementById("recaptbox");
obj.style.display = "block";
//var url = "showRecaptcha.php";
//makeRequest(url, "recap");
}
function hideRecaptcha() {
var obj = document.getElementById("recaptbox");
obj.style.display = "none";
}
function testScriptLoad() {
var htmlEl = "recaptcha";
if (recaptcha_rendered) {
grecaptcha.reset(recaptchaId);
} else {
var captchaOptions = {
sitekey: '6LcWyIEaAAAAAMaW381zVUPm8Yoa_NuhjIFU4hgT',
size: 'invisible',
callback: function (token) {
//console.log('test: ',token);
alert(recaptcha_type);
hideRecaptcha();
}
};
recaptchaId = grecaptcha.render(htmlEl, captchaOptions, false);
recaptcha_rendered = true;
}
}
function recaptchaLoad() {
var htmlEl = "recaptcha";
if (recaptcha_rendered) {
grecaptcha.reset(recaptchaId);
} else {
var captchaOptions = {
sitekey: '6LcWyIEaAAAAAMaW381zVUPm8Yoa_NuhjIFU4hgT',
size: 'invisible',
callback: function (token) {
//console.log('test: ',token);
hideRecaptcha();
makeRequest("checkSuccess.php?type=" + recaptcha_type + "&checkValue=" + recaptcha_key + "&success=Y", "dummydiv");
}
};
recaptchaId = grecaptcha.render(htmlEl, captchaOptions, false);
recaptcha_rendered = true;
}
}