(function($){  
	$.fn.overzichtToggle = function(options) {  
	
		var defaults = {};  
		var options = $.extend(defaults, options);  
		
		return this.live('click', function() {  
			
			var evtElem = $(this);
			var ajaxUrl = evtElem.metadata().ajaxUrl;
			// Als de geklikte rij verborgen is.
			if( evtElem.next('tr.hidden').css('visibility') == 'hidden' ) {
				// Doorloop all open rijen.
				evtElem.siblings('tr.rij_open').each(
					function() {
						row = $(this);
						// Verander het min-plus icoontje in een plus.
						$('td div.toggle_button', row.prev())
							.removeClass('open');
							
						// Sluit rij.
						$('td div.table_wrapper:first', row).hide();
						row.removeClass('rij_open');
						
						// Verwijder content als het met AJAX geladen is.
						if( row.find('.AJAX').length > 0 ) {
							row.find('.AJAX').parent().empty();
						}
					}
				);
				// Open de geklikte rij, maar eerste even checken of er al content achter zit.
				evtElem.next('tr.hidden').addClass('rij_open');
				if( evtElem.next('tr.hidden').find('div.table_container:first').children().length > 0 ) {
					// Maak bestaande tabel zichtbaar.
					evtElem.next('tr.hidden').find('div.table_wrapper:first')
						.slideDown('fast');
						
					// Verander het min-plus icoontje in een min.
					$('td div.toggle_button', evtElem)
						.addClass('open');
				}else{
					$('.wait').show();
					// Laad AJAX content
					evtElem.next('tr.hidden').find('div.table_container:first')
						.load(
							ajaxUrl,
							function(){
								// Maak bestaande tabel zichtbaar.
								evtElem.next('tr.hidden').find('div.table_wrapper:first')
								.slideDown('fast');
								
								// Verander het min-plus icoontje in een min.
								$('td div.toggle_button', evtElem).addClass('open');
								$('.wait').hide();
							});
				}
			}else{
				// Verander het min-plus icoontje in een plus.
				$('td div.toggle_button', evtElem)
					.removeClass('open');
					
				// Sluit rij.
				$('td div.table_wrapper:first', evtElem.next()).hide();
				evtElem.next().removeClass('rij_open');
				
				// Verwijder content als het met AJAX geladen is.
				if( evtElem.next('tr.hidden').find('.AJAX').length > 0 ) {
					evtElem.next('tr.hidden').find('.AJAX').parent().empty();
				}
			}
		});  
	};  
})(jQuery);  