/[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 21 - (show annotations)
Tue Sep 14 21:00:40 2004 UTC (19 years, 7 months ago) by dpavlin
File MIME type: application/javascript
File size: 2618 byte(s)
just highlight (<span> hopefully :-)

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 var debug_on = true;
13 function debug(text) {
14 if (debug_on) debug_on = confirm(text);
15 }
16
17 function element_id(id) {
18 if (id_cache[id]) {
19 //debug("from cache "+id+" == "+id_cache[id]);
20 return id_cache[id];
21 } else {
22 var el = self.document.getElementById(id);
23 //debug("getElementById("+id+") == "+el);
24 if (el) {
25 id_cache[id] = el;
26 return el;
27 }
28 //} else debug("can't find element "+id);
29 }
30 return null;
31 }
32
33 function toggle_display(name,dont_save) {
34 var el = element_id(name);
35 if (el) {
36 //debug("toggle "+name+" == "+el.id+" current: '"+el.style.display+"'");
37
38 if (el.style.display=='none')
39 el.style.display = '';
40 else
41 el.style.display = 'none';
42
43 if (! dont_save) changed_display_ids[changed_display_pos++] = name;
44 }
45
46 return false;
47 }
48
49 function default_display() {
50 if (changed_display_pos == 0) return null;
51
52 for (var i = 0; i < changed_display_pos; i++) {
53 toggle_display( changed_display_ids[i], 1 );
54 }
55 changed_display_pos = 0;
56 return false;
57 }
58
59 function back_display() {
60 if (changed_display_pos == 0) {
61 alert("can't go back in history");
62 return;
63 }
64 toggle_display( changed_display_ids[--changed_display_pos], 1 );
65 }
66
67 function forward_display() {
68 if (changed_display_pos == changed_display_ids.length) {
69 alert("can't go forward in history");
70 return;
71 }
72
73 toggle_display( changed_display_ids[changed_display_pos++], 1 );
74 }
75
76 function reset_changed() {
77 changed_display_ids.length = 0;
78 changed_display_pos = 0;
79 }
80
81 function set_display(name,display) {
82 var el = element_id(name);
83
84 if (el) el.style.display = display
85 else alert("can't set_display("+name+","+display+")");
86
87 return false;
88 }
89
90 function show_display(show) {
91 for (var i = 0; i < show.length; i++) {
92 set_display(show[i],'');
93 }
94 reset_changed();
95 }
96
97 function hide_display(hide) {
98 for (var i = 0; i < hide.length; i++) {
99 set_display(hide[i],'none');
100 }
101 reset_changed();
102 }
103
104 function show_hide_display(show,hide) {
105 show_display(show);
106 hide_display(hide);
107 }
108
109 function outline_display(name) {
110
111 var el = element_id(name);
112
113 //debug("outline "+name);
114
115 if (el) {
116 el.style.backgroundColor = "#ffff66";
117 //el.style.border = "1px dashed #c0c0c0";
118
119 if (el.style.display=='none') toggle_display(el.id);
120
121 // recursivly show elements to root
122 while (el.parentNode) {
123 el=el.parentNode;
124 if (el.style && el.style.display=='none') toggle_display(el.id);
125 }
126 }
127 }

  ViewVC Help
Powered by ViewVC 1.1.26