/** * Author: Kashif Raza * Date: 2021-11-26 * Description: This is the main Javascript file for Captcha. */ document.onload = getCaptcha(); function getCaptcha() { var form = document.getElementsByClassName("captcha-container"); var captcha = document.createElement("div"); captcha.className = "captcha"; var captchaTxt = generateCaptcha(); captcha.innerHTML = "
"+captchaTxt+"



"; form[0].appendChild(captcha); var submit = document.getElementsByClassName('submit-after-valid-captcha'); submit[0].disabled = true; } function captchaValidate() { var captcha = document.getElementsByClassName("captcha-input"); var captchaText = captcha[0].value; var originalCaptchaImg = document.getElementsByClassName("captcha-image"); originalCaptcha = originalCaptchaImg[0].getAttribute("data-captcha"); if(captchaText == originalCaptcha) { console.log("Captcha Matched"); var submit = document.getElementsByClassName('submit-after-valid-captcha'); submit[0].disabled = false; var verify = document.getElementsByClassName('captcha-verify'); verify[0].disabled = true; verify[0].style.cursor = "not-allowed"; var captchaResponse = document.getElementById('captcha-response'); captchaResponse.innerHTML = "

"; } else { var submit = document.getElementsByClassName('submit-after-valid-captcha'); submit[0].disabled = true; var verify = document.getElementsByClassName('captcha-verify'); verify[0].disabled = false; var captchaResponse = document.getElementById('captcha-response'); captchaResponse.innerHTML = "

X

"; generateCaptcha2(); } } // Function to generate captcha without changing the data and content of the captcha-image div // For 1st time generation of captcha function generateCaptcha() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for( var i=0; i < 5; i++ ) { text += possible.charAt(Math.floor(Math.random() * possible.length));} return text; } // Function to generate captcha without changing the data and content of the captcha-image div // For rest of the time generation of captcha function generateCaptcha2() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for( var i=0; i < 5; i++ ) { text += possible.charAt(Math.floor(Math.random() * possible.length));} var captcha = document.getElementsByClassName("captcha-image"); captcha[0].innerHTML = text; captcha[0].setAttribute("data-captcha", text); }