Files
2025-06-27 21:04:18 +08:00

258 lines
9.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function replyfloor_postid(url) {
url = url.replace(/&/, "&");
var urlarr = new Array();
urlarr = url.split("&");
var value = new Array();
var postid = 0;
for (var i = 0, L = urlarr.length; i < L; i++) {
value = urlarr[i].split("=");
if(value[0] == "repquote"){
postid = value[1];
return postid;
}
}
return postid;
}
function replyfloor_leftshow(postid) {
if(document.getElementById('replyfloor_content_ul_' + postid)){
document.getElementById('replyfloor_content_ul_' + postid).style.display = 'block';
}
if(document.getElementById('replyfloor_content_more_' + postid)){
document.getElementById('replyfloor_content_more_' + postid).style.display = 'none';
}
if(document.getElementById('replyfloor_content_pg_' + postid)){
document.getElementById('replyfloor_content_pg_' + postid).style.display = 'block';
}
}
function replyfloor_seccodeimg(obj) {
document.getElementById('replyfloor_seccodeverify').value = '';
var tmprandom = 'S' + Math.floor(Math.random() * 1000);
obj.src = 'misc.php?mod=seccode&update='+ tmprandom+'&idhash=replyfloor';
}
function replyfloor_replace() {
var fastre = document.getElementsByClassName('fastre');
for (var i = 0, L = fastre.length; i < L; i++) {
var postid = replyfloor_postid(fastre[i].href);
if(postid){
fastre[i].onclick = function(e) {
replyfloor_reply(this.href);
}
}
}
}
function replyfloor_collapse(obj, postid, type) {
document.getElementById('replyfloor_content_more_'+postid).innerHTML = '';
if(type == 1){
var nextpageurl = obj.getAttribute('rel').valueOf();
var x = new Ajax();
x.get(nextpageurl + '&inajax=1', function(s){
s = s.replace(/\n|\r/g, ' ');
var nexts = s.match(/\<div class="replyfloor_content_li" id="replyfloor_content_li_(\d+)"\>(.+?)\<div>\<\/div>\<\/div>/g);
for(i in nexts) {
var insertid = nexts[i].match(/<div class="replyfloor_content_li" id="replyfloor_content_li_(\d+)"\>/);
if(!document.getElementById('replyfloor_content_li_' + insertid[1])) {
var div = document.createElement('div');
document.getElementById('replyfloor_newbox_'+postid).appendChild(div);
div.outerHTML = nexts[i].replace(/\<div>\<\/div>/g, '');
}
}
var moreinfo = s.match(/\<div class="replyfloor_content_more" id="replyfloor_content_more_(\d+)"\>(.+?)\<div>\<\/div>\<\/div\>/);
if(document.getElementById('replyfloor_content_more_'+postid)){
document.getElementById('replyfloor_content_more_'+postid).innerHTML = moreinfo[2];
}
});
}else{
document.getElementById('replyfloor_newbox_'+postid).innerHTML = '';
var nextpageurl = obj.getAttribute('rel').valueOf();
var x = new Ajax();
x.get(nextpageurl + '&inajax=1', function(s){
if(document.getElementById('replyfloor_content_'+postid)){
document.getElementById('replyfloor_content_'+postid).innerHTML = s;
}
var replyfloor_box_sxy = fetchOffset(document.getElementById("replyfloor_box_"+postid));
if(Math.max(document.documentElement.scrollTop, document.body.scrollTop) > replyfloor_box_sxy['top']){
window.scrollTo('0',replyfloor_box_sxy['top']);
}
});
}
return false;
}
function replyfloor_uploadimage(userSettings) {
replyfloor_webupload(userSettings);
}
function replyfloor_uploadattach(userSettings) {
replyfloor_webupload(userSettings);
}
function replyfloor_webupload(userSettings) {
var settings = {};
var ensureDefault = function(settingName, defaultValue) {
var setting = userSettings[settingName];
if (setting != undefined) {
settings[settingName] = setting;
} else {
settings[settingName] = defaultValue;
}
};
ensureDefault("auto", false);
ensureDefault("compress", false);
ensureDefault("upload_url", "");
ensureDefault("pick", undefined);
ensureDefault("dnd", undefined);
ensureDefault("paste", undefined);
ensureDefault("accept", null);
ensureDefault("fileVal", "file");
ensureDefault("chunked", false);
ensureDefault("chunkSize", 5242880);
ensureDefault("post_params", {});
ensureDefault("threads", 1);
ensureDefault("fileNumLimit", undefined);
ensureDefault("fileSingleSizeLimit", undefined);
var getBasePath = function() {
var els = document.getElementsByTagName('script'), src;
for (var i = 0, len = els.length; i < len; i++) {
src = els[i].src || '';
if (/cwebuploader[\w\-\.]*\.js/.test(src)) {
return src.substring(0, src.lastIndexOf('/') + 1);
}
}
return '';
};
var uploader = CWebUploader.create({
auto: false,
swf: getBasePath() + 'Uploader.swf',
compress: settings.compress,
server: settings.upload_url,
pick: settings.pick,
dnd: settings.dnd,
paste: settings.paste,
accept: settings.accept,
fileVal: settings.fileVal,
chunked: settings.chunked,
chunkSize: settings.chunkSize,
formData: settings.post_params,
threads: settings.threads,
fileNumLimit: settings.fileNumLimit,
fileSingleSizeLimit: settings.fileSingleSizeLimit,
duplicate: true,
disableWidgets: 'log'
});
uploader.on('beforeFileQueued', function(file) {
});
uploader.on('fileQueued', function( file ) {
var eles = document.getElementById('replyfloor_upimage').getElementsByClassName('replyfloor_upimage_li');
if (settings.fileNumLimit && eles.length >= settings.fileNumLimit) {
showDialog('最多只能上传' + settings.fileNumLimit + '张', 'alert');
return false;
} else {
var div = document.createElement("div");
div.id = 'replyfloor_upimage_li_'+file.id;
div.className = 'replyfloor_upimage_li';
document.getElementById('replyfloor_upimage').appendChild(div);
uploader.upload(file);
}
});
uploader.on('uploadStart', function( file ) {
uploader.options.formData['filetype'] = file.ext;
});
uploader.on('uploadSuccess', function( file, response ) {
var obj = document.getElementById('replyfloor_upimage_li_'+file.id);
if(response['status'] == 0) {
obj.parentNode.removeChild(obj);
showDialog(response['message'], 'alert');
} else {
obj.innerHTML = '<div class="replyfloor_upimage_del"><a id="replyfloor_upimage_del_'+response['aid']+'" href="javascript:;" onclick="replyfloor_delimage('+response['aid']+')" title="删除"></a></div><div class="replyfloor_upimage_img"><img src="'+response['attachment']+'" border="0" alt="'+response['filename']+'"/></div><input type="hidden" name="attach[]" value="'+response['aid']+'" />';
}
});
uploader.on("uploadError", function (file, response) {
var obj = document.getElementById('replyfloor_upimage_li_'+file.id);
obj.parentNode.removeChild(obj);
});
uploader.on("uploadFinished", function () {
uploader.reset();
});
uploader.on('error', function (code) {
var err = '';
switch (code) {
case 'F_EXCEED_SIZE':
err += '单张图片大小不得超过' + Base.formatSize(uploader.option('fileSingleSizeLimit')) + '';
break;
case 'Q_EXCEED_NUM_LIMIT':
err += '最多只能上传' + settings.fileNumLimit + '张!';
break;
case 'Q_EXCEED_SIZE_LIMIT':
err += '上传图片总大小超出' + Base.formatSize(uploader.option('fileSizeLimit')) + '';
break;
case 'Q_TYPE_DENIED':
err += '无效图片类型,请上传正确的图片格式!';
break;
case 'F_DUPLICATE':
err += '请不要重复上传相同图片!';
break;
default:
err += '上传错误,请刷新重试!'+code;
break;
}
showDialog(err, 'alert');
return false;
});
}
function replyfloor_plupload(userSettings) {
var settings = {};
var ensureDefault = function(settingName, defaultValue) {
var setting = userSettings[settingName];
if (setting != undefined) {
settings[settingName] = setting;
} else {
settings[settingName] = defaultValue;
}
};
ensureDefault("auto", false);
ensureDefault("upload_url", "");
ensureDefault("pick", undefined);
ensureDefault("accept", null);
ensureDefault("fileVal", "file");
ensureDefault("post_params", {});
var pluploader = new plupload.Uploader({
browse_button : settings.pick,
url : settings.upload_url,
file_data_name: settings.fileVal,
multi_selection: false,
multipart_params: settings.post_params,
filters:settings.accept
});
pluploader.init();
pluploader.bind('FilesAdded',function(uploader,files){
pluploader.start();
});
pluploader.bind('FileUploaded', function(uploader,file, res){
var response = eval('(' + res.response + ')');
if(response['status'] == 0) {
showDialog(response['message'], 'alert');
} else {
var div = document.createElement("div");
div.id = 'replyfloor_upimage_li_'+response['aid'];
div.className = 'replyfloor_upimage_li';
div.innerHTML = '<div class="replyfloor_upimage_del"><a href="javascript:;" id="replyfloor_upimage_del_'+response['aid']+'" onclick="replyfloor_delimage('+response['aid']+')" title="删除"></a></div><div class="replyfloor_upimage_img"><img src="'+response['attachment']+'" border="0" alt="'+response['filename']+'"/></div><input type="hidden" name="attach[]" value="'+response['aid']+'" />';
document.getElementById('replyfloor_upimage').appendChild(div);
}
});
pluploader.bind('Error', function(uploader,error){
showDialog('上传错误,请刷新重试!', 'alert');
});
return false;
}
function replyfloor_delimage(aid) {
var obj = document.getElementById('replyfloor_upimage_del_'+aid).parentNode.parentNode;
if(obj) {
obj.parentNode.removeChild(obj);
var x = new Ajax();
x.get('plugin.php?id=replyfloor:attachment&operation=delete&aid='+aid + '&inajax=1', function(s){
});
}
}