function ForceList(Item) { return (Array.isArray(Item) ? Item : [Item]); }; function RndId() { return `${Date.now()}${Math.random() + Math.random()}`; }; function RndHtmlId(Tag) { return `Rnd-${Tag}-${RndId().replace('.', '-')}`; }; function UrlBase(Url) { var Lower = Url.toLowerCase(); var Domain = UrlDomain(Url); if (Lower.startsWith('https://')) { return `https://${Domain}`; } else { return `http://${Domain}`; }; }; function UrlDomain(Url) { if (_.some(['//', 'http://', 'https://'], function(Sub){ return Url.toLowerCase().startsWith(Sub); })) { return Url.split('//')[1].split('/')[0]; } else { return Url.split('/')[0]; }; }; function FuncName(Fun) { if (Fun) { Fun = Fun.toString(); var Name = Fun.split(' ')[1].split('(')[0].split('{')[0]; var Hash = Fun.hashCode(); return `f:${Name} (${Fun.hashCode()})`; }; }; function CallFun(f, a, b, c, d) { if (typeof(f) === 'function') { f(a, b, c, d); }; }; function LogDebug(Data, Status) { if (Debug) { var Caller; if (!Status) { Status = 'l'; }; for (var i=0; i