// const submit = document.getElementById("button"); mycheckbox = document.getElementById("restricted"); mycheckbox.addEventListener('change',checkboxCallback); window.onload = function() { if (mycheckbox.checked) { document.getElementById("radius_label").hidden = false; document.getElementById("mandatory-radius").hidden = false; var radiusSelect = document.getElementById("radius"); radiusSelect.hidden = false; radiusSelect.required = true; } } var lat = document.getElementById("latitude"); lat.setValue = function(newValue) { this.value = newValue; valueReceived(); } function valueReceived() { let load = document.getElementById("loadingText"); load.innerHTML = "Location retrieved"; load.style.color = "green"; } function valueRequested() { let load = document.getElementById("loadingText"); load.innerHTML = "Location requested. Please wait..."; load.style.color = "red"; } function checkboxCallback(event) { const radiusLabel = document.getElementById("radius_label"); const radiusSelect = document.getElementById("radius"); const mandatoryRadius = document.getElementById("mandatory-radius"); if (event.currentTarget.checked) { radiusLabel.hidden = false; mandatoryRadius.hidden = false; radiusSelect.hidden = false; radiusSelect.required = true; valueRequested(); getLocation(); } else { radiusLabel.hidden = true; mandatoryRadius.hidden = true; radiusSelect.hidden = true; radiusSelect.required = false; } } function getLocation() { console.log("GeoLocation"); if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { console.log("Your browser does not support geolocation."); } } function showPosition(position) { console.log("Gotten positions"); console.log(position.coords.latitude); console.log(position.coords.longitude); document.getElementById("latitude").setValue(position.coords.latitude); document.getElementById("longitude").value = position.coords.longitude; console.log("done"); } // submit.addEventListener('click', validate); function validate() { //e.preventDefault(); const checked = document.getElementById("restricted"); if (checked.checked) { const lat = document.getElementById("latitude"); const long = document.getElementById("longitude"); if (lat.value === "" || long.value === "") { /* wait */ return false } } const url = document.getElementById("URL"); let glink = document.getElementById("GLink"); const error = document.getElementById("error"); // if (!url) { // /* Flag */ // } let valid = true; // const domainExp = new RegExp("^http(s)*:\\/\\/[a-zA-Z0-9\\-]+(\\.[a-zA-Z0-9\\-]+)+[_#]*$"); const domainExp = new RegExp("^http(s)*:\\/\\/[a-zA-Z0-9\\-]+(\\.[a-zA-Z0-9\\-]+)+[\\/_#a-zA-Z0-9=?\\-]*$"); const filepathExp = new RegExp("^[a-zA-Z]+$"); const glinkExp = new RegExp("^[a-zA-Z]*$"); let glinkStr = glink.value; let count = 0; let index = -1; let domain = ""; let filepath = ""; for (let i = 0; i < url.value.length; i++) { if (url.value.charAt(i) == '/') { count++; } if (count == 3) { index = i; break; } } if (count >= 3) { domain = url.value.substring(0, index); if (index == url.value.length - 1) { filepath = url.value.charAt(index); } else { filepath = url.value.substring(index, url.value.length - 1); } alert("Domain is " + domain + " filepath is " + filepath); } else { domain = url.value; } console.log(domain); if (glinkStr === "") { var result = window.confirm("You have left the glink field blank. A random one will be generated for you."); if (result === false) { return false; } } if (domain.match(domainExp) && glinkStr.match(glinkExp))/** and is available? */{ if (error.classList.contains("visible")) { error.classList.remove("visible"); } if (url.classList.contains("invalid")) { url.classList.remove("invalid"); } url.classList.add("valid"); if (glink.classList.contains("invalid")) { glink.classList.remove("invalid"); } glink.classList.add("valid"); error.setAttribute('aria-hidden', true); error.setAttribute('aria-invalid', false); console.log("Valid with url= " +url.value+ " glink=" +glink); return valid; } else { /*flag*/ error.classList.add("visible"); //error.classList.add("hidden"); if (!domain.match(domainExp)) { if (url.classList.contains("valid")) { url.classList.remove("valid"); } url.classList.add("invalid"); } else { if (url.classList.contains("invalid")) { url.classList.remove("invalid"); } url.classList.add("valid"); } if (!glinkStr.match(glinkExp)) { if (glink.classList.contains("valid")) { glink.classList.remove("valid"); } glink.classList.add("invalid"); } else { if (glink.classList.contains("invalid")) { glink.classList.remove("invalid"); } glink.classList.add("valid"); } error.setAttribute('aria-hidden', false); error.setAttribute('aria-invalid', true); return false; } }