diff --git a/captcheck.dist.js b/captcheck.dist.js index 34d21f8..6d7fdae 100644 --- a/captcheck.dist.js +++ b/captcheck.dist.js @@ -1 +1 @@ -function chooseAnswer(e,t){var a=document.getElementById("captcheck_"+e+"_answer_"+t);return a.checked=!0,!1}function switchMode(e){var t=document.getElementById("captcheck_"+e+"_alt_question_button"),a=document.getElementById("captcheck_"+e+"_question_image"),c=document.getElementById("captcheck_"+e+"_question_access"),n=document.getElementById("captcheck_"+e+"_answer_images"),s=document.getElementById("captcheck_"+e+"_answer_access");"> Text mode"==t.innerHTML?(t.innerHTML="> Image mode",a.style.display="none",c.style.display="initial",n.style.display="none",s.style.display="initial",s.innerHTML=""):(t.innerHTML="> Text mode",a.style.display="initial",c.style.display="none",n.style.display="initial",s.style.display="none",s.innerHTML="")}window.onload=function(){var e="https://captcheck.netsyms.com/api.php",t=document.createElement("style");t.innerHTML=".captcheck_box,.captcheck_label_message,.captcheck_label_message b{color:#000;font-family:Ubuntu,Arial,sans-serif}.captcheck_box{border:1px solid #e0e0e0;border-radius:3px;display:inline-block;padding:3px;margin:5px 2px 5px 1px;background-color:#f5f5f5}.captcheck_answer_label>input{visibility:hidden;position:absolute}.captcheck_answer_label>input+img{cursor:pointer;border:2px solid transparent;border-radius:3px;min-width:32px;width:18%;max-width:64px}.captcheck_answer_label>input:checked+img{cursor:pointer;border:2px solid #424242;border-radius:3px}.captcheck_error_message{color:red}.captcheck_question_image{display:initial}.captcheck_question_access{display:none}.captcheck_alt_question_button{float:right;font-size:80%;cursor:pointer;color:inherit;text-decoration:inherit}.captcheck_answer_images{display:initial}.captcheck_answer_access{display:none}",document.body.appendChild(t),Array.prototype.forEach.call(document.getElementsByClassName("captcheck_container"),function(t){var a=new XMLHttpRequest;a.open("GET",e+"?action=new",!0),a.onreadystatechange=function(){if(4==this.readyState){var a=this.status,c=this.responseText,n=document.createElement("div");if(n.setAttribute("class","captcheck_box"),t.appendChild(n),200==a){for(var s=JSON.parse(c),i=s.id_prefix,r="
",o=0,l=s.answers.length;l>o;o++){var p=e+"?action=img&s="+s.session+"&c="+s.answers[o];r+=""}r+="
";var d=document.createElement("div");d.innerHTML=r+"
";var _=document.createElement("div");_.setAttribute("class","captcheck_label_message"),_.setAttribute("id","captcheck_"+i+"_label_message"),_.innerHTML=""+s.question_i+""+s.question_a+"> Text mode",n.appendChild(_),n.appendChild(d);var h=document.createElement("span");h.innerHTML="",n.appendChild(h)}else n.innerHTML="There was a problem loading the CAPTCHA."}},a.send()})}; \ No newline at end of file +window.onload=function(){var b="https://captcheck.netsyms.com/api.php";var a=document.createElement("style");a.innerHTML=".captcheck_box,.captcheck_label_message,.captcheck_label_message b{color:#000;font-family:Ubuntu,Arial,sans-serif}.captcheck_box{border:1px solid #e0e0e0;border-radius:3px;display:inline-block;padding:3px;margin:5px 2px 5px 1px;background-color:#f5f5f5}.captcheck_answer_label>input{visibility:hidden;position:absolute}.captcheck_answer_label>input+img{cursor:pointer;border:2px solid transparent;border-radius:3px;min-width:32px;width:18%;max-width:64px}.captcheck_answer_label>input:checked+img{cursor:pointer;border:2px solid #424242;border-radius:3px}.captcheck_error_message{color:red}.captcheck_question_image{display:initial}.captcheck_question_access{display:none}.captcheck_alt_question_button{float:right;font-size:80%;cursor:pointer;color:inherit;text-decoration:inherit}.captcheck_answer_images{display:initial}.captcheck_answer_access{display:none}";document.body.appendChild(a);Array.prototype.forEach.call(document.getElementsByClassName("captcheck_container"),function(c){var d=new XMLHttpRequest();d.open("GET",b+"?action=new",true);d.onreadystatechange=function(){if(this.readyState==4){var g=this.status;var r=this.responseText;var o=document.createElement("div");o.setAttribute("class","captcheck_box");c.appendChild(o);if(g==200){var h=JSON.parse(r);var f=h.id_prefix;var m="
";for(var j=0,l=h.answers.length;j"}m+="
";var p=document.createElement("div");p.innerHTML=m+"
";var k=document.createElement("div");k.setAttribute("class","captcheck_label_message");k.setAttribute("id","captcheck_"+f+"_label_message");k.innerHTML=""+h.question_i+""+h.question_a+"> Text mode";o.appendChild(k);o.appendChild(p);var q=document.createElement("span");q.innerHTML="";o.appendChild(q);var n=document.querySelectorAll('.captcheck_answer_label[data-prefix="'+f+'"]');for(var j=0;jThere was a problem loading the CAPTCHA."}}};d.send()})};function chooseAnswer(c,a){var b=document.getElementById("captcheck_"+c+"_answer_"+a);b.checked=true;return false}function switchMode(e){var d=document.getElementById("captcheck_"+e+"_alt_question_button");var a=document.getElementById("captcheck_"+e+"_question_image");var f=document.getElementById("captcheck_"+e+"_question_access");var c=document.getElementById("captcheck_"+e+"_answer_images");var b=document.getElementById("captcheck_"+e+"_answer_access");if(d.innerHTML=="> Text mode"){d.innerHTML="> Image mode";a.style.display="none";f.style.display="initial";c.style.display="none";b.style.display="initial";b.innerHTML=""}else{d.innerHTML="> Text mode";a.style.display="initial";f.style.display="none";c.style.display="initial";b.style.display="none";b.innerHTML=""}}; \ No newline at end of file diff --git a/captcheck.js b/captcheck.js index d3b63a3..33a5a97 100644 --- a/captcheck.js +++ b/captcheck.js @@ -28,7 +28,7 @@ window.onload = function () { var answers = "
"; for (var i = 0, len = data.answers.length; i < len; i++) { var src = api_url + "?action=img&s=" + data.session + "&c=" + data.answers[i]; - answers += ""; + answers += ""; } answers += "
"; var answer_div = document.createElement("div"); @@ -37,7 +37,7 @@ window.onload = function () { var question_div = document.createElement("div"); question_div.setAttribute("class", "captcheck_label_message"); question_div.setAttribute("id", "captcheck_" + idp + "_label_message") - question_div.innerHTML = "" + data.question_i + "" + data.question_a + "> Text mode"; + question_div.innerHTML = "" + data.question_i + "" + data.question_a + "> Text mode"; /* Add question and answers */ captcha.appendChild(question_div); @@ -47,6 +47,30 @@ window.onload = function () { var skey_input = document.createElement("span"); skey_input.innerHTML = ""; captcha.appendChild(skey_input); + + var answer_buttons = document.querySelectorAll(".captcheck_answer_label[data-prefix=\"" + idp + "\"]"); + for (var i = 0; i < answer_buttons.length; i++) { + answer_buttons[i].addEventListener("click", function (ev) { + chooseAnswer(ev.target.getAttribute("data-prefix"), ev.target.getAttribute("data-answer")); + ev.preventDefault(); + }); + answer_buttons[i].addEventListener('keydown', function(ev) { + if (ev.key === "Enter" || ev.which === 13 || ev.keyCode === 13 || ev.key === ' ' || ev.which === 32 || ev.keyCode === 32) { + chooseAnswer(ev.target.getAttribute("data-prefix"), ev.target.getAttribute("data-answer")); + ev.preventDefault(); + } + }); + } + document.querySelector(".captcheck_alt_question_button[data-prefix=\"" + idp + "\"]").addEventListener("click", function (ev) { + switchMode(ev.target.getAttribute("data-prefix")); + ev.preventDefault(); + }); + document.querySelector(".captcheck_alt_question_button[data-prefix=\"" + idp + "\"]").addEventListener('keydown', function(ev) { + if (ev.key === "Enter" || ev.which === 13 || ev.keyCode === 13 || ev.key === ' ' || ev.which === 32 || ev.keyCode === 32) { + switchMode(ev.target.getAttribute("data-prefix")); + ev.preventDefault(); + } + }); } else { /* Add error message */ captcha.innerHTML = "There was a problem loading the CAPTCHA."; diff --git a/index.php b/index.php index 207fe1c..e025839 100644 --- a/index.php +++ b/index.php @@ -1,2 +1,22 @@ - +Captcheck Sample Form + + + +
+ + +
+
+ +
+ +
+ +
+ + +
+
+ +