	/**
	 * code by jason at 2009.11.17
	 * 增加input,textarea的j_maxlength属性
	 * j_maxlength属性中文所占字符随字符集jason_char_j
	 * @jason_char_j 字符集gbk(占2个字符),utf8(占3个字符)
	 */
	 
	var jason_char_j = "utf8";
	var jason_oldValue_j=new Array(); 
	var jason_char_jLen;
	
	//校验字符串长度
	function jason_strlen_j(str,length) {
		var len = 0;
		for (var i = 0; i < str.length; i++) {
			if (str.charCodeAt(i) > 255) len += jason_char_jLen; else len ++;
		}
		if(len<length){
			return 1;		//字符小于指定长度(合法)
		}else if(len==length){
			return 0;		//长度相等
		}else{
			return -1;		//字符大于指定长度(非法)
		}
	}
	
	function jason_substr_j(str,length){
		var len = 0;
		var val = '';
		for (var i = 0; i < str.length; i++) {
			if(length<jason_char_jLen && str.charCodeAt(i) > 255) break;
			if (str.charCodeAt(i) > 255) length -= jason_char_jLen; else length--;
			len++;
			if(length<=0) break;
		}
		
		val = str.substr(0,len);
		return val;
	};
	
	//超出长度禁止输入
	function jason_checkLength_j(id,length){
		if(navigator.userAgent.indexOf("MSIE")>0){
			document.getElementById(id).attachEvent("onpropertychange",txChange);
		}else if(navigator.userAgent.indexOf("Firefox")>0){
	    	document.getElementById(id).addEventListener("input",txChange,false);
		}
		function txChange(){
			checkMaxLen(document.getElementById(id),length,0);
		}
		function checkMaxLen(obj,maxlength,num){
			if(jason_strlen_j(obj.value,maxlength)<0){
				//初始粘贴超出范围
				if(jason_oldValue_j[num]>0){
		    		obj.value=jason_oldValue_j[num];
				}else{
					obj.value=jason_substr_j(obj.value,length)
				}
			}else{
		    	jason_oldValue_j[num]=obj.value;
			}
		}
	}

	function jason_maxlength_j(formID){
		$("#"+formID+" textarea[j_maxlength],#"+formID+" input[j_maxlength]").each(function(){
			switch(jason_char_j){
				case 'gbk':
					jason_char_jLen = 2;
					break;
				case 'utf8':
					jason_char_jLen = 3;
					break;
				default:
					jason_char_jLen = 1;
			}
			var str = $(this).attr('value');
			var len = $(this).attr('j_maxlength');
			//默认值超出范围
			if(jason_strlen_j(str,len)<=0) {
				jason_oldValue_j[0]=jason_substr_j(str,len);
				$(this).attr('value',jason_substr_j(str,len));
			}
			if(len>0 && len!='2147483647')
				jason_checkLength_j($(this).attr('id'),len);
		});
	}

	$(document).ready(function(){
		//多个form时提交验证
		$("form").each(function(){
			jason_maxlength_j($(this).attr("id"));
		})
	});
