var noun_type_ubercart_ref = { _name: "function name", get_functions: function(text) { var functions = []; if(text.length > 0 && text !== 'drupal ') { jQuery.ajax({ url: 'http://api.ubercart.org/api/autocomplete/1.0/' + text, dataType: "json", async: false, success: function(data){ for (var functionName in data) { functions.push(functionName); } } }); } else { functions.push(' '); } return functions; }, suggest: function( text, html ) { var suggestions = []; var functions = noun_type_ubercart_ref.get_functions(text); for (var i = 0; i < functions.length; i++) { suggestions.push(CmdUtils.makeSugg(functions[i])); } return suggestions; } } CmdUtils.CreateCommand({ name: "ubercart", takes: {"function name": noun_type_ubercart_ref}, homepage: "http://eusouopedro.com/", author: { name: "Pedro Faria", email: "eu@eusouopedro.com"}, contributors: ["Pedro Faria", "Josh Huckabee"], license: "MPL", preview: function( pblock, directObject ) { var functionName = directObject.text; if (functionName.length > 1){ var msg = "Lookup %s in the Ubercart API."; pblock.innerHTML = msg.replace(/%s/, functionName); } else { pblock.innerHTML = "Lookup a function the Ubercart API."; } }, execute: function(directObject) { var doc = Application.activeWindow.activeTab.document; var apiURL = "http://api.ubercart.org/api/search/1.0/" + directObject.text; Utils.openUrlInBrowser(apiURL); } });