|
|
var selection = []; var captchaid = "";
function httpGet(url) { var xmlHttp = new XMLHttpRequest(); xmlHttp.open("GET", url, false); // false for synchronous request
xmlHttp.send(null); return xmlHttp.responseText; }
function httpPost(url, data) { var xmlHttp = new XMLHttpRequest(); xmlHttp.open("POST", url, false); xmlHttp.setRequestHeader("Access-Control-Allow-Origin", "*"); xmlHttp.send(data); return xmlHttp.responseText; }
function getCaptcha() { data = httpGet(goCaptchaURL + "/captcha") captcha = JSON.parse(data); captchaid = captcha.id; showCaptcha(captcha); selection=[]; for(k in captcha.imgs){ selection.push(0); } }
function showCaptcha(captcha) { var html; html = ""; html += "<h2>Select all " + captcha.question + "</h2>"; for (k in captcha.imgs) { html += "<img id='" + k + "' onclick='selectCaptchaImg(this)' src='" + goCaptchaURL + "/image/" + captcha.imgs[k] + "' style='width:120px;cursor:pointer;' class='g_unselected' />"; } html += "<div onclick='validateCaptcha()' class='g_button c_blue300 g_floatRight'>Validate</div>"; document.getElementById("goCaptcha").innerHTML = html; }
function selectCaptchaImg(elem) { if (selection[elem.id] == 0) { selection[elem.id] = 1; document.getElementById(elem.id).className = "g_selected"; } else { selection[elem.id] = 0; document.getElementById(elem.id).className = "g_unselected"; } }
function validateCaptcha() { var answer = { selection: selection, captchaid: captcha.id }; data = httpPost(goCaptchaURL + "/answer", JSON.stringify(answer)); resp = JSON.parse(data); var html = ""; if (resp) { html += "<h2>goCaptcha validated</h2>"; html += "<div onclick='getCaptcha()' class='g_button c_green300 g_floatRight'>Reload Captcha</div>"; } else { html += "<h2>goCaptcha failed</h2>"; html += "<div onclick='getCaptcha()' class='g_button c_red300 g_floatRight'>Reload Captcha</div>"; } document.getElementById("goCaptcha").innerHTML = html; }
if (document.getElementById("goCaptcha")) { getCaptcha(); }
|