// colour_code_captcha.js // RJM Programming // May, 2024 // Use via // Thanks to Mondrian and Pixabay at https://pixabay.com/illustrations/mondrian-red-blue-yellow-1504681/ var formelemofinterest=null, canvascaptcha=null, imgcaptcha=null, spancaptcha=null, submitcaptcha=null, iandcwidth=0, iandcheight=0, canvascaptchacontext=null; var mcollist=['#000000', '#ffffff', '#ffff00', '#0000ff', '#f20d0d'], mcolrand=-1; var oldOsHandler=null, overlaybrect=null, overlaybo=null; var dislist=[], theformih='', ishd=false, hasos=false, noneblock='none'; function ccc_rgbToHex(r, g, b) { // thanks to https://stackoverflow.com/questions/6735470/get-pixel-color-from-canvas-on-mousemove if (r > 255 || g > 255 || b > 255) throw 'Invalid color component'; return ((r << 16) | (g << 8) | b).toString(16); } function checkcaptcha(ev) { var ccc_pos3=-1, ccc_pos4=-1, ii=0; ev.stopPropagation(); if (ev.touches) { if (ev.touches[0].pageX) { ccc_pos3 = ev.touches[0].pageX; ccc_pos4 = ev.touches[0].pageY; } else { ccc_pos3 = ev.touches[0].clientX; ccc_pos4 = ev.touches[0].clientY; } //console.log('ccc_pos3 = ' + ccc_pos3 + ',ccc_pos4 = ' + ccc_pos4); } else if (ev.clientX || ev.clientY) { ccc_pos3 = ev.clientX; ccc_pos4 = ev.clientY; //console.log('ccc_pos3 = ' + ccc_pos3 + ' ,ccc_pos4 = ' + ccc_pos4); } else { ccc_pos3 = ev.pageX; ccc_pos4 = ev.pageY; //console.log('ccc_pos3 = ' + ccc_pos3 + ', ccc_pos4 = ' + ccc_pos4); } if (canvascaptchacontext) { var ccc_ctyqrect=ev.target.getBoundingClientRect(); //document.title=('x=' + eval(ccc_pos3 - ctyqrect.left) + ' and y=' + eval(ccc_pos4 - ctyqrect.top)); var myp = canvascaptchacontext.getImageData(Math.round(eval(ccc_pos3 - ccc_ctyqrect.left)), Math.round(eval(ccc_pos4 - ccc_ctyqrect.top)), 1, 1).data; var myhex = ('#' + ('000000' + ccc_rgbToHex(myp[0], myp[1], myp[2])).slice(-6)).toLowerCase(); imgcaptcha.setAttribute('data-clickedcol', '' + myhex); //alert('here clicking ' + submitcaptcha.outerHTML + imgcaptcha.getAttribute('data-clickedcol') + ' vs ' + mcollist[eval('' + formelemofinterest.getAttribute('data-need'))]); if (('' + imgcaptcha.getAttribute('data-clickedcol')).replace('#','').toLowerCase() == mcollist[eval('' + formelemofinterest.getAttribute('data-need'))].replace('#','').toLowerCase()) { //alert('Here clicking ' + submitcaptcha.outerHTML + imgcaptcha.getAttribute('data-clickedcol') + ' vs ' + mcollist[eval('' + formelemofinterest.getAttribute('data-need'))]); if (document.getElementById('myoverlaybo')) { document.getElementById('myoverlaybo').style.display='none'; } spancaptcha.style.display='none'; imgcaptcha.style.display='none'; //alert('huh?'); document.getElementById('cstuff').style.display='none'; //alert('hu3h?'); submitcaptcha.style.display='block'; if (eval('' + dislist.length) > 0) { for (ii=0; ii 0) { formelemofinterest=farris[0]; if (!navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { formelemofinterest.style.visibility='hidden'; ishd=true; } if (formelemofinterest.innerHTML.indexOf('')[0] + '>'; farris=document.getElementsByTagName('canvas'); for (ifrarris=0; ifarris')[0] + '>'; farris=document.getElementsByTagName('canvas'); for (ifrarris=0; ifarris 800) { canvascaptcha.width=iandcwidth; canvascaptcha.height=iandcheight; } else { canvascaptcha.width=800; canvascaptcha.height=Math.round(newcimgis.height * 800 / newcimgis.width); } canvascaptchacontext=canvascaptcha.getContext('2d'); canvascaptchacontext.drawImage(newcimgis, 0, 0, newcimgis.width, newcimgis.height, 0, 0, canvascaptcha.width, canvascaptcha.height); canvascaptcha.setAttribute('data-initialized', 'y'); mcolrand=eval(1 + Math.floor(Math.random() * eval(-1 + eval('' + mcollist.length)))); if (formelemofinterest.innerHTML.replace(/\"/g,'').replace(/\'/g,'').indexOf(' type=submit') == -1) { formelemofinterest.innerHTML+='


Click below on same colour as background of this text.
On success image disappears and you can retry.


'; if (ishd) { formelemofinterest.style.visibility='visible'; } submitcaptcha=document.getElementById('subcaptcha'); } else { //alert(4); if (formelemofinterest.innerHTML.indexOf(' type="submit"') != -1) { formelemofinterest.style.visibility='hidden'; ishd=true; hasos=true; vscanvasoh='')[0] + '>'; farris=document.getElementsByTagName('input'); for (ifrarris=0; ifarris')[0] + '>'; farris=document.getElementsByTagName('input'); for (ifrarris=0; ifarris')[0] + '>'; farris=document.getElementsByTagName('input'); for (ifrarris=0; ifarrisClick below on same colour as background of this text.
On success image disappears and you can retry.

'; if (ishd) { formelemofinterest.style.visibility='visible'; } } formelemofinterest.setAttribute('data-need', '' + mcolrand); imgcaptcha=document.getElementById('imgcaptcha'); spancaptcha=document.getElementById('spancaptcha'); if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { imgcaptcha.inert=false; } if (formelemofinterest.outerHTML.indexOf(' onsubmit=') == -1) { formelemofinterest.onsubmit=function(){ return realonsubmitreturn(''); }; } else if (formelemofinterest.outerHTML.indexOf(' onsubmit="') != -1) { osbit=formelemofinterest.outerHTML.split(' onsubmit="')[1].split('"')[0]; if (osbit.indexOf('onsubmitreturn(') == -1) { oldOsHandler=formelemofinterest.onsubmit; formelemofinterest.setAttribute('data-wasos', osbit); if (11 == 11) { spancaptcha.style.display='inline'; imgcaptcha.style.display='block'; if (!submitcaptcha || 1== 1) { for (ifrarris=0; ifarris'; overlaybo=document.getElementById('myverlaybo'); } else if (1 == 1) { //alert('1:' + submitcaptcha.id); overlaybrect=document.getElementById('mysub').getBoundingClientRect(); formelemofinterest.innerHTML+=''; overlaybo=document.getElementById('myverlaybo'); //submitcaptcha.onmouseover=function(event){ document.title=('' + event.target.id); return realonsubmitreturn(''); }; //alert('11:' + submitcaptcha.id); submitcaptcha.ontouchdown=function(event){ return realonsubmitreturn(''); }; //alert('111:' + submitcaptcha.id + ' ' + submitcaptcha.outerHTML); } else { formelemofinterest.onsubmit=function(event){ if (realonsubmitreturn()) { if (oldOsHandler){ oldOsHandler(); } } else { return false; } }; } } } else if (formelemofinterest.outerHTML.indexOf(" onsubmit='") != -1) { osbit=formelemofinterest.outerHTML.split(" onsubmit='")[1].split("'")[0]; if (osbit.indexOf('onsubmitreturn(') == -1) { oldOsHandler=formelemofinterest.onsubmit; formelemofinterest.setAttribute('data-wasos', osbit); if (11 == 11) { spancaptcha.style.display='inline'; imgcaptcha.style.display='block'; if (!submitcaptcha && overlaybrect == null) { for (ifrarris=0; ifarris'; overlaybo=document.getElementById('myverlaybo'); } else if (1 == 1) { //alert('' + submitcaptcha.id); submitcaptcha.onmousedown=function(event){ return realonsubmitreturn(''); }; submitcaptcha.ontouchdown=function(event){ return realonsubmitreturn(''); }; } else { formelemofinterest.onsubmit=function(event){ if (realonsubmitreturn()) { if (oldOsHandler){ oldOsHandler(); } } else { return false; } }; } } } else if (formelemofinterest.outerHTML.indexOf(' onsubmit=') != -1) { osbit=formelemofinterest.outerHTML.split(' onsubmit=')[1].split(' ')[0]; if (osbit.indexOf('onsubmitreturn(') == -1) { oldOsHandler=formelemofinterest.onsubmit; formelemofinterest.setAttribute('data-wasos', osbit); if (11 == 11) { spancaptcha.style.display='inline'; imgcaptcha.style.display='block'; if (!submitcaptcha || 2 == 2) { for (ifrarris=0; ifarris'; overlaybo=document.getElementById('myverlaybo'); } else if (1 == 1) { //alert('3:' + submitcaptcha.id); submitcaptcha.onmousedown=function(event){ return realonsubmitreturn(''); }; submitcaptcha.ontouchdown=function(event){ return realonsubmitreturn(''); }; } else { formelemofinterest.onsubmit=function(event){ if (realonsubmitreturn()) { if (oldOsHandler){ oldOsHandler(); } } else { return false; } }; } } } }; setTimeout(function(){ newcimgis.src='data:image/webp;base64,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'; }, 2000); } return false; } setTimeout(onsubmitreturn, 2000);