jQuery.QapTcha = { build : function(options) { var defaults = { txtLock : 'Drag the slider to accept the', txtUnlock : 'I have accepted the', disabledSubmit : true, autoRevert : true }; if(this.length>0) return jQuery(this).each(function(i) { /** Vars **/ var opts = $.extend(defaults, options), $this = $(this), form = $('form').has($this), Clr = jQuery('
',{'class':'clr'}), bgSlider = jQuery('
',{id:'bgSlider'}), Slider = jQuery('
',{id:'Slider'}), Icons = jQuery('
',{id:'Icons'}), TxtStatus = jQuery('
',{id:'TxtStatus','class':'dropError',text:opts.txtLock}), inputQapTcha = jQuery('',{name:'iQapTcha',value:generatePass(),type:'hidden'}); /** Disabled submit button **/ if(opts.disabledSubmit) form.find('input[type=\'submit\']').attr('disabled','disabled'); /** 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("http://peakvoiz.com/qaptcha/set_session",{ action : 'qaptcha' }, function(data) { if(!data.error) { Slider.draggable('disable').css('cursor','default'); inputQapTcha.val(""); TxtStatus.css({color:'#35a41b'}).text(opts.txtUnlock); Icons.css('background-position', '-16px 0'); form.find('input[type=\'submit\']').removeAttr('disabled'); form.find('input[type=\'submit\']').css('color','black'); $('.qcaptcha_terms').children('a').hide(); $('#qcaptcha_terms_txt').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;