﻿function getByteLength(value) {
    var length = value.length;
    for (var i = 0; i < value.length; i++) {
        if (value.charCodeAt(i) > 127) {
            length++;
        }
    }
    return length;
}
$.validator.addMethod("minbytelength", function (value, element, param) {
    return this.optional(element) || getByteLength(value) >= param;
});
$.validator.addMethod("maxbytelength", function (value, element, param) {
    return this.optional(element) || getByteLength(value) <= param;
});
$.validator.addMethod("rangebytelength", function (value, element, param) {
    var length = getByteLength(value);
    return this.optional(element) || (length >= param[0] && length <= param[1]);
});
$.validator.unobtrusive.adapters.addMinMax("bytelength", "minbytelength", "maxbytelength", "rangebytelength");



function Tab(tag, tagCnt) {
    this.tabIndex = 0;
    this.event = "click";
    this.titleId = "";
    this.bodyId = "";
    this.classTabCheck = "";
    this.classTabNoCheck = "";

    var Tags, TagsCnt, len, flag;
    var TabClassName;
    this.load = function () {
        if (!document.getElementById(this.titleId) || !document.getElementById(this.bodyId)) {
            return false;
        }
        flag = this.tabIndex;
        TabClassName = [this.classTabCheck, this.classTabNoCheck];
        Tags = document.getElementById(this.titleId).getElementsByTagName(tag);
        TagsCnt = document.getElementById(this.bodyId).getElementsByTagName(tagCnt);
        len = Tags.length;
        for (var i = 0; i < len; i++) {
            Tags[i].value = i;
            if (this.event != 'click') {
                Tags[i].onmouseover = function () { changeNav(this.value) };
            } else {
                Tags[i].onclick = function () { changeNav(this.value) };
            }
            TagsCnt[i].style.display = "none";
        }
        Tags[flag].className = TabClassName[0];
        TagsCnt[flag].style.display = "block";
    }
    function changeNav(v) {
        Tags[flag].className = TabClassName[1];
        TagsCnt[flag].style.display = "none";
        flag = v;
        Tags[v].className = TabClassName[0];
        TagsCnt[v].style.display = "block"; ;
    }
}
