function initfilter(legtxt, labtxt, restxt) {
	if (document.getElementById && document.createTextNode) {
		var theTable = document.getElementById('pub');
		if (!theTable) return true;
		
		//create the filter form
		var fform = document.createElement('form');
		var ffieldset = document.createElement('fieldset');
		var flegend = document.createElement('legend');
		var flabel = document.createElement('label');
		var ffield = document.createElement('input');
		var freset = document.createElement('span');
		
		// set attributes
		fform.id = 'filter';
		flabel.htmlFor = 'fwords';
		freset.id = 'resetbutton';
		ffield.id = 'fwords';
		ffield.name = 'filter';
		
		// set text elements
		flegend.appendChild(document.createTextNode(legtxt));
		flabel.appendChild(document.createTextNode(labtxt));
		freset.appendChild(document.createTextNode(restxt));
	
		// create form
		fform.appendChild(ffieldset);
		ffieldset.appendChild(flegend);
		ffieldset.appendChild(flabel);
  		ffieldset.appendChild(ffield);
		ffieldset.appendChild(freset);
		theTable.parentNode.insertBefore(fform, theTable);
		
		// init filter on type
		ffield.onkeyup = function() {
      		filter(this, 'pub', '1');
    	}
		
		// prevent form post
		fform.onsubmit = function() {
      		return false;
    	}
		
		// reset
		freset.onclick = function() {
      		ffield.value = '';
			for (var i = 1; i < theTable.rows.length; i++) {
				theTable.rows[i].style.display = '';
			}
    	}
	}
}

function filter(phrase, _id) {
	var words = phrase.value.toLowerCase().split(" ");
	var table = document.getElementById(_id);
	if (!table) return true;
	var ele;
	
	for (var r = 1; r < table.rows.length; r++) {
		ele = table.rows[r].innerHTML.replace(/<[^>]+>/g,"");
		var displayStyle = 'none';
		for (var i = 0; i < words.length; i++) {
			if (ele.toLowerCase().indexOf(words[i])>=0) {
				displayStyle = '';
			} 
			else {
				displayStyle = 'none';
			break;
			}
		}
		table.rows[r].style.display = displayStyle;
	}
	
}

