859 lines
28 KiB
JavaScript
859 lines
28 KiB
JavaScript
/*
|
|
[Discuz!] (C)2001-2099 Comsenz Inc.
|
|
This is NOT a freeware, use is subject to license terms
|
|
|
|
$Id: forum_post.js 33695 2013-08-03 04:39:22Z nemohou $
|
|
*/
|
|
|
|
var forum_post_inited = true;
|
|
var postSubmited = false;
|
|
var AID = {0:1,1:1};
|
|
var UPLOADSTATUS = -1;
|
|
var UPLOADFAILED = UPLOADCOMPLETE = AUTOPOST = 0;
|
|
var CURRENTATTACH = '0';
|
|
var FAILEDATTACHS = '';
|
|
var UPLOADWINRECALL = null;
|
|
var imgexts = typeof imgexts == 'undefined' ? 'jpg, jpeg, gif, png, bmp' : imgexts;
|
|
var ATTACHORIMAGE = '0';
|
|
var STATUSMSG = {
|
|
'-1' : '内部服务器错误',
|
|
'0' : '上传成功',
|
|
'1' : '不支持此类扩展名',
|
|
'2' : '服务器限制无法上传那么大的附件',
|
|
'3' : '用户组限制无法上传那么大的附件',
|
|
'4' : '不支持此类扩展名',
|
|
'5' : '文件类型限制无法上传那么大的附件',
|
|
'6' : '今日您已无法上传更多的附件',
|
|
'7' : '请选择图片文件(' + imgexts + ')',
|
|
'8' : '附件文件无法保存',
|
|
'9' : '没有合法的文件被上传',
|
|
'10' : '非法操作',
|
|
'11' : '今日您已无法上传那么大的附件'
|
|
};
|
|
|
|
EXTRAFUNC['validator'] = [];
|
|
|
|
function checkFocus() {
|
|
var obj = wysiwyg ? editwin : textobj;
|
|
if(!obj.hasfocus) {
|
|
obj.focus();
|
|
}
|
|
}
|
|
|
|
function ctlent(event) {
|
|
if(postSubmited == false && (event.ctrlKey && event.keyCode == 13) || (event.altKey && event.keyCode == 83) && $('postsubmit')) {
|
|
if(in_array($('postsubmit').name, ['topicsubmit', 'replysubmit', 'editsubmit']) && !validate($('postform'))) {
|
|
doane(event);
|
|
return;
|
|
}
|
|
postSubmited = true;
|
|
$('postsubmit').disabled = true;
|
|
$('postform').submit();
|
|
}
|
|
if(event.keyCode == 9) {
|
|
doane(event);
|
|
}
|
|
}
|
|
|
|
function checklength(theform) {
|
|
var message = wysiwyg ? html2bbcode(getEditorContents()) : theform.message.value;
|
|
if(!theform.parseurloff.checked) {
|
|
message = parseurl(message);
|
|
}
|
|
showDialog('当前长度: ' + mb_strlen(message) + ' 字节,' + (postmaxchars != 0 ? '系统限制: ' + postminchars + ' 到 ' + postmaxchars + ' 字节。' : ''), 'notice', '字数检查');
|
|
}
|
|
|
|
if(!tradepost) {
|
|
var tradepost = 0;
|
|
}
|
|
|
|
function validate(theform) {
|
|
var message = wysiwyg ? html2bbcode(getEditorContents()) : theform.message.value;
|
|
if(!theform.parseurloff.checked) {
|
|
message = parseurl(message);
|
|
}
|
|
if(($('postsubmit').name != 'replysubmit' && !($('postsubmit').name == 'editsubmit' && !isfirstpost) && theform.subject.value == "") || !sortid && !special && trim(message) == "") {
|
|
showError('抱歉,您尚未输入标题或内容');
|
|
return false;
|
|
} else if(mb_strlen(theform.subject.value) > 80) {
|
|
showError('您的标题超过 80 个字符的限制');
|
|
return false;
|
|
}
|
|
if(in_array($('postsubmit').name, ['topicsubmit', 'editsubmit'])) {
|
|
if(theform.typeid && (theform.typeid.options && theform.typeid.options[theform.typeid.selectedIndex].value == 0) && typerequired) {
|
|
showError('请选择主题对应的分类');
|
|
return false;
|
|
}
|
|
if(theform.sortid && (theform.sortid.options && theform.sortid.options[theform.sortid.selectedIndex].value == 0) && sortrequired) {
|
|
showError('请选择主题对应的分类信息');
|
|
return false;
|
|
}
|
|
}
|
|
for(i in EXTRAFUNC['validator']) {
|
|
try {
|
|
eval('var v = ' + EXTRAFUNC['validator'][i] + '()');
|
|
if(!v) {
|
|
return false;
|
|
}
|
|
} catch(e) {}
|
|
}
|
|
|
|
if(!disablepostctrl && !sortid && !special && ((postminchars != 0 && mb_strlen(message) < postminchars) || (postmaxchars != 0 && mb_strlen(message) > postmaxchars))) {
|
|
showError('您的帖子长度不符合要求。\n\n当前长度: ' + mb_strlen(message) + ' 字节\n系统限制: ' + postminchars + ' 到 ' + postmaxchars + ' 字节');
|
|
return false;
|
|
}
|
|
if(UPLOADSTATUS == 0) {
|
|
if(!confirm('您有等待上传的附件,确认不上传这些附件吗?')) {
|
|
return false;
|
|
}
|
|
} else if(UPLOADSTATUS == 1) {
|
|
showDialog('您有正在上传的附件,请稍候,上传完成后帖子将会自动发表...', 'notice');
|
|
AUTOPOST = 1;
|
|
return false;
|
|
}
|
|
if(isfirstpost && $('adddynamic') != null && $('adddynamic').checked && $('postsave') != null && isNaN(parseInt($('postsave').value)) && ($('readperm') != null && $('readperm').value || $('price') != null && $('price').value)) {
|
|
if(confirm('由于您设置了阅读权限或出售帖,您确认还转播给您的听众看吗?') == false) {
|
|
return false;
|
|
}
|
|
}
|
|
theform.message.value = message;
|
|
if($('postsubmit').name == 'editsubmit') {
|
|
checkpostrule_post(theform);
|
|
return false;
|
|
} else if(in_array($('postsubmit').name, ['topicsubmit', 'replysubmit'])) {
|
|
if(seccodecheck || secqaacheck) {
|
|
var chk = 1, chkv = '';
|
|
if(secqaacheck) {
|
|
chkv = $('checksecqaaverify_' + theform.secqaahash.value).innerHTML;
|
|
if(chkv.indexOf('loading') != -1) {
|
|
setTimeout(function () { validate(theform); }, 100);
|
|
chk = 0;
|
|
} else if(chkv.indexOf('check_right') == -1) {
|
|
showError('验证问答错误,请重新填写');
|
|
chk = 0;
|
|
}
|
|
}
|
|
if(seccodecheck) {
|
|
chkv = $('checkseccodeverify_' + theform.seccodehash.value).innerHTML;
|
|
if(chkv.indexOf('loading') !== -1) {
|
|
setTimeout(function () { validate(theform); }, 100);
|
|
chk = 0;
|
|
} else if(chkv.indexOf('check_right') === -1) {
|
|
showError('验证码错误,请重新填写');
|
|
chk = 0;
|
|
}
|
|
}
|
|
if(chk) {
|
|
checkpostrule_post(theform);
|
|
}
|
|
} else {
|
|
checkpostrule_post(theform);
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function checkpostrule_post(theform) {
|
|
if(!seccodecheck && !secqaacheck && !theform.sechash) {
|
|
var x = new Ajax();
|
|
x.get('forum.php?mod=ajax&action=checkpostrule&ac=' + postaction + '&inajax=yes', function(s) {
|
|
if(s) {
|
|
ajaxinnerhtml($('seccheck'), s);
|
|
evalscript(s);
|
|
seccodecheck = true;
|
|
} else {
|
|
postsubmit(theform);
|
|
}
|
|
});
|
|
} else {
|
|
postsubmit(theform);
|
|
}
|
|
}
|
|
|
|
function postsubmit(theform) {
|
|
if($(editorid + '_attachlist')) {
|
|
$('postbox').appendChild($(editorid + '_attachlist'));
|
|
$(editorid + '_attachlist').style.display = 'none';
|
|
}
|
|
if($(editorid + '_imgattachlist')) {
|
|
$('postbox').appendChild($(editorid + '_imgattachlist'));
|
|
$(editorid + '_imgattachlist').style.display = 'none';
|
|
}
|
|
hideMenu();
|
|
|
|
theform.replysubmit ? theform.replysubmit.disabled = true : (theform.editsubmit ? theform.editsubmit.disabled = true : theform.topicsubmit.disabled = true);
|
|
theform.submit();
|
|
}
|
|
|
|
function relatekw(subject, message) {
|
|
if(isUndefined(subject) || subject == -1) {
|
|
subject = $('subject').value;
|
|
subject = subject.replace(/<\/?[^>]+>|\[\/?.+?\]|"/ig, "");
|
|
subject = subject.replace(/\s{2,}/ig, ' ');
|
|
}
|
|
if(isUndefined(message) || message == -1) {
|
|
message = getEditorContents();
|
|
message = message.replace(/<\/?[^>]+>|\[\/?.+?\]|"/ig, "");
|
|
message = message.replace(/\s{2,}/ig, ' ');
|
|
}
|
|
subject = (BROWSER.ie && document.charset == 'utf-8' ? encodeURIComponent(subject) : subject);
|
|
message = (BROWSER.ie && document.charset == 'utf-8' ? encodeURIComponent(message) : message);
|
|
message = message.replace(/&/ig, '', message).substr(0, 500);
|
|
ajaxget('forum.php?mod=relatekw&subjectenc=' + subject + '&messageenc=' + message, 'tagselect');
|
|
}
|
|
|
|
function switchicon(iconid, obj) {
|
|
$('iconid').value = iconid;
|
|
$('icon_img').src = obj.src;
|
|
hideMenu();
|
|
}
|
|
|
|
function clearContent() {
|
|
if(wysiwyg) {
|
|
editdoc.body.innerHTML = BROWSER.firefox ? '<br />' : '';
|
|
} else {
|
|
textobj.value = '';
|
|
}
|
|
}
|
|
|
|
function uploadNextAttach() {
|
|
var str = $('attachframe').contentWindow.document.body.innerHTML;
|
|
if(str == '') return;
|
|
var arr = str.split('|');
|
|
var att = CURRENTATTACH.split('|');
|
|
var sizelimit = '';
|
|
if(arr[4] == 'ban') {
|
|
sizelimit = '(附件类型被禁止)';
|
|
} else if(arr[4] == 'perday') {
|
|
sizelimit = '(不能超过 ' + arr[5] + ' 字节)';
|
|
} else if(arr[4] > 0) {
|
|
sizelimit = '(不能超过 ' + arr[4] + ' 字节)';
|
|
}
|
|
uploadAttach(parseInt(att[0]), arr[0] == 'DISCUZUPLOAD' ? parseInt(arr[1]) : -1, att[1], sizelimit);
|
|
}
|
|
|
|
function uploadAttach(curId, statusid, prefix, sizelimit) {
|
|
prefix = isUndefined(prefix) ? '' : prefix;
|
|
var nextId = 0;
|
|
for(var i = 0; i < AID[prefix ? 1 : 0] - 1; i++) {
|
|
if($(prefix + 'attachform_' + i)) {
|
|
nextId = i;
|
|
if(curId == 0) {
|
|
break;
|
|
} else {
|
|
if(i > curId) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(nextId == 0) {
|
|
return;
|
|
}
|
|
CURRENTATTACH = nextId + '|' + prefix;
|
|
if(curId > 0) {
|
|
if(statusid == 0) {
|
|
UPLOADCOMPLETE++;
|
|
} else {
|
|
FAILEDATTACHS += '<br />' + mb_cutstr($(prefix + 'attachnew_' + curId).value.substr($(prefix + 'attachnew_' + curId).value.replace(/\\/g, '/').lastIndexOf('/') + 1), 25) + ': ' + STATUSMSG[statusid] + sizelimit;
|
|
UPLOADFAILED++;
|
|
}
|
|
$(prefix + 'cpdel_' + curId).innerHTML = '<img src="' + IMGDIR + '/check_' + (statusid == 0 ? 'right' : 'error') + '.gif" alt="' + STATUSMSG[statusid] + '" />';
|
|
if(nextId == curId || in_array(statusid, [6, 8])) {
|
|
if(prefix == 'img') {
|
|
updateImageList();
|
|
} else {
|
|
updateAttachList();
|
|
}
|
|
if(UPLOADFAILED > 0) {
|
|
showDialog('附件上传完成!成功 ' + UPLOADCOMPLETE + ' 个,失败 ' + UPLOADFAILED + ' 个:' + FAILEDATTACHS);
|
|
FAILEDATTACHS = '';
|
|
}
|
|
UPLOADSTATUS = 2;
|
|
for(var i = 0; i < AID[prefix ? 1 : 0] - 1; i++) {
|
|
if($(prefix + 'attachform_' + i)) {
|
|
reAddAttach(prefix, i)
|
|
}
|
|
}
|
|
$(prefix + 'uploadbtn').style.display = '';
|
|
$(prefix + 'uploading').style.display = 'none';
|
|
if(AUTOPOST) {
|
|
hideMenu();
|
|
validate($('postform'));
|
|
} else if(UPLOADFAILED == 0 && (prefix == 'img' || prefix == '')) {
|
|
showDialog('附件上传完成!', 'right', null, null, 0, null, null, null, null, 3);
|
|
}
|
|
UPLOADFAILED = UPLOADCOMPLETE = 0;
|
|
CURRENTATTACH = '0';
|
|
FAILEDATTACHS = '';
|
|
return;
|
|
}
|
|
} else {
|
|
$(prefix + 'uploadbtn').style.display = 'none';
|
|
$(prefix + 'uploading').style.display = '';
|
|
}
|
|
$(prefix + 'cpdel_' + nextId).innerHTML = '<img src="' + IMGDIR + '/loading.gif" alt="上传中..." />';
|
|
UPLOADSTATUS = 1;
|
|
$(prefix + 'attachform_' + nextId).submit();
|
|
}
|
|
|
|
function addAttach(prefix) {
|
|
var id = AID[prefix ? 1 : 0];
|
|
var tags, newnode, i;
|
|
prefix = isUndefined(prefix) ? '' : prefix;
|
|
newnode = $(prefix + 'attachbtnhidden').firstChild.cloneNode(true);
|
|
tags = newnode.getElementsByTagName('input');
|
|
for(i = 0;i < tags.length;i++) {
|
|
if(tags[i].name == 'Filedata') {
|
|
tags[i].id = prefix + 'attachnew_' + id;
|
|
tags[i].onchange = function() {insertAttach(prefix, id);};
|
|
tags[i].unselectable = 'on';
|
|
} else if(tags[i].name == 'attachid') {
|
|
tags[i].value = id;
|
|
}
|
|
}
|
|
tags = newnode.getElementsByTagName('form');
|
|
tags[0].name = tags[0].id = prefix + 'attachform_' + id;
|
|
$(prefix + 'attachbtn').appendChild(newnode);
|
|
newnode = $(prefix + 'attachbodyhidden').firstChild.cloneNode(true);
|
|
tags = newnode.getElementsByTagName('input');
|
|
for(i = 0;i < tags.length;i++) {
|
|
if(tags[i].name == prefix + 'localid[]') {
|
|
tags[i].value = id;
|
|
}
|
|
}
|
|
tags = newnode.getElementsByTagName('span');
|
|
for(i = 0;i < tags.length;i++) {
|
|
if(tags[i].id == prefix + 'localfile[]') {
|
|
tags[i].id = prefix + 'localfile_' + id;
|
|
} else if(tags[i].id == prefix + 'cpdel[]') {
|
|
tags[i].id = prefix + 'cpdel_' + id;
|
|
} else if(tags[i].id == prefix + 'localno[]') {
|
|
tags[i].id = prefix + 'localno_' + id;
|
|
} else if(tags[i].id == prefix + 'deschidden[]') {
|
|
tags[i].id = prefix + 'deschidden_' + id;
|
|
}
|
|
}
|
|
AID[prefix ? 1 : 0]++;
|
|
newnode.style.display = 'none';
|
|
$(prefix + 'attachbody').appendChild(newnode);
|
|
}
|
|
|
|
function insertAttach(prefix, id) {
|
|
var path = $(prefix + 'attachnew_' + id).value;
|
|
var extpos = path.lastIndexOf('.');
|
|
var ext = extpos == -1 ? '' : path.substr(extpos + 1, path.length).toLowerCase();
|
|
var re = new RegExp("(^|\\s|,)" + ext + "($|\\s|,)", "ig");
|
|
var localfile = $(prefix + 'attachnew_' + id).value.substr($(prefix + 'attachnew_' + id).value.replace(/\\/g, '/').lastIndexOf('/') + 1);
|
|
var filename = mb_cutstr(localfile, 30);
|
|
|
|
if(path == '') {
|
|
return;
|
|
}
|
|
if(extensions != '' && (re.exec(extensions) == null || ext == '')) {
|
|
reAddAttach(prefix, id);
|
|
showError('对不起,不支持上传此类扩展名的附件。');
|
|
return;
|
|
}
|
|
if(prefix == 'img' && imgexts.indexOf(ext) == -1) {
|
|
reAddAttach(prefix, id);
|
|
showError('请选择图片文件(' + imgexts + ')');
|
|
return;
|
|
}
|
|
|
|
$(prefix + 'cpdel_' + id).innerHTML = '<a href="javascript:;" class="d" onclick="reAddAttach(\'' + prefix + '\', ' + id + ')">删除</a>';
|
|
$(prefix + 'localfile_' + id).innerHTML = '<span>' + filename + '</span>';
|
|
$(prefix + 'attachnew_' + id).style.display = 'none';
|
|
$(prefix + 'deschidden_' + id).style.display = '';
|
|
$(prefix + 'deschidden_' + id).title = localfile;
|
|
$(prefix + 'localno_' + id).parentNode.parentNode.style.display = '';
|
|
addAttach(prefix);
|
|
UPLOADSTATUS = 0;
|
|
}
|
|
|
|
function reAddAttach(prefix, id) {
|
|
$(prefix + 'attachbody').removeChild($(prefix + 'localno_' + id).parentNode.parentNode);
|
|
$(prefix + 'attachbtn').removeChild($(prefix + 'attachnew_' + id).parentNode.parentNode);
|
|
$(prefix + 'attachbody').innerHTML == '' && addAttach(prefix);
|
|
$('localimgpreview_' + id) ? document.body.removeChild($('localimgpreview_' + id)) : null;
|
|
}
|
|
|
|
function delAttach(id, type) {
|
|
var ids = {};
|
|
if(typeof id == 'number') {
|
|
ids[id] = id;
|
|
} else {
|
|
ids = id;
|
|
}
|
|
for(id in ids) {
|
|
if($('attach_' + id)) {
|
|
$('attach_' + id).style.display = 'none';
|
|
ATTACHNUM['attach' + (type ? 'un' : '') + 'used']--;
|
|
updateattachnum('attach');
|
|
}
|
|
}
|
|
appendAttachDel(ids);
|
|
}
|
|
|
|
function delImgAttach(id, type) {
|
|
var ids = {};
|
|
if(typeof id == 'number') {
|
|
ids[id] = id;
|
|
} else {
|
|
ids = id;
|
|
}
|
|
for(id in ids) {
|
|
if($('image_td_' + id)) {
|
|
$('image_td_' + id).className = 'imgdeleted';
|
|
$('image_' + id).onclick = null;
|
|
$('image_desc_' + id).disabled = true;
|
|
ATTACHNUM['image' + (type ? 'un' : '') + 'used']--;
|
|
updateattachnum('image');
|
|
}
|
|
}
|
|
appendAttachDel(ids);
|
|
}
|
|
|
|
function appendAttachDel(ids) {
|
|
if(!ids) {
|
|
return;
|
|
}
|
|
var aids = '';
|
|
for(id in ids) {
|
|
aids += '&aids[]=' + id;
|
|
}
|
|
var x = new Ajax();
|
|
x.get('forum.php?mod=ajax&action=deleteattach&inajax=yes&tid=' + (typeof tid == 'undefined' ? 0 : tid) + '&pid=' + (typeof pid == 'undefined' ? 0 : pid) + aids + ($('modthreadkey') ? '&modthreadkey=' + $('modthreadkey').value : ''), function() {});
|
|
if($('delattachop')) {
|
|
$('delattachop').value = 1;
|
|
}
|
|
}
|
|
|
|
function updateAttach(aid) {
|
|
objupdate = $('attachupdate'+aid);
|
|
obj = $('attach' + aid);
|
|
if(!objupdate.innerHTML) {
|
|
obj.style.display = 'none';
|
|
objupdate.innerHTML = '<input type="file" name="attachupdate[paid' + aid + ']"><a href="javascript:;" onclick="updateAttach(' + aid + ')">取消</a>';
|
|
} else {
|
|
obj.style.display = '';
|
|
objupdate.innerHTML = '';
|
|
}
|
|
}
|
|
|
|
function updateattachnum(type) {
|
|
ATTACHNUM[type + 'used'] = ATTACHNUM[type + 'used'] >= 0 ? ATTACHNUM[type + 'used'] : 0;
|
|
ATTACHNUM[type + 'unused'] = ATTACHNUM[type + 'unused'] >= 0 ? ATTACHNUM[type + 'unused'] : 0;
|
|
var num = ATTACHNUM[type + 'used'] + ATTACHNUM[type + 'unused'];
|
|
if(num) {
|
|
if($(editorid + '_' + type)) {
|
|
$(editorid + '_' + type).title = '包含 ' + num + (type == 'image' ? ' 个图片附件' : ' 个附件');
|
|
}
|
|
if($(editorid + '_' + type + 'n')) {
|
|
$(editorid + '_' + type + 'n').style.display = '';
|
|
}
|
|
ATTACHORIMAGE = 1;
|
|
} else {
|
|
if($(editorid + '_' + type)) {
|
|
$(editorid + '_' + type).title = type == 'image' ? '图片' : '附件';
|
|
}
|
|
if($(editorid + '_' + type + 'n')) {
|
|
$(editorid + '_' + type + 'n').style.display = 'none';
|
|
}
|
|
}
|
|
}
|
|
|
|
function swfHandler(action, type) {
|
|
if(action == 2) {
|
|
if(type == 'image') {
|
|
updateImageList();
|
|
} else {
|
|
updateAttachList();
|
|
}
|
|
}
|
|
}
|
|
|
|
function updateAttachList(action, aids) {
|
|
ajaxget('forum.php?mod=ajax&action=attachlist' + (!action ? '&posttime=' + $('posttime').value : (!aids ? '' : '&aids=' + aids)) + (!fid ? '' : '&fid=' + fid), 'attachlist');
|
|
switchAttachbutton('attachlist');$('attach_tblheader').style.display = $('attach_notice').style.display = '';
|
|
}
|
|
|
|
function updateImageList(action, aids) {
|
|
ajaxget('forum.php?mod=ajax&action=imagelist' + (!action ? '&pid=' + pid + '&posttime=' + $('posttime').value : (!aids ? '' : '&aids=' + aids)) + (!fid ? '' : '&fid=' + fid), 'imgattachlist');
|
|
switchImagebutton('imgattachlist');$('imgattach_notice').style.display = '';
|
|
}
|
|
|
|
function updateDownImageList(msg) {
|
|
hideMenu('fwin_dialog', 'dialog');
|
|
if(msg == '') {
|
|
showError('抱歉,暂无远程附件');
|
|
} else {
|
|
ajaxget('forum.php?mod=ajax&action=imagelist&pid=' + pid + '&posttime=' + $('posttime').value + (!fid ? '' : '&fid=' + fid), 'imgattachlist', null, null, null, function(){if(wysiwyg) {editdoc.body.innerHTML = msg;switchEditor(0);switchEditor(1)} else {textobj.value = msg;}});
|
|
switchImagebutton('imgattachlist');$('imgattach_notice').style.display = '';
|
|
showDialog('远程附件下载完成!', 'right', null, null, 0, null, null, null, null, 3);
|
|
}
|
|
}
|
|
|
|
function switchButton(btn, type) {
|
|
var btnpre = editorid + '_btn_';
|
|
if(!$(btnpre + btn) || !$(editorid + '_' + btn)) {
|
|
return;
|
|
}
|
|
var tabs = $(editorid + '_' + type + '_ctrl').getElementsByTagName('LI');
|
|
$(btnpre + btn).style.display = '';
|
|
$(editorid + '_' + btn).style.display = '';
|
|
$(btnpre + btn).className = 'current';
|
|
var btni = '';
|
|
for(i = 0;i < tabs.length;i++) {
|
|
if(tabs[i].id.indexOf(btnpre) !== -1) {
|
|
btni = tabs[i].id.substr(btnpre.length);
|
|
}
|
|
if(btni != btn) {
|
|
if(!$(editorid + '_' + btni) || !$(editorid + '_btn_' + btni)) {
|
|
continue;
|
|
}
|
|
$(editorid + '_' + btni).style.display = 'none';
|
|
$(editorid + '_btn_' + btni).className = '';
|
|
}
|
|
}
|
|
}
|
|
|
|
function uploadWindowstart() {
|
|
$('uploadwindowing').style.visibility = 'visible';
|
|
}
|
|
|
|
function uploadWindowload() {
|
|
$('uploadwindowing').style.visibility = 'hidden';
|
|
var str = $('uploadattachframe').contentWindow.document.body.innerHTML;
|
|
if(str == '') return;
|
|
var arr = str.split('|');
|
|
if(arr[0] == 'DISCUZUPLOAD' && arr[2] == 0) {
|
|
UPLOADWINRECALL(arr[3], arr[5], arr[6]);
|
|
hideWindow('upload', 0);
|
|
} else {
|
|
var sizelimit = '';
|
|
if(arr[7] == 'ban') {
|
|
sizelimit = '(附件类型被禁止)';
|
|
} else if(arr[7] == 'perday') {
|
|
sizelimit = '(不能超过 ' + arr[8] + ' 字节)';
|
|
} else if(arr[7] > 0) {
|
|
sizelimit = '(不能超过 ' + arr[7] + ' 字节)';
|
|
}
|
|
showError(STATUSMSG[arr[2]] + sizelimit);
|
|
}
|
|
if($('attachlimitnotice')) {
|
|
ajaxget('forum.php?mod=ajax&action=updateattachlimit&fid=' + fid, 'attachlimitnotice');
|
|
}
|
|
}
|
|
|
|
function uploadWindow(recall, type) {
|
|
var type = isUndefined(type) ? 'image' : type;
|
|
UPLOADWINRECALL = recall;
|
|
showWindow('upload', 'forum.php?mod=misc&action=upload&fid=' + fid + '&type=' + type, 'get', 0, {'zindex':601});
|
|
}
|
|
|
|
function updatetradeattach(aid, url, attachurl) {
|
|
$('tradeaid').value = aid;
|
|
$('tradeattach_image').innerHTML = '<img src="' + attachurl + '/' + url + '" class="spimg" />';
|
|
ATTACHORIMAGE = 1;
|
|
}
|
|
|
|
function updateactivityattach(aid, url, attachurl) {
|
|
$('activityaid').value = aid;
|
|
$('activityattach_image').innerHTML = '<img src="' + attachurl + '/' + url + '" class="spimg" />';
|
|
ATTACHORIMAGE = 1;
|
|
}
|
|
|
|
function updatesortattach(aid, url, attachurl, identifier) {
|
|
$('sortaid_' + identifier).value = aid;
|
|
$('sortattachurl_' + identifier).value = attachurl + '/' + url;
|
|
$('sortattach_image_' + identifier).innerHTML = '<img src="' + attachurl + '/' + url + '" class="spimg" />';
|
|
ATTACHORIMAGE = 1;
|
|
}
|
|
|
|
function switchpollm(swt) {
|
|
t = $('pollchecked').checked && swt ? 2 : 1;
|
|
var v = '';
|
|
for(var i = 0; i < $('postform').elements.length; i++) {
|
|
var e = $('postform').elements[i];
|
|
if(!isUndefined(e.name)) {
|
|
if(e.name.match('^polloption')) {
|
|
if(t == 2 && e.tagName == 'INPUT') {
|
|
v += e.value + '\n';
|
|
} else if(t == 1 && e.tagName == 'TEXTAREA') {
|
|
v += e.value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(t == 1) {
|
|
var a = v.split('\n');
|
|
var pcount = 0;
|
|
for(var i = 0; i < $('postform').elements.length; i++) {
|
|
var e = $('postform').elements[i];
|
|
if(!isUndefined(e.name)) {
|
|
if(e.name.match('^polloption')) {
|
|
pcount++;
|
|
if(e.tagName == 'INPUT') e.value = '';
|
|
}
|
|
}
|
|
}
|
|
for(var i = 0; i < a.length - pcount + 2; i++) {
|
|
addpolloption();
|
|
}
|
|
var ii = 0;
|
|
for(var i = 0; i < $('postform').elements.length; i++) {
|
|
var e = $('postform').elements[i];
|
|
if(!isUndefined(e.name)) {
|
|
if(e.name.match('^polloption') && e.tagName == 'INPUT' && a[ii]) {
|
|
e.value = a[ii++];
|
|
}
|
|
}
|
|
}
|
|
} else if(t == 2) {
|
|
$('postform').polloptions.value = trim(v);
|
|
|
|
}
|
|
$('postform').tpolloption.value = t;
|
|
if(swt) {
|
|
display('pollm_c_1');
|
|
display('pollm_c_2');
|
|
}
|
|
}
|
|
|
|
function addpolloption() {
|
|
if(curoptions < maxoptions) {
|
|
var imgid = 'newpoll_'+curnumber;
|
|
var proid = 'pollUploadProgress_'+curnumber;
|
|
var pollstr = $('polloption_hidden').innerHTML.replace('newpoll', imgid);
|
|
pollstr = pollstr.replace('pollUploadProgress', proid);
|
|
$('polloption_new').outerHTML = '<p>' + pollstr + '</p>' + $('polloption_new').outerHTML;
|
|
curoptions++;
|
|
curnumber++;
|
|
addUploadEvent(imgid, proid)
|
|
|
|
} else {
|
|
$('polloption_new').outerHTML = '<span>已达到最大投票数'+maxoptions+'</span>';
|
|
}
|
|
}
|
|
|
|
function delpolloption(obj) {
|
|
obj.parentNode.parentNode.removeChild(obj.parentNode);
|
|
curoptions--;
|
|
}
|
|
|
|
function insertsave(pid) {
|
|
var x = new Ajax();
|
|
x.get('forum.php?mod=misc&action=loadsave&inajax=yes&pid=' + pid + '&type=' + wysiwyg, function(str, x) {
|
|
insertText(str, str.length, 0);
|
|
});
|
|
}
|
|
|
|
function userdataoption(op) {
|
|
if(!op) {
|
|
saveUserdata('forum_'+discuz_uid, '');
|
|
display('rstnotice');
|
|
} else {
|
|
loadData();
|
|
checkFocus();
|
|
}
|
|
doane();
|
|
}
|
|
|
|
function attachoption(type, op) {
|
|
if(!op) {
|
|
if(type == 'attach') {
|
|
delAttach(ATTACHUNUSEDAID, 1);
|
|
ATTACHNUM['attachunused'] = 0;
|
|
display('attachnotice_attach');
|
|
} else {
|
|
delImgAttach(IMGUNUSEDAID, 1);
|
|
ATTACHNUM['imageunused'] = 0;
|
|
display('attachnotice_img');
|
|
}
|
|
} else if(op == 1) {
|
|
var obj = $('unusedwin') ? $('unusedwin') : $('unusedlist_' + type);
|
|
list = obj.getElementsByTagName('INPUT'), aids = '';
|
|
for(i = 0;i < list.length;i++) {
|
|
if(list[i].name.match('unused') && list[i].checked) {
|
|
aids += '|' + list[i].value;
|
|
}
|
|
}
|
|
if(aids) {
|
|
if(type == 'attach') {
|
|
updateAttachList(1, aids);
|
|
} else {
|
|
list = $('imgattachlist').getElementsByTagName('TD');
|
|
re = /^image\_td\_(\d+)$/;
|
|
for(i = 0;i < list.length;i++) {
|
|
var matches = re.exec(list[i].id);
|
|
if(matches != null) {
|
|
aids += '|' + matches[1];
|
|
}
|
|
}
|
|
updateImageList(1, aids);
|
|
}
|
|
}
|
|
display('attachnotice_' + type);
|
|
} else if(op == 2) {
|
|
showDialog('<div id="unusedwin" class="c altw" style="overflow:auto;height:100px;">' + $('unusedlist_' + type).innerHTML + '</div>' +
|
|
'<p class="o pns"><span class="z xg1"><label for="unusedwinchkall"><input id="unusedwinchkall" type="checkbox" onclick="attachoption(\'' + type + '\', 3)" checked="checked" />全选</label></span>' +
|
|
'<button onclick="attachoption(\'' + type + '\', 1);hideMenu(\'fwin_dialog\', \'dialog\')" class="pn pnc"><strong>使用</strong></button></p>', 'info', '未使用的' + (type == 'attach' ? '附件' : '图片'));
|
|
} else if(op == 3) {
|
|
list = $('unusedwin').getElementsByTagName('INPUT');
|
|
for(i = 0;i < list.length;i++) {
|
|
if(list[i].name.match('unused')) {
|
|
list[i].checked = $('unusedwinchkall').checked;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
doane();
|
|
}
|
|
|
|
function insertAttachTag(aid) {
|
|
var txt = '[attach]' + aid + '[/attach]';
|
|
seditor_insertunit('fastpost', txt);
|
|
}
|
|
function insertAttachimgTag(aid) {
|
|
var txt = '[attachimg]' + aid + '[/attachimg]';
|
|
seditor_insertunit('fastpost', txt);
|
|
}
|
|
function insertText(str) {
|
|
seditor_insertunit('fastpost', str);
|
|
}
|
|
|
|
function insertAllAttachTag() {
|
|
var attachListObj = $('e_attachlist').getElementsByTagName("tbody");
|
|
for(var i in attachListObj) {
|
|
if(typeof attachListObj[i] == "object") {
|
|
var attach = attachListObj[i];
|
|
var ids = attach.id.split('_');
|
|
if(ids[0] == 'attach') {
|
|
if($('attachname'+ids[1]) && attach.style.display != 'none') {
|
|
if(parseInt($('attachname'+ids[1]).getAttribute('isimage'))) {
|
|
insertAttachimgTag(ids[1]);
|
|
} else {
|
|
insertAttachTag(ids[1]);
|
|
}
|
|
var txt = wysiwyg ? '\r\n<br/><br/>\r\n' : '\r\n\r\n';
|
|
insertText(txt, strlen(txt), 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
doane();
|
|
}
|
|
|
|
function selectAllSaveImg(state) {
|
|
var inputListObj = $('imgattachlist').getElementsByTagName("input");
|
|
for(i in inputListObj) {
|
|
if(typeof inputListObj[i] == "object" && inputListObj[i].id) {
|
|
var inputObj = inputListObj[i];
|
|
var ids = inputObj.id.split('_');
|
|
if(ids[0] == 'albumaidchk' && $('image_td_' + ids[1]).className != 'imgdeleted' && inputObj.checked != state) {
|
|
inputObj.click();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function showExtra(id) {
|
|
if ($(id+'_c').style.display == 'block') {
|
|
$(id+'_b').className = 'pn z';
|
|
$(id+'_c').style.display = 'none';
|
|
} else {
|
|
var extraButton = $('post_extra_tb').getElementsByTagName('label');
|
|
var extraForm = $('post_extra_c').getElementsByTagName('div');
|
|
|
|
for (i=0;i<extraButton.length;i++) {
|
|
extraButton[i].className = '';
|
|
}
|
|
|
|
for (i=0;i<extraForm.length;i++) {
|
|
if(hasClass(extraForm[i],'exfm')) {
|
|
extraForm[i].style.display = 'none';
|
|
}
|
|
}
|
|
|
|
for (i=0;i<extraForm.length;i++) {
|
|
if(hasClass(extraForm[i],'exfm')) {
|
|
extraForm[i].style.display = 'none';
|
|
}
|
|
}
|
|
$(id+'_b').className = 'a';
|
|
$(id+'_c').style.display = 'block';
|
|
}
|
|
}
|
|
|
|
function extraCheck(op) {
|
|
if(!op && $('extra_replycredit_chk')) {
|
|
$('extra_replycredit_chk').className = $('replycredit_extcredits').value > 0 && $('replycredit_times').value > 0 ? 'a' : '';
|
|
} else if(op == 1 && $('readperm')) {
|
|
$('extra_readperm_chk').className = $('readperm').value !== '' ? 'a' : '';
|
|
} else if(op == 2 && $('price')) {
|
|
$('extra_price_chk').className = $('price').value > 0 ? 'a' : '';
|
|
} else if(op == 3 && $('rushreply')) {
|
|
$('extra_rushreplyset_chk').className = $('rushreply').checked ? 'a' : '';
|
|
} else if(op == 4 && $('tags')) {
|
|
$('extra_tag_chk').className = $('tags').value !== '' ? 'a' : '';
|
|
} else if(op == 5 && $('cronpublish')) {
|
|
$('extra_pubdate_chk').className = $('cronpublish').checked ? 'a' : '';
|
|
}
|
|
}
|
|
|
|
function hidenFollowBtn(flag) {
|
|
var fobj = $('adddynamicspan');
|
|
if(fobj) {
|
|
if(flag) {
|
|
$('adddynamic').checked = !flag;
|
|
fobj.style.display = 'none';
|
|
} else {
|
|
fobj.style.display = '';
|
|
}
|
|
}
|
|
}
|
|
|
|
function getreplycredit() {
|
|
var replycredit_extcredits = $('replycredit_extcredits');
|
|
var replycredit_times = $('replycredit_times');
|
|
var credit_once = parseInt(replycredit_extcredits.value) > 0 ? parseInt(replycredit_extcredits.value) : 0;
|
|
var times = parseInt(replycredit_times.value) > 0 ? parseInt(replycredit_times.value) : 0;
|
|
if(parseInt(credit_once * times) - have_replycredit > 0) {
|
|
var real_reply_credit = Math.ceil(parseInt(credit_once * times) - have_replycredit + ((parseInt(credit_once * times) - have_replycredit) * creditstax));
|
|
} else {
|
|
var real_reply_credit = Math.ceil(parseInt(credit_once * times) - have_replycredit);
|
|
}
|
|
|
|
var reply_credits_sum = Math.ceil(parseInt(credit_once * times));
|
|
|
|
if(real_reply_credit > userextcredit) {
|
|
$('replycredit').innerHTML = '<b class="xi1">回帖奖励积分总额过大('+real_reply_credit+')</b>';
|
|
} else {
|
|
if(have_replycredit > 0 && real_reply_credit < 0) {
|
|
$('replycredit').innerHTML = "<font class='xi1'>返还"+Math.abs(real_reply_credit)+"</font>";
|
|
} else {
|
|
$('replycredit').innerHTML = replycredit_result_lang + (real_reply_credit > 0 ? real_reply_credit : 0 );
|
|
}
|
|
$('replycredit_sum').innerHTML = reply_credits_sum > 0 ? reply_credits_sum : 0 ;
|
|
}
|
|
}
|
|
|
|
function extraCheckall() {
|
|
for(i = 0;i < 5;i++) {
|
|
extraCheck(i);
|
|
}
|
|
}
|
|
|
|
function deleteThread() {
|
|
if(confirm('确定要删除该帖子吗?') != 0){
|
|
$('delete').value = '1';
|
|
$('postform').submit();
|
|
}
|
|
}
|
|
|
|
function hideAttachMenu(id) {
|
|
if($(editorid + '_' + id + '_menu')) {
|
|
$(editorid + '_' + id + '_menu').style.visibility = 'hidden';
|
|
}
|
|
} |