You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.4 KiB
73 lines
2.4 KiB
/*
|
|
Anti-spam plugin
|
|
No spam in comments. No captcha.
|
|
wordpress.org/plugins/anti-spam/
|
|
*/
|
|
|
|
"use strict";
|
|
(function() {
|
|
function anti_spam_init() {
|
|
|
|
var i,
|
|
len,
|
|
elements,
|
|
answer = '',
|
|
current_year = new Date().getFullYear(),
|
|
dynamic_control;
|
|
|
|
elements = document.querySelectorAll('.antispam-group');
|
|
len = elements.length;
|
|
for (i = 0; i < len; i++) { // hide inputs from users
|
|
elements[i].style.display = 'none';
|
|
}
|
|
|
|
elements = document.querySelectorAll('.antispam-control-a');
|
|
if ((elements) && (elements.length > 0)) { // get the answer
|
|
answer = elements[0].value;
|
|
}
|
|
|
|
elements = document.querySelectorAll('.antispam-control-q');
|
|
len = elements.length;
|
|
for (i = 0; i < len; i++) { // set answer into other input instead of user
|
|
elements[i].value = answer;
|
|
}
|
|
|
|
// clear value of the empty input because some themes are adding some value for all inputs
|
|
elements = document.querySelectorAll('.antispam-control-e');
|
|
len = elements.length;
|
|
for (i = 0; i < len; i++) {
|
|
elements[i].value = '';
|
|
}
|
|
|
|
//dynamic_control = '<input type="text" name="antspm-d" class="antispam-control antispam-control-d" value="' + current_year + '" />';
|
|
dynamic_control = document.createElement('input');
|
|
dynamic_control.setAttribute('type', 'hidden');
|
|
dynamic_control.setAttribute('name', 'antspm-d');
|
|
dynamic_control.setAttribute('class', 'antispam-control antispam-control-d');
|
|
dynamic_control.setAttribute('value', current_year);
|
|
|
|
// add input for every comment form if there are more than 1 form with IDs: comments, respond or commentform
|
|
elements = document.querySelectorAll('form');
|
|
len = elements.length;
|
|
for (i = 0; i < len; i++) {
|
|
if ( (elements[i].id === 'comments') || (elements[i].id === 'respond') || (elements[i].id === 'commentform') ) {
|
|
var class_index = elements[i].className.indexOf('anti-spam-form-processed');
|
|
if ( class_index == -1 ) { // form is not yet js processed
|
|
//elements[i].innerHTML += dynamic_control; // not working
|
|
elements[i].appendChild(dynamic_control);
|
|
elements[i].className = elements[i].className + ' anti-spam-form-processed';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (document.addEventListener) {
|
|
document.addEventListener('DOMContentLoaded', anti_spam_init, false);
|
|
}
|
|
|
|
// set 1 second timeout for having form loaded and adding support for browsers which does not support 'DOMContentLoaded' listener
|
|
setTimeout(function () {
|
|
anti_spam_init();
|
|
}, 1000);
|
|
|
|
})();
|