/**
 * Dotcom srl - Ajax Messenger (jQuery plugin)
 */

function myAlert(message, type){
	$.messenger.myAlert(message, type);
}

(function($) {

    $(document).bind('ajaxComplete', function(event, XMLHttpRequest, ajaxOptions){
    	
    	var response = XMLHttpRequest.responseText;
        response = $.parseJSON(response);

        if ( response._messages != undefined){
            $.messenger.parse_messages(response._messages);
        }
    });
    
    $.ajaxSetup({global: true});
    $.extend({
        messenger: {
            parse_messages: function(messages){
                var errors = messages.errors;
                var traces = messages.traces;
                var messages = messages.messages;
                
                if ( errors != undefined){
                    for (var i=0; i < errors.length; i++)
                    {
                        var message = errors[i];
                        var msg  = '<div class="ui-state-error ui-corner-all" style="padding: 5px;">';
                            msg += '<span class="ui-icon ui-icon-alert" style="float: left; margin: -3px 6px 0pt 0pt;"></span>';
                            msg += message;
                            msg += '</div>';
                        $.messenger.show_message(msg);
                    }
                }
                
                if ( messages != undefined){
                    for (var i=0; i < messages.length; i++)
                    {
                        var message = messages[i];
                        var msg  = '<div class="ui-state-highlight ui-corner-all" style="padding: 5px;">';
                            msg += '<span class="ui-icon ui-icon-info" style="float: left; margin: -3px 6px 0pt 0pt;"></span>';
                            msg += message;
                            msg += '</div>';
                        $.messenger.show_message(msg);
                    }
                }
                
                if ( traces != undefined){
                    for (var i=0; i < traces.length; i++)
                    {
                        var message = traces[i];
                        var msg  = '<div class="ui-state-highlight ui-corner-all" style="padding: 5px;">';
                        msg += '<span class="ui-icon ui-icon-notice" style="float: left; margin: -3px 6px 0pt 0pt;"></span>';
                        msg += message;
                        msg += '</div>';
                        $.messenger.show_message(msg);
                    }
                }
            },
            show_message: function(message){
                if ( $('#flash_message_modal_dialog').length < 1) {
                    $('body').append('<div id="flash_message_modal_dialog" title="Message" >'+message+'</div>');
                    $("#flash_message_modal_dialog").dialog({
                        bgiframe: true,
                        modal: true,
                        width: 'auto',
                        buttons: {
                            Ok: function() {
                                $(this).dialog('close');
                            }
                        },
                        close: function(event, ui){
                            $("#flash_message_modal_dialog").remove();
                        }
                    });
                } else {
                    $('#flash_message_modal_dialog').append(message);
                }
            },
            myAlert: function(message, type){
                var msg  = '';
                if (type == 'info') {
	                msg += '<div class="ui-state-highlight ui-corner-all" style="padding: 5px;">';
	                msg += '<span class="ui-icon ui-icon-info" style="float: left; margin: -3px 6px 0pt 0pt;"></span>';
	                
                } else if (type == 'notice') {
                	msg += '<div class="ui-state-highlight ui-corner-all" style="padding: 5px;">';
                    msg += '<span class="ui-icon ui-icon-notice" style="float: left; margin: -3px 6px 0pt 0pt;"></span>';
                    
                } else if (type == 'error') {
                	msg += '<div class="ui-state-error ui-corner-all" style="padding: 5px;">';
                    msg += '<span class="ui-icon ui-icon-alert" style="float: left; margin: -3px 6px 0pt 0pt;"></span>';
                }
                
                msg += message;
                msg += '</div>';
                $.messenger.show_message(msg);
            }
        }
    });

})(jQuery);
