/************************************************************************ ************************************************************************* @Name : QapTcha - jQuery Plugin @Revison : 1.0 @Date : 26/01/2011 @Author: Surrel Mickael (www.myjqueryplugins.com - www.msconcept.fr) @License : Open Source - MIT License : http://www.opensource.org/licenses/mit-license.php ************************************************************************** *************************************************************************/ jQuery.QapTcha = { build : function(options) { var defaults = { txtLock : 'Locked : form can\'t be submited', txtUnlock : 'Unlocked : form can be submited', disabledSubmit : 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',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({ containment: bgSlider, axis:'x', stop: function(event,ui){ if(ui.position.left > 150) { Slider.draggable('disable').css('cursor','default'); inputQapTcha.val(""); TxtStatus.css({color:'#307F1F'}).text(opts.txtUnlock); Icons.css('background-position', '-16px 0'); if(opts.disabledSubmit) form.find('input[type=\'submit\']').removeAttr('disabled'); } } }); 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;