【JavaScript】中国建设很行使用的软键盘

来源:互联网 发布:spring java配置 编辑:程序博客网 时间:2024/04/27 19:21

 css/before_login.css

  1. #Page_content {
  2. width:860px;
  3. padding:0 20px;
  4. margin:0 auto;
  5. background:#fff;
  6. }
  7. #Header {
  8. background:url(../images5/blue/header_bg.gif) left top repeat-x;
  9. }
  10. #Page_left {
  11. width:660px;
  12. margin:12px 0 15px 0;
  13. float:left;
  14. }
  15. #Page_right {
  16. float:right;
  17. width:180px;
  18. margin:15px 0 15px 0;
  19. }
  20. #Footer {
  21. padding:5px 2px 20px 2px;
  22. text-align:left;
  23. color:#aaa;
  24. border-top:1px solid #eee;
  25. }
  26. .Area_title {
  27. border-top:2px solid #69c;
  28. padding:7px 2px 7px 0;
  29. font-size:13px;font-weight:bold;
  30. color:#004d99;
  31. margin-top:10px;
  32. }
  33. .Area_content {
  34. padding:3px 0 10px 0;
  35. }
  36. .Area_button {
  37. padding-left:90px;
  38. margin-top:7px;
  39. }
  40. .Area_button img {vertical-align:5px;}
  41. .float_left {float:left;}
  42. .float_right {float:right;}
  43. .content_title {
  44. color:#999;
  45. font-weight:bold;
  46. padding:16px 0 8px 0;
  47. }
  48. .relative {
  49. margin:7px 0 0 0;
  50. list-style:inside url(../images5/blue/icon_list.gif);
  51. background:transparent;
  52. padding:3px 0 0 0;
  53. border-top:2px solid #69c;
  54. }
  55. .relative li {
  56. margin:3px 0 0 0;
  57. padding:1px 0;
  58. font-weight:normal;
  59. color:#777;
  60. border-bottom:1px solid #ddd;
  61. }
  62. * { 
  63. margin:0; 
  64. padding:0; 
  65. body {
  66. background:#eee;
  67. }
  68. body,div,td,span,select,p {
  69. font:12px "宋体",Tahoma;
  70. color:#505050;
  71. }
  72. img {border:0;}
  73. a {
  74. color:#039;
  75. text-decoration:none;
  76. }
  77. a:hover {
  78. color:#b20;
  79. text-decoration:none;
  80. }
  81. input {
  82. font:12px "宋体",Tahoma;
  83. }
  84. input.button {
  85. color:#fff;
  86. background:#a74d4a url(../images5/blue/button_bg.gif) left top repeat-x;
  87. padding:4px 10px 1px 10px;
  88. margin-right:10px;
  89. border:0;
  90. cursor:hand;
  91. }
  92. input.button_dis {
  93. color:#fff;
  94. padding:4px 10px 1px 10px;
  95. margin-right:10px;
  96. border:0;
  97. cursor:hand;
  98. }
  99. ul {
  100. margin:0;
  101. list-style:outside url(../images5/blue/icon_list.gif);
  102. background:url(../images5/icon_ul.gif) left top no-repeat;
  103. padding-left:17px;
  104. color:#999;
  105. font-weight:bold;
  106. }
  107. li {
  108. margin:3px 0 0 0;
  109. padding:1px 0;
  110. font-weight:normal;
  111. color:#505050;
  112. }
  113. .clear {clear:both;}
  114. .top_margin {margin:46px 8px 0 0;}
  115. .text_bold {font-weight:bold;}
  116. .step_on .text_content {color:#555;}
  117. .text_content {padding:3px 8px;border-bottom:1px solid #eee;}
  118. .text_red {color:#b20;}
  119. a.text_red:hover {color:#777;} 
  120. .req {font-weight:bold;color:#b20;}
  121. .info {color:#777;}
  122. .dark {color:#555;}
  123. .text_big {font-size:14px;color:#444;line-height:20px;} 
  124. .big {font-size:14px;}
  125. .reg_flow {font-size:12px;font-weight:normal;color:#777;margin:16px 8px 12px 8px;padding:5px 0px 3px 20px;background:#f0f0f0;}
  126. .reg_title {
  127. background:url(../images5/icon_reg.gif) left top no-repeat;
  128. padding:4px 0 4px 26px;
  129. font-size:13px;font-weight:bold;
  130. color:#004d99;
  131. }
  132. .flow_focus {font-weight:bold;color:#b20;}
  133. .flow_undo {color:#777;}
  134. .flow_done {color:#777;}
  135. .image_safe {
  136. background:url(../images5/icon_safe_big.gif) left top no-repeat;
  137. padding-left:78px;
  138. }
  139. .text_success {
  140. background:#f0f7ff url(../images5/blue/icon_success.gif) 5px 50% no-repeat;
  141. border:1px solid #69c;
  142. padding:35px 10px 35px 134px;
  143. }
  144. .text_notice {
  145. background:#f0f7ff url(../images5/blue/icon_gantan.gif) 5px 50% no-repeat;
  146. border:1px solid #69c;
  147. padding:35px 10px 35px 134px;
  148. }
  149. .reg_info {
  150. background:#f0f7ff url(../images5/blue/icon_info.gif) 7px 50% no-repeat;
  151. border:1px solid #69c;
  152. padding:5px 5px 5px 45px;
  153. }
  154. .step_on .tip_off {
  155. border:1px solid #d0e0ef;
  156. background:#fff url(../images5/blue/arr_tip_off.gif) 4px 6px no-repeat;
  157. padding:4px 2px 1px 14px;
  158. color:#555;
  159. }
  160. .tip_off {
  161. background:#fff url(../images5/blue/arr_tip_off.gif) 4px 6px no-repeat;
  162. padding:5px 3px 2px 15px;
  163. color:#777;
  164. }
  165. .tip_on {
  166. border:1px solid #090;
  167. background:#e9fde9 url(../images5/blue/arr_tip_on.gif) 4px 6px no-repeat;
  168. padding:4px 3px 1px 14px;
  169. color:#444;
  170. }
  171. .tip_on img,
  172. .tip_off img{
  173. vertical-align:top;
  174. }
  175. .step_on {background:#f4f4f4;padding:0 10px;}
  176. .step_off {background:#fff;padding:0 10px;}
  177. .step_on .content_title {color:#444;}
  178. p {
  179. text-indent:2em;
  180. margin:6px 0;
  181. }
  182. .btn_letter {
  183. BORDER-RIGHT: #5C08B2;
  184. BORDER-TOP: #7b9ebd;
  185. FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff, EndColorStr=#DDDCDC);
  186. BORDER-LEFT: #7b9ebd;
  187. COLOR: black; 
  188. BORDER-BOTTOM: #5C08B2;
  189. color:#075BC3;
  190. }
  191. .btn_num {
  192. BORDER-RIGHT: #7EBF4F; 
  193. BORDER-TOP: #7EBF4F; 
  194. FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#B3D997);
  195. BORDER-LEFT: #7EBF4F;
  196. COLOR: black;
  197. BORDER-BOTTOM: #7EBF4F;
  198. }

js/ccblogin.js

  1. function aClock(){
  2.   var now=new Date();
  3.   var hour=now.getHours();
  4.   var min=now.getMinutes();
  5.   var sec=now.getSeconds();
  6.   var year=now.getYear();
  7.   var month=now.getMonth()+1;
  8.   var date=now.getDate();
  9.   var dateStr = year+"-"+month+"-"+date;
  10.   var timeStr = " " + hour;
  11.   timeStr+=((min<10)?":0":":")
  12.                   +min;
  13.   timeStr+=((sec<10)?":0":":")+sec;
  14.   document.all.clock_date.innerText = dateStr;
  15.   document.all.clock_time.innerText = timeStr;
  16.   clockId = setTimeout("aClock()",1000);
  17. }
  18. function autoCheck(){
  19.   var fm = document.forms[0];
  20.   var count = fm.elements.length;
  21.   var varStartDate = "";
  22.   for (var i = 0 ; i <count; i++){
  23.      //只检查:type=text的input、textarea、select
  24.      iftypeof fm[i]!='object' //对象
  25.             || !(
  26.             fm[i].tagName=='INPUT' && (fm[i].type.toUpperCase()=='TEXT' || fm[i].type.toUpperCase()=='PASSWORD')
  27.             || fm[i].tagName=='TEXTAREA'
  28.             || fm[i].tagName=='SELECT'
  29.             ) ) continue;
  30.      //只读、失效、设置为非自动检查的不检查
  31.      if( fm[i].readOnly || //只读
  32.           fm[i].disabled || //失效
  33.           ((typeof fm[i].autocheck) != "undefined" && fm[i].autocheck == "false") ){ //设置为非自动检查
  34.         continue;
  35.           }
  36.      var varTitle = fm[i].title;
  37.     //检查title
  38.     if((typeof varTitle) == "undefined" || varTitle == ""){
  39.       alert("系统错误!当前输入域没有定义title 属性!");
  40.       fm[i].focus();
  41.       return false;
  42.     }
  43.     //检查minLength属性
  44.     if( (typeof fm[i].minLength) == "undefined" || fm[i].minLength == "" ){
  45.       alert("系统错误!"+varTitle+"没有定义minLength属性!");
  46.       fm[i].focus();
  47.       return false;
  48.     }
  49.     if( fm[i].minLength>0){
  50.         if(getLength( trim(fm[i].value) )==0){
  51.             alert(varTitle+"不能为空!");
  52.         fm[i].focus();
  53.         return false;
  54.       }
  55.     else if(getLength( trim(fm[i].value) ) < fm[i].minLength){
  56.         alert(varTitle+"长度不够,不能少于"+fm[i].minLength+"个字符!");
  57.         fm[i].focus();
  58.         return false;
  59.     }
  60.     }
  61.      if(fm[i].tagName=='SELECT'continue;
  62.     //检查maxLength属性
  63.         if( ((typeof fm[i].maxLength) == "undefined" || fm[i].maxLength == "" || fm[i].maxLength == "2147483647")){
  64.           alert("系统错误!"+varTitle+"没有定义maxLength属性!");
  65.           fm[i].focus();
  66.           return false;
  67.         }
  68.     svalue=fm[i].value
  69.     if( fm[i].checkClass != "IsAmt"){
  70.         if( (getLength(trim(svalue)) > fm[i].maxLength)){
  71.             alert(varTitle+"长度过长,不能超过"+fm[i].maxLength+"个字符!");
  72.           fm[i].focus();
  73.           return false;
  74.         }
  75.     }
  76.      //数据类型
  77.      var classStr = fm[i].checkClass;
  78.      var varValue = fm[i].value;
  79.     //检查输入域数据类型
  80.     if( (typeof classStr) == "undefined" || classStr == "" ) continue;
  81.     //整型
  82.     if(classStr=='isInteger' && !isInteger(varValue)){
  83.         alert(varTitle+"只能输入整数!");
  84.        fm[i].focus();
  85.        return false;
  86.     }
  87.     //不为0的数字
  88.     if(classStr=='isInteger0' && !isPstInteger(varValue)){
  89.         alert(varTitle+"只能输入正整数!");
  90.        fm[i].focus();
  91.        return false;
  92.     }
  93.     //金额
  94.     if(classStr=='IsAmt'&&!IsAmt(i,varTitle)){
  95.        fm[i].focus();
  96.        return false;
  97.     }
  98.     //和当前日期比较
  99.     if( classStr=='IsOverStepToday' &&  trim(varValue)!='' && (!isDate(varValue) || varValue>getCurrentDate()) ){
  100.         alert(varTitle+"不能大于当前日期或日期输入不合法!");
  101.        fm[i].focus();
  102.        return false;
  103.     }
  104.     //和开始日期比较1
  105.     if( classStr=='CompareDate1' && trim(varValue)!='' &&  (!isDate(varValue) || varValue<fm[i-1].value) ){
  106.         alert(varTitle+"不能小于"+fm[i-1].title+"或日期输入不合法!");
  107.        fm[i].focus();
  108.        return false;
  109.     }
  110.     //和开始日期比较2
  111.     if( classStr=='CompareDate2' && trim(varValue)!='' && (!isDate(varValue) || varValue<=fm[i-1].value) ){
  112.         alert(varTitle+"必须大于"+fm[i-1].title+"或日期输入不合法!");
  113.        fm[i].focus();
  114.        return false;
  115.     }
  116. if( classStr=='isDate' && trim(varValue)!='' && (!isDate(varValue)) ){
  117.         alert(varTitle+"日期输入不合法!");
  118.        fm[i].focus();
  119.        return false;
  120.     }   
  121.  }
  122.     if((typeof fm['PAGE'])!="undefined") fm['PAGE'].value="1";
  123.     return true;
  124. }
  125. //获取字符的长度,考虑中文
  126. function getLength(inputValue){
  127.   var j = 0;
  128.   for (var i = 0;i< inputValue.length;i++){
  129.     if (inputValue.charAt(i) >"~")
  130.       j = j + 2
  131.     else
  132.       j = j + 1
  133.   }
  134.   return j;
  135. }
  136. function trim(srcstr){
  137.   return lTrim(rTrim(srcstr))
  138. }
  139. function lTrim(srcstr){
  140.   var ltnStr;
  141.   ltnStr="";
  142.   for (var i=0;i<srcstr.length;i++){
  143.     if (srcstr.charAt(i)!=" " && srcstr.charAt(i)!=" "){
  144.       ltnStr=srcstr.substr(i);
  145.       break;
  146.     }
  147.   }
  148.   return ltnStr;
  149. }
  150. function rTrim(srcstr){
  151.   var rtnStr;
  152.   rtnStr="";
  153.   for (var i=srcstr.length-1;i>=0;i--){
  154.     if (srcstr.charAt(i)!=" " && srcstr.charAt(i)!=" "){
  155.       rtnStr=srcstr.substring(0,i+1);
  156.       break;
  157.     }
  158.   }
  159.   return rtnStr;
  160. }
  161. function sizeChangeForAd(heigetValue) 
  162.     if(parent.document.all.ad!=null&&document!=null) {
  163.         if(arguments.length==1){
  164.             parent.document.all.ad.height=heigetValue;
  165.         }else{
  166.             parent.document.all.ad.height=document.body.scrollHeight; 
  167.         }
  168.     }
  169. }

cs/ccbsoftkeyboard.js

  1. var password1;
  2. window.onload=function (){  
  3.     password1=null
  4.     initCalc();     
  5. }
  6. var CapsLockValue=0;
  7. var checkSoftKey;
  8. var pIsPWD=false;
  9. var ps;
  10. var ifUseYinshe='1';
  11. var jiami=0;
  12. var keyjiami=0;
  13. var hidekeyboard=true;
  14. var ifjiami = false//设置键盘输入时是否需要加密,如果需要加密,则设为true,否则设为false
  15. var a=new Array([16]);
  16. a[0]='S';
  17. a[1]='0';
  18. a[2]='0';
  19. a[3]='0';
  20. a[4]='0';
  21. a[5]='0';
  22. a[6]='0';
  23. a[7]='0';
  24. a[8]='2';
  25. a[9]='7';
  26. a[10]='4';
  27. a[11]='6';
  28. a[12]='1';
  29. a[13]='3';
  30. a[14]='2';
  31. a[15]='5';
  32. var b=new Array([190]);
  33. b[0]='G';
  34. b[1]=' ';
  35. b[2]='R';
  36. b[3]='M';
  37. b[4]='W';
  38. b[5]='N';
  39. b[6]='u';
  40. b[7]='B';
  41. b[8]='v';
  42. b[9]='V';
  43. b[10]='=';
  44. b[11]='C';
  45. b[12]=',';
  46. b[13]='X';
  47. b[14]='M';
  48. b[15]='Z';
  49. b[16]='%';
  50. b[17]='L';
  51. b[18]='_';
  52. b[19]='K';
  53. b[20]='c';
  54. b[21]='J';
  55. b[22]='s';
  56. b[23]='H';
  57. b[24]='k';
  58. b[25]='G';
  59. b[26]='@';
  60. b[27]='F';
  61. b[28]='+';
  62. b[29]='D';
  63. b[30]='~';
  64. b[31]='S';
  65. b[32]='$';
  66. b[33]='A';
  67. b[34]='&';
  68. b[35]='P';
  69. b[36]='y';
  70. b[37]='O';
  71. b[38]='[';
  72. b[39]='I';
  73. b[40]='-';
  74. b[41]='U';
  75. b[42]='p';
  76. b[43]='Y';
  77. b[44]='V';
  78. b[45]='T';
  79. b[46]='*';
  80. b[47]='R';
  81. b[48]='K';
  82. b[49]='E';
  83. b[50]='U';
  84. b[51]='W';
  85. b[52]='w';
  86. b[53]='Q';
  87. b[54]=']';
  88. b[55]='/';
  89. b[56]='<';
  90. b[57]='.';
  91. b[58]='n';
  92. b[59]=',';
  93. b[60]='d';
  94. b[61]='?';
  95. b[62]='B';
  96. b[63]='>';
  97. b[64]='`';
  98. b[65]='<';
  99. b[66]='b';
  100. b[67]='m';
  101. b[68]='o';
  102. b[69]='n';
  103. b[70]='P';
  104. b[71]='b';
  105. b[72]='{';
  106. b[73]='v';
  107. b[74]='L';
  108. b[75]='c';
  109. b[76]='l';
  110. b[77]='x';
  111. b[78]='r';
  112. b[79]='z';
  113. b[80]='T';
  114. b[81]='/'';
  115. b[82]='?';
  116. b[83]=';';
  117. b[84]='8';
  118. b[85]='"';
  119. b[86]='h';
  120. b[87]=':';
  121. b[88]='Z';
  122. b[89]='l';
  123. b[90]='i';
  124. b[91]='k';
  125. b[92]='f';
  126. b[93]='j';
  127. b[94]='x';
  128. b[95]='h';
  129. b[96]='1';
  130. b[97]='g';
  131. b[98]='5';
  132. b[99]='f';
  133. b[100]='E';
  134. b[101]='d';
  135. b[102]='g';
  136. b[103]='s';
  137. b[104]='J';
  138. b[105]='a';
  139. b[106]='t';
  140. b[107]=']';
  141. b[108]='!';
  142. b[109]='[';
  143. b[110]='N';
  144. b[111]='}';
  145. b[112]='m';
  146. b[113]='{';
  147. b[114]='|';
  148. b[115]='p';
  149. b[116]='A';
  150. b[117]='o';
  151. b[118]='6';
  152. b[119]='i';
  153. b[120]='(';
  154. b[121]='u';
  155. b[122]=':';
  156. b[123]='y';
  157. b[124]='}';
  158. b[125]='t';
  159. b[126]='^';
  160. b[127]='r';
  161. b[128]='a';
  162. b[129]='e';
  163. b[130]='Y';
  164. b[131]='w';
  165. b[132]='7';
  166. b[133]='q';
  167. b[134]='/';
  168. b[135]='//';
  169. b[136]='>';
  170. b[137]='=';
  171. b[138]='O';
  172. b[139]='-';
  173. b[140]='Q';
  174. b[141]='0';
  175. b[142]='2';
  176. b[143]='9';
  177. b[144]=' ';
  178. b[145]='8';
  179. b[146]='X';
  180. b[147]='7';
  181. b[148]='S';
  182. b[149]='6';
  183. b[150]='z';
  184. b[151]='5';
  185. b[152]='0';
  186. b[153]='4';
  187. b[154]='e';
  188. b[155]='3';
  189. b[156]='H';
  190. b[157]='2';
  191. b[158]='3';
  192. b[159]='1';
  193. b[160]='D';
  194. b[161]='`';
  195. b[162]='I';
  196. b[163]='|';
  197. b[164]='#';
  198. b[165]='+';
  199. b[166]=';';
  200. b[167]='_';
  201. b[168]='q';
  202. b[169]=')';
  203. b[170]='/'';
  204. b[171]='(';
  205. b[172]='4';
  206. b[173]='*';
  207. b[174]='//';
  208. b[175]='&';
  209. b[176]='C';
  210. b[177]='^';
  211. b[178]='F';
  212. b[179]='%';
  213. b[180]='"';
  214. b[181]='$';
  215. b[182]='9';
  216. b[183]='#';
  217. b[184]='.';
  218. b[185]='@';
  219. b[186]='j';
  220. b[187]='!';
  221. b[188]=')';
  222. b[189]='~';
  223. function setVariables(){
  224.     
  225.     tablewidth=630; 
  226.     tableheight=20; 
  227.     if(navigator.appName=="Netscape"){
  228.         
  229.         horz=".left";       
  230.         vert=".top";        
  231.         docStyle="document.";       
  232.         styleDoc="";        
  233.         innerW="window.innerWidth";     
  234.         innerH="window.innerHeight";        
  235.         offsetX="window.pageXOffset";       
  236.         offsetY="window.pageYOffset";       
  237.         
  238.     }
  239.     else {
  240.         
  241.         horz=".pixelLeft";      
  242.         vert=".pixelTop";       
  243.         docStyle="";        
  244.         styleDoc=".style";      
  245.         innerW="document.body.clientWidth";     
  246.         innerH="document.body.clientHeight";        
  247.         offsetX="document.body.scrollLeft";     
  248.         offsetY="document.body.scrollTop";      
  249.         
  250.     }
  251.     
  252. }
  253. function checkLocation(){
  254.     
  255.     if(checkSoftKey){
  256.         
  257.         objectXY="softkeyboard";        
  258.         var availableX=eval(innerW);        
  259.         var availableY=eval(innerH);        
  260.         var currentX=eval(offsetX);     
  261.         var currentY=eval(offsetY);     
  262.         x=availableX-tablewidth+currentX;       
  263.         y=currentY;     
  264.         evalMove();     
  265.         
  266.     }
  267.     setTimeout("checkLocation()",0);    
  268.     
  269. }
  270. function evalMove(){
  271.     
  272.     eval(docStyle+objectXY+styleDoc+vert+"="+y);    
  273.     
  274. }
  275. self.onError=null;
  276. currentX=currentY=0;
  277. whichIt=null;
  278. lastScrollX=0;
  279. lastScrollY=0;
  280. NS=(document.layers)?1:0;
  281. IE=(document.all)?1:0;
  282. function heartBeat(){
  283.     
  284.     if(IE){
  285.         diffY=document.body.scrollTop;
  286.         diffX=document.body.scrollLeft;
  287.         
  288.     }
  289.     if(NS){
  290.         diffY=self.pageYOffset;
  291.         diffX=self.pageXOffset;
  292.         
  293.     }
  294.     if(diffY!=lastScrollY){
  295.         
  296.         percent=.1*(diffY-lastScrollY);     
  297.         if(percent>0)percent=Math.ceil(percent);        
  298.         else percent=Math.floor(percent);       
  299.         if(IE)document.all.softkeyboard.style.pixelTop+=percent;        
  300.         if(NS)document.softkeyboard.top+=percent;
  301.         
  302.         lastScrollY=lastScrollY+percent;
  303.         
  304.     }
  305.     if(diffX!=lastScrollX){
  306.         
  307.         percent=.1*(diffX-lastScrollX);     
  308.         if(percent>0)percent=Math.ceil(percent);        
  309.         else percent=Math.floor(percent);       
  310.         if(IE)document.all.softkeyboard.style.pixelLeft+=percent;       
  311.         if(NS)document.softkeyboard.left+=percent;      
  312.         lastScrollX=lastScrollX+percent;
  313.         
  314.     }
  315. }
  316. function checkFocus(x,y){
  317.     
  318.     stalkerx=document.softkeyboard.pageX;   
  319.     stalkery=document.softkeyboard.pageY;   
  320.     stalkerwidth=document.softkeyboard.clip.width;  
  321.     stalkerheight=document.softkeyboard.clip.height;    
  322.     if((x>stalkerx&&x<(stalkerx+stalkerwidth))&&(y>stalkery&&y<(stalkery+stalkerheight)))return true;   
  323.     else return false;
  324.     
  325. }
  326. function grabIt(e){
  327.     
  328.     checkSoftKey=false
  329.     if(IE){
  330.         
  331.         whichIt=event.srcElement;       
  332.         while(whichIt.id!=null&&whichIt.id.indexOf("softkeyboard")==-1){
  333.             
  334.             whichIt=whichIt.parentElement;          
  335.             if(whichIt==null){
  336.                 return true;
  337.                 
  338.             }
  339.         }
  340.         if(whichIt.style!=null){
  341.             
  342.             whichIt.style.pixelLeft=whichIt.offsetLeft;         
  343.             whichIt.style.pixelTop=whichIt.offsetTop;           
  344.             
  345.         }
  346.         currentX=(event.clientX+document.body.scrollLeft);      
  347.         currentY=(event.clientY+document.body.scrollTop);
  348.         
  349.         
  350.     }else {
  351.         
  352.         window.captureEvents(Event.MOUSEMOVE);      
  353.         if(checkFocus(e.pageX,e.pageY)){
  354.             
  355.             whichIt=document.softkeyboard;          
  356.             StalkerTouchedX=e.pageX-document.softkeyboard.pageX;            
  357.             StalkerTouchedY=e.pageY-document.softkeyboard.pageY;
  358.             
  359.         }
  360.     }
  361.     return true;
  362.     
  363. }
  364. function moveIt(e){
  365.     
  366.     if(whichIt==null){
  367.         return false;
  368.         
  369.     }
  370.     if(IE){
  371.         
  372.         if(whichIt.style!=null){
  373.             
  374.             newX=(event.clientX+document.body.scrollLeft);          
  375.             newY=(event.clientY+document.body.scrollTop);           
  376.             distanceX=(newX-currentX);
  377.             distanceY=(newY-currentY);          
  378.             currentX=newX;
  379.             currentY=newY;          
  380.             whichIt.style.pixelLeft+=distanceX;         
  381.             whichIt.style.pixelTop+=distanceY;          
  382.             if(whichIt.style.pixelTop<document.body.scrollTop)whichIt.style.pixelTop=document.body.scrollTop;           
  383.             if(whichIt.style.pixelLeft<document.body.scrollLeft)whichIt.style.pixelLeft=document.body.scrollLeft;           
  384.             if(whichIt.style.pixelLeft>document.body.offsetWidth-document.body.scrollLeft-whichIt.style.pixelWidth-20)whichIt.style.pixelLeft=document.body.offsetWidth-whichIt.style.pixelWidth-20;            
  385.             if(whichIt.style.pixelTop>document.body.offsetHeight+document.body.scrollTop-whichIt.style.pixelHeight-5)whichIt.style.pixelTop=document.body.offsetHeight+document.body.scrollTop-whichIt.style.pixelHeight-5;         
  386.             event.returnValue=false;            
  387.             
  388.         }
  389.         
  390.     }else {
  391.         
  392.         whichIt.moveTo(e.pageX-StalkerTouchedX,e.pageY-StalkerTouchedY);        
  393.         if(whichIt.left<0+self.pageXOffset)whichIt.left=0+self.pageXOffset;     
  394.         if(whichIt.top<0+self.pageYOffset)whichIt.top=0+self.pageYOffset;       
  395.         if((whichIt.left+whichIt.clip.width)>=(window.innerWidth+self.pageXOffset-17))whichIt.left=((window.innerWidth+self.pageXOffset)-whichIt.clip.width)-17;        
  396.         if((whichIt.top+whichIt.clip.height)>=(window.innerHeight+self.pageYOffset-17))whichIt.top=((window.innerHeight+self.pageYOffset)-whichIt.clip.height)-17;      
  397.         return false;
  398.         
  399.     }
  400.     return false;
  401.     
  402. }
  403. function dropIt(){
  404.     whichIt=null;   
  405.     if(NS)window.releaseEvents(Event.MOUSEMOVE);    
  406.     return true;
  407.     
  408. }
  409. if(NS){
  410.     window.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);    
  411.     window.onmousedown=grabIt;  
  412.     window.onmousemove=moveIt;  
  413.     window.onmouseup=dropIt;
  414.     
  415. }
  416. if(IE){
  417.     
  418.     document.onmousedown=grabIt;    
  419.     document.onmousemove=moveIt;    
  420.     document.onmouseup=dropIt;
  421.     
  422. }
  423. var style1="<style>";
  424. style1+=".btn_letter {BORDER-RIGHT: 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: 1px solid; PADDING-LEFT: 2px;FONT-SIZE: 14px; BORDER-LEFT: 1px solid; CURSOR: hand;PADDING-TOP: 1px; BORDER-BOTTOM: 1px solid; width:25px; height:20px;}";
  425. style1+=".btn_num {width:25px;BORDER-RIGHT:1px solid; PADDING-RIGHT: 1px; BORDER-TOP: 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; BORDER-LEFT: 1px solid; CURSOR: hand; PADDING-TOP: 1px; BORDER-BOTTOM: 1px solid;height:20px;}";
  426. style1+=".table_title {FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#B2DEF7, EndColorStr=#7AB7DA); height:26px;padding-top: 3px;}";
  427. style1+=".btn_input {BORDER-RIGHT: #2C59AA 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #2C59AA 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5); BORDER-LEFT: #2C59AA 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #2C59AA 1px solid}";
  428. style1+="</style>";
  429. document.write(style1);
  430. document.write("<DIV align=center id=/"softkeyboard/" name=/"softkeyboard/" style=/"position:absolute; left:0px; top:0px; width:400px; z-index:180;display:none/"><table id=/"CalcTable/" width=/"/" border=/"0/" align=/"center/" cellpadding=/"0/" cellspacing=/"0/" bgcolor=/"/"><FORM id=Calc name=Calc action=/"/" method=post autocomplete=/"off/"><tr><td class=/"table_title/" title=/"尊敬的客户:为了保证网上交易安全,建议使用密码输入器输入密码!/" align=/"right/" valign=/"middle/" bgcolor=/"/" style=/"cursor: default;height:30/"><INPUT type=hidden value=/"/" name=password><INPUT type=hidden value=ok name=action2> <font style=/"font-weight:bold; font-size:13px; color:#075BC3/">中国建设银行  密码输入器</font>                      <INPUT id=useKey class=/"btn_input/" type=button value=/"使用键盘输入/" bgtype=/"1/" onclick=/"password1.readOnly=0;password1.focus();closekeyboard();password1.value='';/"><span style=/"width:2px;/"></span></td></tr><tr align=/"center/"><td align=/"center/" bgcolor=/"#FFFFFF/"><table align=/"center/" width=/"%/" border=/"0/" cellspacing=/"1/" cellpadding=/"0/">/n<tr align=/"left/" valign=/"middle/"> /n<td> <input type=button value=/" ~ /"></td>/n<td> <input type=button value=/" ! /"></td>/n<td> <input type=button value=/" @ /"></td>/n<td> <input type=button value=/" # /"></td>/n<td> <input type=button value=/" $ /"></td>/n<td><input type=button value=/" % /"></td>/n<td><input type=button value=/" ^ /"></td>/n<td> <input type=button value=/" & /"></td>/n<td><input type=button value=/" * /"></td>/n<td><input type=button value=/" ( /"></td>/n<td><input type=button value=/" ) /"></td>/n<td><input type=button value=/" _ /"></td>/n<td> <input type=button value=/" + /"></td>/n<td><input type=button value=/" | /"></td>/n<td colspan=/"1/" rowspan=/"2/"> <input name=/"button10/" type=button value=/" 退格/" onclick=/"setpassvalue();/"  onDblClick=/"setpassvalue();/" style=/"width:100px;height:40px/"> /n</td>/n</tr>/n<tr align=/"left/" valign=/"middle/"> /n<td><input type=button value=/" ` /"></td>/n<td><input type=button bgtype=/"2/" name=/"button_number1/" value=/" 1 /"></td>/n<td> <input type=button bgtype=/"2/" name=/"button_number2/" value=/" 2 /"></td>/n<td> <input type=button bgtype=/"2/" name=/"button_number3/" value=/" 3 /"></td>/n<td> <input type=button bgtype=/"2/" name=/"button_number4/" value=/" 4 /"></td>/n<td> <input type=button bgtype=/"2/" name=/"button_number5/" value=/" 5 /"></td>/n<td> <input type=button bgtype=/"2/" name=/"button_number6/" value=/" 6 /"></td>/n<td> <input type=button bgtype=/"2/" name=/"button_number7/" value=/" 7 /"></td>/n<td> <input type=button bgtype=/"2/" name=/"button_number8/" value=/" 8 /"></td>/n<td> <input type=button bgtype=/"2/" name=/"button_number9/" value=/" 9 /"></td>/n<td> <input bgtype=/"2/"  name=/"button_number0/" type=button value=/" 0 /"></td>/n<td> <input type=button value=/" - /"></td>/n<td> <input type=button value=/" = /"></td>/n<td> <input type=button value=/" // /"></td>/n<td> </td>/n</tr>/n<tr align=/"left/" valign=/"middle/"> /n<td> <input type=button value=/" q /"></td>/n<td> <input type=button value=/" w /"></td>/n<td> <input type=button value=/" e /"></td>/n<td> <input type=button value=/" r /"></td>/n<td> <input type=button value=/" t /"></td>/n<td> <input type=button value=/" y /"></td>/n<td> <input type=button value=/" u /"></td>/n<td> <input type=button value=/" i /"></td>/n<td> <input type=button value=/" o /"></td>/n<td> <input name=/"button8/" type=button value=/" p /"></td>/n<td> <Input name=/"button9/" type=button value=/" { /"></td>/n<td> <input type=button value=/" } /"></td>/n<td> <input type=button value=/" [ /"></td>/n<td> <input type=button value=/" ] /"></td>/n<td><input name=/"button9/" type=button onClick=/"capsLockText();setCapsLock();/"  onDblClick=/"capsLockText();setCapsLock();/" value=/"切换大/小写/" style=/"width:100px;/"></td>/n</tr>/n<tr align=/"left/" valign=/"middle/"> /n<td> <input type=button value=/" a /"></td>/n<td> <input type=button value=/" s /"></td>/n<td> <input type=button value=/" d /"></td>/n<td> <input type=button value=/" f /"></td>/n<td> <input type=button value=/" g /"></td>/n<td> <input type=button value=/" h /"></td>/n<td> <input type=button value=/" j /"></td>/n<td> <input name=/"button3/" type=button value=/" k /"></td>/n<td> <input name=/"button4/" type=button value=/" l /"></td>/n<td> <input name=/"button5/" type=button value=/" : /"></td>/n<td> <input name=/"button7/" type=button value=/" " /"></td>/n<td> <input type=button value=/" ; /"></td>/n<td> <input type=button value=/" ' /"></td>/n<td rowspan=/"2/" colspan=/"2/"> <input name=/"button12/" type=button onclick=/"OverInput();/" value=/"   确定  /" style=/"width:126px;height:42px;/"></td>/n</tr>/n<tr align=/"left/" valign=/"middle/"> /n<td><input name=/"button2/" type=button value=/" z /"></td>/n<td> <input type=button value=/" x /"></td>/n<td> <input type=button value=/" c /"></td>/n<td> <input type=button value=/" v /"></td>/n<td> <input type=button value=/" b /"></td>/n<td> <input type=button value=/" n /"></td>/n<td> <input type=button value=/" m /"></td>/n<td> <input type=button value=/" < /"></td>/n<td> <input type=button value=/" > /"></td>/n<td> <input type=button value=/" ? /"></td>/n<td> <input type=button value=/" , /"></td>/n <td> <input type=button value=/" . /"></td>/n <td> <input type=button value=/" / /"></td>/n</tr>/n</table></td></FORM></tr></table></DIV>");
  431. function addValue(newValue)
  432. {
  433.     
  434.     if(CapsLockValue==0)
  435.     {
  436.         
  437.         var str=Calc.password.value;        
  438.         if(str.length<password1.maxLength)
  439.         {
  440.             
  441.             Calc.password.value+=newValue;          
  442.             
  443.         }
  444.         if(str.length<=password1.maxLength)
  445.         {
  446.             
  447.             password1.value=Calc.password.value;            
  448.             pspassword1();          
  449.             
  450.         }
  451.         
  452.     }
  453.     else 
  454.     {
  455.         
  456.         var str=Calc.password.value;        
  457.         if(str.length<password1.maxLength)
  458.         {
  459.             
  460.             //Calc.password.value += newValue.toUpperCase();
  461.             Calc.password.value+=newValue;          
  462.             
  463.         }
  464.         if(str.length<=password1.maxLength)
  465.         {
  466.             
  467.             password1.value=Calc.password.value;            
  468.             pspassword1();          
  469.             
  470.         }
  471.         
  472.     }
  473.     
  474. }
  475. function setpassvalue()
  476. {
  477.     
  478.     var longnum=Calc.password.value.length; 
  479.     var num
  480.     num=Calc.password.value.substr(0,longnum-1);    
  481.     Calc.password.value=num;    
  482.     var str=Calc.password.value;    
  483.     password1.value=Calc.password.value;    
  484.     pspassword1();  
  485.     
  486. }
  487. function OverInput()
  488. {
  489.     
  490.     var str=Calc.password.value;    
  491.     password1.value=Calc.password.value;    
  492.     removeJiamiName();  
  493.     pspassword1();  
  494.     closekeyboard();    
  495.     Calc.password.value=""
  496.     password1.readOnly=1;   
  497.     
  498. }
  499. function closekeyboard(theForm)
  500. {
  501.     
  502.     softkeyboard.style.display="none";  
  503.     if(null!=unhideSelect){
  504.         
  505.         unhideSelect();     
  506.         
  507.     }
  508.     
  509. }
  510. function showkeyboard()
  511. {
  512.     
  513.     randomNumberButton();   
  514.     var th=password1;   
  515.     var ttop=th.offsetTop;  
  516.     var thei=th.clientHeight;   
  517.     var tleft=th.offsetLeft;    
  518.     var ttyp=th.type;   
  519.     while(th=th.offsetParent){
  520.         ttop+=th.offsetTop;
  521.         tleft+=th.offsetLeft;
  522.         
  523.     }
  524.     softkeyboard.style.top=ttop+thei+16;    
  525.     softkeyboard.style.left=tleft-100;  
  526.     softkeyboard.style.display="block"
  527.     password1.readOnly=1;   
  528.     password1.blur();   
  529.     document.all.useKey.focus();    
  530.     if(null!=hideSelect){
  531.         
  532.         hideSelect();       
  533.         
  534.     }
  535.     
  536. }
  537. function setCapsLock()
  538. {
  539.     
  540.     if(CapsLockValue==0)
  541.     {
  542.         
  543.         CapsLockValue=1
  544.         
  545.     }
  546.     else 
  547.     {
  548.         
  549.         CapsLockValue=0
  550.         
  551.     }
  552.     
  553. }
  554. function setCalcborder()
  555. {
  556.     
  557.     CalcTable.style.border="1px solid #B5ADF1"
  558.     
  559. }
  560. function setHead()
  561. {
  562.     
  563.     CalcTable.cells[0].style.backgroundColor="#B5ADF1"
  564.     
  565. }
  566. function setCalcButtonBg()
  567. {
  568.     
  569.     for(var i=0;i<Calc.elements.length;i++)
  570.     {
  571.         
  572.         if(Calc.elements[i].type=="button"&&Calc.elements[i].bgtype!="1")
  573.         {
  574.             
  575.             if(Calc.elements[i].bgtype=="2"){
  576.                 
  577.                 Calc.elements[i].className="btn_num";               
  578.                 
  579.             }else {
  580.                 
  581.                 Calc.elements[i].className="btn_letter";                
  582.                 
  583.             }
  584.             var str1=Calc.elements[i].value;            
  585.             str1=str1.trim();           
  586.             if(str1.length==1)
  587.             {
  588.                 
  589.                 
  590.             }
  591.             var thisButtonValue=Calc.elements[i].value;         
  592.             thisButtonValue=thisButtonValue.trim();         
  593.             if(thisButtonValue.length==1)
  594.             {
  595.                 
  596.                 Calc.elements[i].onclick=
  597.                 function ()
  598.                 {
  599.                     
  600.                     var thisButtonValue=this.value;                 
  601.                     thisButtonValue=thisButtonValue.trim(); 
  602.                     //alert("按键加密前:"+thisButtonValue);
  603.                     thisButtonValue=jiamiMimaKey(thisButtonValue,ifjiami);
  604.                     //alert("加密后:"+thisButtonValue);
  605.                     addValue(thisButtonValue);                  
  606.                     
  607.                 }
  608.                 Calc.elements[i].ondblclick=
  609.                 function ()
  610.                 {
  611.                     
  612.                     var thisButtonValue=this.value;                 
  613.                     thisButtonValue=thisButtonValue.trim();
  614.                     //alert("按键加密前:"+thisButtonValue);
  615.                     thisButtonValue=jiamiMimaKey(thisButtonValue,ifjiami);
  616.                     //alert("加密后:"+thisButtonValue);
  617.                     addValue(thisButtonValue);                  
  618.                     
  619.                 }
  620.                 
  621.             }
  622.             
  623.         }
  624.         
  625.     }
  626.     
  627. }
  628. function initCalc(){
  629.     setCalcborder();    
  630.     setHead();  
  631.     setCalcButtonBg();  
  632. }
  633. String.prototype.trim=function (){
  634.     return this.replace(/(^/s*)|(/s*$)/g,"");   
  635. }
  636. var capsLockFlag;
  637. capsLockFlag=true;
  638. function capsLockText()
  639. {
  640.     
  641.     if(capsLockFlag)
  642.     {
  643.         
  644.         for(var i=0;i<Calc.elements.length;i++)
  645.         {
  646.             
  647.             var char=Calc.elements[i].value;            
  648.             var char=char.trim()
  649.             if(Calc.elements[i].type=="button"&char>="a"&char<="z"&char.length==1)
  650.             {
  651.                 
  652.                 Calc.elements[i].value=" "+String.fromCharCode(char.charCodeAt(0)-32)+" "
  653.                 
  654.             }
  655.             
  656.         }
  657.         
  658.     }
  659.     else 
  660.     {
  661.         
  662.         for(var i=0;i<Calc.elements.length;i++)
  663.         {
  664.             
  665.             var char=Calc.elements[i].value;            
  666.             var char=char.trim()
  667.             if(Calc.elements[i].type=="button"&char>="A"&char<="Z"&char.length==1)
  668.             {
  669.                 
  670.                 Calc.elements[i].value=" "+String.fromCharCode(char.charCodeAt(0)+32)+" "
  671.                 
  672.             }
  673.             
  674.         }
  675.         
  676.     }
  677.     capsLockFlag=!capsLockFlag; 
  678.     
  679. }
  680. function randomNumberButton(){
  681.     
  682.     var a=new Array(10);
  683.     
  684.     a[0]=0;
  685.     a[1]=1;
  686.     a[2]=2;
  687.     a[3]=3;
  688.     a[4]=4;
  689.     a[5]=5;
  690.     a[6]=6;
  691.     a[7]=7;
  692.     a[8]=8;
  693.     a[9]=9; 
  694.     var randomNum;  
  695.     var times=10;   
  696.     for(var i=0;i<10;i++){
  697.         
  698.         randomNum=parseInt(Math.random()*10);       
  699.         var tmp=a[0];       
  700.         a[0]=a[randomNum];      
  701.         a[randomNum]=tmp;       
  702.         
  703.     }
  704.     Calc.button_number0.value=" "+a[0]+" "
  705.     Calc.button_number1.value=" "+a[1]+" "
  706.     Calc.button_number2.value=" "+a[2]+" "
  707.     Calc.button_number3.value=" "+a[3]+" "
  708.     Calc.button_number4.value=" "+a[4]+" "
  709.     Calc.button_number5.value=" "+a[5]+" "
  710.     Calc.button_number6.value=" "+a[6]+" "
  711.     Calc.button_number7.value=" "+a[7]+" "
  712.     Calc.button_number8.value=" "+a[8]+" "
  713.     Calc.button_number9.value=" "+a[9]+" "
  714.     
  715. }
  716. function hideSelect(){
  717.     
  718.     var i=0;    
  719.     while(i<document.getElementsByTagName("select").length){
  720.         
  721.         document.getElementsByTagName("select")[i].style.visibility="hidden";       
  722.         i=i+1;      
  723.         
  724.     }
  725.     
  726. }
  727. function unhideSelect(){
  728.     
  729.     var i=0;    
  730.     while(i<document.getElementsByTagName("select").length){
  731.         
  732.         document.getElementsByTagName("select")[i].style.visibility="visible";      
  733.         i=i+1;      
  734.         
  735.     }
  736.     
  737. }
  738. //此函数是用来加密输入的,即键盘输入的是加密后的字符
  739. //newValue : 原值
  740. //ifjiami :  是否需要加密
  741. function jiamiMimaKey(newValue,ifjiami){    
  742.     if(typeof(b)=="undefined"||typeof(ifUseYinshe)=="undefined"||ifUseYinshe==0){
  743.         return newValue;        
  744.     }
  745.     alert(!ifjiami);
  746.     if(!ifjiami) return newValue;
  747.     var everyone='';    
  748.     var afterPass='';   
  749.     for(var i=0;i<newValue.length;i++){     
  750.         everyone=newValue.charAt(i);
  751.         for(var j=0;j<((b.length)/2);j++){          
  752.             if(everyone==b[2*j]){               
  753.                 afterPass=afterPass+b[2*j+1];               
  754.                 break;
  755.             }
  756.         }
  757.     }
  758.     newValue=afterPass; 
  759.     if(typeof(jiami)!="undefined"){
  760.         jiami=1;
  761.     }
  762.     return afterPass;
  763. }
  764. //此函数据作用是对密码框的的文字进行加密,输入参数为输入框的ID或name
  765. function jiamiMima(inputboxname){
  766.     //alert(document.jhform.LOGPASS.value);
  767.     var inputboxobj = document.getElementById(inputboxname);
  768.     //var inputboxobj = document.getElementById("LOGPASS");
  769.     alert(inputboxobj.value);
  770.     if(inputboxobj.value.length<6){
  771.         alert('密码长度必须大于等于6位!');
  772.         return false
  773.     };
  774.         
  775.     var newValue=inputboxobj.value; 
  776.     var specialChar=0;
  777.     //alert("keyjiami:"+(keyjiami==0));
  778.     //alert("jiami:"+(jiami==0));
  779.     //alert("ifUseYinshe:"+(ifUseYinshe==1));
  780.     //alert(keyjiami==0&&jiami==0&&ifUseYinshe==1);
  781.     //这里判断的作用是,如果键输入已加密就不再需要加密,或按用户预设情况看是否需要加密ifUseYinshe=0时不需要加密
  782.     if(keyjiami==0&&jiami==0&&ifUseYinshe==1){
  783.         var everyone='';
  784.         var afterPass='';       
  785.         for(var i=0;i<newValue.length;i++){
  786.             if(specialChar==1){
  787.                 break;      
  788.             }
  789.             everyone=newValue.charAt(i);            
  790.             for(var j=0;j<((b.length)/2);j++){
  791.                 if(everyone==b[2*j]){
  792.                     afterPass=afterPass+b[2*j+1];                   
  793.                     break;      
  794.                 }
  795.                 if(j==(b.length)/2-1){
  796.                     if(everyone!=b[2*j]){
  797.                         specialChar=1;                      
  798.                         break;  
  799.                     }
  800.                 }
  801.             }
  802.         }
  803.         if(specialChar==0){
  804.             inputboxobj.value=afterPass;
  805.         }else {
  806.             var ret="";         
  807.             afterPass='';           
  808.             for(i=0;i<newValue.length;i++){
  809.                 var c=newValue.substr(i,1);             
  810.                 var ts=escape(c);               
  811.                 if(ts.substring(0,2)=="%u"){
  812.                     ret=ret+ts.replace("%u","(^?)");
  813.                 }else {
  814.                     ret=ret+c;
  815.                 }
  816.             }
  817.             inputboxobj.value=ret;          
  818.             for(var n=0;n<ret.length;n++){
  819.                 everyone=ret.charAt(n);             
  820.                 for(var w=0;w<((b.length)/2);w++){
  821.                     if(everyone==b[2*w]){
  822.                         afterPass=afterPass+b[2*w+1];                       
  823.                         break;  
  824.                     }
  825.                 }
  826.             }
  827.             inputboxobj.value=afterPass;
  828.         }
  829.         keyjiami=1;
  830.     }
  831.     //下面两行是冷月宫主用来测试用的
  832.     //alert("logpassword:"+inputboxobj.value);  
  833.     //alert("CCB_PWD_MAP_GIGEST:"+document.jhform.CCB_PWD_MAP_GIGEST.value);
  834.     return false;
  835. }
  836. function removeJiamiName(){
  837.     
  838.     var jiamiObjectname=password1.name;
  839.     
  840.     var jiamiObjectnameBefore=jiamiObjectname+',';  
  841.     var jiamiObjectnameAll=','+jiamiObjectname+','
  842.     if(typeof(keyjiamiName)!="undefined"){
  843.         
  844.         if(keyjiamiName.indexOf(jiamiObjectnameBefore)==0){         
  845.             keyjiamiName=keyjiamiName.substring(jiamiObjectnameBefore.length);          
  846.         }else if(keyjiamiName.indexOf(jiamiObjectnameAll)!=-1){         
  847.             keyjiamiName.replace(jiamiObjectnameBefore,',');            
  848.         }       
  849.     }   
  850. }
  851. function pspassword1(){ 
  852.     var passwd=password1.value; 
  853.     var PWD=document.getElementsByName("PWD");  
  854.     if(PWD!=null&&ps!=null&&pIsPWD){
  855.         //add by lvwj modify date:20070226
  856.         ps.update(getStartPassword(passwd));    
  857.     }
  858. }

js/inputControl.js

  1. /******************************************************
  2. //   *功能描述:把密码输入控件写入页面中
  3. //   *参数说明:
  4. //      inputCtlName:原控件名
  5. //      
  6. //      创建日期:2006-07-24
  7. ***************************************************** */
  8. var InputControlAreaIndex=0;
  9. var InputControlAreaPubKey='';
  10. var InputControlAreaAccVer="115A7165-DE06-49B8-9850-15414C233E83:1009";
  11. var InputControlAreaFlag="1";
  12. var InputControlAreaAccVerFlag=false;
  13. var InputControlAreaArray=new Array();
  14. function InputControlArea(inputName,type){
  15.     
  16.     //初始化控件标签
  17.     var input=document.all[inputName];  
  18.     //初始化软键盘
  19.     //this.initKeyBoard(input);
  20.     //判断控件是否启用
  21.     if(input==null||arguments.length!=2||(InputControlAreaFlag!=2&&InputControlAreaFlag!=3)){
  22.         
  23.         this.obj=false;     
  24.         return ;        
  25.         
  26.     }
  27.     //生成控件标签
  28.     this.init("Sec."+inputName,inputName);  
  29.     
  30.     //取得有效控件
  31.     var returnObject=this.getInputCtl(document.all["Sec."+inputName],type); 
  32.     
  33.     //显示有效控件
  34.     this.obj=this.displayInput(returnObject,document.all[inputName]);   
  35.     
  36.     InputControlAreaArray[InputControlAreaArray.length]=this.obj;   
  37.     
  38.     
  39. }
  40. InputControlArea.prototype.initKeyBoard=function (input){
  41.     
  42.     if(InputControlAreaFlag==3||InputControlAreaFlag==1)
  43.     {
  44.         
  45.         input.onkeydown=function (){
  46.             
  47.             Calc.password.value=this.value;         
  48.             
  49.         }
  50.         input.onchange=function (){
  51.             
  52.             Calc.password.value=this.value;         
  53.             
  54.         }
  55.         input.onclick=function (){
  56.             
  57.             password1=this;         
  58.             showkeyboard();         
  59.             this.readOnly=1;            
  60.             Calc.password.value='';         
  61.             
  62.         }
  63.         
  64.     }else if(InputControlAreaFlag==2||InputControlAreaFlag==0)
  65.     {
  66.         
  67.         input.onkeydown=null;       
  68.         input.onchange=null;        
  69.         input.onclick=null;     
  70.         
  71.     }
  72.     
  73. }
  74. InputControlArea.prototype.init=function (inputCtlId,inputName){
  75.     
  76.     //在函数末尾追加的控件,先调用。
  77.     function writeInputControl(clsid,id){
  78.         
  79.         //生成控件标签
  80.         var classid="";     
  81.         if(clsid!="")
  82.         {
  83.             
  84.             classid=" classid='CLSID:"+clsid+"'";           
  85.             
  86.         }
  87.         
  88.         inputSpan+='<OBJECT '+classid+' id='+id+' VIEWASTEXT style="display:none" size="20" width="100" height="17">'+'</OBJECT>';      
  89.         
  90.     }
  91.     var inputSpan=document.all[inputName].outerHTML+"<div id = '"+inputName+"Area' style = 'border:1px solid #69c;padding:0;vertical-align:top;width:148;height=17;display:none'>"
  92.     writeInputControl("",inputCtlId);
  93.     //
  94.     var strCtls=InputControlAreaAccVer.split(",");  
  95.     for(var i=0;i<strCtls.length;++i)
  96.     {
  97.         
  98.         writeInputControl(strCtls[i].split(":")[0],inputCtlId);
  99.         //控件A
  100.         
  101.         
  102.     }
  103.     ///////////////////////////////////////////////////////////////////////
  104.     inputSpan+='<img id='+inputCtlId+"img"+' SRC="images/icon_small_hand.gif" ALT="已使用密码输入控件,方便您的密码输入!" width=16 height=17 style = "vertical-align:top;display:none" ></img>';  
  105.     inputSpan+="</div>";    
  106.     document.all[inputName].outerHTML=inputSpan;    
  107.     
  108. }
  109. InputControlArea.prototype.displayInput=function (returnObj,input){
  110.     
  111.     //控件有效
  112.     if(returnObj.classid!="")
  113.     {
  114.         
  115.         input.style.display="none";     
  116.         returnObj.style.display="";     
  117.         document.all[returnObj.id+"img"].style.display="";      
  118.         document.all[input.name+"Area"].style.display="inline";     
  119.         returnObj.onblur=function (){
  120.             
  121.             //判断离开焦点时的处理是否存在
  122.             if(input.onblur)
  123.             {
  124.                 
  125.                 input.onblur.call();                
  126.                 
  127.             }
  128.             //设置密码
  129.             //input.value = returnObj.GetPassword(InputControlAreaPubKey);
  130.             //returnObj.length = returnObj.GetLength();
  131.             
  132.         }
  133.         returnObj.onDoSubmit=function (){
  134.             
  135.             input.value=returnObj.GetPassword(InputControlAreaPubKey);          
  136.             returnObj.length=returnObj.GetLength();         
  137.             
  138.         }
  139.         
  140.         if(InputControlAreaPubKey=='')
  141.         {
  142.             
  143.             initOnSubmit();         
  144.             InputControlAreaPubKey=returnObj.GetPubKey(InputControlAreaPubKey);         
  145.             
  146.         }
  147.         returnObj.SetFunName(input.name);       
  148.         
  149.     }else {
  150.         
  151.         //控件无效
  152.         input.style.display="";     
  153.         returnObj=false;        
  154.         if((window.location.toString ()).indexOf("LOGIN")==-1)
  155.         {
  156.             
  157.             return ;            
  158.             
  159.         }
  160.         var warning;        
  161.         if(InputControlAreaAccVerFlag)
  162.         {
  163.             
  164.             warning="您的密码输入控件版本无效,是否安装新版本?";            
  165.             
  166.         }
  167.         else 
  168.         {
  169.             
  170.             warning="您未安装密码输入控件,是否安装?";         
  171.             
  172.         }
  173.         
  174.         
  175.         var SetUpFlag=this.GetCookie("SetUpFlag");      
  176.         var returnFlg=this.GetCookie("returnFlg");      
  177.         if(returnFlg=="1")
  178.         {
  179.             
  180.             this.SetCookie("returnFlg","0");            
  181.             return ;            
  182.             
  183.         }
  184.         if(SetUpFlag!="0"||SetUpFlag==null)
  185.         {
  186.             
  187.             this.SetCookie("SetUpFlag","1");            
  188.             top.location="/app/B2CMainPlatV5?CCB_IBSVersion=V5&CUSTYPE=0&TXCODE=801002";            
  189.             
  190.         }
  191.         
  192.         
  193.     }
  194.     //返回有效控件
  195.     return returnObj;   
  196.     
  197. }
  198. InputControlArea.prototype.getInputCtl=function (inputCtls,type){
  199.     
  200.     var validSE=0;  
  201.     
  202.     for(var i=inputCtls.length-1;i>=1;i--){
  203.         
  204.         try{
  205.             
  206.             if(InputControlAreaAccVer.indexOf(inputCtls[i].GetVersion())==-1){
  207.                 
  208.                 InputControlAreaAccVerFlag=true;                
  209.                 continue;               
  210.                 
  211.             }
  212.             inputCtls[i].SetCryptFlag(type);            
  213.             validSE=i;          
  214.             break;          
  215.             
  216.         }catch(e){
  217.             
  218.             //continue;
  219.             
  220.         }
  221.         try{
  222.             
  223.             inputCtls[i].GetStrMsg();           
  224.             validSE=i;          
  225.             break;          
  226.             
  227.         }catch(e){
  228.             
  229.             continue;           
  230.             
  231.         }
  232.         
  233.     }
  234.     InputControlAreaIndex=validSE;  
  235.     return inputCtls[validSE];  
  236.     
  237. }
  238. function callOnBlurByName(inputCtlName){
  239.     
  240.     document.all["Sec."+inputCtlName][InputControlAreaIndex].onblur.call(); 
  241.     
  242. }
  243. InputControlArea.prototype.SetCookie=function (sName,sValue)
  244. {
  245.     
  246.     document.cookie=sName+"="+escape(sValue)+"; expires=Fri, 31 Dec 2999 23:59:59 GMT;";    
  247.     
  248. }
  249. // Retrieve the value of the cookie with the specified name.
  250. InputControlArea.prototype.GetCookie=function GetCookie(sName)
  251. {
  252.     
  253.     // cookies are separated by semicolons
  254.     var aCookie=document.cookie.split(";"); 
  255.     for(var i=0;i<aCookie.length;i++)
  256.     {
  257.         
  258.         // a name/value pair (a crumb) is separated by an equal sign
  259.         var aCrumb=aCookie[i].split("=");       
  260.         if(aCrumb[0].indexOf(sName)!=-1){
  261.             
  262.             return unescape(aCrumb[1]);         
  263.             
  264.         }
  265.         
  266.     }
  267.     // a cookie with the requested name does not exist
  268.     return null;    
  269.     
  270. }
  271. function initOnSubmit(){
  272.     
  273.     
  274.     for(var i=0;i<document.forms.length;i++){
  275.         
  276.         var submitHandler=document.forms[i].onsubmit;       
  277.         
  278.         if(submitHandler){
  279.             
  280.             document.forms[i].onsubmit=function (){
  281.                 
  282.                 initPassWord();             
  283.                 return submitHandler.call();                
  284.                 
  285.             }
  286.             
  287.         }
  288.         
  289.         
  290.     }
  291.     
  292. }
  293. function initPassWord(){
  294.     
  295.     for(var i=0;i<InputControlAreaArray.length;i++){
  296.         
  297.         if(InputControlAreaArray[i]!=null&&InputControlAreaArray[i].onDoSubmit!=null)
  298.         {
  299.             
  300.             InputControlAreaArray[i].onDoSubmit.call();         
  301.             
  302.         }
  303.         
  304.     }
  305.     
  306. }

demo.html

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>中国建设银行 个人网上银行</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
  6. <link href="css/before_login.css" rel="stylesheet" type="text/css" />
  7. </head>
  8. <body bottommargin="0" bgproperties="0" leftmargin="0" marginheight="0" marginwidth="0" rightmargin="0" topmargin="0">
  9. <form name="jhform" method="post" action="/app/B2CMainPlatV5?CCB_IBSVersion=V5" target="_parent" onsubmit="return mysubmit();">
  10.   <div id="Page_content">
  11.     <table>
  12.       <tr>
  13.         <td><div class="reg_title" >登录建行个人网上银行</div></td>
  14.       </tr>
  15.     </table>
  16.     <div class="Area_content">
  17.       <div class="content_title" style="border-bottom:1px solid #eee;">登录区域</div>
  18.       <table width="70%"  border="0" cellspacing="0" cellpadding="0">
  19.         <tr>
  20.           <td id="text_user" width="150" height="50" class="text_content login_big"> 用户昵称/证件号码:</td>
  21.           <td width="255" height="50" class="text_content"><input name="USERID" type="text" size="20" minLength="1" maxLength="20" title="用户昵称/证件号码"/></td>
  22.           <td width="280" height="50" class="text_content"><div id="login_2" class="tip_off">输入您在注册网上银行时使用的证件号码或您设置登陆方式的网上银行用户名(昵称) / 证件号码</div></td>
  23.         </tr>
  24.         <tr>
  25.           <td width="120" height="50" class="text_content login_big">登录密码:<input type="hidden" name="CCB_PWD_MAP_GIGEST" value=""></td>
  26.           <td height="50" class="text_content"><input id="LOGPASS" name="LOGPASS" type="password" size="20" minLength="6"  maxLength="12" onfocus="if (hidekeyboard) { hidekeyboard=false;password1=this;showkeyboard();this.readOnly=1;document.getElementById('Calc').password.value='';};" title="登录密码" readOnly  onChange="Calc.password.value=this.value;keyjiami=0;jiami = 0" /></td>
  27.           <td width="280" height="50" class="text_content"><div  id="login_3" class="tip_off">输入您设置的网上银行登录密码</div></td>
  28.         </tr>
  29.         <tr>
  30.           <td width="120" height="50" class="text_content login_big">附加码:</td>
  31.           <td height="50" class="text_content"><input name="PT_CONFIRM_PWD" type="text" minLength="1" maxLength="5" title="附加码" /></td>
  32.           <td width="280" height="50" class="text_content"><div id="login_4" class="tip_off">输入右侧图片中的字符 </div></td>
  33.           </td>
  34.         </tr>
  35.         <tr>
  36.           <td height="50" class="text_content login_big">版本类型:</td>
  37.           <td height="50" class="text_content"><input type="checkbox" id="narrow_band" name="narrow_band"  chacked="">
  38.           <span class="text_red">极速版</span></td>
  39.           <td height="50" class="text_content"><div id="login_5" class="tip_off">建议使用CDMA、GPRS等窄带用户选择极速版。</div></td>
  40.         </tr>
  41. <script src="js/inputControl.js" language="javascript"></script>
  42. <script language="JavaScript">
  43. var InputControlAreaAccVer = '115A7165-DE06-49B8-9850-15414C233E83:1009,115A7165-DE06-49B8-9850-15414C233E84:2000';
  44. var InputControlAreaFlag = '1';
  45. </script>
  46. <script language="JavaScript">
  47. var inCtl=new InputControlArea("LOGPASS",1);
  48. if(inCtl){  
  49.     if(inCtl.obj){      
  50.         inCtl.obj.onfocus=document.all.LOGPASS.onfocus;     
  51.         inCtl.obj.width="130";      
  52.         inCtl.obj.height="17";
  53.     }   
  54. }
  55. </script>
  56.       </table>
  57.       <div class="Area_button">
  58.         <table width="70%"  border="0" cellspacing="0" cellpadding="0">
  59.           <tr>
  60.             <td><input type="submit" class="button" value="登 录">
  61.             </td>
  62.             <td><div class="reg_info"><a href="#" onclick='javascript:newperson();'>只要拥有建行账户,就可以享受便利安全的网上银行服务!<br/>
  63.             <span class="text_red">- 新用户注册 -</span></a> </div></td>
  64.           </tr>
  65.         </table>
  66.       </div>
  67.       </div>
  68.   </div>
  69. </form>
  70. <script src="js/ccbsoftkeyboard.js" language="javascript"></script>
  71. <script language="javascript">
  72. password1=null;
  73. initCalc();
  74. document.all.jhform.LOGPASS.onclick=Function("password1=this;showkeyboard();this.readOnly=1;Calc.password.value=''");
  75. document.all.jhform.LOGPASS.onkeyup=Function("if(event.keyCode==9){password1=this;showkeyboard();this.readOnly=1;Calc.password.value=''}");
  76. document.all.jhform.LOGPASS.onKeyDown=Function("Calc.password.value=this.value;");
  77. </script>
  78. </body>
  79. </html>
  80. <script>
  81. function mysubmit(){
  82.     var inputboxobj = document.getElementById("LOGPASS");
  83.     alert(inputboxobj.value);
  84.     jiamiMima('LOGPASS');
  85.     alert(inputboxobj.value);
  86.     return false;
  87. }
  88. </script>