(function($){
	$.fn.dxgrid_reload = function(form) {
		fdata = form.serialize();
		fdata += '&pg_no=' + form.find('.paginator.current').text();
		$.post(form.attr('action'), fdata, function(data, textStatus) {
		//$.post(form.attr('action'), form.serialize(), function(data, textStatus) {
			form.find('div.block-controls').replaceWith(data['controls']);
			form.find('tbody').replaceWith(data['body']);
			form.find('ul.message').replaceWith(data['results']);
			form.applyTemplateSetup();
			$("th.black-cell").removeClass("black-cell");
		}, "json");
		form.find('span.loading').parent().addClass('black-cell');
	};
	$.fn.dxwidgets = function(){
		// Control Panel
		/*
		$('.dxcp a').click(function(event){
			event.preventDefault();
			var uri = $(this).attr('href');
			$('#content').loadWithEffect(uri, null,function(){
				var target = $(this).attr('target');
				if(target) {
					$(target).applyTemplateSetup();
					$.fn.dxwidgets();
				}
			});
			return false;
		});
		*/
		// Grid
		$('form.dxgrid').each(function(event){
			//alert('tralala');
			var form = $(this);
			
			$(this).find('.search').live('keypress', function(e) {
				code = (e.keyCode ? e.keyCode : e.which);
				if (code == 13) {
					form.find('input[name=search]').val($(this).val());
					form.find('input[name=search2]').val($(this).val());
					$.fn.dxgrid_reload(form);
				}
			});
			
			$(this).find('.paginator').live('click', function() {
				form.find('.paginator.current').removeClass('current')
				$(this).addClass('current');
				$.fn.dxgrid_reload(form);
			});

			// select/unselect all
			$(this).find('input[name=checker]').change(function () {
				var checkbox = $(this);
				var checkgroup = $('input[name=' + checkbox.val() + '[]]');
				
				if(checkbox.is(':checked')) {
					checkgroup.attr('checked', 'checked');
				} else {
					checkgroup.removeAttr("checked")
				}
			});
			
			$(this).find("#pg_no").live('change',function(){
					$.fn.dxgrid_reload(form);
			});
			// page size
			$(this).find("#pg_size").live('change',function(){
				$.fn.dxgrid_reload(form);
			});
			// table search
			$(this).find(".tablesearch").live('change',function(){
				hodnota = $(this).val(hodnota);
				$.fn.dxgrid_reload(form);
			});
			// page filters
			$(this).find("select.tb-filter").live('change',function(){
				$.fn.dxgrid_reload(form);
			});
			// select all
			$(this).find("#select-all").live('click',function(){
				form.find('input[name="ids[]"]').attr('checked', true);
				return false;
			});
			// unselect all
			$(this).find("#unselect-all").live('click',function(){
				form.find('input[name="ids[]"]').attr('checked', false);
				return false;
			});
			// #submit button
			$(this).find("button#submit").live('click',function(){
				$.fn.dxgrid_reload(form);
			});
			//sort button up
			$(this).find('.column-sort a').live('click', function(event){
				value = $(this).attr('href');
				form.find('#order_by').val(value);
				event.preventDefault();
				$.fn.dxgrid_reload(form);
				return false;
			});
			
			// button reload
			$(this).find('.dxreload').live('click', function(event){
				event.preventDefault();
				$.fn.dxgrid_reload(form);
				return false;
			});
			
			// go to first page
			$(this).find('.dxpf').live('click',function(event){
				event.preventDefault();
				
				form.find('.paginator.current').removeClass('current')
				form.find('.paginator:first').addClass('current');
				return $.fn.dxgrid_reload(form);
				/*
				form.find('#pg_no').each(function() {
					$(this).val(1);
					$(this).trigger('change');
				});
				return false;
				*/
			});
			// go to previous page
			$(this).find('.dxpp').live('click',function(event){
				event.preventDefault();
				
				choose = parseInt(form.find('.paginator.current').text()) - 1;
				if (choose < 1) return false;
				form.find('.paginator.current').removeClass('current')
				form.find('.paginator').each(function() {
					if ($(this).text() == choose) {
						$(this).addClass('current');
						return $.fn.dxgrid_reload(form);
					}
				});
				/*
				var pgno = parseInt(form.find('#pg_no').val());
				if(pgno > 1){
					form.find('#pg_no').each(function(){
						$(this).val(pgno - 1);
						$(this).trigger('change');
					});
				}
				*/
				return false;
			});
			// go to next page
			$(this).find('.dxpn').live('click',function(event){
				event.preventDefault();
				
				choose = parseInt(form.find('.paginator.current').text()) + 1;
				if (choose > form.find('.paginator').size()) return false;
				form.find('.paginator.current').removeClass('current')
				form.find('.paginator').each(function() {
					if ($(this).text() == choose) {
						$(this).addClass('current');
						return $.fn.dxgrid_reload(form);
					}
				});
				/*
				var pgno = parseInt(form.find('#pg_no').val());
				if(pgno<form.find('#pg_no option').size()){
					form.find('#pg_no').each(function(){
						$(this).val(pgno + 1);
						$(this).trigger('change');
					});
				}
				*/
				return false;
			});
			// go to last page
			$(this).find('.dxpl').live('click',function(event){
				event.preventDefault();
				
				form.find('.paginator.current').removeClass('current')
				form.find('.paginator:last').addClass('current');
				return $.fn.dxgrid_reload(form);
				/*
				form.find('#pg_no').each(function(){
					$(this).val($(this).find('option').size());
					$(this).trigger('change');
				});
				return false;
				*/
			});
		});
	}
	$(document).ready(function(){
		$.fn.dxwidgets();
	});
})(jQuery);
