$(document).ready(function(){
  bindAddFormSubmit();
//  bindReplyClick();
});

function bindReplyClick(){
  $('.comment-container .reply').unbind('click');
  $('.comment-container .reply').bind('click', onClickReply);
}

function bindAddFormSubmit(){
  var form = $('.comment-form.add-form form');
  $('textarea, input', form).DefaultInputTips();
  form.unbind('submit');
  form.bind('submit', function(){
    var comment_container = $('ul.comment-container', $(this).parents('.comments'));
    return submitCommentForm($(this), comment_container);
  });
}

function bindReplyFormSubmit(comment_container){
  var form = $('.comment-form.reply-form form');
  form.unbind('submit');
  form.bind('submit', function(){
    return submitCommentForm($(this), comment_container);
  });
}

function submitCommentForm(form, comment_container){
  var form_container = form.parent();
  var is_reply = form_container.hasClass('reply-form');
  DLoader.Show();
  $.post(form.attr('action'), form.serialize(), function(data){
    DLoader.Hide();
    $('.request-container').html(data);
    form_container.html($('.request-comment-form-container').html());
    if ( is_reply )
    {
      if($('.request-comment-item-container').html())
      {
        comment_container.after($('.request-comment-item-container').html());
        form_container.hide();
        $('.form-container').hide();
      }
      else
      {
        $('.form-container', comment_container).css({height:form_container.height()}).show();
        bindReplyFormSubmit(comment_container);
      }
    }
    else
    {
      bindAddFormSubmit();
      comment_container.prepend($('.request-comment-item-container').html());
    }
//    bindReplyClick();
    $('textarea, input[type=text]', form_container).val('').blur().DefaultInputTips();
    $('.request-container').html('');
  });
  return false;
}

function onClickReply(){
  var comment = $(this).parents('li');
  var form = $('.comment-form.reply-form form');
  var parent = form.parents('.comments');
  var form_container = $('.form-container', comment);
  $('.form-container', parent).hide();
  form_container.css({height:form.parent().height()}).show();
  
  var form_container_offset = $(form_container).offset();
  var parent_offset = parent.offset();
  
//  $('#captcha_reload', form).click();
  
  form.parent().css(
    {left: form_container_offset.left - parent_offset.left, top: form_container_offset.top - parent_offset.top, width: form_container.innerWidth()}
  ).show();
  $('textarea, input', form).DefaultInputTips();
  
  $('.comment-id', form).val(comment.attr('commentid'));
  $('.comment-level', form).val(comment.attr('commentlevel'));
  $('.comment-root-id', form).val(comment.attr('commentrootid'));
  $('textarea, input[type=text]', form).val('');
  
  form.unbind('submit');
  form.bind('submit', function(){
    return submitCommentForm(form, comment);
  });
  return false;
}
