var SeflUtilities = {
    checkEmail : function (value) {
        var emailRegxp = /^([A-Za-z0-9_\-\.\&])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
        var valid = emailRegxp.test(value);
        if (valid) {
            valid = value.indexOf("@") == value.lastIndexOf("@");
        }
        return valid;
    }
    ,PhoneUtilities : {
        checkPhone : function (value, format) {
            var validFormat = false;
            var testLength = 10;
            switch (format) {
                case SeflUtilities.PhoneUtilities.FORMAT_SIZE10_NODASHES:
                case SeflUtilities.PhoneUtilities.FORMAT_SIZE10_DASHES:
                case SeflUtilities.PhoneUtilities.FORMAT_SIZE10_PARENTHESES_AND_DASHES:
                testLength = 10;
                validFormat = true;
                break;
            }
            if (!validFormat) {
                return false;
            }
            return value.length == testLength && format.test(value);
        },
        FORMAT_SIZE10_NODASHES : /\d{10}/,
        FORMAT_SIZE10_DASHES : /\d{3}\-\d{3}\-\d{4}/,
        FORMAT_SIZE10_PARENTHESES_AND_DASHES : /\(\d{3}\)\d{3}\-\d{4}/
    }
    ,validPro : function (pro) {
        var valid = true;
        if (pro.length != 7 && pro.length != 9) {
            valid = false;
        }
        else {
            if (/[\D]/.test(pro)) {
                valid = false;
            }
            else if (pro.length == 9) {
                var pro8 = pro.substring(0,8);
                var sum = 0;
                for (var i=0; i<pro8.length; i++) {
                    sum += pro8.substring(i, (i + 1)) * (9 - i);
                }
                var sum_int = parseInt(sum / 11);
                var rem = sum - (sum_int * 11);
                var check = 11 - rem;
                if (check > 9) {
                    check -= 10;
                }
                valid = check == pro.substring(8,9);
            }
        }
        return valid;
    }
}
