//var languageTechnology = []; var var_timeout = 60000; // test var languageTechnologyResponse = {}; var languageTechnology = {}; var languageTechnologySettings = {}; var languageTechnologyWordCache = {}; var languageTechnologyWordCustom = {}; function cleanLanguageTechnology() { //languageTechnology = []; $('div#branching').find('.spremenljivka_content').each(function(){ var spremenljivka = $(this).attr('spr_id'); var $divContainer = $('li#branching_'+spremenljivka); $('#lt_'+spremenljivka).remove(); $divContainer.find('span.highlight').tagRemover(); $divContainer.fadeTo(500, 1); }); } function runLanguageTechnology() { $('div#branching').find('.spremenljivka_content').each(function(){ var spremenljivka = $(this).attr('spr_id'); var request = { spremenljivka: spremenljivka, anketa: srv_meta_anketa_id, lt_language: $("#lt_language").val(), lt_min_FWD: $("#lt_min_FWD").val(), lt_min_nNoM: $("#lt_min_nNoM").val(), lt_min_vNoM: $("#lt_min_vNoM").val() }; // nardimo ajax klic $.ajax({ cache: false, timeout: var_timeout, xhrFields: { withCredentials: true }, url: 'ajax.php?a=runLanguageTechnology', type: 'post', //dataType: 'json', data: request, spremenljivka: spremenljivka, container: $('li#branching_'+spremenljivka), beforeSend: function() { // odstranimo morebitne predhodne higlighte cleanLanguageTechnology() this.container.fadeTo(500, 0.4); }, success: function (response) { if (response['error'] != undefined) { if (response['error']['hasError'] == true) { genericAlertPopup('alert_parameter_response',response['error']['msg']); // cleanUpAndReturn(); return false; } delete response['error']; } if (response['setting'] != undefined) { languageTechnologySettings = response['setting']; delete response['setting']; } // shranimo celoten response spremenljivke da potem lovimo shranjene podatke languageTechnologyResponse[this.spremenljivka] = response; displayProblematicWords(this.spremenljivka); return true; }, error: function(x, t, m) { if(t==="timeout") { genericAlertPopup('alert_timeout'); } else { genericAlertPopup('alert_unknown_error'); } }, complete: function() { this.container.fadeTo(500, 1); } }); }); } function displayProblematicWords(spremenljivka) { var $divContainer = $('li#branching_'+spremenljivka); // pobrišemo obstoječe dive $('#lt_'+spremenljivka).remove(); // narišemo vse nove potrebne dive $divContainer.after( $("
", { id: 'lt_'+spremenljivka, class: 'lt_div' }) .append( $("", {class: 'lt_word_data'}) .append( $("", { id: 'lt_words_'+spremenljivka, class: 'lt_words', }) .on('click', 'ul li', function() { wordIndex = $(this).index(); displayProblematicWord(spremenljivka, wordIndex) }) .append( $('', { text: lang['srv_language_technology_flagged_wordings'], class: 'lt_header' })) .append( $("' + lang['srv_language_technology_no_alternative'] + '
'); //} displayWordHypernym(spremenljivka, wordIndex); } function displaySynonimHypernim(spremenljivka, wordIndex, synonymIndex) { changeWordHypernym(spremenljivka, wordIndex, synonymIndex, checked); displayWordHypernym(spremenljivka, wordIndex); } function displayWordHypernym(spremenljivka, wordIndex) { // odstranimo stare podatke $("#lt_word_hypernym_div_"+spremenljivka).remove(); // div za hypernime $LTWordHypernymDiv = $("", { id: 'lt_word_hypernym_div_'+spremenljivka, class: 'lt_word_hypernym_div', }); // polovimo vse hypernyme hypernyms = getWordHypernyms(spremenljivka, wordIndex); if (!$.isEmptyObject(hypernyms)) { $LTWordHypernymDiv .empty() .append( $("", {class: 'hypernym_header'}) .append($('', { text: lang['srv_language_technology_alternative_wordings'] })) .append($('', { text: 'WF*'})) .append($('', { text: 'NoM'})) ); $.each(hypernyms, function(i, Synset) { $LTWordHypernymDiv.append($("", {class: 'hypernym_details'}) .append($('', { text: Synset['word'] })) .append($('', { text: Synset['freq']})) .append($('', { text: Synset['nom']})) ); }); } else { // ni hyperninov $LTWordHypernymDiv .empty() .append( $("", {class:'lt_padding', text: lang['srv_language_technology_no_alternative_selected']}) ); } $("#lt_words_synonyms_"+spremenljivka).after($LTWordHypernymDiv); return true; // odstranimo stare podatke $("#lt_word_hypernym_div_"+spremenljivka).remove(); // div za hypernime $LTWordHypernymDiv = $("", { id: 'lt_word_hypernym_div_'+spremenljivka, class: 'lt_word_hypernym_div', }) .empty() .append( $("", {class: 'hypernym_header'}) .append($('', { text: lang['srv_language_technology_alternative_wordings'] })) .append($('', { text: 'WF*'})) .append($('', { text: 'NoM'})) ); $("#lt_words_synonyms_"+spremenljivka).after($LTWordHypernymDiv); } function changeWordHypernym(spremenljivka, wordIndex, synonymIndex, checked) { if (checked) { setSynonim(spremenljivka, wordIndex, synonymIndex); } else { unsetSynonim(spremenljivka, wordIndex, synonymIndex); } // holder ul = $ul = $("#lt_words_synonyms_"+spremenljivka+" ul"); isSet = isSetSynonim(spremenljivka, wordIndex, synonymIndex); if (isSet) { $ul.find('li').eq(synonymIndex).addClass('selectedWord'); } else { $ul.find('li').eq(synonymIndex).removeClass('selectedWord'); } changeWordSynonym(spremenljivka, wordIndex); } function changeWordSynonym(spremenljivka, wordIndex){ wordHasSynonim = wordHasSynonims(spremenljivka, wordIndex); if (wordHasSynonim ) { $("#lt_words_ul_" + spremenljivka).find("li").eq(wordIndex).addClass('selectedWord'); } else { $("#lt_words_ul_" + spremenljivka).find("li").eq(wordIndex).removeClass('selectedWord'); } } function parseHypernyms(synsetsText, language) { synsetWords = []; // angleščina if (language.toLowerCase() == 'eng') { synsetArray = synsetsText.split(";"); $.each(synsetArray, function(i, synsetText) { if (synsetText.trim() != '' && synsetText != undefined) { // linguistic: FW = 2457, NoM = 2; lingual: FW <800 , NoM = 2; tmp = synsetText.split(':'); word = tmp[0].trim(); tmp = tmp[1].trim().split(','); freq = tmp[0].replace('FW','').replace('= ', '').replace(';', '').trim(); nom = tmp[1].replace('NoM','').replace('= ', '').replace(';', '').trim(); synsetWords.push({word:word, nom:nom, freq:freq}); } }); // slovenščina } else { synsetArray = synsetsText.split(";"); $.each(synsetArray, function(i, synsetText) { if (synsetText.trim() != '' && synsetText != undefined) { tmp = synsetText.split(':'); word = tmp[0].trim(); tmp = tmp[1].trim().split(','); freq = tmp[0].replace('FW','').replace('= ', '').replace(';', '').trim(); nom = tmp[1].replace('NoM','').replace('= ', '').replace(';', '').trim(); synsetWords.push({word:word, nom:nom, freq:freq}); } }); } return synsetWords; } function getCustomWording(spremenljivka, wordIndex) { result = ''; if (languageTechnologyWordCustom['sp_'+spremenljivka] != undefined) { if (languageTechnologyWordCustom['sp_'+spremenljivka]['wi_'+wordIndex] != undefined) { result = languageTechnologyWordCustom['sp_'+spremenljivka]['wi_'+wordIndex]; } } //if (languageTechnologyWordCustom[spremenljivka+'_'+wordIndex] != undefined) { // result = languageTechnologyWordCustom[spremenljivka+'_'+wordIndex]; //} return result; } function addCustomWording(spremenljivka, wordIndex, words) { if (languageTechnologyWordCustom['sp_'+spremenljivka] == undefined) { languageTechnologyWordCustom['sp_'+spremenljivka] = {}; } if (languageTechnologyWordCustom['sp_'+spremenljivka]['wi_'+wordIndex] == undefined) { languageTechnologyWordCustom['sp_'+spremenljivka]['wi_'+wordIndex] = words; } //languageTechnologyWordCustom[spremenljivka+'_'+wordIndex] = words; } function setSynonim(spremenljivka, wordIndex, synonymIndex) { if (languageTechnology['sp_'+spremenljivka] == undefined) { languageTechnology['sp_'+spremenljivka] = {}; } if (languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex] == undefined) { languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex] = {}; } if (languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex]['si_'+synonymIndex] == undefined) { languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex]['si_'+synonymIndex] = '1'; } enableDisableExcelExport(); } function unsetSynonim(spremenljivka, wordIndex, synonymIndex) { if (languageTechnology['sp_'+spremenljivka] != undefined) { if (languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex] != undefined) { if (languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex]['si_'+synonymIndex] != undefined ) { delete languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex]['si_'+synonymIndex]; } if ($.isEmptyObject(languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex])) { delete languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex]; } } if ($.isEmptyObject(languageTechnology['sp_'+spremenljivka])) { delete languageTechnology['sp_'+spremenljivka]; } } enableDisableExcelExport(); } function resetWordSynonyms(spremenljivka, wordIndex) { if (languageTechnology['sp_'+spremenljivka] != undefined) { if (languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex] != undefined) { wordHasSynonim = $.isEmptyObject(languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex]) == false; if (wordHasSynonim) { $.each(languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex], function(si, synonymIndex) { unsetSynonim(spremenljivka, wordIndex, si.replace('si_','')) }); } } } } function isSetSynonim(spremenljivka, wordIndex, synonymIndex) { isSet = false; if (languageTechnology['sp_'+spremenljivka] != undefined) { if (languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex] != undefined) { if (languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex]['si_'+synonymIndex] != undefined) { isSet = true; } } } return isSet; } function wordHasSynonims(spremenljivka, wordIndex) { wordHasSynonim = false; if (languageTechnology['sp_'+spremenljivka] != undefined) { if (languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex] != undefined) { wordHasSynonim = $.isEmptyObject(languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex]) == false; } } return wordHasSynonim; } function getWordHypernyms(spremenljivka, wordIndex) { result = {}; var synsetArray = languageTechnologyResponse[spremenljivka][wordIndex]['Synset']; izbrani = []; if (wordHasSynonims(spremenljivka, wordIndex)) { izbrani = languageTechnology['sp_'+spremenljivka]['wi_'+wordIndex]; } // jezik if (languageTechnologySettings['lt_language'] != undefined) { var language = languageTechnologySettings['lt_language']; } else { var language = $("#lt_language").val() } $.each(synsetArray, function(i, synsetText) { if (izbrani['si_'+i] != undefined) { hypernyms = parseHypernyms(synsetText['FWDNoM'], language); $.each (hypernyms, function (i, hypernym) { word = hypernym['word']; if (result[word] == undefined) { result[word] = hypernym; } }) //hypernyms.push(); } }); return result; } function enableDisableExcelExport() { // preverimo ali imamp kak synonym var has = false; $.each(languageTechnology, function(spremenljvkaKey, spremenljivkaData) { $.each(spremenljivkaData, function(wordKey, wordData) { $.each(wordData, function(synsetKey, synsetData) { has = true; return false; // break }); if (has) { return false; // break } }) if (has) { return false; // break } }); if (has) { $("#lt_export_excel span").removeClass("xls_grey_16 xls_16").addClass("xls_16"); } else { $("#lt_export_excel span").removeClass("xls_grey_16 xls_16").addClass("xls_grey_16"); } return has; } function prepareExcelData() { result = []; izbrani = languageTechnology; // naredimo kopijo mustang responsa, drugače so težave z referencami var response = jQuery.extend(true, {}, languageTechnologyResponse); $.each(izbrani, function(spremenljvkaKey, spremenljivkaData) { spremenljivka = spremenljvkaKey.replace('sp_',''); $.each(spremenljivkaData, function(wordKey, wordData) { word = wordKey.replace('wi_',''); var wordSynonyms = []; $.each(wordData, function(synsetKey, synsetData) { sysnset = synsetKey.replace('si_',''); wordSynonyms.push(response[spremenljivka][word]['Synset'][sysnset]); }); var wd = jQuery.extend(true, {}, response[spremenljivka][word]); delete wd['Synset']; wd['synonyms'] = wordSynonyms; result.push({spremenljivka:spremenljivka, data:wd}); }) }); return result; } function lt_export_excel() { if (!enableDisableExcelExport()) { // return false; } var request = { anketa: srv_meta_anketa_id, mustangData: prepareExcelData(), language: $("#lt_language").val() }; $.ajax({ timeout: var_timeout, cache: false, xhrFields: { withCredentials: true }, url: 'ajax.php?a=exportLanguageTechnology', type: 'post', data: request, success: function (response) { if (response['error'] == true) { genericAlertPopup('alert_parameter_response',response['msg']); return false; } window.open(response['url']); }, error: function(x, t, m) { if(t==="timeout") { genericAlertPopup('alert_timeout'); } else { genericAlertPopup('alert_unknown_error'); } }, complete: function() { } }); } function changeWordType(spremenljivka, wordIndex, word, wordType) { var wkey = spremenljivka +'_'+ wordIndex+'_' + word + '_' + wordType; // preverimo cachež if (languageTechnologyWordCache[wkey] == undefined) { console.log('2'); // nardimo request var request = { spremenljivka: spremenljivka, anketa: srv_meta_anketa_id, lt_word: word, lt_tag: wordType, lt_language: $("#lt_language").val(), lt_min_FWD: $("#lt_min_FWD").val(), lt_min_nNoM: $("#lt_min_nNoM").val(), lt_min_vNoM: $("#lt_min_vNoM").val() }; // nardimo ajax klic $.ajax({ cache: false, timeout: var_timeout, xhrFields: { withCredentials: true }, url: 'ajax.php?a=runLanguageTechnologyWord', type: 'post', //dataType: 'json', data: request, spremenljivka: spremenljivka, wordIndex: wordIndex, container: $('li#branching_'+spremenljivka), beforeSend: function() { }, success: function (response) { if (response['error'] != undefined) { if (response['error']['hasError'] == true) { genericAlertPopup('alert_parameter_response',response['error']['msg']); // cleanUpAndReturn(); return false; } delete response['error']; } if (response['setting'] != undefined) { languageTechnologySettings = response['setting']; delete response['setting']; } // zamenjamo besedo v responsu languageTechnologyResponse[this.spremenljivka][this.wordIndex] = response[0]; // TODO počistimo morebitne izbrane indexe za to besedo resetWordSynonyms(spremenljivka, wordIndex); // prikažemo na novo changeWordSynonym(this.spremenljivka, this.wordIndex); displayWordSynonyms(this.spremenljivka, this.wordIndex); return true; }, error: function(x, t, m) { if(t==="timeout") { genericAlertPopup('alert_timeout'); } else { genericAlertPopup('alert_unknown_error'); } }, complete: function() { } }); } } function stripAccents(str) { var rExps=[ {re:/[\xC0-\xC6]/g, ch:'A'}, {re:/[\xE0-\xE6]/g, ch:'a'}, {re:/[\xC8-\xCB]/g, ch:'E'}, {re:/[\xE8-\xEB]/g, ch:'e'}, {re:/[\xCC-\xCF]/g, ch:'I'}, {re:/[\xEC-\xEF]/g, ch:'i'}, {re:/[\xD2-\xD6]/g, ch:'O'}, {re:/[\xF2-\xF6]/g, ch:'o'}, {re:/[\xD9-\xDC]/g, ch:'U'}, {re:/[\xF9-\xFC]/g, ch:'u'}, {re:/[\xD1]/g, ch:'N'}, {re:/[\xF1]/g, ch:'n'} ]; for(var i=0, len=rExps.length; i