var lexical_units = []; // list of all lexical_units var base; // base form of lexical unit var free_luid = -1; // these ids will be temporarely given to new lexical units var free_sense; // what sense should be given to new lexical unit var lexical_units_frames = []; var lexical_units_num = []; // store lexical units from database function memorizeLexicalUnits(input_lexical_units) { lexical_units = input_lexical_units; var i; for (i = 0; i < lexical_units.length; i++) { lexical_unit_examples[lexical_units[i].id] = []; } } function basicLexicalUnitsData(info){ base = info.base; free_sense = info.sense; } // create new lexical_unit function createLexicalUnit(refl, glossa, relation, to) { if (((typeof to) == 'undefined') && (relation != 2)) { return } var refl_text = ""; if (refl == "true") { refl_text = " siÄ™"; } else { refl_text = ""; } var lu = {base: base + refl_text, glossa: "" + glossa, definition: "", id: free_luid, luid: -1, refl: refl, glossa: glossa, pos: "czasownik", sense: free_sense, relation: relation, to: to}; var operation = {operation: 'add_unit', unit:lu}; lexical_units.push(lu); lexical_unit_examples[free_luid] = [] units_operations.push(operation); free_sense = String.fromCharCode(free_sense.charCodeAt(0) + 1); free_luid -= 1; } // is unit with given luid from PlWN? function isPlWNUnit(luid) { var i = indexOfId(lexical_units, luid); if (i >= 0) { if (lexical_units[i].luid == -1) { return false; } } return true; } // remove lexical unit (that is not from PlWN) function destroyLexicalUnit(luid) { var i = indexOfId(lexical_units, luid); if (i >= 0) { if (lexical_units[i].luid == -1) { lexical_units.splice(i, 1); var j; for (j = 0; j < lexical_unit_examples[luid].length; j++) { var k = indexOfId(examples, lexical_unit_examples[luid][j]); if (k >= 0) { examples[k].meanings = []; } } lexical_unit_examples[luid] = []; var operation = {operation: 'remove_unit', luid: luid}; units_operations.push(operation); } } } function getGlossa(luid) { var lu = lexical_units[indexOfId(lexical_units, luid)]; return lu.glossa; } // set glossa for unit with given luid function setGlossa(luid, glossa) { var i = indexOfId(lexical_units, luid); lexical_units[i].glossa = "" + glossa; units_operations.push({operation: 'set_glossa', unit: luid, value: lexical_units[i].glossa}); } // save all changes to meanings (lexical units) function saveMeanings() { $.ajax({ dataType: "json", url: ajax_update_meanings, data: {"operations": JSON.stringify(units_operations), "lemma_id": lemma_id}, success: function(data){ memorizeLexicalUnits(data.lexical_units); basicLexicalUnitsData(data.informations); updateExamplesConnections(); }, async: false }); $.ajax({ dataType: "json", url: ajax_examples, data: {"lemma_id": lemma_id}, success: function(data){ memorizeExamples(data.examples, true); }, async: false }); units_operations = []; } // get all meanings as radio-button form named "meaning" function getMeanings() { var display = ""; var i; for (i = 0; i < lexical_units.length; i++) { display += "<input type = \"radio\" name = \"meaning\" value = \"" + lexical_units[i].id + "\">" + lexical_units[i].base + "-" + lexical_units[i].sense + " <i>" + lexical_units[i].definition + "</i><br><div id=\"glossa_" + lexical_units[i].id + "\">" + lexical_units[i].glossa + "</div>"; } return display; } // get all meanings as checkbox-type form, meanings with frame are disabled function getMeaningsSelection() { var display = ""; var i; for (i = 0; i < lexical_units.length; i++) { display += "<input type = \"checkbox\" name = \"meaning\" value = \"" + lexical_units[i].id + "\"" var j; for (j = 0; j < lexical_units_num.length; j++) { if (indexOfId(lexical_units_num[j], lexical_units[i].id) != -1) { display += " disabled = \"True\"" } } display += ">" + lexical_units[i].base + "-" + lexical_units[i].sense + "<br><div id=\"glossa_" + lexical_units[i].id + "\">" + lexical_units[i].glossa + "</div>" } return display; } // get all meanings as checkbox-type form, meanings with frame are disabled function getMeaningsSelectionForFrame(frame_id) { var display = ""; var id = "" + frame_id; var i; for (i = 0; i < lexical_units.length; i++) { display += "<input type = \"checkbox\" name = \"meaning\" value = \"" + lexical_units[i].id + "\"" var j; for (j = 0; j < lexical_units_num.length; j++) { if (indexOfId(lexical_units_num[j], lexical_units[i].id) != -1) { if (lexical_units_frames[j].indexOf(id) != -1) { display += " checked"; } else { display += " disabled = \"True\""; } } } display += ">" + lexical_units[i].base + "-" + lexical_units[i].sense + "<br><div id=\"glossa_" + lexical_units[i].id + "\">" + lexical_units[i].glossa + "</div>" } return display; } // get readable form of lexical unit function getLexicalUnit(luid) { var i = indexOfId(lexical_units, luid); // alert("" + luid + " -> " + i); var lu = lexical_units[i]; return lu.base + '-' + lu.sense; }