1function 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
22function updateStripes()
23{
24  $('table.directory tr').
25       removeClass('even').filter(':visible:even').addClass('even');
26}
27function toggleLevel(level)
28{
29  $('table.directory tr').each(function(){
30    var l = this.id.split('_').length-1;
31    var i = $('#img'+this.id.substring(3));
32    var a = $('#arr'+this.id.substring(3));
33    if (l<level+1) {
34      i.attr('src','ftv2folderopen.png');
35      a.attr('src','ftv2mnode.png');
36      $(this).show();
37    } else if (l==level+1) {
38      i.attr('src','ftv2folderclosed.png');
39      a.attr('src','ftv2pnode.png');
40      $(this).show();
41    } else {
42      $(this).hide();
43    }
44  });
45  updateStripes();
46}
47
48function toggleFolder(id)
49{
50  //The clicked row
51  var currentRow = $('#row_'+id);
52  var currentRowImages = currentRow.find("img");
53
54  //All rows after the clicked row
55  var rows = currentRow.nextAll("tr");
56
57  //Only match elements AFTER this one (can't hide elements before)
58  var childRows = rows.filter(function() {
59    var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
60    return this.id.match(re);
61  });
62
63  //First row is visible we are HIDING
64  if (childRows.filter(':first').is(':visible')===true) {
65    currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
66    currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
67    rows.filter("[id^=row_"+id+"]").hide();
68  } else { //We are SHOWING
69    //All sub images
70    var childImages = childRows.find("img");
71    var childImg = childImages.filter("[id^=img]");
72    var childArr = childImages.filter("[id^=arr]");
73
74    currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
75    currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
76    childImg.attr('src','ftv2folderclosed.png'); //children closed
77    childArr.attr('src','ftv2pnode.png'); //children closed
78    childRows.show(); //show all children
79  }
80  updateStripes();
81}
82
83
84function 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
98