function opmaakRijen(target) {
	$('table.sql-tabel tbody tr:odd').removeClass('sql-tabel-even').addClass('sql-tabel-oneven');
	$('table.sql-tabel tbody tr:even').removeClass('sql-tabel-oneven').addClass('sql-tabel-even');
}

function hoverEffect(target) {
	$(target+' tbody tr').hover(function() {
										 $(this).find('td').addClass('hovered');
										 }, function() {
											 $(this).find('td').removeClass('hovered');
										 });
}

function toggleSelectAll(obj) {
	var s = obj.checked;
	$('#tbldata tbody tr input:checkbox').each(function() {this.checked = s;});
}

function verwijderRecord(id) {
	$.ajax({
		   type: "POST",
		   url: pagina,
		   data: "opslaan=1&element_id="+id+"&wat=verwijder&id="+id,
		   success: function() {
			   herlaadPagina();
		   }
		   });
}

function geefSelectie() {
	var str = '';
	$('#tbldata tbody :checked').each(function() {
											   str += '&selectie[]='+this.value;
											   });
	return str;
}

function selectieActiveren() {
	doeSelectie("activeerSelectie");
}

function selectieDesactiveren() {
	doeSelectie("desactiveerSelectie");
}

function selectieVerwijderen() {
	doeSelectie("verwijderSelectie");
}

function doeSelectie(wat) {
	var q = geefSelectie();
	if(q == '') {
		return false;
	}
	
	$.ajax({
		   type: "POST",
		   url: pagina,
		   data: "opslaan=1&wat="+wat+q,
		   success: function(msg) {
			   herlaadPagina();
		   }
		   });
}

function voegVerwijderknopToe(target) {
	$(target+' tbody tr').each(function(i) {
										//num zit in de ID-kolom
										var num = $("div",($(this).children())[0]).html();
										$(this).prepend('<td class="icon"><input name="selectie" type="checkbox" value="'+num+'"></td>');
										$(this).prepend('<td class="icon"><a href="javascript:verwijderRecord('+num+');" class="noborder"><img src="images/icon-delete.png" width="16" height="16" alt="'+taal['verwijderen']+'"></a></td>');
										$(this).attr('recordID',num);
										$(this).attr('id','record'+num);
										});
}

function voegCheckboxToe(target) {
	$(target+' thead tr:first-child').each(function() {
										$(this).prepend('<th class="icon"><input name="checkAll" type="checkbox" value="" onclick="toggleSelectAll(this);"></th>');
										$(this).prepend('<th></th>');
										});
}

function voegBewerkknopToe(target) {
	$(target+' tbody tr').each(function() {
										var num = $(this).attr('recordID');
										$(this).prepend('<td class="icon"><a href="javascript:bewerkRecord('+num+');" class="noborder"><img src="images/icon-edit.png" width="16" height="16" alt="'+taal['bewerken']+'"></a></td>');
										});
	$(target+' thead tr:first-child').each(function() {
													$(this).prepend('<th></th>');
													});
}

function maakTabelKlaar(target) {
   $(target).tablesorter();
   $(target).bind("sortEnd", function() {
										  opmaakRijen();
											});
}

function printSelectieTabel(target) {
	$.ajax({
		   url: 'admin/selectieTabel.html',
		   success: function(data) {
			   $(target).html(data);
			   opmaakRijen();
		   }
		   });
}

function keuzelijst(target,values,leegVooraan) {
	if(leegVooraan) {
		$(target).append('<option value=""></option>');
	}
	
	for(val in values) {
		$(target).append('<option value="'+escape(values[val])+'">'+values[val]+'</option>');
	}
}

String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}
String.prototype.endsWith = function(str)
{return (this.match(str+"$")==str)}

function tabelGelijkeKolommen(bron,doel) {
	$(doel+' tbody td').each(function(i) {
										   var t = $($(bron+' thead th')[i])
										   var w = t.width();
										   $(this).width(w);
										   t.width(w);
										   });
}

var tabelFilters = null;

function filterTabel_init() {
	tabelFilters = new Array();
}

function filterInit(bron,type,tabel,kolom) {
	//alert('bron='+bron+'\ntype='+type+'\ntabel='+tabel+'\nkolom='+kolom);
	$(bron).data('filterTabel',tabel);
	$(bron).data('filterKolom',kolom);
	$(bron).data('filterType',type);
	
	if(tabelFilters[tabel] == undefined) {
		tabelFilters[tabel] = new Array();
	}
	(tabelFilters[tabel]).push(bron);
	
	if(type == 'select') {
		$(bron).change(function() {
								filterTabel($(bron).data('filterTabel'));
								});
	} else if(type == 'text') {
		$(bron).keyup(function() {
							   filterTabel($(bron).data('filterTabel'));
							   });
	}
}

function filterTabel(tabel) {
	var arr = tabelFilters[tabel];
	
	//maak eerst elke rij zichtbaar
	$(tabel+' tbody tr').each(function() {
									   $(this).css('display','table-row');
									   });
	
	//overloop elke filter
	for(i in arr) {
		var t = $(arr[i]);
		var type = t.data('filterType');
		var waarde = t.val();
		var kolomid = t.data('filterKolom');
		var aantalRijen = $(tabel+' tbody tr').size()-1;
		
		//overloop de kolom waarop de filter inwerkt
		$(tabel+' tbody').find('td').filter(':nth-child('+(kolomid+1)+')').each(function() {
																						  var rij = $(this).parent();
																						  var zichtbaar = rij.css('display')=='table-row';
																						  var celinhoud = $(this).find('div').html().toLowerCase();
//																						  alert('rij='+rij+'\ncelinhoud='+celinhoud+'\nwaarde='+waarde);
																						  
																						  //als de rij nog zichtbaar is, zijn de vorig filters voldaan.
																						  //misschien deze filter niet?
																						  if(zichtbaar && (waarde != '')) {
																							  //wanneer we een tekstfilter hebben, kijk of de celinhoud begint met...
																							  if(type == 'text') {
																								  if(!celinhoud.startsWith(waarde.toLowerCase())) {
																									  rij.css('display','none');
																									  aantalRijen-=1;
																								  }
																							  //bij een keuzelijst kijken we of het datgene is
																							  } else if(type == 'select') {
																								  if(celinhoud != unescape(waarde).toLowerCase()) {
																									  rij.css('display','none');
																								  }
																							  }
																						  }
																						  });
	}
	
	opmaakRijen();
}
