function validateSearch(src,textmsg,illegalmsg)
{
	charsStripped = false;
	RE = /([\[\]:{}~&\*_^]?)/g;
	with(document.forms[src.name])
	{
		for(i=0;i<elements.length;i++)
		{
			if(elements[i].type == 'text')
			{
				if(elements[i].value.length == 0)
				{
					alert(textmsg);
					return false;
				}
				else
				{					
					newstr = elements[i].value.replace(RE,'');					
					if (elements[i].value != newstr)					
						charsStripped = true;
					elements[i].value = newstr;
					if (newstr.length == 0)
						return false;					
				}
				
				//if there weren't any problems with illegal chars or a zero-length search term,
				// then continue and trim search term.  check for zero-length again after trimming
				trimmedSearchterm = elements[i].value;
				//take out leading spaces
				while (trimmedSearchterm.length > 0 && trimmedSearchterm.charAt(0) == ' ')		
				{								
					if (trimmedSearchterm.length > 1)
						trimmedSearchterm = trimmedSearchterm.slice(1);					
					else
						trimmedSearchterm = '';
				}				
				//take out trailing spaces
				while (trimmedSearchterm.length > 0 && trimmedSearchterm.charAt(trimmedSearchterm.length - 1) == ' ')					
					trimmedSearchterm = trimmedSearchterm.slice(0,trimmedSearchterm.length-1);									
				elements[i].value = trimmedSearchterm;
				//if chars were stripped, then illegalmsg takes precedence over textmsg
				if(elements[i].value.length == 0)
				{
					if (charsStripped)
						alert(illegalmsg);
					else
						alert(textmsg);
					return false;
				}

			}
		}
		return true;
	}
}
