function encodeHtml( str ) {
	var div = document.createElement('div');
	div.appendChild( document.createTextNode(str) );
	return div.innerHTML;
}
function normalizeSpace(str) {
	if( str ) {
		str = str.replace( /^\s+/g, "" );
		str = str.replace( /\s+$/g, "" );
		str = str.replace( /( )\s+/g, " " );
	}
	return str;
}
function v_Search( ev ) {
	var q = ev.target.q.value; 
	ev.target.q.value = normalizeSpace( q );
	if( q.length > 64 ) { alert('Search string too long'); return false; } 
	else if( q.length < 2 ) { alert('Please enter a longer search string'); return false; } 
	else if( ! /^[a-zA-Z0-9,' \-&]+$/.test(q) ) { alert('Search string contains an invalid character'); return false; } 
	else return true; 
}
function searchClickHandler(ev) { 
	var inp = ev.target; if( inp['first'] == null ) { inp.value = ''; inp['first']=1; } 
}