
function initSlideOpenClose(){
    var _hold = $('div.hide-reply');
    var _dur = 500;

    _hold.each(function(){
        var _this = $(this);
        var _btn = $('a.opener', _this);
        var _slider = $(_this).parent().parent().next('div.hide-block:eq(0)');
        if (_btn.hasClass('link-show')){
            _slider.hide();
        }
        _btn.click(function(){
            if (_slider.is(':visible')) {
                _slider.slideUp(_dur, function(){
                    _btn.removeClass('link-hide').addClass('link-show').find('span:eq(0)').text('Show');

                });
            } else {
                _slider.slideDown(_dur, function(){
                    _btn.removeClass('link-show').addClass('link-hide').find('span:eq(0)').text('Hide');
                });
            }
            return false;
        });
    });
}

function vote_comment(link) {
    var vote_url = link.href;
    $.post(vote_url, {}, function(resp){
                            var score = '(+' + resp.score.score + ')';
                            $(link).parent().next().text(score);
                            link.href = '#';
                         }, "json");
    return false;
}

function show_modal_form() {
    $("#reply_comment").modal(
        {opacity:80,
            overlayCss: {backgroundColor:"#fff"}}
    );
        $('#reply-form').ajaxForm(
            {beforeSubmit: validate_reply,
             success: function() {reloadComments(); $.modal.close()}
        });
}


function reply_comment(comment_id) {
    $("#reply_comment").load('/_reply/',
                             {'comment_id': comment_id},
                             show_modal_form);
    return false;
}


function close_modal() {
    $.modal.close();
}

function validate_post(formData, jqForm, options) {
    return validate(formData, jqForm, "#submit-form", "#comment-form-error", options);
}

function validate_reply(formData, jqForm, options) {
    return validate(formData, jqForm, "#reply-form", "#reply-form-error", options);
}

function validate(formData, jqForm, form_id, id_error, options) {
    var validates = true;
    $(id_error).hide();
    for (var i=0; i < formData.length; i++) {
        var field_selector = form_id + " #id_" + formData[i].name;
        if (!formData[i].value) {
            validates = false;
        }
    }
    if (!validates)
        $(id_error).show();
    return validates;
}

$(document).ready(
    function () {
        initSlideOpenClose();
        $('#submit-form').ajaxForm(
            {resetForm: true,
             beforeSubmit: validate_post,
             success: function(resp) {reloadComments()}
            });
    }
);

