
/**
 * Formulare OCZ
 */
(function() {
    
    $.fn.feedback = function() {
        
        var form = $('form',$(this));
        var Request = function(){
            this.params = new Object;
            
            this.populate = function(obj) {
                if (obj.attr('name')) {
                    this.add(obj.attr('name'),obj.val());
                }
            }
            
            this.add = function(name,value) {
                if (!this.params[name]) {
                    this.params[name] = new Array();
                }
                
                this.params[name].push(value);
            }
            
            this.serialize = function() {
                var string = '';
                
                for (var p in this.params) {
                    for (var i=0;i<this.params[p].length;i++) {
                        if (string != '') {
                            string += '&';
                        }
                        
                        string += p+'='+this.params[p][i];
                    }
                }
                
                return string;
            }
        };

        $(':radio',form).change(function(){
            var _self = $(this);
            
            $(':radio[name="'+ $(this).attr('name') +'"]',form).each(function(){
                var id = $(this).attr('id').match(new RegExp('([0-9]+)$'))[0];
                var ta = $('#ta'+id,form);
                
                if (ta.attr('type') == 'text') {
                    if (_self.val() == $(this).val()) {
                        ta.parent().toggle();
                    } else {
                        ta.parent().hide();
                    }
                }
            });
        });
        
        $(':checkbox',form).change(function(){
            var id = $(this).attr('id').match(new RegExp('([0-9]+)$'))[0];
            var ta = $('#ta'+id,form);
            
            if (ta.attr('type') == 'text') {
                ta.parent().toggle();
            }
        });
        
        form.submit(function(){
            var send = $('button',$(this));
            var params = new Request();
            send.attr('disabled','disabled');
            
            $(':checked',$(this)).each(function(){
                params.populate($(this));
            });
            
            $(':hidden',$(this)).each(function(){
                params.populate($(this));
            });
            
            $(':text',$(this)).each(function(){
                params.populate($(this));
            });
            
            $.ajax({
                type: 'GET',
                url: '/ajax/feedback/evaluate/',
                data: params.serialize(),
                dataType: 'html',
                success: function() {
                    send.removeAttr('disabled');
                },
                complete: function() {
                    new Tooltip(new TooltipRequest({
                        url: '/ajax/messenger/'
                    }));
                }
            });
            
            send.removeAttr('disabled');
            return false;
        });

    }
})(jQuery);

/**
 * Modul pro loader
 */
(function() {

    $.fn.feedback_loader = function(params) {
        var _self = $(this);
        
        $(this).html('stahuji data..');
        $(this).addClass('loading');
        
        $.ajax({
            type: 'GET',
            url: '/ajax/feedback/get/',
            data: {id: params.id_feedback, view: 'XSLT'},
            dataType: 'html',
            async: false,
            success: function(data) {
                if (params.title && params.title.length > 0) {
                    _self.before($('<h2 class="headline"><span>'+params.title+'</span></h2>'));
                }
                
                var cnt = $(data);
                cnt.feedback();
                cnt.replaceAll(_self);
            }
        });
    }
    
})(jQuery);

/**
 * Callback pro tooltip
 */
function feedback_callback(params) {
    
    var cnt;
    
    params.view = 'XSLT';
    
    $.ajax({
        type: 'GET',
        url: '/ajax/feedback/get/',
        data: params,
        dataType: 'html',
        async: false,
        success: function(data) {
            cnt = $(data);
            cnt.feedback();
        }
    });
    
    return new TooltipRequest({
        content: cnt,
        size: 'wide'
    });
    
}

