﻿// supports: TextBoxExtender.cs
// requires: common.js
// tocommon

function filterPasswordInput(e) {
    // allow [0-9], [A-Z] and [a-z]
    if (e.which == 8 || e.which == 27 || e.which == 46
        || (e.which >= 48 && e.which <= 57)
        || (e.which >= 65 && e.which <= 90)
        || (e.which >= 97 && e.which <= 121)) {
        return true;
    }
    e.preventDefault();
    return false;
}

function adjustTargetLength(source, target) {
    var eSource = document.getElementById(source); if (!eSource) return;
    var eTarget = document.getElementById(target); if (!eTarget) return;
    if (!eSource.value || eSource.value.length == 0) {
        eTarget.value = '';
    }
    else if (eSource.value.length < eTarget.value.length) {
        eTarget.value = eTarget.value.substring(0, eSource.value.length);
    }
}

function maskPassword(e, eHidden, subst) {
    var element = document.getElementById(e); if (!element) return;
    var elementHidden;
    if (eHidden)
        elementHidden = document.getElementById(eHidden);

    if (subst.length == 0)
        subst = String.fromCharCode(8226); // bullet ('•')
    var replace = element.value + subst;
    element.value = element.value + subst;
    if (element.value.length == 0) {
        if (elementHidden)
            elementHidden.value = "";
        return;
    }
    window.event.preventDefault();
}

function mirrorPasswordInput(event, target) {
    var key = event.which||event.charCode||event.keyCode;
    if (isKeyArrow(key) || isKeySilent(key)) {
        event.preventDefault();
        return;
    }
    if (!filterPasswordInput(event)) return;
    var eTarget = document.getElementById(target); if (!eTarget) return;
    var value = eTarget.value;
    if (!value)
        value == "";
    var c = String.fromCharCode(key);
    value = value + c;
    eTarget.value = value;
}
