maxL=3000;
var bName = navigator.appName;
function taLimit(taObj, e) {
	if (taObj.value.length>=maxL)
	{
		
		if(taObj.value.length>maxL)
		{
			taObj.value = taObj.value.substr(0,maxL);
		}
		
		var evtobj=window.event? event : e //distinguish between IE's explicit event object (window.event) and Firefox's implicit.
		var unicode=evtobj.charCode? evtobj.charCode : evtobj.keyCode
		//alert(unicode);
		
		//s determine the real character : a,b,c,d,e,f
		//var s = String.fromCharCode(unicode);
		//alert(s);
		
		//allow these unicode key to be pressed, (these values is the same for all browser)
		//8:backspace ; 37 : left arrow ; 38 : up arrow ; 39 : right arrow ; 40 : down arrow ; 46 : delete
		if (unicode == 8 || unicode == 37 || unicode == 38 || unicode == 39 || unicode == 40 || unicode == 46) {return true;}
		
		return false;
	}
	return true;
}

function taCount(taObj,Cnt) { 
	objCnt=createObject(Cnt);
	objVal=taObj.value;
	if (objVal.length>maxL) objVal=objVal.substring(0,maxL);
	if (objCnt) {
		if(bName == "Netscape"){	
			objCnt.textContent=maxL-objVal.length;}
		else{objCnt.innerText=maxL-objVal.length;}
	}
	return true;
}
function createObject(objId) {
	if (document.getElementById) return document.getElementById(objId);
	else if (document.layers) return eval("document." + objId);
	else if (document.all) return eval("document.all." + objId);
	else return eval("document." + objId);
}
