﻿/// <reference path="jquery-1.3.2.js" />

var dateValidationPattern = /^\d{1,2}\/\d{1,2}\/(\d{2}|\d{4})$/;

function GetVal(id) {
    return $("#" + id).val();
}
function GetTrimmedVal(id) {
    return $.trim($("#" + id).val());
}
function GetEl(id) {
    return $("#" + id)[0];
}
function Exists(id) {
    return $("#" + id).length > 0;
}
function AppendLine(source, text) {
    return source + text + "<br />";
}

function ValInputTextEmpty(id) {
    if ($.trim($("#" + id).val()) == "") {
        return false;
    }
    return true;
}
function ValSelectIncludingFirst(id) {
    if (GetEl(id).selectedIndex >= 0) {
        return true;
    }
    return false;
}
function ValSelectExcludingFirst(id) {
    if (GetEl(id).selectedIndex > 0) {
        return true;
    }
    return false;
}
function ValRadioButtonList(id) {
    var i = 0;
    var idRbt = id + "_" + i;
    var rbt;
    while (Exists(idRbt)) {
        rbt = GetEl(idRbt);
        if (rbt.checked) {
            return true;
        }
        i++;
        idRbt = id + "_" + i;
    }
    return false;
}
function GetRadioButtonListVal(id) {
    var i = 0;
    var idRbt = id + "_" + i;
    var val;
    var rbt;
    while (Exists(idRbt)) {
        rbt = GetEl(idRbt);
        if (rbt.checked) {
            return rbt.value;
        }
        i++;
        idRbt = id + "_" + i;
    }
    return null;
}
function ValNumbers(id) {
    var numbers = /^\d+$/;
    return numbers.test($.trim($("#" + id).val()));
}
function ValDecimalNumbers(id, maxDecimalLength) {
    var numbers = new RegExp("^\\d+(\\.\\d{1," + maxDecimalLength + "}){0,1}$");
    return numbers.test($.trim($("#" + id).val()));
}
function ValDecimalNumbersVal(val, maxDecimalLength) {
    if (maxDecimalLength === undefined) {
        maxDecimalLength = "999";
    }
    var numbers = new RegExp("^\\d+(\\.\\d{1," + maxDecimalLength + "}){0,1}$");
    return numbers.test($.trim(val));
}
function ValNumbersVal(val) {
    var numbers = /^\d+$/;
    return numbers.test(val);
}
function ValNumbersAndLetters(id) {
    var numbersAndLetters = /^[a-zA-Z0-9]+$/;
    return numbersAndLetters.test($.trim($("#" + id).val()));
}
function ValNumbersAndLetters(id, minLength) {
    var numbersAndLetters = new RegExp("^[a-zA-Z0-9]{" + minLength + ",}$");
    return numbersAndLetters.test($.trim($("#" + id).val()));
}
function ValNumbersAndLettersVal(val, minLength) {
    var numbersAndLetters = new RegExp("^[a-zA-Z0-9]{" + minLength + ",}$");
    return numbersAndLetters.test(val);
}
function ValEmailAddress(id) {
    var emailAddress = /^(([\w-\s]+)|([\w-]+(?:\.[\w-]+)*)|([\w-\s]+)([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
    return emailAddress.test($.trim($("#" + id).val()));
}
function ValEmailAddressVal(val) {
    var emailAddress = /^(([\w-\s]+)|([\w-]+(?:\.[\w-]+)*)|([\w-\s]+)([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
    return emailAddress.test(val);
}
function ValDate(id) {
    return dateValidationPattern.test($.trim($("#" + id).val()));
}
function ValDateVal(val) {
    return dateValidationPattern.test(val);
}
function ValDateVal2(val, oDate) {
    if (!dateValidationPattern.test(val)) {
        if (oDate) {
            oDate.isValid = false;
        }
        return false;
    }
    var datePositions = {
        day: 1,
        month: 0,
        year: 2
    };
    try {
        var splitDate = val.split("/");
        var year = Number(splitDate[datePositions.year]);
        var month = Number(splitDate[datePositions.month]) - 1;
        var day = Number(splitDate[datePositions.day]);
        var auxDate = new Date(year, month, day, 0, 0, 0, 0);
        if (auxDate.getFullYear() === year && auxDate.getMonth() === month && auxDate.getDate() === day) {
            if (oDate) {
                oDate.value = auxDate;
                oDate.isValid = true;
            }
            return true;
        }
        else {
            if (oDate) {
                oDate.value = auxDate;
                oDate.isValid = false;
            }
            return false;
        }
    }
    catch (e) {
        if (oDate) {
            oDate.isValid = false;
        }
        return false;
    }
}
