jQuery.fn.tableFilter = function() {
	//agrego una fila dentro del thead
	var tabla = jQuery(this);
	
	tabla.find("thead").append('<tr class="row-filtros"></tr>');
	var filaFiltro = tabla.find("thead > tr.row-filtros");
	var nroColumna = 0;
	
	tabla.find("thead > tr:first > td").each(function() {
		nroColumna++;
		var celdaFiltro = document.createElement("td");
		filaFiltro.append(celdaFiltro);
		
		var select = document.createElement("select");
		jQuery(select).addOption("", "Todos");
		jQuery(select).addClass("columna-filtros-"+nroColumna);
		
		tabla.find("tbody > tr").each(function() {
				var iterCelda = jQuery(this).find("td:nth-child("+nroColumna+")");
				jQuery(select).addOption(iterCelda.text(), iterCelda.text());
			});
		jQuery(select).selectOptions("");
		
		jQuery(select).change(function(){
				// a todos los demas selects les selecciono la opcion Todos
				var selectObj = this;
				filaFiltro.find("select").each(function(){
					if(jQuery(selectObj).attr('class')!=jQuery(this).attr('class'))
						jQuery(this).selectOptions("");

				});
				var valorDeFiltro = jQuery(this).val();
				if(valorDeFiltro == ""){
					tabla.find("tbody > tr").each(function(){ jQuery(this).show()});
				}else{
					var clase = new String(jQuery(this).attr('class'));
					var filteringColumn = clase.replace("columna-filtros-", "");
					tabla.find("tbody > tr").each(function(){
							jQuery(this).hide();
							if(jQuery(this).find("td:nth-child("+filteringColumn+")").text()==valorDeFiltro){
								jQuery(this).show();
							}
						});
				}
			});
		
		
		jQuery(celdaFiltro).append(select);
	});
}
