var g_DictWordList= new Array(); var g_DocWordMean= new Array(); var g_dictList = new Array(); var g_DictWordNew = new Object(); var g_DictWordUpdataIndex=0;//正在更新的记录在内存字典表中的索引号 var g_InlineDictWordList = new Array; var g_CurrDictBuffer=null; var g_key_match_str=""; var myFormula = Array();//用户词典里的格位公式 var g_DictCount=0; var g_currEditWord=-1; //当前正在编辑词的id var g_eCurrWord=null; //当前正在编辑词的element对象 var g_currBookMarkColor="0"; var g_dictFindParentLevel=0; var g_dictFindAllDone=false; var g_currAutoMatchDictType="user"; var g_caseSelect = new Array("","","",""); var gEditorTranslateEditBlockId=-1; var gEditorNoteEditBlockId=-1 var gEditorHeadingEditBlockId=-1 var gEditorNewHeadingBookId="" var gEditorNewHeadingPar="" var g_fileid=0; var g_docid=""; var g_op=""; var gCurrModifyWindowParNo=-1; var gUserSetup; var mDictQueue = Array(); var gNaviCurrPanalId=""; function setNaviVisibility(strObjId=""){ var objNave = document.getElementById('leftmenuinner'); var objblack = document.getElementById('BV'); if(strObjId==""){ objblack.style.display = "none"; objNave.className = "viewswitch_off"; } else{ $("#"+strObjId).show(); $("#"+strObjId).siblings().hide(); if(strObjId==gNaviCurrPanalId){ if ( objNave.className=='viewswitch_off'){ objblack.style.display = "block"; objNave.className = "viewswitch_on"; } else{ objblack.style.display = "none"; objNave.className = "viewswitch_off"; } } else{ objblack.style.display = "block"; objNave.className = "viewswitch_on"; } } gNaviCurrPanalId=strObjId; } //选项卡函数 function select_modyfy_type(itemname,idname){ document.getElementById("modify_detaile").style.display="none"; document.getElementById("modify_bookmark").style.display="none"; document.getElementById("modify_note").style.display="none"; document.getElementById("modify_spell").style.display="none"; document.getElementById("modify_apply").style.display="block"; document.getElementById("detail_li").className = "common-tab_li"; document.getElementById("mark_li").className = "common-tab_li"; document.getElementById("note_li").className = "common-tab_li"; document.getElementById("spell_li").className = "common-tab_li"; document.getElementById(itemname).style.display="block"; document.getElementById(idname).className = " common-tab_li_act"; } function menuSelected(obj){ var objMenuItems=document.getElementsByClassName("menu"); for (var i=0;i"+local_dict_list[x].filename+"

"; } else{ fileList = fileList + "

"+local_dict_list[x].filename+"

"; } } document.getElementById('basic_dict_list').innerHTML=fileList; } else { document.getElementById('basic_dict_list')="Problem retrieving data:" + xmlhttp.statusText; } } } function dict_active(obj,dictIndex){ if(this.checked){ g_dictList[dictIndex].used=true; } else{ g_dictList[dictIndex].used=false; } } function editor_windowsInit(){ $("see").click(function(){ var to =$(this).attr("to"); var link; if(to){ link=to; } else{ link=$(this).text(); } alert(link); dict_search(link); }); var strSertch = location.search; if(strSertch.length>0){ strSertch = strSertch.substr(1); var sertchList=strSertch.split('&'); for (x in sertchList){ var item = sertchList[x].split('='); switch(item[0]){ case "filename": g_filename=item[1]; break; case "fileid": g_docid=item[1]; break; case "doc_id": g_docid=item[1]; break; case "op": g_op=item[1]; break; } } } checkCookie(); setUseMode("Edit"); editor_getDictFileList(); document.getElementById('id_info_window_select').value="view_dict_curr"; windowsSelected(document.getElementById('id_info_window_select')); document.getElementById('id_info_panal').style.height="0px"; palicannon_init(); //载入我的术语词典 term_get_my(); //载入全部术语词头 term_get_all_pali(); //载入格位公式 load_my_formula(); switch(g_op){ case "new": document.getElementById("wizard_div").style.display="flex"; document.getElementById('id_editor_menu_select').value="menu_pali_cannon" menuSelected(document.getElementById('id_editor_menu_select')) createXmlDoc() var_dump(gLocal.gui.newproject); break; case "open": if(g_docid.length>0){ editor_openProject(g_docid,"pcs"); } else{ alert(gLocal.gui.nofilename); } break; case "opendb": if(g_docid.length>0){ editor_openProject(g_docid,"db"); } else{ alert("no doc id"); } break; case "import": if(g_filename.length>0){ editor_importOldVer(g_filename) g_filename=g_filename.substring(0,g_filename.length-4)+".pcs" } else{ alert(gLocal.gui.nofilename); } break; case "loadlist": editor_show_right_tool_bar(true); //get_pc_res_download_list_from_cookie(); get_pc_res_download_list_from_string(gDownloadListString); createXmlDoc(); pc_loadStream(0); break; default: break; } ntf_init(); } var g_dict_search_one_pass_done=null; var g_dict_search_one_dict_done=null; var g_dict_search_all_done=null; function editor_dict_all_done(){ document.getElementById('editor_doc_notify').innerHTML=gLocal.gui.all_done; var t=setTimeout("document.getElementById('editor_doc_notify').innerHTML=''",5000); } function editor_dict_one_dict_done(dictIndex){ document.getElementById('editor_doc_notify').innerHTML=gLocal.gui.round_1+(g_dictFindParentLevel+1)+gLocal.gui.round_2+"【"+g_dictList[dictIndex].name+"】"+gLocal.gui.done; if(dictIndex+1"; editor_dict_match(); } function editor_dict_match(){ if(currMatchingDictNum"; editor_dict_match(); } else{ document.getElementById('id_dict_match_inner').innerHTML+="Max Parent Level "+g_dictFindParentLevel+" Stop!
"; if(g_dict_search_all_done){ g_dict_search_all_done(); } dict_mark_word_list_done(); dictMatchXMLDoc(); } } } function dict_push_word_to_download_list(word,level){ for(var i in g_InlineDictWordList){ if(g_InlineDictWordList[i].word==word){ return; } } var newWord = new Object(); newWord.word=word; newWord.done=false; newWord.level=level; g_InlineDictWordList.push(newWord); } function dict_get_search_list(){ var output = new Array() for(var i in g_InlineDictWordList){ if(g_InlineDictWordList[i].done==false){ output.push(g_InlineDictWordList[i]); } } return(output); } function dict_mark_word_list_done(){ for(var i in g_InlineDictWordList){ g_InlineDictWordList[i].done=true; } } function dict_refresh_word_download_list(){ var xDict = gXmlBookDataBody.getElementsByTagName("word"); for(var iword=0;iword0 && g_DictWordList[i].Parent!=g_DictWordList[i].Pali){ var arrList=g_DictWordList[i].Parent.split("$"); var paliInParent=false; for(x=0;x0){ arrList=g_DictWordList[i].Factors.split("+"); for(x=0;x0){ return output.join("$"); } else{ return null; } } var editor_DictXmlHttp=null; function editor_loadDictFromDB(strFileName,dictName){ var xmlText=""; if(window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc. editor_DictXmlHttp=new XMLHttpRequest(); } else if(window.ActiveXObject) {// code for IE6, IE5 editor_DictXmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (editor_DictXmlHttp!=null) { var d=new Date(); var strLink = "dict_find.php?mode=xml&filename="+strFileName+"&type="+dictName.type+"&dict="+dictName.filename; editor_DictXmlHttp.onreadystatechange=editor_dict_serverResponse; //var wordList=getAllWordList(); var wordList=g_CurrDictBuffer; if(wordList!=null){ document.getElementById('id_dict_msg').innerHTML="开始匹配字典"+dictName.name; editor_DictXmlHttp.open("POST", "dict_find2.php", true); //editor_DictXmlHttp.send(dictName.type+"$"+dictName.filename+"$"+g_dictFindParentLevel+"$"+wordList); editor_DictXmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); editor_DictXmlHttp.send("type="+dictName.type+"&filename="+dictName.filename+"&level="+g_dictFindParentLevel+"&data="+wordList); } else{ g_dictFindAllDone=true; document.getElementById('id_dict_match_inner').innerHTML+="all done!"; if(g_dict_search_all_done){ g_dict_search_all_done(); } } } else { alert("Your browser does not support XMLHTTP."); } } function editor_dict_serverResponse(){ if (editor_DictXmlHttp.readyState==4)// 4 = "loaded" { document.getElementById('id_dict_msg').innerHTML="已经获取字典数据"; if (editor_DictXmlHttp.status==200){// 200 = "OK" var xmlText = editor_DictXmlHttp.responseText; if (window.DOMParser) { parser=new DOMParser(); xmlDict=parser.parseFromString(xmlText,"text/xml"); } else // Internet Explorer { xmlDict=new ActiveXObject("Microsoft.XMLDOM"); xmlDict.async="false"; xmlDict.loadXML(xmlText); } if (xmlDict == null){ alert("error:can not load dict."); return; } document.getElementById('dict_result_'+currMatchingDictNum).innerHTML=" : "+g_dictFindParentLevel+"-"+xmlDict.getElementsByTagName("word").length; dictDataParse(xmlDict,currMatchingDictNum); editor_addDictDataToXmlDoc(xmlDict); } else { document.getElementById('id_dict_match_inner').innerHTML="Problem retrieving data:" + editor_DictXmlHttp.statusText; } if(g_dict_search_one_dict_done){ g_dict_search_one_dict_done(currMatchingDictNum); } currMatchingDictNum++; editor_dict_match(); } } //添加字典数据到内联字典 function editor_addDictDataToXmlDoc(xmlDictData){ var xDict = xmlDictData.getElementsByTagName("word"); for(iword=0;iword"; outData=outData+""+g_DictWordList[i].dictname+""; outData=outData+""+g_DictWordList[i].Pali+""; outData=outData+""+g_DictWordList[i].Type+""; outData=outData+""+g_DictWordList[i].Gramma+""; outData=outData+""+g_DictWordList[i].Parent+""; outData=outData+""+g_DictWordList[i].Mean+""; outData=outData+""+g_DictWordList[i].Factors+""; outData=outData+""; } outData+=""; return outData; } var g_CurrActiveRecorder="new"; function setCurrActiveRecorder(recorderName){ g_CurrActiveRecorder=recorderName; } function updataCurrActiveRecorder(filder,value){ if(filder=="all"){ } else{ document.getElementById(filder+"_"+g_CurrActiveRecorder).value=value; mean_change(g_CurrActiveRecorder); } } function addToCurrActiveRecorder(filder,value){ if(filder=="all"){ } else{ meanString=document.getElementById(filder+"_"+g_CurrActiveRecorder).value; meanList=meanString.split("$"); for(i in meanList) { if(meanList[i]==value){ return; } } document.getElementById(filder+"_"+g_CurrActiveRecorder).value+="$"+value; mean_change(g_CurrActiveRecorder); } } function updataFactorMeanPrev(id,strNew){ //if(strNew!=null){ //document.getElementById("id_factormean_prev_"+id).value=strNew; //} } function factorMeanItemChange(id,iPos,count,obj){ //alert(id+":"+iPos+":"+newMean); newMean=obj.value var factorMeanPrevString = document.getElementById("id_factormean_prev_"+id).value; currFactorMeanPrevList=factorMeanPrevString.split("+"); currFactorMeanPrevList[iPos]=newMean; document.getElementById("id_factormean_prev_"+id).value=currFactorMeanPrevList.join("+"); } function makeFactorBlock(factorStr,id){ var output=""; var factorList=factorStr.split("+"); var defualtFactorMeanList=new Array; for(iFactor in factorList){ arrFM=findAllMeanInDict(factorList[iFactor],10); if(arrFM.length==0){ arrFM[0]="unkow"; } output +=""; if(iFactor"; output+="
"; output+="

«

"; output+="
"; output+="

"+meanList[i]+"

"; output+="
"; output+="

x

"; output+="
"; output+=""; } return(output); } function mean_change(id){ var meanString = document.getElementById("id_dict_user_mean_"+id).value; document.getElementById("id_mean_block_"+id).innerHTML=makeMeanBlock(meanString,id); } function meanBlockDelete(id,indexDelete){ var meanString = document.getElementById("id_dict_user_mean_"+id).value; var meanBlock=""; var meanList=meanString.split("$"); meanList.splice(indexDelete,1); var newString = meanList.join("$"); document.getElementById("id_dict_user_mean_"+id).value=newString; mean_change(id); } function meanBlockMove(id,moveFrom,moveTo){ var meanString = document.getElementById("id_dict_user_mean_"+id).value; var meanBlock=""; var meanList=meanString.split("$"); if(moveTo<0){ moveTo=0; } if(moveFrom==moveTo){ return; } var temp=meanList[moveTo]; meanList[moveTo]=meanList[moveFrom]; for(i=moveFrom-1;i>moveTo;i--){ meanList[i+1]=meanList[i]; } meanList[moveTo+1]=temp; var newString = meanList.join("$"); /* for(x in meanList){ newString+=meanList[x]+"$"; } */ document.getElementById("id_dict_user_mean_"+id).value=newString; mean_change(id); } function addAutoMeanToFactorMean(id){ document.getElementById("id_dict_user_fm_"+id).value=document.getElementById("id_factormean_prev_"+id).value; } //show current selected word in the word window to modify var g_WordTableCurrWord=""; function dictCurrWordShowAsTable(inCurrWord){ g_WordTableCurrWord = inCurrWord; g_CurrActiveRecorder="new"; var outData=""; var listParent= new Array(); var listFactors= new Array(); var listChildren = new Array(); outData+="

"+gLocal.gui.parent+":"; for(var i=0;i0){ var find=false; for(x in listParent){ if(listParent[x]==g_DictWordList[i].Parent){ find=true; break; } } if(!find){ listParent.push(g_DictWordList[i].Parent); } } if(g_DictWordList[i].Factors.length>0){ arrFactors=g_DictWordList[i].Factors.split("+"); for(iFactors in arrFactors){ var find=false; for(x in listFactors){ if(listFactors[x]==arrFactors[iFactors]){ find=true; break; } } if(!find){ listFactors.push(arrFactors[iFactors]); } } } } } for(x in listParent){ outData+=""+listParent[x]+" " } for(x in listFactors){ outData+="["+listFactors[x]+"] " } outData+="

"; outData=outData+"

└"+inCurrWord+"

"; outData+="

└"+gLocal.gui.children+": "; for(var i=0;i0){ var find=false; for(x in listChildren){ if(listChildren[x]==g_DictWordList[i].Pali){ find=true; break; } } if(!find){ listChildren.push(g_DictWordList[i].Pali); } } } } for(x in listChildren){ outData+=""+listChildren[x]+" " } outData+="

"; //get new recorder filder var newRecorder = new Object(); newRecorder.Type=""; newRecorder.Gramma=""; newRecorder.Parent=""; newRecorder.Mean=""; newRecorder.Note=""; newRecorder.Factors=""; newRecorder.FactorMean=""; newRecorder.Confer=""; newRecorder.Status=""; newRecorder.Lock=""; newRecorder.Tag=""; var newMeanList= new Array(); for(var i=0;i0){ newRecorder.Type=g_DictWordList[i].Type } if(newRecorder.Gramma=="" && g_DictWordList[i].Gramma.length>0){ newRecorder.Gramma=g_DictWordList[i].Gramma; } if(newRecorder.Parent=="" && g_DictWordList[i].Parent.length>0){ newRecorder.Parent=g_DictWordList[i].Parent; } if(g_DictWordList[i].Mean.length>0){ otherMean = g_DictWordList[i].Mean.split("$"); for(iMean in otherMean){ pushNewToList(newMeanList,otherMean[iMean]); } newRecorder.Mean=newMeanList.join("$"); } if(newRecorder.Factors=="" && g_DictWordList[i].Factors.length>0){ newRecorder.Factors=g_DictWordList[i].Factors; } if(newRecorder.FactorMean=="" && g_DictWordList[i].FactorMean.length>0){ newRecorder.FactorMean=g_DictWordList[i].FactorMean; } if(newRecorder.Note=="" && g_DictWordList[i].Note){ if(g_DictWordList[i].Note.length>0){ newRecorder.Note=g_DictWordList[i].Note; } } } } newMeanBlock=makeMeanBlock(newRecorder.Mean,"new"); newFactorBlock=makeFactorBlock(newRecorder.Factors,"new"); newFactorMeanPrevString=g_FactorMean; outData+="
" outData+="
" outData+="" outData+="" outData+=" " outData+=" "+gLocal.gui.wordtype+":" outData+= " "; outData+=" "+gLocal.gui.gramma+":" outData+=" "+gLocal.gui.parent+":" outData+=" "+gLocal.gui.part+":" outData+=" "+gLocal.gui.partmeaning+":"+newFactorBlock outData+="" outData+=" " outData+="
" outData+="
" outData+=" "+gLocal.gui.meaning+":
"+newMeanBlock+"
" outData+="
" outData+="" outData+="
" outData+= gLocal.gui.note+":
" outData+="
" outData+="
" //draw new /* outData=outData+"

New:

"; outData+=""; outData+=""; outData+=""+ ""; outData=outData+""; outData=outData+""; outData+=""; outData+=""; outData+=""; outData+=""; outData+=""; outData+=""; outData+=""; outData+="" outData+="
TypeParentMeaning
"+ ""+ " "; outData=outData+"
"+newMeanBlock+"
GrammaPartsParts Meaning
"; outData+="
"; outData+="
"+newFactorBlock+"
"; outData+="
Note
"; */ // end of New outData+="

"+gLocal.gui.userdict+"

"; outData+=""; outData=outData+""; for(var i=0;i"; outData+=""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData+=""; outData+="" } } } /* for(var i=0;i"+ ""; outData=outData+""; outData=outData+""; outData+=""; outData+=""; outData+=""; outData+=""; outData+=""; outData+=""; outData+=""; outData+="" } } } */ outData=outData+"
"+gLocal.gui.dictsouce+" "+gLocal.gui.wordtype+" "+gLocal.gui.gramma+" "+gLocal.gui.parent+" "+gLocal.gui.meaning+" "+gLocal.gui.part+" "+gLocal.gui.partmeaning+"
"+g_DictWordList[i].dictname+""; outData=outData+""; outData=outData+" "; outData=outData+""; outData=outData+"
Note
"+ ""+ " "; outData=outData+"
"+newMeanBlock+"
GrammaPartsParts Meaning
"; outData+="
"; outData+="
"+newFactorBlock+"
"; outData+="
Note
"; outData+="

"+gLocal.gui.otherdict+"

"; outData+=""; outData=outData+""; for(var i=0;i"; outData+=""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; } } } outData+="
"+gLocal.gui.dictsouce+" "+gLocal.gui.wordtype+" "+gLocal.gui.gramma+" "+gLocal.gui.parent+" "+gLocal.gui.meaning+" "+gLocal.gui.part+" "+gLocal.gui.partmeaning+"
"+g_DictWordList[i].dictname+""+g_DictWordList[i].Type+""+g_DictWordList[i].Gramma+""+g_DictWordList[i].Parent; outData=outData+""+g_DictWordList[i].Mean+"
"+makeMeanLink(g_DictWordList[i].Mean)+"
"+g_DictWordList[i].Factors+""+g_DictWordList[i].FactorMean+"
"; //children for(x in listChildren){ wordChildren=listChildren[x] outData+="

"+wordChildren+"

"; outData+=""; outData=outData+""; for(var i=0;i"; outData+=""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; outData=outData+""; } } } outData+="
"+gLocal.gui.dictsouce+" "+gLocal.gui.wordtype+" "+gLocal.gui.gramma+" "+gLocal.gui.parent+" "+gLocal.gui.meaning+" "+gLocal.gui.part+" "+gLocal.gui.partmeaning+"
"+g_DictWordList[i].dictname+""+g_DictWordList[i].Type+""+g_DictWordList[i].Gramma+""+g_DictWordList[i].Parent; outData=outData+""+g_DictWordList[i].Mean+"
"+makeMeanLink(g_DictWordList[i].Mean)+"
"+g_DictWordList[i].Factors+""+g_DictWordList[i].FactorMean+"
"; } return outData; } function makeMeanLink(inStr){ var arrList=inStr.split("$"); var output=""; for(i in arrList){ output+=""+arrList[i]+" " } return(output); } function showCurrWordTable(currWord){ document.getElementById('id_dict_curr_word_inner').innerHTML=dictCurrWordShowAsTable(currWord); } //匹配字典数据到文档 function dictMatchXMLDoc(){ document.getElementById('id_dict_msg').innerHTML=gLocal.gui.dict_match; var docWordCounter=0; var matchedCounter=0; var xDocWords = gXmlBookDataBody.getElementsByTagName("word"); for(var iword=0;iword0){ for(var i=0;i0){ return(arrMean[i]); } else{ return ""; } } return ""; } else{ return ""; } } //test word is pali word or not function isPaliWord(inWord){ if(inWord.length<2){ return false; } if(inWord.match(/[x]/)){ return false; } if(inWord.match(/[q]/)){ return false; } if(inWord.match(/[w]/)){ return false; } if(inWord.match(/[a-y]/)){ return true; } else{ return false; } } function submenu_show_detail(obj){ eParent = obj.parentNode; //var y = obj.getElementsByTagName("svg"); var x = eParent.getElementsByTagName("div"); var o = obj.getElementsByTagName("svg"); if(x[0].style.maxHeight=="200em"){ x[0].style.maxHeight="0px"; x[0].style.padding="0px"; x[0].style.opacity="0"; o[0].style.transform="rotate(0deg)"; } else{ x[0].style.maxHeight="200em"; x[0].style.padding="10px"; x[0].style.opacity="1"; o[0].style.transform="rotate(45deg)"; } } function getAutoMaxWidth() { var Width=$('#').width } //在导航窗口中显示与此词匹配的字典中的词 function showMatchedWordsInNavi(wordId){ //var matchedCounter=0; /* var xDocWords = gXmlBookDataBody.getElementsByTagName("word"); for(var iWord=0;iWord"+sPaliWord+""; /*将这个词与字典匹配,*/ var iDict=0; var thisWord = sPaliWord; for(iDict=0;iDict"+g_DictWordList[iDict].dictname+""; sLastDict=g_DictWordList[iDict].dictname; } outText=outText+""; outText=outText+"
"; outText=outText+"
"; outText=outText+"" outText=outText+"
"; outText=outText+"
"; outText=outText+"
"; /* outText=outText+""+g_DictWordList[iDict].Mean+""; outText=outText+""+g_DictWordList[iDict].Factors+""; outText=outText+""+g_DictWordList[iDict].FactorMean+""; outText=outText+""+g_DictWordList[iDict].Type+"#"+g_DictWordList[iDict].Gramma+""; */ matchedCounter++; } } document.getElementById("id_dict_matched").innerHTML=outText; document.getElementById('id_dict_curr_word_inner').innerHTML=dictCurrWordShowAsTable(inWord); } function updataWordFromDict(obj,field){ var xDocWords = gXmlBookDataBody.getElementsByTagName("word"); var strValue = obj.innerHTML; var applayTo = document.getElementById("id_dict_applay_to").value; var strCurrPali=getNodeText(xDocWords[g_currEditWord],"pali"); switch(applayTo) { case "current": setNodeText(xDocWords[g_currEditWord],field,strValue); modifyWordDetailByWordIndex(g_currEditWord); break; case "sys": for(i=0;i"); } else if (window.ActiveXObject) {// code for IE6, IE5 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); var_dump("testing Microsoft.XMLHTTP
"); } if (xmlHttp!=null){ var_dump(gLocal.gui.ok); xmlHttp.open("POST", "export_ild.php", false); var sendHead="filename="+g_filename+"#"; var dictDataString=""; for(iDict in g_DictWordList){ dictDataString+=""; dictDataString+=""+g_DictWordList[iDict].Id+""; dictDataString+=""+g_DictWordList[iDict].Pali+""; dictDataString+=""+g_DictWordList[iDict].Mean+""; dictDataString+=""+g_DictWordList[iDict].Type+""; dictDataString+=""+g_DictWordList[iDict].Gramma+""; dictDataString+=""+g_DictWordList[iDict].Parent+""; dictDataString+=""+g_DictWordList[iDict].Factors+""; dictDataString+=""+g_DictWordList[iDict].FactorMean+""; dictDataString+=""+g_DictWordList[iDict].Note+""; dictDataString+=""+g_DictWordList[iDict].Confer+""; dictDataString+=""+g_DictWordList[iDict].Status+""; dictDataString+=""+g_DictWordList[iDict].Delete+""; dictDataString+=""+g_DictWordList[iDict].dictname+""; dictDataString+=""+g_DictWordList[iDict].dictType+""; dictDataString+=""+g_DictWordList[iDict].fileName+""; dictDataString+=""+g_DictWordList[iDict].ParentLevel+""; dictDataString+=""; } dictDataString+=""; xmlHttp.send(sendHead+dictDataString); var_dump(xmlHttp.responseText); } else { alert("Your browser does not support XMLHTTP."); } } function menu_file_tools_empty(opt){ var xDocWords = gXmlBookDataBody.getElementsByTagName("word"); if(opt=='all'){ for(var iword=0;iword外面点击,即可关闭它!" p.show(150,150,200,50,document.body) } //Info_Panal顯示 begin function setInfoPanalVisibility(){ if(document.getElementById("id_info_panal").style.height == "0px") { setInfoPanalSize('half'); } else{ setInfoPanalSize('hidden'); } } //Info_Panal顯示尺寸 function setInfoPanalSize(inSize){ var h=window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var objInfoPanal = document.getElementById("id_info_panal"); //show_popup(w); //alert(objInfoPanal.style.right); switch(inSize){ case "hidden"://min objInfoPanal.style.height=0+"px"; //setTimeout("hiddenPanal()",400); break; case "min"://min objInfoPanal.style.height=(30)+"px"; break; case "half"://half objInfoPanal.style.height=h/2+"px"; break; case "0.6"://2/3 objInfoPanal.style.height=(h*0.6)+"px"; break; case "max"://max objInfoPanal.style.height=(h)+"px"; break; } } function hiddenPanal(){ document.getElementById("id_info_panal").style.display="none"; } //Info_Panal顯示 end function windowsSelected(obj){ document.getElementById('word_table').style.display = "none"; document.getElementById('id_dict_match_result').style.display = "none"; document.getElementById('id_dict_curr_word').style.display = "none"; document.getElementById('id_debug').style.display = "none"; switch(obj.value){ case "view_vocabulary": document.getElementById('word_table').style.display = "block"; break; case "view_dict_all": document.getElementById('id_dict_match_result').style.display = "block"; break; case "view_dict_curr": document.getElementById('id_dict_curr_word').style.display = "block"; break; case "view_debug": document.getElementById('id_debug').style.display = "block"; break; } } function userDictUpdata(){ } var editor_DictUpdataXmlHttp=null; function editor_UserDictUpdata(recorderName,thisObj){ thisObj.disabled=true; var xmlText=""; if(window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc. editor_DictUpdataXmlHttp=new XMLHttpRequest(); } else if(window.ActiveXObject) {// code for IE6, IE5 editor_DictUpdataXmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (editor_DictUpdataXmlHttp!=null) { var queryString=""; queryString+=""; var d_id=document.getElementById('id_dict_user_id_'+recorderName).value; var d_pali=document.getElementById('id_dict_user_pali_'+recorderName).value; var d_type=document.getElementById('id_dict_user_type_'+recorderName).value; var d_gramma=document.getElementById('id_dict_user_gramma_'+recorderName).value; var d_parent=document.getElementById('id_dict_user_parent_'+recorderName).value; var d_mean=document.getElementById('id_dict_user_mean_'+recorderName).value; var d_note=document.getElementById('id_dict_user_note_'+recorderName).value; var d_factors=document.getElementById('id_dict_user_factors_'+recorderName).value; var d_fm=document.getElementById('id_dict_user_fm_'+recorderName).value; var d_confer=""; var d_status=""; var d_delete=""; var d_tag=""; var d_language=language_translation; queryString+=""+d_id+""; queryString+=""+d_pali+""; queryString+=""+d_type+""; queryString+=""+d_gramma+""; queryString+=""+d_parent+""; queryString+=""+d_mean+""; queryString+=""+d_note+""; queryString+=""+d_factors+""; queryString+=""+d_fm+""; queryString+=""+d_confer+""; queryString+=""+d_status+""; queryString+="TRUE"; queryString+=""+d_language+""; queryString+=""; queryString+=""; editor_DictUpdataXmlHttp.onreadystatechange=editor_UserDictUpdata_serverResponse; debugOutput("updata user dict start.",0); editor_DictUpdataXmlHttp.open("POST", "dict_updata_user.php", true); editor_DictUpdataXmlHttp.send(queryString); var i=recorderName; g_DictWordUpdataIndex=i; g_DictWordNew.Id = d_id; g_DictWordNew.Pali = d_pali; g_DictWordNew.Mean = d_mean; g_DictWordNew.Type = d_type; g_DictWordNew.Gramma = d_gramma; g_DictWordNew.Parent = d_parent; g_DictWordNew.Factors = d_factors; g_DictWordNew.FactorMean = d_fm; g_DictWordNew.Note = d_note; g_DictWordNew.Confer = d_confer; g_DictWordNew.Status = d_status; g_DictWordNew.Delete = d_delete; g_DictWordNew.dictname="用户字典"; g_DictWordNew.dictType="user"; g_DictWordNew.fileName="user_default"; g_DictWordNew.ParentLevel=0; } else { alert("Your browser does not support XMLHTTP."); } } function editor_UserDictUpdata_serverResponse(){ if (editor_DictUpdataXmlHttp.readyState==4)// 4 = "loaded" { debugOutput("server response.",0); if (editor_DictUpdataXmlHttp.status==200) {// 200 = "OK" var serverText = editor_DictUpdataXmlHttp.responseText; debugOutput(serverText,0); obj = JSON.parse(serverText); if(obj.msg[0].server_return==-1){ alert(obj.msg[0].server_error); } else{ var_dump(gLocal.gui.userdict+obj.msg[0].server_op+" "+gLocal.gui.ok); switch(obj.msg[0].server_op){ case "insert": g_DictWordNew.Id=obj.msg[0].server_return; g_DictWordNew.dictID=1;/*temp code*/ var inDict=false; for(iFindNew in g_DictWordList){ if(g_DictWordList[iFindNew].Id==g_DictWordNew.Id && g_DictWordList[iFindNew].fileName=="user_default"){ inDict=true; break; } } //if recorder in list don't add to list if(!inDict){ g_DictWordList.unshift(g_DictWordNew); editor_insertNewWordToInlineDict(g_DictWordNew); } break; case "update": g_DictWordList[g_DictWordUpdataIndex]=g_DictWordNew; editor_updataInlineDict(g_DictWordUpdataIndex,g_DictWordNew) break; } } showCurrWordTable(g_WordTableCurrWord); modifyWordDetailByWordId(g_currEditWord); } else { debugOutput(xmlhttp.statusText,0); } } } function editor_insertNewWordToInlineDict(newWord){ var xAllWord=gXmlBookDataInlineDict.getElementsByTagName("word"); var newElement=gXmlBookData.createElement("word"); setNodeText(newElement,"id",newWord.Id.toString()); setNodeText(newElement,"guid",newWord.Guid); setNodeText(newElement,"pali",newWord.Pali); setNodeText(newElement,"mean",newWord.Mean); setNodeText(newElement,"type",newWord.Type); setNodeText(newElement,"gramma",newWord.Gramma); setNodeText(newElement,"parent",newWord.Parent); setNodeText(newElement,"parentid",newWord.ParentId); setNodeText(newElement,"factors",newWord.Factors); setNodeText(newElement,"factorMean",newWord.FactorMean); setNodeText(newElement,"partid",newWord.PartId); setNodeText(newElement,"note",newWord.Note); setNodeText(newElement,"confer",newWord.Confer); setNodeText(newElement,"status",newWord.Status); setNodeText(newElement,"enable",newWord.Enable); setNodeText(newElement,"dictname",newWord.dictname); setNodeText(newElement,"dictType",newWord.dictType); setNodeText(newElement,"fileName",newWord.fileName); setNodeText(newElement,"parentLevel",newWord.ParentLevel.toString()); if(xAllWord.length>0){ gXmlBookDataInlineDict.insertBefore(newElement,xAllWord[0]); } else{ gXmlBookDataInlineDict.insertBefore(newElement,null); } } function editor_updataInlineDict(iword,newWord){ var xILD=gXmlBookDataInlineDict.getElementsByTagName("word") if(xILD==null){ return; } setNodeText(xILD[iword],"id",newWord.Id); setNodeText(xILD[iword],"pali",newWord.Pali); setNodeText(xILD[iword],"mean",newWord.Mean); setNodeText(xILD[iword],"type",newWord.Type); setNodeText(xILD[iword],"gramma",newWord.Gramma); setNodeText(xILD[iword],"parent",newWord.Parent); setNodeText(xILD[iword],"factors",newWord.Factors); setNodeText(xILD[iword],"factorMean",newWord.FactorMean); setNodeText(xILD[iword],"note",newWord.Note); setNodeText(xILD[iword],"confer",newWord.Confer); setNodeText(xILD[iword],"status",newWord.Status); setNodeText(xILD[iword],"delete",newWord.Delete); setNodeText(xILD[iword],"dictname",newWord.dictname); setNodeText(xILD[iword],"dictType",newWord.dictType); setNodeText(xILD[iword],"fileName",newWord.fileName); setNodeText(xILD[iword],"parentLevel",newWord.ParentLevel); } /* 上传到我的字典 */ function upload_to_my_dict(wordIdFrom=-1,wordIdTo=-1){ let queryString = ""; let x = gXmlBookDataBody.getElementsByTagName("word"); let iCount=0; let wordNode ; let d_pali; let d_guid; let d_mean; let d_parent; let d_parent_id; let d_parentmean; let d_factors; let d_fm; let d_part_id; let d_case ; let d_note; let formula; for(let wordID=wordIdFrom; wordID<=wordIdTo;wordID++) { if(wordIdFrom==-1){ d_pali=doc_word("#"+g_currEditWord).val("real"); d_guid=""; d_mean=$("#input_meaning").val(); d_parent=$("#id_text_parent").val(); d_parent_id=""; d_parent=com_getPaliReal(d_parent); d_parentmean=removeFormulaB(d_mean,'[',']'); d_parentmean=removeFormulaB(d_parentmean,'{','}'); //if(d_parentmean.substr()) d_factors=$("#input_org").val(); d_fm=$("#input_om").val();//g_arrPartMean.join("+"); d_part_id=""; d_case = $("#input_case").val(); d_note = $("#id_text_note").val(); } else{ wordNode = x[wordID]; d_pali=getNodeText(wordNode,"real"); d_guid=getNodeText(wordNode,"guid"); d_mean=getNodeText(wordNode,"mean"); d_parent=getNodeText(wordNode,"parent"); d_parent_id=getNodeText(wordNode,"parent_id"); d_parent=com_getPaliReal(d_parent); d_parentmean=removeFormulaB(d_mean,'[',']'); d_parentmean=removeFormulaB(d_parentmean,'{','}'); d_factors=getNodeText(wordNode,"org"); d_fm=getNodeText(wordNode,"om"); d_part_id=getNodeText(wordNode,"part_id"); d_case = getNodeText(wordNode,"case"); d_note=getNodeText(wordNode,"note"); } var iPos=d_case.indexOf("#"); if(iPos>=0){ var d_type=d_case.substring(0,iPos); if(iPos0 && !(d_mean=="" && d_factors=="" && d_fm=="" && d_case=="")){ //parent gramma infomation switch(d_type){ case ".n.": d_parentType=".n:base."; d_parentGramma=d_gramma.split("$")[0]; if(d_parentGramma==".m." || d_parentGramma==".f." || d_parentGramma==".nt."){ d_parentGramma=d_parentGramma; } else{ d_parentGramma=""; } break; case ".adj.": d_parentType=".ti:base."; d_parentGramma=".adj."; break; case ".ti.": d_parentType=".ti:base."; d_parentGramma=""; break; case ".pron.": d_parentType=".pron:base."; d_parentGramma=""; break; case ".num.": d_parentType=".num:base."; d_parentGramma=""; break; case ".v.": d_parentType=".v:base."; d_parentGramma=""; break; case ".v:ind.": d_parentType=".v:base."; d_parentGramma=""; break; case ".ind.": d_parentType=".ind."; d_parentGramma=""; break; default: d_parentType=""; d_parentGramma=""; break; } let d_confer=""; let d_status="512"; let d_enable="TRUE"; queryString+=""; queryString+=""+d_pali+""; queryString+=""+d_guid+""; queryString+=""+d_type+""; queryString+=""+d_gramma+""; queryString+=""+d_parent+""; queryString+=""+d_parent_id+""; queryString+=""+d_mean+""; queryString+=""+d_note+""; queryString+=""+d_factors+""; queryString+=""+d_fm+""; queryString+=""+d_part_id+""; queryString+=""+d_confer+""; queryString+=""+d_status+""; queryString+=""+d_enable+""; queryString+=""+d_language+""; queryString+=""; iCount++; //formula if(formula!="~"){ queryString+=""; queryString+="_formula_"; queryString+=""; queryString+=""+d_type+""; queryString+=""+d_gramma+""; queryString+=""; queryString+=""; queryString+=""+formula+""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+=""+d_status+""; queryString+=""+d_enable+""; queryString+=""+d_language+""; queryString+=""; iCount++; } //parent recorder if(d_parent.length>0){ queryString+=""; queryString+=""+d_parent+""; queryString+=""; queryString+=""+d_parentType+""; queryString+=""+d_parentGramma+""; queryString+=""; queryString+=""; queryString+=""+d_parentmean+""; queryString+=""; let fc=d_factors.split("+"); if(fc.length>0 && (fc[fc.length-1].slice(0,1)=="[" && fc[fc.length-1].slice(-1)=="]")){ fc.pop(); } queryString+=""+fc.join("+")+""; let fm=d_fm.split("+"); fm.length=fc.length; queryString+=""+fm.join("+")+""; queryString+=""; queryString+=""; queryString+="512"; queryString+="TRUE"; queryString+=""+d_language+""; queryString+=""; iCount++; } //part recorder if(d_fm.slice(0,3)!="[a]"){ let arrPart = d_factors.split('+'); let arrPartMean = d_fm.split('+'); if(arrPart.length>0 && arrPart.length==arrPartMean.length){ for(iPart in arrPart){ if(arrPartMean[iPart]!="" && arrPartMean[iPart]!="?") arrPart[iPart]=arrPart[iPart].replace("(",""); arrPart[iPart]=arrPart[iPart].replace(")",""); queryString+=""; queryString+=""; queryString+=""+arrPart[iPart]+""; queryString+=".part."; queryString+=""; queryString+=""; queryString+=""; queryString+=""+arrPartMean[iPart]+""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+="512"; queryString+="TRUE"; queryString+=""+d_language+""; queryString+=""; iCount++ } } } } } queryString+=""; if(iCount==0){ ntf_show("no word update"); } else{ $.post("dict_updata_wbw.php", queryString, function(data,status){ ntf_show("Data: " + data + "\nStatus: " + status); }); } } // word by word dict updata var editor_wbwUpdataXmlHttp=null; function editor_WbwUpdata(wordIdFrom,wordIdTo){ var xmlText=""; if(window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc. editor_wbwUpdataXmlHttp=new XMLHttpRequest(); } else if(window.ActiveXObject) {// code for IE6, IE5 editor_wbwUpdataXmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (editor_wbwUpdataXmlHttp!=null) { let queryString=""; let x = gXmlBookDataBody.getElementsByTagName("word"); let iCount=0; let d_language=language_translation; for(let wordID=wordIdFrom; wordID<=wordIdTo;wordID++){ let wordNode = x[wordID]; let d_pali = getNodeText(wordNode,"real"); let d_guid = getNodeText(wordNode,"guid"); let d_mean = getNodeText(wordNode,"mean"); let d_parent = getNodeText(wordNode,"parent"); let d_parent_id = getNodeText(wordNode,"parent_id"); d_parent = com_getPaliReal(d_parent); let d_parentmean = removeFormulaB(d_mean,'[',']'); d_parentmean = removeFormulaB(d_parentmean,'{','}'); let formula=getFormulaFromMeaning(d_mean); let d_factors = getNodeText(wordNode,"org"); let d_fm = getNodeText(wordNode,"om"); let d_part_id = getNodeText(wordNode,"part_id"); let d_case = getNodeText(wordNode,"case"); let d_note = getNodeText(wordNode,"note"); if(d_pali.length>0 && !(d_mean=="?" && d_factors=="?" && d_fm=="?" && d_case=="?")){ let iPos=d_case.indexOf("#"); if(iPos>=0){ let d_type=d_case.substring(0,iPos); if(iPos"; queryString+=""+d_guid+""; queryString+=""+d_type+""; queryString+=""+d_gramma+""; queryString+=""+d_parent+""; queryString+=""+d_parent_id+""; queryString+=""+d_mean+""; queryString+=""+d_note+""; queryString+=""+d_factors+""; queryString+=""+d_fm+""; queryString+=""+d_part_id+""; queryString+=""+d_confer+""; queryString+=""+d_status+""; queryString+=""+d_enable+""; queryString+=""+d_language+""; queryString+=""; iCount++; //formula queryString+=""; queryString+="_formula_"; queryString+=""; queryString+=""+d_type+""; queryString+=""+d_gramma+""; queryString+=""; queryString+=""; queryString+=""+formula+""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+=""+d_status+""; queryString+=""+d_enable+""; queryString+=""+d_language+""; queryString+=""; iCount++; //parent recorder if(d_parent.length>0){ queryString+=""; queryString+=""+d_parent+""; queryString+=""; queryString+=""+d_parentType+""; queryString+=""+d_parentGramma+""; queryString+=""; queryString+=""; queryString+=""+d_parentmean+""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+="512"; queryString+="TRUE"; queryString+=""+d_language+""; queryString+=""; iCount++; } //part recorder arrPart = d_factors.split('+'); arrPartMean = d_fm.split('+'); if(arrPart.length>0 && arrPart.length==arrPartMean.length){ for(iPart in arrPart){ if(arrPartMean[iPart]!="?" && arrPartMean[iPart]!="" && arrPartMean[iPart]!=""){ arrPart[iPart]=arrPart[iPart].replace("(",""); arrPart[iPart]=arrPart[iPart].replace(")",""); queryString+=""; queryString+=""; queryString+=""+arrPart[iPart]+""; queryString+=".part."; queryString+=""; queryString+=""; queryString+=""; queryString+=""+arrPartMean[iPart]+""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+=""; queryString+="512"; queryString+="TRUE"; queryString+=""+d_language+""; queryString+=""; iCount++ } } } } } queryString+=""; if(iCount>0){ editor_wbwUpdataXmlHttp.onreadystatechange=editor_wbwDictUpdata_serverResponse; console.log("updata user dict start.",0); editor_wbwUpdataXmlHttp.open("POST", "dict_updata_wbw.php", true); editor_wbwUpdataXmlHttp.send(queryString); } else{ console.log("no user dicttionary data need updata.",0); } } else { alert("Your browser does not support XMLHTTP."); } } function editor_wbwDictUpdata_serverResponse(){ if (editor_wbwUpdataXmlHttp.readyState==4)// 4 = "loaded" { debugOutput("server response.",0); if (editor_wbwUpdataXmlHttp.status==200) {// 200 = "OK" let serverText = editor_wbwUpdataXmlHttp.responseText; var_dump(serverText); debugOutput(serverText,0); } else { debugOutput(xmlhttp.statusText,0); } } } function uploadAllWordData(){ let x = gXmlBookDataBody.getElementsByTagName("word"); if(x.length>0){ editor_WbwUpdata(0,x.length-1); } else{ } } function renderCaseSelect(type,case1,case2,case3,unique_id,padding_width){ eCaseTable=document.getElementById("input_select_case"); eCaseItems = eCaseTable.getElementsByTagName("span"); if(type){ strTypeSelect="
"; strTypeSelect+="

"+getLocalGrammaStr(type)+"

"; } else{ strTypeSelect="
"; strTypeSelect+="

?

"; } strTypeSelect+="
"; for(iType=0;iType"+gLocal.type_str[iType].value+"" } strTypeSelect+="
"; strTypeSelect+="
"; eCaseItems[0].innerHTML=strTypeSelect; for(iType=0;iType0){ items=gramma.split("$"); if(case1==""){ case1=items[0]; g_caseSelect[1]=case1; } strTypeSelect="

"+getLocalGrammaStr(case1)+"

"; strTypeSelect+="
"; for(iItem=0;iItem"+getLocalGrammaStr(items[iItem])+"" } strTypeSelect+="
"; strTypeSelect+="
"; } else{ g_caseSelect[1]=""; } eCaseItems[1].innerHTML=strTypeSelect; strTypeSelect=""; gramma=gramma_str[iType].b; if(gramma.length>0){ items=gramma.split("$"); if(case2==""){ case2=items[0]; g_caseSelect[2]=case2; } strTypeSelect="

"+getLocalGrammaStr(case2)+"

"; strTypeSelect+="
"; for(iItem=0;iItem"+getLocalGrammaStr(items[iItem])+"" } strTypeSelect+="
"; strTypeSelect+="
"; } else{ g_caseSelect[2]=""; } eCaseItems[2].innerHTML=strTypeSelect; strTypeSelect=""; gramma=gramma_str[iType].c; if(gramma.length>0){ items=gramma.split("$"); if(case3==""){ case3=items[0]; g_caseSelect[3]=case3; } strTypeSelect="

"+getLocalGrammaStr(case3)+"

"; strTypeSelect+="
"; for(iItem=0;iItem"+getLocalGrammaStr(items[iItem])+"" } strTypeSelect+="
"; strTypeSelect+="
"; } else{ g_caseSelect[3]=""; } eCaseItems[3].innerHTML=strTypeSelect; } } } function refreshCaseSelect(){ renderCaseSelect(g_caseSelect[0],g_caseSelect[1],g_caseSelect[2],g_caseSelect[3],"wbw",1); var newCaseString=g_caseSelect[0]+"#"; if(g_caseSelect[1].length>0){ newCaseString+=g_caseSelect[1]; } if(g_caseSelect[2].length>0){ newCaseString+="$"+g_caseSelect[2]; } if(g_caseSelect[3].length>0){ newCaseString+="$"+g_caseSelect[3]; } document.getElementById("input_case").value=newCaseString; rela_refresh(g_currEditWord); } function caseChanged(index,newValue){ g_caseSelect[index]=newValue; refreshCaseSelect(); refreshPartMeaningSelect(); } function removeFormula_B(inStr){ pos=0; copy=true; var output=""; for(i=0;i=0){ return(inStr); } pos=0; copy=true; var output=""; for(i=0;i"; lock_key_str+=""; lock_key_str+=""; lock_key_str+=""; document.getElementById(obj).innerHTML=lock_key_str; break; case "on": lock_key_str+=""; lock_key_str+=""; lock_key_str+=""; lock_key_str+=""; document.getElementById(obj).innerHTML=lock_key_str; break; } } function set_word_click_action(obj,item){ switch(item){ case "normal": if(document.getElementById(obj).checked==true){ document.getElementById(obj).checked=false; document.getElementById("icon_"+obj+"_on").style.display="none"; document.getElementById("icon_"+obj+"_off").style.display="block"; } else{ document.getElementById(obj).checked=true; document.getElementById("icon_"+obj+"_on").style.display="block"; document.getElementById("icon_"+obj+"_off").style.display="none"; } break; case "edit": if(document.getElementById(obj).checked==true){ document.getElementById(obj).checked=false; document.getElementById("icon_"+obj+"_on").style.display="none"; document.getElementById("icon_"+obj+"_off").style.display="block"; mouse_action_edit=document.getElementById(obj).checked; } else{ document.getElementById(obj).checked=true; document.getElementById("icon_"+obj+"_on").style.display="block"; document.getElementById("icon_"+obj+"_off").style.display="none"; document.getElementById("icon_Trans_as_on").style.display="none"; document.getElementById("icon_Trans_as_off").style.display="block"; document.getElementById("Trans_as").checked=false; mouse_action_translate=false; mouse_action_edit=document.getElementById(obj).checked; } break; case "lookup": if(document.getElementById(obj).checked==true){ document.getElementById(obj).checked=false; document.getElementById("icon_"+obj+"_on").style.display="none"; document.getElementById("icon_"+obj+"_off").style.display="block"; mouse_action_lookup=document.getElementById(obj).checked; } else{ document.getElementById(obj).checked=true; document.getElementById("icon_"+obj+"_on").style.display="block"; document.getElementById("icon_"+obj+"_off").style.display="none"; document.getElementById("icon_Trans_as_on").style.display="none"; document.getElementById("icon_Trans_as_off").style.display="block"; document.getElementById("Trans_as").checked=false; mouse_action_translate=false; mouse_action_lookup=document.getElementById(obj).checked; } break; case "translate": if(document.getElementById(obj).checked==true){ document.getElementById(obj).checked=false; document.getElementById("icon_"+obj+"_on").style.display="none"; document.getElementById("icon_"+obj+"_off").style.display="block"; mouse_action_translate=document.getElementById(obj).checked; } else{ document.getElementById(obj).checked=true; document.getElementById("icon_"+obj+"_on").style.display="block"; document.getElementById("icon_"+obj+"_off").style.display="none"; document.getElementById("icon_Look_Up_on").style.display="none"; document.getElementById("icon_Look_Up_off").style.display="block"; document.getElementById("icon_Edit_Dialog_on").style.display="none"; document.getElementById("icon_Edit_Dialog_off").style.display="block"; document.getElementById("Edit_Dialog").checked=false; document.getElementById("Look_Up").checked=false; mouse_action_edit=false; mouse_action_lookup=false; mouse_action_translate=document.getElementById(obj).checked; } break; } } //鼠标点击词头 function on_word_click(sWordId){ g_currEditWord=sWordId; var xAllWord = gXmlBookDataBody.getElementsByTagName("word"); var wid=getWordIndex(sWordId); g_eCurrWord=xAllWord[wid]; var sReal = getNodeText(xAllWord[wid],"real"); var sParent = getNodeText(xAllWord[wid],"parent"); var sMeaning = getNodeText(xAllWord[wid],"mean"); //显示修改单个词的窗口 if(mouse_action_edit){ showModifyWin(sWordId) } //word Message msg_show_content(1,sWordId); msg_show_content_panal(); //术语 note_lookup(sParent,"term_dict"); //参考字典 if(mouse_action_lookup){ dict_search(sReal); } //添加词到翻译框 //if(mouse_action_translate){ // add_word_to_tran_win(sMeaning); //} } function note_apply(guid){ } /* function apply_button_lock(){ if($("#input_lock")[0].checked){// || g_currBookMarkColor!="bmc0" $("#apply_to_down")[0].disabled=true; $("#apply_to_up")[0].disabled=true; $("#apply_to_all")[0].disabled=true; } else{ $("#apply_to_down")[0].disabled=false; $("#apply_to_up")[0].disabled=false; $("#apply_to_all")[0].disabled=false; } } */ function mdf_win_data_change(key,value){ $("#"+key).val(value); } function mdf_win_part_change(strPart){ $("#input_org").val(strPart); input_org_change(); } function mdf_win_case_change(strCase){ let aCase=strCase.split("#"); let type=""; let gramma=""; if(aCase[0]){ type=aCase[0]; } if(aCase[0]){ type=aCase[0]; } if(aCase[1]){ gramma=aCase[1]; } $("#input_case").val(strCase); let arrGramma=gramma.split("$"); g_caseSelect[0]=type; if(arrGramma[0]){ g_caseSelect[1]=arrGramma[0]; } else{ g_caseSelect[1]=""; } if(arrGramma[1]){ g_caseSelect[2]=arrGramma[1]; } else{ g_caseSelect[2]=""; } if(arrGramma[2]){ g_caseSelect[3]=arrGramma[2]; } else{ g_caseSelect[3]=""; } refreshCaseSelect(); } //显示修改单个词的窗口 function showModifyWin(sWordId){ //获取当前编辑的单词所在的段的索引号 gCurrModifyWindowParNo=getParIndexByWordId(sWordId); let xAllWord = gXmlBookDataBody.getElementsByTagName("word"); let wid=getWordIndex(sWordId); let tWin=""; let tApply = ""; let eWord=document.getElementById("wb"+sWordId); let eWin = document.getElementById("modifywin"); let eWordInfo = document.getElementById("modify_detaile"); let eApply = document.getElementById("modify_apply"); let sReal = getNodeText(xAllWord[wid],"real"); let sParent = getNodeText(xAllWord[wid],"parent"); let sMeaning = getNodeText(xAllWord[wid],"mean"); let sOrg = getNodeText(xAllWord[wid],"org"); let sOm = getNodeText(xAllWord[wid],"om"); let sCase = getNodeText(xAllWord[wid],"case"); let sParentGrammar = getNodeText(xAllWord[wid],"pg"); let sParent2 = getNodeText(xAllWord[wid],"parent2"); //showCurrWordTable(sReal); if(g_useMode=="edit"){ $("#input_meaning").val(sMeaning); $("#input_org").val(sOrg); $("#input_om").val(sOm); $("#input_case").val(sCase); if(sParentGrammar!="" || sParent2!=""){ document.getElementById("edit_detail_prt_prt").style.display="flex"; document.getElementById("svg_parent2").style.transform="rotate(90deg)"; } else{ document.getElementById("edit_detail_prt_prt").style.display="none"; document.getElementById("svg_parent2").style.transform="rotate(0deg)"; } document.getElementById("parent_grammar").innerHTML=sParentGrammar; $("#id_text_prt_prt").val(sParent2); //右侧修改菜单 $("#word_mdf_mean_dropdown").html(render_word_menu_mean(g_currEditWord,1)); $("#word_mdf_parts_dropdown").html(render_word_menu_parts(sWordId,1)); $("#word_mdf_case_dropdown").html(render_word_menu_gramma(sWordId,1)); $("#word_mdf_parent_dropdown").html(render_word_menu_parent(sWordId)); let typeAndGramma=sCase.split("#"); if(typeAndGramma.length>1){ sType=typeAndGramma[0]; sGramma=typeAndGramma[1]; } else{ sType=""; sGramma=typeAndGramma[0]; } g_caseSelect[0]=sType; aGramma=sGramma.split("$"); lenGramma=aGramma.length; if(lenGramma>3){ lenGramma=3; } for(iGramma=0;iGramma"; tApply += "

"//onclick=apply_button_lock() if (getNodeText(xAllWord[wid], "lock") == "true") { tApply += ""; tApply += "" tApply += ""; tApply += "" } else{ tApply += ""; tApply += ""; tApply += ""; tApply += ""; } //tApply += ""; let allword=doc_word(); let sameCount=0; for(let i=0 ; i1){ tApply += ""; } else{ tApply += ""; } tApply += ""+gLocal.gui.applyto+" "+(sameCount+1)+" "+gLocal.gui.same_word+""; tApply += ""; tApply += ""; tApply += ""; //tApply += ""; tApply += ""; tApply += "

"; tApply+= "
"; tApply+= "
"; /* tApply += "" tApply+= ""; tApply += ""; tApply+= ""; tApply+= ""; tApply+= ""; */ tApply+= ""; tApply+= ""; tApply+= ""; tApply+= "
"; eApply.innerHTML = tApply; document.getElementById("id_text_bookmark").value=getNodeText(xAllWord[wid],"bmt"); document.getElementById("id_text_note").value=getNodeText(xAllWord[wid],"note"); document.getElementById("id_text_id").innerHTML=get_book_name_by_id(getNodeText(xAllWord[wid],"id")); document.getElementById("id_text_pali").value=getNodeText(xAllWord[wid],"pali"); document.getElementById("id_text_real").value=getNodeText(xAllWord[wid],"real"); document.getElementById("id_text_parent").value=getNodeText(xAllWord[wid],"parent"); $("#id_relation_text").val(getNodeText(xAllWord[wid],"rela")); rela_refresh(sWordId); if(getNodeText(xAllWord[wid],"bmc")==""){ g_currBookMarkColor="bmc0"; } else{ g_currBookMarkColor=getNodeText(xAllWord[wid],"bmc"); } getBookMarkColor(g_currBookMarkColor); eWin.style.display="block"; var sDetail="detail"+sWordId; var eDetail=document.getElementById(sDetail); eWord.insertBefore(eWin,eDetail); document.getElementById("dict_ref_search_input").value=sReal; //editor_refresh_inline_dict(sReal); } } function get_book_name_by_id(bookid){ var book_id=bookid.split("-")[0]; var book_id2=bookid.slice(book_id.length); for(i_bookname in local_palicannon_index){ if(book_id==local_palicannon_index[i_bookname].id){ book_id2=local_palicannon_index[i_bookname].title+book_id2; } } return(book_id2); } function add_word_to_tran_win(sMeaning){ var tranObj=document.getElementById("id_text_edit_form"); if(tranObj && tranObj.style.display!="none"){ var textObj=document.getElementById("id_text_edit_area"); if(textObj){ textObj.value += sMeaning; } } } //编辑窗口拆分改变 var g_arrPartMean=null; var g_initPartMeaning=true; var mDict=new Array(); function input_org_change(){ g_arrPartMean=null; g_initPartMeaning=true; var arrPart=$("#input_org").val().split("+"); var arrNewPart=new Array(); var i; for(i in arrPart){ if(!mDict[arrPart[i]]){ arrNewPart.push(arrPart[i]); } } if(arrNewPart.length>0){ //如果有内存字典里面没有的单词,查询 $.get("dict_find_one.php", { word:arrNewPart.join(), type:"part" }, function(data,status){ try{ var worddata=JSON.parse(data); } catch(e){ console.error(e.error); } if(worddata.length>0){ var spell=new Array(); for(var i in worddata){ if(mDict[worddata[i].pali]){ spell[worddata[i].pali]=1; } else{ spell[worddata[i].pali]=0; } } for(var word in spell){ if(spell[word]==0){ mDict[word]=new Array(); } } for(var i in worddata){ if(spell[worddata[i].pali]==0){ mDict[worddata[i].pali].push(worddata[i]); } } } else{ } refreshPartMeaningSelect(); }); } else{ refreshPartMeaningSelect(); } } function load_my_formula(){ //如果有内存字典里面没有的单词,查询 console.log("load_my_formula - dict_find_one.php"); $.get("dict_find_one.php", { word:"_formula_", dict_name:"../../user/wbw.db3", deep:1 }, function(data,status){ try{ myFormula=JSON.parse(data); } catch(e){ console.error(e.error); } }); } function part_mean_ok(){ var part_mean_ok_str=g_arrPartMean.join("+"); part_mean_ok_str="#"+part_mean_ok_str+"#" part_mean_ok_str=part_mean_ok_str.replace(/\+ /g,"+"); part_mean_ok_str=part_mean_ok_str.replace(/ \+/g,"+"); part_mean_ok_str=part_mean_ok_str.replace(/\# /g,""); part_mean_ok_str=part_mean_ok_str.replace(/ \#/g,""); part_mean_ok_str=part_mean_ok_str.replace(/\#/g,""); document.getElementById("input_om").value=part_mean_ok_str;//.slice(0,-1); } /* 编辑窗口中拆分下拉菜单改变 */ function meaningPartChange(index,newValue){ g_initPartMeaning=false; g_arrPartMean[index]=newValue; part_mean_ok() refreshPartMeaningSelect(); } function input_org_switch(id_1,id_2){ document.getElementById(id_1).style.display="none"; document.getElementById(id_2).style.display="inline-flex"; document.getElementById(id_2).focus(); refreshPartMeaningSelect(); } function refreshPartMeaningSelect(){ var part = document.getElementById("input_org").value; var arrPart = new Array; if(part=="" || part.lastIndexOf("+")==-1){ arrPart.push(part); } else{ arrPart=part.split("+"); } if(g_initPartMeaning){ g_arrPartMean=part.split("+"); } var output=""; //output="
" for(iPart in arrPart){ output+=getMeaningMenuList(iPart,arrPart[iPart]) if(arrPart.length==1){ break; } else if(iPart"; output+= ""; output+= ""; output+= ""; output+= ""; document.getElementById("input_org_select").innerHTML=output; //增加拆分意思所见即所得 var part_mean_display_str=document.getElementById("input_om").value; var part_mean_display_array=new Array; if(part_mean_display_str.lastIndexOf("+")!=-1){ part_mean_display_array=part_mean_display_str.split("+"); } else{ part_mean_display_array.push(part_mean_display_str); } if(part_mean_display_array.length<=arrPart.length){ for(i_display in part_mean_display_array){ document.getElementById("org_part_mean_"+i_display).innerHTML=part_mean_display_array[i_display]; } if(part_mean_display_array.length=index){ currMeaningList.push(part_mean_display_array[index]); } else{ currMeaningList.push("↓↓"); } for(MeaningList_i in currMeaningList0){ currMeaningList.push(currMeaningList0[MeaningList_i]); } var output=""; output +="
"; output += "

"; if(g_initPartMeaning){ output += currMeaningList[0]; g_arrPartMean[index]=currMeaningList[0]; } else{ output += g_arrPartMean[index]; } output +="

"; output +="
"; //直列菜单 for(i in currMeaningList){ output +=""+currMeaningList[i]+""; } //带字典名的菜单 /* if(mDict[word]){ for(var j=0;j"; var currOM=mDict[word][j].mean.split("$"); for(var iMean in currOM){ if(currOM[iMean].length>0 && currOM[iMean]!="?"){ output +=""+currOM[iMean]+""; } } output +="
"; } } else{ output += "未知"; } */ output +="
"; output +=""; return(output); } function getWordMeaningList(word){ var currOM=""; var arrOM = new Array(); var thisWord=word; //新的方法 内存字典用索引数组 if(mDict[word]){ for(var j=0;j0 && currOM[iMean]!="?"){ pushNewToList(arrOM,currOM[iMean]); } } } } } if(arrOM.length==0){ arrOM.push("?"); } return(arrOM); } function edit_un_remove(parentId){ edit_un_RemoveHtmlNode(parentId); var xWord = gXmlBookDataBody.getElementsByTagName("word"); var count=0; for(iWord=xWord.length-1;iWord>=0;iWord--){ if(getNodeText(xWord[iWord],"un")==parentId){ xWord[iWord].parentNode.removeChild(xWord[iWord]); count++; } } var parentElement = document.getElementById('wb'+parentId); if(parentElement){ parentElement.classList.remove("un_parent"); parentElement.classList.remove("comp_parent"); } user_wbw_push_word(parentId); user_wbw_commit(); com_XmlAllWordRefresh(); modifyWordDetailByWordId(parentId); var_dump(gLocal.gui.removeword+": "+count); } function edit_un_RemoveHtmlNode(parentId){ var xAllWord=gXmlBookDataBody.getElementsByTagName("word"); for(wordIndex=0;wordIndex0){ switch(sWordCase){ case ".un:begin.": txtUnClass=" un_begin"; break; case ".un:begin.": txtUnClass=" un_end"; break; default: txtUnClass=" un_pali"; break; } } //word head being /*长度为1的为标点符号*/ if(strInsert.length<=1){ txtOut = txtOut + "

"; txtOut = txtOut + "" + strInsert+ ""; txtOut = txtOut + ""; txtOut = txtOut + "

\n"; } else{ txtOut = txtOut + "

"; txtOut = txtOut +""; txtOut = txtOut + ""+strInsert+""; txtOut = txtOut + ""; txtOut = txtOut + ""; txtOut = txtOut + "

\n"; } //word head end /*Detail being*/ txtOut = txtOut + "
"; txtOut = txtOut + renderWordDetailById(guid); txtOut = txtOut + "
"; //detail end //word block end divWord.innerHTML=txtOut; //如果下一个词不存在。 if(element){ element.parentNode.insertBefore(divWord,element); } else{ parentElement.parentNode.appendChild(divWord); } } function file_export_html_validate_form(thisform) { with (thisform) { var tocstring=document.getElementById("content").innerHTML; var suttastring=document.getElementById("sutta_text").innerHTML; txt_toc.value=tocstring.replace(/onclick/g,""); txt_sutta.value=suttastring.replace(/onclick/g,""); return true; } } function show_case_input(obj){ if(obj.checked){ document.getElementById("input_case").style.display="block"; } else{ document.getElementById("input_case").style.display="none"; } } function edit_tran_save(){ let eBlock; switch(gTextEditMediaType){ case "translate" : newText=document.getElementById("id_text_edit_area").value; newText=newText.replace(/\n\n/g,"
"); newText=term_edit_to_std_str(newText); setTranText(gEditorTranslateEditBlockId,newText); eBlock=document.getElementById("id_tran_"+gEditorTranslateEditBlockId); if(eBlock){ eBlock.innerHTML=renderTranslateParBlockInnerById(gEditorTranslateEditBlockId); term_updata_translation(); } break; case "note": setNoteText(gEditorNoteEditBlockId,document.getElementById("id_text_edit_area").value); newText=document.getElementById("id_text_edit_area").value; newText=newText.replace(/\n/g,"
"); eBlock=document.getElementById("note_sen_"+gEditorNoteEditBlockId+"_0"); if(eBlock){ eBlock.innerHTML=newText; } break; case "heading": var newHeadingInfo=new Object(); newHeadingInfo.level=document.getElementById("id_heading_edit_level").value newHeadingInfo.language=document.getElementById("id_text_edit_language").value newHeadingInfo.author=document.getElementById("id_text_edit_author").value newHeadingInfo.text=document.getElementById("id_text_edit_area").value setHeadingInfo(gEditorHeadingEditBlockId,newHeadingInfo); newText=document.getElementById("id_text_edit_area").value; newText=newText.replace(/\n/g,"
"); eBlock=document.getElementById("id_heading_text_"+gEditorHeadingEditBlockId); if(eBlock){ eBlock.innerHTML=newText; } updataToc() break; case "new_heading": var newHeadingInfo = new Object(); newHeadingInfo.book=gEditorNewHeadingBookId; newHeadingInfo.paragraph=gEditorNewHeadingPar; newHeadingInfo.level=document.getElementById("id_heading_edit_level").value newHeadingInfo.language=document.getElementById("id_text_edit_language").value newHeadingInfo.author=document.getElementById("id_text_edit_author").value newHeadingInfo.text=document.getElementById("id_text_edit_area").value newHeadBlock(newHeadingInfo) updataToc() break; } document.getElementById("id_text_edit_form").style.display="none"; Dragging(getDraggingDialog).disable() } function edit_tran_cancal(){ document.getElementById("id_text_edit_form").style.display="none"; Dragging(getDraggingDialog).disable() } function edit_tran_delete(){ switch(gTextEditMediaType){ case "heading" : xBlock=gXmlBookDataBody.getElementsByTagName("block"); for(var iBlock=0;iBlock"); setNodeText(xmlParData,"text",newText); setNodeText(xmlParInfo,"level",objValue.level); setNodeText(xmlParInfo,"author",objValue.author); setNodeText(xmlParInfo,"language",objValue.language); return; } } } //open project begin var editor_openProjectXmlHttp=null; function editor_openProject(strFileId,filetype){ if(window.XMLHttpRequest){// code for IE7, Firefox, Opera, etc. editor_openProjectXmlHttp=new XMLHttpRequest(); } else if(window.ActiveXObject){// code for IE6, IE5 editor_openProjectXmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (editor_openProjectXmlHttp!=null){ var d=new Date(); var strLink =""; if(filetype=="db"){ strLink = "project_load_db.php?id="+strFileId; } else{ strLink = "project_load.php?id="+strFileId; } editor_openProjectXmlHttp.onreadystatechange=editor_open_project_serverResponse; editor_openProjectXmlHttp.open("GET", strLink, true); editor_openProjectXmlHttp.send(null); } else{ alert("Your browser does not support XMLHTTP."); } } function editor_open_project_serverResponse(){ // 4 = "loaded" if (editor_openProjectXmlHttp.readyState==4){ if (editor_openProjectXmlHttp.status==200){// 200 = "OK" var xmlText = editor_openProjectXmlHttp.responseText; if (window.DOMParser){ parser=new DOMParser(); gXmlBookData=parser.parseFromString(xmlText,"text/xml"); } else{ // Internet Explorer gXmlBookData=new ActiveXObject("Microsoft.XMLDOM"); gXmlBookData.async="false"; gXmlBookData.loadXML(xmlText); } if (gXmlBookData == null){ alert("error:can not load Project. xml obj is null."); return; } projectDataParse(gXmlBookData); doc_file_info_get(); doc_info_change("accese_time",""); //消息系统初始化 let msg_id=doc_head("msg_db_max_id"); if(msg_id!="" && !isNaN(msg_id)){ msg_init(msg_id); } else{ msg_init(1); } updataDocParagraphList(); updataToc(); //渲染数据块 blockShow(0); refreshResource() editro_layout_loadStyle(); } else{ document.getElementById('sutta_text').innerHTML="Problem retrieving data:" + editor_openProjectXmlHttp.statusText; } } } //数据块显示 function blockShow(id) { xmlBlock=gXmlBookDataBody.getElementsByTagName("block") if(id=0){ var paliword=getNodeText(xAllWord[iIndex],"real"); //如果内存里有这个词,渲染单词下拉菜单 if(mDict[paliword]){ render_word_menu(_curr_mouse_enter_wordid); } else{ //如果内存里没有这个词,查字典 if(!mDictQueue[paliword]){ if(gCurrLookupWord!=paliword){ mDictQueue[paliword]=1; gCurrLookupWord=paliword; $.get("dict_find_one.php", { word:paliword }, on_dict_lookup ); } } } } //如果显示relation if(gRelationSelectWordBegin ){ gCurrWordDivBorder = $(this).css("border"); $(this).css("border","1px solid #65c5bd"); let eHeadBar = document.getElementById("word_tool_bar"); if(eHeadBar){ eHeadBar.style.display="block"; } let eWord=document.getElementById("ws_"+_curr_mouse_enter_wordid); let eWordHead=document.getElementById("whead_"+_curr_mouse_enter_wordid); eWord.insertBefore(eHeadBar,eWordHead); gWordHeadBarVisible = true; } } //解析字典数据 function inline_dict_parse(data){ if(data == ""){ return; } try{ var worddata=JSON.parse(data); } catch(e){ console.error(e+" data:"+data); return; } if(worddata.length>0){ //如果有数据 解析查询数据 let spell=new Array(); for(let i in worddata){ if(mDict[worddata[i].pali]){ spell[worddata[i].pali]=1; } else{ spell[worddata[i].pali]=0; } } for(let word in spell){ if(spell[word]==0){ mDict[word]=new Array(); } } for(let i in worddata){ if(spell[worddata[i].pali]==0){ mDict[worddata[i].pali].push(worddata[i]); mDictQueue[worddata[i].pali]=0; } } let type = new Array(); if(mDict[gCurrLookupWord]){ for(let i in mDict[gCurrLookupWord]){ type[mDict[gCurrLookupWord][i].type]=1; } if(type.length==1 && type[".comp."]){ inline_dict_auto_case(gCurrLookupWord); } } else{ //如果没有查到数据 添加自动格位 mDict[gCurrLookupWord]=new Array(); inline_dict_auto_case(gCurrLookupWord); } } else{ //如果没有查到数据 添加自动格位 mDict[gCurrLookupWord]=new Array(); inline_dict_auto_case(gCurrLookupWord); } } //添加自动格位数据到内存字典 function inline_dict_auto_case(paliword){ for(let i in gCaseTable){ if(gCaseTable[i].type!=".v."){ let sEnd2 = gCurrLookupWord.slice(0-gCaseTable[i].end2.length); if(sEnd2==gCaseTable[i].end2){ let wordParent=gCurrLookupWord.slice(0,0-gCaseTable[i].end2.length)+gCaseTable[i].end1; let newWord=new Object(); newWord.pali=gCurrLookupWord; newWord.type=gCaseTable[i].type; newWord.gramma=gCaseTable[i].gramma; newWord.parent=wordParent; newWord.mean=""; newWord.note=""; newWord.parts= wordParent + "+["+gCaseTable[i].end2+"]"; newWord.partmean=""; newWord.confidence=gCaseTable[i].confidence; mDict[paliword].push(newWord); } } } } function getAutoEnding(pali,base){ let ending=Array(); for(let i in gCaseTable){ if(gCaseTable[i].type!=".v."){ let sEnd2 = pali.slice(0-gCaseTable[i].end2.length); if(sEnd2==gCaseTable[i].end2){ let wordParent=pali.slice(0,0-gCaseTable[i].end2.length)+gCaseTable[i].end1; if(base == wordParent){ ending[gCaseTable[i].end2]=1; } } } } return(ending); } //查字典结果 function on_dict_lookup(data,status){ //解析查询数据 inline_dict_parse(data); render_word_menu(_curr_mouse_enter_wordid); } function render_word_menu(id){ $("#word_mean").html(render_word_menu_mean(id)); $("#word_parts").html(render_word_menu_parts(id)); $("#word_partmean").html(render_word_menu_partmean(id)); $("#word_gramma").html(render_word_menu_gramma(id)); show_word_menu_mean(id); show_word_menu_parts(id) show_word_menu_partmean(id) show_word_menu_gramma(id) } //根据单词长度排序 短词优先 function sortWordLen(a, b) { return(a.length - b.length); } //渲染单词意思下拉菜单 function render_word_menu_mean(id,target=0){ var output=""; var word_real=doc_word("#"+id).val("real"); var word_parent=doc_word("#"+id).val("parent"); var arrParent=new Array(); //检索语基 if(word_parent.length>0){ //arrParent[word_parent]=1; } if(mDict[word_real]){ for(var i in mDict[word_real]){ if(mDict[word_real][i].parent && mDict[word_real][i].parent.length>0){ if(word_parent!=mDict[word_real][i].parent && word_real!=mDict[word_real][i].parent){ arrParent[mDict[word_real][i].parent]=1; } } } } var sWord = new Array(); for(var sParent in arrParent){ sWord.push(sParent); } //按照base长度升序 sWord.sort(sortWordLen); if(word_parent.length>0){ sWord.unshift(word_parent); } sWord.unshift(word_real); output +=""; output +="
"; for(var iWord in sWord){ var pali = sWord[iWord]; //该词字典数量 var dict_count=0; if(mDict[pali]){ for(iCount in mDict[pali]){ if(mDict[pali][iCount].mean && mDict[pali][iCount].mean.length>0){ dict_count++; } } } if(pali==word_parent){ output +="
"; } else{ output +="
"; } output +=""; if(pali==word_parent){ output +="·"+pali+"·"; } else{ output +=pali; } output +="-"+dict_count+"" output +=""; output +=""; output +=""; output +="
"; var currWordMean=new Array(); if(mDict[pali]){ for(var i in mDict[pali]){ var objMean=new Object(); objMean.type=""; objMean.gramma=""; objMean.dict_name=""; objMean.mean=""; if(mDict[pali][i].type){ objMean.type=mDict[pali][i].type; } if(mDict[pali][i].gramma){ objMean.gramma=mDict[pali][i].gramma; } if(mDict[pali][i].dict_name){ objMean.dict_name=mDict[pali][i].dict_name; } if(mDict[pali][i].mean ){ objMean.mean = mDict[pali][i].mean; } if(objMean.mean.length>0){ _mean_push(currWordMean,objMean); } } } for(var i in currWordMean){ var htmlMean=""; var wId=id; output +=""; output +="
" output +=""; output +=getLocalDictname(currWordMean[i].dict_name)+"" output +="
" output +="
" output +=""+getLocalGrammaStr(currWordMean[i].type)+"" for(var iMean in currWordMean[i].mean){ if(currWordMean[i].mean[iMean]!=""){ if(target==0){ htmlMean += ""+currWordMean[i].mean[iMean]+""; } else{ htmlMean += ""+currWordMean[i].mean[iMean]+""; } } } output +="
"; output +="
"+htmlMean+"
"; output +="
"; } output +="
"; } output+="
"; return(output); } function _win_mean_change(newmean){ $("#input_meaning").val(newmean); } function _mean_push(arr,obj){ var arrMean=obj.mean.split("$"); var strIndex=obj.dict_name+"-"+obj.type+"-"+obj.gramma; if(arr[strIndex]==null){ arr[strIndex]=new Object(); arr[strIndex].dict_name=obj.dict_name; arr[strIndex].type=obj.type arr[strIndex].gramma=obj.gramma; arr[strIndex].mean=new Array(); } for(var i=0;i"+gLocal.gui.empty1+"" output +=""; output += "
"; let pali=doc_word("#"+id).val("real"); let wParent=doc_word("#"+id).val("parent"); let wParts=doc_word("#"+id).val("org"); let arrParts=new Array(); let arrParent=new Array(); if(wParent!=""){ arrParts[wParent]=1; } if(target==1){ arrParts[pali]=1; } if(mDict[pali]){ for(let iWord in mDict[pali]){ if(mDict[pali][iWord].parts && mDict[pali][iWord].parts!=""){ arrParts[mDict[pali][iWord].parts]=1; } if(mDict[pali][iWord].parent && mDict[pali][iWord].parent!=""){ arrParent[mDict[pali][iWord].parent]=1; } } } //加入base拆分 if(mDict[wParent]){ let ending=getAutoEnding(pali,wParent); for(let iWord in mDict[wParent]){ if(mDict[wParent][iWord].parts && mDict[wParent][iWord].parts!=""){ arrParts[mDict[wParent][iWord].parts]=1; { for(let end in ending){ arrParts[mDict[wParent][iWord].parts+"+["+end+"]"]=1; } } } } } output += "
"; let outputPart=""; for(let sPart in arrParts){ if(wParts == sPart){ outputPart = ""+sPart+""; } else{ outputPart = sPart; } if(target==0){ output += ""+outputPart+""; } else{ output += ""+outputPart+""; } } output += "
"; //base parts 信息 for(let sParent in arrParent){ if(mDict[sParent]){ let arrParts = new Array(); for(let iWord in mDict[sParent]){ if(mDict[sParent][iWord].parts && mDict[sParent][iWord].parts!=""){ arrParts[mDict[sParent][iWord].parts]=1; } } if(arrParts.length>0){ output +="
"; output +="
"; output +=""; output +=sParent+""; output +=""; output +=gLocal.gui.more+"»"; output +="
"; output += "
"; for(let sPart in arrParts){ output +=""+sPart+""; } output += "
"; output +="
"; } } } return(output); } function show_word_menu_parts(id){ var word_parts_div=document.getElementById("parts_"+id); if(word_parts_div){ var parts_div=document.getElementById("word_parts"); if(parts_div){ //word_menu_div.appendChild(menu_div); $("#parts_"+id).html($("#word_parts").html()); } } } //渲染单词拆分意思下拉菜单 function render_word_menu_partmean(id){ var wordID=id; var sHtml=""; var pali = doc_word("#"+id).val("real"); var sOrg = doc_word("#"+id).val("org"); var listFactorForFactorMean = sOrg.split("+"); var currDefualtFM=""; for(iFactor in listFactorForFactorMean){ currDefualtFM+=findFirstMeanInDict(listFactorForFactorMean[iFactor])+"+";//拆分元素加号分隔 } currDefualtFM=currDefualtFM.replace(/" "/g," "); currDefualtFM=currDefualtFM.replace(/"+ "/g,"+"); currDefualtFM=currDefualtFM.replace(/" +"/g,"+"); currDefualtFM=currDefualtFM.substring(0,currDefualtFM.length-1);//去掉尾部的加号 kosalla if(currDefualtFM.slice(-1,-2)=="+"){ currDefualtFM=currDefualtFM.substring(0,currDefualtFM.length-1); } sHtml +=""; sHtml +="["+gLocal.gui.auto+"]"+currDefualtFM+""; var arrPartMean=new Array(); if(mDict[pali]){ for(var i in mDict[pali]){ if(mDict[pali][i].partmean && mDict[pali][i].partmean.length>0){ arrPartMean[mDict[pali][i].partmean]=1; } } } for(var sPM in arrPartMean){ sHtml +=""+sPM+""; } return(sHtml); } /* 渲染单词语基下拉菜单 id 单词id return 无 */ function render_word_menu_parent(id){ let output=""; let word_real=doc_word("#"+id).val("real"); let word_parent=doc_word("#"+id).val("parent"); let arrParent=new Array(); //检索语基 if(word_parent!=""){ arrParent[word_parent]=1; } if(mDict[word_real]){ for(let i in mDict[word_real]){ if(mDict[word_real][i].parent && mDict[word_real][i].parent.length>0){ arrParent[mDict[word_real][i].parent]=1; } } } let sWord = new Array(); for(let sParent in arrParent){ sWord.push(sParent); } //按照base长度升序 sWord.sort(sortWordLen); if(!str_in_array(word_real,sWord)){ sWord.push(word_real); } for(var iWord in sWord){ var pali = sWord[iWord]; output += ""; if(word_parent==pali){ output += ""+pali+""; } else{ output += pali; } output += ""; } return(output); } function show_word_menu_partmean(id){ var word_partmean_div=document.getElementById("partmean_"+id); if(word_partmean_div){ var partmean_div=document.getElementById("word_partmean"); if(partmean_div){ //word_menu_div.appendChild(menu_div); $("#partmean_"+id).html($("#word_partmean").html()); } } } //语法按照信心指数排序 function sortWordConfidence(a, b) { return(b-a); } /*渲染语法菜单 //@param target 0:主窗口 1:编辑窗口 */ function render_word_menu_gramma(id,target=0){ var wordID=id; var sHtml=""; var pali = doc_word("#"+id).val("real"); var arrGramma=new Array(); if(mDict[pali]){ for(var i in mDict[pali]){ var type = mDict[pali][i].type; var gramma = mDict[pali][i].gramma; if((type && type.length>0) || (gramma && gramma.length>0)){ var sCase=type+"#"+gramma; if(arrGramma[sCase]){ if(mDict[pali][i].confidence>arrGramma[sCase]){ arrGramma[sCase]=mDict[pali][i].confidence; } } else{ arrGramma[sCase]=1; } } } } arrGramma.sort(sortWordConfidence); for(var sGramma in arrGramma){ var sLocalCase= getLocalGrammaStr(sGramma); if(target==0){ sHtml +=""+cutString(sLocalCase,30)+""; } else{ sHtml += ""+cutString(sLocalCase,30)+""; } } return(sHtml); } function show_word_menu_gramma(id){ var gramma_div=document.getElementById("gramma_"+id); if(gramma_div){ var word_gramma_div=document.getElementById("word_gramma"); if(word_gramma_div){ //word_menu_div.appendChild(menu_div); $("#gramma_"+id).html($("#word_gramma").html()); } } } function hiddenProgressDiv(){ document.getElementById("loading_bar").style.animation="opacityGo 1s both"; } function editor_project_updataProjectInfo(){ var strInfo=""; var iInlineDictCount=gXmlBookDataInlineDict.getElementsByTagName("word").length; var iWordCount=gXmlBookDataBody.getElementsByTagName("word").length; strInfo+=gLocal.gui.wordnum+iWordCount+"
"; strInfo+=gLocal.gui.para+":"+gArrayDocParagraph.length+"
"; strInfo+=gLocal.gui.innerdict+":"+iInlineDictCount+"
"; strInfo+=gLocal.gui.vocabulary+CountVocabulary()+"
"; document.getElementById("id_editor_project_infomation").innerHTML=strInfo; document.getElementById("doc_info_title").value=getNodeText(gXmlBookDataHead,"doc_title"); document.getElementById("editor_doc_title").innerHTML=getNodeText(gXmlBookDataHead,"doc_title"); document.getElementById("file_title").innerHTML=getNodeText(gXmlBookDataHead,"doc_title"); } //import old ver file var editor_importOldVerXmlHttp=null; function editor_importOldVer(strFileName){ if(window.XMLHttpRequest){// code for IE7, Firefox, Opera, etc. editor_importOldVerXmlHttp=new XMLHttpRequest(); } else if(window.ActiveXObject){// code for IE6, IE5 editor_importOldVerXmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (editor_importOldVerXmlHttp!=null){ var d=new Date(); var strLink =""; strLink = "com_fileopen.php?filename="+strFileName; if(strLink.length>0){ editor_importOldVerXmlHttp.onreadystatechange=editor_import_old_ver_serverResponse; editor_importOldVerXmlHttp.open("GET", strLink, true); editor_importOldVerXmlHttp.send(null); //document.getElementById('sutta_text').innerHTML="Importing..."+strFileName; } else{ //document.getElementById('sutta_text').innerHTML="无法识别的文件类型"; } } else{ alert("Your browser does not support XMLHTTP."); } } function editor_import_old_ver_serverResponse(){ // 4 = "loaded" if (editor_importOldVerXmlHttp.readyState==4){ document.getElementById('sutta_text').innerHTML="
"; if (editor_importOldVerXmlHttp.status==200){// 200 = "OK" var xmlText = editor_importOldVerXmlHttp.responseText; if (window.DOMParser){ parser=new DOMParser(); gXmlOldVerData=parser.parseFromString(xmlText,"text/xml"); } else{ // Internet Explorer gXmlOldVerData=new ActiveXObject("Microsoft.XMLDOM"); gXmlOldVerData.async="false"; gXmlOldVerData.loadXML(xmlText); } if (gXmlOldVerData == null){ alert("error:can not load. xml obj is null."); return; } oldVerDataParse(gXmlOldVerData); } else{ document.getElementById('sutta_text').innerHTML="Problem retrieving data:" + editor_openProjectXmlHttp.statusText; } } } //在段落前设置或取消分页 function editor_page_break(obj,book,par){ if(obj.checked){ document.getElementById("par_"+book+"_"+par).style.pageBreakBefore="always" } else{ document.getElementById("par_"+book+"_"+par).style.pageBreakBefore="auto" } } function editor_heading_change(obj,book,par){ document.getElementById("content").innerHTML=""; allBlock=gXmlBookDataBody.getElementsByTagName("block") for(var iBlock=0;iBlockrootLevel){ opBegin=true; parId="par_"+bookId+"_"+(paragraph-1); if(obj.checked){ document.getElementById(parId).style.display="block"; } else{ document.getElementById(parId).style.display="none"; } } else{ if(opBegin){ break; } } } } } function editor_right_tool_bar_slide_toggle(){ if(document.getElementById("right_tool_bar").style.left=="100%"){ document.getElementById("right_tool_bar").style.display="block"; document.getElementById("right_tool_bar").style.left="calc(100% - 25em)"; } else{ document.getElementById("right_tool_bar").style.left="100%"; } } function right_panal_slide_toggle(idPanal){ if($("#"+idPanal).hasClass("act")){ document.getElementById("right_tool_bar").style.display="block"; document.getElementById("right_tool_bar").style.left="calc(100% - 25em)"; } else{ document.getElementById("right_tool_bar").style.left="100%"; } } function editor_show_right_tool_bar(visible){ if(visible){ document.getElementById("right_tool_bar").style.display="block"; document.getElementById("right_tool_bar").style.left="calc(100% - 25em)"; } else{ document.getElementById("right_tool_bar").style.left="100%"; } } function editor_goto_link(bookId,parNo,strLink=""){ parIndex = getParIndex(bookId,parNo); scrollEventLock=true; setNewView(parIndex-3,parIndex+6); scrollEventLock=false; if(strLink==""){ window.location.assign("#par_begin_"+bookId+"_"+(parNo-1)); } else{ window.location.assign("#"+strLink); } } function get_language_order(strLanguage){ for(iLan in dict_language_order){ if(dict_language_order[iLan]==strLanguage){ return(iLan); } } return(1000); } function removeAllInlinDictItem(){ var count; var xAllWord=gXmlBookDataInlineDict.getElementsByTagName("word"); count=xAllWord.length; while(xAllWord.length){ gXmlBookDataInlineDict.removeChild(xAllWord[0]); } g_DictWordList=new Array(); return(count); } function editor_refresh_inline_dict(word){ currMatchingDictNum=0; g_dictFindParentLevel=0; g_dictFindAllDone=false; g_dict_search_one_dict_done=editor_dict_one_dict_done; g_dict_search_all_done=editor_dict_all_done; g_dict_search_one_pass_done=null; dict_mark_word_list_done(); dict_push_word_to_download_list(word,0); var arrBuffer=dict_get_search_list(); if(arrBuffer.length>0){ g_CurrDictBuffer=JSON.stringify(arrBuffer); dict_mark_word_list_done(); editor_dict_match(); } else{ document.getElementById('editor_doc_notify').innerHTML="no new part"; } } function win_close(id){ document.getElementById(id).style.display="none"; } //利用下拉菜单修改单词信息 function fieldListChanged(inWordId,inField,inChangeTo,sParent=null){ var xAllWord = gXmlBookDataBody.getElementsByTagName("word"); var wordIndex=getWordIndex(inWordId); let arr_id_word = inWordId.split("-"); let book=arr_id_word[0].slice(1); let paragraph = arr_id_word[1]; setNodeText(xAllWord[wordIndex],"status","7"); setNodeAttr(xAllWord[wordIndex],inField,"status","7"); if(inField=="om"){/*拆分意思去掉开头的[a]*/ inChangeTo=inChangeTo.replace("[a]",""); } setNodeText(xAllWord[wordIndex],inField,inChangeTo); if(sParent){ setNodeText(xAllWord[wordIndex],"parent",sParent); } //提交用户逐词解析数据库 user_wbw_push_word(inWordId); user_wbw_commit(); //准备消息数据 let d=new Date(); let msg_doc_id; if(doc_info.sendmsg){ if(doc_info.parent_id!=""){ msg_doc_id=doc_info.parent_id; } else{ msg_doc_id=doc_info.doc_id; } msg_push(1,"{\"id\":\""+inWordId+"\",\""+inField+"\":\""+inChangeTo+"\",\"status\":\"7\"}",msg_doc_id,d.getTime(),book,paragraph); } modifyWordDetailByWordIndex(wordIndex); //modify other same word with auto-mark var word = getNodeText(xAllWord[wordIndex],"real"); for(var i=wordIndex+1;i0){ gUserSetup=JSON.parse(data); } }); } //修改用户设置 function editor_setup_save(key,value){ $.post("user_setup.php", { op:"save", key:key, value:value }, function(data,status){ if(data.length>0){ gUserSetup=JSON.parse(data); } }); } function tran_sen_save_click(blockid,senBegin,senEnd,obj){ let textareaid="ta_"+blockid+"_"+senBegin+"_"+senEnd; let newText=$("#"+textareaid).val(); tran_sen_save(blockid,senBegin,senEnd,newText); } function tran_sen_save(blockid,senBegin,senEnd,input){ if(input.length>0){ //input=input.replace(/\n\n/g,"
"); } input=term_edit_to_std_str(input); setTranText(blockid,senEnd,input); doc_tran("#"+blockid).text(senBegin,senEnd,"status",7); } function tran_text_onchange(blockid,senBegin,senEnd,obj){ let newText=obj.value; sen_save(blockid,senBegin,senEnd,newText); tran_sen_save(blockid,senBegin,senEnd,newText); } /* 句子失去焦点 退出编辑状态 */ function tran_sent_div_blur(blockId,senBegin,senEnd,obj){ obj.style.height="1.4em"; } function tran_sent_div_onfocus(blockId,senBegin,senEnd,obj){ obj.style.height="5em"; } //鼠标移到逐句翻译上 编辑状态 function tran_sent_div_mouseenter(blockId,wordSn){ /* $("#tran_sent_text_div_"+blockId+"_"+wordSn).show(); if(_tran_show_preview_on_edit==true){ $("#tran_pre_"+blockId+"_"+wordSn).show(); } else{ $("#tran_pre_"+blockId+"_"+wordSn).hide(); } */ } function set_tran_show_mode(set,obj){ if(set==1){ _tran_show_preview_on_edit=obj.checked; }else if(set==2){ _tran_show_textarea_esc_edit=obj.checked; if(obj.checked){ $(".tran_sen_textarea").show(); }else{ $(".tran_sen_textarea").hide(); } } } //按自动查词典按钮 var _para_list=new Array(); function menu_dict_match1(){ var book; var para=new Array(); xBlock=gXmlBookDataBody.getElementsByTagName("block"); for(var iBlock=0;iBlock0){ auto_match_wbw(0); } } //自动查词典 function auto_match_wbw(para_index){ $.get("dict_find_auto.php", { book:_para_list[para_index].book, para:_para_list[para_index].para }, function(data,status){ if(data.length>0){ var dict_data=new Array(); try{ dict_data=JSON.parse(data); } catch(error){ ntf_show("Error:"+error+"
"+data); } var counter=0; var xAllWord = gXmlBookDataBody.getElementsByTagName("word"); for(var x=0;x3){ //忽略已经被用户修改的词 continue; } let wid=getNodeText(xAllWord[x],"id"); let aid=wid.split("-"); let book=aid[0].substr(1); let para=aid[1]; let num=aid[2]; for(var i=0;i0){ /*text of title*/ var xTitleText = xTitle[0].getElementsByTagName("text"); if(xTitleText.length>0){ for (var iTitleText=0;iTitleText0){ titleLangauge=getNodeText(xTitleTextInfo[0],"language"); titleAuthor=getNodeText(xTitleTextInfo[0],"tranAuthor"); } var strTitle = getNodeText(xTitleText[iTitleText],"data"); setNodeText(xmlNewInfo,"type","heading"); setNodeText(xmlNewInfo,"paragraph",iPara.toString()); setNodeText(xmlNewInfo,"book",BookId); setNodeText(xmlNewInfo,"author","kosalla"); setNodeText(xmlNewInfo,"language",titleLangauge); setNodeText(xmlNewInfo,"edition",'0'); setNodeText(xmlNewInfo,"subedition",'0'); setNodeText(xmlNewInfo,"level",'1'); setNodeText(xmlNewInfo,"id",com_guid()); setNodeText(xmlNewData,"text",strTitle); gXmlBookDataBody.appendChild(newBlock); } } /*end of text of title*/ } //end of title xParagraph = x[i].getElementsByTagName("paragraph"); for (var j=0;j0){ for(var iTran=0;iTran0){ cloneBlock=newXmlBlock.cloneNode(true) newBlock=cloneBlock.getElementsByTagName("block")[0] xmlNewInfo = newBlock.getElementsByTagName("info")[0]; xmlNewData = newBlock.getElementsByTagName("data")[0]; setNodeText(xmlNewInfo,"type","wbw"); setNodeText(xmlNewInfo,"paragraph",iPara.toString()); setNodeText(xmlNewInfo,"book",BookId); setNodeText(xmlNewInfo,"author","kosalla"); setNodeText(xmlNewInfo,"edition",'0'); setNodeText(xmlNewInfo,"subedition",'0'); setNodeText(xmlNewInfo,"id",com_guid()); xWord = xPali[0].getElementsByTagName("word");//如果只有一个palipar /*遍历此段落中所有单词*/ var iSen=0; var strTranWords=""; for(k=0;k0){ /*text of translate*/ var xTranText = xTran[0].getElementsByTagName("text"); if(xTranText.length>0){ for (iTranText=0;iTranText0){ tranLangauge=getNodeText(xTranTextInfo[0],"language"); tranAuthor=getNodeText(xTranTextInfo[0],"author"); } var strTran = getNodeText(xTranText[iTranText],"data"); setNodeText(xmlNewInfo,"type","translate"); setNodeText(xmlNewInfo,"paragraph",iPara.toString()); setNodeText(xmlNewInfo,"book",BookId); setNodeText(xmlNewInfo,"author",tranAuthor); setNodeText(xmlNewInfo,"language",tranLangauge); setNodeText(xmlNewInfo,"edition",'0'); setNodeText(xmlNewInfo,"subedition",'0'); setNodeText(xmlNewInfo,"id",com_guid()); newSen=newXmlBlock.createElement("sen"); setNodeText(newSen,"a",""); setNodeText(newSen,"text",strTran); xmlNewData.appendChild(newSen); gXmlBookDataBody.appendChild(newBlock); } } /*end of text of translate*/ } /*翻译块结束*/ /*文件内note块开始*/ xTran = xParagraph[j].getElementsByTagName("comm"); if(xTran.length>0){ /*text of translate*/ var xTranText = xTran[0].getElementsByTagName("text"); if(xTranText.length>0){ for (iTranText=0;iTranText0){ tranLangauge=getNodeText(xTranTextInfo[0],"language"); tranAuthor=getNodeText(xTranTextInfo[0],"author"); } var strNote = getNodeText(xTranText[iTranText],"data"); setNodeText(xmlNewInfo,"type","note"); setNodeText(xmlNewInfo,"paragraph",iPara.toString()); setNodeText(xmlNewInfo,"book",BookId); setNodeText(xmlNewInfo,"author",tranAuthor); setNodeText(xmlNewInfo,"language",titleLangauge); setNodeText(xmlNewInfo,"edition",'0'); setNodeText(xmlNewInfo,"subedition",'0'); setNodeText(xmlNewInfo,"id",com_guid()); newSen=newXmlBlock.createElement("sen"); setNodeText(newSen,"a",""); setNodeText(newSen,"text",strNote); xmlNewData.appendChild(newSen); gXmlBookDataBody.appendChild(newBlock); } } /*end of text of translate*/ } /*文件内翻译块结束*/ iPara++ } } projectDataParse(gXmlBookData) updataToc() refreshResource() } function add_part(part){ $("#input_org").val(part); }