var Ajax;
if (Ajax && (Ajax != null)) {
    Ajax.Responders.register({
        onCreate: function() {
            if ($('spinner') && Ajax.activeRequestCount > 0)
                Effect.Appear('spinner', {duration:0.5,queue:'end'});
        },
        onComplete: function() {
            if ($('spinner') && Ajax.activeRequestCount == 0)
                Effect.Fade('spinner', {duration:0.5,queue:'end'});
        }
    });
}

function MM_preloadImages() { //v3.0
    var d = document;
    if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i,j = d.MM_p.length,a = MM_preloadImages.arguments;
        for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) {
                d.MM_p[j] = new Image;
                d.MM_p[j++].src = a[i];
            }
    }
}

function MM_swapImgRestore() { //v3.0
    var i,x,a = document.MM_sr;
    for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function MM_findObj(n, d) { //v4.01
    var p,i,x;
    if (!d) d = document;
    if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document;
        n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n];
    for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n);
    return x;
}

function MM_swapImage() { //v3.0
    var i,j = 0,x,a = MM_swapImage.arguments;
    document.MM_sr = new Array;
    for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) {
            document.MM_sr[j++] = x;
            if (!x.oSrc) x.oSrc = x.src;
            x.src = a[i + 2];
        }
}

function closeMenu() {
    e = document.getElementById("menu");
    nodes = e.childNodes;
    for (i = 0; i < nodes.length; i++) {
        t = nodes[i];
        if (t.tagName != 'DIV') {
            continue;
        }
        t.style.background = "";
        t.style.color = "";
        e = document.getElementById("sub_" + t.id);
        if (e != null) {
            e.style.display = "none";
        }
    }
}


function menuOver(b, c, s) {
    closeMenu();
    b.style.background = c;
    b.style.color = "#FFFFFF";
    e = document.getElementById("sub_" + b.id);
    if (e != null) {
        d = document.getElementById("dummyMenu");
        d.style.width = s;
        e.style.display = "block";
    }
//  setTimeout("closeMenu();", 10000);
}






//使用String物件之prototype屬性延伸String物件之方法
String.prototype.rTrim = rTrim;
String.prototype.lTrim = lTrim;
String.prototype.trim = trim;
//去除右邊之空白字元
function rTrim() {
    var orgStr = this.toString();
    var str = orgStr;
    while (str.length > 0) {
        if (str.charAt(str.length - 1) != ' ') {
            break;
        }
        str = str.substring(0, str.length - 1);
    }
    return str;
}
 //去除左邊之空白字元
function lTrim() {
    var orgStr = this.toString();
    var str = orgStr;
    while (str.length > 0) {
        if (str.charAt(0) != ' ') {
            break;
        }
        str = str.substring(1, str.length);
    }
    return str;
}
 //去除左右兩邊之空白字元
function trim() {
    var orgStr = this.toString();
    var str = orgStr;
    return str = (str.lTrim()).rTrim();
}


function alertCheckDate() {
    var columnName = arguments[0]
    var value = arguments[1].value;
    format = "yyyy/MM/dd";
    if (arguments.length > 2) {
        format = arguments[2];
    }
    if (isDate(value, format) == false) {
        alert(columnName + ": 日期格式錯誤, 格式為: " + format);
        return false;
    }
    return true;
}


/**
 *
 * 檢查是否為數字
 *
 */
function isNumber() {
    var value = arguments[0];

    var s = new String(value);

    if (s.length != s.trim().length) {
        return false;
    }
    var maxlength = arguments[1];
    var scale = arguments[2];
    if (scale > 0) {
        value = Math.pow(10, scale) * value;
    }
    if (isNaN(value) || value.length > maxlength) {
        return false;
    }

    return true;
}


/**
 *
 * 檢查密碼
 *
 */
function isPasswordValid(s) {
    var re = /^\w*(?=\w*\d)(?=\w*[a-zA-Z])\w*$/
    if (s.length < 6 || s.length > 12) {
        return false;
    }
    if (!re.test(s)) {
        return false;
    }
    return true;
}


function isEmailValid(s) {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    return reg.test(s);
}

/**
 *
 * 檢查欄位是否空白
 *
 */
function isBlank() {
    var value = arguments[0];
    if (value.length == 0) {
        return true;
    }
    return false;
}

function checkString() {
    /*var value = arguments[0];
    var length = arguments[1];

    if (typeof value == "undefined" || value == null || value.length == 0) {
      return true;
    }
    var reallength = 0;
    var valuelen = value.length;
    for (i = 0; i < valuelen; i++) {
      c = value.charCodeAt(i);
      if (c <= 128) {
        reallength++;
      } else {
        reallength += 3;
      }
    }
    if (reallength > length) {
      return false;
    }
    */
    return true;
}


function urlEncoder(str) {
    re = /%/gi;
    newstr = str.replace(re, "%25");
    return newstr;
}

checkNationalId = function checkNationalId(input, elemnt, param) {
    var rule = false;
    var g = jQuery(param).val()
    
    
    if (input.length == 10) {
        var s = input.toUpperCase();

        if (!((g == 'M' && s.charCodeAt(1) == 49) || (g == 'F' && s.charCodeAt(1) == 50))) {
            rule = false;
        } else  if (s.charCodeAt(0) >= 65 && s.charCodeAt(0) <= 90) {
            var c = new Array(11);
            var a = new Array(10, 11, 12, 13, 14, 15, 16, 17, 34, 18, 19, 20, 21, 22, 35, 23, 24, 25, 26, 27, 28, 29, 32, 30, 31, 33);
            c[0] = Math.floor(a[(s.charCodeAt(0)) - 65] / 10);
            c[1] = a[(s.charCodeAt(0)) - 65] % 10;
            for (i = 1; i <= 9; i++) {
                c[i + 1] = s.charCodeAt(i) - 48;
            }
            var count = c[0];
            for (i = 1; i <= 9; i++) {
                count += c[i] * (10 - i);
            }
            var mod = count % 10
            if ((mod == 0) && (c[10] == 0)) {
                rule = true;
            } else if (((count % 10) + c[10]) == 10) {
                rule = true;
            }
        }
    }
    return (rule);
}

notEqualTo = function(value, element, param) {
	return value != param;
}

//$.validator.addMethod("notEqualTo", notEqualTo, '');
//

