//Initialise stuff to make strings safe
var regExpChars = "\\^$*+?.()|{}[]";
var regExps = new Array();
for(var x=0; x<regExpChars.length; x++)
{
	regExps[x] = new RegExp();
	regExps[x].compile("(\\" + regExpChars.charAt(x) + ")");
}


var timer = false;

//Make the text safe to create a regExp from
function makeSafe(text)
{
	for(var x=0; x<regExps.length; x++)
		text = text.replace(regExps[x], "\\\\" + RegExp.$1);
	
	return text;
}



function showRows()
{
	timer = false;
	if(!document.getElementById) return;
	
	var trs = document.getElementById('dataTable').getElementsByTagName('tr');
	
	text = document.forms['sForm'].elements['search'].value;
	text = makeSafe(text);
	
	var regExp = new RegExp();
	regExp.compile(text, 'i');
	
	var matches = 0;
	
	for(var x=0; x<trs.length-1; x++)
	{
		var text = trs[x+1].getElementsByTagName('td');
		text = text[1].innerHTML + " " + text[2].innerHTML + " " + text[3].innerHTML + " " + text[4].innerHTML;
	
		if(text.match(regExp))
		{
			disp = "";
			matches++;
		}
		else disp = "none";
		
		trs[x+1].style.display = disp;
	}
	
	document.getElementById('matches').innerHTML = matches + ' match' + ((matches == 1)?"":"es");
}



//toggleHilight
function tH(elm)
{
	elm.className = (elm.className == "")?"hilighted":"";
}


function init()
{
	var trs = document.getElementById('dataTable').getElementsByTagName('tr');
	
	for(var x=0; x<trs.length; x++) trs[x].onclick = function() { tH(this); }
}


window.onload = init;