| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188 |
- var nWord=0;
- var suttaWordList=new Array();
- var tranParagraph=new Array();
- var g_useMode;
- var g_countWordList=0;
- var g_wordListOrderby="count";
- var g_wordListOrder=false;
- var g_isDictFavo=false;
- var g_autoUpdataDB=true;
- var gTextEditMediaType="";
- var gSutta=0;
- var gPar=0;
- var gTran=0;
- var g_bookMark_array=['a','x','1','2','3','4','5'];
- var wordList = new Array();
- function getNodeText(inNode,subTagName){
- try{
- if(inNode && inNode.getElementsByTagName(subTagName).length>0){
- if(inNode.getElementsByTagName(subTagName)[0].childNodes.length>0){
- var mValue = inNode.getElementsByTagName(subTagName)[0].childNodes[0].nodeValue;
- mValue = mValue.replace('<','<');
- mValue = mValue.replace('>','>');
- return(mValue);
- }
- else{
- return("");
- }
- }
- else{
- return("");
- }
- }
- catch(error){
- console.warn(error);
- return("");
- }
- return("");
- }
- function setNodeText(inNode,subTagName,strValue){
- if(strValue==null){
- return;
- }
- var mValue = strValue.toString();
- mValue = mValue.replace('<','<');
- mValue = mValue.replace('>','>');
- try{
- if(inNode && inNode.getElementsByTagName(subTagName).length==0){
- var newNode=gXmlBookData.createElement(subTagName);
- var textnode=gXmlBookData.createTextNode(" ");
- newNode.appendChild(textnode);
- inNode.appendChild(newNode);
- }
- if(inNode.getElementsByTagName(subTagName).length>0){
- if(inNode.getElementsByTagName(subTagName)[0].childNodes.length==0){
- var textnode=gXmlBookData.createTextNode(" ");
- inNode.getElementsByTagName(subTagName)[0].appendChild(textnode);
- }
- if(inNode.getElementsByTagName(subTagName)[0].childNodes.length>0){
- inNode.getElementsByTagName(subTagName)[0].childNodes[0].nodeValue=strValue;
- }
- else{
- throw "can't accese text node";
- }
- }
- else{
- throw subTagName+ ":not a sub Taget";
- }
- }
- catch(error){
- var_dump(error);
- return(false);
- }
- return(true);
- }
- function getNodeAttr(inNode,subTagName,attr){
- try{
- return(inNode.getElementsByTagName(subTagName)[0].getAttribute(attr));
- }
- catch(error){
- console.warn(error);
- return("");
- }
- }
- function setNodeAttr(inNode,subTagName,attr,strValue){
- if(!inNode || !strValue || !attr || attr==""){
- return;
- }
- let mValue = strValue.toString();
- try{
- if(inNode.getElementsByTagName(subTagName).length==0){
- var newNode=gXmlBookData.createElement(subTagName);
- var textnode=gXmlBookData.createTextNode(" ");
- newNode.appendChild(textnode);
- inNode.appendChild(newNode);
- }
- try{
- inNode.getElementsByTagName(subTagName)[0].setAttribute(attr,mValue);
- }
- catch(e){
- newatt=gXmlBookData.createAttribute(attr);
- newatt.nodeValue=mValue;
- inNode.getElementsByTagName(subTagName)[0].setAttributeNode(newatt);
- return(mValue);
- }
- }
- catch(error){
- console.error(error);
- return(false);
- }
- return(true);
- }
- //根据xmlDocument 对象中的单词序号和单词节点创建单词块
- //返回 字符串
- function createWordBlockByNode(id,wordNode){
- }
- function pushNewToList(inArray,strNew){
- //var isExist=false;
- for(x in inArray){
- if(inArray[x]==strNew){
- return;
- }
- }
- inArray.push(strNew);
- }
- function findFirstCaseInDict(inWord){
- var output="?";
- var pali=com_getPaliReal(inWord);
- if(mDict[pali]){
- for(var iWord in mDict[pali]){
- {
- if(mDict[pali][iWord].parts){
- if(mDict[pali][iWord].parts.length>0){
- return(mDict[pali][iWord].type+"#"+mDict[pali][iWord].gramma);
- }
- }
- }
- }
- }
- return(output);
- }
- function findFirstPartInDict(inWord){
- var output="?";
- var pali=com_getPaliReal(inWord);
- if(mDict[pali]){
- for(var iWord in mDict[pali]){
- {
- if(mDict[pali][iWord].parts){
- if(mDict[pali][iWord].parts.length>0){
- return(mDict[pali][iWord].parts);
- }
- }
- }
- }
- }
- return(output);
- }
- function findFirstPartMeanInDict(inWord){
- var output="?";
- var pali=com_getPaliReal(inWord);
- if(mDict[pali]){
- for(var iWord in mDict[pali]){
- if(dict_language_enable.indexOf(mDict[pali][iWord].language)>=0){
- if(mDict[pali][iWord].partmean){
- if(mDict[pali][iWord].partmean.length>0){
- return(mDict[pali][iWord].partmean);
- }
- }
- }
- }
- }
- return(output);
- }
- function findFirstMeanInDict(inWord){
- var output="?";
- var pali=com_getPaliReal(inWord);
- if(mDict[pali]){
- for(var iWord in mDict[pali]){
- //if(dict_language_enable.indexOf(mDict[pali][iWord].language)>=0)
- {
- if(mDict[pali][iWord].mean){
- if(mDict[pali][iWord].mean.length>0){
- return(mDict[pali][iWord].mean.split("$")[0]);
- }
- }
- }
- }
- }
- return(output);
- }
- function findAllMeanInDict(inWord,limit){
- output=new Array();
- for(var iCurrWord=0;iCurrWord<g_DictWordList.length;iCurrWord++){
- if(g_DictWordList[iCurrWord].Pali==inWord){
- meanList=g_DictWordList[iCurrWord].Mean.split("$");
- for(iMean in meanList){
- if(meanList[iMean].length>0){
- output.push(meanList[iMean]);
- if(output.length>limit){
- return(output);
- }
- }
- }
- }
- }
- return(output);
- }
- //确认对单个词的修改
- function modifyApply(sWordId,update_user_dict){
- let wordIndex=getWordIndex(sWordId);
-
- let arr_id_word = sWordId.split("-");
- let book=arr_id_word[0].slice(1);
- let paragraph = arr_id_word[1];
- let wId = arr_id_word[2];
-
- let strApplyTo;
- if(document.getElementById("checkbox_apply_same").checked){
- strApplyTo = "all";
- }
- else{
- strApplyTo = "current";
- }
-
- let wordCurrStatus=9;//草稿
- if(update_user_dict){
- wordCurrStatus=7;//保存为正式
- }
-
- //关闭单词修改窗口
- closeModifyWindow();
- let x = gXmlBookDataBody.getElementsByTagName("word");
-
-
- let msg_data = new Object();
- msg_data.id=sWordId;
-
- //原来的值
- let sPaliReal = getNodeText(x[wordIndex],"real");
- let sPaliParent = getNodeText(x[wordIndex],"parent");
-
- //new value
- let sPali = document.getElementById("id_text_pali").value;
- let oldPali = getNodeText(x[wordIndex],"pali");
- if(sPali!=oldPali){
- setNodeText(x[wordIndex],"pali",sPali);
- msg_data.pali = sPali;
- }
- setNodeAttr(x[wordIndex],"pali","status",wordCurrStatus);
-
- let sReal = document.getElementById("id_text_real").value;
- let oldReal = getNodeText(x[wordIndex],"real");
- if(sReal != oldReal){
- setNodeText(x[wordIndex],"real",sReal);
- msg_data.real=Real;
- }
- setNodeAttr(x[wordIndex],"real","status",wordCurrStatus);
-
- let sMeaning = document.getElementById("input_meaning").value;
- let oldMean = getNodeText(x[wordIndex],"mean");
- if(sMeaning != oldMean){
- setNodeText(x[wordIndex],"mean",sMeaning);
- msg_data.mean=sMeaning;
- }
- setNodeAttr(x[wordIndex],"mean","status",wordCurrStatus);
-
- let sParent = document.getElementById("id_text_parent").value;
- let oldParent = getNodeText(x[wordIndex],"parent");
- if(sParent != oldParent){
- setNodeText(x[wordIndex],"parent",sParent);
- msg_data.parent=sParent;
- }
- setNodeAttr(x[wordIndex],"parent","status",wordCurrStatus);
- let sParentGrammar = document.getElementById("parent_grammar").innerHTML;
- let oldParentGrammar = getNodeText(x[wordIndex],"pg");
- if(sParentGrammar != oldParentGrammar){
- setNodeText(x[wordIndex],"pg",sParentGrammar);
- msg_data.pg=sParentGrammar;
- }
- setNodeAttr(x[wordIndex],"pg","status",wordCurrStatus);
-
- let sParentParent = document.getElementById("id_text_prt_prt").value;
- let oldParentParent = getNodeText(x[wordIndex],"parent2");
- if(sParentParent != oldParentParent){
- setNodeText(x[wordIndex],"parent2",sParentParent);
- msg_data.parent2=sParentParent;
- }
- setNodeAttr(x[wordIndex],"parent2","status",wordCurrStatus);
-
- let sOrg = document.getElementById("input_org").value;
- let oldOrg = getNodeText(x[wordIndex],"org");
- if(sOrg != oldOrg){
- setNodeText(x[wordIndex],"org",sOrg);
- msg_data.org=sOrg;
- }
- setNodeAttr(x[wordIndex],"org","status",wordCurrStatus);
-
- let sOm = document.getElementById("input_om").value;
- let oldOm = getNodeText(x[wordIndex],"om");
- if(oldOm != sOm){
- setNodeText(x[wordIndex],"om",sOm);
- msg_data.om=sOm;
- }
- setNodeAttr(x[wordIndex],"om","status",wordCurrStatus);
-
- let sCase = document.getElementById("input_case").value;
- let oldCase = getNodeText(x[wordIndex],"case");
- if(oldCase != sCase){
- setNodeText(x[wordIndex],"case",sCase);
- msg_data.case=sCase;
- }
- setNodeAttr(x[wordIndex],"case","status",wordCurrStatus);
-
- let bLocked = document.getElementById("input_lock").checked;
- let oldLock = getNodeText(x[wordIndex],"lock");
- if(bLocked != oldLock){
- setNodeText(x[wordIndex],"lock",bLocked);
- msg_data.lock=bLocked;
- }
- setNodeAttr(x[wordIndex],"lock","status",wordCurrStatus);
-
- let txtBookMark=document.getElementById("id_text_bookmark").value;
- let oldBookMarkText = getNodeText(x[wordIndex],"bmt");
- if(oldBookMarkText != txtBookMark){
- setNodeText(x[wordIndex],"bmt",txtBookMark);
- msg_data.bmt=txtBookMark;
- }
- setNodeAttr(x[wordIndex],"bmt","status",wordCurrStatus);
-
- let oldBookMarkColor = getNodeText(x[wordIndex],"bmc");
- if(oldBookMarkColor==""){
- oldBookMarkColor="bmc0";
- }
- if(oldBookMarkColor!=g_currBookMarkColor){
- setNodeText(x[wordIndex],"bmc",g_currBookMarkColor);
- msg_data.bmc=g_currBookMarkColor;
- g_currBookMarkColor="";
- }
- setNodeAttr(x[wordIndex],"bmc","status",wordCurrStatus);
-
- let updateNoteNum=false;
- let txtNote=document.getElementById("id_text_note").value;
- let prevNote=getNodeText(x[wordIndex],"note");
- if(prevNote!=txtNote){
- setNodeText(x[wordIndex],"note",txtNote);
- //refreshWordNote(x[wordIndex].parentNode.parentNode);
- msg_data.note=txtNote;
- //updateWordNote(x[wordIndex]);
- updateNoteNum=true;
- }
-
- let sRalation=$("#id_relation_text").val();
- let oldRalation=getNodeText(x[wordIndex],"rala");
- if(oldRalation!=sRalation){
- setNodeText(x[wordIndex],"rela",sRalation);
- msg_data.rela=sRalation;
- //updateWordRelation(x[wordIndex]);
- updateNoteNum=true;
- }
-
- {
- setNodeText(x[wordIndex],"status",wordCurrStatus);//自己手动 或 草稿
- msg_data.status=wordCurrStatus;
- }
- user_wbw_push_word(sWordId);
-
- modifyWordDetailByWordIndex(wordIndex);
- updataWordHeadByIndex(wordIndex);
- if(updateNoteNum){
- refreshWordNoteDiv(x[wordIndex].parentNode.parentNode);
- refreshNoteNumber();
- }
- //send message
- 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,JSON.stringify(msg_data),msg_doc_id,d.getTime(),book,paragraph);
- }
- //The end of send message
-
-
-
- let objWord = new Object();
- objWord.Pali=getNodeText(x[wordIndex],"real");
- sCase= getNodeText(x[wordIndex],"case");
- let mGramma=sCase.split("#");
- if(mGramma.length>=2){
- mType=sCase.split("#")[0];
- mGramma=sCase.split("#")[1];
- }
- else{
- mType="";
- mGramma=sCase.split("#")[0];
- }
-
- //将单词加入内存字典
- var objDictItem=new Object();/*一个字典元素*/
- objDictItem.id=0;
- objDictItem.guid="";
- objDictItem.pali=getNodeText(x[wordIndex],"pali");
- objDictItem.type=mType;
- objDictItem.gramma=mGramma;
- objDictItem.parent=getNodeText(x[wordIndex],"parent");
- objDictItem.mean=getNodeText(x[wordIndex],"mean");
- objDictItem.note=getNodeText(x[wordIndex],"note");
- objDictItem.parts=getNodeText(x[wordIndex],"org");
- objDictItem.partmean=getNodeText(x[wordIndex],"om");
- objDictItem.status=0
- objDictItem.dict_name="Memo";
- objDictItem.language="zh";
- objDictItem.confidence=100;
- if(objDictItem.type=="" || objDictItem.type.indexOf("?")!=-1){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- if(objDictItem.type!=".un." && objDictItem.type!=".comp."){
- if(objDictItem.gramma=="" || objDictItem.gramma.indexOf("?")!=-1 || objDictItem.gramma.indexOf("$")!=0){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- if(objDictItem.mean=="" || objDictItem.mean.indexOf("?")!=-1){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- if(objDictItem.partmean=="" || objDictItem.partmean.indexOf("?")!=-1){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- }
- if(objDictItem.parts=="" || objDictItem.parts.indexOf("?")!=-1){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- if(!mDict[objDictItem.pali]){
- mDict[objDictItem.pali]=new Array();
- }
- //insert to top of memory dict
- mDict[objDictItem.pali].unshift(objDictItem);
- let parts=getNodeText(x[wordIndex],"org");
- let partmean=getNodeText(x[wordIndex],"om");
-
- //add parent infomation
- switch(mType){
- case ".n.":
- mType=".n:base.";
- mGramma=mGramma.split("$")[0];
- if(mGramma==".m." || mGramma==".f." || mGramma==".nt."){
- }
- else{
- mGramma="";
- }
- break;
- case ".adj.":
- mType=".adj:base.";
- mGramma="";
- break;
- case ".ti.":
- mType=".ti:base.";
- mGramma="";
- break;
- case ".pron.":
- d_parentType=".pron:base.";
- d_parentGramma="";
- break;
- case ".num.":
- d_parentType=".num:base.";
- d_parentGramma="";
- break;
- case ".v.":
- mType=".v:base.";
- mGramma="";
- break;
- }
- //将单词base加入内存字典
- if(getNodeText(x[wordIndex],"parent")!=""){
- var objDictItem=new Object();/*一个字典元素*/
- objDictItem.id=0;
- objDictItem.guid="";
- objDictItem.pali=getNodeText(x[wordIndex],"parent");
- objDictItem.type=mType;
- objDictItem.gramma=mGramma;
- objDictItem.parent="";
- objDictItem.mean = removeFormulaB(getNodeText(x[wordIndex],"mean"),'[',']');
- objDictItem.mean = removeFormulaB(objDictItem.mean,'{','}');
- objDictItem.note=getNodeText(x[wordIndex],"note");
-
- //remove the "[***]" in the end
- let d_factors = getNodeText(x[wordIndex],"org");
- let fc=d_factors.split("+");
- if(fc.length>0 && (fc[fc.length-1].slice(0,1)=="[" && fc[fc.length-1].slice(-1)=="]")){
- fc.pop();
- }
- objDictItem.parts=fc.join("+")
- let fm=getNodeText(x[wordIndex],"om").split("+");
- fm.length=fc.length;
- objDictItem.partmean=fm.join("+");
-
- objDictItem.status=0;
- objDictItem.confidence=100;
- if(objDictItem.type=="" || objDictItem.gramma.indexOf("?")!=-1){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- if(objDictItem.gramma=="" || objDictItem.gramma.indexOf("?")!=-1 || objDictItem.gramma.indexOf("$")!=0){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- if(objDictItem.mean=="" || objDictItem.gramma.indexOf("?")!=-1){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- if(objDictItem.parts=="" || objDictItem.gramma.indexOf("?")!=-1){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- if(objDictItem.partmean=="" || objDictItem.gramma.indexOf("?")!=-1){
- objDictItem.confidence=objDictItem.confidence*0.9;
- }
- if(!mDict[objDictItem.pali]){
- mDict[objDictItem.pali]=new Array();
- }
- objDictItem.dict_name="Memo";
- objDictItem.language="zh";
- if(!mDict[objDictItem.pali]){
- mDict[objDictItem.pali]=new Array();
- }
- mDict[objDictItem.pali].unshift(objDictItem);
- }
- // The end of memory dictionary
-
- //apply all
- let searchBegin=0;
- let searchEnd=0;
- switch(strApplyTo){
- case "all":
- searchBegin=0;
- searchEnd=x.length;
- break;
- case "up":
- searchBegin=0;
- searchEnd=wordIndex;
- break;
- case "down":
- searchBegin=wordIndex;
- searchEnd=x.length;
- break;
- }
- if(strApplyTo!="current"){
-
- //sPaliWord = x[sWordId].getElementsByTagName("pali")[0].childNodes[0].nodeValue;
- let iSameWordCount = 0;
- setNodeText(x[wordIndex],"pali",sPali);//拼寫顯示修改僅僅應用當前詞——Kosalla
-
- for (iSearch=searchBegin;iSearch<searchEnd;iSearch++){
- if(sWordId!=iSearch){
- //xmlNotePali = x[i].getElementsByTagName("pali")[0].childNodes[0].nodeValue;
- xmlNotePali = getNodeText(x[iSearch],"real");
- if(xmlNotePali==sPaliReal ){
- if(getNodeText(x[iSearch],"lock")!="true"){
- setNodeText(x[iSearch],"real",sReal);
- setNodeText(x[iSearch],"parent",sParent);
- setNodeText(x[iSearch],"mean",sMeaning);
- setNodeText(x[iSearch],"org",sOrg);
- setNodeText(x[iSearch],"om",sOm);
- setNodeText(x[iSearch],"case",sCase);
- setNodeText(x[iSearch],"bmc",g_currBookMarkColor);
- setNodeText(x[iSearch], "note", txtNote);
- switch(editor_word_status(x[iSearch])){
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 6:
- editor_word_status(x[iSearch],5);
- break;
- }
- user_wbw_push_word(getNodeText(x[iSearch], "id"));
- modifyWordDetailByWordIndex(iSearch);
- updataWordHeadByIndex(iSearch);
- console.log("updata:"+iSearch+"<br />",0);
- iSameWordCount = iSameWordCount+1;
- }
- }
- xmlNoteParent = getNodeText(x[iSearch],"parent");
- if(xmlNotePali!=sPaliReal && xmlNoteParent==sPaliParent && xmlNoteParent!="" && xmlNoteParent!=" " ){
- if(getNodeText(x[iSearch],"lock")!="true"){
- setNodeText(x[iSearch],"mean",sMeaning);
- user_wbw_push_word(getNodeText(x[iSearch], "id"));
- modifyWordDetailByWordIndex(iSearch);
- updataWordHeadByIndex(iSearch);
- iSameWordCount = iSameWordCount+1;
- }
- }
- }
- }
- var_dump("same word:"+(iSameWordCount-1));
- }
- refreshBookMark();
- user_wbw_commit();
-
- //上传到用户字典
- if(update_user_dict){
- upload_to_my_dict();
- }
- }
- function getWordIndex(GUID){
- var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
- for(var iWord=0; iWord<xAllWord.length; iWord++){
- if(getNodeText(xAllWord[iWord],"id")==GUID){
- return(iWord);
- }
- }
- return(-1);
- }
- function addFavorite(){
- g_isDictFavo = !g_isDictFavo;
- if(g_isDictFavo){
- document.getElementById("temp").innerHTML = "★";
- }
- else{
- document.getElementById("temp").innerHTML = "☆";
- }
- }
- //用单词表中的一个记录更改经文中的单词
- function updataWord(id){
- var debugstr;
- try{
- sPali = document.getElementById("wlpali"+id).value;
- sReal = document.getElementById("wlreal"+id).value;
- sOrg = document.getElementById("wlorg"+id).value;
- sMean = document.getElementById("wlmean"+id).value;
- sCase = document.getElementById("wlcase"+id).value;
-
- var m_WordIdList=new Array();
- m_WordIdList = wordList[id].wordid.toString().split("$");
- var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
- for(indexWordList=0;indexWordList<m_WordIdList.length;indexWordList++){
- //将修改结果保存到xml DOM中
- if(m_WordIdList[indexWordList]>=0){
- setNodeText(xAllWord[m_WordIdList[indexWordList]],"pali",sPali);
- setNodeText(xAllWord[m_WordIdList[indexWordList]],"real",sReal);
- setNodeText(xAllWord[m_WordIdList[indexWordList]],"org",sOrg);
- setNodeText(xAllWord[m_WordIdList[indexWordList]],"mean",sMean);
- setNodeText(xAllWord[m_WordIdList[indexWordList]],"case",sCase);
- var sId = getNodeText(xAllWord[m_WordIdList[indexWordList]],"id");
- var wordDetail = renderWordDetailById(sId);
- var strDetailName="detail" + sId;
- document.getElementById(strDetailName).innerHTML = wordDetail;
- updataWordHeadById(sId);
- }
- }
- var_dump(""+m_WordIdList.length+"");
- document.getElementById("wlApply"+id).disabled=true;
- }
- catch(e){
- var_dump(e);
- }
- }
- //比较两个词是否一样
- function compareWordInList(word1,word2){
- var sItems1=new Array();
- sItem1 = word1.split(";");
- var sItems2=new Array();
- sItem2 = word2.split(";");
- var sConcat1=sItem1[0]+sItem1[1]+sItem1[2]+sItem1[3];
- var sConcat2=sItem2[0]+sItem1[1]+sItem1[2]+sItem1[3];
- if(sConcat1==sConcat2){
- return(true);
- }
- else{
- return(false);
- }
- }
- function sortWordList(strOrderby){
- g_wordListOrderby = strOrderby;
- g_wordListOrder = !g_wordListOrder;
- refreshWordList();
- }
- function CountVocabulary(){
- var sPali = "";
- var sOrg = "";
- var sMean = "";
- var sCase ="";
- var wordList1=new Array();
- var arrCombinWord=new Array();
- var arrCombinWordOrder=new Array();
-
- var arrCount=new Array();
- var iCount = 0;
- var sTableWordList="";
- var arrowCount="";
- var arrowPali="";
- var arrowReal="";
-
- //提取所有词
- var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
- if(xAllWord.length==0){
- return("no word data.");
- }
- var outWordList="";
- for(iword=0;iword<xAllWord.length;iword++)
- {
- var objWord = new Object;
- objWord.id = getNodeText(xAllWord[iword],"id");
- objWord.pali = getNodeText(xAllWord[iword],"pali");
- objWord.real = getNodeText(xAllWord[iword],"real");
- objWord.mean = getNodeText(xAllWord[iword],"mean");
- objWord.org = getNodeText(xAllWord[iword],"org");
- objWord.om = getNodeText(xAllWord[iword],"om");
- objWord.case = getNodeText(xAllWord[iword],"case");
- objWord.index=iword;
- objWord.count=1;
- objWord.wordid=iword;
- if(objWord.real!=""){
- addWordToWordList(wordList1,objWord);
- }
- }
- return(wordList1.length);
- }
- //生成单词列表
- function makeWordList(){
- var sPali = "";
- var sOrg = "";
- var sMean = "";
- var sCase ="";
- var arrCombinWord=new Array();
- var arrCombinWordOrder=new Array();
-
- var arrCount=new Array();
- var iCount = 0;
- var sTableWordList="";
- var arrowCount="";
- var arrowPali="";
- var arrowReal="";
-
- //提取所有词
- var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
- if(xAllWord.length==0){
- return("no word data.");
- }
- var outWordList="";
- for(iword=0;iword<xAllWord.length;iword++)
- {
- var objWord = new Object;
- objWord.id = getNodeText(xAllWord[iword],"id");
- objWord.pali = getNodeText(xAllWord[iword],"pali");
- objWord.real = getNodeText(xAllWord[iword],"real");
- objWord.mean = getNodeText(xAllWord[iword],"mean");
- objWord.org = getNodeText(xAllWord[iword],"org");
- objWord.om = getNodeText(xAllWord[iword],"om");
- objWord.case = getNodeText(xAllWord[iword],"case");
- objWord.index=iword;
- objWord.count=1;
- objWord.wordid=iword;
- if(objWord.real!=""){
- addWordToWordList(wordList,objWord)
- }
- }
- switch(g_wordListOrderby){
- case "count":
- if(g_wordListOrder){
- wordList.sort(sortCountDesc)
- arrowCount="↓";
- }
- else{
- wordList.sort(sortCountAsc)
- arrowCount="↑";
- }
- break;
- case "pali":
- if(g_wordListOrder){
- wordList.sort(sortPaliDesc)
- arrowPali="↓";
- }else{
- wordList.sort(sortPaliAsc)
- arrowPali="↑";
- }
- break;
- case "real":
- if(g_wordListOrder){
- wordList.sort(sortRealDesc)
- arrowReal="↓";
- }else{
- wordList.sort(sortRealAsc)
- arrowReal="↑";
- }
- break;
- }
-
- sTableWordList = sTableWordList + "<table border='0' cellpadding='3' ><tr class='h'>";
- sTableWordList = sTableWordList + "<th>序号</th>";
- sTableWordList = sTableWordList + "<th><a herf=\"\" onclick=\"sortWordList('count')\">计数"+arrowCount+"</a></th>";
- sTableWordList = sTableWordList + "<th><a herf=\"\" onclick=\"sortWordList('pali')\">Pali"+arrowPali+"</a></th>";
- sTableWordList = sTableWordList + "<th><a herf=\"\" onclick=\"sortWordList('real')\">Real"+arrowReal+"</a></th>";
- sTableWordList = sTableWordList + "<th>原型</th>";
- sTableWordList = sTableWordList + "<th>译文</th>";
- sTableWordList = sTableWordList + "<th>语法</th>";
- sTableWordList = sTableWordList + "<th><button type='button' id='btnApplyAll' onclick=\"applyAllWordInList(this)\" disabled>Apply All</button></th></tr>";
-
- for(var i=0; i<wordList.length;i++){
- objWord=wordList[i];
- sTableWordList += "<tr><td>"+i+"</td>"
- sTableWordList += "<td id='tablepali"+i+"'>"+objWord.count+"</td>"
- //sTableWordList += "<td>" +objWord.pali + "</td>";
- //sTableWordList += "<td>" +objWord.real + "</td>";
- sTableWordList += "<td><input id=\"wlpali"+i+"\" onkeyup=\"wordListItemChanged('wlApply"+i+"')\" value = '" + objWord.pali + "' />";
- sTableWordList += "<td><input id=\"wlreal"+i+"\" onkeyup=\"wordListItemChanged('wlApply"+i+"')\" value = '" + objWord.real + "' /></td>";
- sTableWordList += "<td><input id=\"wlorg"+i+"\" onkeyup=\"wordListItemChanged('wlApply"+i+"')\" value = '" + objWord.org + "' />";
- sTableWordList += "<td><input id=\"wlmean"+i+"\" onkeyup=\"wordListItemChanged('wlApply"+i+"')\" value = '" + objWord.mean + "' /></td>";
- sTableWordList += "<td><input id=\"wlcase"+i+"\" onkeyup=\"wordListItemChanged('wlApply"+i+"')\" value = '" + objWord.case + "' /></td>";
- sTableWordList += "<td><button id=\"wlApply"+i+"\" onclick=\"updataWord('"+i+"')\" type='button' disabled >Apply</button></td></tr>";
- }
-
- sTableWordList = sTableWordList + "</table>";
- g_countWordList=wordList.length;
- return(sTableWordList);
- }
- function sortCountDesc(a,b)
- {
- return a.count - b.count
- }
- function sortCountAsc(a,b)
- {
- return b.count - a.count
- }
- function sortPaliDesc(a,b)
- {
- return a.pali.localeCompare(b.pali)
- }
- function sortPaliAsc(a,b)
- {
- return b.pali.localeCompare(a.pali)
- }
- function sortRealDesc(a,b)
- {
- return a.real.localeCompare(b.real)
- }
- function sortRealAsc(a,b)
- {
- return b.real.localeCompare(a.real)
- }
- function addWordToWordList(wordArray,newWord){
- var index=-1;
-
- for(var i=0;i<wordArray.length;i++){
- if(wordArray[i].pali==newWord.pali){
- if(wordArray[i].real==newWord.real){
- if(wordArray[i].mean==newWord.mean){
- if(wordArray[i].org==newWord.org){
- if(wordArray[i].om==newWord.om){
- if(wordArray[i].case==newWord.case){
- index=i;
- break;
- }
- }
- }
- }
- }
-
-
- }
- }
- if(index>=0){
- wordArray[index].count++;
- wordArray[index].wordid+="$"+newWord.index
- }
- else{
- wordArray.push(newWord)
- }
- }
- function refreshWordList(){
- document.getElementById("word_table_inner").innerHTML = makeWordList();
- }
- function wordListItemChanged(btnApplyId){
- try{
- document.getElementById(btnApplyId).disabled=false;
- document.getElementById("btnApplyAll").disabled=false;
- }
- catch(e){
- alert(e);
- }
- }
- function applyAllWordInList(){
- for(var i=0;i<g_countWordList;i++){
- if(document.getElementById("wlApply"+i).disabled==false){
- updataWord(i);
- }
- }
- document.getElementById("btnApplyAll").disabled=true;
- }
- function tran_edit(iSutta,iPar,iTran){
- gTextEditMediaType="translate";
- gSutta=iSutta;
- gPar=iPar;
- gTran=iTran;
- var tranText = getTranText(iSutta,iPar,iTran);
- document.getElementById("id_text_edit_area").value=tranText;
- document.getElementById("id_text_edit_form").style.display="block";
- }
- /*make book mark*/
- function bookMark(){
- var colorStyle="";
- var strBookMark="";
- var iWordCount=0;
- xWord = gXmlBookDataBody.getElementsByTagName("word");
- /*遍历所有单词*/
- var xBlock = gXmlBookDataBody.getElementsByTagName("block");
- var iWordCount=0;
- for(iBlock=0;iBlock<xBlock.length;iBlock++){
- var xData=xBlock[iBlock].getElementsByTagName("data")[0]
- parInfo = xBlock[iBlock].getElementsByTagName("info")[0];
- book=getNodeText(parInfo,"book");
- parNo=getNodeText(parInfo,"paragraph");
-
- xWord = xData.getElementsByTagName("word");
- for(k=0;k<xWord.length;k++)
- {
- strWordPali = getNodeText(xWord[k],"pali");
- strWordMean = getNodeText(xWord[k],"mean");
- strWordId = getNodeText(xWord[k],"id");
- strWordBookMarkColor = getNodeText(xWord[k],"bmc");
- if(strWordBookMarkColor.length>0){
- if(strWordBookMarkColor.substr(3,1)!=0){/*屏蔽显示注释的Bug*/
- var markString = strWordBookMarkColor.substr(3,1);
- colorStyle = "bookmarkcolor"+markString;
- var bookMarkId = "w"+strWordId;
- strBookMark += "<p class=\"bm"+markString+"\"><span class='bookmarkcolorblock , "+colorStyle+"'>"+markString+"</span>";
- //strBookMark += "<a href=\"#"+bookMarkId+"\">"+strWordPali+":"+strWordMean.substr(3,10)+"</a></p>";
- strBookMark += "<a onclick=\"editor_goto_link('"+book+"',"+parNo+",'"+bookMarkId+"')\">"+strWordPali+":"+strWordMean.substr(3,10)+"</a></p>";
- }
- }
- iWordCount++;
- }
- }
- return(strBookMark);
- }
- function setBookmarkVisibility_all(){
- var book_MarkId_array=new Array();
- var book_MarkClass_array=new Array();
- for(bookMark_i in g_bookMark_array){
- book_MarkId_array.push("B_Bookmark_"+g_bookMark_array[bookMark_i]);
- book_MarkClass_array.push("bm"+g_bookMark_array[bookMark_i]);
- }
- var isVisible = document.getElementById('B_Bookmark_All').checked;
- for(bookMark_j in book_MarkId_array){
- eval("document.getElementById('"+book_MarkId_array[bookMark_j]+"').checked=isVisible");
- getStyleClass(book_MarkClass_array[bookMark_j]).style.display = (isVisible ? 'block' : 'none');
- var book_mark_spanId="";
- book_mark_spanId=book_MarkId_array[bookMark_j]+"_span"
- if(isVisible==true){
- eval("lock_key("+book_mark_spanId+".id,'on','"+book_MarkId_array[bookMark_j]+"','bookmark')");
- }
- else{
- eval("lock_key("+book_mark_spanId+".id,'off','"+book_MarkId_array[bookMark_j]+"','bookmark')");
- }
- }
- }
- function setBookmarkVisibility(className,controlID){
- var isVisible = document.getElementById(controlID).checked;
- getStyleClass(className).style.display = (isVisible ? 'flex' : 'none');
- }
- /*刷新书签*/
- function refreshBookMark(){
- document.getElementById("navi_bookmark_inner").innerHTML = bookMark();
- }
- /*Apply all system match words*/
- function applyAllSysMatch(){
- var iWordCount=0;
- var iModified=0;
- xWord = gXmlBookDataBody.getElementsByTagName("word");
- /*遍历此经中所有单词*/
- for(k=0;k<xWord.length;k++)
- {
- {
- if(getNodeText(xWord[k],"bmc")=="bmca"){
- setNodeText(xWord[k],"bmc","bmc0")
- updataWordBodyByElement(xWord[k]);
- iModified++;
- }
- }
- iWordCount++;
- }
-
- if(iWordCount>0){
- document.getElementById("navi_bookmark_inner").innerHTML = bookMark();
- }
- var_dump(iModified+"个单词被确认。")
- }
- function setUseMode(strUseMode){
- var multi_trans_strUseMode=gLocal.gui.edit
- if(strUseMode=="Read"){
- multi_trans_strUseMode="<svg class=\"icon\"><use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"svg/icon.svg#ic_reader_mode\"></use></svg>"
- }
- else{
- multi_trans_strUseMode="<svg class=\"icon\"><use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:href=\"svg/icon.svg#ic_mode_edit\"></use></svg>"
- }
- document.getElementById("use_mode").innerHTML = multi_trans_strUseMode+"<svg class=\"small_icon\"><use xlink:href=\"svg/icon.svg#ic_down\"></use></svg>";
- switch(strUseMode){
- case "Read":
- g_useMode="read";
- getStyleClass('edit_tran_button').style.display = "none";
- getStyleClass('edit_tool').style.display = "none";
- getStyleClass('tran_input').style.display = "none";
- break;
- case "Edit":
- g_useMode="edit";
- getStyleClass('edit_tran_button').style.display = "inline";
- getStyleClass('edit_tool').style.display = "inline";
- getStyleClass('tran_input').style.display = "none";
- break;
- case "Translate":
- g_useMode="translate";
- getStyleClass('edit_tran_button').style.display = "inline";
- getStyleClass('tran_input').style.display = "block";
- break;
- }
- if(gXmlBookDataBody!=null){
- var mWordNode = gXmlBookDataBody.getElementsByTagName("word");
- /*遍历所有单词*/
- for(k=0;k<mWordNode.length;k++)
- {
- modifyWordDetailByWordIndex(k);
- }
- }
- document.getElementById('menuUseMode').style.display = "none";
- }
- function setUseMode_Static(strUseMode){
- if(strUseMode=="chanting"){
- document.getElementById("use_mode").innerHTML = "Chanting";
- g_useMode="chanting";
- getStyleClass('chanting_enter').style.display = "block";
- }
- else{
- document.getElementById("use_mode").innerHTML = "Read";
- g_useMode="read";
- getStyleClass('chanting_enter').style.display = "none";
- }
-
- dropbtnClick("menu01");
-
- }
- function hiddenMenu(){
- getStyleClass('dropdown-content').style.display = 'none';
- }
- function splitAll(){
- var un_Dict = gXmlBookDataBody.getElementsByTagName("word");//拿到數組
- var un_count=0
- for(i_un=0;i_un<un_Dict.length;i_un++)
- {
- un_case=getNodeText(un_Dict[i_un],"case");
- un_id=getNodeText(un_Dict[i_un],"id");
- if(un_case.lastIndexOf(".un.")!=-1)
- {//un_case.indexOf("#")>=0;
- //nextElement=com_get_nextsibling(xmlElement);
- //if(getNodeText(un_Dict[i_un+1],"case")!=null){//若不為空
- /*if(getNodeText(nextElement,"un")==getNodeText(wordNode,"id")){//若孩子則——
- //}
- //else{//無kid展開按鈕*/
- edit_un_split(un_id);
- un_count=un_count+1
- }
- /*}
- else{//無標點,拆
- edit_un_split(un_id);
- un_count=un_count+1
- }*/
- }
- var_dump(un_count+" "+gLocal.gui.allsplit);
-
- }
- //getNodeText(xDict[iword],"case");返回case信息,.indexOf("#")>=0檢查#,用split拆,取[0]==.un.,
- function sortMeanByDictOrder(wa, wb)
- {
- var w1=wa.split('$')[0];
- var w2=wb.split('$')[0];
- var index1=wa.split('$')[1];
- var index2=wb.split('$')[1];
- //order by dictionary index
- order=w1-w2;
- if(order==0){
- //if dictionay is same order by index of meaning array
- order=index1-index2;
- }
- return order
- }
- function sortMeanByLanguageOrder(wa, wb)
- {
- var w1=wa.split('$')[4];
- var w2=wb.split('$')[4];
- //order by dictionary index
- order=w1-w2;
- return order
- }
- function removeSameWordInArray(wordList){
- var output = new Array();
-
- for(indexWord in wordList){
- oneWord=wordList[indexWord].split("$");
- var isExist=false;
- for(x in output){
- if(output[x].word==oneWord[3]){
- isExist=true;
- }
- }
- if(!isExist){
- var objWord = new Object();
- objWord.word=oneWord[3];
- objWord.parent=oneWord[2];
- output.push(objWord);
- }
- }
- return(output);
- }
|