FTB-Utility.js
上传用户:szraylite
上传日期:2018-06-06
资源大小:11546k
文件大小:8k
源码类别:

软件测试

开发平台:

Java

  1. /*  Add events to objects
  2. --------------------------------------- */
  3. var FTB_EventCache = [];
  4. function FTB_AddEvents(obj, evTypes, fn) {
  5. for (i=0; i<evTypes.length; i++) FTB_AddEvent(obj, evTypes[i], fn);
  6. };
  7. function FTB_AddEvent(obj, evType, fn, useCapture) {
  8. //if (useCapture==undefined) 
  9. useCapture=true;
  10. if (obj.addEventListener) {
  11. obj.addEventListener(evType, fn, useCapture);
  12. } else if (obj.attachEvent) {
  13. obj.attachEvent('on'+evType, fn);
  14. }
  15. FTB_EventCache.push([obj, evType, fn, useCapture]);
  16. };
  17. function FTB_RemoveEvent(obj, evType, fn, useCapture) {     if (useCapture==undefined) useCapture=true;
  18. if (obj.removeEventListener) {       obj.removeEventListener(evType, fn, useCapture);     } else if (obj.detachEvent) {       obj.detachEvent('on' + evType, fn);     }
  19. };
  20. function FTB_Unload() {     for (var i = 0; i < FTB_EventCache.length; i++) {       FTB_RemoveEvent.apply(this, FTB_EventCache[i]);       FTB_EventCache[i][0] = null;     }     FTB_EventCache = false;
  21. };
  22. FTB_AddEvent(window,'unload',FTB_Unload, false);
  23. /*  API for holding all FreeTextBox's
  24. --------------------------------------- */
  25. var FTB_API = new Object();
  26. var FTB_Names = [];
  27. /* Browser Detection 'FTB_Browser'
  28. --------------------------------------- */
  29. function FTB_BrowserDetect() {
  30. doc=window.document;
  31. navVersion=navigator.appVersion.toLowerCase();
  32. this.ie4=(!doc.getElementById&&doc.all)?true:false;
  33. this.ie5=(navVersion.indexOf("msie 5.0")!=-1)?true:false;
  34. this.ie55=(navVersion.indexOf("msie 5.5")!=-1)?true:false;
  35. this.ie6=(navVersion.indexOf("msie 6.0")!=-1)?true:false;
  36. this.ie7=(navVersion.indexOf("msie 7.0")!=-1)?true:false;
  37. this.isIE=(this.ie5||this.ie55||this.ie6||this.ie7)?true:false;
  38. this.isGecko=!this.isIE;
  39. };
  40. FTB_Browser = new FTB_BrowserDetect();
  41. /* OOP Timeout Manager 'FTB_Timeout'
  42. --------------------------------------- */
  43. function FTB_TimeoutManager() {
  44. this.pendingCalls = {};
  45. };
  46. FTB_TimeoutManager.prototype.addMethod = function(name,obj,method,delay,arg1,arg2) {
  47. this.clearMethod(name);
  48. this.pendingCalls[name] = new FTB_TimeoutCall(obj,method,arg1,arg2);
  49. this.pendingCalls[name].timeout = 
  50. setTimeout('FTB_Timeout.executeMethod("' + name + '");',delay);
  51. };
  52. FTB_TimeoutManager.prototype.executeMethod = function(name) {
  53. call = this.pendingCalls[name];
  54. if (call != null) {
  55. call.obj[call.method](call.arg1,call.arg2);
  56. this.clearMethod(name);
  57. }
  58. };
  59. FTB_TimeoutManager.prototype.clearMethod = function(name) {
  60. if (this.pendingCalls[name]) 
  61. delete this.pendingCalls[name];
  62. };
  63. //* Object to hold timeout reference
  64. function FTB_TimeoutCall(obj,method,arg1,arg2) {
  65. this.obj = obj;
  66. this.method = method;
  67. this.arg1 = arg1;
  68. this.arg2 = arg2;
  69. this.timeout = null;
  70. };
  71. FTB_Timeout = new FTB_TimeoutManager();
  72. /* Constants 
  73. ----------------------------------------- */
  74. FTB_MODE_HTML = 0;
  75. FTB_MODE_DESIGN = 1;
  76. FTB_MODE_PREVIEW = 2;
  77. //
  78. FTB_PASTE_DEFAULT = 0;
  79. FTB_PASTE_DISABLED = 1;
  80. FTB_PASTE_TEXT = 2;
  81. //
  82. FTB_TAB_DISABLED = 0;
  83. FTB_TAB_NEXTCONTROL = 1;
  84. FTB_TAB_INSERTSPACES = 2;
  85. //
  86. FTB_BUTTON_ON = 0;
  87. FTB_BUTTON_OFF = 1;
  88. //
  89. FTB_BREAK_P = 0;
  90. FTB_BREAK_BR = 1;
  91. //
  92. FTB_KEY_TAB = 9;
  93. FTB_KEY_ENTER = 13;
  94. FTB_KEY_QUOTE = 222;
  95. FTB_KEY_V = 86;
  96. FTB_KEY_P = 86;
  97. FTB_KEY_B = 66;
  98. FTB_KEY_I = 73;
  99. FTB_KEY_U = 85;
  100. FTB_KEY_Z = 90;
  101. FTB_KEY_Y = 89;
  102. //
  103. FTB_CODE_OPENCURLY = '&#8220;';
  104. FTB_CODE_CLOSECURLY = '&#8221;';
  105. //
  106. FTB_BUTTON_STYLEDBACKGROUNDS = 0;
  107. FTB_BUTTON_IMAGEBACKGROUNDS = 1;
  108. /* Misc Methods
  109. ------------------------------------------ */
  110. function FTB_SetListValue(list, value, checkText) {
  111. checkText = checkText || false;
  112. value = String(value).toLowerCase();
  113. for (var i=0; i<list.options.length; i++) {
  114. if (list.options[i].value.toLowerCase() == value || (checkText && list.options[i].text.toLowerCase() == value)) {
  115. list.selectedIndex = i;
  116. return;
  117. }
  118. }
  119. };
  120. function FTB_ParseUnit(styleString) {
  121. var unit = new Object();
  122. unit.value = 0;
  123. unit.unitType = '';
  124. for(var i=0; i<styleString.length; i++) {
  125. if (isNaN(styleString.charAt(i)))
  126. unit.unitType += styleString.charAt(i);
  127. else 
  128. unit.value = parseInt(unit.value.toString() + styleString.charAt(i));
  129. }
  130. return unit;
  131. };
  132. function FTB_DecToHex(dec) {
  133. return parseInt(dec).toString(16); 
  134. };
  135. function FTB_RgbToHex(r,g,b) {
  136. return "#" + FTB_IntToHex(r) + FTB_IntToHex(g) + FTB_IntToHex(b);
  137. };
  138. function FTB_IntToHexColor( intColor ) {
  139. if (!intColor) return null;
  140. intColor = intColor.toString(16).toUpperCase();
  141. while (intColor.length < 6) intColor = "0" + intColor;
  142. return "#" + intColor.substring(4,6) + intColor.substring(2,4) + intColor.substring(0,2);
  143. };
  144. function FTB_RgbStringToHex(rgbString){ 
  145. var r, g, b;
  146. rgbString = rgbString.toString().toLowerCase();
  147. if(rgbString.indexOf("rgb(") == -1 || rgbString.indexOf(")") == -1) return rgbString;
  148. rgbString = rgbString.substring(rgbString.indexOf("(")+1, rgbString.indexOf(")")-1);
  149. rgb = rgbString.split(',');
  150. r = rgb[0];
  151. g = rgb[1];
  152. if (rgb.length == 2) b = rbg[2]; else b = 0;
  153. return FTB_RgbToHex(r,g,b);
  154. };
  155. function FTB_IntToHex(dec){ 
  156. var result = (parseInt(dec).toString(16)); 
  157. if(result.length ==1) 
  158. result= ("0" +result); 
  159. return result.toUpperCase(); 
  160. };
  161. function FTB_GetQueryStringValues(url) {
  162. url = new String(url);
  163. var queryStringValues=new Object();
  164. var querystring=url.substring(url.indexOf('?')+1, url.length);
  165. var querystringSplit = querystring.split('&');
  166. for (i=0; i < querystringSplit.length; i++){
  167. var pair=querystringSplit[i].split('=');
  168. var name=pair[0];
  169. var value=pair[1];
  170. queryStringValues[ name ]=value;
  171. }
  172. return queryStringValues;
  173. };
  174. /* Static Popup HTML
  175. ---------------------------------------- */
  176. var FTB_PopUpStyle = "
  177. html, body { 
  178. background-color: #ECE9D8; 
  179. color: #000000; 
  180. font: 11px Tahoma,Verdana,sans-serif; 
  181. padding: 0px; 
  182. body { margin: 5px; } 
  183. form { margin: 0px; padding: 0px;} 
  184. table { 
  185.   font: 11px Tahoma,Verdana,sans-serif; 
  186. form p { 
  187.   margin-top: 5px; 
  188.   margin-bottom: 5px; 
  189. h3 { margin: 0; margin-top: 4px;  margin-bottom: 5px; font-size: 12px; border-bottom: 2px solid #90A8F0; color: #90A8F0;} 
  190. .fl { width: 9em; float: left; padding: 2px 5px; text-align: right; } 
  191. .fr { width: 7em; float: left; padding: 2px 5px; text-align: right; } 
  192. fieldset { padding: 0px 10px 5px 5px; } 
  193. button { width: 75px; } 
  194. select, input, button { font: 11px Tahoma,Verdana,sans-serif; } 
  195. .space { padding: 2px; } 
  196. .title { background: #ddf; color: #000; font-weight: bold; font-size: 120%; padding: 3px 10px; margin-bottom: 10px; 
  197. border-bottom: 1px solid black; letter-spacing: 2px; 
  198. .f_title { text-align:right; }
  199. .footer { border-top:2px solid #90A8F0; padding-top: 3px; margin-top: 4px; text-align:right; }
  200. ";
  201. var FTB_PopUpHeader = new String("<html><body> 
  202. <head>
  203. <title>POPUP_TITLE</title>
  204. <style type='text/css'>
  205. html, body { 
  206. background-color: #ECE9D8; 
  207. color: #000000; 
  208. font: 11px Tahoma,Verdana,sans-serif; 
  209. padding: 0px; 
  210. body { margin: 5px; } 
  211. form { margin: 0px; padding: 0px;} 
  212. table { 
  213.   font: 11px Tahoma,Verdana,sans-serif; 
  214. form p { 
  215.   margin-top: 5px; 
  216.   margin-bottom: 5px; 
  217. h3 { margin: 0; margin-top: 4px;  margin-bottom: 5px; font-size: 12px; border-bottom: 2px solid #90A8F0; color: #90A8F0;} 
  218. .fl { width: 9em; float: left; padding: 2px 5px; text-align: right; } 
  219. .fr { width: 7em; float: left; padding: 2px 5px; text-align: right; } 
  220. fieldset { padding: 0px 10px 5px 5px; } 
  221. button { width: 75px; } 
  222. select, input, button { font: 11px Tahoma,Verdana,sans-serif; } 
  223. .space { padding: 2px; } 
  224. .title { background: #ddf; color: #000; font-weight: bold; font-size: 120%; padding: 3px 10px; margin-bottom: 10px; 
  225. border-bottom: 1px solid black; letter-spacing: 2px; 
  226. .f_title { text-align:right; }
  227. .footer { border-top:2px solid #90A8F0; padding-top: 3px; margin-top: 4px; text-align:right; }</style>
  228. <script type='text/javascript'>
  229. POPUP_SCRIPT
  230. </script>
  231. </head>
  232. <body>
  233. <form action=''> 
  234. <h3>POPUP_TITLE</h3> 
  235. POPUP_HTML 
  236. </form> 
  237. </body> 
  238. </html>");