
var appCore = null;


function onLoadViewSource() 
{
  viewSource(window.arguments[0]);
}

function viewSource(url)
{
  if (!url)
    return false; // throw Components.results.NS_ERROR_FAILURE;
  try {
    createBrowserInstance();
    if (appCore == null) {
    // Give up.
    window.close();
    return false;
    }

    // Initialize browser instance..
    appCore.setWebShellWindow(window);
  }

  catch(ex) {
  }

  var docShellElement = document.getElementById("content");
  var docShell = docShellElement.docShell;
  docShell.viewMode = Components.interfaces.nsIDocShell.viewSource;
  var webNav = docShell.QueryInterface(Components.interfaces.nsIWebNavigation);

  try {
      if (window.arguments && window.arguments[1]) {
          if (window.arguments[1].indexOf('charset=') != -1) {
              var arrayArgComponents = window.arguments[1].split('=');
              if (arrayArgComponents) {
                appCore.SetDocumentCharset(arrayArgComponents[1]);
              } 
          }
      }
  }

  catch(ex) {
  }

  var loadFlags = Components.interfaces.nsIWebNavigation.LOAD_FLAGS_NONE;
  webNav.loadURI(url, loadFlags);
  return true;
}

function createBrowserInstance()
{
  appCore = Components
    .classes[ "@mozilla.org/appshell/component/browser/instance;1" ]
    .createInstance( Components.interfaces.nsIBrowserInstance );
}

function BrowserClose()
{
  window.close();
}

function getMarkupDocumentViewer()
{
  return document.getElementById("content").markupDocumentViewer;
}

function BrowserFind()
{
  if (appCore)
    appCore.find();
}


function BrowserFindAgain()
{
  if (appCore)
    appCore.findNext();      
}

