/[bfilter]/trunk/hide.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/hide.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 17 - (show annotations)
Sun Sep 12 20:30:47 2004 UTC (19 years, 7 months ago) by dpavlin
File MIME type: application/javascript
File size: 2211 byte(s)
new function to outline and display element by id

1 /*
2 simple yet powerful implementation of show/hide effect
3 with history navigation (back/forward/default)
4
5 Dobrica Pavlinusic <dpavlin@rot13.org> 2004-09-12
6 */
7
8 var changed_display_ids = [];
9 var changed_display_pos = 0;
10 var id_cache = [];
11
12 function element_id(id) {
13 if (id_cache[id]) {
14 return id_cache[id];
15 } else {
16 var el = document.getElementById(id);
17 if (el) {
18 id_cache[id] = el;
19 return el;
20 }
21 }
22 }
23
24 function toggle_display(name,dont_save) {
25 var el = element_id(name);
26 if (el) {
27 if (el.style.display=='none')
28 el.style.display = '';
29 else
30 el.style.display = 'none';
31
32 if (! dont_save) changed_display_ids[changed_display_pos++] = name;
33 }
34
35 return false;
36 }
37
38 function default_display() {
39 for (var i = 0; i <= changed_display_pos; i++) {
40 toggle_display( changed_display_ids[i], 1 );
41 }
42 changed_display_pos = 0;
43 return false;
44 }
45
46 function back_display() {
47 if (changed_display_pos == 0) {
48 alert("can't go back in history");
49 return;
50 }
51 toggle_display( changed_display_ids[--changed_display_pos], 1 );
52 }
53
54 function forward_display() {
55 if (changed_display_pos == changed_display_ids.length) {
56 alert("can't go forward in history");
57 return;
58 }
59
60 toggle_display( changed_display_ids[changed_display_pos++], 1 );
61 }
62
63 function reset_changed() {
64 changed_display_ids.length = 0;
65 changed_display_pos = 0;
66 }
67
68 function set_display(name,display) {
69 var el = element_id(name);
70
71 if (el) el.style.display = display
72 else alert("can't set_display("+name+","+display+")");
73
74 return false;
75 }
76
77 function show_display(show) {
78 for (var i = 0; i < show.length; i++) {
79 set_display(show[i],'');
80 }
81 reset_changed();
82 }
83
84 function hide_display(hide) {
85 for (var i = 0; i < hide.length; i++) {
86 set_display(hide[i],'none');
87 }
88 reset_changed();
89 }
90
91 function show_hide_display(show,hide) {
92 show_display(show);
93 hide_display(hide);
94 }
95
96 function outline_display(name) {
97
98 var el = element_id(name);
99
100 if (el) {
101 el.style.background = "#e0e0e0";
102 el.style.border = "1px dashed #c0c0c0";
103
104 if (el.style.display=='none') toggle_display(el.id);
105
106 // recursivly show elements to root
107 while (el.parentNode) {
108 var el=el.parentNode;
109 if (el.style.display=='none') toggle_display(el.id);
110 }
111 }
112 }

  ViewVC Help
Powered by ViewVC 1.1.26