vitnet

QapTcha.jquery.js

Nov 5th, 2014
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.42 KB | None | 0 0
  1. jQuery.QapTcha = {
  2.     build : function(options) {
  3.         var defaults = {
  4.             txtLock : 'Заблокировано : перетащите ползунок',
  5.             txtUnlock : 'Разблокировано : форма может быть использована',
  6.             disabledSubmit : true,
  7.             autoRevert : false,
  8.             PHPfile : dle_root + 'engine/ajax/qaptcha.php'
  9.         };  
  10.        
  11.         if(this.length>0) return $(this).each(function(i) {
  12.             /** Vars **/
  13.             var opts         = $.extend(defaults, options),      
  14.                 $this        = $(this),
  15.                 form         = $('form').has($this),
  16.                 Clr          = $('<div>',{'class':'clr'}),
  17.                 bgSlider     = $('<div>',{id:'bgSlider'}),
  18.                 Slider       = $('<div>',{id:'Slider'}),
  19.                 Icons        = $('<div>',{id:'Icons'}),
  20.                 TxtStatus    = $('<div>',{id:'TxtStatus','class':'dropError',text:opts.txtLock}),
  21.                 inputQapTcha = $('<input>',{name:'qaptcha',value:generatePass(),type:'hidden',id:'qaptcha'});
  22.            
  23.             /** Disabled submit button **/
  24.             if(opts.disabledSubmit) form.find('button[type=\'submit\']').attr('disabled','disabled');
  25.             if(opts.disabledSubmit) form.find('textarea[name=\'comments\']').attr('disabled','disabled');
  26.             if(opts.disabledSubmit) form.find('textarea[name=\'addcomments\']').attr('disabled','disabled');
  27.             if(opts.disabledSubmit) form.find('textarea[name=\'short_story\']').attr('disabled','disabled');
  28.             if(opts.disabledSubmit) form.find('input[name=\'email\']').attr('disabled','disabled');
  29.             if(opts.disabledSubmit) form.find('input[name=\'title\']').attr('disabled','disabled');
  30.             if(opts.disabledSubmit) $('#download-popup').find('.attachment').hide();
  31.            
  32.             /** Construct DOM **/
  33.             bgSlider.appendTo($this);
  34.             Icons.insertAfter(bgSlider);
  35.             Clr.insertAfter(Icons);
  36.             TxtStatus.insertAfter(Clr);
  37.             inputQapTcha.appendTo($this);
  38.             Slider.appendTo(bgSlider);
  39.             $this.show();
  40.            
  41.             Slider.draggable({
  42.                 revert: function(){
  43.                     if(opts.autoRevert) {
  44.                         if(parseInt(Slider.css("left")) > 150) return false;
  45.                         else return true;
  46.                     }
  47.                 },
  48.                 containment: bgSlider,
  49.                 axis:'x',
  50.                 stop: function(event,ui){
  51.                     if(ui.position.left > 150) {
  52.                         // set the SESSION iQaptcha in PHP file
  53.                         $.post(opts.PHPfile, {action : 'qaptcha'}, function(data) {
  54.                             if(!data.error) {
  55.                                 Slider.draggable('disable').css('cursor','default');
  56.                                 inputQapTcha.val("");
  57.                                 TxtStatus.text(opts.txtUnlock).addClass('dropSuccess').removeClass('dropError');
  58.                                 Icons.css('background-position', '-16px 0');
  59.                                 form.find('button[type=\'submit\']').removeAttr('disabled');
  60.                                 form.find('textarea[name=\'comments\']').removeAttr('disabled');
  61.                                 form.find('input[name=\'editorcomm\']').removeAttr('disabled');
  62.                                 form.find('textarea[name=\'short_story\']').removeAttr('disabled');
  63.                                 form.find('input[name=\'email\']').removeAttr('disabled');
  64.                                 form.find('input[name=\'title\']').removeAttr('disabled');
  65.                                 $('#download-popup').find('.attachment').show();
  66.                             }
  67.                         }, 'json');
  68.                     }
  69.                 }
  70.             });
  71.            
  72.             function generatePass() {
  73.                 var chars = 'azertyupqsdfghjkmwxcvbn23456789AZERTYUPQSDFGHJKMWXCVBN';
  74.                 var pass  = '';
  75.                 for(i=0; i<10; i++) {
  76.                     var wpos = Math.round(Math.random()*chars.length);
  77.                     pass += chars.substring(wpos,wpos+1);
  78.                 }
  79.                 return pass;
  80.             }
  81.            
  82.         });
  83.     }
  84. };
  85. jQuery.fn.QapTcha = jQuery.QapTcha.build;
Advertisement
Add Comment
Please, Sign In to add comment