(function($) {

$.fn.comments = function(options) {
	this.material_id = options.material_id;
	this.m_count     = options.count_node ;
	var self = this;

	var form_submit = function(){
		$.ajax({
			type: "POST",
			url: "/comments/post",
			dataType: "json",
			data: $(this).serialize(),
			success: function(result){
				switch (result) {
					case 1:
						self.load();
						return;
					case -1:
						alert(window.strings.comment_error);
						break;
					case -2:
						alert(window.strings.author_error);
						break;
					case -3:
						alert(window.strings.captcha_error);
						break;
					default:
						break;
				}
				self.set_captcha_url(self.$comment_block);
			}
		});
		return false;
	};

	this.load = function(){
		$(self).html('<center><img src="/images/ajax-loader.gif"></center>');
		if(self.m_count && $(self.m_count).length){
			$(self.m_count).html('');
		}
		$.ajax({
			url: "/comments/show/"+this.material_id,
			dataType: "json",
			success: function(data){
				$(self).html(data.data);
				if(self.m_count && $(self.m_count).length){
					$(self.m_count).html('('+data.count+')');
				}
				$('form', self).submit(form_submit);
			}
		});
	}

	this.set_captcha_url = function($block){
		if($block && $block.length){
			var random_num = Math.floor(Math.random()*1000000);
			var now = new Date();
			var url = '/captcha/default?'+now.getTime().toString()+random_num.toString();
			$block.find('img.captcha').attr( 'src', url );
			$block.find('input:text[name=captcha_response]').val('');
		}
	}

	$('#refresh_link').live('click', function(){
		$(this).blur();
		self.load();
	});

	$('.ban_comment', self).live('click', function(){
		$(this).blur();
		var comment_id = $(this).parents('.comment_block:first').attr('comment_id');
		$.ajax({
			type: "POST",
			url: "/comments/ban",
			dataType: "json",
			data: {
				'material_id': self.material_id,
				'comment_id' : comment_id
			},
			success: function(){
				self.load();
			}
		});
	});

	$('.post_comment', self).live('click', function(){
		$(this).blur();
		$('.edit_block', self).hide();
		self.$comment_block = $(this).parents('.comment_block:first');
		self.$comment_block.find('textarea').val('');
		self.$comment_block.find('input:text[name=author_name]').val('');
		self.set_captcha_url(self.$comment_block);
		self.$comment_block.find('.edit_block:first').show();
		return false;
	});

	this.load();
}

})(jQuery);
