krumo.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /**
  2. * JavaScript routines for Krumo
  3. *
  4. * @link http://sourceforge.net/projects/krumo
  5. */
  6. /////////////////////////////////////////////////////////////////////////////
  7. /**
  8. * Krumo JS Class
  9. */
  10. function krumo() {
  11. }
  12. // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  13. /**
  14. * Add a CSS class to an HTML element
  15. *
  16. * @param HtmlElement el
  17. * @param string className
  18. * @return void
  19. */
  20. krumo.reclass = function(el, className) {
  21. if (el.className.indexOf(className) < 0) {
  22. el.className += (' ' + className);
  23. }
  24. }
  25. // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  26. /**
  27. * Remove a CSS class to an HTML element
  28. *
  29. * @param HtmlElement el
  30. * @param string className
  31. * @return void
  32. */
  33. krumo.unclass = function(el, className) {
  34. if (el.className.indexOf(className) > -1) {
  35. el.className = el.className.replace(className, '');
  36. }
  37. }
  38. // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  39. /**
  40. * Toggle the nodes connected to an HTML element
  41. *
  42. * @param HtmlElement el
  43. * @return void
  44. */
  45. krumo.toggle = function(el) {
  46. var ul = el.parentNode.getElementsByTagName('ul');
  47. for (var i=0; i<ul.length; i++) {
  48. if (ul[i].parentNode.parentNode == el.parentNode) {
  49. ul[i].parentNode.style.display = (window.getComputedStyle(ul[i].parentNode).display == 'none')
  50. ? 'block'
  51. : 'none';
  52. }
  53. }
  54. // toggle class
  55. //
  56. if (ul[0].parentNode.style.display == 'block') {
  57. krumo.reclass(el, 'krumo-opened');
  58. } else {
  59. krumo.unclass(el, 'krumo-opened');
  60. }
  61. }
  62. // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  63. /**
  64. * Hover over an HTML element
  65. *
  66. * @param HtmlElement el
  67. * @return void
  68. */
  69. krumo.over = function(el) {
  70. krumo.reclass(el, 'krumo-hover');
  71. }
  72. // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  73. /**
  74. * Hover out an HTML element
  75. *
  76. * @param HtmlElement el
  77. * @return void
  78. */
  79. krumo.out = function(el) {
  80. krumo.unclass(el, 'krumo-hover');
  81. }
  82. /////////////////////////////////////////////////////////////////////////////