﻿
function UpdateCalCheck()
{
	cal_byte(event.srcElement.value,event.srcElement,event.srcElement.getAttribute("MaxCount"),event.srcElement.getAttribute("CounterViewer"));
}
 
function cal_byte(aquery,objcheck,maxCount,CounterViewer) 
{
	var tmpStr;
	var temp=0;
	var onechar;
	var tcount;
	tcount = 0;
 
	tmpStr = new String(aquery);
	temp = tmpStr.length;
 
	for (k=0;k<temp;k++)
	{
		onechar = tmpStr.charAt(k); 
		if (escape(onechar) =='%0D') { } else if (escape(onechar).length > 4) { tcount += 2; } else { tcount++; }
	}
	
	try{
		if(CounterViewer!=null && CounterViewer!="") 
			document.getElementById(CounterViewer).innerHTML = "("+tcount + "/" +maxCount +" Byte)";
	}
	catch(e){}
	if(tcount>maxCount) { 
		reserve = tcount-maxCount; 
		alert(" you can't type over "+maxCount+" bytes.\r\n it'll removed "+reserve+" bytes"); 
		nets_check(objcheck.value,objcheck,maxCount,CounterViewer); 
	return;
	}	
}
 
function nets_check(aquery,objcheck,maxCount,CounterViewer)
{
 
	var tmpStr;
	var temp=0;
	var onechar;
	var tcount;
	tcount = 0;
 
	tmpStr = new String(aquery);
	temp = tmpStr.length;
	
	for(k=0;k<temp;k++)
	{
		onechar = tmpStr.charAt(k);
 
		if(escape(onechar).length > 4) {
			tcount += 2;
		} else {			
			if(escape(onechar)=='%0A') {
			} else {
				tcount++;
			}
		}
 
		if(tcount>=maxCount) {
			tmpStr = tmpStr.substring(0,k);
			break;
		}
 
	}
	objcheck.value = tmpStr; 
	cal_byte(tmpStr,objcheck,maxCount,CounterViewer);
}
 
function addListenerToKeyType(objtextArea,maxTxtinput,counterViewer)
{	
	if(typeof document.addEventListener == 'object') 
	{	
		try{
			objtextArea.addEventListener('onkeyup',UpdateCalCheck,false); 	
			objtextArea.addEventListener('onfocus',UpdateCalCheck,false); 
		}
		catch(e){}
	}
	else if(typeof document.attachEvent == 'object') 
	{	
		try{
			objtextArea.attachEvent('onkeyup',UpdateCalCheck); 
			objtextArea.attachEvent('onfocus',UpdateCalCheck); 
		}
		catch(e){}
	}
	
	try{
	objtextArea.setAttribute("MaxCount",maxTxtinput);
	if(counterViewer != null && counterViewer != "")	
		objtextArea.setAttribute("CounterViewer",counterViewer);	
	else
		objtextArea.setAttribute("CounterViewer",""); 
	}
	catch(e){}
}

