$(function() {

  var $comments = $('#pic-comments');
  var $commentsWrap1 = $comments.find('.wrap');
  var $commentsWrap2 = $commentsWrap1.find('.comment-wrap');
  var $slider = $comments.find('.slider');


  $('.comments').comments()
  $('.other-contests').exhibit({exhHolder: '.video-box', exhItem: '.video-item',shift: 800, speed: 350})

  $slider.slider({
    orientation: "vertical",
    range: "min",
    min: 0,
    max: 100,
    value: 100,
    slide: function(event, ui) {
      var scrollHeight = $commentsWrap2.height() - $commentsWrap1.height();

      $commentsWrap2.css('top', (scrollHeight/100*(ui.value - 100)) + 'px');
    }
  })

  var resetSlider = function() {
    $commentsWrap2.css('top', 0);
    $slider.slider('value', 100);

    var scrollHeight = $commentsWrap2.height() - $commentsWrap1.height();
    $slider.slider(scrollHeight > 0 ? 'enable' : 'disable');

    hideCommentForm(true);
  }

  var showCommentForm = function() {
    var img = $comments.find('h2 img');
    img.attr('src', STATIC_HOST + '/images/pic-comment-btn-add-a.png');
    if ($.browser.msie && $.browser.version == '6.0') {
      fixPNG(img.get(0));
    }
    $comments.find('.add-comment').show().find('textarea').focus();
    $comments.find('.fade').css('top', '186px');
  }
  
  var hideCommentForm = function(reset) {
    var img = $comments.find('h2 img');
    img.attr('src', STATIC_HOST + '/images/pic-comment-btn-add.png');
    if ($.browser.msie && $.browser.version == '6.0') {
      fixPNG(img.get(0));
    }
    $comments.find('.add-comment').hide();
    $comments.find('.fade').css('top', '35px');
    if (reset) {
      $comments.find('textarea').val('');
    }
  }

  $comments.find('h2 img').click(function() {   

    if ($comments.find('.add-comment:visible').length > 0) {
      hideCommentForm();
    } else {
      showCommentForm();
    }
  })


  var changeAction = function(url) {
    var form = document.forms['comment-entry'];
    if (form) {
      form.action = url;
    }
  }

  var updateCommentsNb = function(id) {
    $('#entry-' + id + ' a.comment-count').text($commentsWrap2.find('> div.comment').length || '');
  }

  var loadCommentsDone = function(url) {
    return function() {
      resetSlider();

      var id = url.match(/\/(\d+)\//)[1];
      var nb = $commentsWrap2.find('div.comment').size();
      $('#entry-' + id + ' a.comment-count').text(nb || '');
    };
  }

  var loadComments = function(url, data) {
    hideCommentForm();
    $commentsWrap2.load(url, data, loadCommentsDone(url));
  }

    //показываем список комментариев
    $('#content-inner div.album-thumb a.comment-count').click(function(){

      if ($(this).hasClass('clicked')) {
        $comments.hide();
        $('div.filters').css({zIndex: 2});
        $('body').unbind('click.picomment');
        $(this).removeClass('clicked');
      } else {

        $('div.album-thumb a.clicked','#content-inner').removeClass('clicked');
        $(this).addClass('clicked');

        changeAction(this.href);

        var obj_w, obj_h;
        var obj = $(this).closest('div.album-thumb').children().eq(0);
        obj_h = parseInt(obj.attr('height')) || obj.height();
        obj_w = parseInt(obj.attr('width')) || obj.width();

        if (obj.get(0).tagName == 'OBJECT')  obj_h += 3;

        $comments.get(0).style.top =
            ($(this).closest('div.album-thumb').offset().top
              - $('#content-inner .album-pics').offset().top
              + obj_h
              - 390 + 25 + 18)+'px'
        $comments.get(0).style.left =
            $(this).closest('div.album-thumb').offset().left
            + obj_w
            +'px'

        loadComments(this.href)

        $('div.filters').css({zIndex: 0});

        $comments.show();


        if ($.browser.msie && $.browser.version == '6.0') {
          fixPNG($comments.find('h2 img').get(0));
        }

        $('body').bind('click.picomment',function(e){
          if ($(e.target).closest('#pic-comments').length == 0) {
            $comments.hide();
            $('div.filters').css({zIndex: 2});
            $('div.album-thumb a.clicked','#content-inner').removeClass('clicked');
            $('body').unbind('click.picomment');
          }
        })
      }
      return false;
    });

    


  /**
   * Rate a photo or video.
   */
  $('div.album-thumb > span.vote a').click(function() {
    var $outer = $(this.parentNode);
    if (!$.browser.msie && $.browser.version != '6.0') {
      $outer.empty();
    }

    $.get(this.href, {}, function(data) {
        $outer.replaceWith(data);
    }, 'html');

    return false;
  });

  $comments.find('form').submit(function() {
    var comment = this.elements.comment.value;
    if (comment) {
      loadComments(this.action, {comment: comment});
    }

    return false;
  })

  /**
   * Rate a comment.
   */
  $('#content-inner div.message-item span.vote a').live('click',function(){
    var commentId = 0;
    var $voteBox = $(this).siblings('span');
    var data = 34;
    var link = $(this).attr('href');

    var comment_id = link.match(/\d+/);

    if (this.className == 'up') {
      //голосуем за
      $.post(link, commentId,function(data){
        if (data!=='') {
          $('#content-inner div.message-item[rel='+comment_id+'] span.vote a').css('visibility','hidden');
          $voteBox.text(data+'%')
        }
      },'json')
    }

    if (this.className == 'down') {
      //голосуем против
      $.post(link, commentId,function(data){
        if (data!=='') {
          $('#content-inner div.message-item[rel='+comment_id+'] span.vote a').css('visibility','hidden');
          $voteBox.text(data+'%')
        }
      },'json')
    }

    return false;
  });

});

