var $keyboard=new Object(); $keyboard.name="keyboard"; $keyboard.hidetimeout=null; $keyboard.object=null; $keyboard.input=null; $keyboard.lowercase=true; $keyboard.disabled=false; $keyboard.selected=false; $keyboard.prevKeys=["~","!","@","#","$","%","^","&","*","(",")","_","+","|","-","`"]; $keyboard.nextKeys=["=","\\","{","}","q","w","e","r","t","y","u","i","o","p","[","]","<",">","?","a","s","d","f","g","h","j","k","l","'",",",".","/","chardelete","z","x","c","v","b","n","m",":",'"',";"," ","charswitch"]; $keyboard.numbers=["1","2","3","4","5","6","7","8","9","0"]; $keyboard.verify_blank_error="密码键盘资料不完整."; //Ajax validate 2009-12-31 $keyboard.oldvalue=null; $keyboard.maxlength=20; $keyboard.show=function (el){ if(this.disabled){ return; } this.addListener(); if(this.input!=el&&this.object!=null){ this.hidden(); } this.input=el; el.readOnly=true; setTimeout("$keyboard.display()",10); //Ajax validate 2009-12-31 try{ this.oldvalue=el.value; if(jQuery(el).attr("maxlength")!=null && jQuery(el).attr("maxlength")!="" && jQuery(el).attr("maxlength")>0){ $keyboard.maxlength = jQuery(el).attr("maxlength"); } }catch(e){ $keyboard.maxlength = 20; this.oldvalue = el.value; } }; $keyboard.addListener=function (){ document.removeEvent("keyup",this.fn); document.removeEvent("click",this.fn); this.fn=function (event){ $keyboard.remove(event); }; document.addEvent("keyup",this.fn); document.addEvent("click",this.fn); }; $keyboard.hide=function (el){ var key=$(this.name+el.id); if(!$defined(key)){ alert(this.verify_blank_error); } this.hidetimeout=setTimeout("$keyboard.hidden()",100); this.object=key; this.input=el; }; $keyboard.hidden=function (){ this.object.style.display="none"; this.disabled=false; this.input.readOnly=false; //Ajax validate 2009-12-31 try{ if(this.oldvalue!=null){ //如果有校验了 if(this.oldvalue != this.input.value){ if(jQuery(this.input).validateSelf){ jQuery(this.input).validateSelf(); } }else{ //数据无变化不做处理 } } this.oldvalue=null; }catch(e){alert(e.message)} }; $keyboard.display=function (){ if(this.hidetimeout!=null){ $clear(this.hidetimeout); } var key=$(this.name+this.input.id); var ns=this.numbers; var format=this.input.getAttribute("pa_keyboard"); if(format==null){ format="random"; }; if(!$defined(key)||"random".equalsIgnoreCase(format)){ if("random".equalsIgnoreCase(format)){ ns=this.random(ns); }if($defined(key)){ key.style.display=""; }else { var event=new Element(this.input); var coord=event.getCoordinates(); var x=(coord.right-coord.width-80)+"px"; var y=(coord.top+coord.height)+"px"; key=new Element("div",{ styles:{ left:x,top:y,position:"absolute",zIndex:1000 } }).addClass(this.name).injectInside(document.body); key.onselectstart=function (){ return false; }; key.onselect=function (){ document.selection.empty(); }; key.id=this.name+this.input.id; key.addClass(this.name); } this.object=key; bgiframe(key); var html='
"; key.innerHTML=html; return; } key.style.display=""; this.object=key; if(this.name.equals(key.className)){ return ; } }; $keyboard.charswitch=function (el){ var ul=$parent(el,"ul"); if(ul==null||!$defined(ul.childNodes)){ return ; }for(var j=0;j= $keyboard.maxlength){ return; } var e=new Element(el); this.input.value+=e.getText(); }; $keyboard.switchkey=function (){ this.disabled=true; this.input.readOnly=false; this.input.focus(); this.hidetimeout=window.setTimeout("$keyboard.hidden();",100); return false; }; $keyboard.chardelete=function (){ this.selected=true; var v=this.input.value; var len=v.length; if(len>0){ this.input.value=v.substr(0,len-1); } }; $keyboard.remove=function (e){ var event=new Event(e); if($defined(event.target.tagName)&&"input".equalsIgnoreCase(event.target.tagName)){ if(event.target==this.input){ return ; } }if(this.parent(event.target)==this.object){ return ; } this.hidetimeout=window.setTimeout("$keyboard.hidden();",100); }; $keyboard.parent=function (el){ if(el==null){ return null; }else { if(el.nodeType==1&&el.tagName.equalsIgnoreCase("div")&&this.name.equals(el.className)){ return el; }else { return this.parent(el.parentNode); } } }; $keyboard.random=function (a){ var randomNum; var times=a.length; var ra=new Array(times); for(var i=0;i"); div.parentNode.insertBefore(iframe,div); } }