VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/vendor/keeview/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/vendor/keeview/jsform.js
'use strict'

window.FormClass = {

    openUrlInNewTab: function (url) {     // must exec in "onclick" event
        window.open(url, "_blank");
    },

    form_post_newtab : function (url, params) {
        form_post(url, params, "_blank");
    },

    form_post : function (url, params, target) {
        var form = document.createElement("form");
        if (params === undefined) {
            params = [];
            target = null;
        }
        else if (target === undefined) {
            target = null;
        }
        var hiddenField;
        var i;

        form.setAttribute("method", "post");
        form.setAttribute("action", url);
        if (target != null) form.setAttribute("target", target);

        for (i = 0; i < params.length; i++) {
            hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", params[i][0]);
            hiddenField.setAttribute("value", params[i][1]);
            form.appendChild(hiddenField);
        }
        document.body.appendChild(form);
        form.submit();
    },

    unpackString : function (params) {
        var xlen, hlen, data;
        if (params.offset === undefined) params.offset = 0;
        xlen = parseInt(param.text.substr(params.offset, 1), 16);
        params.offset += 1;
        hlen = parseInt(param.text.substr(params.offset, xlen), 16);
        params.offset += xlen;
        data = param.text.substr(params.offset, hlen);
        params.offset += hlen;
        return data;
    },

    parseArray_o : function (params) {
        var i, len, code, data;
        code = params.text.substr(params.offset, 1);
        params.offset += 1;
        if (code == "v") {
            return EncodingClass.utf8.decode(FormClass.unpackString(params));
        }
        if (code == "a") {
            len = parseInt(FormClass.unpackString(params), 10);
            data = [];
            for (i = 0; i < len; i++) {
                data.push(FormClass.parseArray_o(params));
            }
            return data;
        }
        return null;
    },

    parseArray : function (str) {
        return parseArray_o({text: str, offset: 0});
    },

    urlencode : function (str) {

        str = (str + '');

        return encodeURIComponent(str)
        .replace(/!/g, '%21')
        .replace(/'/g, '%27')
        .replace(/\(/g, '%28')
        .replace(/\)/g, '%29')
        .replace(/\*/g, '%2A')
        .replace(/%20/g, '+');
    },

    queue: function (n) {
        var r, i, x = [];
        for (i = 0; i < n; i++) x.push(null);
        r = {
            list: [],
            buffer: x,
        }
        r.call = function (r) {
            return function (tparams) {
                r.list.push(tparams);
            }
        }(r);
        r.release = function (r) {
            return function () {
                r.list = null;
                r.buffer = null;
            };
        }(r);
        r.thread = function(r) {
            return function () {
                var i, j, c, x, t;
                if ((r.buffer != null) && (r.list != null)) {
                    if (r.list.length > 0) {
                        c = 0;
                        for (i = 0; i < r.buffer.length; i++) {
                            if (r.buffer[i] == null) {
                                c = 1;
                                break;
                            }
                        }
                        if (c > 0) {
                            for (i = 0; i < r.buffer.length; i++) {
                                if (r.buffer[i] == null) {
                                    r.buffer[i] = r.list[0].func;
                                    r.list[0].func = function(i) {
                                        return function (success, message) {
                                            var t;
                                            if (r.buffer != null) {
                                                t = r.buffer[i];
                                                r.buffer[i] = null;
                                                if (t != null) t(success, message);
                                            }
                                        }
                                    }(i);
                                    t = r.list.shift();
                                    FormClass.api_call(t);
                                    if (r.list.length == 0) break;
                                }
                            }
                        }
                    }
                    setTimeout(function() {r.thread();}, 10);
                }
            }
        }(r);
        setTimeout(function() {r.thread();}, 10);
        return r;
    },

    api_call : function (calldata) {
        var st;
        var i, k;
        var boundary;
        var index, url, params, fileuploads, func;
        var lp;
        var x = {
            req: null,
            func: calldata.func
        };

        params = calldata.params;
        if (window.session !== undefined && window.isApp){
            params.push({name: "session", value: window.session});
        }
        if ((FormClass.prefix === undefined) || (calldata.url.indexOf("://") >= 0)) {
            url = calldata.url;
        }
        else if (EncodingClass.type.isString(FormClass.prefix)) {
            if (FormClass.prefix.length > 0) {
                lp = FormClass.prefix.substr(FormClass.prefix.length - 1, 1);
                if (lp == "/") {
                    url = FormClass.prefix + calldata.url;
                }
                else {
                    url = FormClass.prefix + "/" + calldata.url;
                }
            }
            else {
                url = calldata.url;
            }
        }
        else {
            url = calldata.url;
        }
        if (calldata.fileuploads !== undefined) {
            fileuploads = calldata.fileuploads;
        }
        else {
            fileuploads = [];
        }
        try {
            x.req = new XMLHttpRequest();
        } catch (e) {
            try {
                x.req = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    x.req = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (oc) {
                    alert("No AJAX Support");
                    return;
                }
            }
        }

        if (calldata.retry === undefined) calldata.retry = 3;
        if (!EncodingClass.type.isNumber(calldata.retry)) calldata.retry = 3;

        x.req.onreadystatechange = function (x, calldata) {
            return function () {
                var getraw = false;
                if (calldata.rawcontent === true) getraw = true;
                if (x.req.readyState == 4) {
                    if (x.req.status == 200) {
                        if (!getraw) {
                            x.func(true, x.req.responseText);
                        }
                        else {
                            var byteArray = new Uint8Array(x.req.response);
                            var chars, code, i, isUCS2, len, _i;

                            //var string = new TextDecoder("utf-8").decode(byteArray);
                            var string = "";//String.fromCharCode.apply(null, Array.prototype.slice.apply(byteArray));
                            len = byteArray.length;
                            for (i = 0; i < len; i++) {
                                string += String.fromCharCode(byteArray[i]); //String.fromCharCode.apply(null, Array.prototype.slice.apply([byteArray[i]]));
                            }
                            x.func(true, string);
                            /*
                            chars = [];
                            isUCS2 = false;
                            for (i = _i = 0; 0 <= len ? _i < len : _i > len; i = 0 <= len ? ++_i : --_i) {
                                code = String.prototype.charCodeAt.call(string, i);
                                if (code > 255) {
                                    isUCS2 = true;
                                    chars = null;
                                    break;
                                } else {
                                    chars.push(code);
                                }
                            }
                            if (isUCS2 === true) {
                                x.func(true, unescape(encodeURIComponent(string)));
                            } else {
                                //x.func(true, new TextDecoder("utf-8").decode(chars));
                                x.func(true, String.fromCharCode.apply(null, Array.prototype.slice.apply(chars)));
                            }
                            */
                        }
                    }
                    else if ((x.req.status == 0) && (calldata.retry > 0)) {
                        calldata.retry -= 1;
                        console.log("network connection failed, retry (" + calldata.retry + ") in 2 secs");
                        setTimeout(function (calldata) {
                            return function () {
                                FormClass.api_call(calldata);
                            }
                        } (calldata), 2000);
                    }
                    else if (x.req.statusText != "") {
                        x.func(false, "Response Code: " + x.req.status + " / " + x.req.statusText);
                    }
                    else {
                        x.func(false, "Response Code: " + x.req.status);
                    }
                }
            }
        }(x, calldata);

        if ((params.length > 0) || (fileuploads.length > 0)) {
            x.req.open("POST", url, true);
            if (calldata.cors === true) {
                //x.req.setRequestHeader("Access-Control-Allow-Origin", "*");
            }
            if (calldata.withCredentials === true) {
                x.req.withCredentials = true;
            }
            i = ((new Date()).getTime());
            boundary = i + EncodingClass.md5.encode(i);
            x.req.setRequestHeader("Content-type", "multipart/form-data; boundary=" + boundary);
            st = "";
            for (i = 0; i < params.length; i++) {
                st += "--" + boundary + "\r\n";
                st += "Content-Disposition: form-data; ";
                st += "name=\"" + EncodingClass.utf8.encode(params[i].name) + "\"\r\n\r\n";
                st += EncodingClass.utf8.encode(params[i].value) + "\r\n";
            }
            for (i = 0; i < fileuploads.length; i++) {
                st += "--" + boundary + "\r\n";
                st += "Content-Disposition: form-data; ";
                st += "name=\"" + EncodingClass.utf8.encode(fileuploads[i].name) + "\"; filename=\"" + EncodingClass.utf8.encode(fileuploads[i].filename) + "\"\r\n\r\n";
                st += fileuploads[i].content + "\r\n";
            }
            st += "--" + boundary + "--\r\n";
            var nBytes = st.length, ui8Data = new Uint8Array(nBytes);
            for (var nIdx = 0; nIdx < nBytes; nIdx++) {
                ui8Data[nIdx] = st.charCodeAt(nIdx) & 0xff;
            }
            if (calldata.rawcontent === true) x.req.responseType = "arraybuffer";
            x.req.send(ui8Data);
        }
        else {
            x.req.open("GET", url, true);
            if (calldata.cors === true) {
                //x.req.setRequestHeader("Access-Control-Allow-Origin", "*");
            }
            if (calldata.withCredentials === true) {
                x.req.withCredentials = true;
            }
            if (calldata.rawcontent === true) x.req.responseType = "arraybuffer";
            x.req.send(null);
        }
    },

    convertFileToFunctionString: function() {
        var x = DOMElement.input({
            attrs: {
                type: "file",
                multiple: true
            }
        });
        var convertfunc = function (flist, tf) {
            var i, n;
            if (flist.length == 0) return;
            var f = new FileReader();
            var filehandle = flist.shift();
            f.onload = function (flist, tf, filehandle) {
                return function (e) {
                    var st;
                    var i, k, n;
                    n = e.target.result.length;
                    st = "function () {\r\n";
                    st += "var s = \"\";\r\n";
                    for (i = 0; i < n; i = k) {
                        k = i + 96;
                        if (k > n) k = n;
                        st += "s += \"" + EncodingClass.base64.encode(e.target.result.substr(i, k - i)) + "\";\r\n";
                    }
                    st += "return EncodingClass.base64.decode(s);\r\n";
                    st += "}();";
                    FormClass.saveAsText(filehandle.name + ".txt", st);
                    setTimeout(function (flist, tf) {
                        return function () {
                            tf(flist, tf);
                        }
                    } (flist, tf), 100);
                };
            } (flist, tf, filehandle);
            f.readAsBinaryString(filehandle);
        }
        var submitbutton = DOMElement.input({
            attrs: {
                type: "submit",
                value: "Convert",
                onclick: function (inputElement, func) {
                    return function (event, me) {
                        var i, n = inputElement.files.length;
                        var flist = [];
                        if (n == 0) return;
                        for (i = 0; i < n; i++) {
                            flist.push(inputElement.files[i]);
                        }
                        setTimeout(function (func, flist) {
                            return function () {func(flist, func);}
                        } (func, flist), 100);
                        ModalElement.close();
                    }
                } (x, convertfunc)
            },
        });
        ModalElement.showWindow({
            title: "convert file",
            bodycontent: DOMElement.table({
                data: [[
                    x,
                    {style: {width: "20px", height: "28px"}},
                    submitbutton
                ]]
            })
        });
    },

    raw2blob: function (content, contentType, filename) {
        if (contentType === undefined) contentType = "application/octet-binary";
        if (!EncodingClass.type.isString(contentType)) contentType = "application/octet-binary";
        var blob = new Blob(content, {type: contentType});
        blob.lastModifiedDate = new Date();
        if (filename !== undefined) {
            if (EncodingClass.type.isString(filename)) {
                blob.name = filename;
            }
        }
        return blob;
    },

    rawText2blob: function (textcontent, contentType, filename) {
        var nBytes = textcontent.length;
        var x = new ArrayBuffer(nBytes);
        var ui8Data = new Uint8Array(x);
        for (var nIdx = 0; nIdx < nBytes; nIdx++) {
            ui8Data[nIdx] = textcontent.charCodeAt(nIdx) & 0xff;
        }
        return FormClass.raw2blob([new DataView(x)], contentType, filename);
    },

    text2blob: function (textcontent, filename) {
        return FormClass.rawText2blob(EncodingClass.utf8.encode(textcontent), "plain/text", filename);
    },

    saveAsRawText: function (filename, textcontent) {
        var nBytes = textcontent.length;
        var x = new ArrayBuffer(nBytes);
        var ui8Data = new Uint8Array(x);
        for (var nIdx = 0; nIdx < nBytes; nIdx++) {
            ui8Data[nIdx] = textcontent.charCodeAt(nIdx) & 0xff;
        }
        return FormClass.saveAsRaw(filename, [new DataView(x)]);
    },

    saveAsText: function (filename, textcontent) {
        return FormClass.saveAsRawText(filename, EncodingClass.utf8.encode(textcontent));
    },

    saveAs: function (filename, content) {
        var nBytes = content.length;
        var x = new ArrayBuffer(nBytes);
        var ui8Data = new Uint8Array(x);
        for (var nIdx = 0; nIdx < nBytes; nIdx++) {
            ui8Data[nIdx] = content[nIdx] & 0xff;
        }
        return FormClass.saveAsRaw(filename, [new DataView(x)]);
    },

    saveAsRaw: function (filename, content) {
        var xurl = window.URL || window.webkitURL;
        if (xurl == null) return false;
        var blob = FormClass.raw2blob(content, "application/octet-binary", filename);
        var element = document.createElement('a');
        if (element == null) return false;
        element.setAttribute('href', xurl.createObjectURL(blob));
        element.setAttribute('download', filename);
        element.style.display = 'none';
        document.body.appendChild(element);
        element.click();
        document.body.removeChild(element);
        return true;
    },

    readFile: function (filehandle, callbackFunc) {
        var f = new FileReader();
        f.onload = function (callbackFunc, filehandle) {
            return function (e) {
                callbackFunc([{
                    name: filehandle.name,
                    type: filehandle.type,
                    size: filehandle.size,
                    lastModified: new Date(filehandle.lastModified),
                    content: e.target.result
                }]);
            };
        } (callbackFunc, filehandle);
        f.readAsBinaryString(filehandle);
    },

    readFileFromInput: function (inputElement, callbackFunc) {
        var rv, i, f;
        if (inputElement.files.length == 0) {
            callbackFunc([]);
            return;
        }
        if (inputElement.files.length == 1) {
            FormClass.readFile(inputElement.files[0], callbackFunc);
        }
        else {
            rv = [];
            for (i = 0; i < inputElement.files.length; i++) {
                rv.push(undefined);
            }
            for (i = 0; i < inputElement.files.length; i++) {
                FormClass.readFile(inputElement.files[i], function (rv, index, callbackFunc) {
                    return function (retval) {
                        var i;
                        rv[index] = retval[0];
                        for (i = 0; i < rv.length; i++) {
                            if (rv[i] === undefined) return;
                        }
                        callbackFunc(rv);
                    }
                } (rv, i, callbackFunc));
            }
        }
    },

    readSingleFile: function (callbackFunc, accept) {
        if (accept === undefined) accept = null;
        var fi = DOMElement.input({
            attrs: {
                type: "file",
                style: {display: "none"},
                accept: accept
            }
        });
        var x = function (element, callbackFunc) {
            return function (retval) {
                DOMElement.bodyElement.removeChild(element);
                return callbackFunc(retval);
            }
        } (fi, callbackFunc);
        fi.onchange = function (callbackFunc) {
            return function (event) {
                FormClass.readFileFromInput(this, callbackFunc);
            }
        } (x);
        DOMElement.bodyElement.appendChild(fi);
        fi.click();
    },

    readMultipleFiles: function (callbackFunc, accept) {
        if (accept === undefined) accept = null;
        var fi = DOMElement.input({
            attrs: {
                type: "file",
                style: {display: "none"},
                accept: accept,
                multiple: true
            }
        });
        var x = function (element, callbackFunc) {
            return function (retval) {
                DOMElement.bodyElement.removeChild(element);
                return callbackFunc(retval);
            }
        } (fi, callbackFunc);
        fi.onchange = function (callbackFunc) {
            return function (event) {
                FormClass.readFileFromInput(this, callbackFunc);
            }
        } (x);
        DOMElement.bodyElement.appendChild(fi);
        fi.click();
    },

    injectJS: function (iframeElement, content) {
        var iFrameHead = iframeElement.contentWindow.document.getElementsByTagName("head")[0];

        var myscript = iframeElement.contentWindow.document.createElement("script");
        //myscript.type = 'text/javascript';
        //myscript.src = 'myscript.js'; // replace this with your SCRIPT
        myscript.append(content);
        iFrameHead.appendChild(myscript);
    }

};
if (window.ModuleManagerClass !== undefined) {
    ModuleManagerClass.register({
        name: "FormClass",
        prerequisites: ["EncodingClass"]
    });
}
//# sourceURL=module:///src/jsform.php.js?

VaKeR 2022