//<script>

//**************************************************************************************************
//                                                                                                 *
//                          BIBLIOTECA PARA MANIPULAÇÃO DE TIPOS DE DADOS                          *
//                                     VERSÃO 10.03.30.15.00                                       *
//                                                                                                 *
//**************************************************************************************************

Number.MIN_INT = -999999999999999;
Number.MAX_INT = 999999999999999;
Number.MIN_DEC = -999999999999999.9;
Number.MAX_DEC = 999999999999999.9;

Date.days = new Array("Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado");
Date.shortDays = new Array("Domingo", "2ª-feira", "3ª-feira", "4ª-feira", "5ª-feira", "6ª-feira", "Sábado");
Date.months = new Array("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro");
Date.MIN_VALUE = new Date(1000, 1, 1, 0, 0, 0, 0);
Date.MAX_VALUE = new Date(9999, 11, 31, 23, 59, 59, 999);

//**************************************************************************************************
function isArray(value) {
    try {
        if ((value == undefined) || (value == null)) return false;
        return (value.constructor.toString().match("Array") != null);
    }
    catch(e) {
        throw "cltdat.js: isArray()__" + (e.message || e);
    }
}

//**************************************************************************************************
function isDate(value, min, max) {
    try {
        if ((value == undefined) || (value == null)) return false;
        if (value.constructor == Date) {
            if (!isDate(min)) min = Date.MIN_VALUE;
            if (!isDate(max)) max = Date.MAX_VALUE;
            return (min <= value) && (max >= value);
        }
        return false;
    }
    catch(e) {
        throw "cltdat.js: isDate()__" + (e.message || e);
    }
}

//**************************************************************************************************
function isDecimal(value, min, max) {
    try {
        if ((value == undefined) || (value == null)) return false;
        if (value.constructor == Number) {
            if (!isDecimal(min)) min = Number.MIN_DEC;
            if (!isDecimal(max)) max = Number.MAX_DEC;
            return (min <= value) && (max >= value);
        }
        return false;
    }
    catch(e) {
        throw "cltdat.js: isDecimal()__" + (e.message || e);
    }
}

//**************************************************************************************************
function isInteger(value, min, max) {
    try {
        if ((value == undefined) || (value == null)) return false;
        if (value.constructor == Number) {
            if (parseInt(value, 10) == value) {
                if (!isNumber(min)) min = Number.MIN_INT;
                if (!isNumber(max)) max = Number.MAX_INT;
                return (min <= value) && (max >= value);
            }
        }
        return false;
    }
    catch(e) {
        throw "cltdat.js: isInteger()__" + (e.message || e);
    }
}

//**************************************************************************************************
function isNumber(value) {
    try {
        if ((value == undefined) || (value == null)) return false;
        return (value.constructor == Number);
    }
    catch(e) {
        throw "cltdat.js: isNumber()__" + (e.message || e);
    }
}

//**************************************************************************************************
function isString(value) {
    try {
        if ((value == undefined) || (value == null)) return false;
        if (value.constructor == String) {
            if (arguments.length > 1) {
                for (var loop = 1; loop < arguments.length; loop++) {
                    if (isString(arguments[loop])) {
                        if (value.toLowerCase() == arguments[loop].toLowerCase()) return true;
                    }
                }
                return false;
            }
            return true;
        }
        else return false;
    }
    catch(e) {
        throw "cltdat.js: isString()__" + (e.message || e);
    }
}

//**************************************************************************************************
function toString(value) {
    try {
        if ((value == undefined) || (value == "undefined") || (value == null)) return "";
        return (((typeof(value) != "number") && (typeof(value) != "string")) ? "" : ("" + value).toString());
    }
    catch(e) {
        throw "cltdat.js: toString()__" + (e.message || e);
    }
}

//</script>
