﻿
$(document).ready(function () {
    $("table[class='data'] > tbody > tr > td[class='actions']").mouseover(function () {
        $(this).parent().attr("class", "hover");
    });
    $("table[class='data'] > tbody > tr > td[class='actions']").mouseleave(function () {
        $(this).parent().attr("class", "");
    });
    $("a[class='delete-link']").click(function () {
        return confirm("Are you sure you wish to delete this item?");
    });
    $("table[class='data'] > tbody > tr[class='group'] > td > a").click(function () {
        var status = $(this).attr("class");
        if (status == "open") {
            $(this).parent().parent().nextUntil("tr[class='group']").hide();
            $(this).attr("class", "close");
        } else {
            $(this).parent().parent().nextUntil("tr[class='group']").show();
            $(this).attr("class", "open");
        }
    });
});

String.prototype.trim = function () {
    return this.replace(/^\\s+|\\s+$/g, "");
}

function blurCheckEmail(field, errorMessage) {
    if ($(field).val().trim().length == 0) {
        showFieldError(field, errorMessage);
        $(field).attr("style", "border: 1px solid #7b1e1e; color: #bbb;");

        $(field).val("your email address");
        return false;

    } else if (!isValidEmailAddress($(field).val())) {
        showFieldError(field, errorMessage);
        $(field).attr("style", "border: 1px solid #7b1e1e; color: #bbb;");
        return false;

    } else {
        hideFieldError(field);
        return true;
    }
}

function blurCheckText(field, errorMessage) {
    if ($(field).val().trim().length == 0) {
        showFieldError(field, errorMessage);
        $(field).attr("style", "border: 1px solid #7b1e1e;");
        return false;

    } else {
        hideFieldError(field);
        return true;
    }
}

function blurCheckMatchNoEmpty(field, matchWith, errorMessage1, errorMessage2) {
    if ($(field).val().trim().length == 0) {
        if ($(field).parent().find("span[class='error']").length == 0) {
            $(field).after("<span class=\"error\"><label for=\"" + $(field).attr("id") + "\">" + errorMessage1 + "<" + "/label><" + "/span>");

            $(field).parent().find("span[class='error']").css({ "opacity": "0" });
            $(field).parent().find("span[class='error']").animate({ "opacity": "1" }, 200);
        } else {
            $(field).parent().find("span[class='error'] > label").text(errorMessage1);
        }
        $(field).attr("style", "border: 1px solid #7b1e1e;");
        return false;
    } else if ($(field).val().trim() != matchWith) {
        if ($(field).parent().find("span[class='error']").length == 0) {
            $(field).after("<span class=\"error\"><label for=\"" + $(field).attr("id") + "\">" + errorMessage2 + "<" + "/label><" + "/span>");

            $(field).parent().find("span[class='error']").css({ "opacity": "0" });
            $(field).parent().find("span[class='error']").animate({ "opacity": "1" }, 200);
        } else {
            $(field).parent().find("span[class='error'] > label").text(errorMessage2);
        }
        $(field).attr("style", "border: 1px solid #7b1e1e;");
        return false;

    } else {
        hideFieldError(field);
        return true;
    }
}

function showFieldError(field, errorMessage) {
    if ($(field).parent().find("span[class='error']").length == 0) {
        $(field).after("<span class=\"error\"><label for=\"" + $(field).attr("id") + "\">" + errorMessage + "<" + "/label><" + "/span>");

        $(field).parent().find("span[class='error']").css({ "opacity": "0" });
        $(field).parent().find("span[class='error']").animate({ "opacity": "1" }, 200);
    }
}

function hideFieldError(field) {
    $(field).parent().find("span[class='error']").animate({ "opacity": "0" }, 200, function () { $(this).remove(); });
    $(field).attr("style", "");
}

function isValidEmailAddress(val) {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    return !(reg.test(val) == false);
}
