	
	function charCounter(id, maxlimit){
		if (!$('counter-'+id)){
			$(id).insert({after: '<div id="counter-'+id+'"></div>'});
		}
		if($F(id).length >= maxlimit){
			$(id).value = $F(id).substring(0, maxlimit);
			$('counter-'+id).addClassName('charcount-limit');
			$('counter-'+id).removeClassName('charcount-safe');
		} else {	
			$('counter-'+id).removeClassName('charcount-limit');
			$('counter-'+id).addClassName('charcount-safe');
		}
		$('counter-'+id).update( $F(id).length + ' out of ' + maxlimit + ' maximum characters.' );	
			
	}
	
	function makeItCount(id, maxsize){
		if ($(id)){
			Event.observe($(id), 'keyup', function(){charCounter(id, maxsize);}, false);
			Event.observe($(id), 'keydown', function(){charCounter(id, maxsize);}, false);
			Event.observe($(id), 'input', function(){charCounter(id, maxsize);}, false);
			Event.observe($(id), 'paste', function(){charCounter(id, maxsize);}, false);

			charCounter(id,maxsize);
		}
	}