function (s, doc, microblogPane) {
      var TabManager = function (doc) {
        this.tablist = {}
        this.doc = doc
        this.tabView = doc.createElement('ul')
        this.tabView.className = 'tabslist'
      }
      TabManager.prototype.create = function (id, caption, view, isDefault) {
        var tab = this.doc.createElement('li')
        tab.innerHTML = caption
        if (isDefault) { tab.className = 'active' }
        tab.id = id
        let change = this.change
        let tablist = this.tablist
        tab.addEventListener('click', function (evt) { change(evt.target.id, tablist, doc) }, false)

        this.tablist[id] = {'view': view.id, 'tab': tab}
        this.tabView.appendChild(tab)
      }
      TabManager.prototype.getTabView = function () {
        return this.tabView
      }
      TabManager.prototype.change = function (id, tablist, doc) {
        for (var tab in tablist) {
          if (tab === id) {
            tablist[id]['tab'].className = 'active'
            doc.getElementById(tablist[id]['view']).className += ' active'
          } else {
            var view = doc.getElementById(tablist[tab].view)
            view.className = view.className.replace(/\w*active\w*/, '')
            tablist[tab].tab.className = tablist[id].tab.className.replace(/\w*active\w*/, '')
          }
        }
      }
      this.microblogPane = microblogPane
      var accounts = kb.each(s, FOAF('holdsAccount'))
      for (var a in accounts) {
        if (kb.whether(accounts[a], RDF('type'), SIOC('User')) &&
          kb.whether(kb.any(accounts[a], SIOC('creator_of')), RDF('type'), SIOCt('Microblog'))) {
          var account = accounts[a]
          break
        }
      }
      this.Ifollow = kb.whether(kb.sym(mb.getMyURI()), SIOC('follows'), account)
      var resourceType = kb.any(s, RDF('type'))
      if (resourceType.uri === SIOCt('Microblog').uri || resourceType.uri === SIOCt('MicroblogPost').uri) {
        this.thisIsMe = (kb.any(s, SIOC('has_creator')).uri === mb.getMyURI())
      } else if (resourceType.uri === SIOC('User').uri) {
        this.thisIsMe = (s.uri === mb.getMyURI())
      } else if (resourceType.uri === FOAF('Person').uri) {
        let me = UI.authn.currentUser()
        let meUri = me && me.uri
        this.thisIsMe = (s.uri === meUri)
      } else {
        this.thisIsMe = false
      }

      this.Tab = new TabManager(doc)
    }
function (s, doc, microblogPane) {
      var TabManager = function (doc) {
        this.tablist = {}
        this.doc = doc
        this.tabView = doc.createElement('ul')
        this.tabView.className = 'tabslist'
      }
      TabManager.prototype.create = function (id, caption, view, isDefault) {
        var tab = this.doc.createElement('li')
        tab.innerHTML = caption
        if (isDefault) { tab.className = 'active' }
        tab.id = id
        let change = this.change
        let tablist = this.tablist
        tab.addEventListener('click', function (evt) { change(evt.target.id, tablist, doc) }, false)

        this.tablist[id] = {'view': view.id, 'tab': tab}
        this.tabView.appendChild(tab)
      }
      TabManager.prototype.getTabView = function () {
        return this.tabView
      }
      TabManager.prototype.change = function (id, tablist, doc) {
        for (var tab in tablist) {
          if (tab === id) {
            tablist[id]['tab'].className = 'active'
            doc.getElementById(tablist[id]['view']).className += ' active'
          } else {
            var view = doc.getElementById(tablist[tab].view)
            view.className = view.className.replace(/\w*active\w*/, '')
            tablist[tab].tab.className = tablist[id].tab.className.replace(/\w*active\w*/, '')
          }
        }
      }
      this.microblogPane = microblogPane
      var accounts = kb.each(s, FOAF('holdsAccount'))
      for (var a in accounts) {
        if (kb.whether(accounts[a], RDF('type'), SIOC('User')) &&
          kb.whether(kb.any(accounts[a], SIOC('creator_of')), RDF('type'), SIOCt('Microblog'))) {
          var account = accounts[a]
          break
        }
      }
      this.Ifollow = kb.whether(kb.sym(mb.getMyURI()), SIOC('follows'), account)
      var resourceType = kb.any(s, RDF('type'))
      if (resourceType.uri === SIOCt('Microblog').uri || resourceType.uri === SIOCt('MicroblogPost').uri) {
        this.thisIsMe = (kb.any(s, SIOC('has_creator')).uri === mb.getMyURI())
      } else if (resourceType.uri === SIOC('User').uri) {
        this.thisIsMe = (s.uri === mb.getMyURI())
      } else if (resourceType.uri === FOAF('Person').uri) {
        let me = UI.authn.currentUser()
        let meUri = me && me.uri
        this.thisIsMe = (s.uri === meUri)
      } else {
        this.thisIsMe = false
      }

      this.Tab = new TabManager(doc)
    }
function ( s , doc , microblogPane ) { var TabManager = function ( doc ) { this . tablist = { } this . doc = doc this . tabView = doc . createElement ( 'ul' ) this . tabView . className = 'tabslist' } TabManager . prototype . create = function ( id , caption , view , isDefault ) { var tab = this . doc . createElement ( 'li' ) tab . innerHTML = caption if ( isDefault ) { tab . className = 'active' } tab . id = id let change = this . change let tablist = this . tablist tab . addEventListener ( 'click' , function ( evt ) { change ( evt . target . id , tablist , doc ) } , false ) this . tablist [ id ] = { 'view' : view . id , 'tab' : tab } this . tabView . appendChild ( tab ) } TabManager . prototype . getTabView = function ( ) { return this . tabView } TabManager . prototype . change = function ( id , tablist , doc ) { for ( var tab in tablist ) { if ( tab === id ) { tablist [ id ] [ 'tab' ] . className = 'active' doc . getElementById ( tablist [ id ] [ 'view' ] ) . className += ' active' } else { var view = doc . getElementById ( tablist [ tab ] . view ) view . className = view . className . replace ( / \w*active\w* / , '' ) tablist [ tab ] . tab . className = tablist [ id ] . tab . className . replace ( / \w*active\w* / , '' ) } } } this . microblogPane = microblogPane var accounts = kb . each ( s , FOAF ( 'holdsAccount' ) ) for ( var a in accounts ) { if ( kb . whether ( accounts [ a ] , RDF ( 'type' ) , SIOC ( 'User' ) ) && kb . whether ( kb . any ( accounts [ a ] , SIOC ( 'creator_of' ) ) , RDF ( 'type' ) , SIOCt ( 'Microblog' ) ) ) { var account = accounts [ a ] break } } this . Ifollow = kb . whether ( kb . sym ( mb . getMyURI ( ) ) , SIOC ( 'follows' ) , account ) var resourceType = kb . any ( s , RDF ( 'type' ) ) if ( resourceType . uri === SIOCt ( 'Microblog' ) . uri || resourceType . uri === SIOCt ( 'MicroblogPost' ) . uri ) { this . thisIsMe = ( kb . any ( s , SIOC ( 'has_creator' ) ) . uri === mb . getMyURI ( ) ) } else if ( resourceType . uri === SIOC ( 'User' ) . uri ) { this . thisIsMe = ( s . uri === mb . getMyURI ( ) ) } else if ( resourceType . uri === FOAF ( 'Person' ) . uri ) { let me = UI . authn . currentUser ( ) let meUri = me && me . uri this . thisIsMe = ( s . uri === meUri ) } else { this . thisIsMe = false } this . Tab = new TabManager ( doc ) }
* ********************************************** FRONT END FUNCTIONALITY * ********************************************** ---------------------------------------------- PANE User Interface for the Microblog Pane ----------------------------------------------
* ********************************************** FRONT END FUNCTIONALITY * ********************************************** ---------------------------------------------- PANE User Interface for the Microblog Pane ----------------------------------------------