![]() |
|---|
| [ Index ] |
Source Code Reference for V1.00 |
[Summary view] [Print] [Text view]
1 /** 2 * Support for collapsible views. 3 * 4 * Rows are marked with an ID. Rows are deleted by ID, or added by ID. 5 * The user 6 */ 7 8 var saved_rows = new Comparable; 9 10 function toggle_collapse(item, collapse) { 11 var item_image = document.getElementById('image_' + item); 12 if (! item_image) { 13 return false; 14 } 15 // Grab the row that belongs to the icon 16 var item_elem = document.getElementById('r_' + item); 17 var parent = item_elem.parentNode; 18 // Check to see if the item is toggled. 19 // This braindead method is required because IE does not 20 // implement substr correctly and you cannot use negative 21 // offsets. Why anyone would use such a crappy browser is 22 // beyond me. 23 var bottom = item_image.name.substr(item_image.name.length-2,2); 24 if (bottom == '_0') { 25 // Item is collapsed, expand it. 26 if (collapse) { 27 return false; 28 } 29 var orig = saved_rows.find(item); 30 if (orig) { 31 // Find the next sibling and insert the node before it. 32 var next = item_elem.nextSibling; 33 for (var j = 0, j_cmp = orig.length; j < j_cmp; j++) 34 parent.insertBefore(orig[j], next); 35 item_image.name = item_image.id + '_1'; 36 item_image.src = './images/arrow-down.gif'; 37 } 38 } else { 39 // Item is expanded, collapse it. 40 item_image.name = item_image.id + '_0'; 41 item_image.src = './images/arrow-right.gif'; 42 var row_array = new Array(); 43 var rid = 0; 44 var sib = item_elem.nextSibling; 45 var level_item = document.getElementById('rl_' + item); 46 var level = level_item.value; 47 while (sib) { 48 if (! sib.id) { 49 sib = sib.nextSibling; 50 continue; 51 } 52 var sib_id = sib.id.substr(2); 53 var sublevel = document.getElementById('rl_' + sib_id).value; 54 if (sublevel <= level) 55 break; 56 var nxt = sib.nextSibling; 57 // Now delete the row 58 row_array[rid++] = parent.removeChild(sib); 59 sib = nxt; 60 } 61 saved_rows.add(item, row_array); 62 } 63 return true; 64 } 65 66 function collapse_all(parent) { 67 var parent_elem = document.getElementById(parent); 68 for (var i = 0, i_cmp = parent_elem.childNodes.length; i < i_cmp; i++) { 69 if (parent_elem.childNodes[i].tagName == 'TR' && parent_elem.childNodes[i].id) { 70 toggle_collapse(parent_elem.childNodes[i].id.substr(2), true); 71 } 72 } 73 } 74 75 var show_tab_function = null; 76 var hide_tab_function = null; 77 78 function show_tab(i) { 79 hide_tabs(); 80 if (show_tab_function) { 81 show_tab_function(i); 82 return; 83 } 84 var tab = document.getElementById('tab_' + i); 85 tab.style.display = 'block'; 86 tab = document.getElementById('toptab_' + i); 87 tab.className = 'tabon'; 88 } 89 90 function hide_tabs() { 91 if (hide_tab_function) { 92 hide_tab_function(); 93 return; 94 } 95 var tabs = document.getElementsByTagName('td'); 96 var i; 97 for(i = 0; i < tabs.length; i++) { 98 if (tabs[i].className == 'tabon') { 99 tabs[i].className = 'taboff'; 100 } 101 } 102 103 tabs = document.getElementsByTagName('div'); 104 for(i = 0; i < tabs.length; i++) { 105 if (tabs[i].className == 'tab') { 106 tabs[i].style.display = 'none'; 107 } 108 } 109 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Nov 20 03:00:14 2008 | Cross-referenced by PHPXref 0.7 |