Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- jQuery.QapTcha = {
- build : function(options) {
- var defaults = {
- txtLock : 'Заблокировано : перетащите ползунок',
- txtUnlock : 'Разблокировано : форма может быть использована',
- disabledSubmit : true,
- autoRevert : false,
- PHPfile : dle_root + 'engine/ajax/qaptcha.php'
- };
- if(this.length>0) return $(this).each(function(i) {
- /** Vars **/
- var opts = $.extend(defaults, options),
- $this = $(this),
- form = $('form').has($this),
- Clr = $('<div>',{'class':'clr'}),
- bgSlider = $('<div>',{id:'bgSlider'}),
- Slider = $('<div>',{id:'Slider'}),
- Icons = $('<div>',{id:'Icons'}),
- TxtStatus = $('<div>',{id:'TxtStatus','class':'dropError',text:opts.txtLock}),
- inputQapTcha = $('<input>',{name:'qaptcha',value:generatePass(),type:'hidden',id:'qaptcha'});
- /** Disabled submit button **/
- if(opts.disabledSubmit) form.find('button[type=\'submit\']').attr('disabled','disabled');
- if(opts.disabledSubmit) form.find('textarea[name=\'comments\']').attr('disabled','disabled');
- if(opts.disabledSubmit) form.find('textarea[name=\'addcomments\']').attr('disabled','disabled');
- if(opts.disabledSubmit) form.find('textarea[name=\'short_story\']').attr('disabled','disabled');
- if(opts.disabledSubmit) form.find('input[name=\'email\']').attr('disabled','disabled');
- if(opts.disabledSubmit) form.find('input[name=\'title\']').attr('disabled','disabled');
- if(opts.disabledSubmit) $('#download-popup').find('.attachment').hide();
- /** Construct DOM **/
- bgSlider.appendTo($this);
- Icons.insertAfter(bgSlider);
- Clr.insertAfter(Icons);
- TxtStatus.insertAfter(Clr);
- inputQapTcha.appendTo($this);
- Slider.appendTo(bgSlider);
- $this.show();
- Slider.draggable({
- revert: function(){
- if(opts.autoRevert) {
- if(parseInt(Slider.css("left")) > 150) return false;
- else return true;
- }
- },
- containment: bgSlider,
- axis:'x',
- stop: function(event,ui){
- if(ui.position.left > 150) {
- // set the SESSION iQaptcha in PHP file
- $.post(opts.PHPfile, {action : 'qaptcha'}, function(data) {
- if(!data.error) {
- Slider.draggable('disable').css('cursor','default');
- inputQapTcha.val("");
- TxtStatus.text(opts.txtUnlock).addClass('dropSuccess').removeClass('dropError');
- Icons.css('background-position', '-16px 0');
- form.find('button[type=\'submit\']').removeAttr('disabled');
- form.find('textarea[name=\'comments\']').removeAttr('disabled');
- form.find('input[name=\'editorcomm\']').removeAttr('disabled');
- form.find('textarea[name=\'short_story\']').removeAttr('disabled');
- form.find('input[name=\'email\']').removeAttr('disabled');
- form.find('input[name=\'title\']').removeAttr('disabled');
- $('#download-popup').find('.attachment').show();
- }
- }, 'json');
- }
- }
- });
- function generatePass() {
- var chars = 'azertyupqsdfghjkmwxcvbn23456789AZERTYUPQSDFGHJKMWXCVBN';
- var pass = '';
- for(i=0; i<10; i++) {
- var wpos = Math.round(Math.random()*chars.length);
- pass += chars.substring(wpos,wpos+1);
- }
- return pass;
- }
- });
- }
- };
- jQuery.fn.QapTcha = jQuery.QapTcha.build;
Advertisement
Add Comment
Please, Sign In to add comment