function isEmail(email) {
    var at = "@";
    var dot = ".";
    var lat = email.indexOf(at);
    var lstr = email.length;
    var ldot = email.indexOf(dot);

    if (email.indexOf(at) == -1) { return false; }
    if (email.indexOf(at) == -1 || email.indexOf(at) == 0 || email.indexOf(at) == lstr) { return false; }
    if (email.indexOf(dot) == -1 || email.indexOf(dot) == 0 || email.indexOf(dot) == lstr) { return false; }
    if (email.indexOf(at, (lat + 1)) != -1) { return false; }
    if (email.substring(lat - 1, lat) == dot || email.substring(lat + 1, lat + 2) == dot) { return false; }
    if (email.indexOf(dot, (lat + 2)) == -1) { return false; }
    if (email.indexOf(" ") != -1) { return false; }

    return true;
}

function isNumeric(num) {
    var validChars = "0123456789.";
    var isNumber = true;
    var ch;
    for (i = 0; i < num.length && isNumber == true; i++) {
        ch = num.charAt(i);
        if (validChars.indexOf(ch) == -1) {
            isNumber = false;
        }
    }
    return isNumber;
}

function isDate(dateStr) {
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchArray = dateStr.match(datePat);
    if (matchArray == null) {
        return false;
    }
    month = matchArray[3];
    day = matchArray[1];
    year = matchArray[5];
    if (month < 1 || month > 12) {
        return false;
    }
    if (day < 1 || day > 31) {
        return false;
    }
    if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
        return false;
    }
    if (month == 2) {
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day == 29 && !isleap)) {
            return false;
        }
    }
    return true;
}

function hasValidChars(str) {
    var validChars = "0123456789@-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    var isValid = true;
    var ch;
    for (i = 0; i < str.length && isValid == true; i++) {
        ch = str.charAt(i);
        if (validChars.indexOf(ch) == -1) {
            isValid = false;
        }
    }
    return isValid;
}

function showAlert(strContent, strTitle, isPage) {
    $alertbox = $(document.createElement("div"));
    if (!isPage) {
        $alertbox.attr("id", "alertbox").append(strContent).appendTo($("body"));
        $alertbox.dialog({
            height: "auto",
            width: 430,
            minHeight: 20,
            position: "center",
            closeOnEscape: false,
            modal: true,
            title: strTitle,
            draggable: false,
            resizable: false,
            buttons: { "Cerrar": function() { $("#alertbox").dialog("close"); } },
            close: function() {
                $("#alertbox").dialog("destroy");
            }
        });
    }
    else {
        $alertbox.attr("id", "alertbox").appendTo($("body")).load(strContent, function() {
            $alertbox.dialog({
                height: "auto",
                width: 430,
                minHeight: 20,
                position: "center",
                closeOnEscape: false,
                modal: true,
                title: strTitle,
                draggable: false,
                resizable: false,
                close: function() {
                    $("#alertbox").dialog("destroy");
                }
            });
        });
    }    
}
