$(document).ready(function(){

	// Comment and Comment Votes

	$(".send-comment-button").click(function(){

		var id      = $("#newsID").val();
		var islem      = $("#islem").val();
		var name    = $(".sag input[name=name]").val();
		var email   = $(".sag input[name=email]").val();
		var comment = $("#comment-area").val();

		var reg = new RegExp('^[a-zA-ZığüşöçİĞÜŞÖÇ ]+$');
		if (!reg.exec(name)) {
			alert("Lütfen Ad-Soyad alanına geçerli bir isim girin!");
			return false;
		}
		if (!isEmail(email)) {
			alert("Lütfen geçerli bir E-Posta girin!");
			return false;
		}
		if(comment.length > 500) {
			alert("Yorumunuz en fazla 500 karakter olabilir!");
			return false;
		}
		if(comment.length == 0) {
			alert("Lütfen önce yorum yazınız!");
			return false;
		}

		$(".send-comment-button").attr("disabled", "disabled");

		$.ajax({

			type: "POST",
			url: "write_comment.php",
			data: {id : id, name : name, email : email, comment : comment, islem : islem},
			dataType: "json",
			success: function(res) {
				if(res.stat == "success") {
					$(".sag input[name=name]").val("").blur();
					$(".sag input[name=email]").val("").blur();
					$("#comment-area").val("").blur();
				}
				alert(res.code);
				$(".send-comment-button").removeAttr("disabled");
			},
			error: function(xhr, textStatus, errorThrown) {
				alert("Yorumunuz gönderilemedi!" + textStatus + " > " + errorThrown);
				$(".send-comment-button").removeAttr("disabled");
			}

		});


	});

	$("#comment-area").keyup(function() {

		var written = $(this).val();
		if(written.length > 500) {
			written = written.substr(0, 500);
			$(this).val(written);
		}
		var written_length = written.length;
		var left = 500 - written_length;
		$(".write-comment .sol .char-left span").html(left);

	});

	$("#comment-area").change(function() {

		var written = $(this).val();
		if(written.length > 500) {
			written = written.substr(0, 500);
			$(this).val(written);
		}
		var written_length = written.length;
		var left = 500 - written_length;
		$(".write-comment .sol .char-left span").html(left);

	});

	voteComment = function(id, vote, targetEntry, islem) {

		var tEntry = targetEntry;

		$.ajax({

			type: "POST",
			url: "vote_comment.php",
			data: {id : id, vote : vote, islem : islem},
			dataType: "json",
			success: function(res) {
				if(res.stat == "error") {
					targetEntry.find(".vote a").removeClass();
					targetEntry.find(".vote a:eq(0)").addClass("up");
					targetEntry.find(".vote a:eq(1)").addClass("down");
					resetVoteButtonActions();
				} else {
					targetEntry.find(".rate").html((res.sonuc.up - res.sonuc.down > 0 ? "+" : "")+(res.sonuc.up - res.sonuc.down));
				}


			},
			error: function(xhr, textStatus, errorThrown) {
				targetEntry.find(".vote a").removeClass();
				targetEntry.find(".vote a:eq(0)").addClass("up");
				targetEntry.find(".vote a:eq(1)").addClass("down");
				resetVoteButtonActions();
			}

		});

	}

	resetVoteButtonActions = function() {

		$("#comments .vote a").unbind("click");
		$("#comments .vote .up").click(function(){

			var vote = "up";
			var entry = $(this).closest(".entry");
			var id = entry.attr("entryID");
			var islem = entry.attr("islem");

			entry.find(".vote a").removeClass();
			entry.find(".vote a:eq(0)").addClass("selected-up");
			entry.find(".vote a:eq(1)").addClass("disabled-down");
			resetVoteButtonActions();
			voteComment(id, vote, entry, islem);

		});

		$("#comments .vote .down").click(function(){

			var vote = "down";
			var entry = $(this).closest(".entry");
			var id = entry.attr("entryID");
			var islem = entry.attr("islem");
			
			entry.find(".vote a").removeClass();
			entry.find(".vote a:eq(0)").addClass("disabled-up");
			entry.find(".vote a:eq(1)").addClass("selected-down");
			resetVoteButtonActions();
			voteComment(id, vote, entry, islem);

		});

	}

	loadComments = function(id, page, islem) {

		var datastring = "id=" + id +"&page=" + page +"&islem="+ islem;

		$.ajax({
			type: "POST",
			url: "comments2json.php",
			data: datastring,
			dataType: "json",
			success: function(res) {
				if(res.comments) {
					$("#comments").html("");
					$.each(res.comments, function(i, comment){

						if(comment.already_voted == 1) {
							var classUp    = comment.you_voted == "up" ? "selected-up" : "disabled-up";
							var classDw    = comment.you_voted == "down" ? "selected-down" : "disabled-down";
						} else {
							var classUp    = "up";
							var classDw    = "down";
						}
				
						var commentItem = 	'<div class="entry" entryID="' + comment.id + '" islem="'+ comment.islem +'">' +
												'<div class="head">' +
													'<div class="name"><h1>' + comment.name + '</h1><p>' + comment.date + '</p></div>' +
													'<div class="vote-rate">' +
														'<ul>' +
															'<li class="rate">' + (comment.up - comment.down > 0 ? "+" : "")+(comment.up - comment.down) + '</li>' +
															'<li class="vote"><a class="' + classUp + '">Yukarı</a><a class="' + classDw + '">Aşağı</a></li>' +
														'</ul>' +
													'</div>' +
													'<p class="clear"/>' +
												'</div>' +
												'<div class="body">' + comment.comment + '</div>' +
											'</div>';

						$("#comments").append(commentItem);

					});

					var curPage = res.page;
					var maxPage = Math.ceil(res.total / 5);
					var pages = createPages(curPage, maxPage, 1);

					$("#comment-pages").html(pages);

				}

				$("#comment-count").html("(" + res.total + ")");
				resetVoteButtonActions();

			},
			error: function(xhr, textStatus, errorThrown) {
				$("#comments").html("Yorumları yüklerken hata oluştu.<br>Lütfen sayfayı yenilemeyi deneyin.<br><a href='javascript:;' onclick='loadComments("+id+","+page+")'>loadComments</a><br>"+textStatus);
			}
		});

	}

	$(".write-comment input[type=text], .write-comment textarea").focus(function() {
		if(this.value == this.defaultValue){
			this.value = "";
		}
	});
	$(".write-comment input[type=text], .write-comment textarea").blur(function() {
		if ($.trim(this.value) == ""){
			this.value = this.defaultValue ? this.defaultValue : "";
		}
	});

});
