diff options
| author | ianb <devnull@localhost> | 2005-07-17 02:01:06 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2005-07-17 02:01:06 +0000 |
| commit | cd0a79327830df6dd299ea93dd49fdc9436244cb (patch) | |
| tree | e22d800a1208a6ed91626ed8cbf0bac95bf34819 /docs/web/site.js | |
| parent | 5a95682c2070005009a709631e66716786493c81 (diff) | |
| download | paste-cd0a79327830df6dd299ea93dd49fdc9436244cb.tar.gz | |
Redesign to display contents more nicely, and move blog off front page (which I didn't really want to do, but blogger was being a PITA)
Diffstat (limited to 'docs/web/site.js')
| -rw-r--r-- | docs/web/site.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/docs/web/site.js b/docs/web/site.js new file mode 100644 index 0000000..865b9a6 --- /dev/null +++ b/docs/web/site.js @@ -0,0 +1,68 @@ +function setup_dropdowns() { + var els = document.getElementsByTagName('UL'); + for (var i = 0; i < els.length; i++) { + var el = els[i]; + if (el.className.search(/\bcontents\b/) > -1) { + enable_dropdown(el); + } + } +} + +function enable_dropdown(el) { + var title = el.getElementsByTagName('LI')[0]; + var plus_minus = document.createTextNode(' [-]'); + if (title.childNodes[0].tagName != 'A') { + anchor = document.createElement('A'); + while (title.childNodes.length) { + anchor.appendChild(title.childNodes[0]); + } + anchor.setAttribute('href', '#'); + anchor.style.padding = '1px'; + title.appendChild(anchor); + } else { + anchor = title.childNodes[0]; + } + anchor.appendChild(plus_minus); + function show_hide() { + if (el.sub_hidden) { + set_sub_li(el, ''); + anchor.removeChild(plus_minus); + plus_minus = document.createTextNode(' [-]'); + anchor.appendChild(plus_minus); + } else { + set_sub_li(el, 'none'); + anchor.removeChild(plus_minus); + plus_minus = document.createTextNode(' [+]'); + anchor.appendChild(plus_minus); + } + el.sub_hidden = ! el.sub_hidden; + return false; + } + anchor.onclick = show_hide; +} + +function set_sub_li(list, display) { + var sub = list.getElementsByTagName('LI'); + for (var i = 1; i < sub.length; i++) { + sub[i].style.display = display; + } +} + +function add_onload(func) { + if (window.onload) { + var old_onload = window.onload; + function new_onload() { + old_onload(); + func(); + } + window.onload = new_onload; + } else { + window.onload = func; + } +} + +add_onload(setup_dropdowns); + + + + |
