runCnt=0; hostName='infong-uk82'; p = ["?mtProfile=paraAir&runCnt=", "&mtID=mtMarquee"]; clientDebug=''; callURL='https://paraairaugsburg.de:443/Ticker/php/mT.php'; nextCall=1; if (window.document.documentMode) { alert('IE nicht unterstützt - Abbruch'); window.close(); } document.write("
"); function addMarq( msg, color, s=speed ) { if ( marq ) { if ( msg.length > 0 ) { if (marq.firstChild.innerHTML.length > 0 ) { marq.firstChild.innerHTML += ' ~~ '; } marq.firstChild.innerHTML += msg; } len = marq.innerHTML.length; if ( len > 0 ) { var nodes = marq.getElementsByTagName('span'); for(var i=0; i < nodes.length; i++) { nodes[i].style.animationDuration = len/s + 's'; } } if ( color.length > 0 ) marq.firstChild.style.backgroundColor = color; } } function prepPhPCall( uids, p, runCnt ) { var par = p[0] + runCnt + p[1]; if ( uids.length > 0 ) { u = '&uids='; for (k=0; k < uids.length; k++) { u = u + uids[k][0] + ', ' + uids[k][1]; if ( k < uids.length-1 ) u += ';'; } par = par + u; } urls = [ callURL + par ]; return urls; } function setSpeed(e) { if (!e) e = window.event; var r = e.target.toString(); if ( r.substr(0, 10) == 'javascript' ) return false; var speedMax = 200; var speedDef = 10; var speedMin = 1; var speedStep = 20; var mouse_msg = [ 'Links = Geschwindigkeit schneller', 'Mitte = Änderung Laufrichtung', 'Rechts = Geschwindigkeit langsamer' ]; if ( clkCount > 1 ) { msg = ''; msg += mouse_msg[e.button] + '\n( e.button: ' + e.button; msg += ' - e.detail: ' + e.detail + ' - Geschwindigkeit: ' + speed; msg += ' - ' + duration + ' )'; msg += '\n\ndoppelter click: Daten sofort holen ?\n\n'; if ( typeof toolTip !== 'undefined' && toolTip.length > 0 ) msg += toolTip; if ( clientDebug ) { clkCount = 0; urls = prepPhPCall( uids, p, runCnt ); if ( confirm( msg ) ) { getInOrder( urls ); return false; } } else { getInOrder( urls ); return false; } } else { msg = 'einfacher click:\n\n' + mouse_msg[e.button] + '\n( e.button: ' + e.button + ' - e.detail: ' + e.detail + ' - Geschwindigkeit: ' + speed + ' - ' + duration + ' )\n\n'; if ( typeof toolTip !== 'undefined' && toolTip.length > 0 ) msg += toolTip; if (clientDebug) alert( msg ); } clkCount = 0; switch(e.button) { case 0: if ( speed + speedStep > speedMax ) speed = speedMax; else speed = speed + speedStep; break; case 1: if ( clientDebug && typeof showSettings === 'function' )showSettings(); speed = speedDef; var xx = marq.firstChild.style; if ( xx.animationDirection == '' ) xx.animationDirection = 'normal'; if ( xx.animationDirection == 'normal' ) xx.animationDirection = 'reverse'; else xx.animationDirection = 'normal'; break; case 2: if ( speed - speedStep/2 <= speedMin ) speed = speedMin; else speed = speed - speedStep/2; break; default: alert('no function defined'); } addMarq( msg='', 'transparent', speed ); } async function getInOrder( urls ) { if ( myTOid != 0 ) clearTimeout(myTOid); addMarq( msg='', 'lightgreen' ); var data = 'no data yet' ; try { const textPromises = urls.map(async url => { const response = await fetch(url); return(url, response.text()); }); for (const textPromise of textPromises) { if ( data = await textPromise ) { if ( data.length > 0 && runCnt < 2 ) { if ( clientDebug ) alert('data-length: ' + data.length + cr + data); } marq.firstChild.innerHTML = ''; eval(String(data)); if ( document.getElementById('tooltiptext') && typeof toolTip !== 'undefined' && toolTip.length > 0 ) { var tTip = toolTip.replace(/(?:\r\n|\r|\n)/g, '
'); document.getElementById('tooltiptext').innerHTML = tTip; } runCnt += 1; urls = prepPhPCall( uids, p, runCnt ); if ( nextCall > 0 ) myTOid = setTimeout(function(){ getInOrder( urls ); }, nextCall*1000 ); }; } } catch(err) { if ( runCnt < 3 ) alert('catch - getInOrder: ' + err); } finally { addMarq( msg='', 'transparent' ); } } var msg, urls, myTOid, nextCall, runCnt, callURL, hostName, remoteName, toolTip; duration = 0; var clkCount = 0; marq = null; marq = document.getElementById('mtMarquee'); marq.oncontextmenu = function(event) { event.preventDefault(); }; marq.onmousedown = function (event) { if ( event.detail === 1 ) setTimeout(function() { setSpeed(event) }, 300); clkCount += 1; }; var cr = '\n'; msg = ''; myTOid = 0; nextCall = 1; runCnt = 1; clientDebug; speed=10; p; uids = []; urls = prepPhPCall( uids, p, runCnt ); if ( clientDebug ) alert('1. Start: ' + cr + urls ); getInOrder( urls );