/* ***************** AJAX-оценка статьи ***************** */
function reit_click( url ) {
        $('#reit_block').html('Загрузка...');
        $.get(url, function(data) {
                $.get(location.href + '?rand=' + Math.random(), function(data) {
                        if ( data.match( /Оценить прозу'><font class='content2'><u>(.*?)<\/u><\/font>/ ) ) {
                                var res = RegExp.$1;
                                $('#reit_result').html( res );
                        }
                        $('#reit_block').html('Спасибо! Ваш голос учтен.');
                });
        });
}

/* ***************** Добавление / редактирование / удаление комментариев ***************** */
function urlEncode(str) {
    if (!str || typeof(str) == 'undefined') return;
    var utf8Array = {};
    var i = j = j2 = 0;
    for (i = 0; i <= 255; i++) {
        j = parseInt(i/16); var j2 = parseInt(i%16);
        utf8Array[String.fromCharCode(i)] = ('%' + j.toString(16) + j2.toString(16)).toUpperCase();
    }
    var rusAdditional = {
        '_' : '%5F', 'А' : '%C0', 'Б' : '%C1', 'В' : '%C2', 'Г' : '%C3', 'Д' : '%C4', 'Е' : '%C5',
        'Ж' : '%C6', 'З' : '%C7', 'И' : '%C8', 'Й' : '%C9', 'К' : '%CA', 'Л' : '%CB', 'М' : '%CC',
        'Н' : '%CD', 'О' : '%CE', 'П' : '%CF', 'Р' : '%D0', 'С' : '%D1', 'Т' : '%D2', 'У' : '%D3',
        'Ф' : '%D4', 'Х' : '%D5', 'Ц' : '%D6', 'Ч' : '%D7', 'Ш' : '%D8', 'Щ' : '%D9', 'Ъ' : '%DA',
        'Ы' : '%DB', 'Ь' : '%DC', 'Э' : '%DD', 'Ю' : '%DE', 'Я' : '%DF', 'а' : '%E0', 'б' : '%E1',
        'в' : '%E2', 'г' : '%E3', 'д' : '%E4', 'е' : '%E5', 'ж' : '%E6', 'з' : '%E7', 'и' : '%E8',
        'й' : '%E9', 'к' : '%EA', 'л' : '%EB', 'м' : '%EC', 'н' : '%ED', 'о' : '%EE', 'п' : '%EF',
        'р' : '%F0', 'с' : '%F1', 'т' : '%F2', 'у' : '%F3', 'ф' : '%F4', 'х' : '%F5', 'ц' : '%F6',
        'ч' : '%F7', 'ш' : '%F8', 'щ' : '%F9', 'ъ' : '%FA', 'ы' : '%FB', 'ь' : '%FC', 'э' : '%FD',
        'ю' : '%FE', 'я' : '%FF', 'ё' : '%B8', 'Ё' : '%A8'
    }
    for (i in rusAdditional) utf8Array[i] = rusAdditional[i];
    var res = '';
    for(i = 0; i < str.length; i++) {
        var simbol = str.substr(i,1);
        res += typeof utf8Array[simbol] != 'undefined' ? utf8Array[simbol] : simbol;
    }
    res = res.replace(/\s/g, '+');
    return res;
}

var flood_control = {
        timer : null,
        interval : 1000, // ms
        deny : false
}


function sh_edit_comment_submit(form, id) {
        if ( !$.trim( form.comment.value ) ) {
                alert( 'Вы не написали текст!' );
                return false;
        }

        if (flood_control.deny)        return false;
        else {
                flood_control.timer = setTimeout(function() {
                        clearTimeout(flood_control.timer);
                        flood_control.timer = null;
                        flood_control.deny = false;
                }, flood_control.interval);
                flood_control.deny = true;
        }

        var data = [];
        for (var i = 0; i < form.elements.length; i++)
                data[data.length] = form.elements[i].name + '=' + (urlEncode( form.elements[i].value ));
        data = data.join('&');
        $.ajax({
                type: 'POST',
                url: form.action,
                data : data,
                success : function(comment) {
                        comment = comment.split('<br><br>');
                        var subj = comment.shift();
                        comment = comment.join('<br><br>');
                        if ( $('#comment_subj_' + id) )
                                $('#comment_subj_' + id).html( subj );
                        if ( $('#comment_body_' + id) )
                                $('#comment_body_' + id).html( comment );
                        sh_close_comment();
                },
                error : function() {
                        alert('Ошибка при редактировании комментария');
                },
                cache: false
        });
        return false;
}
function sh_add_comment_submit(form) {
        if ( !$.trim( form.comment.value ) ) {
                alert( 'Вы не написали текст' );
                return false;
        }

        if (flood_control.deny)        return false;
        else {
                flood_control.timer = setTimeout(function() {
                        clearTimeout(flood_control.timer);
                        flood_control.timer = null;
                        flood_control.deny = false;
                }, flood_control.interval);
                flood_control.deny = true;
        }

        var pid = form.pid.value;
        var data = [];
        for (var i = 0; i < form.elements.length; i++) {
                if ( form.elements[i].name == 'comlet' ) {
                        if ( form.elements[i].checked ) data[data.length] = 'comlet=1';
                } else data[data.length] = form.elements[i].name + '=' + (urlEncode( form.elements[i].value ));
        }
        data = data.join('&');
        $.ajax({
                        type: 'POST',
                        url: form.action,
                        data : data,
                        success : function(data) {
                                var res = data;
                                if ( $('#kids_id_' + pid) ) {
                                        $('#kids_id_' + pid).html( res );
                                        init_user_block();
                                        sh_close_comment();
                                }
                        },
                        error : function() {
                                alert('Ошибка при добавлении комментария');
                        },
                        cache: false
                });
        return false;
}
function sh_close_comment() {
        if ( $('#add_comment_form') ) {
                $('#add_comment_form').slideUp(
                        'slow',
                        function() {
                                 $('#add_comment_form').remove();
                        }
                );
        }
        return false;
}
function sh_add_comment(a, tid, informant, comt, ban) {
        if ( $('#for_form_' + tid).children()[0] != undefined && $($('#for_form_' + tid).children()[0]).children()[0].op.value == 'savepost' ) {
                sh_close_comment();
                return false;
        }

        if (comt == '1') { var chk='<input type="checkbox" name="comlet" value="1"> Получить уведомление при ответе.<br><br>'; } else {var chk='';}

        var data = a.href.split('/');
        if (ban == '1')  {
        var form = '<div id="add_comment_form" align="center" style="text-align:center; display:none; "><form onsubmit="return sh_add_comment_submit(this);" style="margin:0px" name=vbform action="'+data[3]+'/'+data[4]+'" method="post"><br>Вы не можете комментировать это произведение!<br><br>Возможно, это пожелание самого автора произведения или вы нарушили общие правила Дома Солнца.<br><br><input type="hidden" name="op" value="savepost">\
                </form></div>';
        } else {
        var form = '<div id="add_comment_form" align="left" style="text-align:left; display:none; "><form onsubmit="return sh_add_comment_submit(this);" style="margin:0px" name=vbform action="'+data[3]+'/'+data[4]+'" method="post">&nbsp;<font class="metal"><B>Добавить мнение</B> [<a onclick="return sh_close_comment();" href="#close"><u>Закрыть</u></a>]</font>\
                <div class="marg10"></div>&nbsp;<textarea wrap="virtual" cols="80" rows="10" name="comment"></textarea><br><br>\
                Чтобы вставить цитату, выделите текст и <a onmouseover=\'copyQ();\' href=\'javascript:pasteQ();\'><u>нажмите здесь</u></a>.<br><BR>\
                <input type="hidden" name="pid" value="'+data[6].toString().substring(3)+'">\
                <input type="hidden" name="sid" value="'+data[5].toString().substring(1)+'">\
                <input type="hidden" name="informant" value="'+informant+'">\
                <input type="hidden" name="title" value="' + $('h2.blue').text().replace('"', '\"') +'">\
                <input type="hidden" name="op" value="savepost">\
                '+chk+'\
                &nbsp;<button style="border:0; background:none; padding:0; margin:0;" name="subm" type="submit"><img src="/Images/button/Send.gif" style=\'COLOR: #594FBF; TEXT-DECORATION: underline\' Alt=\'Послать\'></button>\
        </form></div>';
        }

        if ( $('#add_comment_form') )
                $('#add_comment_form').remove();
        $('#for_form_' + tid).html( form );
        $('#add_comment_form').slideDown();
                return false;
}
function sh_edit_comment(a, tid, them) {
        if ( $('#for_form_' + tid).children()[0] != undefined && $($('#for_form_' + tid).children()[0]).children()[0].op.value == 'save_edit' ) {
                sh_close_comment();
                return false;
        }

         var data = a.href.split('/');

         $.get(a.href+'?rand=' + Math.random(), function(comment) {
                $('#add_comment_form').remove();
                comment = comment.split('<br><br>');
                var title = comment.shift();
                comment = comment.join('<br><br>');
        if (them == '1') { var thm='&nbsp;<font class="metal">Тема:</font> <input type="text" name="subject" size="50" value="'+title+'"><br><br>'; } else {var thm='<input type="hidden" name="subject" value="'+title+'">';}
                var form = '<div id="add_comment_form" align="left" style="text-align:left; display:none;"><form onsubmit="return sh_edit_comment_submit(this, '+tid+');" style="margin:0px" name=vbform action="'+data[3]+'/'+data[4]+'" method="post">\
                        &nbsp;<font class="metal"><B>Редактировать комментарий</B> [<a onclick="return sh_close_comment();" href="#close"><u>Закрыть</u></a>]</font>\
                        <div class="marg10"></div>'+thm+'\
                        &nbsp;<textarea wrap="virtual" cols="80" rows="10" name="comment">'+comment+'</textarea><br><br>\
                        <input type="hidden" name="tid" value="'+data[5].toString().substring(1)+'">\
                        <input type="hidden" name="op" value="save_edit">\
                        &nbsp;<button style="border:0; background:none; padding:0; margin:0;" name="subm" type="submit"><img src="/Images/button/Send.gif" style=\'COLOR: #594FBF; TEXT-DECORATION: underline\' Alt=\'Послать\'></button>\
                </form></div>';
                $('#for_form_' + tid).html( form );
                $('#add_comment_form').slideDown();
         });
        return false;
}
function sh_del_comment(a) {
        if( confirm( 'Удалить этот комментарий?' ) ) {
                var table = a;
                while( table.parentNode ) {
                        if ( table.nodeName && table.nodeName.toLowerCase() == 'table' ) {
                                $(table).hide();
                                break;
                        }
                        table = table.parentNode;
                }
                $.get(a.href.replace('/ok0', '/ok1'), function(data){
                        // Do nothing
                });
        }
        return false;
}

function copyQ() {
txt=''
if (document.getSelection) {txt=document.getSelection()}
else if (document.selection) {txt=document.selection.createRange().text;}
txt='[quote]'+txt+'[/quote]\n'
}
function pasteQ() {
document.vbform.comment.value=document.vbform.comment.value+txt;
}

/* ***************** Выпадающий юзер-блок ***************** */
$(document).ready(function() {
        init_user_block();
});
function init_user_block() {
        if ( !$.browser.opera ) {
                $('.user_info_drop div').css('top', '0px');
                $('.user_info_drop div').css('left', '0px');
        }
        $('.user_info_drop').each(function() {
                var _t = this;
                var _a = $(this).prev().get(0);
                var show = false;
                $(this).prev().bind(
                        'click',
                        function(event) {
                                event.preventDefault();
                                if (show) $(_t).children().slideUp();
                                else $(_t).children().slideDown();
                                show = !show;
                        }
                );
                $(document).bind(
                        'click',
                        function(event) {
                                if (event.target) {
                                        var detect = event.target;
                                        while(detect.parentNode) {
                                                if ( detect == _a )
                                                        return;
                                                detect = detect.parentNode;
                                        }
                                }
                                if (show) $(_t).children().slideUp();
                                show = false;
                        }
                );
        });
}