/************************************************************************ ************************************************************************* @Name : QapTcha - jQuery Plugin @Revison : 2.5 @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 : '已鎖 : 請先將此欄向左移解鎖', txtUnlock : '已解鎖 : 你可以送出資訊' }; 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 **/ form.find('input[name=\'submitme\']').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 > 90) { $.post('func_getqaptcha_click.jsp',{ action : 'qaptcha', id_no: $('#id_no').val() }, function(data1) { data=getJSON(data1); if(data.error=='false') { Slider.draggable('disable').css('cursor','default'); inputQapTcha.val(""); TxtStatus.text(opts.txtUnlock).addClass('dropSuccess').removeClass('dropError'); Icons.css('background-position', '-16px 0'); bgSlider.css('background-position', '0 -44px'); form.find('input[name=\'submitme\']').removeAttr('disabled'); } },'html'); } } }); 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;