First commit

This commit is contained in:
2025-06-18 10:24:27 +08:00
commit ebc39cd5dd
3873 changed files with 412712 additions and 0 deletions

220
uc_server/js/ajax.js Normal file
View File

@@ -0,0 +1,220 @@
var Ajaxs = new Array();
function Ajax(waitId) {
var aj = new Object();
aj.waitId = waitId ? $(waitId) : null;
aj.targetUrl = '';
aj.sendString = '';
aj.resultHandle = null;
aj.loading = '<img src="image/common/loading.gif" style="margin: 3px; vertical-align: middle" />Loading... ';
aj.createXMLHttpRequest = function() {
var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) request.overrideMimeType('text/xml');
} else if(window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++) {
try {
request = new ActiveXObject(versions[i]);
if(request) return request;
} catch(e) {/*alert(e.message);*/}
}
}
return request;
}
aj.request = aj.createXMLHttpRequest();
if(aj.waitId) {
aj.waitId.orgdisplay = aj.waitId.style.display;
aj.waitId.style.display = '';
aj.waitId.innerHTML = aj.loading;
}
aj.processHandle = function() {
if(aj.request.readyState == 4 && aj.request.status == 200) {
for(k in Ajaxs) {
if(Ajaxs[k] == aj.targetUrl) Ajaxs[k] = null;
}
if(aj.waitId) {
aj.waitId.style.display = 'none';
aj.waitId.style.display = aj.waitId.orgdisplay;
}
aj.resultHandle(aj.request.responseXML.lastChild.firstChild.nodeValue);
}
}
aj.get = function(targetUrl, resultHandle) {
if(in_array(targetUrl, Ajaxs)) {
return false;
} else {
Ajaxs.push(targetUrl);
}
aj.targetUrl = targetUrl;
aj.request.onreadystatechange = aj.processHandle;
aj.resultHandle = resultHandle;
if(window.XMLHttpRequest) {
aj.request.open('GET', aj.targetUrl);
aj.request.send(null);
} else {
aj.request.open("GET", targetUrl, true);
aj.request.send();
}
}
return aj;
}
function show(id, display) {
if(display == 'auto') {
$(id).style.display = $(id).style.display == '' ? 'none' : '';
} else {
$(id).style.display = display;
}
}
function ajaxget(url, showId, waitId, display, recall) {
e = is_ie ? event : ajaxget.caller.arguments[0];
ajaxget2(e, url, showId, waitId, display, recall);
_cancelBubble(e);
}
function ajaxget2(e, url, showId, waitId, display, recall) {
target = e ? (is_ie ? e.srcElement : e.target) : null;
display = display ? display : '';
var x = new Ajax(waitId);
x.showId = showId;
x.display = display;
var sep = url.indexOf('?') != -1 ? '&' : '?';
x.target = target;
x.recall = recall;
x.get(url+sep+'inajax=1', function(s) {
if(x.display == 'auto' && x.target) {
x.target.onclick = newfunc('show', x.showId, 'auto');
}
show(x.showId, x.display);
$(x.showId).innerHTML = s;
evalscript(s);
if(x.recall)eval(x.recall);
});
_cancelBubble(e);
}
var evalscripts = new Array();
function evalscript(s) {
if(!s || s.indexOf('<script') == -1) return s;
var p = /<script[^\>]*?src=\"([^\x00]+?)\"[^\>]*( reload=\"1\")?><\/script>/ig;
var arr = new Array();
while(arr = p.exec(s)) appendscript(arr[1], '', arr[2]);
p = /<script[^\>]*?( reload=\"1\")?>([^\x00]+?)<\/script>/ig;
while(arr = p.exec(s)) appendscript('', arr[2], arr[1]);
return s;
}
function appendscript(src, text, reload) {
var id = hash(src + text);
if(!reload && in_array(id, evalscripts)) return;
if(reload && $(id)) {
$(id).parentNode.removeChild($(id));
}
evalscripts.push(id);
var scriptNode = document.createElement("script");
scriptNode.type = "text/javascript";
scriptNode.id = id;
if(src) {
scriptNode.src = src;
} else if(text){
scriptNode.text = text;
}
$('append').appendChild(scriptNode);
}
function hash(string, length) {
var length = length ? length : 32;
var start = 0;
var i = 0;
var result = '';
filllen = length - string.length % length;
for(i = 0; i < filllen; i++){
string += "0";
}
while(start < string.length) {
result = stringxor(result, string.substr(start, length));
start += length;
}
return result;
}
function stringxor(s1, s2) {
var s = '';
var hash = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var max = Math.max(s1.length, s2.length);
for(var i=0; i<max; i++) {
var k = s1.charCodeAt(i) ^ s2.charCodeAt(i);
s += hash.charAt(k % 52);
}
return s;
}
function in_array(needle, haystack) {
for(var i in haystack) {if(haystack[i] == needle) return true;}
return false;
}
function newfunc(func){
var args = new Array();
for(var i=1; i<arguments.length; i++) args.push(arguments[i]);
return function(e){
window[func].apply(window, args);
_cancelBubble(is_ie ? event : e);
}
}
function ajaxmenu(url, position) {
e = is_ie ? event : ajaxmenu.caller.arguments[0];
controlid = is_ie ? e.srcElement : e.target;
var menuid = hash(url);
createmenu(menuid);
showmenu2(e, menuid, position, controlid);
if(!$(menuid).innerHTML) {
ajaxget2(e, url, menuid, menuid, '', "setposition('" + menuid + "', '" + position + "', '" + controlid + "')");
} else {
}
_cancelBubble(e);
}
var ajaxpostHandle = null;
function ajaxpost(formid, showid, recall) {
var ajaxframeid = 'ajaxframe';
var ajaxframe = $(ajaxframeid);
if(ajaxframe == null) {
if (is_ie) {
ajaxframe = document.createElement("<iframe name='" + ajaxframeid + "' id='" + ajaxframeid + "'></iframe>");
} else {
ajaxframe = document.createElement("iframe");
ajaxframe.name = ajaxframeid;
ajaxframe.id = ajaxframeid;
}
ajaxframe.style.display = 'none';
$('append').appendChild(ajaxframe);
}
$(formid).target = ajaxframeid;
ajaxpostHandle = [formid, showid, ajaxframeid, recall];
_attachEvent(ajaxframe, 'load', ajaxpost_load);
$(formid).submit();
return false;
}
function ajaxpost_load() {
var s = (is_ie && $(ajaxpostHandle[2])) ? $(ajaxpostHandle[2]).contentWindow.document.XMLDocument.text : $(ajaxpostHandle[2]).contentWindow.document.documentElement.firstChild.nodeValue;
evalscript(s);
if(s) {
$(ajaxpostHandle[1]).innerHTML = s;
if(ajaxpostHandle[3]) {
eval(ajaxpostHandle[3]);
}
}
}

View File

@@ -0,0 +1,320 @@
function $(id) {
return !id ? null : document.getElementById(id);
}
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
return (false);
}
jQuery.noConflict();
var dwidth = getQueryVariable('width') > 0 ? getQueryVariable('width') : 450;
var dheight = getQueryVariable('height') > 0 ? getQueryVariable('height') : 253;
jQuery('#avatardesigner').width(dwidth - 25);
jQuery('#avatardesigner').height(dheight - 25);
jQuery('#widgetparent').width(dwidth - 150);
jQuery('#widgetparent').height(dheight - 25);
jQuery('#selector').width(150);
jQuery('#selector').height(150);
jQuery('#avatarfileselector').width(dwidth - 25);
jQuery('#avatarfileselector').height(dheight - 25);
jQuery('#avatarfile').width(dwidth - 25);
jQuery('#avatarfile').height(dheight - 25);
jQuery('#avatarcanvas').attr('width', (dwidth - 150));
jQuery('#avatarcanvas').attr('height', dheight - 25);
jQuery('#avatardisplaycanvas').attr('width', dwidth - 25);
jQuery('#avatardisplaycanvas').attr('height', dheight - 25);
$('avatarform').target = 'uploadframe';
$('avatarfile').onchange = uploadAvatarDone;
jQuery(document).ready(function () {
jQuery("#selector")
.draggable({ containment: "parent", drag: function (event, ui) { refreshAvatarCanvas(ui.position); }, stop: function () { forceSelectorInsideAvatar(); } })
.resizable({ containment: "parent", resize: function (event, ui) { refreshAvatarCanvas(ui.position); }, stop: function () { forceSelectorInsideAvatar(); } })
.hover(
function () { jQuery(this).css({ "border-color": "red" }); },
function () { jQuery(this).css({ "border-color": "rgba(255, 0, 0, 0.6)" }); }
);
jQuery("#slider").slider({
min: 0,
max: 100,
value: 50,
slide: function (event, ui) {
forceSelectorInsideAvatar();
}
});
jQuery("#slider").append("<div style='position: absolute; top: -2px; left: 0px; width: 3px; height: 6px; background-color: black;'>&nbsp;</div>");
jQuery("#slider").append("<div style='position: absolute; top: -2px; left: 50px; width: 3px; height: 6px; background-color: black;'>&nbsp;</div>");
jQuery("#slider").append("<div style='position: absolute; top: -2px; left: 100px; width: 3px; height: 6px; background-color: black;'>&nbsp;</div>");
});
window.addEventListener('message', receiveMessage, false);
function receiveMessage(event) {
var msgdata = event.data;
if (typeof (msgdata) !== 'string') {
return;
}
rectAvatarDone(msgdata);
}
function uploadAvatarDone() {
if (this.files && this.files[0]) {
var fr = new FileReader();
fr.onload = function (e) {
jQuery('#avatarfileselector').hide();
jQuery('#avatardisplayer').hide();
jQuery('#avataradjuster').show();
jQuery('#selector').css('left', Math.floor((dwidth - 300) / 2));
jQuery('#selector').css('top', Math.floor((dheight - 150) / 2));
jQuery('#selector').width(150);
jQuery('#selector').height(150);
$('avatarimage').src = e.target.result;
jQuery("#slider").slider('value', 50);
};
fr.readAsDataURL(this.files[0]);
}
}
function showAvatarFileSelector() {
$('avatarimage').src = null;
clearAvatar();
$('avataradjuster').style.display = 'none';
$('avatarfileselector').style.display = 'block';
}
function getAvatarDimension() {
var factor = jQuery('#slider').slider('option', 'value');
var cw = jQuery('#widgetparent').width();
var ch = jQuery('#widgetparent').height();
var iw = jQuery('#avatarimage').width();
var ih = jQuery('#avatarimage').height();
var minw = 48;
var minh = 48;
var midw = Math.min(Math.max(iw, 48), cw);
var midh = Math.min(Math.max(ih, 48), ch);
var maxw = Math.max(Math.max(iw, 48), cw);
var maxh = Math.max(Math.max(ih, 48), ch);
var minr = Math.max(minw / iw, minh / ih);
var midr = Math.max(midw / iw, midh / ih);
var maxr = Math.max(maxw / iw, maxh / ih);
if (factor <= 50) {
r = (minr * (50 - factor) + midr * factor) / 50;
}
else {
r = (midr * (100 - factor) + maxr * (factor - 50)) / 50;
}
var aw = r * iw;
var ah = r * ih;
var al = (cw - aw) / 2;
var at = (ch - ah) / 2;
var sd = getSelectorDimention();
if (aw > cw) al = (cw - aw) / (cw - sd.width) * sd.left;
if (ah > ch) at = (ch - ah) / (ch - sd.height) * sd.top;
return { left: Math.floor(al), top: Math.floor(at), width: Math.floor(aw), height: Math.floor(ah) };
}
function clearAvatar() {
var canvas = $('avatarcanvas');
var cw = canvas.width;
var ch = canvas.height;
var ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, cw, ch);
}
function refreshAvatarCanvas(uiposition) {
var canvas = $('avatarcanvas');
var cw = canvas.width;
var ch = canvas.height;
var ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, cw, ch);
var ad = getAvatarDimension();
var iw = jQuery('#avatarimage').width();
var ih = jQuery('#avatarimage').height();
var img = $('avatarimage');
ctx.drawImage(img, 0, 0, iw, ih, ad.left, ad.top, ad.width, ad.height);
var sd = getSelectorDimention();
if (uiposition) {
sd.left = uiposition.left;
sd.top = uiposition.top;
}
ctx.fillStyle = "rgba(0,0,0,0.6)";
ctx.fillRect(0, 0, cw, sd.top);
ctx.fillRect(sd.left + sd.width, sd.top, cw - sd.left - sd.width, ch - sd.top);
ctx.fillRect(0, sd.top + sd.height, sd.left + sd.width, ch - sd.top - sd.height);
ctx.fillRect(0, sd.top, sd.left, sd.height);
}
function getSelectorDimention() {
var sl = Math.ceil(jQuery('#selector').position().left);
var st = Math.ceil(jQuery('#selector').position().top);
var sw = jQuery('#selector').width();
var sh = jQuery('#selector').height();
return { left: sl, top: st, width: sw, height: sh };
}
function forceSelectorInsideAvatar() {
var sd = getSelectorDimention();
var ad = getAvatarDimension();
if (sd.width > ad.width) jQuery('#selector').width(ad.width);
if (sd.height > ad.height) jQuery('#selector').height(ad.height);
sd = getSelectorDimention();
if (sd.left < ad.left) jQuery('#selector').css('left', ad.left);
if (sd.top < ad.top) jQuery('#selector').css('top', ad.top);
if (sd.left + sd.width > ad.left + ad.width) jQuery('#selector').css('left', ad.left + ad.width - sd.width);
if (sd.top + sd.height > ad.top + ad.height) jQuery('#selector').css('top', ad.top + ad.height - sd.height);
refreshAvatarCanvas();
}
function saveAvatar() {
var img = $('avatarimage');
var sd = getSelectorDimention();
var ad = getAvatarDimension();
var rl = (sd.left - ad.left) / ad.width;
var rt = (sd.top - ad.top) / ad.height;
var rw = sd.width / ad.width;
var rh = sd.height / ad.height;
var iw = jQuery('#avatarimage').width();
var ih = jQuery('#avatarimage').height();
var sl = rl * iw;
var st = rt * ih;
var sw = rw * iw;
var sh = rh * ih;
var tw = sw;
var th = sh;
if (sw > 200 || sh > 250) {
var r = Math.max(sw / 200, sh / 250);
tw = Math.floor(sw / r);
th = Math.floor(sh / r);
}
var canvas = document.createElement('canvas');
canvas.width = tw;
canvas.height = th;
var ctx = canvas.getContext("2d");
ctx.fillStyle = 'white';
ctx.fillRect(0, 0, tw, th);
ctx.drawImage(img, sl, st, sw, sh, 0, 0, tw, th);
var dataURL = canvas.toDataURL("image/jpeg");
jQuery('#avatar1').val(dataURL.substr(dataURL.indexOf(",") + 1));
var tw = sw;
var th = sh;
if (sw > 120 || sh > 120) {
var r = Math.max(sw / 120, sh / 120);
tw = Math.floor(sw / r);
th = Math.floor(sh / r);
}
var canvas = document.createElement('canvas');
canvas.width = tw;
canvas.height = th;
var ctx = canvas.getContext("2d");
ctx.fillStyle = 'white';
ctx.fillRect(0, 0, tw, th);
ctx.drawImage(img, sl, st, sw, sh, 0, 0, tw, th);
var dataURL = canvas.toDataURL("image/jpeg");
jQuery('#avatar2').val(dataURL.substr(dataURL.indexOf(",") + 1));
var mwh = Math.min(sw, sh);
if (sw > mwh) {
sl += Math.floor((sw - mwh) / 2);
sw = mwh;
}
if (sh > mwh) {
st += Math.floor((sh - mwh) / 2);
sh = mwh;
}
var tw = 48;
var th = 48;
var canvas = document.createElement('canvas');
canvas.width = tw;
canvas.height = th;
var ctx = canvas.getContext("2d");
ctx.fillStyle = 'white';
ctx.fillRect(0, 0, tw, th);
ctx.drawImage(img, sl, st, sw, sh, 0, 0, tw, th);
var dataURL = canvas.toDataURL("image/jpeg");
jQuery('#avatar3').val(dataURL.substr(dataURL.indexOf(",") + 1));
var src = $('avatarform').action;
$('avatarform').action = window.location.href.replace('index.php?m=user&a=camera', 'index.php?m=user&a=rectavatar&base64=yes');
$('avatarform').target = 'rectframe';
}
function refreshAvatarCanvasForDisplay() {
var img = $('avatarimage');
var canvas = $('avatardisplaycanvas');
var ctx = canvas.getContext("2d");
var sd = getSelectorDimention();
var ad = getAvatarDimension();
var rl = (sd.left - ad.left) / ad.width;
var rt = (sd.top - ad.top) / ad.height;
var rw = sd.width / ad.width;
var rh = sd.height / ad.height;
var iw = jQuery('#avatarimage').width();
var ih = jQuery('#avatarimage').height();
var sl = rl * iw;
var st = rt * ih;
var sw = rw * iw;
var sh = rh * ih;
var tw = sw;
var th = sh;
if (sw > 200 || sh > 250) {
var r = Math.max(sw / 200, sh / 250);
tw = Math.floor(sw / r);
th = Math.floor(sh / r);
}
var ctl = 10;
var ctt = 10;
ctx.drawImage(img, sl, st, sw, sh, ctl, ctt, tw, th);
ctl += 20 + tw;
var tw = sw;
var th = sh;
if (sw > 120 || sh > 120) {
var r = Math.max(sw / 120, sh / 120);
tw = Math.floor(sw / r);
th = Math.floor(sh / r);
}
ctx.drawImage(img, sl, st, sw, sh, ctl, ctt, tw, th);
ctl += 20 + tw;
var tw = 48;
var th = 48;
var mwh = Math.min(sw, sh);
if (sw > mwh) {
sl += Math.floor((sw - mwh) / 2);
sw = mwh;
}
if (sh > mwh) {
st += Math.floor((sh - mwh) / 2);
sh = mwh;
}
ctx.drawImage(img, sl, st, sw, sh, ctl, ctt, tw, th);
ctx.fillStyle = "black";
ctx.font = "bold 16px Arial";
ctx.fillText('上传成功!', dwidth - 160, 155);
ctx.fillStyle = "grey";
ctx.font = "bold 12px Arial";
ctx.fillText('以上是您头像的三种尺寸', dwidth - 200, 180);
}
function rectAvatarDone(res) {
if (!res) return;
if (res == 'success') {
jQuery('#avatardisplayer').show();
refreshAvatarCanvasForDisplay();
jQuery('#avataradjuster').hide();
jQuery('#avatarfileselector').hide();
} else if (res == 'failure') {
alert('上传失败');
}
}

View File

13
uc_server/js/avatar/jquery-ui.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2
uc_server/js/avatar/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

178
uc_server/js/calendar.js Normal file
View File

@@ -0,0 +1,178 @@
var controlid = null;
var currdate = null;
var startdate = null;
var enddate = null;
var yy = null;
var mm = null;
var hh = null;
var ii = null;
var currday = null;
var addtime = false;
var today = new Date();
var lastcheckedyear = false;
var lastcheckedmonth = false;
function loadcalendar() {
s = '';
s += '<div id="calendar" style="display:none; position:absolute;z-index:100;" onclick="_cancelBubble(event)">';
s += '<iframe id="calendariframe" frameborder="0" style="height:200px; z-index: 110; position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"></iframe>';
s += '<div style="padding:5px; width: 210px; border: 1px solid #B5CFD9; background:#F2F9FD; position: absolute; z-index: 120">';
s += '<table cellspacing="0" cellpadding="0" width="100%" style="text-align: center;" class="table1">';
s += '<thead>';
s += '<tr align="center" id="calendar_week">';
s += '<th><a href="###" onclick="refreshcalendar(yy, mm-1)" title="上一月">《</a></th>';
s += '<th colspan="5" style="text-align: center"><a href="###" onclick="showdiv(\'year\');_cancelBubble(event)" title="点击选择年份" id="year"></a>&nbsp; - &nbsp;<a id="month" title="点击选择月份" href="###" onclick="showdiv(\'month\');_cancelBubble(event)"></a></th>';
s += '<th><A href="###" onclick="refreshcalendar(yy, mm+1)" title="下一月">》</A></th>';
s += '</tr>';
s += '<tr id="calendar_header"><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>';
s += '</thead>';
s += '<tbody>';
for(var i = 0; i < 6; i++) {
s += '<tr>';
for(var j = 1; j <= 7; j++)
s += "<td id=d" + (i * 7 + j) + " height=\"19\">0</td>";
s += "</tr>";
}
s += '<tr id="hourminute"><td colspan="7" align="center"><input type="text" size="2" value="" id="hour" onKeyUp=\'this.value=this.value > 23 ? 23 : zerofill(this.value);controlid.value=controlid.value.replace(/\\d+(\:\\d+)/ig, this.value+"$1")\'> 点 <input type="text" size="2" value="" id="minute" onKeyUp=\'this.value=this.value > 59 ? 59 : zerofill(this.value);controlid.value=controlid.value.replace(/(\\d+\:)\\d+/ig, "$1"+this.value)\'> 分</td></tr>';
s += '</tbody>';
s += '</table></div></div>';
s += '<div id="calendar_year" onclick="_cancelBubble(event)" style="display: none; z-index: 130;" class="calendarmenu"><div class="col" style="float: left; margin-right: 5px;">';
for(var k = 1930; k <= 2019; k++) {
s += k != 1930 && k % 10 == 0 ? '</div><div style="float: left; margin-right: 5px;">' : '';
s += '<a href="###" onclick="refreshcalendar(' + k + ', mm);$(\'calendar_year\').style.display=\'none\'"><span' + (today.getFullYear() == k ? ' class="bold"' : '') + ' id="calendar_year_' + k + '">' + k + '</span></a><br />';
}
s += '</div></div>';
s += '<div id="calendar_month" onclick="_cancelBubble(event)" style="display: none; padding: 3px; z-index: 140" class="calendarmenu">';
for(var k = 1; k <= 12; k++) {
s += '<a href="###" onclick="refreshcalendar(yy, ' + (k - 1) + ');$(\'calendar_month\').style.display=\'none\'; "><span' + (today.getMonth()+1 == k ? ' class="bold"' : '') + ' id="calendar_month_' + k + '">' + k + ( k < 10 ? '&nbsp;' : '') + ' 月</span></a><br />';
}
s += '</div>';
var div = document.createElement('div');
div.innerHTML = s;
$('append').appendChild(div);
_attachEvent(document, 'click', function() {
$('calendar').style.display = 'none';
$('calendar_year').style.display = 'none';
$('calendar_month').style.display = 'none';
});
$('calendar').onclick = function(e) {
e = is_ie ? event : e;
_cancelBubble(e);
$('calendar_year').style.display = 'none';
$('calendar_month').style.display = 'none';
}
}
function parsedate(s) {
/(\d+)\-(\d+)\-(\d+)\s*(\d*):?(\d*)/.exec(s);
var m1 = (RegExp.$1 && RegExp.$1 > 1899 && RegExp.$1 < 2101) ? parseFloat(RegExp.$1) : today.getFullYear();
var m2 = (RegExp.$2 && (RegExp.$2 > 0 && RegExp.$2 < 13)) ? parseFloat(RegExp.$2) : today.getMonth() + 1;
var m3 = (RegExp.$3 && (RegExp.$3 > 0 && RegExp.$3 < 32)) ? parseFloat(RegExp.$3) : today.getDate();
var m4 = (RegExp.$4 && (RegExp.$4 > -1 && RegExp.$4 < 24)) ? parseFloat(RegExp.$4) : 0;
var m5 = (RegExp.$5 && (RegExp.$5 > -1 && RegExp.$5 < 60)) ? parseFloat(RegExp.$5) : 0;
/(\d+)\-(\d+)\-(\d+)\s*(\d*):?(\d*)/.exec("0000-00-00 00\:00");
return new Date(m1, m2 - 1, m3, m4, m5);
}
function settime(d) {
$('calendar').style.display = 'none';
$('calendar_month').style.display = 'none';
controlid.value = yy + "-" + zerofill(mm + 1) + "-" + zerofill(d) + (addtime ? ' ' + zerofill($('hour').value) + ':' + zerofill($('minute').value) : '');
}
function showcalendar(addtime1, startdate1, enddate1) {
e = is_ie ? event : showcalendar.caller.arguments[0];
controlid1 = is_ie ? e.srcElement : e.target;
controlid = controlid1;
addtime = addtime1;
startdate = startdate1 ? parsedate(startdate1) : false;
enddate = enddate1 ? parsedate(enddate1) : false;
currday = controlid.value ? parsedate(controlid.value) : today;
hh = currday.getHours();
ii = currday.getMinutes();
var p = getposition(controlid);
$('calendar').style.display = 'block';
$('calendar').style.left = p['x']+'px';
$('calendar').style.top = (p['y'] + 20)+'px';
_cancelBubble(e);
refreshcalendar(currday.getFullYear(), currday.getMonth());
if(lastcheckedyear != false) {
$('calendar_year_' + lastcheckedyear).className = '';
$('calendar_year_' + today.getFullYear()).className = 'bold';
}
if(lastcheckedmonth != false) {
$('calendar_month_' + lastcheckedmonth).className = '';
$('calendar_month_' + (today.getMonth() + 1)).className = 'bold';
}
$('calendar_year_' + currday.getFullYear()).className = 'error bold';
$('calendar_month_' + (currday.getMonth() + 1)).className = 'error bold';
$('hourminute').style.display = addtime ? '' : 'none';
lastcheckedyear = currday.getFullYear();
lastcheckedmonth = currday.getMonth() + 1;
}
function refreshcalendar(y, m) {
var x = new Date(y, m, 1);
var mv = x.getDay();
var d = x.getDate();
var dd = null;
yy = x.getFullYear();
mm = x.getMonth();
$("year").innerHTML = yy;
$("month").innerHTML = mm + 1 > 9 ? (mm + 1) : '0' + (mm + 1);
for(var i = 1; i <= mv; i++) {
dd = $("d" + i);
dd.innerHTML = "&nbsp;";
dd.className = "";
}
while(x.getMonth() == mm) {
dd = $("d" + (d + mv));
dd.innerHTML = '<a href="###" onclick="settime(' + d + ');return false">' + d + '</a>';
if(x.getTime() < today.getTime() || (enddate && x.getTime() > enddate.getTime()) || (startdate && x.getTime() < startdate.getTime())) {
dd.className = 'grey';
} else {
dd.className = '';
}
if(x.getFullYear() == today.getFullYear() && x.getMonth() == today.getMonth() && x.getDate() == today.getDate()) {
dd.className = 'bold';
dd.firstChild.title = '今天';
}
if(x.getFullYear() == currday.getFullYear() && x.getMonth() == currday.getMonth() && x.getDate() == currday.getDate()) {
dd.className = 'error bold';
}
x.setDate(++d);
}
while(d + mv <= 42) {
dd = $("d" + (d + mv));
dd.innerHTML = "&nbsp;";
d++;
}
if(addtime) {
$('hour').value = zerofill(hh);
$('minute').value = zerofill(ii);
}
}
function showdiv(id) {
var p = getposition($(id));
$('calendar_' + id).style.left = p['x']+'px';
$('calendar_' + id).style.top = (p['y'] + 16)+'px';
$('calendar_' + id).style.display = 'block';
}
function zerofill(s) {
var s = parseFloat(s.toString().replace(/(^[\s0]+)|(\s+$)/g, ''));
s = isNaN(s) ? 0 : s;
return (s < 10 ? '0' : '') + s.toString();
}
window.onload = function() {
loadcalendar();
}

148
uc_server/js/common.js Normal file
View File

@@ -0,0 +1,148 @@
var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
function $(id) {
return document.getElementById(id);
}
Array.prototype.push = function(value) {
this[this.length] = value;
return this.length;
}
function getcookie(name) {
var cookie_start = document.cookie.indexOf(name);
var cookie_end = document.cookie.indexOf(";", cookie_start);
return cookie_start == -1 ? '' : unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length)));
}
function setcookie(cookieName, cookieValue, seconds, path, domain, secure) {
seconds = seconds ? seconds : 8400000;
var expires = new Date();
expires.setTime(expires.getTime() + seconds);
document.cookie = escape(cookieName) + '=' + escape(cookieValue)
+ (expires ? '; expires=' + expires.toGMTString() : '')
+ (path ? '; path=' + path : '/')
+ (domain ? '; domain=' + domain : '')
+ (secure ? '; secure' : '');
}
function _attachEvent(obj, evt, func) {
if(obj.addEventListener) {
obj.addEventListener(evt, func, false);
} else if(obj.attachEvent) {
obj.attachEvent("on" + evt, func);
}
}
function _cancelBubble(e, returnValue) {
if(!e) return ;
if(is_ie) {
if(!returnValue) e.returnValue = false;
e.cancelBubble = true;
} else {
e.stopPropagation();
if(!returnValue) e.preventDefault();
}
}
function checkall(name) {
var e = is_ie ? event : checkall.caller.arguments[0];
obj = is_ie ? e.srcElement : e.target;
var arr = document.getElementsByName(name);
var k = arr.length;
for(var i=0; i<k; i++) {
arr[i].checked = obj.checked;
}
}
function getposition(obj) {
var r = new Array();
r['x'] = obj.offsetLeft;
r['y'] = obj.offsetTop;
while(obj = obj.offsetParent) {
r['x'] += obj.offsetLeft;
r['y'] += obj.offsetTop;
}
return r;
}
function addMouseEvent(obj){
var checkbox,atr,ath,i;
atr=obj.getElementsByTagName("tr");
for(i=0;i<atr.length;i++){
atr[i].onclick=function(){
ath=this.getElementsByTagName("th");
checkbox=this.getElementsByTagName("input")[0];
if(!ath.length && checkbox.getAttribute("type")=="checkbox"){
if(this.className!="currenttr"){
this.className="currenttr";
checkbox.checked=true;
}else{
this.className="";
checkbox.checked=false;
}
}
}
}
}
if(is_ie) document.documentElement.addBehavior("#default#userdata");
function setdata(key, value){
if(is_ie){
document.documentElement.load(key);
document.documentElement.setAttribute("value", value);
document.documentElement.save(key);
return document.documentElement.getAttribute("value");
} else {
sessionStorage.setItem(key,value);
}
}
function getdata(key){
if(is_ie){
document.documentElement.load(key);
return document.documentElement.getAttribute("value");
} else {
return sessionStorage.getItem(key) && sessionStorage.getItem(key).toString().length == 0 ? '' : (sessionStorage.getItem(key) == null ? '' : sessionStorage.getItem(key));
}
}
function form_option_selected(obj, value) {
for(var i=0; i<obj.options.length; i++) {
if(obj.options[i].value == value) {
obj.options[i].selected = true;
}
}
}
function switchcredit(obj, value) {
var creditsettings = credit[value];
var s = '<select name="credit' + obj + '">';
for(var i in creditsettings) {
s += '<option value="' + creditsettings[i][0] + '">' + creditsettings[i][1] + '</option>';
}
s += '</select>';
$(obj).innerHTML = s;
}
function setselect(selectobj, value) {
var len = selectobj.options.length;
for(i = 0;i < len;i++) {
if(selectobj.options[i].value == value) {
selectobj.options[i].selected = true;
}
}
}
function show(id, display) {
if(!$(id)) return false;
if(display == 'auto') {
$(id).style.display = $(id).style.display == '' ? 'none' : '';
} else {
$(id).style.display = display;
}
}

1
uc_server/js/index.htm Normal file
View File

@@ -0,0 +1 @@

216
uc_server/js/pm_editor.js Normal file
View File

@@ -0,0 +1,216 @@
var userAgent = navigator.userAgent.toLowerCase();
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
function isUndefined(variable) {
return typeof variable == 'undefined' ? true : false;
}
function $(id) {
return document.getElementById(id);
}
function fetchOffset(obj) {
var left_offset = obj.offsetLeft;
var top_offset = obj.offsetTop;
while((obj = obj.offsetParent) != null) {
left_offset += obj.offsetLeft;
top_offset += obj.offsetTop;
}
return { 'left' : left_offset, 'top' : top_offset };
}
function _attachEvent(obj, evt, func) {
if(obj.addEventListener) {
obj.addEventListener(evt, func, false);
} else if(obj.attachEvent) {
obj.attachEvent("on" + evt, func);
}
}
function strlen(str) {
return (is_ie && str.indexOf('\n') != -1) ? str.replace(/\r?\n/g, '_').length : str.length;
}
var menus = new menu_handler();
function menu_handler() {
this.menu = Array();
}
function menuitems() {
this.ctrlobj = null,
this.menuobj = null;
this.parentids = Array();
this.allowhide = 1;
this.hidelock = 0;
this.clickstatus = 0;
}
function menuobjpos(id, offset) {
if(!menus.menu[id]) {
return;
}
if(!offset) {
offset = 0;
}
var showobj = menus.menu[id].ctrlobj;
var menuobj = menus.menu[id].menuobj;
showobj.pos = fetchOffset(showobj);
showobj.X = showobj.pos['left'];
showobj.Y = showobj.pos['top'];
showobj.w = showobj.offsetWidth;
showobj.h = showobj.offsetHeight;
menuobj.w = menuobj.offsetWidth;
menuobj.h = menuobj.offsetHeight;
if(offset < 3) {
menuobj.style.left = (showobj.X + menuobj.w > document.body.clientWidth) && (showobj.X + showobj.w - menuobj.w >= 0) ? showobj.X + showobj.w - menuobj.w + 'px' : showobj.X + 'px';
menuobj.style.top = offset == 1 ? showobj.Y + 'px' : (offset == 2 || ((showobj.Y + showobj.h + menuobj.h > document.documentElement.scrollTop + document.documentElement.clientHeight) && (showobj.Y - menuobj.h >= 0)) ? (showobj.Y - menuobj.h) + 'px' : showobj.Y + showobj.h + 'px');
} else if(offset == 3) {
menuobj.style.left = (document.body.clientWidth - menuobj.clientWidth) / 2 + document.body.scrollLeft + 'px';
menuobj.style.top = (document.body.clientHeight - menuobj.clientHeight) / 2 + document.body.scrollTop + 'px';
} else if(offset == 4) {
menuobj.style.left = (showobj.X + menuobj.w > document.body.clientWidth) && (showobj.X + showobj.w - menuobj.w >= 0) ? showobj.X + showobj.w - menuobj.w + 'px' : showobj.X + showobj.w + 'px';
menuobj.style.top = showobj.Y + 'px';
}
if(menuobj.style.clip && !is_opera) {
menuobj.style.clip = 'rect(auto, auto, auto, auto)';
}
}
function showmenu(event, id, click, position) {
if(isUndefined(click)) click = false;
if(!menus.menu[id]) {
menus.menu[id] = new menuitems();
menus.menu[id].ctrlobj = $(id);
if(!menus.menu[id].ctrlobj.getAttribute('parentmenu')) {
menus.menu[id].parentids = Array();
} else {
menus.menu[id].parentids = menus.menu[id].ctrlobj.getAttribute('parentmenu').split(',');
}
menus.menu[id].menuobj = $(id + '_menu');
menus.menu[id].menuobj.style.position = 'absolute';
if(event.type == 'mouseover') {
_attachEvent(menus.menu[id].ctrlobj, 'mouseout', function() { setTimeout(function() {hidemenu(id)}, 100); });
_attachEvent(menus.menu[id].menuobj, 'mouseover', function() { lockmenu(id, 0); });
_attachEvent(menus.menu[id].menuobj, 'mouseout', function() { lockmenu(id, 1);setTimeout(function() {hidemenu(id)}, 100); });
} else if(click || event.type == 'click') {
menus.menu[id].clickstatus = 1;
lockmenu(id, 0);
}
} else if(menus.menu[id].clickstatus == 1) {
lockmenu(id, 1);
hidemenu(id);
menus.menu[id].clickstatus = 0;
return;
}
menuobjpos(id, position);
menus.menu[id].menuobj.style.display = '';
}
function hidemenu(id) {
if(!menus.menu[id] || !menus.menu[id].allowhide || menus.menu[id].hidelock) {
return;
}
menus.menu[id].menuobj.style.display = 'none';
}
function lockmenu(id, value) {
if(!menus.menu[id]) {
return;
}
for(i = 0;i < menus.menu[id].parentids.length;i++) {
menus.menu[menus.menu[id].parentids[i]].hidelock = value == 0 ? 1 : 0;
}
menus.menu[id].allowhide = value;
}
var lang = new Array();
function insertunit(text, textend, moveend) {
$('pm_textarea').focus();
textend = isUndefined(textend) ? '' : textend;
moveend = isUndefined(textend) ? 0 : moveend;
startlen = strlen(text);
endlen = strlen(textend);
if(!isUndefined($('pm_textarea').selectionStart)) {
var opn = $('pm_textarea').selectionStart + 0;
if(textend != '') {
text = text + $('pm_textarea').value.substring($('pm_textarea').selectionStart, $('pm_textarea').selectionEnd) + textend;
}
$('pm_textarea').value = $('pm_textarea').value.substr(0, $('pm_textarea').selectionStart) + text + $('pm_textarea').value.substr($('pm_textarea').selectionEnd);
if(!moveend) {
$('pm_textarea').selectionStart = opn + strlen(text) - endlen;
$('pm_textarea').selectionEnd = opn + strlen(text) - endlen;
}
} else if(document.selection && document.selection.createRange) {
var sel = document.selection.createRange();
if(textend != '') {
text = text + sel.text + textend;
}
sel.text = text.replace(/\r?\n/g, '\r\n');
if(!moveend) {
sel.moveStart('character', -endlen);
sel.moveEnd('character', -endlen);
}
sel.select();
} else {
$('pm_textarea').value += text;
}
}
function getSel() {
if(!isUndefined($('pm_textarea').selectionStart)) {
return $('pm_textarea').value.substr($('pm_textarea').selectionStart, $('pm_textarea').selectionEnd - $('pm_textarea').selectionStart);
} else if(document.selection && document.selection.createRange) {
return document.selection.createRange().text;
} else if(window.getSelection) {
return window.getSelection() + '';
} else {
return false;
}
}
function insertlist(type) {
txt = getSel();
type = isUndefined(type) ? '' : '=' + type;
if(txt) {
var regex = new RegExp('([\r\n]+|^[\r\n]*)(?!\\[\\*\\]|\\[\\/?list)(?=[^\r\n])', 'gi');
txt = '[list' + type + ']\n' + txt.replace(regex, '$1[*]') + '\n' + '[/list]';
insertunit(txt);
} else {
insertunit('[list' + type + ']\n', '[/list]');
while(listvalue = prompt(lang['pm_prompt_list'], '')) {
if(is_opera > 8) {
listvalue = '\n' + '[*]' + listvalue;
insertunit(listvalue);
} else {
listvalue = '[*]' + listvalue + '\n';
insertunit(listvalue);
}
}
}
}
function inserttag(tag, type) {
txt = getSel();
type = isUndefined(type) ? 0 : type;
if(!type) {
if(!txt) {
txt = prompt(lang['pm_prompt_' + tag], '')
}
if(txt) {
insertunit('[' + tag + ']' + txt + '[/' + tag + ']');
}
} else {
txt1 = prompt(lang['pm_prompt_' + tag], '');
if(!txt) {
txt = txt1;
}
if(txt1) {
insertunit('[' + tag + '=' + txt1 + ']' + txt + '[/' + tag + ']');
}
}
}