fw4spl
examples/author/html/dynsections.js
1 function toggleVisibility(linkObj)
2 {
3  var base = $(linkObj).attr('id');
4  var summary = $('#'+base+'-summary');
5  var content = $('#'+base+'-content');
6  var trigger = $('#'+base+'-trigger');
7  var src=$(trigger).attr('src');
8  if (content.is(':visible')===true) {
9  content.hide();
10  summary.show();
11  $(linkObj).addClass('closed').removeClass('opened');
12  $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
13  } else {
14  content.show();
15  summary.hide();
16  $(linkObj).removeClass('closed').addClass('opened');
17  $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
18  }
19  return false;
20 }
21 
22 function updateStripes()
23 {
24  $('table.directory tr').
25  removeClass('even').filter(':visible:even').addClass('even');
26 }
27 
28 function toggleLevel(level)
29 {
30  $('table.directory tr').each(function() {
31  var l = this.id.split('_').length-1;
32  var i = $('#img'+this.id.substring(3));
33  var a = $('#arr'+this.id.substring(3));
34  if (l<level+1) {
35  i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
36  a.html('&#9660;');
37  $(this).show();
38  } else if (l==level+1) {
39  i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
40  a.html('&#9658;');
41  $(this).show();
42  } else {
43  $(this).hide();
44  }
45  });
46  updateStripes();
47 }
48 
49 function toggleFolder(id)
50 {
51  // the clicked row
52  var currentRow = $('#row_'+id);
53 
54  // all rows after the clicked row
55  var rows = currentRow.nextAll("tr");
56 
57  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
58 
59  // only match elements AFTER this one (can't hide elements before)
60  var childRows = rows.filter(function() { return this.id.match(re); });
61 
62  // first row is visible we are HIDING
63  if (childRows.filter(':first').is(':visible')===true) {
64  // replace down arrow by right arrow for current row
65  var currentRowSpans = currentRow.find("span");
66  currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
67  currentRowSpans.filter(".arrow").html('&#9658;');
68  rows.filter("[id^=row_"+id+"]").hide(); // hide all children
69  } else { // we are SHOWING
70  // replace right arrow by down arrow for current row
71  var currentRowSpans = currentRow.find("span");
72  currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
73  currentRowSpans.filter(".arrow").html('&#9660;');
74  // replace down arrows by right arrows for child rows
75  var childRowsSpans = childRows.find("span");
76  childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
77  childRowsSpans.filter(".arrow").html('&#9658;');
78  childRows.show(); //show all children
79  }
80  updateStripes();
81 }
82 
83 
84 function toggleInherit(id)
85 {
86  var rows = $('tr.inherit.'+id);
87  var img = $('tr.inherit_header.'+id+' img');
88  var src = $(img).attr('src');
89  if (rows.filter(':first').is(':visible')===true) {
90  rows.css('display','none');
91  $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
92  } else {
93  rows.css('display','table-row'); // using show() causes jump in firefox
94  $(img).attr('src',src.substring(0,src.length-10)+'open.png');
95  }
96 }
97