wv = {};
wv.DateTime = {};

(function($) {

	wv.DateTime.setTo = function(prefix, year, mon, day, hour, minute)
	{
		var d = new Date();
		d.setFullYear(year, mon-1, day);
		$('#'+prefix+'_date').datepicker('setDate', d);

		// Angeblich soll das altField auch durch setDate korrekt aktualisiert
		// werden. Das sagt zumindest http://dev.jqueryui.com/ticket/3622.
		// Aber irgendwie will das nicht so, wie wir gern wollen. Daher hier die
		// Holzhammer-Variante.

		$('#'+prefix+'_date_alternate').val($.datepicker.formatDate('dd.mm.yy', d));

		$('select[name='+prefix+'_hour]').val(hour);
		$('select[name='+prefix+'_minute]').val(minute);
	};

	wv.checkAllHandler = function(evt) {
		var type  = $(evt.target).attr('rel');
		var rel   = $(evt.target).parents('span').attr('rel');
		var boxes = $('span.wv-form-check-group[rel="' + rel + '"] input[type=checkbox]');
		boxes.attr('checked', type == 'all' ? 'checked' : '');
		return false;
	};

})(jQuery);

jQuery(function($) {
	$('input[class^=filter_input_]').keyup(function(event)
	{
		// Klassen- und Tabellennamen ermitteln

		var className = $(this).attr('class');
		var tableName = className.replace('filter_input_', '');
		var table     = $('#' + tableName);

		// Wert auch in allen anderen Suchfeldern übernehmen

		$('input.' + className).val($(this).val());

		// Tabelle filtern

		event.preventDefault();
		var c = event.keyCode;

		if (c == 8 || c == 46 || c == 109 || c == 189 || (c >= 65 && c <= 90) || (c >= 48 && c <= 57)) {
			var keyword = new RegExp($(this).val(), 'i');

			$('tbody tr', table).each(function() {
				var $tr = $(this);
				$('td', $tr).filter(function() {
					return keyword.test($(this).text());
				}).length ? $tr.show() : $tr.hide();
			});
		}
	});

	$('span.wv-form-check-links a').live('click', wv.checkAllHandler);
});
