/********************************************************
 TextArea
********************************************************/
function TextArea(name, value, cols, rows, maxsize)
{
	var uniqueID = random();
	var html = "";
	html = html + "<nobr><textarea id='"+name+"' _uniqueID='"+uniqueID+"' name='"+name+"' wrap='physical' cols="+cols+" rows="+rows+" xxxonKeyDown=\"TextArea.textCounter(event, '"+name+"', '"+maxsize+"');\"  onKeyUp=\"TextArea.textCounter(event, '"+name+"', '"+maxsize+"');\">"+value+"</textarea>";
	html = html + "<span id='"+uniqueID+"_counter' style='color:white; background-color:red;font-size:10px'></span>";
	document.write(html);
}		

TextArea.textCounter = function(windowEvent, name, maxlimit)
{
	var id = getSourceElement(windowEvent).getAttribute("_uniqueID");
	var all = document.getElementsByName(name);
	var textarea = null;
	for(var i=0; i<all.length; i++)
	{
		var uniqueid = all[i].getAttribute("_uniqueID");
		if (uniqueid==id)
		{
			textarea = all[i];
			break;
		}
	}
	if (null!=textarea)
	{
		var text = textarea.value;
		if (text.length > maxlimit) // if too long...trim it!
		{
			text = text.substring(0, maxlimit);
			textarea.value = text;
			var v = maxlimit - text.length;
			var counter = document.getElementById(id + "_counter");
			if (null!=counter && (typeof counter)!='undefined')
			{
				counter.innerHTML="<br>&nbsp;reached maximum of " + maxlimit + " characters&nbsp;"; 
			}
		}
		else
		{
			var counter = document.getElementById(id + "_counter");
			if (null!=counter && (typeof counter)!='undefined')
			{
				counter.innerHTML=""; 
			}
		}
	}
}
/********************************************************/