var fullscreen = false;
function doGoFullScreen() {
setFullScreen(true);
document.getElementById('restorescreen').style.visibility = "visible";
document.getElementById('restorescreen').innerHTML = "
";
document.getElementById('gofullscreen').style.visibility = "hidden";
document.getElementById('gofullscreen').innerHTML = "";
document.getElementById('fullscreentitle').style.visibility = "visible";
document.getElementById('menu_area').style.visibility = "hidden";
document.getElementById('todays_message').style.visibility = "hidden";
}
function doRestoreScreen() {
setFullScreen(false);
document.getElementById('restorescreen').style.visibility = "hidden";
document.getElementById('restorescreen').innerHTML = "";
document.getElementById('gofullscreen').style.visibility = "visible";
document.getElementById('gofullscreen').innerHTML = "
";
document.getElementById('fullscreentitle').style.visibility = "hidden";
document.getElementById('menu_area').style.visibility = "visible";
document.getElementById('todays_message').style.visibility = "visible";
}
function setFullScreen(_f) {
fullscreen = _f;
myRepaint();
}
function switchmapmode(){
var r = document.getElementById('showicons');
var e = document.getElementById('langselect');
if (!r || !e) {
return;
}
var mode;
r.disabled = false;
e.disabled = false;
mode = (r.checked?'icons':'normal') + (e.checked?'-en':'');
mmmap.setMapMode(mode);
mmmap.setAllImagesUsedButNotSetToEmpty();
mmmap.initPOIArrays();
mmmap.clearCustomDivs();
myRepaint();
}
function blocktoggle(type) {
var news = document.getElementById("news_content").style.display;
var settings = document.getElementById("setting_panel_contents").style.display;
var settingsHeight = 40;
var newsHeight = document.getElementById("news_content").offsetHeight;
var height=158; // not really used?
if (type==0) { //news
if(newsHeight==1) {return;}
if(news=='block') {
document.getElementById("news_content").style.display='none';
document.getElementById("optionimg0").src="files/images/up.gif";
} else {
document.getElementById("news_content").style.display='block';
document.getElementById("optionimg0").src="files/images/down.gif";
var newsHeight = document.getElementById("news_content").offsetHeight;
height = height + newsHeight;
}
if (settings=='none') {
height = height - 40;
}
} else { // settings
if (settings == 'block') {
height = height + newsHeight - settingsHeight;
document.getElementById("setting_panel_contents").style.display='none';
document.getElementById("optionimg1").src="files/images/up.gif";
} else {
height = height + newsHeight;
document.getElementById("setting_panel_contents").style.display='block';
document.getElementById("optionimg1").src="files/images/down.gif";
}
}
searchresult.rePaint();
}
function myRepaint() {
if (! document.getElementById("mmmap_div") ) {
return;
}
chkWinSize();
var newwidth;
var newheight;
var newtop;
var newleft;
if (fullscreen) {
newwidth = parseInt(ww);
newheight = wh;
newtop = - 157;
newleft = - 5;
} else {
newwidth = parseInt(ww) - 250;
newheight = parseInt(wh) - 157 - 5 - 5;
newtop = 0; // normal top
newleft = 0; // normal left
}
document.getElementById("mmmap_div").style.top = newtop;
document.getElementById("mmmap_div").style.left = newleft;
if (document.getElementById("right_panel")) {
if (fullscreen) {
document.getElementById("right_panel").style.visibility = "hidden";
} else {
document.getElementById("right_panel").style.visibility = "visible";
}
}
if (currentmode == "mm") {
mmmap.setSize(newwidth,newheight);
mmmap.rePaint();
} else {
if (currentmode == "hybrid") {
mmmap.setSize(newwidth,newheight);
mmmap.rePaint();
}
document.getElementById("googlemap_div").style.top = newtop;
gmap.setSize(newwidth,newheight);
}
// update div
// for Firefox 3
if (document.getElementById("todays_message")) {
document.getElementById("todays_message").style.width = ww;
document.getElementById("right_panel").style.left = newwidth + 5;;
}
if (searchresult) {
searchresult.rePaint();
}
}
function updateLang() {
//showDiv('searchresult', '');
clearAllPopups();
clearMarks();
clearCurrentRoads();
switchmapmode();
}
function setKeyFocusAtMaparea() {
// set focus back for keyboard handler (bad workaround for Firefox)
document.onkeydown=kh.doKeyDown;
document.onkeypress=kh.doKeyDown;
document.getElementById('searchfor').blur();
//if (browser != "Konqueror")
mymaparea.focus();
}
function showTrafficStatus() {
var checkbox = document.getElementById("show_traffic_status");
if (checkbox.checked) {
var d = new Date;
var timestamp = d.getTime();
var pars = "timestamp=" + encodeURIComponent( timestamp )
+ "&action=showtraffic";
var url = '/mmmap/rpc.php';
var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onSuccess: handleResponse});
} else {
MMMapclearLines();
}
}
function showRoad(roadname) {
var d = new Date;
var timestamp = d.getTime();
var pars = "roadname=" + encodeURIComponent( roadname )
+ "×tamp=" + encodeURIComponent( timestamp )
+ "&map=ms22"
+ "&action=showroad";
var url = '/mmmap/rpc.php';
var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onSuccess: handleResponse});
}
function showKhet(name) {
var d = new Date;
var timestamp = d.getTime();
var pars = "khetname=" + encodeURIComponent( name )
+ "×tamp=" + encodeURIComponent( timestamp )
+ "&map=ms22"
+ "&action=showkhet";
var url = '/mmmap/rpc.php';
var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onSuccess: handleResponse});
}
function showTag(tagname) {
var mode;
if (document.getElementById('graymapfortag') && document.getElementById('graymapfortag').checked) {
if (mylang && mylang == "en") {
mode = "traffic-en";
} else {
mode = "traffic";
}
}
updateModeSelector(mode);
mmmap.setMapMode(mode);
mmmap.clearAllOOITags();
mmmap.showOOITagWithShowLevel(tagname,3,0,12,0);
}
function updateModeSelector(mode) {
var selector = document.getElementById('modeselectorselect');
for (var i =0; iLongitude: " + longitude, "?tg=" +searchterm);
return(false);
}
// then lat,long
re = new RegExp(/^([0-9]+(\.[0-9]+)?),\s?([0-9]+(\.[0-9]+)?)$/);
m = re.exec(searchterm);
if( m != null) {
// lat,long
mmmap.moveTo(m[1], m[3]);
if(currentmode != "gmap") mmmap.showPopUpWithLink(latitude,longitude, searchterm , "Latitude: " + latitude + "
Longitude: " + longitude);
return(false);
}
showDiv("searchresult", 'Searching...');
//searchresult.rePaint();
var d = new Date;
var timestamp = d.getTime();
var bMark = document.getElementById('bookmark').value;
var pars = "search=" + encodeURIComponent( searchterm )
+ "×tamp=" + encodeURIComponent( timestamp )
+ "&bookmark=" + encodeURIComponent(bMark)
+ "¢er_lat=" + encodeURIComponent( mycenter_lat )
+ "¢er_long=" + encodeURIComponent( mycenter_long )
+ "&map=ms22"
+ "&action=searchxml";
var url = '/mmmap/rpc.php';
var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onSuccess: handleResponse});
}
function setBookmark(bMark) {
document.getElementById('bookmark').value= bMark
}
function showLocationDetail(id, popup_idx) {
showDiv("locationdetails_contents", 'Loading...');
var d = new Date;
var timestamp = d.getTime();
var pars = "timestamp=" + encodeURIComponent( timestamp );
var url = '/mmmap/rpc.php';
var pars = "id=" + encodeURIComponent( id )
+ "×tamp=" + encodeURIComponent( timestamp )
+ "&locale=" + mylang
+ "&map=ms22"
+ "&action=showpoidetails";
var callbackFn = function(txt) {
handleResponse(txt);
//document.getElementById('locationdetails_contents').innerHTML = content
mmmap.updatePopupContents(popup_idx);
}
var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onSuccess: callbackFn});
}
function showPOI(id) {
showPOIWithCenterMovement(id,1);
}
// dozoom: 1 = zoom, 0 = don't zoom
function showPOIWithCenterMovement(id, dozoom) {
var d = new Date;
var timestamp = d.getTime();
var pars = "timestamp=" + encodeURIComponent( timestamp );
var url = '/mmmap/rpc.php';
var pars = "id=" + encodeURIComponent( id )
+ "×tamp=" + encodeURIComponent( timestamp )
+ "&map=ms22"
+ "&dozoom=" + dozoom
+ "&action=showpoi";
var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onSuccess: handleResponse});
}
function getPOIs(imgid,dispimg,res) {
var d = new Date;
var timestamp = d.getTime();
var pars = "dispimg=" + encodeURIComponent(dispimg)
+ "&imgid=" + encodeURIComponent(imgid)
+ "&res=" + encodeURIComponent(res)
+ "&action=getpois"
+ "&map=ms22";
// + "×tamp=" + encodeURIComponent( timestamp );
var url = '/mmmap/rpc.php';
var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onSuccess: handleResponse});
}
var search_results_poi; // to keep the latest search results
// Destructor
function destroy() {
if (gmapjsloaded) {
GUnload();
}
}
function showMMMap() {
if (! document.getElementById("mmmap_div") ) {
window.location="/";
return;
}
if (currentmode == "mm" ) {
return;
}
currentmode = "mm";
mmmap.currentmode = "mm";
mmmap.showScale();
if (old_MMMAP_notice_left) document.getElementById('MMMAP_notice').style.left = old_MMMAP_notice_left;
mmmap.setMapMode(old_MMMAP_mapmode);
mmmap.maparea.style.backgroundColor = "#dbdbdb";
mmmap.maparea.style.opacity = 1;
mmmap.maparea.style.filter = "alpha(opacity=100)";
mresolution = res_g2m(gmap.gmap_object.getZoom());
if (mresolution > 16384) mresolution = 16384;
if (mresolution < 2) mresolution = 2;
latitude = gmap.gmap_object.getCenter().lat();
longitude = gmap.gmap_object.getCenter().lng();
mmmap.setCenter(latitude, longitude, mresolution);
mmmap.showMap();
gmap.hideMap();
mmmap.setMouseDownHandler(null);
mmmap.setMouseMoveHandlerNoDelay(null);
mmmap.setMouseUpHandler(null);
mmmap.setResolutionChangedHandler(null);
mmmap.setMoveToHandler(null);
mmmap.showCenterMark();
myRepaint();
}
function myLinkToPage() {
if (! document.getElementById("mmmap_div") ) {
window.status="Erro: Not in map-viewing mode";
return;
}
var url = "/?";
if (currentmode == "gmap" || currentmode == "hybrid" ) {
url = url + "gmap=1&";
if (currentmode == "hybrid" ) {
url = url + "hybrid=1&";
}
latitude = gmap_object.getCenter().lat();
longitude = gmap_object.getCenter().lng();
resolution = res_g2m(gmap_object.getZoom());
if (resolution > 512) resolution = 512;
if (resolution < 8) resolution = 8;
}
url = url + 'lat='+latitude+'&long='+longitude+'&res='+resolution+'&locale='+mylang;
window.location=url;
}
function createURL() {
if (! document.getElementById("mmmap_div") ) {
window.status="Erro: Not in map-viewing mode";
return;
}
var zoom = Math.log(resolution)/Math.log(2);
var url = '/createlink?lat='+latitude+'&long='+longitude+'&zoom='+zoom+'&locale='+mylang;
window.location=url;
/*
var showtitle = prompt("Enter your location NAME: ");
if (! showtitle || showtitle == null || showtitle == "undefined" )
return;
var showdetail = "";
showdetail = prompt("Enter your location DETAIL: ");
*/
/*
var url;
if (showtitle) {
url = "/?showtitle=" + encodeURIComponent(showtitle) + "&showdetail=" + encodeURIComponent(showdetail) + "&";
} else {
url = "/?";
}
if (currentmode == "gmap" || currentmode == "hybrid") {
url = url + "gmap=1&";
if (currentmode == "hybrid") {
url = url + "hybrid=1&";
}
latitude = gmap_object.getCenter().lat();
longitude = gmap_object.getCenter().lng();
resolution = res_g2m(gmap_object.getZoom());
if (resolution > 512) resolution = 512;
if (resolution < 8) resolution = 8;
}
url = url + 'lat='+latitude+'&long='+longitude+'&res='+resolution+'&locale='+mylang;
window.location=url;
*/
/*
var extraparams = "";
if (showtitle) {
extraparams = "&title=" + encodeURIComponent(showtitle) + "&detail=" + encodeURIComponent(showdetail);
}
linkToPage(extraparams);
*/
}
function showhideclicked() {
var checkbox = document.getElementById("showhide");
if (checkbox.checked) {
mmmap.setRes(8);
setAllSearchResultsPOIVisible(true);
showingmark = true;
} else {
hideMarks();showingmark = false;
}
}
function showGMap() {
if (! document.getElementById("mmmap_div") ) {
window.location="/?gmap=1";
return;
}
if (currentmode == "gmap" ) {
return;
}
if ( ! gmapjsloaded ) {
//window.location = "/?lat="+latitude+"&long="+longitude+"&res="+resolution+"&gmap=1";
//linkToPage("&gmap=1");
window.location="/?gmap=1";
return;
}
currentmode = "gmap";
mmmap.currentmode = "gmap";
mmmap.hideMap();
gmap.setCenter(latitude, longitude, resolution);
gmap.showMap();
myRepaint();
}
var __LONGDOMAP_isMouseDown;
var __LONGDOMAP_lastPos = {
x: -1,
y: -1
};
var __LONGDOMAP_noUpdateSize = {
x: -1,
y: -1
};
function mymoveto()
{
mmmap._updateVisibles();
gmap.setCenter(latitude, longitude, resolution);
}
function mymousedown()
{
__LONGDOMAP_isMouseDown = true;
__LONGDOMAP_lastPos.x = myX;
__LONGDOMAP_lastPos.y = myY;
__LONGDOMAP_noUpdateSize.x = 0;
__LONGDOMAP_noUpdateSize.y = 0;
}
function mymouseup()
{
__LONGDOMAP_isMouseDown = false;
mmmap._updateVisibles();
gmap.setCenter(latitude, longitude, resolution);
}
function mymousemove()
{
if(!__LONGDOMAP_isMouseDown || currentmode != "hybrid") return;
var panX = myX - __LONGDOMAP_lastPos.x;
var panY = myY - __LONGDOMAP_lastPos.y;
var apanX = Math.abs(panX);
var apanY = Math.abs(panY);
if(mmmap.getZoom() > 12 && __LONGDOMAP_noUpdateSize.x < 5 && __LONGDOMAP_noUpdateSize.y < 5 && apanX < 3 && apanY < 3)
{
gmap.gmap_object.panBy(new GSize(panX, panY));
__LONGDOMAP_noUpdateSize.x += apanX;
__LONGDOMAP_noUpdateSize.y += apanY;
}
else
{
mmmap._updateVisibles();
gmap.setCenter(latitude, longitude, resolution);
__LONGDOMAP_noUpdateSize.x = 0;
__LONGDOMAP_noUpdateSize.y = 0;
}
__LONGDOMAP_lastPos.x = myX;
__LONGDOMAP_lastPos.y = myY;
}
function mymousewheel() {
gmap.setCenter(latitude, longitude, resolution);
}
var old_MMMAP_notice_left;
var old_MMMAP_mapmode = (window.mylang && mylang == "en" ? "icons-en" : "icons");
function showHMap() {
if (! document.getElementById("mmmap_div") ) {
window.location="/hybrid";
return;
}
if (currentmode == "hybrid" ) {
return;
}
if ( ! gmapjsloaded ) {
//linkToPage("&gmap=1&hybrid=1");
window.location="/hybrid";
return;
}
old_MMMAP_mapmode = mmmap.getMapMode();
old_MMMAP_notice_left = document.getElementById('MMMAP_notice').style.left;
if (document.getElementById('MMMAP_notice')) {
document.getElementById('MMMAP_notice').style.left = "80px";
}
currentmode = "hybrid";
mmmap.currentmode = "hybrid";
if (window.mylang && mylang == "en") {
mmmap.setMapMode("iconstransp-en");
} else {
mmmap.setMapMode("iconstransp");
}
mmmap.hideScale();
mmmap.setMouseDownHandler(mymousedown);
mmmap.setMouseMoveHandlerNoDelay(mymousemove);
mmmap.setMouseUpHandler(mymouseup);
mmmap.setResolutionChangedHandler(mymousewheel);
mmmap.setMoveToHandler(mymoveto);
mmmap.showCenterMark();
gmap.div.style.opacity = 0.999;
mmmap.maparea.style.backgroundColor = "";
mmmap.maparea.style.opacity = 0.82;
mmmap.maparea.style.filter = "alpha(opacity=82)";
gmap.gmap_object.setMapType(G_SATELLITE_MAP);
gmap.gmap_div.childNodes[3].style.visibility = "hidden";
gmap.gmap_div.childNodes[4].style.visibility = "hidden";
gmap.gmap_div.childNodes[5].style.visibility = "hidden";
mmmap.setCenter(latitude, longitude, resolution);
mmmap.showMap();
gmap.setCenter(latitude, longitude, resolution);
gmap.showMap();
document.getElementById("center_mark_gmap").style.visibility = "hidden";
myRepaint();
}
function extraRightClickItems() {
var zoom = Math.log(resolution)/Math.log(2);
var txt = "";
if (window.mylang && mylang == "en") {
txt = 'Add a new location here';
txt += '
';
txt += 'Print Map (A4 landscape)';
txt += '
Print Map (Booklet)';
} else {
txt = 'ป้อนสถานที่ใหม่ตรงตำแหน่งนี้';
txt += '
';
txt += 'พิมพ์แผนที่ (แบบแผ่น A4)';
txt += '
พิมพ์แผนที่ (แบบพับได้)';
}
return txt;
}