/* --------------- Login & Register Button Function --------------------- */ var log = document.getElementById("login"); var reg = document.getElementById("register"); var btn = document.getElementById("btn"); var box = document.querySelector(".form_box"); function register(){ log.style.left = "-40rem"; reg.style.left = "5rem"; btn.style.left = "11rem"; box.style.height = "90rem"; } function login(){ log.style.left = "5rem"; reg.style.left = "45rem"; btn.style.left = "0"; box.style.height = "55rem"; } /* --------------- End Login & Register Button Function --------------------- */ /* --------------- Button Ripples Effect --------------------- */ const submitBtns = document.querySelectorAll('.submit_btn'); submitBtns.forEach(submitBtn => { submitBtn.addEventListener('click', function(e) { let x = e.clientX - e.target.getBoundingClientRect().left; let y = e.clientY - e.target.getBoundingClientRect().top; let ripples = document.createElement('span'); ripples.style.top = y + 'px'; ripples.style.left = x + 'px'; this.appendChild(ripples); setTimeout(() => { ripples.remove() },1000); }) }) /* --------------- End Button Ripples Effect --------------------- */ /* --------------- Register Form Validation --------------------- */ //User Name let userNameInput = document.getElementById("user_name_input"); let userNameError = document.getElementById("user_name_error"); let userNameEmpty = document.getElementById("user_name_empty"); //Email let emailInput = document.getElementById("email_input"); let emailError = document.getElementById("email_error"); let emailEmpty = document.getElementById("email_empty"); //Phone let phoneInput = document.getElementById("phone_input"); let phoneError = document.getElementById("phone_error"); let phoneEmpty = document.getElementById("phone_empty"); //Password let passwordInput = document.getElementById("password_input"); let passwordError = document.getElementById("password_error"); let passwordEmpty = document.getElementById("password_empty"); let showbtn = document.getElementById("showbtn"); //Submit let regiterBtn = document.getElementById("submit_btn"); //Valid let validCls = document.getElementsByClassName("valid"); let invalidCls = document.getElementsByClassName("error"); //User Name Verification const textVerify = (text) => { const regex = /^[a-zA-Z]{3,}$/; return regex.test(text); }; //Email verification const emailVerify = (input) => { const regex = /^[a-z0-9_]+@[a-z]{3,}\.[a-z\.]{3,}$/; return regex.test(input); }; //Phone number verification const phoneVerify = (number) => { const regex = /^[0-9]{10}$/; return regex.test(number); }; //Password Verification const passwordVerify = (password) => { const regex = /^(?=.+[a-z])(?=.+[A-Z])(?=.+[0-9])(?=.+[\$\%\^\&\!@\#\*\(\)\+\=\?\>\<])/; return regex.test(password) && password.length >= 8; }; //Password Validation let vallowChar = document.getElementById('lowChar'); let valupChar = document.getElementById('upChar'); let valnumber = document.getElementById('number'); let valspeChar = document.getElementById('speChar'); let valeigChar = document.getElementById('eigChar'); function passwordvalidation(data){ const lowChar = RegExp('(?=.*[a-z])'); const upChar = RegExp('(?=.*[A-Z])'); const number = RegExp('(?=.*[0-9])'); const speChar = RegExp('(?=.*[!@#\$%\^&\*])'); if(lowChar.test(data)){ vallowChar.classList.add('valid'); }else{ vallowChar.classList.remove('valid'); } if(upChar.test(data)){ valupChar.classList.add('valid'); }else{ valupChar.classList.remove('valid'); } if(number.test(data)){ valnumber.classList.add('valid'); }else{ valnumber.classList.remove('valid'); } if(speChar.test(data)){ valspeChar.classList.add('valid'); }else{ valspeChar.classList.remove('valid'); } if(data.length >= 8){ valeigChar.classList.add('valid'); }else{ valeigChar.classList.remove('valid'); } } //End Password Validation //Hide & Show Password showbtn.onclick = function(){ if(passwordInput.value.length >= 1){ if (passwordInput.type === 'password'){ passwordInput.setAttribute('type', 'text'); showbtn.classList.remove("fa-eye") showbtn.classList.add("fa-eye-slash") } else { passwordInput.setAttribute('type', 'password'); showbtn.classList.remove("fa-eye-slash") showbtn.classList.add("fa-eye") } } } const emptyUpdate = (inputReference, emptyErrorReference, otherErrorReference) => { if (!inputReference.value) { emptyErrorReference.classList.remove("hide"); otherErrorReference.classList.add("hide"); inputReference.classList.add("error"); } else { emptyErrorReference.classList.add("hide"); } }; const errorUpdate = (inputReference, errorReference) => { errorReference.classList.remove("hide"); inputReference.classList.remove("valid"); inputReference.classList.add("error"); }; const validInput = (inputReference) => { inputReference.classList.remove("error"); inputReference.classList.add("valid"); }; //User Name userNameInput.addEventListener("input", () => { if (textVerify(userNameInput.value)) { userNameError.classList.add("hide"); validInput(userNameInput); } else { errorUpdate(userNameInput, userNameError); emptyUpdate(userNameInput, userNameEmpty, userNameError); } }); //Email emailInput.addEventListener("input", () => { if (emailVerify(emailInput.value)) { emailError.classList.add("hide"); validInput(emailInput); } else { errorUpdate(emailInput, emailError); emptyUpdate(emailInput, emailEmpty, emailError); } }); //Phone phoneInput.addEventListener("input", () => { if (phoneVerify(phoneInput.value)) { phoneError.classList.add("hide"); validInput(phoneInput); } else { errorUpdate(phoneInput, phoneError); emptyUpdate(phoneInput, phoneEmpty, phoneError); } }); //Password passwordInput.addEventListener("input", () => { if (passwordVerify(passwordInput.value)) { passwordError.classList.add("hide"); validInput(passwordInput); } else { errorUpdate(passwordInput, passwordError); emptyUpdate(passwordInput, passwordEmpty, passwordError); } }); //Submit button regiterBtn.addEventListener("click", function(event){ event.preventDefault(); if (invalidCls.length == 0 && validCls.length == 9){ showvalPopup(); } else { showerrorPopup(); } }); /* --------------- End Register Form Validation --------------------- */ /* --------------- Success & Error Popup --------------------- */ let Valpopup = document.getElementById("Valpopup"); let errorpopup = document.getElementById("errorpopup"); function showvalPopup(){ Valpopup.classList.add("open_popup"); }; function showerrorPopup(){ errorpopup.classList.add("open_popup"); }; function closevalPopup(){ Valpopup.classList.remove("open_popup"); window.location.reload(); }; function closeerrorPopup(){ errorpopup.classList.remove("open_popup"); }; /* --------------- End Success & Error Popup --------------------- */