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

Diff of /trunk/hide.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 15 by dpavlin, Sun Sep 12 18:25:03 2004 UTC revision 18 by dpavlin, Mon Sep 13 11:01:22 2004 UTC
# Line 1  Line 1 
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 = [];  var changed_display_ids = [];
9  var changed_display_pos = 0;  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) {  function toggle_display(name,dont_save) {
25          var el = eval("document.getElementById('"+name+"')");          var el = element_id(name);
26          if (el) {          if (el) {
27                  if (el.style.display=='none')                  if (el.style.display=='none')
28                          el.style.display = '';                          el.style.display = '';
# Line 15  function toggle_display(name,dont_save) Line 35  function toggle_display(name,dont_save)
35          return false;          return false;
36  }  }
37    
38  function apply_changed_display() {  function default_display() {
39          for (var i = 0; i <= changed_display_pos; i++) {          if (changed_display_pos == 0) return;
40    
41            for (var i = 0; i < changed_display_pos; i++) {
42                  toggle_display( changed_display_ids[i], 1 );                  toggle_display( changed_display_ids[i], 1 );
43          }          }
44          changed_display_pos = 0;          changed_display_pos = 0;
# Line 40  function forward_display() { Line 62  function forward_display() {
62          toggle_display( changed_display_ids[changed_display_pos++], 1 );          toggle_display( changed_display_ids[changed_display_pos++], 1 );
63  }  }
64    
65    function reset_changed() {
66            changed_display_ids.length = 0;
67            changed_display_pos = 0;
68    }
69    
70  function set_display(name,display) {  function set_display(name,display) {
71          var el = eval("document.getElementById('"+name+"')");          var el = element_id(name);
72    
73          if (el) el.style.display = display          if (el) el.style.display = display
74          else alert("can't set_display("+name+","+display+")");          else alert("can't set_display("+name+","+display+")");
# Line 54  function show_display(show) { Line 80  function show_display(show) {
80          for (var i = 0; i < show.length; i++) {          for (var i = 0; i < show.length; i++) {
81                  set_display(show[i],'');                  set_display(show[i],'');
82          }          }
83            reset_changed();
84  }  }
85    
86  function hide_display(hide) {  function hide_display(hide) {
87          for (var i = 0; i < hide.length; i++) {          for (var i = 0; i < hide.length; i++) {
88                  set_display(hide[i],'none');                  set_display(hide[i],'none');
89          }          }
90            reset_changed();
91  }  }
92    
93  function show_hide_display(show,hide) {  function show_hide_display(show,hide) {
94          show_display(show);          show_display(show);
95          hide_display(hide);          hide_display(hide);
96  }  }
97    
98    function outline_display(name) {
99    
100            var el = element_id(name);
101    
102            if (el) {
103                    el.style.background = "#e0e0e0";
104                    el.style.border = "1px dashed #c0c0c0";
105    
106                    if (el.style.display=='none') toggle_display(el.id);
107    
108                    // recursivly show elements to root
109                    while (el.parentNode) {
110                            var el=el.parentNode;
111                            if (el.style && el.style.display=='none') toggle_display(el.id);
112                    }
113            }
114    }

Legend:
Removed from v.15  
changed lines
  Added in v.18

  ViewVC Help
Powered by ViewVC 1.1.26