YAHOO.util.Short(function($, Y){
	// caching the expensive dom functions
	var $comment_body = $('#comment_body'),
		$chars_left = $('#chars_left'),
		$comment_box = $('#comment_box'),
		$add_comment = $('#add_comment'),
		$delete = $('.delete'),
		$confirmation = $('.confirmation'),
		$closeMsg = $('#closeMsg'),
		$confirmed = $('.confirmed'),
		$sysMsg = $('#sysMsg'),
		$sysText = $('#sysText'),
		$submit_comment = $('#submit_comment'),
		$form_post = $('#form_post'),
		$comment_list =	$('#comment_list'),
		$abuse = $('.abuse'),
		$response =	$('#recaptcha_response_field'),
		$challenge = $('#recaptcha_challenge_field'),
		$comment_box_content = $('#comment_box_content');

	if($sysText.length && $sysText.html().length>2) $sysMsg.css('display', 'block');

	var $cur_del_option = null;

	if(YAHOO.util.Short('#tank').length) $abuse.each(function(){

		var str = window.location + '';

		str = str.substring(str.indexOf('?')) + '&owner=' + $('#owner').val();

		this.href += encodeURIComponent(str);
	});


	$comment_list.bind('click', function(e){
		var cur_obj = e.target || e.srcElement;
		
		if ($(cur_obj).is('.delete')) {
			Y.EVENT.stopEvent(e);

			cur_obj.blur();

			if (window.$t)
				clearTimeout($t);
			
			$confirmation.css('display', 'none');
			$cur_del_option = $(cur_obj).next().css('display', 'block');
			$t= setTimeout(function(){ $cur_del_option.css('display', 'none')}, 3000);

		}

	});

	$closeMsg.bind('click', function(e){
		Y.EVENT.stopEvent(e);
		$('#sysMsg').css('display', 'none');
	});

	$submit_comment.bind('click', function(e){
		$sysText.html('Submitting comment...');
		$sysMsg.css('display', 'block');
		Y.EVENT.stopEvent(e);

		var response = $response.length ? $response.val() : '';
		var challenge = $challenge.length? $challenge.val() : '';

		$.ajax({
			type: 'POST',
			url: $form_post.attr('action'),
			data: 'body=' + encodeURIComponent($comment_body.val()) + '&recaptcha_response_field='+ response +'&recaptcha_challenge_field='+ challenge ,
			success: function(o){

				try	{ o = eval(o); } catch(e){}
				

				if (o.sys){
					$sysText.html(o.sys);
					$sysMsg.css('display', 'block');
				}

				$submit_comment.css('display', 'none');
				
				$comment_box.animate({
					height: { to: 0 },
					opacity: { to: 0 }
				}, 300);
				

			}
		});

	});

	$comment_body.bind('keyup paste blur focus', function(){
		var left = 200 - $comment_body.val().length;
		var left_txt = (left >= 0) ? left : 0;
		if (left < 0) {
			$comment_body.val($comment_body.val().substring(0, 200));
			$comment_body[0].scrollTop = 10000;
		}
		$chars_left.html( left_txt + ' characters left');
	});

	$add_comment.bind('click', function(){
		if($comment_box.height()) {
			$submit_comment.css('display', 'none');
			$comment_box.animate({
				height: { to: 0 },
				opacity: { to: 0 }
			}, 300);
		}
		else {
			$comment_box.animate({
				height: { to: $comment_box_content.height()+30 },
				opacity: { from:0, to: 1 }
			}, 300, function(){
				$submit_comment.css('display', 'block');
			});
		}
	});

	$confirmed.bind('click', function(e){
		$(this).parent().parent().parent().parent().css('display', 'none');

		Y.EVENT.stopEvent(e);
		$.ajax({
			url: this.title,
			success: function(o){

				try	{ o = eval(o); } catch(e){}
				
				if (o.sys){
					$sysText.html(o.sys);
					$sysMsg.css('display', 'block');
				}

			}
		});
	});

});