function mainAppInit()
{
  // Various links
  YAHOO.util.Event.addListener("hide-advanced", "click", hideAdvancedClickListener);
  YAHOO.util.Event.addListener("show-advanced", "click", showAdvancedClickListener);

  // Update search field based on the query (browsers normally don't
  // change text field values when pressing "Back", which is good for
  // long forms, but not for our case.
  YAHOO.util.Dom.get('search-field').value = query;
  YAHOO.util.Dom.get('search-field').focus();
  YAHOO.util.Dom.get('search-field').select();
}

/** Showing/hinding advanced option */
function showAdvancedClickListener()
{
  Dom.show('adv-opts');
  Dom.hide('adv-switch');
  Dom.show('sim-switch');
  YAHOO.util.Dom.get('search-field').focus();
  YAHOO.util.Dom.get('search-field').select();
  YAHOO.util.Dom.get('opts').value = 's';

  return false;
}

function hideAdvancedClickListener()
{
  Dom.hide('adv-opts');
  Dom.show('adv-switch');
  Dom.hide('sim-switch');
  YAHOO.util.Dom.get('search-field').focus();
  YAHOO.util.Dom.get('search-field').select();
  YAHOO.util.Dom.get('opts').value = 'h';

  return false;
}

function afterClustersLoaded()
{
  Dom.hide("clusters-progress");
}

function afterDocsLoaded()
{
  Dom.hide("docs-progress");
}

function switchTab(tabElemName, processId)
{
  var main = document.getElementById(tabElemName);
  hideByIdFragment("-tab", "table");
  hideByIdFragment("-desc", "div");
  main.value = processId;
  Dom.show(processId + "-tab");
  Dom.show(processId + "-desc");
  YAHOO.util.Dom.get('search-field').focus();
  YAHOO.util.Dom.get('search-field').select();
}

function hideByIdFragment(idFragment, tagName)
{
  var elems = document.getElementsByTagName(tagName);
  for (var i = 0; i < elems.length; i++)
  {
    if (elems[i].id.indexOf(idFragment) >= 0)
    {
      Dom.hide(elems[i].id);
    }
  }
}