$(document).ready(function() {
	$('.error').hide();
	$('.formContainer').hide();

	if(location.hash == "#comments") {
		$('#newCommentLink').hide();
		Recaptcha.create("6Ld0qAkAAAAAAGFRamLMmE5szX-dFOCSHUYH2dqW",
			"recaptcha_div", {
				theme: "clean",
				callback: Recaptcha.focus_response_field	
			});
		$('.formContainer').slideDown(500);
	}

	// Call report page
	$('.formReportLink').click(function() {
		var foo = $(this);
		var strSplit = $(this).attr("id").split("_");	
		var reportData = "rPost="+strSplit[1];
		$.ajax({
			type: "POST",
			url: "/reportcomment.aspx",
			data: reportData,
			success: function() {
				$(foo).replaceWith('<span class="alert">Kommentaren har anmälts!</span>');
			}
		});

		return false;
	});

	// Close form
	$('#closeLink').click(function() {
		if($('.formContainer').parent().attr('id') == "newCommentLinkDiv") {
			$('#newCommentLink').show();
		}

		if(!$('.formContainer').hidden) {
			$('.formContainer').slideUp(500);
		}

		return false;
	});


	// Display form at bottom
	$('#newCommentLink').click(function() {
		if(!$('.formContainer').hidden) {
			$('.formContainer').slideUp(500, function() {
				$('#newCommentLink').hide();
				$('.formContainer').appendTo('#newCommentLinkDiv');
			});
		}
		else {
			$('#newCommentLink').hide();
			$('.formContainer').appendTo('#newCommentLinkDiv');
		}

		// reCaptcha
		Recaptcha.create("6Ld0qAkAAAAAAGFRamLMmE5szX-dFOCSHUYH2dqW",
			"recaptcha_div", {
				theme: "clean",
				callback: Recaptcha.focus_response_field	
			});
		$('.formContainer').slideDown(500); //.show("slow");

		return false;
	});
	
	// Display form under comment
	$('.formAnswerLink').click(function() {
		var foo = $(this);
		if(!$('.formContainer').hidden) {
			$('.formContainer').slideUp(500, function() {
				$('.formContainer').insertAfter('#div_'+foo.attr('id'));
			});
		}
		else {
				$('.formContainer').insertAfter('#div_'+foo.attr('id'));
		}

		// reCaptcha
		Recaptcha.create("6Ld0qAkAAAAAAGFRamLMmE5szX-dFOCSHUYH2dqW",
			"recaptcha_div", {
				theme: "clean",
				callback: Recaptcha.focus_response_field	
			});
		$('.formContainer').slideDown(500); //.show("slow");

		return false;
	});
	
	// Post a new comment
	$(".commentForm").submit(function() {
		$('.error').hide();
		var cName = encodeURIComponent($("input#cName").val());
		var cUrl = encodeURIComponent($("input#cUrl").val());
		var cComment = encodeURIComponent($("textarea#cComment").val());
		var cChallenge = Recaptcha.get_challenge();
		var cResponse = Recaptcha.get_response();

		// Set cParent
		// format should be (parent|child)_[0-9]*
		var cParent = '';
		if($('.commentForm').parent().parent().attr('id') == "newCommentLinkDiv") {
			cParent = 'parent_' + encodeURIComponent($('#inQueryId').val());
		}
		else {
			var par = $('.formContainer').prevAll('.parentComment')[0];
			var splitChildId = $(par).attr('id').split("_");
			cParent = 'child_' + encodeURIComponent(splitChildId[2]);
		}

		// Check that all fields are properly filled in
		if(cName == "" || cComment == "" || cChallenge == "" || cResponse == "" ||
		   cName.length > 50 || cUrl.length > 100 || cComment.length > 1000) {
			if(cName == "" || cName.length > 50) {
				$("label#cNameError").show();
			}
			if(cUrl.length > 100) {
				$("label#cUrlError").show();
			}
			if(cComment == "" || cComment.length > 1000) {
				$("label#cCommentError").show();
			}
			if(cChallenge == "" || cResponse == "") {
				$("label#CaptchaError").show();
			}
			return false;
		}

		if(cParent == "") {
			cParent = "parent";
		}

		var dataString = 'cName=' + cName + '&cUrl=' + cUrl + '&cComment=' + cComment + '&cChallenge=' + cChallenge + '&cResponse=' + cResponse + '&cParent=' + cParent;
		// For displaying the new comment
		var nextPar = $('.formContainer').nextAll('.parentComment')[0];

		$.ajax({
			type: "POST",
			url: "/submitcomment.aspx",
			data: dataString,
			success: function() {
				$('.formContainer').slideUp(500, function() {  
					if(cParent.substr(0,6) == 'parent') {
						$('#queryComments').append(	'<div class="parentComment">\n'+
										'<p class="commentAuthor">'+decodeURIComponent(cName)+' ('+decodeURIComponent(cUrl)+')</p>\n'+
										'<p>'+decodeURIComponent(cComment)+'</p>\n'+
										'</div>');
						$('#newCommentLink').slideDown(500);
					}
					else {
						$(nextPar).before(	'<div class="childComment">\n'+
									'<p class="commentAuthor">'+decodeURIComponent(cName)+' ('+decodeURIComponent(cUrl)+')</p>\n'+
									'<p>'+decodeURIComponent(cComment)+'</p>\n'+
									'</div>');
					}
				});
			}
		});
		return false;
	});
});

