/*js
//==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>==>>>
//
// CssHidex v1.16 [ Commercial Version ]
// Copyright (c) phpkobo.com ( http://www.phpkobo.com/ )
// Email : admin@phpkobo.com
// ID : HDXCS-116
// URL : http://www.phpkobo.com/csshidex
//
//==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<==<<<
*/
////////////////////////////////////////////////////////////////////
// $shorthands
function $(selector,el_ref){
return (el_ref?el_ref:document).querySelector(selector);
};
function $$(selector,el_ref){
return (el_ref?el_ref:document).querySelectorAll(selector);
};
function $id(id){
return document.getElementById(id);
};
function $ce(tagName){
return document.createElement(tagName);
};
////////////////////////////////////////////////////////////////////
// jQuery.offset
function jqOffset(el){
var rect=el.getBoundingClientRect();
var el_body=document.documentElement;
return {
x:rect.left+el_body.scrollLeft,
y:rect.top+el_body.scrollTop
};
};
////////////////////////////////////////////////////////////////////
// ajaxCall
function ajaxCall(url_server,requ,callback,auxproc,errproc){
const xhr=new XMLHttpRequest();
xhr.open("POST",url_server,true);
xhr.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded; charset=UTF-8");
xhr.addEventListener("load",function(){
if (xhr.status==200){
let str=xhr.responseText;
const sig="[!json!]";
const pos=str.indexOf(sig);
if(pos!=-1){
if(pos>0){
const pretext=str.substr(0,pos);
if(errproc){errproc("SBL",pretext);}
}
str=str.substr(pos+sig.length);
const resp=JSON.parse(str);
if (resp.result=="OK"){
if(callback){callback(resp);}
}else{
if(errproc){errproc("NOR",resp.result);}
}
}else{
if(errproc){errproc("SMS",str);}
}
}else{
let s="";
s+="status:"+xhr.status+"\n";
s+="statusText:"+xhr.statusText;
if(errproc){errproc("N2H",s);}
}
});
if(auxproc){auxproc(xhr);}
xhr.send("requ="+encodeURIComponent(JSON.stringify(requ)));
return xhr;
};
////////////////////////////////////////////////////////////////////
// protect a webpage form drag-and-drop
function preventFileDrop(){
document.addEventListener("dragover",function(e){
e.preventDefault();
});
document.addEventListener("drop",function(e){
e.preventDefault();
});
};
preventFileDrop();
////////////////////////////////////////////////////////////////////
// end events
function onEnd(el,callback,ename){
const func=function(e){
if(el==e.srcElement){
el.removeEventListener(ename,func);
if(callback){callback(e);}
}
};
el.addEventListener(ename,func);
};
function onTransitionEnd(el,callback){
onEnd(el,callback,"transitionend");
};
function onAnimationEnd(el,callback){
onEnd(el,callback,"animationend");
};
////////////////////////////////////////////////////////////////////
// createElementFromHTML
function createElementFromHTML(html){
const el=document.createElement("div");
el.innerHTML=html;
return el.firstElementChild;
}
////////////////////////////////////////////////////////////////////
// browser detection
function isSafari(){
return (window.safari!==undefined);
};
function isFireFox(){
return (navigator.userAgent.toLowerCase().indexOf('firefox')>-1);
};
function isIE(){
var ua=window.navigator.userAgent;
var msie=ua.indexOf("MSIE ");
// Trident/7.0; rv:11.0
return ((msie>0)||!!ua.match(/Trident.*rv\:11\./));
};
////////////////////////////////////////////////////////////////////
// send enter & space to click
function esToClick(el){
el.addEventListener("keydown",function(e){
if((e.key=="Enter")||(e.key==" ")){
e.preventDefault();
this.click();
}
});
return el;
};
"use strict";
function CUiControl(px){
var el_control=px.el_control;
function enable(){
el_control.classList.remove("uic-disable");
};
function disable(){
el_control.classList.add("uic-disable");
};
function init(){
enable();
};
init();
return {
enable:enable,
disable:disable
};
};
"use strict";
function CSvgBtnControl(px){
// elements
var el_control=px.el_control;
// parameters
var btntype=px.btntype?px.btntype:"check";
// function closures
var fcl=null;
// button data
var btndata={
"check":{
scale:20,
code:`
`},
"x":{
scale:25,
code:`
`},
"threedots":{
scale:20,
code:`
`},
"threelines":{
scale:20,
code:`
`},
"folder":{
scale:20,
code:`
`}
};
function setBtn(btntype){
el_control.innerHTML=btndata[btntype].code;
var el_svg=el_control.querySelector(".sbc-svg");
var scale=btndata[btntype].scale;
el_svg.style.top=el_svg.style.bottom=
el_svg.style.left=el_svg.style.right=scale+"%";
if(px.style){
for(var key in px.style){
el_control.style[key]=px.style[key];
}
}
};
function init(){
setBtn(btntype);
// events
var style_focus=true;
el_control.addEventListener("pointerdown",function(e){
style_focus=false;
});
el_control.addEventListener("click",function(e){
style_focus=true;
});
el_control.addEventListener("keydown",function(e){
if((e.key=="Enter")||(e.key==" ")){
e.preventDefault();
this.click();
}
});
el_control.addEventListener("focus",function(e){
if(style_focus){
el_control.classList.add("sbc-focus");
}
});
el_control.addEventListener("blur",function(e){
el_control.classList.remove("sbc-focus");
});
// call base class
fcl=CUiControl({
el_control:el_control
});
};
init();
return fcl;
};
"use strict";
////////////////////////////////////////////////////////////////////
// CAlertBandControl
function CAlertBandControl(px){
// elements
var el_control=px.el_control;
var el_box=null;
var el_msg=null;
function setupBoxColor(bgcolor){
if(bgcolor===undefined){return;}
var cname;
switch(bgcolor){
case "black":
case "white":
case "red":
case "green":
case "blue":
el_box.classList.add("abc-box-"+bgcolor);
break;
default:
el_box.style.background=bgcolor;
break;
}
};
function open(msg,bgcolor){
if(bgcolor!==undefined){
setupBoxColor(bgcolor);
}
el_msg.innerHTML=msg;
el_control.classList.remove("abc-hide");
};
function close(){
el_control.classList.add("abc-hide");
};
function init(){
// build alertband
var el_radiate=document.createElement("div");
el_radiate.className="abc-radiate";
var el_close=document.createElement("div");
el_close.className="abc-close";
el_close.classList.add("sbc-control");
el_close.setAttribute("tabindex","0");
if(0){
var el_side_left=document.createElement("div");
el_side_left.className="abc-side";
}
el_msg=document.createElement("div");
el_msg.className="abc-msg";
var el_side_right=document.createElement("div");
el_side_right.className="abc-side";
el_side_right.appendChild(el_close);
var el_tbl=document.createElement("div");
el_tbl.className="abc-tbl";
if(0){
el_tbl.appendChild(el_side_left);
}
el_tbl.appendChild(el_msg);
el_tbl.appendChild(el_side_right);
el_box=document.createElement("div");
el_box.className="abc-box";
el_box.appendChild(el_radiate);
el_box.appendChild(el_tbl);
el_control.classList.add("abc-hide");
el_control.appendChild(el_box);
CSvgBtnControl({
el_control:el_close,
btntype:"x",
style:{
color:"white",
background:"rgba(255,255,255,.3)"
}
});
// events
el_control.addEventListener("click",function(e){
close();
el_control.dispatchEvent(new Event("alertbandend"));
});
el_close.addEventListener("click",function(e){
e.stopPropagation();
el_control.click();
});
// call base class
CUiControl({
el_control:el_control
});
};
init();
return {
open:open,
close:close
};
};