/*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 CFinpControl(px){ // elements var el_control=px.el_control; var el_overlay=null; var el_dialog=null; var el_input=null; // parameters var inival=(px.inival!==undefined)?px.inival:""; // callbacks var isValidKey=px.isValidKey?px.isValidKey:function(key){return true;}; var normalize=px.normalize?px.normalize:function(val){return val;}; var displayVal=px.displayVal?px.displayVal:function(val){return val;}; // variables var value=null; // viewport offset function vpOffset(el){ var rect=el.getBoundingClientRect(); return { x:rect.left, y:rect.top }; }; function getValue(){ return value; }; function setValue(val){ value=val; el_control.innerHTML=displayVal(val); }; function copyStyle(el_src,el_des,ls){ var style=window.getComputedStyle(el_src); for(var i=0;imaxval)){v=minval} if((minval!=null)&&(vmaxval)){v=maxval} if((minval!=null)&&(v50% var q=xy.x+2*xy.y; l=(100-q)/2+50; s=q?(xy.x/q*100):0; }else{ // lightness<=50% l=(100-xy.y)/(xy.x/100+1); s=l?xy.x:0; } return{s:s,l:l}; }; function slToXY(sl){ var x; var y; if(sl.l>50){ // lightness>50% var vx=100-(sl.l-50)*2; var vy=100-sl.l; x=vx*sl.s/100; y=vy*(100-sl.s)/100; }else{ // lightness<=50% x=sl.s; y=100-sl.l*(1+x/100); } return {x:x,y:y}; }; function getValue(){ var val=xyToSL(fcl.getValue()); val.h=hue; return val; }; function setValue(val){ hue=val.h; fcl.setValue(slToXY(val)); }; function setHue(h){ hue=h; el_sat.style.background="linear-gradient("+ "to right,white,hsl("+h+",100%,50%))"; }; function createFillDiv(){ var el=document.createElement("div"); el.style.position="absolute"; el.style.top="0"; el.style.bottom="0"; el.style.left="0"; el.style.right="0"; return el; }; function setupLgnDiv(){ el_lgn.style.background="linear-gradient("+ "to bottom,rgba(0,0,0,0),rgba(0,0,0,1))"; }; function setupSatDiv(){ setHue(hue); }; function init(){ // setup divs setupLgnDiv(); setupSatDiv(); // call base object px.el_control=el_sarea; px.inival=slToXY(px.inival); fcl=CSAreaControl(px); // events el_sarea.addEventListener("change",function(e){ var val=xyToSL(e.detail); val.h=hue; el_control.dispatchEvent(new CustomEvent( "change",{detail:val})); }); // call base class CUiControl({ el_control:el_control }); }; init(); return { getValue:getValue, setValue:setValue, setHue:setHue }; }; "use strict"; var CColorTool={ getReResult:function(color){ return(/^([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i.exec(color)) }, isColorStr:function(color){ return!!this.getReResult(color); }, hexToRgb:function(hex){ var result=this.getReResult(hex); return result?{ r:parseInt(result[1],16), g:parseInt(result[2],16), b:parseInt(result[3],16) }:null; }, rgbToHex:function(rgb){ return( String("00"+(rgb.r).toString(16)).slice(-2)+ String("00"+(rgb.g).toString(16)).slice(-2)+ String("00"+(rgb.b).toString(16)).slice(-2)).toUpperCase(); }, hslToRgb:function(hsl){ var h=hsl.h/360; var s=hsl.s/100; var l=hsl.l/100; var rgb; if(s==0){ rgb={r:l,g:l,b:l}; }else{ function toRgb(p,q,t){ if(t<0){t+=1;} if(t>1){t-=1;} if(t<1/6){return p+(q-p)*6*t;} if(t<1/2){return q;} if(t<2/3){return p+(q-p)*(2/3-t)*6;} return p; }; var q=(l<0.5)?(l*(1+s)):(l+s-l*s); var p=2*l-q; rgb={r:toRgb(p,q,h+1/3),g:toRgb(p,q,h),b:toRgb(p,q,h-1/3)}; }; rgb.r=Math.round(rgb.r*255); rgb.g=Math.round(rgb.g*255); rgb.b=Math.round(rgb.b*255); return rgb; }, rgbToHsl:function(rgb){ var r=rgb.r/255; var g=rgb.g/255; var b=rgb.b/255; var max=Math.max(r,g,b); var min=Math.min(r,g,b); var h,s,l=(max+min)/2; var d=max-min; if(d==0){ h=s=0; }else{ s=(l>0.5)?(d/(2-max-min)):(d/(max+min)); switch(max){ case r:h=(g-b)/d+(g