jQuery.validator.addMethod("isEqualOrGreaterThan", function(value, element,
				param) {
			$("label[for='" + param.replace("#", "") + "']").html("");
			if (parseInt(value) >= parseInt($(param).val())) {
				return true;
			} else {
				return false;
			}
		}, jQuery.validator.format("必须大于等于起始 大小"));
jQuery.validator.addMethod("isEqualOrLesserThan", function(value, element,
				param) {
			$("label[for='" + param.replace("#", "") + "']").html("");
			if (parseInt(value) <= parseInt($(param).val())) {
				return true;
			} else {
				return false;
			}
		}, jQuery.validator.format("必须小于等于最大大小"));

jQuery.validator.addMethod("integer", function(value, element) {
			return this.optional(element) || /^-?\d+$/.test(value);
		}, jQuery.validator.format("必须为整数"));

// 不建议使用,建议使用accept
jQuery.validator.addMethod("imgOrFlash", function(value, element, param) {
			var format = value.substring(value.lastIndexOf(".") + 1,
					value.length).toLowerCase();
			if (format != "gif" && format != "jpg" && format != "jpeg"
					&& format != "swf") {
				return false;
			}
			return true;
		}, "");
jQuery.validator.addMethod("isMoneyYuan", function(value) {
			var reg = new RegExp("^[0-9]+(.[0-9]{1,2})?$", "g");
			if (!reg.test($.trim(value))) {
				return false;
			}
			return true;
		}, "最多只能有两位小数!");
jQuery.validator.addMethod("checkTimeStartFromTomorrow", function(value,
				element, param) {
			var today = new Date();
			var todayStr = today.getFullYear() + "-";
			if (today.getMonth() + 1 < 10) {
				todayStr = todayStr + "0" + (today.getMonth() + 1);
			} else {
				todayStr = todayStr + (today.getMonth() + 1);
			}
			if (today.getDate() < 10) {
				todayStr = todayStr + "-0" + (today.getDate());
			} else {
				todayStr = todayStr + "-" + (today.getDate());
			}
			if (todayStr > value) {
				return false;
			}
			return true;
		}, "");
jQuery.validator.addMethod("checkFilterUrl", function(value, element, param) {
			var filterUrls = $.trim(value);
			var filterUrlArray = new Array();
			if ($.browser.msie)
				filterUrlArray = filterUrls.split("\r\n");
			if ($.browser.mozilla)
				filterUrlArray = filterUrls.split("\n");
			if (filterUrls.length > 0) {
				if (filterUrlArray.length > 100) {
					return false;
				}
				for (var i = 0; i < filterUrlArray.length; i++) {
					return checkDomain($.trim(filterUrlArray[i]));
				}
			}
			return true;
		}, "");
jQuery.validator.addMethod("checkGBKStringLength", function(value, element,
				param) {
			var i, sum;
			sum = 0;
			for (i = 0; i < value.length; i++) {
				if ((value.charCodeAt(i) >= 0) && (value.charCodeAt(i) <= 255))
					sum = sum + 1;
				else
					sum = sum + 2;
			}
			if (sum <= param) {
				return true;
			} else {
				return false;
			}
			return true;
		}, jQuery.validator.format("最大不超过 {0}个字符"));
jQuery.validator.addMethod("checkUTF8StringLength", function(value, element,
				param) {
			var i, sum;
			sum = 0;
			for (i = 0; i < value.length; i++) {
				if ((value.charCodeAt(i) >= 0) && (value.charCodeAt(i) <= 255))
					sum = sum + 1;
				else
					sum = sum + 2;
			}
			if (sum <= param) {
				return true;
			} else {
				return false;
			}
			return true;
		}, jQuery.validator.format("最大不超过 {0}个字符"));

jQuery.validator.addMethod("checkUTF8StringMinLength", function(value, element,
				param) {
			var i, sum;
			sum = 0;
			for (i = 0; i < value.length; i++) {
				if ((value.charCodeAt(i) >= 0) && (value.charCodeAt(i) <= 255))
					sum = sum + 1;
				else
					sum = sum + 2;
			}
			if (sum >= param) {
				return true;
			} else {
				return false;
			}
			return sum;
		}, jQuery.validator.format("最小不少于 {0}个字符"));

function checkDomain(nname) {
	var arr = new Array('.com', '.net', '.org', '.biz', '.coop', '.info',
			'.museum', '.name', '.pro', '.edu', '.gov', '.int', '.mil', '.ac',
			'.ad', '.ae', '.af', '.ag', '.ai', '.al', '.am', '.an', '.ao',
			'.aq', '.ar', '.as', '.at', '.au', '.aw', '.az', '.ba', '.bb',
			'.bd', '.be', '.bf', '.bg', '.bh', '.bi', '.bj', '.bm', '.bn',
			'.bo', '.br', '.bs', '.bt', '.bv', '.bw', '.by', '.bz', '.ca',
			'.cc', '.cd', '.cf', '.cg', '.ch', '.ci', '.ck', '.cl', '.cm',
			'.cn', '.co', '.cr', '.cu', '.cv', '.cx', '.cy', '.cz', '.de',
			'.dj', '.dk', '.dm', '.do', '.dz', '.ec', '.ee', '.eg', '.eh',
			'.er', '.es', '.et', '.fi', '.fj', '.fk', '.fm', '.fo', '.fr',
			'.ga', '.gd', '.ge', '.gf', '.gg', '.gh', '.gi', '.gl', '.gm',
			'.gn', '.gp', '.gq', '.gr', '.gs', '.gt', '.gu', '.gv', '.gy',
			'.hk', '.hm', '.hn', '.hr', '.ht', '.hu', '.id', '.ie', '.il',
			'.im', '.in', '.io', '.iq', '.ir', '.is', '.it', '.je', '.jm',
			'.jo', '.jp', '.ke', '.kg', '.kh', '.ki', '.km', '.kn', '.kp',
			'.kr', '.kw', '.ky', '.kz', '.la', '.lb', '.lc', '.li', '.lk',
			'.lr', '.ls', '.lt', '.lu', '.lv', '.ly', '.ma', '.mc', '.md',
			'.mg', '.mh', '.mk', '.ml', '.mm', '.mn', '.mo', '.mp', '.mq',
			'.mr', '.ms', '.mt', '.mu', '.mv', '.mw', '.mx', '.my', '.mz',
			'.na', '.nc', '.ne', '.nf', '.ng', '.ni', '.nl', '.no', '.np',
			'.nr', '.nu', '.nz', '.om', '.pa', '.pe', '.pf', '.pg', '.ph',
			'.pk', '.pl', '.pm', '.pn', '.pr', '.ps', '.pt', '.pw', '.py',
			'.qa', '.re', '.ro', '.rw', '.ru', '.sa', '.sb', '.sc', '.sd',
			'.se', '.sg', '.sh', '.si', '.sj', '.sk', '.sl', '.sm', '.sn',
			'.so', '.sr', '.st', '.sv', '.sy', '.sz', '.tc', '.td', '.tf',
			'.tg', '.th', '.tj', '.tk', '.tm', '.tn', '.to', '.tp', '.tr',
			'.tt', '.tv', '.tw', '.tz', '.ua', '.ug', '.uk', '.um', '.us',
			'.uy', '.uz', '.va', '.vc', '.ve', '.vg', '.vi', '.vn', '.vu',
			'.ws', '.wf', '.ye', '.yt', '.yu', '.za', '.zm', '.zw');

	var mai = nname;
	var val = true;

	var dot = mai.lastIndexOf(".");
	var dname = mai.substring(0, dot);
	var ext = mai.substring(dot, mai.length);

	if (dot > 2 && dot < 57) {
		for (var i = 0; i < arr.length; i++) {
			if (ext == arr[i]) {
				val = true;
				break;
			} else {
				val = false;
			}
		}
		if (val == false) {
			return false;
		} else {
			for (var j = 0; j < dname.length; j++) {
				var dh = dname.charAt(j);
				var hh = dh.charCodeAt(0);
				if ((hh > 47 && hh < 59) || (hh > 64 && hh < 91)
						|| (hh > 96 && hh < 123) || hh == 45 || hh == 46) {
					if ((j == 0 || j == dname.length - 1) && hh == 45) {
						return false;
					}
				} else {
					return false;
				}
			}
		}
	} else {
		return false;
	}

	return true;
}
jQuery.validator.addMethod("isCardNo", function(value){
    idcard = value.toUpperCase();
    var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};
    var idcard,Y,JYM;
    var S,M;
    var idcard_array = new Array();
    idcard_array = idcard.split("");
    if(area[parseInt(idcard.substr(0,2))]==null) return false;
    switch(idcard.length){
    case 15:
        if ((parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
            ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性

        }
        else{
            ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性

        }
        if(ereg.test(idcard))
            return true;
        else
            return false;
        break;
    case 18:
        if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
            ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
        }
        else{
            ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
        }
        if(ereg.test(idcard)){
            S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3 ;
            Y = S % 11;
            M = "F";
            JYM = "10X98765432";
            M = JYM.substr(Y,1);
            if(M == idcard_array[17])
                return true;
            else
                return false;
        }
        else
            return false;
        break;
    default:
        return false;
        break;
    }
}, "身份证不正确");

