var loggedBiker = ''; var centerBikerName = 'brak'; deleteCookie('loggedBiker'); //console.log(readCookie('loggedBiker')); //var loggedBiker = readCookie('loggedBiker'); var httpAddress = 'https://obserwuj.online/'; var imgCatalog = 'img/'; var gpxCatalog = 'gpx/'; var followFlag = false; // podążaj var lastActivity = new Array(); //tablica ostatnich aktywnosci //var centerBikerName = 'brak'; //centruj na bikera var iniLat = 51.10; //Wrocław var iniLon = 17.03; var defaultUID = 1; var centerLogin = 'slawek'; var zoomMin = 4; var zoomMax = 18; var visibleTime = 10800; // 10800 [s] usuń z mapy > 3h var stopBorder = 3600; // 3600 [s] - powyżej - nie jadę var pauseBorder = 120; // 120 [s] - powyżej - odpoczywam, poniżej - jadę var timeZone = 120; // 120 [m] strefa czasowa +2h (lato), 60-zima var Biker = function (uid, login, iconCatalog, iconPath, tripPath, tripColor, lat, lon, alt, speed, time, battery, gsmSignal, updateTimestamp) { this.uid = uid; this.login = login; this.iconCatalog = iconCatalog; this.iconPath = iconPath; this.tripPath = tripPath; this.tripColor = tripColor; this.lat = lat; this.lon = lon; this.alt = alt; this.speed = speed; this.time = time; this.battery = battery; this.gsmSignal = gsmSignal; this.updateTimestamp = updateTimestamp; this.setLatLon = function(lat, lon){ this.lat = lat; this.lon = lon; return; } this.getLonLat = function () { return(this.lon, this.lat); }; }; function updateLatLon(range) { var xhr = null; try { xhr = new XMLHttpRequest(); if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } catch (e) { xhr = false; } // xhr.open("GET", httpAddress + "updateLatLon.php?" + Math.random(), true); xhr.open("GET", httpAddress + "upd/" + range + "/" + Math.random(), true); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status == 200) { var groups = xhr.responseText.split('#'); var param = ''; var uid = ''; var login = ''; var lat = ''; var lon = ''; var lastTS = ''; var tripPath = ''; // aktualizuj wspolrzedne bikerów for(var a=0; a visibleTime){ //marker[biker].display(false); visible = false; // zalogowany, ślad i marker ustaw widoczny bez wględu na czas if(loggedBiker == biker){ //layerGPX[biker].display(true); visible = true; } }else{ //marker[biker].display(true); //layerGPX[biker].display(true); visible = true; } return(visible); } function movingLoop(){ updateLatLon(1231230000); setTimeout('movingLoop()', 1000); } // ustawienie buttona w menu - funkcja mobilna function setButtonMenu(biker){ var lastAct = parseInt((parseInt(Date.now()/1000) - lastTimestamp[biker])/60 - timeZone); if(visibleOnMap(biker)) { document.getElementById("btn_" + biker).className = "btn"; if(loggedBiker == biker){ document.getElementById(biker + "_lastActiveTime").innerHTML = " - zalogowany, akt. ~" + lastAct + " min."; }else if(lastAct < (pauseBorder/60)){ document.getElementById(biker + "_lastActiveTime").innerHTML = " - nie ma lipy, jadę :-) "; } else { document.getElementById(biker + "_lastActiveTime").innerHTML = " - ost. aktual. ~" + lastAct + " min. temu"; } }else{ document.getElementById("btn_" + biker).className = "btnNotActive"; document.getElementById(biker + "_lastActiveTime").innerHTML = " - brak aktyw. >" + Math.floor(visibleTime/3600) + "h"; } } // ustawienie listy w menu - funkcja pc function setListMenu(biker){ var lastAct = parseInt((parseInt(Date.now()/1000) - lastTimestamp[biker])/60 - timeZone); if(visibleOnMap(biker)) { //wyswietlenie radiobutton jesli user aktywny document.getElementById("userCheck_" + biker).enabled = "true"; if(loggedBiker == biker){ //document.getElementById(biker + "_lastActiveTime").innerHTML = " - zalogowany, akt. ~" + lastAct + " min."; document.getElementById("bikerIconList_" + biker).title = biker + ": zalogowany, ostatnia aktualizacja ~" + lastAct + " min. temu."; }else if(lastAct < (pauseBorder/60)){ //document.getElementById(biker + "_lastActiveTime").innerHTML = " - nie ma lipy, jadę :-) "; document.getElementById("bikerIconList_" + biker).title = biker + " - nie ma lipy, jadę :-)"; } else { //document.getElementById(biker + "_lastActiveTime").innerHTML = " - ost. aktual. ~" + lastAct + " min. temu"; document.getElementById("bikerIconList_" + biker).title = biker + ": ost. aktual. ~" + lastAct + " min. temu"; } }else{ document.getElementById("userCheck_" + biker).disabled = "true"; document.getElementById("bikerIconList_" + biker).title = biker + ": brak aktywności >" + Math.floor(visibleTime/3600) + "h"; //document.getElementById(biker + "_lastActiveTime").innerHTML = " - brak aktyw. >" + Math.floor(visibleTime/3600) + "h"; } } // centrowanie mapy na usera - funkcja mobilna function setCenterMap(biker){ // jeśli wybrał użytkownika nieaktywnego nie centruj i powiadom if(visibleOnMap(biker)) { // ustawienie usera centralnego centerBikerName = biker; // wpis bikera w formularzu setFormCenterBikerName(biker); // ustawienie checkboxa w formularzu setFollow(true); //console.log(followFlag); }else{ alert("Użytkownik jest nieaktywny powyżej " + (visibleTime/3600) + "h."); } document.getElementById("naviList").className = "btn.hide"; } // ustawienie usera w formularzu - mobilnym function setFormCenterBikerName(cbn){ if(cbn == 'brak'){ document.getElementById("centerBikerName").innerHTML = 'nie wybrano'; followFlag = false; } else if(cbn){ document.getElementById("centerBikerName").innerHTML = cbn + ', podążaj za
(ost. aktual. pozycji ~' + lastActivity[cbn] + ' min. temu)' + '
'; // zanacz checkobx if(followFlag) {setFollow(true);} else {setFollow(false);} //followFlag = true; }else{ document.getElementById("centerBikerName").innerHTML = centerBikerName + ', podążaj za '; if(followFlag) {setFollow(true);} else {setFollow(false);} //followFlag = true; } } // ustawienie checkboxa w formularzu function setFollow(f){ var follow = document.getElementById("follow"); if(f) { follow.checked = true; followFlag = true; }else{ follow.checked = false; followFlag = false; } return; } // ustawienie checkboxa w formularzu function toggleFollow(){ var follow = document.getElementById("follow"); if(followFlag){ follow.checked = false; followFlag = false; }else{ follow.checked = true; followFlag = true; } return; } function checkedCenter(){ var follow = document.getElementById("follow"); if(isChecked(follow)){ return(true); } else { return(false); } } function isChecked(pole){ if(pole.checked == false){ return false; }else{ return true; } } function control(){ var follow = document.getElementById("follow"); var userCheckValue = ''; var userCheckLen = document.traceForm.userCheck.length; for (i = 0; i < userCheckLen; i++) { if (document.traceForm.userCheck[i].checked) { userCheckValue = document.traceForm.userCheck.value; // ustaw nowy follow centerLogin = userCheckValue; follow.checked = true; } } } function zoomIn(){ if((defaultZoom+1) <= zoomMax){ defaultZoom++; } //console.log(defaultZoom); } function zoomOut(){ if((defaultZoom-1) >= zoomMin){ defaultZoom--; } } function writeCookie(cookieName, cookieValue, expires, domain, path, secureFlag) { if (cookieName) { var cookieDetails = cookieName + "=" + escape(cookieValue); cookieDetails += (expires ? "; expires=" + expires.toGMTString(): ''); cookieDetails += (domain ? "; domain=" + domain: ''); cookieDetails += (path ? "; path=" + path: ''); cookieDetails += (secureFlag ? "; secure": ''); document.cookie = cookieDetails; } } function readUnescapedCookie(cookieName) { var cookieValue = document.cookie; var cookieRegExp = new RegExp("\\b" + cookieName + "=([^;]*)"); cookieValue = cookieRegExp.exec(cookieValue); if (cookieValue != null) { cookieValue = cookieValue[1]; } return cookieValue; } function readCookie(cookieName) { cookieValue = readUnescapedCookie(cookieName) if (cookieValue != null) { cookieValue = unescape(cookieValue); } return cookieValue; } function deleteCookie(cookieName) { var expiredDate = new Date(); expiredDate.setMonth(-1); writeCookie(cookieName, "", expiredDate); }