/**
 * Common AJAX setup
 */

// ajax spinner
$(function () {
	$('<div id="ajax-spinner"></div>').hide().ajaxStart(function () {
		$(this).show();
	}).ajaxStop(function () {
		$(this).hide();
	}).appendTo("body");
});

// prolínací efekt při updatu snippetu
jQuery.extend({
	nette: {
		updateSnippet: function (id, html) {
			$("#" + id).fadeTo("fast", 0.3, function () {
				$(this).html(html).fadeTo("fast", 1);
				$.nette.registerAfterUpdate();
			});
		},

		registerAfterUpdate: function() { }
	}
});


/**
 * Datagrid AJAX support
 */

// links
$("table.datagrid a.datagrid-ajax").live("click", function () {
	$.get(this.href);
	return false;
});

//form buttons
$("form.datagrid :submit").live("click", function (e) {
	$(this).ajaxSubmit(e);
	return false;
});

// form submit
$("form.datagrid").livequery("submit", function (e) {
	$(this).ajaxSubmit(e);
	return false;
});


/**
 * Datagrid JS support
 */

// obarvování zaškrtnutého řádku
function datagridCheckboxClicked() {
	var tr = $(this).parent().parent();
	if ($(this).is(":checked")) tr.addClass("selected");
	else tr.removeClass("selected");
}

// při označení / odznačení a načtení
$("table.datagrid td.checker input:checkbox").livequery(datagridCheckboxClicked)
	.live("change", datagridCheckboxClicked);


// invertor
$("table.datagrid tr.header th.checker").livequery(function () {
	var table = $(this).parents("table.datagrid");
	var inputs = table.find('td.checker input:checkbox');
	$(this).append($('<span class="icon icon-invert" title="Invert" style="margin: 0pt auto; float: none;" />').click(function () {
		inputs.each(function() {
			this.checked = !this.checked;
		}).trigger('change');
	}));
});

// datepicker
$("input.datepicker:not([readonly])").livequery(function () {
	$(this).datepicker();
});

// ajaxové filtrování formulářů datagridů po stisknutí klávesy <ENTER>
$("form.datagrid table.datagrid tr.filters input[type=text]").livequery("keypress", function (e) {
	if (e.keyCode == 13) {
		$(this).parents("form.datagrid").find("input:submit[name=filterSubmit]").ajaxSubmit(e);
		return false;
	}
});

// ajaxové filtrování formulářů datagridů pomocí změny hodnoty selectboxu nebo checkboxu a inputu
$("form.datagrid table.datagrid").find("tr.filters input, tr.filters select").livequery("change", function (e) {
	$(this).parents("form.datagrid").find("input:submit[name=filterSubmit]").ajaxSubmit(e);
	return false;
});

// ajaxová změna stránky formuláře datagridů po stisknutí klávesy <ENTER>
$("form.datagrid table.datagrid tr.footer input[name=pageSubmit]").livequery(function () {
	$(this).hide();
});
$("form.datagrid table.datagrid tr.footer input[name=page]").livequery("keypress", function (e) {
	if (e.keyCode == 13) {
		$(this).parents("form.datagrid").find("input:submit[name=pageSubmit]").ajaxSubmit(e);
		return false;
	}
});

//ajaxová změna počtu řádků na stránku datagridů pomocí změny hodnoty selectboxu
$("form.datagrid table.datagrid tr.footer input[name=itemsSubmit]").livequery(function () {
	$(this).hide();
});
$("form.datagrid table.datagrid tr.footer select[name=items]").livequery("change", function (e) {
	$(this).parents("form.datagrid").find("input:submit[name=itemsSubmit]").ajaxSubmit(e);
});

