// Norberth Danson 2006

var counter_id = new Array();
var counter_name = new Array();
var length = new Array();

function length_check(field,limit,display) {
		try {
			var fieldID = eID(field);	
			var displayID = eID(display);
			if (fieldID.value.length > limit) 
				fieldID.value = fieldID.value.substring(0,limit);
			if (display) {
				var chars_left = limit-fieldID.value.length;
				displayID.innerHTML = '<span class="text_info_s">' + chars_left + ' characters left.</span>';
			}
		} 
		catch(e) {			
			// do nothing
		}
	}

function update_count(field,limit,display){
	eID(field).onfocus = function(){run_counter(field,limit,display);}
	eID(field).onblur = function(){stop_counter(field);eID('counter_'+field).innerHTML='<span class="text_info_s">&nbsp;</span>';}
}

function run_counter(field,limit,display){
	length_check(field,limit,display);
	counter_name[field] = setTimeout(function() {run_counter(field,limit,display);}, 1000);	
}

function stop_counter(field){
	clearTimeout(counter_name[field]);
}
	
function counter_init(){
	args = counter_init.arguments; 
	for(i=0; i<args.length; i++){
		counter_id[i] = args[i].substr(0,args[i].indexOf('*'));
		length[i]     = args[i].substr(args[i].indexOf('*')+1);
	}
	start_counters(args.length);
}
function start_counters(count){
	for(i=0;i<count;i++){
		eID('counter_'+counter_id[i]).innerHTML='<span class="text_info_s">&nbsp;</span>';
		update_count(counter_id[i],length[i],'counter_'+counter_id[i]);
	}
}