CmdUtils.CreateCommand({
  name: "tahiti",
  homepage: "http://www.pythian.com/",
  author: { name: "Don Seiler", email: "seiler@pythian.com"},
  license: "GPLv2",
  description: "Executes search of Oracle RDBMS documentation.",
  help: "Specify search terms and version (9iR2, 10gR1, 10gR2, 11gR1).  If no version is specified, or specified version is not recognized, all version will be searched.  Specifying a version without a revision will default to the latest revision.",
  takes: {"search term": noun_arb_text},
  modifiers: {in: noun_arb_text},

  preview: function( pblock, term, mods ) {
    var msg = 'Searches tahiti in {$in} for "{$term}".';
    var subs = {term: term.text, in: mods.in.text};

    pblock.innerHTML = CmdUtils.renderTemplate( msg, subs );
  },

  execute: function( term, mods) {
    var searchterm = term.text || CmdUtils.getTextSelection();
    var urlDefault = "http://www.oracle.com/pls/db102/print_hit_summary?search_string={TERM}";
    var url9iR2 = "http://www.oracle.com/pls/db92/db92.drilldown?word={TERM}";
    var url10gR1 = "http://www.oracle.com/pls/db10g/search?word={TERM}";
    var url10gR2 = "http://www.oracle.com/pls/db102/search?word={TERM}";
    var url11gR1 = "http://www.oracle.com/pls/db111/search?word={TERM}";

    var version = mods.in.text || '';
    version = version.toLowerCase();

    var url = '';
    switch(version) {
      case '9i':
      case '9ir2':
        url = url9iR2;
        break;
      case '10gr1':
        url = url10gR1;
        break;
      case '10g':
      case '10gr2':
        url = url10gR2;
        break;
      case '11g':
      case '11gr1':
        url = url11gR1;
        break;
      default:
        url = urlDefault; // Default to all version tahiti search
    }

    url = url.replace("{TERM}", searchterm);
    Utils.openUrlInBrowser(url);
  }
})

