/* *********************************
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();
// ticom.showDevices(devicesInMap.join(","),1,timeoffset);
}
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 = "";
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 = "";
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 = "";
document.getElementById("rowdevice4"+divid).innerHTML = html_tag;
}
if (positionunknown == 254 && alerttype != 9) {
iconToShow = "ti_icon_" + alerts.infos[parseInt(positionunknown)].icon + ".png";
html_tag = "";
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 = "";
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 = "";
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();