//Search within the html table.
//Refer website http://dbachrach.com/blog/2007/05/07/live-search-as-you-type-and-live-sorting-tables-with-js/


function doSearch(search_box, tableID, searchCol, searchAllColumns) {

	var q = search_box.value;
	if(searchAllColumns === undefined) { searchAllColumns = false; }

	q=q.trim();	
	q = q.toLowerCase();
	var q_ars = new Array();
	q_ars = q.split(' ');

	for(var d = 0; d < q_ars.length; d++) {
		if(q_ars[d]=="") {
			q_ars.splice(d,1);
		}
	}

	var tbl = document.getElementById(tableID);
	var rows = tbl.rows;
	for(var i=1; i<rows.length; i++) {
		var cells = rows[i].cells;
		var q_parts_found = "";
		if(searchAllColumns) { 
			for(var j=0; j<cells.length; j++) {	
				var val = cells[j].innerHTML;
				val = val.toLowerCase();

				for(var k =0; k < q_ars.length; k++) {
					if(q_ars[k]!="" && val.indexOf(q_ars[k]) != -1) {
						q_parts_found += k + " ";
						rows[i].style.display='';
					}
				}
			}	
		} else {
			var val = cells[searchCol].innerHTML;
			val = val.toLowerCase();

			for(var k =0; k < q_ars.length; k++) {
				if(q_ars[k]!="" && val.indexOf(q_ars[k]) != -1) {
					q_parts_found += k + " ";
					rows[i].style.display='';
				}
			}
		}

		var foundCell = 1;
		for(var n = 0; n < q_ars.length; n++) {
			if(q_parts_found.indexOf(n)==-1) {
				foundCell = 0;
			}
		}
		if(foundCell == 1) {
			rows[i].style.display='';
		}
		else {
			rows[i].style.display='none';
		}
	}
	//reAlternateLines();
}




function showAllRows(tableID) {
	var tbl = document.getElementById(tableID);
	var rows = tbl.rows;

	for(var i=1; i<rows.length; i++) {
		rows[i].style.display='';
	}
}

function clearSearch(textBoxId, tableID){
	var textBox = document.getElementById(textBoxId);
	
	if(textBox != null){
		textBox.value ='';
	}
	
	showAllRows(tableID);
	
	return true;
}

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

