/*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"; //////////////////////////////////////////////////////////////////// // CFileViewControl function CFileViewControl(px){ // elements var el_control=px.el_control; var el_fileboard=null; function show(){ el_control.classList.remove("fvc-hide"); enable(); }; function hide(){ el_control.classList.add("fvc-hide"); disable(); }; function enable(){ el_control.classList.remove("fvc-disable"); }; function disable(){ el_control.classList.add("fvc-disable"); }; function setPicture(data){ el_fileboard.style["background-image"]="url("+data.dataurl+")"; }; function clearFile(){ el_fileboard.style["background-image"]="none"; // dispatch event el_control.dispatchEvent(new Event("fileviewclear")); }; function init(){ // build droparea var el_checkboard=document.createElement("div"); el_checkboard.className="fvc-checkboard"; el_fileboard=document.createElement("div"); el_fileboard.className="fvc-fileboard"; var el_close=document.createElement("div"); el_close.className="fvc-close"; el_close.classList.add("sbc-control"); el_close.setAttribute("tabindex","0"); el_control.appendChild(el_checkboard); el_control.appendChild(el_fileboard); el_control.appendChild(el_close); CSvgBtnControl({ el_control:el_close, btntype:"x" }); // events el_close.addEventListener("click",function(e){ clearFile(); }); // call base class CUiControl({ el_control:el_control }); }; init(); return { show:show, hide:hide, enable:enable, disable:disable, setPicture:setPicture }; };