/**
 * AJAX Nette Framwork plugin for jQuery
 *
 * @copyright  Copyright (c) 2009, 2010 Jan Marek
 * @copyright  Copyright (c) 2009, 2010 David Grudl
 * @license    MIT
 * @link       http://nette.org/cs/extras/jquery-ajax
 */

/*
if (typeof jQuery != 'function') {
    alert('jQuery was not loaded');
}
*/

(function($) {

    $.nette = {
        success: function(payload)
        {
            // redirect
            if (payload.redirect) {
                window.location.href = payload.redirect;
                return;
            }

            // state
            if (payload.state) {
                $.nette.state = payload.state;
            }

            // snippets
            if (payload.snippets) {
                for (var i in payload.snippets) {
                    $.nette.updateSnippet(i, payload.snippets[i]);
                }
                redraw();
                cufonize();
            }
            
            // rozsireni pro aktualizaci Vyhledavaciho formulare
            if (payload.searchForm) {
                for (var i in payload.searchForm) {
                    var control = payload.searchForm[i];
                    if (control.name == 'lokalita') {
                        $('#search-form select[name=' + control.name + ']').html(control.html.join(''));
                    }
                    if (control.name == 'cenaOd'
                     || control.name == 'cenaDo'
                     || control.name == 'limitCenaOd'
                     || control.name == 'limitCenaDo') {
                        $('input[name=' + control.name + ']').val(control.value);
                    }
                }
                redraw();
            }

            /*if (payload.hideMap) {
                $('#realty-map *').fadeOut(200, 'swing', function() {
                    $(this).parent().slideUp(200, 'swing');
                });
            }*/
        },

        updateSnippet: function(id, html)
        {
            $('#' + id).html(html);
            /*$('#' + id).animate({ 'opacity': 0 }, 50, 'swing', function() {
                $('#' + id).html(html);
                $('#' + id).animate({ 'opacity': 1 }, 50, 'swing');
            });*/
        },

        // current page state
        state: null,

        // spinner element
        spinner: null
    };


})(jQuery);



/* AJAX spinner */
(function($) {

    $.ajaxSpinner = {
        
        over: function(sel) {
            container = $(sel);
        },
        
        init: function() {
            $('#ajax-loader').ajaxStart(function(e) {
                $(this).detach().appendTo(container).show();
            }).ajaxStop(function() {
                $(this).hide().detach().appendTo('body');
            });
        },

        container: $('#content'), // jQuery object
    }

})(jQuery);



jQuery(function($) {

    $.ajaxSetup({
        success: $.nette.success,
        dataType: 'json'
    });

    // apply AJAX unobtrusive way
    /*$('a.ajax').live('click', function(e) {
        e.preventDefault();
        if ($.active) return;
        
        $.ajaxSpinner.over('#content');
        $.post(this.href, $.nette.success);
    });*/

});

