// *** element update functions ***

function update_label(label,result){

    var element = check_element(label);
        
	if(element != false) 
		
		element.style.color = "#"+validate_highlight[result];

}

function update_visibility(label){

    var element = check_element(label);
        
	if(element != false)
	
		element.style.visibility = (element.style.visibility == "visible")?"hidden":"visible";
}

function update_link(label,value){

    var element = check_element(label);
        
	if(element != false) 
	
		element.href = value;

}

function update_text(label,size,value){

	var element = check_element(label);

    if(element != false) 
	
		element.replaceData(0,size,value);

}

// *** element value parsing **

function trim_string(str){

	// *** remove white space ***

	return (str.replace(/^\s+/g,"")).replace(/\s+$/g,"");
	
}

function strip_html(str){

	return str.replace(/<\S[^><]*>/g,"");
	
}

// *** element value meta data capture ***

function character_count(str){

	return strip_html(trim_string(str)).length;
	
}

function word_count(str){
	
	var words = 0;
	var lines = strip_html(trim_string(str)).split("\r\n");
	
	for(var line_no in lines)
	
		words += lines[line_no].split(" ").length;
	
	return (character_count(str) != 0)? words : 0;
	
}