/[webpac]/trunk2/eurovoc/js/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 /trunk2/eurovoc/js/hide.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 570 - (hide annotations)
Sun Oct 31 19:42:08 2004 UTC (19 years, 6 months ago) by dpavlin
File MIME type: application/javascript
File size: 2562 byte(s)
translation

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

  ViewVC Help
Powered by ViewVC 1.1.26