﻿function HTMLPurify(strHTML) {
    var rtn = "";
    strHTML = DOMPurify.sanitize(strHTML.trim(), { USE_PROFILES: { html: false, mathMl: false, svg: false } });
    rtn = strHTML.toString()
        .replace(/&amp;/g, "&")
        .replace(/&quot;/g, "\"")
        .replace(/&lt;/g, "<")
        .replace(/&gt;/g, ">")
        .replace(/&rsquo;/g, "'")
        .replace(/&apos;/g, "'")
        .replace(/&#/g, "");
    return rtn;
}

function denticonEncrypt(plainText) {
    if (plainText === undefined || plainText === null) {
        plainText = "";
    }
    var secretKey = $('#hidAesSecretkey').val();
    var key = CryptoJS.enc.Utf8.parse(secretKey);
    var iv = CryptoJS.enc.Utf8.parse(secretKey);

    var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(plainText), key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });

    return encrypted.toString();
}

function denticonDecrypt(cipherText) {
    var secretKey = $('#hidAesSecretkey').val();
    var key = CryptoJS.enc.Utf8.parse(secretKey);
    var iv = CryptoJS.enc.Utf8.parse(secretKey);
    var decrypted = CryptoJS.AES.decrypt(cipherText, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    return decrypted.toString(CryptoJS.enc.Utf8);
}

function isValidBase64(str) {
    let strArry = str.split(",")

    if (strArry.length < 2) {
        return false;
    }

    try {
        atob(strArry[1]);
        return true;
    } catch (e) {
        return false;
    }
}
