outline/manager.js
function outlineCollapse (p, subject) {
    var row = UI.utils.ancestor(p, 'TR')
    row = UI.utils.ancestor(row.parentNode, 'TR') // two levels up
    if (row) var statement = row.AJAR_statement
    var level // find level (the enclosing TD)
    for (level = p.parentNode; level.tagName !== 'TD'; level = level.parentNode) {
      if (typeof level === 'undefined') {
        alert('Not enclosed in TD!')
        return
      }
    }

    UI.log.debug('Collapsing subject ' + subject)
    var myview
    if (statement) {
      UI.log.debug('looking up pred ' + statement.predicate.uri + 'in defaults')
      myview = views.defaults[statement.predicate.uri]
    }
    UI.log.debug('view= ' + myview)
    if (level.parentNode.parentNode.id === 'outline') {
      var deleteNode = level.parentNode
    }
    thisOutline.replaceTD(thisOutline.outlineObjectTD(subject, myview, deleteNode, statement), level)
  }
function outlineCollapse (p, subject) {
    var row = UI.utils.ancestor(p, 'TR')
    row = UI.utils.ancestor(row.parentNode, 'TR') // two levels up
    if (row) var statement = row.AJAR_statement
    var level // find level (the enclosing TD)
    for (level = p.parentNode; level.tagName !== 'TD'; level = level.parentNode) {
      if (typeof level === 'undefined') {
        alert('Not enclosed in TD!')
        return
      }
    }

    UI.log.debug('Collapsing subject ' + subject)
    var myview
    if (statement) {
      UI.log.debug('looking up pred ' + statement.predicate.uri + 'in defaults')
      myview = views.defaults[statement.predicate.uri]
    }
    UI.log.debug('view= ' + myview)
    if (level.parentNode.parentNode.id === 'outline') {
      var deleteNode = level.parentNode
    }
    thisOutline.replaceTD(thisOutline.outlineObjectTD(subject, myview, deleteNode, statement), level)
  }
outlineExpand