﻿window.ComponentArt_MaskedInput_Transforms.AmexCSV =
{
    'validate': function (maskedInput) {
        // Ensure the unmasked edited text has exactly 4 digits:
        return this.unmask(maskedInput).length === 4;
    },
    'unmask': function (maskedInput) {
        return maskedInput.masked.value;
    },
    'mask': function (maskedInput) {
        return maskedInput.unmasked.value;
    }
}

window.ComponentArt_MaskedInput_Transforms.VisaMasterCSV =
{
    'validate': function (maskedInput) {
        // Ensure the unmasked edited text has exactly 3 digits:
        return this.unmask(maskedInput).length === 3;
    },
    'unmask': function (maskedInput) {
        return maskedInput.masked.value;
    },
    'mask': function (maskedInput) {
        return maskedInput.unmasked.value;
    }
}

window.ComponentArt_MaskedInput_Transforms.Password =
{
    'validate': function (maskedInput) {
        // Ensure the unmasked edited text has exactly 3 digits:
        return this.unmask(maskedInput).length >= 3;
    },
    'unmask': function (maskedInput) {
        return maskedInput.masked.value;
    },
    'mask': function (maskedInput) {
        return maskedInput.unmasked.value;
    }
}

window.ComponentArt_MaskedInput_Transforms.Username =
{
    'validate': function (maskedInput) {
        // Ensure the unmasked edited text has exactly 3 digits:
        return this.unmask(maskedInput).length >= 5;
    },
    'unmask': function (maskedInput) {
        return maskedInput.masked.value;
    },
    'mask': function (maskedInput) {
        return maskedInput.unmasked.value;
    }
}

function setCreditCard(type) {
    switch (type) {
        case 'Visa':
        case 'MC':
            InputCreditCard.beginUpdate();
            InputCreditCard.set_emptyText('0000 0000 0000 0000');
            InputCreditCard.set_transform('CreditCard_VisaMasterCard');
            InputCreditCard.endUpdate();
            CSV.beginUpdate();
            CSV.set_emptyText('000');
            CSV.set_transform('VisaMasterCSV');
            CSV.endUpdate();
            break;
        case 'AmEx':
            InputCreditCard.beginUpdate();
            InputCreditCard.set_emptyText('0000 000000 00000');
            InputCreditCard.set_transform('CreditCard_AmEx');
            InputCreditCard.endUpdate();
            CSV.beginUpdate();
            CSV.set_emptyText('0000');
            CSV.set_transform('AmexCSV');
            CSV.endUpdate();
            break;
    }
}   