
function prepare_pageDataSearch() {
	if (!document.getElementById) return false;
	if (!document.getElementsByClassName) return false
	if (!document.getElementsByClassName('data_search')) return false;
	
	var $data_containers = document.getElementsByClassName('data_search');
	
	for (var $i=0; $i<$data_containers.length; $i++) {
		
		if (!$data_containers[$i].getAttribute('id')) {
			$data_containers[$i].setAttribute('id','data_container'+$i);
		}
		$data_container_id = $data_containers[$i].getAttribute('id');
	
		var $form = document.createElement('form');
		$form.className = 'page_data_search';
		
		var $field_searchTerm = document.createElement('input');
		$field_searchTerm.setAttribute('name','search_term');
		$field_searchTerm.setAttribute('type','text');
		$field_searchTerm.setAttribute('alt','Search Term Entry Box');
		$field_searchTerm.setAttribute('value','Search For...');
		$field_searchTerm.setAttribute('id','field_searchTerm_'+$i);
		$field_searchTerm.setAttribute('data_container_id',$data_container_id);
		$field_searchTerm.className = 'textbox';
		$field_searchTerm.onkeyup = function() {
			var $data_container_id = this.getAttribute('data_container_id');
			var $field_id = this.getAttribute('id');
			pageDataSearch($data_container_id,$field_id);
		}
		$field_searchTerm.onclick = function() {
			if (this.getAttribute('value') == 'Search For...') {
			      this.setAttribute('value','');
			}
		}
		
		$form.appendChild($field_searchTerm);
		
		var $parent = $data_containers[$i].parentNode;
		$parent.insertBefore($form,$data_containers[$i]);
	}
}
addLoadEvent(prepare_pageDataSearch);


function pageDataSearch($data_container_id,$field_id) {
	
	var $error_message = document.getElementById('error-'+$data_container_id);
	if ($error_message) removeNode($error_message);
	
	var $data_container = document.getElementById($data_container_id);
	
	$data_rows = $data_container.getElementsByTagName('li');
	if ($data_rows.length < 1) $data_rows = $data_container.getElementsByTagName('td');
	if ($data_rows.length < 1) $data_rows = $data_container.getElementsByTagName('dt');
	if ($data_rows.length < 1) $data_rows = $data_container.getElementsByTagName('dd');
	
	if ($data_rows.length < 1) return false;
	
	var $field_searchTerm = document.getElementById($field_id);
	var $search_term = $field_searchTerm.value.toLowerCase();

	for (var $i=0; $i<$data_rows.length; $i++) {
		var $data = innerXHTML($data_rows[$i]).toLowerCase();
		if (!$data.match($search_term)) {
			$data_rows[$i].style.display = 'none';
		}
		else {
			$data_rows[$i].style.display = '';
			var $data_found = true;
		}
	}
	
	if (!$data_found) {
		var $para = document.createElement('p');
		$para.setAttribute('id','error-'+$data_container_id)
		var $text = document.createTextNode('No results found matching "'+$search_term+'"');
		$para.appendChild($text);
		var $parent = $data_container.parentNode;
		$parent.insertBefore($para,$data_container);
	}
}

