/**
 * AJAX Nette Framwork plugin for jQuery
 *
 * @copyright  Copyright (c) 2009 Jan Marek
 * @copyright  Copyright (c) 2009 David Grudl
 * @license    MIT
 * @link       http://nettephp.com/cs/extras/jquery-ajax
 *
 *Modified!
 *
 */

/*
if (typeof jQuery != 'function') {
	alert('jQuery was not loaded');
}
*/

var state

function nette_success(payload)
{
        // redirect
        if (payload.redirect) {
                window.location.href = payload.redirect;
                return;
        }

        // state
        if (payload.state) {
                state = payload.state;
        }

        // snippets
        if (payload.snippets) {
                for (var i in payload.snippets) {
                        if (payload.del){
                            if(payload.del == i){
                                continue;
                            }
                        }
                        nette_updateSnippet(i, payload.snippets[i]);
                        if (payload.ret && i!='snippet--reasonTable'){
                            var sn = $("#" + i);
                            var fOver = $('<div></div>').addClass("fOver "+payload.ret);
                            fOver.height(sn.height());
                            fOver.width(sn.width());
                            fOver.css('top',sn.offset().top);
                            fOver.css('left',sn.offset().left);
                            fOver.hide();
                            fOver.fadeIn();

                            if(payload.ret == 'err' && payload.err_msg){
                                fOver.html("<span>"+payload.err_msg+"</span>");
                            } else {
                                fOver.fadeOut();
                            }

                            $("body").prepend(fOver);
                        }
                }
        }
        $(".ajax-spinner").remove();
}

function nette_updateSnippet (id, html)
{
    $('#' + id).html(html);
    $('#' + id).css("opacity","0.3");
    $('#' + id).animate({ opacity: 1 },"300");
}

// create animated spinner
function nette_createSpinner(id)
{
    return this.spinner = $('<div></div>').attr('id', id ? id : 'ajax-spinner').ajaxStart(function() {
            $(this).show();

    }).ajaxStop(function() {
            $(this).hide().css({
                    position: 'fixed',
                    left: '50%',
                    top: '50%'
            });

    }).appendTo('body').hide();
}


jQuery(function($) {

	$.ajaxSetup({
		success: nette_success,
		dataType: 'json'
	});

	//$.nette.createSpinner();

	// apply AJAX unobtrusive way
//	$('a.ajax').live('click', function(event) {
//		event.preventDefault();
//		if ($.active) return;
//
//          $.post(this.href, nette_success);
//
//		$.nette.spinner.css({
//			position: 'absolute',
//			left: event.pageX,
//			top: event.pageY
//		});
//	});

});

