
function formProcess(form)
{
    form = $(form);
    form.find('input:submit').attr('disabled', true);

    var container = $('.jqimessage');
    container.html(log_loading_html);
    container.load(form.attr('action'), form.formToArray(true));
}

$(document).ready(function() {
    $('#personal-owner-messaging').click(function(event) {
        event.preventDefault();
        IiiPopup().load('/send-message/');
    });
    $('#personal-talk-start').click(function(){
        var list = $('#personal-inf-talk-selector div.item');
        if (list.length == 0) return false;
        if (list.length > 1) {
            var selector = $('#personal-inf-talk-selector');
            var coord = $(this).offset();
            selector.css('top', coord.top - 70);
            selector.css('left', coord.left);
            selector.toggle();
        } else {
            $('a.inf', list[0]).click();
        }
        return false;
    });
    IiiPersonalCommon.init();
});

IiiPersonalCommon = {
    preview: false,
    init: function() {
        IiiPersonalCommon.awards.init();
        IiiPersonalCommon.friends.init();
        IiiPersonalCommon.photos.init();
        IiiPersonalCommon.news.init();
        IiiPersonalCommon.talk.init();
    },
    awards: {
        init: function() {
            var awardBox, issetBodyHandler = false;
            var clickHandler = function(event) {
                var img = $(this);
                var src = img.attr('rel');
                var offset = img.offset();
                if (!src) {
                    return;
                }
                event.stopPropagation();
                if (!awardBox) {
                    awardBox = $('<div />').css({position: 'absolute', zIndex: 9999}).appendTo('body');
                }
                awardBox.css({top: offset.top - 75, left: offset.left - 75})
                        .html('<img src="' + src + '" width="200" height="200" style="cursor: pointer;" alt="" />')
                        .show();

                if (issetBodyHandler) {
                    return;
                }
                $('body').one('click', function() {
                    awardBox.hide();
                    issetBodyHandler = false;
                });
                issetBodyHandler = true;
            };

            $('#personal-awards-link').click(function(event) {
                event.preventDefault();
                IiiPopup($('#personal-awards-wrap').html(), {top: '15%', callback: function() {
                    if ($.browser.msie && awardBox) {
                        awardBox.hide();
                    }
                }}).container.find('.award-min').click(clickHandler);
            });
            $('#personal-awards').find('.award-min').click(clickHandler);
        }
    },
    friends: {
        init: function() {
            $('#personal-friends-add, #personal-friends-del').click(function(event) {
                event.preventDefault();
                var href = $(this).attr('href');
                if (href.length > 1) {
                    IiiPersonalCommon.friends.make(href, function() {
                        $('#personal-friends-make').toggleClass('friend');
                    });
                } else {
                    IiiPersonalCommon.friends.openSelector();
                }
            });
        },
        showAll: function() {
            var prompt = IiiPopup('', {
                top: '16%',
                classes: 'personal-friends-popup'
            }).showLoading();

            $.ajax({
                url: '/friends/',
                data: 'preview=' + (IiiPersonalCommon.preview ? 1 : 0),
                success: function(data) {
                    prompt.html(data);
                    var $container = prompt.container.find('.personal-infs');
                    var $blocks = $container.children();
                    var h = $container.height();
                    $container.scroll(function() {
                        $blocks.each(function() {
                            var self = $(this);
                            var top = self.position().top;
                            if (top < h && self.attr('loading') == '0') {
                                self.attr('loading', '1');
                                $.ajax({
                                    url: '/friends-block/page/' + self.attr('page'),
                                    data: 'preview=' + (IiiPersonalCommon.preview ? 1 : 0),
                                    success: function(data) {
                                        self.html(data).css('height', 'auto');
                                    }
                                });
                            }
                        });
                    });
                    if (typeof IiiPersonalOwner == 'object') {
                        IiiPersonalOwner.friends.init(prompt.container);
                    }
                },
                error: function() {
                    prompt.html('<h1>' + _('Ошибка') + '</h1>');
                }
            });
        },
        make: function(url, success) {
            success = success || function() {};
            $.ajax({
                url: url,
                type: 'POST',
                complete: function(xhr, status) {
                    if (status == 'success') {
                        $.prompt(xhr.responseText);
                        success();
                    } else {
                        $.prompt('<h1>' + _('Ошибка') + '</h1>');
                    }
                }
            });
        },
        openSelector: function() {
            IiiPopup('', {
                top: '18%',
                classes: 'personal-friends-selector'
            }).load('/friends-selector/', null, function() {
                $('#personal-friends-selector').find('a').click(function(event) {
                    event.preventDefault();
                    var self = $(this);
                    IiiPersonalCommon.friends.make(self.attr('href'), function() {
                        self.parent().toggleClass('friend');
                    });
                });
            });
        }
    },
    interests: {
        showAll: function() {
            IiiPopup('', {
                top: '22%',
                classes: 'personal-interests-popup'
            }).load('/interests/');
        }
    },
    infs: {
        showAll: function() {
            IiiPopup('', {
                top: '16%',
                classes: 'personal-owner-infs-popup'
            }).load('/siblings/');
        }
    },
    photos: {
        init: function() {
            $('img', '#personal-owner-photos-box').add('#personal-owner-photo').click(function() {
                IiiPersonalCommon.photos.open($(this).attr('name'));
            });
        },
        initPopup: function() {
            var $container = $('.jqimessage', '#jqi');
            var $form = $('#photos-form');
            var $items = $('#photos-preview').find('div');

            $('#photos-image').load(function() {
               $(this).css('display', 'inline');
            });
            $items.click(function() {
                var $item = $(this);
                $item.addClass('selected').siblings().removeClass('selected');
                var $img = $item.find('img');
                if ($img.length > 0) {
                    var origname = $img.attr('origname');
                    var href = $img.attr('src').replace(/[^\/]+$/, origname);
                    var title = $img.attr('title');
                    $('#photos-image').attr('src', href);
                    $('#photos-title').html(title);
                    if ($form.length == 0) {
                        return;
                    }
                    $('#photos-form-file').hide();
                    $form.find('button[name="delete"]').show();
                    $form.find('input[name="filename"]').val(origname);
                    $form.find('input[name="title"]').val(title);
                    if ($img.attr('main') == '1') {
                        $form.find('input:checkbox').attr({disabled: true, checked: true});
                    } else {
                        $form.find('input:checkbox').attr({disabled: false, checked: false});
                    }
                } else {
                    $('#photos-image').css('display', 'none');
                    $('#photos-title').html('');
                    $('#photos-form-file').show();
                    $form.find('button[name="delete"]').hide();
                    $form.find('input[name="filename"]').val('');
                    $form.find('input[name="title"]').val('');
                    $form.find('input:checkbox').attr({disabled: false, checked: false});
                }
            }).filter('.selected, :first').eq(0).click();

            $('#photos-next').click(function() {
                var next = $items.filter('.selected').next();
                (next.length > 0 ? next : $items.filter(':first')).click();
            });
            $('#photos-prev').click(function() {
                var prev = $items.filter('.selected').prev();
                (prev.length > 0 ? prev : $items.filter(':last')).click();
            });

            $form.find('button').click(function(event) {
                event.preventDefault();
                if ($form.find('input[name="filename"]').val()) {
                    var $file = $form.find('input:file');
                    $file.data('name', $file.attr('name')).attr('name', '');
                }
                $form.attr('action', $(this).attr('action'));
                $form.ajaxSubmit({
                    complete: function(xhr, status) {
                        if (status == 'success' && xhr.responseText) {
                            $container.html(xhr.responseText);
                            IiiPersonalCommon.photos.initPopup();
                        } else {
                            $.prompt('<h1>' + _('Ошибка') + '</h1>');
                            var $file = $form.find('input:file');
                            $file.attr('name', $file.data('name'));
                        }
                    }
                });
            });
        },
        open: function(name) {
            var url = '/owner-photos/name/' + name;
            var params = 'preview=' + (IiiPersonalCommon.preview ? 1 : 0);
            IiiPopup('', {classes: 'photos-popup'}).load(url, params, function(xhr, status) {
                if (status == 'success') {
                    IiiPersonalCommon.photos.initPopup();
                }
            });
        }
    },
    news: {
        init: function() {
            $('.plate-box-tools a', '#personal-news').click(function() {
                var $this = $(this);
                $('.plate-box', '#personal-news').load($this.attr('href'), null, function() {
                    IiiPersonalCommon.news.init();
                });
            });
        }
    },
    talk: {
        init: function() {
            $('a.inf', '#personal-inf-talk-selector').click(function(){
                var coord = $('#personal-talk-start').offset();
                var win = $('#form_talk');
                win.css('top', coord.top - 70 + 'px');
                win.css('left',coord.left - 18 + 'px');
                $('#personal-inf-talk-selector').hide();
                IiiPersonalCommon.talk.show($(this).attr('href'));
                return false;
            });
            $('#personal-inf-talk-selector-close-btn').unbind('click').click(function(){
                $('#personal-inf-talk-selector').hide();
                return false;
            });
            $('#personal-inf-talk-selector-close-icon').unbind('click').click(function(){
                $('#personal-inf-talk-selector').hide();
                return false;
            });
        },
        show: function(url) {
            $('#form_talk').html(log_loading_html).show();
            if (url == null) {
                url = webSrvs.personal.talkWinUrl;
            }
            $.php(url, {});
        },
        closeWin: function() {
            if (IiiPersonalCommon.talk.timer != false) {
                clearInterval(IiiPersonalCommon.talk.timer);
                IiiPersonalCommon.talk.timer = false;
            }
            $('#form_talk').hide();
            $('#personal-talk-dialog-area').data('replicas', []);
        },
        initWin: function(uuid) {
            $('#personal-talk-editor-close-icon').unbind('click').click(function(){
                IiiPersonalCommon.talk.closeWin();
                return false;
            });
            $('#personal-talk-editor-cancel').unbind('click').click(function(){
                IiiPersonalCommon.talk.closeWin();
                return false;
            });
            $('#personal-talk-form').unbind('submit').submit(function(){
                if ($('#personal-talk-replica').val().replace(/\s+/g, '').length == 0) {
                    $('#personal-talk-replica').val('').bt(_('Необходимо ввести первую реплику'),{
                        trigger: ['none'],
                        positions: ['top'],
                        spikeLength: 35,
                        fill: 'rgba(255, 0, 0, .8)'
                    }).btOn();
                    return false;
                }
                $('#personal-talk-dialog-area').empty().append(log_loading_html);
                $('#personal-talk-goto-log').hide();
                $('#personal-talk-submit').attr('disabled','disabled');
                $('#personal-talk-editor-cancel').attr('disabled','disabled');
                $.php(webSrvs.personal.talkSubmitUrl,{replic:$('#personal-talk-replica').val(),inf:uuid});
                return false;
            });
            var el = $('#personal-talk-replica');
            el.bt(_('Введите реплику своего инфа и начните разговор'),{
                trigger: ['none','focus mouseover click'],
                positions: ['top','right'],
                spikeLength: 35
            });
            el.btOn();
            el.unbind('focus').focus(function(){
                $(this).btOff();
            });
        },
        blocked: function() {
            $('#form_talk').hide();
            $.prompt(_('Превышен суточный лимит разговоров'),{zIndex: 1005, top: '45%'});
            $('#personal-talk-submit').removeAttr('disabled');
            $('#personal-talk-dialog-area').empty();
        },
        startDialog: function(key, url) {
            IiiPersonalCommon.talk.sessionKey = key;
            $('#personal-talk-goto-log').data('url',url).unbind('click').click(function(){
                window.location.href = $('#personal-talk-goto-log').data('url');
            });
            $('#personal-talk-dialog-area')
                .data('replicas', [])
                .data('done',false)
                .data('dialog-offset',0)
                .data('dialog.cancel', false);
            $('#personal-talk-editor-cancel').unbind('click').click(function(){
                $('img', '#personal-talk-dialog-area').remove();
                if (IiiPersonalCommon.talk.timer != false) {
                    clearInterval(IiiPersonalCommon.talk.timer);
                    IiiPersonalCommon.talk.timer = false;
                }
                $('#personal-talk-dialog-area').data('replicas', []).data('dialog.cancel', true);
                $('#personal-talk-goto-log').show();
                $('#personal-talk-submit').removeAttr('disabled');
                $('#personal-talk-editor-cancel').unbind('click').click(function(){
                    IiiPersonalCommon.talk.closeWin();
                    return false;
                }).val(_('Закрыть'));
                return false;
            }).val(_('Отмена')).removeAttr('disabled');

            IiiPersonalCommon.talk.timer = setInterval(function(){IiiPersonalCommon.talk.getReplicas()},1000);
            IiiPersonalCommon.talk.say();
        },
        getReplicas: function() {
            if (!$('#personal-talk-dialog-area').data('dialog.cancel')) {
                $.php(webSrvs.personal.talkGetReplicasUrl,{key:IiiPersonalCommon.talk.sessionKey});
            }
        },
        push: function(errno, replicas, done) {
            if (errno == -1) {
                return false;
            }
            var el = $('#personal-talk-dialog-area');
            var rep = el.data('replicas');
            if (errno == -2) {
                el.data('replicas', replicas);
            } else {
                el.data('replicas', rep.concat(replicas));
            }
            if (done) {
                clearInterval(IiiPersonalCommon.talk.timer);
                IiiPersonalCommon.talk.timer = false;
                el.data('done', true);
            }
        },
        say: function() {
            var el = $('#personal-talk-dialog-area');
            var r  = el.data('replicas');
            var d  = el.data('dialog-offset');
            var delay = 1500;
            if (r.length > d) {
                $('img', '#personal-talk-dialog-area').remove();
                var repl = $(r[d]);
                var str = repl.find('span').remove().end().text();
                el.append(r[d]).data('dialog-offset',d+1).scrollTo('max',300);
                delay = str.length * 50;
            }
            if (delay < 1500) {
                delay = 1500;
            }
            if ((r.length == d) && el.data('done')) {
                $('#personal-talk-goto-log').show();
                $('#personal-talk-submit').removeAttr('disabled');
                $('#personal-talk-dialog-area').data('replicas', []).data('done',false).data('dialog-offset',0);
                el.append('<div class="odd" style="text-align:center;"><span>'+_('диалог окончен')+'</span></div>').scrollTo('max',300);
                $('#personal-talk-editor-cancel').unbind('click').click(function(){
                    IiiPersonalCommon.talk.closeWin();
                    return false;
                }).val(_('Закрыть'));
            } else {
                if ($('#form_talk:visible').length > 0) {
                    setTimeout('IiiPersonalCommon.talk.say()', delay);
                }
            }
        },
        sessionKey: '',
        timer: false
    }
}

/**
 * IntenseDebate comments
 */
$(function() {
    (function waiting() {
        if (window.id_add_action) {
            id_add_action('idcomments_func_load', IiiCommentsInit);
            return;
        }
        setTimeout(waiting, 20);
    })();
});

function IiiCommentsInit(args)
{
    if (location.hash.indexOf('#delete-comment') >= 0) {
        var commentId = location.hash.substr(15);
        IiiDeleteComment(commentId);
    }

    if (commentObj.curUser.isLoggedIn) {
        return;
    }
    id_add_action('thread_page_load', IiiReplaceCommentLinks);
    if (!visitorIsLogged) {
        $('#idc-cover a.idc-btn_s').remove();
        var html = '<div>'+_('Комментарии могут оставлять только зарегистрированные пользователи.')+'<br />'
                 + '<a href="' + baseUrl + '/login">'+_('Войдите')+'</a> '+_('или')+' <a href="' + baseUrl + '/signup">'+_('зарегистрируйтесь')+'</a>.</div>';
        $('#IDCommentsNewThreadCover').html(html).show();
        return;
    }
    if (showControls) {
        id_add_action('page_load', IiiReplaceCommentLinks);
        id_add_action('comment_post', IiiReplaceCommentLinks);
        IiiReplaceCommentLinks();
    }
    id_add_action('show_reply', IiiCommentShowReplyCallback);

    if ($.trim($('#txtNameNewThread').val()) == '') {
        $('#txtNameNewThread').val(userName);
    }
}

function IiiReplaceCommentLinks()
{
    var links = $('#idc-cover a[href*="showReportBox"]');
    if (!showControls) {
        links.each(function() {
            $(this).text(_('Пожаловаться'));
        });
        return;
    }
    links.each(function() {
        var elem = $(this);
        var commentid = elem.attr('href').match(/[0-9]+/);
        elem.text(_('Удалить'));
        elem.attr('href', 'javascript: IiiDeleteComment(' + commentid + ');');
        elem.wrap('<span id="IDCommentPostReplyLinkDelete' + commentid + '" />');
    });
}

function IiiDeleteComment(id)
{
    $('#IDCommentPostReplyLinkDelete' + id).text(_('Удаляем...'));
    var data = {
        blogpostid: commentObj.blogpostid,
        commentid: id
    };
    $.ajax({
        url: '/delete-comment/',
        data: data,
        success: function(result) {
            if (result == '1') {
                IiiDeleteCommentCallback(id);
                return;
            }
            $('#idc-cover span[id*="IDCommentPostReplyLinkDelete"]').replaceWith('');
            showMsgBox(_('Ошибка'), _('Удаление комментариев временно недоступно.'));
        },
        error: function(xhr, statusText, error) {
            showMsgBox('Error ' + xhr.status, xhr.statusText);
        }
    });
}

function IiiDeleteCommentCallback(commentid)
{
    var node = $('#IDComment' + commentid);
    if (node.next().children().length == 0) {
        node.css('display', 'none');
    } else {
        var msg = '<em>'+_('This comment was deleted by the user.')+'</em>';
        $('#IDComment-CommentText' + commentid).replaceWith(msg);
    }
    $('#IDCommentPostReplyLink' + commentid).replaceWith('');
    $('#IDCommentPostReplyLinkDelete' + commentid).replaceWith('');
}

function IiiCommentShowReplyCallback()
{
    var fieldName = $('#txtNameReply');
    if ($.trim(fieldName.val()) == '') {
        fieldName.val(userName);
    }
}

