/[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

Annotation of /trunk/hide.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 21 - (hide 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 dpavlin 16 /*
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 dpavlin 15 var changed_display_ids = [];
9     var changed_display_pos = 0;
10 dpavlin 16 var id_cache = [];
11 dpavlin 15
12 dpavlin 19 var debug_on = true;
13     function debug(text) {
14     if (debug_on) debug_on = confirm(text);
15     }
16    
17 dpavlin 16 function element_id(id) {
18     if (id_cache[id]) {
19 dpavlin 19 //debug("from cache "+id+" == "+id_cache[id]);
20 dpavlin 16 return id_cache[id];
21     } else {
22 dpavlin 19 var el = self.document.getElementById(id);
23     //debug("getElementById("+id+") == "+el);
24 dpavlin 16 if (el) {
25     id_cache[id] = el;
26     return el;
27     }
28 dpavlin 19 //} else debug("can't find element "+id);
29 dpavlin 16 }
30 dpavlin 19 return null;
31 dpavlin 16 }
32    
33 dpavlin 15 function toggle_display(name,dont_save) {
34 dpavlin 16 var el = element_id(name);
35 dpavlin 14 if (el) {
36 dpavlin 19 //debug("toggle "+name+" == "+el.id+" current: '"+el.style.display+"'");
37    
38 dpavlin 13 if (el.style.display=='none')
39     el.style.display = '';
40     else
41     el.style.display = 'none';
42 dpavlin 15
43     if (! dont_save) changed_display_ids[changed_display_pos++] = name;
44 dpavlin 13 }
45    
46     return false;
47     }
48 dpavlin 14
49 dpavlin 16 function default_display() {
50 dpavlin 20 if (changed_display_pos == 0) return null;
51 dpavlin 18
52     for (var i = 0; i < changed_display_pos; i++) {
53 dpavlin 15 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 dpavlin 16 function reset_changed() {
77     changed_display_ids.length = 0;
78     changed_display_pos = 0;
79     }
80 dpavlin 15
81 dpavlin 14 function set_display(name,display) {
82 dpavlin 16 var el = element_id(name);
83 dpavlin 14
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 dpavlin 16 reset_changed();
95 dpavlin 14 }
96    
97     function hide_display(hide) {
98     for (var i = 0; i < hide.length; i++) {
99     set_display(hide[i],'none');
100     }
101 dpavlin 16 reset_changed();
102 dpavlin 14 }
103    
104     function show_hide_display(show,hide) {
105     show_display(show);
106     hide_display(hide);
107     }
108 dpavlin 17
109     function outline_display(name) {
110    
111     var el = element_id(name);
112    
113 dpavlin 21 //debug("outline "+name);
114    
115 dpavlin 17 if (el) {
116 dpavlin 21 el.style.backgroundColor = "#ffff66";
117     //el.style.border = "1px dashed #c0c0c0";
118 dpavlin 17
119     if (el.style.display=='none') toggle_display(el.id);
120    
121     // recursivly show elements to root
122     while (el.parentNode) {
123 dpavlin 20 el=el.parentNode;
124 dpavlin 18 if (el.style && el.style.display=='none') toggle_display(el.id);
125 dpavlin 17 }
126     }
127     }

  ViewVC Help
Powered by ViewVC 1.1.26