/* ********************************* Javascriptfunktionen Transport-Inside Markus Hasibeder, 20071104 ************************************/ var alerts = new Object(); var warning = new Object(); var laststatus = new Object(); var mainformid = "formDevices"; var screenparam = "&screen=755,500&"; var screenres = "755,500"; var act_visible = ""; var timeoffset = '60'; /***************************************** Initialisiere Objekte für Alarm und Devices *******************************************/ function init() { // alarmtypen inkl bezeichnung, farbe und confirmrequest alerts.infos = new Array(); alerts.infos[0] = new BasicAlert("Eingeschalten","#FFFFFF",0,"normal"); alerts.infos[1] = new BasicAlert("Standard","",0,"normal"); alerts.infos[2] = new BasicAlert("Letzte Position","",0,"steht"); alerts.infos[3] = new BasicAlert("Notfall","#FFA0A0",1,"alarmon"); alerts.infos[4] = new BasicAlert("Notfall Ende","",1,"alarmoff"); alerts.infos[5] = new BasicAlert("Ankunft","#FFFF00",0,"ankunft"); alerts.infos[6] = new BasicAlert("Abfahrt","#E9AA30",0,"abfahrt"); alerts.infos[7] = new BasicAlert("Stau","#FFA0A0",0,"stauon"); alerts.infos[8] = new BasicAlert("Stau Ende","",0,"stauoff"); alerts.infos[9] = new BasicAlert("Akkustand niedrig","#FFA0A0",0,"batterylow"); alerts.infos[10] = new BasicAlert("Akkustand ok","",0,""); alerts.infos[99] = new BasicAlert("Keine gültige Position","#FFA0A0",0,"nosignal"); alerts.infos[254] = new BasicAlert("Keine Änderung","#FFA0A0",0,"nosignal"); alerts.infos["nodevanswer"] = new BasicAlert("Keine Antwort vom Gerät","#FFA0A0",0,"nosignal"); } /* Basisfunktion zur Befüllung des alert.infos-Arrays */ function BasicAlert(kurztext, farbe, confirmRequired,icon) { this.kurztext = kurztext; this.farbe = farbe; this.confirmRequired = confirmRequired; this.icon = icon; this.listAlert = function() { trace("Kurztext: "+this.kurztext); trace("Farbe: "+this.farbe); trace("Bestätigung durch Disponent erforderlich: "+this.confirmRequired); } } /***************************************** Ermittle alle Devices, die in der aktuellen Tabelle angezeigt werden. *******************************************/ function getallDevicesInForm(formid) { myForm = document.getElementById(formid); for (var i = 0; i < myForm.length; i++) { if (myForm.elements[i].type == "checkbox") { if (myForm.elements[i].id != "") { if (!warning[myForm.elements[i].value]) { warning[myForm.elements[i].value] = 0; } if (!laststatus[myForm.elements[i].value]) { laststatus[myForm.elements[i].value] = -1; } } } //if außen } //for return true; } /***************************************** Ändere Farbe einer Zelle *******************************************/ function changeColorOfDeviceRow(imei, alerttype) { if (!IsNumeric(imei)) return false; myObj = document.getElementById('rowdevice1'+imei); myObj.style.backgroundColor = alerts.infos[alerttype].farbe; } /***************************************** Status eines Devices überprüfen. *******************************************/ function checkDeviceStatus(formid) { getallDevicesInForm(formid); rebuildCheckedCB() ; myForm = document.getElementById(formid); for (var i = 0; i < myForm.length; i++) { if (myForm.elements[i].type == "hidden" && myForm.elements[i].name.search(/devhid/) != -1) { arrDeviceValue = myForm.elements[i].value.split(","); } //if außen } //for return true; } function urlencode(str) { str = escape(str); str = str.replace('+', '%2B'); str = str.replace('%20', '+'); str = str.replace('*', '%2A'); str = str.replace('/', '%2F'); str = str.replace('@', '%40'); return str; } function initiateSMSTransfer(deviceid,typ,val,sendAsIs) { urlstring = "&deviceid="+deviceid+"&typ="+typ+"&val="+val+"&sendAsIs="+sendAsIs; var dsSMS = new Spry.Data.XMLDataSet("/modules/communication/sms.cfc?method=XMLsendSMS"+urlstring, "sms", { useCache: false }); dsSMS.loadData(); //var req = Spry.Utils.loadURL("POST", "/app/book.php?id=1&code=54321", true, null, { postData: "action=update&genre=fiction", headers: { "Content-Type": "application/x-www-form-urlencoded; charset=ISO-8859" } }); return true; } /***************************************** Drop-Down-Menü: Aktionen starten *******************************************/ function dropDownAction(id, action) { arAction = action.split(','); if (arAction[1] == '\'createticket\'') { //arAction[0] = vehicleid document.location.href="page.cfm?vpath=my_transport_inside/tickets&action=createnew&vehicle=" + arAction[0]; return; } if (arAction[0] == -1) { } else if (arAction[0] == 0) { dialogToShow = arAction[1].split('\''); // Render the Dialogs if (dialogToShow[1] == 'changetracking') { objToShow = eval("YAHOO.ti.dialog_" + dialogToShow[1]); dsTrackinginfo.setURL("/modules/communication/data.cfc?method=XMLgetTrackinginfoForDevice&action=change&deviceid="+id); dsTrackinginfo.loadData(); dsUpdateRate.setURL("/modules/communication/data.cfc?method=XMLgetUpdateIntervals&deviceid="+id); dsUpdateRate.loadData(); } else if (dialogToShow[1] == 'starttracking') { objToShow = eval("YAHOO.ti.dialog_changetracking"); dsTrackinginfo.setURL("/modules/communication/data.cfc?method=XMLgetTrackinginfoForDevice&action=start&deviceid="+id); dsTrackinginfo.loadData(); dsUpdateRate.setURL("/modules/communication/data.cfc?method=XMLgetUpdateIntervals&deviceid="+id); dsUpdateRate.loadData(); } else if (dialogToShow[1] == 'showcourse') { objToShow = eval("YAHOO.ti.dialog_" + dialogToShow[1]); dsShowCourse.setURL("/modules/communication/data.cfc?method=XMLgetCourseInfoForDevice&deviceid="+id); dsShowCourse.loadData(); } else if (dialogToShow[1] == 'sendsms') { objToShow = eval("YAHOO.ti.dialog_" + dialogToShow[1]); dsSendSMS.setURL("/modules/communication/data.cfc?method=XMLgetCourseInfoForDevice&deviceid="+id); dsSendSMS.loadData(); } objToShow.render(); objToShow.show(); } else { // tracking AJAX if (arAction[0] == '\'tracking\'') { dsTracking.setURL("/modules/communication/data.cfc?method=XMLsetTracking&deviceid="+id+"&action=stop"); dsTracking.loadData(); } if (arAction[0] == '\'spontan\'') { if (!confirm(translate('tracknow'))) { return false; } } if (arAction[0] == '\'edittour\'') { urlstring = "id="+id; dsDevices.loadData(); // //nicht nur last tour end holen, sondern zugleich device-tabelle initialisieren. dsTour = new Spry.Data.XMLDataSet("/modules/communication/data.cfc?method=XMLgetLastTourendForDevice&"+urlstring+"&initdevicetable=1", "retval", { useCache: false }); dsTour.loadData(); // änderung auf 2 sekunden mm,mh 20081009 wg. javascript-fehleranzeige im ie window.setTimeout("x = dsTour.getData();ticom.showRouteByStartEnd(x[0]['imei'],x[0]['lastdate'],'',1,'',timeoffset)",2000); setDevicemark(id,0); } else { // SMS (vorerst noch per Popup) initiateSMSTransfer(id, arAction[0], arAction[1], arAction[2]); document.getElementById('dropdown_' + id).value = "start"; } dsDevices.startLoadInterval(10000); dsDevices.loadData(); } } /***************************************** Funktionen zur Steuerung der eingebetteten Map von Grid-IT *******************************************/ /* benötigt! auch wenn es keinen iframe mehr gibt */ function doUpdateIFrame(formlist,f) { var formdata = '0'; var formarray = formlist.split(','); var formular = document.getElementById(f); for(var i=0; i < formarray.length; i++) { var fField = eval("formular." + formarray[i]); if (fField.type=='select') { fValue = fField.selectedIndex.value; } else { fValue = fField.value; } formdata+=','+fValue; } //alert(formdata); updateIframe(formdata); } /* Update Karte mit übermittelter URL */ function showInMap(whichdoc,url) { var obj = eval(whichdoc); ifr = obj.getElementById('gps'); ifr.src = url; } /* Zoome auf 1 Device in der Karte */ function zoomToDeviceInMap(imei) { urlForMapRefresh = 'https://map.transport-inside.com/gpsserver/map?zoomto=1' + screenparam + 'devices=' + imei; document.getElementById("gps").src = urlForMapRefresh; } /* Aktualisiere Karte mit allen in der Tabelle gewählten Geräten inkl. Zoom */ function updateMap(formid) { devicesInMap = new Array(); myForm = document.getElementById(formid); for (var i = 0; i < myForm.length; i++) { if (myForm.elements[i].type == "checkbox") { myCheckbox = myForm.elements[i]; if (myCheckbox.checked && myCheckbox.id != "") { devicesInMap.push(myCheckbox.value); } } //if außen } //for if (devicesInMap.length == 0) { alert("Ortungsobjekt auswählen!"); } else { transportInside.xhr.use( { uri: "modules/communication/data.cfc?method=showDevices" }, { devices: devicesInMap.join(",") } ).submit(); } return true; } /**** FULLSCREENMODUS ******/ function openMapFullscreen(deviceid) { features = 'width='+screen.width+',height='+screen.height+',scrolling=no'; return MM_openBrWindow('/modules/mapFullscreen.cfm?deviceID='+deviceid+'&w='+(screen.width-20)+'&h='+(screen.height-250),'newWindow',features); } /**************** Steuerung der Kartenanzeige mit MapControl ********************/ function init_mapcontrol() { //webcams? if (ticom.osWebcam.isVisible()) { document.getElementById('cbwebcams').checked = true; } if (ticom.osTrafficinfo.isVisible()) { ticom.showTrafficinfo(false); } } /*** togglen der einzelnen checkboxen in mapcontrol ***/ function ti_toggle(layerToToggle,cb) { switch (layerToToggle) { case "webcams": if (cb.checked) { ticom.osWebcam.setVisible(true); } else { ticom.osWebcam.setVisible(false); } ticom.osWebcam.execute(); break; case "roads": if (cb.checked) { //ticom.ticomMap.addLayers('roadlables'); ticom.ticomMap.addLayers('roads'); ticom.ticomMap.addLayers('labels'); } else { //ticom.ticomMap.removeLayers('roadlables'); ticom.ticomMap.removeLayers('roads'); ticom.ticomMap.removeLayers('labels'); } ticom.ticomMap.redraw(); break; case "parking": if (cb.checked) { ticom.ticomMap.addLayers('parking'); } else { ticom.ticomMap.removeLayers('parking'); } ticom.ticomMap.redraw(); break; case "trafficinfo": if (ticom.showTrafficinfo) { ticom.showTrafficinfo(cb.checked); } else { alert('Not yet implemented in map-gui'); } break; } } // update function updatePosition(id,status,statusext,updategrid) { // send AJAX-Request to Webserver, who calls method of GRID-IT-Server urlstring="id="+id+"&status="+status+"&statusext="+statusext+"&updategrid="+updategrid; var dsUpdatePosition = new Spry.Data.XMLDataSet("/modules/communication/gridit.cfc?method=updateGPSPoint&"+urlstring, "gps", { useCache: false }); dsUpdatePosition.loadData(); window.setTimeout("parent.ticom.ticomMap.redraw()",1500); } /***************************************** Formularfunktionen *******************************************/ function checkCheckboxes(formid,allSelector) { myForm = document.getElementById(formid); for (var i = 0; i < myForm.length; i++) { if (myForm.elements[i].type == "checkbox") { myCheckbox = myForm.elements[i]; if (allSelector.checked) { myForm.elements[i].checked = true; } if (!allSelector.checked) { myForm.elements[i].checked = false; } if (myForm.elements[i].id.search(/cb/) != -1) { updateCheckedCB(myForm.elements[i], myForm.elements[i].value); } } //if } //for } function updateCheckedCB(obj, imei) { myForm = document.getElementById(mainformid); cb = document.getElementById('checkedCB'); ListOfCheckedBoxes = cb.value; arrChecked = ListOfCheckedBoxes.split(","); if (arrChecked[0] == "") { arrChecked.splice(0,1); } var re = new RegExp(imei); if (obj.checked && !re.test(ListOfCheckedBoxes) ){ arrChecked.push(imei); } if (!obj.checked) { for (var i = 0; i < arrChecked.length; i++) { if (arrChecked[i] == imei) { arrChecked.splice(i,1); } } } cb.value = arrChecked.join(","); } function rebuildCheckedCB() { myForm = document.getElementById(mainformid); cb = document.getElementById('checkedCB'); ListOfCheckedBoxes = cb.value; if (ListOfCheckedBoxes.length == 0) return; arrChecked = ListOfCheckedBoxes.split(","); for (var i = 0; i < arrChecked.length; i++) { if (document.getElementById('cb'+arrChecked[i])) { document.getElementById('cb'+arrChecked[i]).checked=true; } } } /***************************************** Funktionen zum Zeichnen von HTML-Segmenten *******************************************/ function drawTiIcon(divid,alerttype,pos,whichrow) { drawicon = 0; if (parseInt(divid)) { if (pos == 99) alerttype = 99; iconToShow = "ti_icon_" + alerts.infos[parseInt(alerttype)].icon + ".png"; // bei row 1 if (whichrow == 1 && alerttype > 2) { drawicon = 1; if (alerttype == 9) // battery low gehört in zelle 2 { whichrow = 2; } } // bei row 2 nur, wenn position ok oder unknown oder hält if (whichrow == 2 && alerttype == 99) { drawicon = 1; } if (drawicon) { html_tag = ""+ alerttype +""; current_icon = document.getElementById("rowdevice4"+divid).innerHTML; // wenn batterylow, dann nicht überschreiben: if (current_icon.indexOf('batterylow') == -1) { document.getElementById("rowdevice4"+divid).innerHTML = html_tag; } } } } /***************************************** NEU: Funktionen zum Zeichnen von HTML-Segmenten für neue Objektliste *******************************************/ Array.find = function(ary, element){ for(var i=0; i 2 && alerttype != 9) { //if (!(Array.find([3,6],alerttype) && idpositionflag == 1)) iconToShow = "ti_icon_" + alerts.infos[parseInt(alerttype)].icon + ".png"; html_tag = ""+ alerts.infos[parseInt(alerttype)].kurztext +""; document.getElementById("rowdevice2"+divid).innerHTML = html_tag; } // spalte 2: // position unbekannt nur anzeigen, wenn battery ok ist //if (idpositionflag == 254) positionunknown = 99; if (positionunknown == 99 && alerttype != 9) { iconToShow = "ti_icon_" + alerts.infos[parseInt(positionunknown)].icon + ".png"; html_tag = ""+ alerts.infos[parseInt(positionunknown)].kurztext +""; document.getElementById("rowdevice4"+divid).innerHTML = html_tag; } if (positionunknown == 254 && alerttype != 9) { iconToShow = "ti_icon_" + alerts.infos[parseInt(positionunknown)].icon + ".png"; html_tag = ""+ alerts.infos["nodevanswer"].kurztext +""; document.getElementById("rowdevice4"+divid).innerHTML = html_tag; } // wenn battery low, dann auch bei "position unbekannt" battery-stand anzeigen, weil diese info wichtiger ist. if (alerttype == 9) { iconToShow = "ti_icon_" + alerts.infos[parseInt(alerttype)].icon + ".png"; html_tag = ""+ alerts.infos[parseInt(alerttype)].kurztext +""; document.getElementById("rowdevice4"+divid).innerHTML = html_tag; } } } function drawReminderIcon(divid,alerttype,idpositionflag,positionunknown) { // only if divid is valid if (parseInt(divid)) { //if (idpositionflag == 99) alerttype = 99; // spalte 1: in vorderer spalte wird das idpositionflag gezeigt // nicht inter //Array.find([0,1,2,254,9],alerttype) if (idpositionflag != 254 && alerttype > 2 && alerttype != 9) { //if (!(Array.find([3,6],alerttype) && idpositionflag == 1)) iconToShow = "ti_icon_" + alerts.infos[parseInt(alerttype)].icon + ".png"; html_tag = ""+ alerts.infos[parseInt(alerttype)].kurztext +""; document.getElementById("alertdevice2"+divid).innerHTML = html_tag; } } } /***************************************** Funktionen zur Konfiguration der Devices *******************************************/ function configureDevice(myForm) { dev = document.getElementById('configdevice').options[document.getElementById('configdevice').selectedIndex].value; upd = document.getElementById('updatepos').options[document.getElementById('updatepos').selectedIndex].value; syn = document.getElementById('sync').options[document.getElementById('sync').selectedIndex].value; spo = ""; spo_temp = document.getElementsByName('spontan'); if (spo_temp[0].checked) { spo = 1; } if (spo_temp[1].checked) { spo = 0; } SMSString = "@TI,1," + upd + "," + syn + "," + spo; sendStringAsIs = 1; initiateSMSTransfer(dev,SMSString,0,sendStringAsIs); return false; } function SMScheckStatusOfDevice(dev) { if (dev == '') alert ('Device unknown'); SMSString = "@TI,4"; sendStringAsIs = 1; if (initiateSMSTransfer(dev,SMSString,0,sendStringAsIs)) { alert('Successfully sent request for current status to mobile device\nPlease wait, response can last a few minutes'); }; } function setDevicemark(dev,val) { if (dev == '') alert ('Device unknown'); urlstring = "id="+dev+"&val="+val; var dssetDevicemark = new Spry.Data.XMLDataSet("/modules/communication/data.cfc?method=setdevmark2&"+urlstring, "data", { useCache: false }); dssetDevicemark.loadData(); } function editTour(imei,dateOfLastTourend,id,doit) { /* aufgerufen von devlistnew.cfm translate('endoftour');? translate('yes'); | translate('no'); */ if (doit) { //alert('showRouteByStartEnd'); ticom.showRouteByStartEnd(imei,dateOfLastTourend,'',1,'',timeoffset); } setDevicemark(id,0); dsDevices.loadData(); } function setReminder(imei,devid,status,doit) { objToShow = eval("YAHOO.ti.dialog_reminder"); dsReminder.setURL("/modules/communication/data.cfc?method=XMLgetDeviceInformations&deviceid="+devid+"&imei="+imei+"&status="+status); dsReminder.loadData(); objToShow.render(); objToShow.show(); } /* ------------------------------------------------------------------- YUI Yahoo Helpers -------------------------------------------------------------------- */ function doFormPost(url,formlist,f,resfunc,useget) { var formdata = ''; var formarray = formlist.split(','); var formular = document.getElementById(f); for(var i=0; i < formarray.length; i++) { formdata+='&'+formarray[i]+'='; var fField = eval("formular." + formarray[i]); if (fField.type=='select') { fValue = fField.selectedIndex.value; } else { if ( useget == 1 ) { fValue = escape(fField.value); } else { fValue = fField.value; } } formdata+=fValue; } if (useget == 1) { var geturl = url + formdata; //alert(geturl); Spry.Utils.loadURL('GET', geturl); } else { formData = encodeURI(formdata); Spry.Utils.loadURL('POST', url, true, resfunc, {postData: formdata, headers: {"Content-Type": "application/x-www-form-urlencoded; charset=iso-8859-1"}}); } objToShow.hide(); dsDevices.loadData(); } function setRoute(gpsposid, status) { urlstring_gridit = "&id="+gpsposid+"&status="+status; var dsgridit = new Spry.Data.XMLDataSet("/modules/communication/data.cfc?method=XMLgridserver&servicename=updateposition"+urlstring_gridit, "amdata/dataset", { useCache: false }); dsgridit.loadData(); // aktualisiere lokale datentabelle if (dsGPSPoint) { urlstring_intern = "&gpsposid="+gpsposid+"&statusext="+status; dsGPSPoint.setURL("/modules/communication/data.cfc?method=XMLmarkGPSPoint"+urlstring_intern); dsGPSPoint.loadData(); } // karte neu zeichnen if (typeof ticom != "undefined") { window.setTimeout("ticom.ticomMap.redraw();", 1500); } } // mh 20071215 function deleteRoute(gpsidstart,gpsidstop) { if (confirm("Do you really want to delete this route?\nInformation will be lost!")) { setRoute(gpsidstart,10); setRoute(gpsidstop,10); window.setTimeout("window.location.href = window.location.href",1500); } else { alert("Aborted!"); } } // generic dialog for showing message dialogs from within map function showDialog(type,id) { if (type == "position") { YAHOO.ti.dialog_gpspoint.render(); YAHOO.ti.dialog_gpspoint.show(); urlstring = "&gpsposid="+id; dsGPSPoint.setURL("/modules/communication/data.cfc?method=XMLmarkGPSPoint"+urlstring); dsGPSPoint.loadData(); } else if (type == "traffic") { var sprygenericHTMLmarkup = new Spry.Widget.HTMLPanel("genericHTMLmarkup"); sprygenericHTMLmarkup.loadContent("/modules/communication/data.cfc?method=XMLgetTrafficinfo&id="+id); YAHOO.ti.genericdialog.render(); YAHOO.ti.genericdialog.show(); } else if (type == "custom") { var sprygenericHTMLmarkup = new Spry.Widget.HTMLPanel("genericHTMLmarkup"); sprygenericHTMLmarkup.loadContent("/modules/communication/data.cfc?method=XMLCustomData&id="+id); YAHOO.ti.genericdialog.render(); YAHOO.ti.genericdialog.show(); } } //old. delete, when grid-it changed call to showDialog() function showDialogForGpsPos(gpsposid) { showDialog("position",gpsposid); } function resFunc(request) { //do nothing } function radioWert(rObj) { for (var i=0; i isDate ) { minmonth = convertDigits(minmonth); periodFrom = minyear + "-" + minmonth + "-" + minday; timeFrom = minhour + ":" + minmins + ":" + minseks; } } if (period) { transportInside.xhr.use( { uri: "modules/communication/data.cfc?method=getRoute" }, { device: device, period: period } ).submit(); // ticom.showRouteByPeriod(device,period,zoomto,'',mindate,timeoffset); } else if (periodFrom && periodUntil) { var newhours = timeFrom.split(":")[0]; var newmins = timeFrom.split(":")[1]; var newseks = timeFrom.split(":")[1]; var newyear = periodFrom.split("-")[0]; var newmon = periodFrom.split("-")[1]; var newday = periodFrom.split("-")[2]; // alert("new: " + newhours + ", " + newmins + ", " + newseks + ", " +newyear+", "+ newmon+", "+newday); newmon = newmon - 1; var mystartperiod = new Date(newyear, newmon, newday, newhours, newmins, newseks); var neuezeit = mystartperiod.getTime(); //neuezeit = neuezeit - (1000*60*60*2); // mh: berücksichtigung der eingestellten UTC-Versatzzeit im Profil timeoffsetMilliseconds = timeoffset * 1000 * 60; neuezeit = neuezeit - timeoffsetMilliseconds; mystartperiod.setTime(neuezeit); var startyear = mystartperiod.getFullYear(); var startmon = mystartperiod.getMonth(); var startday = mystartperiod.getDate(); var starthour = mystartperiod.getHours(); var startmin = mystartperiod.getMinutes(); var startsek = "00"; if ( startmon.toString().length == 1 ) { startmon = "0" + startmon; } if ( startday.toString().length == 1 ) { startday = "0" + startday; } if ( starthour.toString().length == 1 ) { starthour = "0" + starthour; } if ( startmin.toString().length == 1 ) { startmin = "0" + startmin; } if ( startmon == 1 || startmon == 3 || startmon == 5 || startmon == 8 || startmon == 10 ) { if ( ( startday == 30 || startday == 31 ) && startmon == 1 ) { startday = schaltjahr(startyear); } else if ( startday == 31 ) { startday = 30; } } if ( startmon == 0 || startmon == 2 || startmon == 4 || startmon == 6 || startmon == 7 || startmon == 9 || startmon == 12 ) { if ( newday == 1 && startday == 30) { startday = 31; } } startmon = convertDigits(startmon); var datefrom = startyear + "-" + startmon + "-" + startday + " " + starthour + ":" + startmin + ":" + startsek; //alert(datefrom); var newhoursu = timeUntil.split(":")[0]; var newminsu = timeUntil.split(":")[1]; var newseksu = timeUntil.split(":")[1]; var newyearu = periodUntil.split("-")[0]; var newmonu = periodUntil.split("-")[1]; var newdayu = periodUntil.split("-")[2]; newmonu = newmonu - 1; var mystartperiodu = new Date(newyearu, newmonu, newdayu, newhoursu, newminsu, newseksu); var neuezeitu = mystartperiodu.getTime(); // mh: berücksichtigung der eingestellten UTC-Versatzzeit im Profil timeoffsetMilliseconds = timeoffset * 1000 * 60; neuezeitu = neuezeitu - timeoffsetMilliseconds; //neuezeitu = neuezeitu - (1000*60*60*2); mystartperiodu.setTime(neuezeitu); var startyearu = mystartperiodu.getFullYear(); var startmonu = mystartperiodu.getMonth(); var startdayu = mystartperiodu.getDate(); var starthouru = mystartperiodu.getHours(); var startminu = mystartperiodu.getMinutes(); var startseku = "00"; if ( startmonu.toString().length == 1 ) { startmonu = "0" + startmonu; } if ( startdayu.toString().length == 1 ) { startdayu = "0" + startdayu; } if ( starthouru.toString().length == 1 ) { starthouru = "0" + starthouru; } if ( startminu.toString().length == 1 ) { startminu = "0" + startminu; } if ( startmonu == 1 || startmonu == 3 || startmonu == 5 || startmonu == 8 || startmonu == 10 ) { if ( ( startdayu == 31 || startdayu == 30 ) && startmonu == 1 ) { startdayu = schaltjahr(startyearu); } else if ( startdayu == 31 ) { startdayu = 30; } } if ( startmonu == 0 || startmonu == 2 || startmonu == 4 || startmonu == 6 || startmonu == 7 || startmonu == 9 || startmonu == 11 ) { if ( newdayu == 1 && startdayu == 30 ) { startdayu = 31; } } startmonu = convertDigits(startmonu); var dateto = startyearu + "-" + startmonu + "-" + startdayu + " " + starthouru + ":" + startminu + ":" + startseku; transportInside.xhr.use( { uri: "modules/communication/data.cfc?method=getRoute" }, { device: device, from: datefrom, until: dateto } ).submit(); // ticom.showRouteByStartEnd(device,datefrom,dateto,zoomto,'',timeoffset); } } /**************************/ /* Datums-Hilfsfunktionen */ /**************************/ function convertDigits(digit) { newDigit = new String(""); if (IsNumeric(digit) ){ digit++; if (digit < 9) { newDigit = "0" + digit; } else { newDigit = digit; } } return newDigit; } /**************************/ /* Dreamweaver */ /**************************/ function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } /*************************************************************/ /* Hilfsfunktion zur Ermittlung, ob ein String numerisch ist */ /*************************************************************/ function IsNumeric(strString) // check for valid numeric strings { var strValidChars = "0123456789.-"; var strChar; var blnResult = true; if (strString.length == 0) return false; // test strString consists of valid characters listed above for (i = 0; i < strString.length && blnResult == true; i++) { strChar = strString.charAt(i); if (strValidChars.indexOf(strChar) == -1) { blnResult = false; } } return blnResult; } /* Tooltip */ function showtooltip(id) { dsTooltip.setURL("/modules/communication/tooltip.cfc?method=getTooltipForLevel&id="+id); dsTooltip.loadData(); } /* ------------------------------------------------------------------- GO! -------------------------------------------------------------------- */ init();