// TODO:
// * sztaki off még nem működik
// * a megjelenő ablak legyen draggable és resizeable (jQuery UI)
// * a kijelölt szavak szótövesítése, és a szótő lekérdezése a szótárból (pl. többes számú főneveknél, vagy ing-es igéknél jól jöhet)
noun_type_sztaki_states = new CmdUtils.NounType("SztakiStates", ["on", "off"]);
var dictionaryWindowStyle = "";
var dictionaryWindowTemplate = "
\
${englishWord}
\
\
{for w in words } \
- ${w}
\
{/for} \
\
";
CmdUtils.CreateCommand({
name: "sztaki",
homepage: "http://hiperkocka.hu/",
author: { name: "Tóth Dávid", email: "tothda@gmail.com" },
license: "GPL",
description: "Sztaki szótár kliens",
help: "A \"sztaki on\" paranccsal bekapcsolva, egy kis ablak jelenik meg a weboldalon. Ezután ha egy angol szóra duplán kattintunk, a program lekérdez a Sztaki szótárból, és az eredményt az ablakba teszi.",
icon: "http://szotar.sztaki.hu/favicon.ico",
takes: {
"state": noun_type_sztaki_states
},
inserWindowStyle: function() {
var body = context.focusedWindow.document.body;
jQuery(body).append(dictionaryWindowStyle);
},
translate: function() {
var word = CmdUtils.getSelection();
var dictUrl = 'http://szotar.sztaki.hu/dict_search.php';
var params = {
L: "ENG:HUN:EngHunDict",
M: "3",
E: "1",
T: "0",
C: "0",
A: "0",
P: "0",
O: "HUN",
in_bookmarklet: "1",
W: word
};
jQuery.get(dictUrl, params,
function(data) {
var result
var tempElement = CmdUtils.getHiddenWindow().document.createElementNS("http://www.w3.org/1999/xhtml", "div");
tempElement.innerHTML = data;
var result = jQuery(tempElement).find('#result .normtext a');
var resultElems = jQuery(tempElement).find('#result .normtext a').get();
var words = jQuery.map(resultElems, function(e) {return jQuery(e).html();});
var body = context.focusedWindow.document.body;
jQuery("#sztaki_results", body).html(CmdUtils.renderTemplate(dictionaryWindowTemplate, {words: words, englishWord:word}));
}
);
},
execute: function(state) {
var body = context.focusedWindow.document.body;
var resultsDiv = jQuery(body).append("Szótár lekérdezés eredmények:
");
this.inserWindowStyle();
if (state.text == "off") {
body.removeEventListener("dblclick", this.translate, false);
return;
}
jQuery(body).bind("dblclick", this, this.translate);
}
})