344 lines
5.8 KiB
JavaScript
344 lines
5.8 KiB
JavaScript
|
|
function unixtimeToYYYYMMDD(s) {
|
|
var n;
|
|
|
|
if(s)
|
|
n = new Date(s * 1000);
|
|
else
|
|
n = new Date();
|
|
|
|
var m = n.getMonth()+1;
|
|
var d = n.getDate();
|
|
|
|
return (n.getFullYear()) + "-" + (m < 10 ? ("0" + m) : m) + "-" + (d < 10 ? ("0" + d) : d);
|
|
}
|
|
|
|
function unixtimeToHHMMSS(s) {
|
|
var n;
|
|
|
|
if(s)
|
|
n = new Date(s * 1000);
|
|
else
|
|
n = new Date();
|
|
|
|
var h = n.getHours();
|
|
var m = n.getMinutes();
|
|
var s = n.getSeconds();
|
|
|
|
return (h < 10 ? ("0" + h) : h) + ":" + (m < 10 ? ("0" + m) : m) + ":" + (s < 10 ? ("0" + s) : s);
|
|
}
|
|
|
|
function checkTZ(z) {
|
|
if((new Date()).getTimezoneOffset())
|
|
return 0;
|
|
|
|
if(z)
|
|
console.log("Auto correct TimeZone");
|
|
|
|
return 12 * 60 * 60;
|
|
}
|
|
|
|
function setNodeText(nn, obj, idx, q) {
|
|
var n = null;
|
|
|
|
if(typeof q == "undefined")
|
|
q = 1;
|
|
|
|
switch(typeof nn) {
|
|
case "string":
|
|
n = document.getElementById(nn);
|
|
break;
|
|
|
|
case "object":
|
|
if(nn.nodeType != 1)
|
|
return console.log("Invalid node object");
|
|
|
|
n = nn;
|
|
|
|
break;
|
|
|
|
default:
|
|
return console.log("Invalid node type");
|
|
}
|
|
|
|
if(!n) {
|
|
if(q == 1)
|
|
return console.log("No node '" + nn + "'");
|
|
|
|
return;
|
|
}
|
|
|
|
if(!obj[idx])
|
|
return;
|
|
|
|
n.innerHTML = obj[idx];
|
|
|
|
return;
|
|
}
|
|
|
|
|
|
function dpst(no, p) {
|
|
var n = null;
|
|
|
|
do {
|
|
if(p.before) {
|
|
n = p.before;
|
|
break;
|
|
}
|
|
|
|
if(p.after) {
|
|
n = p.after;
|
|
break;
|
|
}
|
|
|
|
if(p.parn) {
|
|
n = p.parn;
|
|
break;
|
|
}
|
|
|
|
return;
|
|
} while(0);
|
|
|
|
if(typeof(n) == "string") {
|
|
n = document.getElementById(n);
|
|
|
|
if(!n)
|
|
return false;
|
|
}
|
|
|
|
if(n.nodeType !== 1) {
|
|
console.log("Invalid node type");
|
|
return false;
|
|
}
|
|
|
|
if(p.before) {
|
|
n.parentNode.insertBefore(no, n);
|
|
return true;
|
|
}
|
|
|
|
if(p.after) {
|
|
if(p.after.nextSibling)
|
|
n.parentNode.insertBefore(no, n.nextSibling);
|
|
else
|
|
n.parentNode.appendChild(no);
|
|
|
|
return true;
|
|
}
|
|
|
|
if(p.parn) {
|
|
n.appendChild(no);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function dcrt(p) {
|
|
var at = "";
|
|
var no = null;
|
|
var spc = {
|
|
"tag" : 1,
|
|
"html" : 1,
|
|
"parn" : 1,
|
|
"child" : 1,
|
|
"class" : 1,
|
|
|
|
"after" : 1,
|
|
"before" : 1,
|
|
|
|
"click" : 1,
|
|
"keyup" : 1,
|
|
"keypress" : 1,
|
|
"change" : 1,
|
|
"load" : 1,
|
|
|
|
"src" : 1
|
|
}
|
|
|
|
if(!p.tag) {
|
|
console.log("Empty .tag");
|
|
return null;
|
|
}
|
|
|
|
no = document.createElement(p.tag);
|
|
|
|
for(at in p) {
|
|
if(spc[at])
|
|
continue;
|
|
|
|
no.setAttribute(at, p[at]);
|
|
}
|
|
|
|
if(p.class)
|
|
no.className = p.class;
|
|
|
|
dpst(no, p);
|
|
|
|
if(p.html) {
|
|
no.innerHTML = p.html;
|
|
}
|
|
|
|
if(p.click) {
|
|
no.addEventListener("click", p.click, false);
|
|
}
|
|
|
|
if(p.keyup) {
|
|
no.addEventListener("keyup", p.keyup, false);
|
|
}
|
|
|
|
if(p.keypress) {
|
|
no.addEventListener("keypress", p.keypress, false);
|
|
}
|
|
|
|
if(p.change) {
|
|
no.addEventListener("change", p.change, false);
|
|
}
|
|
|
|
if(p.load) {
|
|
no.addEventListener("load", p.load, false);
|
|
// no.onload = p.load;
|
|
}
|
|
|
|
if(p.src) {
|
|
no.setAttribute("src", p.src);
|
|
// no.src = p.src;
|
|
}
|
|
|
|
if(!p.child)
|
|
return no;
|
|
|
|
var ch = null;
|
|
|
|
for(at = 0; at < p.child.length; at++) {
|
|
if(!p.child[at])
|
|
continue;
|
|
|
|
if(!p.child[at].nodeType)
|
|
ch = dcrt(p.child[at]);
|
|
else
|
|
ch = p.child[at]
|
|
|
|
if(!ch)
|
|
continue;
|
|
|
|
no.appendChild(ch);
|
|
}
|
|
|
|
return no;
|
|
}
|
|
|
|
class diag {
|
|
constructor(parm) {
|
|
this.buildBody(parm);
|
|
}
|
|
|
|
buildBody(parm) {
|
|
var top = 0.8 * (window.innerHeight- 480)/2;
|
|
var left = 1.0 * (window.innerWidth - 640)/2;
|
|
|
|
this.diagRoot = dcrt({
|
|
tag : "div",
|
|
parn : "body",
|
|
id : "diag",
|
|
style: "display:none; top:"+top+"px; left:"+left+"px;"
|
|
});
|
|
|
|
this.diagHead = dcrt({
|
|
tag : "div",
|
|
style: "position:absolute; top:0px; left:-2px; right:-2px; height:20px; background:#000; padding:10px; font-weight:bold;",
|
|
html : "DIALOG",
|
|
parn : this.diagRoot
|
|
});
|
|
|
|
this.diagBody = dcrt({
|
|
tag : "div",
|
|
style: "position:absolute; left:0; right:0; top:40px; bottom:40px; padding:6px; border:0px solid white;",
|
|
parn : this.diagRoot,
|
|
// child: parm.child
|
|
});
|
|
|
|
this.diagFloor= dcrt({
|
|
tag : "div",
|
|
style: "position:absolute; left:-2px; right:-2px; bottom:0px; height:20px; background:#000; padding:10px;",
|
|
parn : this.diagRoot
|
|
});
|
|
|
|
do {
|
|
if(!parm.head)
|
|
break;
|
|
|
|
if(!parm.head.html)
|
|
break;
|
|
|
|
this.diagHead.innerHTML = parm.head.html;
|
|
} while(0);
|
|
|
|
do {
|
|
if(!parm.body)
|
|
break;
|
|
|
|
if(!parm.body.node)
|
|
break;
|
|
|
|
parm.body.node.parn = this.diagBody;
|
|
|
|
dcrt(parm.body.node);
|
|
} while(0);
|
|
|
|
do {
|
|
if(!parm.floor)
|
|
break;
|
|
|
|
if(!parm.floor.node)
|
|
break;
|
|
|
|
parm.floor.node.parn = this.diagFloor;
|
|
|
|
dcrt(parm.floor.node);
|
|
} while(0);
|
|
|
|
this.diagHead.addEventListener('mousedown', this.diagDraggable.bind(this), false);
|
|
}
|
|
|
|
diagDraggable(e) {
|
|
var e = e || window.event;
|
|
|
|
if(window.diag)
|
|
window.diag.diagRoot.style.zIndex = 49;
|
|
|
|
window.diag = this;
|
|
|
|
this.diagInnerX = e.clientX + window.pageXOffset - this.diagRoot.offsetLeft;
|
|
this.diagInnerY = e.clientY + window.pageYOffset - this.diagRoot.offsetTop;
|
|
|
|
this.diagHandMove = this.diagMove .bind(this);
|
|
this.diagHandMouseUp = this.diagMouseUp.bind(this);
|
|
|
|
window.addEventListener('mousemove', this.diagHandMove , false);
|
|
window.addEventListener('mouseup' , this.diagHandMouseUp, true);
|
|
}
|
|
|
|
diagMouseUp(e) {
|
|
window.removeEventListener('mousemove', this.diagHandMove);
|
|
window.removeEventListener('mouseup' , this.diagHandMouseUp);
|
|
}
|
|
|
|
diagMove(e) {
|
|
this.diagRoot.style.zIndex = 50;
|
|
this.diagRoot.style.position = 'fixed';
|
|
this.diagRoot.style.left = e.clientX + window.pageXOffset - this.diagInnerX + 'px';
|
|
this.diagRoot.style.top = e.clientY + window.pageYOffset - this.diagInnerY + 'px';
|
|
}
|
|
|
|
show() {
|
|
this.diagRoot.style.display = "block";
|
|
}
|
|
|
|
hide() {
|
|
this.diagRoot.style.display = "none";
|
|
}
|
|
|
|
// CLASS
|
|
};
|
|
|