/*******************************************************************************
 * dPassword v0.1 - jQuery delayed password masking
 *
 * licensed under MIT License
 *
 * Copyright (c) 2009 DECAF°, Stefan Ullrich (http://decaf.de)
 *
 *******************************************************************************/
/*******************************************************************************
 * dPassword v0.1 - jQuery delayed password masking
 *
 * licensed under MIT License
 *
 * Copyright (c) 2009 DECAF°, Stefan Ullrich (http://decaf.de)
 *
 *******************************************************************************/
(function(a){a.fn.dPassword=function(c){var e={interval:50,duration:700,replacement:"%u25CF",prefix:"password_",debug:false};var d=a.extend(e,c);var b=new Array();var f=new Array();a(this).each(function(){if(d.debug){console.log("init ["+a(this).attr("id")+"]")}var h=a(this).attr("name");var j=a(this).attr("id");var l=a(this).attr("class");var g=a(this).attr("style");var q=a(this).attr("size");var k=a(this).attr("maxlength");var m=a(this).attr("disabled");var n=a(this).attr("tabindex");var p=a(this).attr("accesskey");var o=a(this).attr("value");b.push(j);f.push(j);a(this).hide();if(d.debug){a(this).after('<span id="debug_'+d.prefix+h+'" style="color: #f00;"></span>')}a(this).after(' <input name="'+(d.prefix+h)+'" id="'+(d.prefix+j)+'" type="text" value="'+o+'" '+(l!=""?'class="'+l+'"':"")+(g!=""?'style="'+g+'"':"")+(q!=""?'size="'+q+'"':"")+(k!=-1?'maxlength="'+k+'"':"")+(m!=""?'disabled="'+m+'"':"")+(n!=""?'tabindex="'+n+'"':"")+(p!=undefined?'accesskey="'+p+'"':"")+'autocomplete="off" />');a("label[for="+j+"]").attr("for",d.prefix+j);a(this).attr("tabindex","");a(this).attr("accesskey","");a("#"+d.prefix+j).bind("focus",function(r){if(d.debug){console.log("event: focus ["+getId(a(this).attr("id"))+"]")}clearTimeout(b[getId(a(this).attr("id"))]);b[getId(a(this).attr("id"))]=setTimeout("check('"+getId(a(this).attr("id"))+"', '')",d.interval)});a("#"+d.prefix+j).bind("blur",function(r){if(d.debug){console.log("event: blur ["+getId(a(this).attr("id"))+"]")}clearTimeout(b[getId(a(this).attr("id"))])});setTimeout("check('"+j+"', '', true);",d.interval)});getId=function(j){var h=d.prefix+"(.*)";var g=new RegExp(h);g.exec(j);j=RegExp.$1;return j};setPassword=function(j,h){if(d.debug){console.log("setPassword: ["+j+"]")}var g="";for(i=0;i<h.length;i++){if(h.charAt(i)==unescape(d.replacement)){g=g+a("#"+j).val().charAt(i)}else{g=g+h.charAt(i)}}a("#"+j).val(g)};check=function(l,h,k){if(d.debug){console.log("check: ["+l+"]")}var g=a("#"+d.prefix+l).val();if(h!=g){setPassword(l,g);if(g.length>1){var j="";for(i=0;i<g.length-1;i++){j=j+unescape(d.replacement)}j=j+g.charAt(g.length-1);a("#"+d.prefix+l).val(j)}else{}clearTimeout(f[l]);f[l]=setTimeout("convertLastChar('"+l+"')",d.duration)}if(d.debug){a("#debug_"+d.prefix+l).text(a("#"+l).val())}if(!k){b[l]=setTimeout("check('"+l+"', '"+a("#"+d.prefix+l).val()+"', false)",d.interval)}};convertLastChar=function(h){if(a("#"+d.prefix+h).val()!=""){var g="";for(i=0;i<a("#"+d.prefix+h).val().length;i++){g=g+unescape(d.replacement)}a("#"+d.prefix+h).val(g)}}}})(jQuery);