dynsections.js 3.07 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
function toggleVisibility(linkObj)
{
 var base = $(linkObj).attr('id');
 var summary = $('#'+base+'-summary');
 var content = $('#'+base+'-content');
 var trigger = $('#'+base+'-trigger');
 var src=$(trigger).attr('src');
 if (content.is(':visible')===true) {
   content.hide();
   summary.show();
   $(linkObj).addClass('closed').removeClass('opened');
   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
 } else {
   content.show();
   summary.hide();
   $(linkObj).removeClass('closed').addClass('opened');
   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
 } 
 return false;
}

function updateStripes()
{
  $('table.directory tr').
       removeClass('even').filter(':visible:even').addClass('even');
}
27

28 29
function toggleLevel(level)
{
30
  $('table.directory tr').each(function() {
31 32 33 34
    var l = this.id.split('_').length-1;
    var i = $('#img'+this.id.substring(3));
    var a = $('#arr'+this.id.substring(3));
    if (l<level+1) {
35 36
      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
      a.html('&#9660;');
37 38
      $(this).show();
    } else if (l==level+1) {
39 40
      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
      a.html('&#9658;');
41 42 43 44 45 46 47
      $(this).show();
    } else {
      $(this).hide();
    }
  });
  updateStripes();
}
48 49

function toggleFolder(id)
50
{
51
  // the clicked row
52 53
  var currentRow = $('#row_'+id);

54
  // all rows after the clicked row
55 56
  var rows = currentRow.nextAll("tr");

57
  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
58

59 60
  // only match elements AFTER this one (can't hide elements before)
  var childRows = rows.filter(function() { return this.id.match(re); });
61

62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
  // first row is visible we are HIDING
  if (childRows.filter(':first').is(':visible')===true) {
    // replace down arrow by right arrow for current row
    var currentRowSpans = currentRow.find("span");
    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
    currentRowSpans.filter(".arrow").html('&#9658;');
    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
  } else { // we are SHOWING
    // replace right arrow by down arrow for current row
    var currentRowSpans = currentRow.find("span");
    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
    currentRowSpans.filter(".arrow").html('&#9660;');
    // replace down arrows by right arrows for child rows
    var childRowsSpans = childRows.find("span");
    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
    childRowsSpans.filter(".arrow").html('&#9658;');
78
    childRows.show(); //show all children
79 80 81 82
  }
  updateStripes();
}

83

84 85 86 87 88 89
function toggleInherit(id)
{
  var rows = $('tr.inherit.'+id);
  var img = $('tr.inherit_header.'+id+' img');
  var src = $(img).attr('src');
  if (rows.filter(':first').is(':visible')===true) {
Dimitri van Heesch's avatar
Dimitri van Heesch committed
90
    rows.css('display','none');
91 92
    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
  } else {
Dimitri van Heesch's avatar
Dimitri van Heesch committed
93
    rows.css('display','table-row'); // using show() causes jump in firefox
94 95 96 97
    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
  }
}