var g_is_mobile = false;
var g_language = "langrage_cn";
var gConfigDirMydocument = "../user/My Document/";
//输出调试信息
function debugOutput(str, level = 0) {
console.log(str);
}
function var_dump(str) {
ntf_show(str);
/*
getStyleClass("debug_info").style.display = "-webkit-flex";
getStyleClass("debug_info").style.animation = "viewbug 2s";
document.getElementById("debug").innerHTML = str;
var t = setTimeout("clearDebugMsg()", 2000);
*/
}
function clearDebugMsg() {
document.getElementById("debug").innerHTML = "";
getStyleClass("debug_info").style.display = "none";
}
//页面初始字体大小 单位 %
var iStartFontSize = 100;
function setHitsVisibility(isVisible) {
var c = getStyleClass("hit");
if (isVisible) {
c.style.backgroundColor = "blue";
c.style.color = "white";
} else {
c.style.backgroundColor = "white";
c.style.color = "black";
}
}
const root = document.documentElement;
function setPageColor(sColor) {
var cssobj = document.getElementById("colorchange");
switch (sColor) {
case 0:
cssobj.setAttribute("href", "css/color_day.css");
break;
case 1:
cssobj.setAttribute("href", "css/color_dawn.css");
break;
case 2:
cssobj.setAttribute("href", "css/color_night.css");
break;
}
}
//修改页面字体大小
function setPageFontSize(fChange) {
iStartFontSize = iStartFontSize * fChange;
var myBody = document.getElementById("mbody");
myBody.style.fontSize = iStartFontSize + "%";
setCookie("fontsize", iStartFontSize, 65);
}
function editSandhiDisplay(item, obj) {
var isVisible = obj.checked;
var xAllWord = gXmlBookDataBody.getElementsByTagName("word");
switch (item) {
case "parent":
getStyleClass("un_parent").style.display = isVisible ? "block" : "none";
break;
case "comp_parent":
getStyleClass("comp_parent").style.display = isVisible ? "block" : "none";
break;
}
for (iWordIndex = 0; iWordIndex < xAllWord.length; iWordIndex++) {
var un = getNodeText(xAllWord[iWordIndex], "un");
if (un.length > 0) {
switch (item) {
case "begin":
if (getNodeText(xAllWord[iWordIndex], "case") == ".un:begin.") {
wordid = "wb" + getNodeText(xAllWord[iWordIndex], "id");
document.getElementById(wordid).style.display = isVisible ? "block" : "none";
}
break;
case "end":
if (getNodeText(xAllWord[iWordIndex], "case") == ".un:end.") {
wordid = "wb" + getNodeText(xAllWord[iWordIndex], "id");
document.getElementById(wordid).style.display = isVisible ? "block" : "none";
}
break;
case "word":
if (
getNodeText(xAllWord[iWordIndex], "case") != ".un:begin." ||
getNodeText(xAllWord[iWordIndex], "case") != ".un:end." ||
getNodeText(xAllWord[iWordIndex], "case") != ".ctl.#.a."
) {
//既不是開始也不是結束
wordid = "wb" + getNodeText(xAllWord[iWordIndex], "id");
document.getElementById(wordid).style.display = isVisible ? "block" : "none";
}
break;
case "parent":
//document.getElementById("wb"+un).style.display=(isVisible ? 'block' : 'none');
break;
}
}
}
}
function setFootnotesVisibility(isVisible) {
getStyleClass("note").style.display = isVisible ? "inline" : "none";
}
function setIdVisibility() {
var isVisible = document.getElementById("B_Id").checked;
getStyleClass("ID").style.display = isVisible ? "block" : "none";
}
function setMeaningVisibility(obj) {
var isVisible = obj.checked;
getStyleClass("mean").style.display = isVisible ? "flex" : "none";
}
function setOrgVisibility(obj) {
var isVisible = obj.checked;
getStyleClass("org").style.display = isVisible ? "flex" : "none";
}
function setOrgMeaningVisibility(obj) {
var isVisible = obj.checked;
getStyleClass("om").style.display = isVisible ? "flex" : "none";
}
function setGrammaVisibility(obj) {
var isVisible = obj.checked;
getStyleClass("case").style.display = isVisible ? "flex" : "none";
}
function set_WBW_ALL_Visibility(obj) {
let isVisible = obj.checked;
getStyleClass("mean").style.display = isVisible ? "flex" : "none";
getStyleClass("org").style.display = isVisible ? "flex" : "none";
getStyleClass("om").style.display = isVisible ? "flex" : "none";
getStyleClass("case").style.display = isVisible ? "flex" : "none";
document.getElementById("WBW_B_Meaning").checked = obj.checked;
document.getElementById("WBW_B_Org").checked = obj.checked;
document.getElementById("WBW_B_OrgMeaning").checked = obj.checked;
document.getElementById("WBW_B_Gramma").checked = obj.checked;
}
//显示英译
function setParTranEnVisibility(obj) {
var isVisible = obj.checked;
//getStyleClass('tran_par_en').style.display = (isVisible ? 'block' : 'none');
getStyleClass("en_text").style.display = isVisible ? "block" : "none";
}
//显示中译
function setParTranCnVisibility(obj) {
var isVisible = obj.checked;
//getStyleClass('tran_par_cn').style.display = (isVisible ? 'block' : 'none');
getStyleClass("zh_text").style.display = isVisible ? "block" : "none";
getStyleClass("tw_text").style.display = isVisible ? "block" : "none";
}
/*
//显示模式
_display_para_arrange=0;//0:横向 排列 1:纵向排列
_display_sbs=0; //0:逐段 1:逐句
*/
function setArrange(mode) {
if (_display_para_arrange == mode) {
return;
}
_display_para_arrange = mode;
if (_display_para_arrange == 1) {
/* 上下对读 */
getStyleClass("wbwdiv").style.flex = "1";
getStyleClass("trandiv").style.flex = "1";
getStyleClass("pardiv").style.flexDirection = "column";
getStyleClass("sent_wbw_trans").style.flexDirection = "column";
} else if (_display_para_arrange == 0) {
/* 0 左右对读 */
getStyleClass("wbwdiv").style.flex = "7";
getStyleClass("trandiv").style.flex = "3";
getStyleClass("pardiv").style.flexDirection = "row";
getStyleClass("sent_wbw_trans").style.flexDirection = "row";
}
if (_display_sbs == 1) {
/* 逐句对读 */
getStyleClass("pardiv").style.flexDirection = "column";
}
}
function setSbs(mode) {
if (_display_sbs != mode) {
_display_sbs = mode;
if (_display_sbs == 1) {
/* 逐句对读 */
getStyleClass("translate_sent").style.display = "block";
getStyleClass("pardiv").style.flexDirection = "column";
updateWordParBlockInnerAll();
var eAllSent = document.getElementsByClassName("tran_sent");
for (var iSen = 0; iSen < eAllSent.length; iSen++) {
var senA = eAllSent[iSen].getAttributeNode("sn").value;
var blockId = eAllSent[iSen].getAttributeNode("block").value;
var eSBSDiv = document.getElementById("sent_" + senA);
if (eSBSDiv) {
var eBlockSenDiv = document.getElementById("sent_" + senA + "_" + blockId);
if (!eBlockSenDiv) {
//没有 添加
var divSen = document.createElement("div");
var typ = document.createAttribute("class");
typ.nodeValue = "sbs_sent_block";
divSen.attributes.setNamedItem(typ);
var typId = document.createAttribute("id");
typId.nodeValue = "sent_" + senA + "_" + blockId;
divSen.attributes.setNamedItem(typId);
var sn = document.createAttribute("sn");
sn.nodeValue = senA;
divSen.attributes.setNamedItem(sn);
var block = document.createAttribute("block");
block.nodeValue = blockId;
divSen.attributes.setNamedItem(block);
divSen.innerHTML = eAllSent[iSen].innerHTML;
eSBSDiv.appendChild(divSen);
} else {
eBlockSenDiv.innerHTML = eAllSent[iSen].innerHTML;
}
eAllSent[iSen].innerHTML = "";
}
}
} else {
/* 逐段对读 */
//因为wbw重绘会覆盖逐句html
//所以将逐句对读里的句子 转移到逐段div
getStyleClass("translate_sent").style.display = "none";
var eAllSent = document.getElementsByClassName("sbs_sent_block");
for (var iSen = 0; iSen < eAllSent.length; iSen++) {
var senA = eAllSent[iSen].getAttributeNode("sn").value;
var blockId = eAllSent[iSen].getAttributeNode("block").value;
var eSBSDiv = document.getElementById("tran_sent_" + blockId + "_" + senA);
if (eSBSDiv) {
//逐段div
eSBSDiv.innerHTML = eAllSent[iSen].innerHTML;
eAllSent[iSen].innerHTML = "";
} else {
ntf_show("error: 没有找到div:" + "tran_sent_" + blockId + "_" + senA);
}
}
updateWordParBlockInnerAll();
}
}
}
//显示段对译模式
function setParTranShowMode(obj) {
var isVisible = obj.checked;
if (isVisible) {
/* 上下对读 */
_display_para_arrange = 1;
getStyleClass("wbwdiv").style.flex = "1";
getStyleClass("trandiv").style.flex = "1";
getStyleClass("pardiv").style.flexDirection = "column";
getStyleClass("sent_wbw_trans").style.flexDirection = "column";
} else {
/* 左右对读 */
_display_para_arrange = 0;
getStyleClass("wbwdiv").style.flex = "7";
getStyleClass("trandiv").style.flex = "3";
getStyleClass("pardiv").style.flexDirection = "row";
getStyleClass("sent_wbw_trans").style.flexDirection = "row";
}
}
//顯示逐句對讀模式
function setSentTranShowMode(obj) {
var isVisible = obj.checked;
if (isVisible) {
/* 逐句对读 */
_display_sbs = 1;
updateWordParBlockInnerAll();
var eAllSent = document.getElementsByClassName("tran_sent");
for (var iSen = 0; iSen < eAllSent.length; iSen++) {
var senA = eAllSent[iSen].getAttributeNode("sn").value;
var eSBSDiv = document.getElementById("sent_" + senA);
if (eSBSDiv) {
eSBSDiv.innerHTML = eAllSent[iSen].innerHTML;
eAllSent[iSen].innerHTML = "";
}
}
} else {
/* 逐段对读 */
_display_sbs = 0;
//getStyleClass('trandiv').style.display="block";
//getStyleClass('translate_sent').style.display="none";
updateWordParBlockInnerAll();
}
}
//显示单词表
function setWordTableVisibility() {
var isVisible = document.getElementById("B_WordTableShowMode").checked;
document.getElementById("word_table").style.display = isVisible ? "block" : "none";
}
function getStyle(styleName) {
for (var s = 0; s < document.styleSheets.length; s++) {
if (document.styleSheets[s].rules) {
for (var r = 0; r < document.styleSheets[s].rules.length; r++) {
if (document.styleSheets[s].rules[r].selectorText == styleName) {
return document.styleSheets[s].rules[r];
}
}
} else if (document.styleSheets[s].cssRules) {
for (var r = 0; r < document.styleSheets[s].cssRules.length; r++) {
if (document.styleSheets[s].cssRules[r].selectorText == styleName)
return document.styleSheets[s].cssRules[r];
}
}
}
return null;
}
function getStyleClass(className) {
for (var s = 0; s < document.styleSheets.length; s++) {
if (document.styleSheets[s].rules) {
for (var r = 0; r < document.styleSheets[s].rules.length; r++) {
if (document.styleSheets[s].rules[r].selectorText == "." + className) {
return document.styleSheets[s].rules[r];
}
}
} else if (document.styleSheets[s].cssRules) {
for (var r = 0; r < document.styleSheets[s].cssRules.length; r++) {
if (document.styleSheets[s].cssRules[r].selectorText == "." + className)
return document.styleSheets[s].cssRules[r];
}
}
}
return null;
}
//读取cookie 中的字体大小
function checkCookie() {
mFontSize = getCookie("fontsize");
if (mFontSize != null && mFontSize != "") {
iStartFontSize = mFontSize;
} else {
mFontSize = 100;
iStartFontSize = 100;
setCookie("fontsize", mFontSize, 365);
}
setPageFontSize(1);
setPageColor(0);
}
function setObjectVisibilityAlone(strIdGroup, strId) {
var hiden = new Array();
hiden = strIdGroup.split("&");
for (i = 0; i < hiden.length; i++) {
document.getElementById(hiden[i]).style.display = "none";
}
var obj = document.getElementById(strId);
obj.style.display = "block";
}
function setObjectVisibility(strId) {
var obj = document.getElementById(strId);
if (obj.style.display == "none") {
obj.style.display = "block";
} else {
obj.style.display = "none";
}
}
function setObjectVisibility2(ControllerId, ObjId) {
var isVisible = document.getElementById(ControllerId).checked;
document.getElementById(ObjId).style.display = isVisible ? "block" : "none";
}
function setObjectVisibility3(Controller, ObjId) {
var isVisible = Controller.checked;
document.getElementById(ObjId).style.display = isVisible ? "block" : "none";
}
function setAllTitleVisibility(Controller, numTitle) {
for (var i = 0; i < numTitle; i++) {
document.getElementById("titlevisable" + numTitle).checked = Controller.checked;
}
}
function windowsInit() {
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("=");
if (item[0] == "filename") {
g_filename = item[1];
}
}
}
checkCookie();
setUseMode("Read");
if (g_filename.length > 0) {
loadDictFromDB(g_filename);
loadxml(g_filename);
} else {
alert("error:没有指定文件名。");
}
}
/*静态页面使用的初始化函数*/
function windowsInitStatic() {
checkCookie();
setUseMode_Static("Read");
}
function indexInit() {
showUserFilaList();
}
function goHome() {
var r = confirm("在返回前请保存文件。否则所有的更改将丢失。\n 按<确定>回到主页。按<取消>留在当前页面。");
if (r == true) {
window.location.assign("./index.php?device=" + g_device);
}
}
function get_Local_Code_Str(inStr, language) {
var get_Local_Code_Str_i = 0;
switch (language) {
case "sinhala":
for (get_Local_Code_Str_i in local_codestr_sinhala) {
inStr = inStr.replace(
local_codestr_sinhala[get_Local_Code_Str_i].id,
local_codestr_sinhala[get_Local_Code_Str_i].value
);
}
break;
/*case "sc":
for(get_Local_Code_Str_i in local_codestr_sc){
inStr=inStr.replace(local_codestr_sc[get_Local_Code_Str_i].id,local_codestr_sc[get_Local_Code_Str_i].value);
}
break;
case "tc":
for(get_Local_Code_Str_i in local_codestr_tc){
inStr=inStr.replace(local_codestr_tc[get_Local_Code_Str_i].id,local_codestr_tc[get_Local_Code_Str_i].value);
}
break;*/
case "pali":
break;
}
return inStr;
}
//将字符串变为本地化字符串
function getLocalGrammaStr(inStr) {
if (typeof inStr == "undefined") {
return "";
} else {
let str = inStr;
for (const iterator of gLocal.grammastr) {
str = str.replace(iterator.id, iterator.value);
}
return str;
}
}
function getLocalGrammaStr_a(inStr) {
var inStr_array_0 = new Array();
i_inStr_array_0 = 0;
if (inStr.lastIndexOf("
") != -1) {
var split_str = "
";
} else if (inStr.lastIndexOf("#") != -1) {
var split_str = "#";
} else {
inStr_array_0.push(inStr);
}
inStr_array_0 = inStr.split(split_str);
for (i_inStr_array_0 in inStr_array_0) {
if (inStr_array_0[i_inStr_array_0].lastIndexOf("$") != -1) {
var inStr_array = inStr_array_0[i_inStr_array_0].split("$");
for (i_instr in inStr_array) {
inStr_array[i_instr] = inStr_array[i_instr].slice(1, inStr_array[i_instr].length - 1);
inStr_array[i_instr] = "。" + inStr_array[i_instr] + "。";
}
inStr_array_0.splice(i_inStr_array_0, 1, inStr_array.join("@"));
} else if (inStr_array_0[i_inStr_array_0] != "" /*&& inStr_array_0[i_inStr_array_0].lastIndexOf(\s)=-1*/) {
inStr_array_0[i_inStr_array_0] = inStr_array_0[i_inStr_array_0].slice(
1,
inStr_array_0[i_inStr_array_0].length - 1
);
inStr_array_0[i_inStr_array_0] = "。" + inStr_array_0[i_inStr_array_0] + "。";
}
}
inStr = inStr_array_0.join(split_str);
for (getLocalGrammaStr_i in gLocal.grammastr) {
var str_Gramma = gLocal.grammastr[getLocalGrammaStr_i].id;
if (str_Gramma != "$") {
str_Gramma = str_Gramma.slice(1, str_Gramma.length - 1); //剝離前後的“.”
str_Gramma = "。" + str_Gramma + "。"; //完成“.”到“。”的替換
var special_RE = RegExp(str_Gramma, "g");
inStr = inStr.replace(special_RE, gLocal.grammastr[getLocalGrammaStr_i].value);
} else {
var special_RE = RegExp("。@。", "g"); //轉化為正則表達式全局變量
inStr = inStr.replace(special_RE, "。·。");
}
}
//inStr=inStr.replace(/。/g,"");
return inStr;
}
function getLocalDictname(inStr) {
if (inStr) {
var LocalDictname = inStr;
} else {
var LocalDictname = "NaN";
}
for (getLocalDictname_i in gLocal.dictname) {
LocalDictname = LocalDictname.replace(
gLocal.dictname[getLocalDictname_i].id,
gLocal.dictname[getLocalDictname_i].value
);
}
return LocalDictname;
}
function getLocalFormulaStr(inGramma, inStr) {
if (inStr.indexOf("[") >= 0) {
return inStr;
}
var output = inStr;
for (i in gLocal.formula) {
if (gLocal.formula[i].id == inGramma) {
fList = gLocal.formula[i].value.split("$");
output = fList[0].replace("~", inStr);
}
}
return output;
}
function getFormulaList(strGramma) {
var output = new Array();
//先加载用户字典里的格位公式
if (myFormula.length > 0) {
for (let i in myFormula) {
if (myFormula[i].gramma == strGramma) {
if (myFormula[i].mean && myFormula[i].mean != "") {
output.push(myFormula[i].mean);
}
}
}
}
for (i in gLocal.formula) {
if (gLocal.formula[i].id == strGramma) {
return output.concat(gLocal.formula[i].value.split("$"));
}
}
}
function getLocalParentFormulaStr(inGramma, inStr) {
var output = inStr;
for (i in gLocal.parent_formula) {
if (gLocal.parent_formula[i].id == inGramma) {
output = gLocal.parent_formula[i].value.replace("~", inStr);
}
}
return output;
}
function cutString(inString, cutLen) {
if (inString) {
if (inString.length > cutLen) {
return inString.substring(0, cutLen - 1) + "…";
} else {
return inString;
}
} else {
return "";
}
}
function getElementWH(element) {
var scrW, scrH;
if (element.innerHeight && element.scrollMaxY) {
// Mozilla
scrW = element.innerWidth + element.scrollMaxX;
scrH = element.innerHeight + element.scrollMaxY;
} else if (element.scrollHeight > element.offsetHeight) {
// all but IE Mac
scrW = element.scrollWidth;
scrH = element.scrollHeight;
} else if (element) {
// IE Mac
scrW = element.offsetWidth;
scrH = element.offsetHeight;
}
var obj = new Object();
obj.width = scrW;
obj.height = scrH;
return obj;
}
/*
函数:tab_click
功能:点击选项卡时切换选项卡
参数:
panalId:选项卡对应的面板id
tabid:选项卡id
callback:回调函数
parm:回调函数参数
返回值:无
*/
function tab_click(panalId, tabid, callback = null, parm = null) {
$("#" + tabid)
.siblings()
.removeClass("act");
$("#" + tabid).addClass("act");
if (panalId != "") {
$("#" + panalId).show();
$("#" + panalId)
.siblings()
.hide();
$("#" + panalId + "_head").show();
$("#" + panalId + "_head")
.siblings()
.hide();
}
if (callback != null) {
if (parm != null) {
callback(parm);
}
}
guide_init();
}
/*
函数:tab_click_b
功能:点击选项卡时切换选项卡 一个
参数:
panalId:选项卡对应的面板id
tabid:选项卡id
callback:回调函数
parm:回调函数参数
返回值:无
*/
function tab_click_b(panalId, tabid, callback = null, parm = null) {
if ($("#" + tabid).hasClass("act")) {
$("#" + tabid).removeClass("act");
} else {
$("#" + tabid)
.siblings()
.removeClass("act");
$("#" + tabid).addClass("act");
}
if (panalId != "") {
$("#" + panalId).show();
$("#" + panalId)
.siblings()
.hide();
$("#" + panalId + "_head").show();
$("#" + panalId + "_head")
.siblings()
.hide();
}
if (callback != null) {
if (parm != null) {
callback(parm);
}
}
}
function get_string_lang(inString) {
let pattern2 = new RegExp("[A-Za-z]+");
if (pattern2.test(inString)) {
return "en";
}
let pattern = new RegExp("[\u4E00-\u9FA5]+");
if (pattern.test(inString)) {
return "zh";
}
return "en";
}
//查询某个字符串是否在字符串数组中出现‘
//@parm:str 被查询的字符串
//@parm:arr 数组
//@return:true 查到 false 没查到
function str_in_array(str, arr) {
for (let x in arr) {
if (arr[x] == str) {
return true;
}
}
return false;
}