buttons.js
上传用户:llrg7406
上传日期:2007-03-02
资源大小:654k
文件大小:6k
源码类别:

教育系统应用

开发平台:

Delphi

  1. document.onmouseover = doOver;
  2. document.onmouseout  = doOut;
  3. document.onmousedown = doDown;
  4. document.onmouseup   = doUp;
  5. function doOver() {
  6. var toEl = getReal(window.event.toElement, "className", "coolButton");
  7. var fromEl = getReal(window.event.fromElement, "className", "coolButton");
  8. if (toEl == fromEl) return;
  9. var el = toEl;
  10. // alert(el);
  11. // var cDisabled = el.getAttribute("cDisabled");
  12. var cDisabled = el.cDisabled;
  13. // alert(cDisabled);
  14. cDisabled = (cDisabled != null); // If CDISABLED atribute is present
  15. if (el.className == "coolButton")
  16. el.onselectstart = new Function("return false");
  17. if ((el.className == "coolButton") && !cDisabled) {
  18. makeRaised(el);
  19. makeGray(el,false);
  20. }
  21. }
  22. function doOut() {
  23. var toEl = getReal(window.event.toElement, "className", "coolButton");
  24. var fromEl = getReal(window.event.fromElement, "className", "coolButton");
  25. if (toEl == fromEl) return;
  26. var el = fromEl;
  27. // var cDisabled = el.getAttribute("cDisabled");
  28. var cDisabled = el.cDisabled;
  29. cDisabled = (cDisabled != null); // If CDISABLED atribute is present
  30. var cToggle = el.cToggle;
  31. toggle_disabled = (cToggle != null); // If CTOGGLE atribute is present
  32. if (cToggle && el.value) {
  33. makePressed(el);
  34. makeGray(el,true);
  35. }
  36. else if ((el.className == "coolButton") && !cDisabled) {
  37. makeFlat(el);
  38. makeGray(el,true);
  39. }
  40. }
  41. function doDown() {
  42. el = getReal(window.event.srcElement, "className", "coolButton");
  43. var cDisabled = el.cDisabled;
  44. cDisabled = (cDisabled != null); // If CDISABLED atribute is present
  45. if ((el.className == "coolButton") && !cDisabled) {
  46. makePressed(el)
  47. }
  48. }
  49. function doUp() {
  50. el = getReal(window.event.srcElement, "className", "coolButton");
  51. var cDisabled = el.cDisabled;
  52. cDisabled = (cDisabled != null); // If CDISABLED atribute is present
  53. if ((el.className == "coolButton") && !cDisabled) {
  54. makeRaised(el);
  55. }
  56. }
  57. function getReal(el, type, value) {
  58. temp = el;
  59. while ((temp != null) && (temp.tagName != "BODY")) {
  60. if (eval("temp." + type) == value) {
  61. el = temp;
  62. return el;
  63. }
  64. temp = temp.parentElement;
  65. }
  66. return el;
  67. }
  68. function findChildren(el, type, value) {
  69. var children = el.children;
  70. var tmp = new Array();
  71. var j=0;
  72. for (var i=0; i<children.length; i++) {
  73. if (eval("children[i]." + type + "=="" + value + """)) {
  74. tmp[tmp.length] = children[i];
  75. }
  76. tmp = tmp.concat(findChildren(children[i], type, value));
  77. }
  78. return tmp;
  79. }
  80. function disable(el) {
  81. if (document.readyState != "complete") {
  82. window.setTimeout("disable(" + el.id + ")", 100); // If document not finished rendered try later.
  83. return;
  84. }
  85. var cDisabled = el.cDisabled;
  86. cDisabled = (cDisabled != null); // If CDISABLED atribute is present
  87. if (!cDisabled) {
  88. el.cDisabled = true;
  89. el.innerHTML = '<span style="background: buttonshadow; width: 100%; height: 100%; text-align: center;">' +
  90. '<span style="filter:Mask(Color=buttonface) DropShadow(Color=buttonhighlight, OffX=1, OffY=1, Positive=0); height: 100%; width: 100%%; text-align: center;">' +
  91. el.innerHTML +
  92. '</span>' +
  93. '</span>';
  94. if (el.onclick != null) {
  95. el.cDisabled_onclick = el.onclick;
  96. el.onclick = null;
  97. }
  98. }
  99. }
  100. function enable(el) {
  101. var cDisabled = el.cDisabled;
  102. cDisabled = (cDisabled != null); // If CDISABLED atribute is present
  103. if (cDisabled) {
  104. el.cDisabled = null;
  105. el.innerHTML = el.children[0].children[0].innerHTML;
  106. if (el.cDisabled_onclick != null) {
  107. el.onclick = el.cDisabled_onclick;
  108. el.cDisabled_onclick = null;
  109. }
  110. }
  111. }
  112. function addToggle(el) {
  113. var cDisabled = el.cDisabled;
  114. cDisabled = (cDisabled != null); // If CDISABLED atribute is present
  115. var cToggle = el.cToggle;
  116. cToggle = (cToggle != null); // If CTOGGLE atribute is present
  117. if (!cToggle && !cDisabled) {
  118. el.cToggle = true;
  119. if (el.value == null)
  120. el.value = 0; // Start as not pressed down
  121. if (el.onclick != null)
  122. el.cToggle_onclick = el.onclick; // Backup the onclick
  123. else 
  124. el.cToggle_onclick = "";
  125. el.onclick = new Function("toggle(" + el.id +"); " + el.id + ".cToggle_onclick();");
  126. }
  127. }
  128. function removeToggle(el) {
  129. var cDisabled = el.cDisabled;
  130. cDisabled = (cDisabled != null); // If CDISABLED atribute is present
  131. var cToggle = el.cToggle;
  132. cToggle = (cToggle != null); // If CTOGGLE atribute is present
  133. if (cToggle && !cDisabled) {
  134. el.cToggle = null;
  135. if (el.value) {
  136. toggle(el);
  137. }
  138. makeFlat(el);
  139. if (el.cToggle_onclick != null) {
  140. el.onclick = el.cToggle_onclick;
  141. el.cToggle_onclick = null;
  142. }
  143. }
  144. }
  145. function toggle(el) {
  146. el.value = !el.value;
  147. if (el.value)
  148. el.style.background = "URL()";
  149. else
  150. el.style.backgroundImage = "";
  151. // doOut(el);
  152. }
  153. function makeFlat(el) {
  154. with (el.style) {
  155. background = "";
  156. border = "1px solid buttonface";
  157. padding      = "1px";
  158. }
  159. }
  160. function makeRaised(el) {
  161. with (el.style) {
  162. borderLeft   = "1px solid buttonhighlight";
  163. borderRight  = "1px solid buttonshadow";
  164. borderTop    = "1px solid buttonhighlight";
  165. borderBottom = "1px solid buttonshadow";
  166. padding      = "1px";
  167. }
  168. }
  169. function makePressed(el) {
  170. with (el.style) {
  171. borderLeft   = "1px solid buttonshadow";
  172. borderRight  = "1px solid buttonhighlight";
  173. borderTop    = "1px solid buttonshadow";
  174. borderBottom = "1px solid buttonhighlight";
  175. paddingTop    = "2px";
  176. paddingLeft   = "2px";
  177. paddingBottom = "0px";
  178. paddingRight  = "0px";
  179. }
  180. }
  181. function makeGray(el,b) {
  182. var filtval;
  183. if (b)
  184. filtval = "gray()";
  185. else
  186. filtval = "";
  187. var imgs = findChildren(el, "tagName", "IMG");
  188. for (var i=0; i<imgs.length; i++) {
  189. imgs[i].style.filter = filtval;
  190. }
  191. }
  192. document.write("<style>");
  193. document.write(".coolBar {background: buttonface;border-top: 1px solid buttonhighlight; border-left: 1px solid buttonhighlight; border-bottom: 1px solid buttonshadow; border-right: 1px solid buttonshadow; padding: 2px; font: menu;}");
  194. document.write(".coolButton {border: 1px solid buttonface; padding: 1px; text-align: center; cursor: default;}");
  195. document.write(".coolButton IMG {filter: gray();}");
  196. document.write("</style>");