$(function() {
	var module_id = 1;

	$('.comments_form .button a').click(function(e) {
		if ($(this).hasClass('processing')) {
			return false;
		}

		$(this).addClass('processing');

		e.preventDefault();
		get_module_id($(this).parents('.comment_box').attr('id'));
		var textarea		= $(this).parents('#comments_form-'+module_id).find('textarea');
		var form			= $(this).parents('form');
		var	parent_id		= form.find('[name=parent_id]');
		var comments_count	= $("#comment_box-"+module_id+" h3 span");
		if (textarea.val())
		{
			ajax_request('/comments/ajax', form.serialize(), function(obj) {

				var html = obj.response.html;
				var html_obj = $(html).css({'display' : 'none'}).wrap('<li></li>');
				html = html_obj.parent().html();

				if (parseInt(parent_id.val()))
				{
					var parent = $("#message-"+module_id+" [name=comment_"+parent_id.val()+"]");
					if (parent.parents('ul.answer').length)
					{
						parent.parents('ul.answer').append(html);
					}
					else
					{
						var container = parent.parent().parent();
						if (container.next().is('ul'))
						{
							container.next().append(html);
						}
						else
						{
							var text_wraped = '<ul class="answer">'+html+'</ul>';
							container.after(text_wraped);
						}
					}
				}
				else
				{
					$("#message-"+module_id).append(html);
				}
				$('#message-'+module_id+' li').slideDown();
				textarea.val('');
				parent_id.val(0);
				comments_count.text(parseInt(comments_count.text())+1);
			});
			
		}

		$(this).removeClass('processing');

	});

	$('.comments_form input[name=message]').live('keypress' ,function(e) {
		if (e.keyCode == 13)
		{
			get_module_id($(this).parents('.comment_box').attr('id'));
			var textarea		= $(this);
			var form			= $(this).parents('form');
			var	parent_id		= form.find('[name=parent_id]');
			var comments_count	= $("#comment_box h3 span");
			post_comment(textarea, form, parent_id, parent_id, comments_count);
			return false;
		}
		
	});

	$('#comment_box-'+module_id+' .reply').live('click', function(e) {
		e.preventDefault();
		var reply_id	= $(this).parents('.comment').find('input').val();
		var parent_id	= $('#comments_form-'+module_id+' form input[name=parent_id]');

		parent_id.val(reply_id);
	});

	$('.message a.reply').click(function(){
		$(window).scrollTo( $('.write_comment'), 800);
		$('.write_comment form textarea').focus();
	});

	function post_comment(textarea, form, parent_id, comments_count)
	{
		if (textarea.val())
		{
			ajax_request('/comments/ajax', form.serialize(), function(obj) {

				var html = obj.response.html;
				var html_obj = $(html).css({'display' : 'none'}).wrap('<li></li>');
				html = html_obj.parent().html();

				if (parseInt(parent_id.val()))
				{
					var parent = $('#message-'+module_id+' [name=comment_'+parent_id.val()+']');
					if (parent.parents('ul.answer').length)
					{
						parent.parents('ul.answer').append(html);
					}
					else
					{
						var container = parent.parent().parent();
						if (container.next().is('ul'))
						{
							container.next().append(html);
						}
						else
						{
							var text_wraped = '<ul class="answer">'+html+'</ul>';
							container.after(text_wraped);
						}
					}
				}
				else
				{
					$('#message-'+module_id).append(html);
				}
				$('#message-'+module_id+' li').slideDown();
				textarea.val('');
				parent_id.val(0);
				comments_count.text(parseInt(comments_count.text())+1);
			});

		}
	}

	function get_module_id(str)
	{
		regexp = /^.+-([\w]+)$/i;
		var id = str.match(regexp);

		module_id = id[1];
	}
});
