// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-3.0

window.addEventListener("load", function() {

    // Get list of inline code elements
    var codes = document.getElementsByClassName("inline-code");
    for (var i = 0; i < codes.length; i++) {

        var code = codes[i];
        var input = code.getElementsByTagName("input")[0];

        // Select all in input when clicked
        input.onclick = function(e) {
            var event = e || window.event;
            var target = event.target || event.srcElement;
            inputSelectAll(target);
        }

        // Add clipboard icon
        // TODO doesn't work on IE8 and below

        var themes = ["dark", "light"];
        for (var j = 0; j < themes.length; j++) {

            var base = "/assets/icons/" + themes[j] + "-mode/";

            var svg = document.createElement("source");
            svg.type = "image/svg+xml";
            svg.srcset = base + "copy.svg";

            //var img = document.createElement("img");
            var img = new Image();
            img.style.zIndex = "3";
            img.className = "inline-code-icon inline-code-icon-end " + themes[j];
            img.setAttribute("data-theme", themes[j]);
            img.src = base + "copy.png";
            img.alt = "Clipboard Icon";
            img.title = "Copy to clipboard";
            img.onclick = function(e) {
                var event = e || window.event;
                var target = event.target || event.srcElement;

                copyInputText(
                    target.parentElement.parentElement.getElementsByTagName('input')[0],
                    target,
                    target.getAttribute("data-theme")
                );
            };

            var picture = document.createElement("picture");
            picture.appendChild(svg);
            picture.appendChild(img);

            code.appendChild(picture);

        }
    }

}, false);

function copyInputText(input, clipboardIcon, theme) {

    inputSelectAll(input);

    var path;
    if (document.execCommand("copy")) {
        path = "/assets/icons/" + theme + "-mode/";
    } else {
        console.log("no"); // TODO X icon
    }

    clipboardIcon.src = path + "check.svg";
    clipboardIcon.previousSibling.srcset = path + "check.png";

    inputDeselect(input);

    setTimeout(function() {
        clipboardIcon.src = path + "copy.svg";
        clipboardIcon.previousSibling.srcset = path + "copy.png";
    }, 1000);

}

function inputSelectAll(input) {
    input.focus();
    if (input.select) input.select();
    else input.setSelectionRange(0, this.value.length);
}

function inputDeselect(input) {
    if (input.blur) input.blur();
    else input.setSelectionRange(0, 0);
}

// @license-end
