First commit
This commit is contained in:
220
uc_server/js/ajax.js
Normal file
220
uc_server/js/ajax.js
Normal 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]);
|
||||
}
|
||||
}
|
||||
}
|
320
uc_server/js/avatar/avatar.js
Normal file
320
uc_server/js/avatar/avatar.js
Normal 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;'> </div>");
|
||||
jQuery("#slider").append("<div style='position: absolute; top: -2px; left: 50px; width: 3px; height: 6px; background-color: black;'> </div>");
|
||||
jQuery("#slider").append("<div style='position: absolute; top: -2px; left: 100px; width: 3px; height: 6px; background-color: black;'> </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('上传失败');
|
||||
}
|
||||
}
|
0
uc_server/js/avatar/index.htm
Normal file
0
uc_server/js/avatar/index.htm
Normal file
13
uc_server/js/avatar/jquery-ui.min.js
vendored
Normal 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
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
178
uc_server/js/calendar.js
Normal 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> - <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 ? ' ' : '') + ' 月</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 = " ";
|
||||
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 = " ";
|
||||
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
148
uc_server/js/common.js
Normal 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
1
uc_server/js/index.htm
Normal file
@@ -0,0 +1 @@
|
||||
|
216
uc_server/js/pm_editor.js
Normal file
216
uc_server/js/pm_editor.js
Normal 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 + ']');
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user