CmdUtils.CreateCommand({
  name: "kogbox",
  homepage: "http://www.kogbox.com/",
  author: { name: "Jeffrey Warren", email: "jeff@kogbox.com"},
  license: "MIT",
  description: "Runs any Kogbox command from Ubiquity",
  takes: {"method-name": noun_arb_text},
  preview: function( pblock, method_name ) {
    pblock.innerHTML = "Loading description for "+method_name.text+"...";
    jQuery.ajax({ type: "GET",
              url: "http://kogbox.com/view/snippet/"+method_name.text+".xml", 
              data: "", 
              dataType: "xml", 
              success: function(xml){
       var description = "<b>Run "+jQuery("method-name", xml).text()+" by: "+jQuery("author", xml).text()+"</b><br />";
       description += jQuery("description", xml).text();
       pblock.innerHTML = description;}
    })
  },
  execute: function( method_name ) {
    var baseUrl = "http://www.kogbox.com/view/snippet/"+method_name.text+".xml";
    jQuery.get( baseUrl, "", function( response ) {
      if (jQuery("language" , response).text() == "js") {
         displayMessage("Running Kogbox snippet '"+method_name.text+"' by "+jQuery("author", response).text());
         eval(jQuery("code", response).text());
      } else {
         var goUrl = "http://run.kogbox.com/"+jQuery("language", response).text()+"/"+jQuery("user-id", response).text()+"/"+method_name.text;
         Utils.openUrlInBrowser(goUrl);
      }
    })
  }
})

CmdUtils.CreateCommand({
  name: "kogbox-new",
  homepage: "http://www.kogbox.com/",
  author: { name: "Jeffrey Warren", email: "jeff@kogbox.com"},
  license: "MIT",
  description: "Creates a Kogbox snippet from the selected text.",
  takes: {"method-name": noun_arb_text},
  modifiers: {in: noun_arb_text},
  preview: function( pblock, method_name, mods ) { pblock.innerHTML = "Create... "; },
  execute: function( method_name, mods ) {

    if (mods.in.text == "html") {
	var selectedCode = CmdUtils.getHtmlSelection()
    } else {
	var selectedCode = CmdUtils.getSelection()
    }

    jQuery.ajax({ type: "POST",
              url: "http://kogbox.com/snippets/create/"+method_name.text+".xml", 
              data: "code="+selectedCode+"&language="+mods.in.text+"&published=public&description=This snippet was auto-generated from Ubiquity from the page "+Application.activeWindow.activeTab.document.documentURI+"&license_id=5&release=development&method_name="+method_name.text, 
              dataType: "xml", 
              success: function(xml){
                  if (jQuery("method-name" , xml).text() == method_name.text) {
                     displayMessage("Created Kogbox snippet '"+method_name.text+"' in "+jQuery("language", xml).text());
                     var goUrl = "http://www.kogbox.com/view/snippet/"+jQuery("id", xml).text();
                     Utils.openUrlInBrowser(goUrl);
                  } else {
                     displayMessage("Failed to create Kogbox snippet '"+method_name.text+": '"+jQuery("method-name" , xml).text()+"'");
                  }

              }
     })
  }
})

CmdUtils.CreateCommand({
  name: "kogbox-info",
  homepage: "http://www.kogbox.com/",
  author: { name: "Jeffrey Warren", email: "jeff@kogbox.com"},
  license: "MIT",
  description: "Runs any Kogbox command from Ubiquity",
  takes: {"method-name": noun_arb_text},
  preview: function( pblock, method_name ) {
    pblock.innerHTML = "Loading description for "+method_name.text+"...";
    jQuery.ajax({ type: "GET",
              url: "http://kogbox.com/view/snippet/"+method_name.text+".xml", 
              data: "", 
              dataType: "xml", 
              success: function(xml){
       var description = "<b>View "+jQuery("method-name", xml).text()+" by: "+jQuery("author", xml).text()+"</b><br />";
       description += jQuery("description", xml).text();
       pblock.innerHTML = description;}
    })
  },
  execute: function( method_name ) {
    var baseUrl = "http://www.kogbox.com/snippet/"+method_name.text;
    Utils.openUrlInBrowser(baseUrl);
  }
})

CmdUtils.CreateCommand({
  name: "kogbox-user",
  homepage: "http://www.kogbox.com/",
  author: { name: "Jeffrey Warren", email: "jeff@kogbox.com"},
  license: "MIT",  takes: {"user name": noun_arb_text},
  description: "Goes to the homepage of the given Kogbox user.",
  preview: "Goes to the homepage of the given Kogbox user.",
  execute: function( user_name ) {
    var url = "http://kogbox.com/user/"+user_name.text;
    Utils.openUrlInBrowser(url);
  }
})

 