function _ascb_renderPrepDirectory (prepdir, base, cb) {
      for (i in prepdir) {
        cb($('<li id="dir-'+prepdir[i][0].id+'">'+
             '  <a href="#" onclick="return ascb_loadDirectory('+prepdir[i][0].id+');">'+prepdir[i][0].name+'</a>'+
             '</li>').appendTo(base).data('dsid', prepdir[i][0].id).data('subdir', true), prepdir[i][0]);
        if (prepdir[i][1].length) {
          var ul = $('<ul>').appendTo(base);
          for (j in prepdir[i][1]) {
            cb($('<li ' +
                 (prepdir[i][1][j].group ? 'class="isgroup" ':'') +
                 'id="dir-'+prepdir[i][1][j].id+'">'+
                 '  <a href="#" onclick="return ascb_loadDirectory('+prepdir[i][1][j].id+');">'+
                      prepdir[i][1][j].name+
                 '  </a>'+
                 '</li>').appendTo(ul)
                         .data('dsid', prepdir[i][1][j].id)
                         .data('group',prepdir[i][1][j].group)
                         .data('groupfeatured',prepdir[i][1][j].groupfeatured || null));
          }
        }
      }
}
                
function ascb_prepDirectories (cb, onlyprivate) {
  var base = $('#directories ul:first');
  base.empty();
  var params = {};
  if (!onlyprivate) {
    base.append('<li class="shared" id="dir-recent"><a href="#" onclick="return ascb_loadRecent()">Recent</a></li>');
  } else {
    params.onlyprivate = true;
  }
  var callback = function (success, rv) {
    if (success && rv) {
      rv.shared && _ascb_renderPrepDirectory(rv.shared, base,
                                             function (elm) {elm.data('public', true).addClass('shared');});
      rv.annotator && _ascb_renderPrepDirectory(rv.annotator, base,
                                                function (elm,pd) { if (pd) {elm.addClass('priv-'+pd.name);}});
	rv.review && _ascb_renderPrepDirectory(rv.review, base,
                                               function (elm, pd) {
                                                   if (pd) {elm.addClass('review-'+pd.name);}
						   elm.addClass('shared');
                                               });
    } else {
      alert('Failed to list directories!');
    }
    cb && cb(success);
  };
  if (!$('.blockMsg').length) {
    gs_modalJson ( '/ascb_il/listDirectories/', params, callback);
  } else {
    gs_json ( '/ascb_il/listDirectories/', params, callback);
  }
}

function ascb_popHelp (elm) {
  var w = window.open($(elm).attr('href'), '_help',
              "toolbar=no,location=yes,directories=no,status=yes,menubar=no, scrollbars=yes,resizable=yes,width=600,height=480");
  w.focus();
  if (w.location.href.lastIndexOf($(elm).attr('href')) > -1) {
    w.location.reload(true);
  }
  return false;
}

function ascb_resetSearch (did, t) {
    var dd = $('select[name=searchCtx]');
    if (did) {
      $('option', dd).eq(0).text(t).attr('selected','selected').val(did);
      dd.show();
    } else {
      dd.hide();
    }
  };

