$(document).ready(function(){

	$.ajaxSetup({
		type: "POST",
		url:  "/x/index.php",
		dataType:  "json",
		success: h
	});

	$(".comment_submit").click(submitComment);
	$(".count_msg").click(newComments);
	gc = setTimeout ( "getCounts()", update_interval );
	
});

var update_interval  = 1000 * 120;
var submit_el;
var md;

function getData() {
	var last = $(".comment:last");
	if(last.size() == 0)
		return "p=" + $("input[name=p]").val() + "&c=0&cc=0";
	return "p=" + $("input[name=p]").val() + "&c=" + last.attr("id").substr(1) + "&cc=" + last.find("span.count").text();
}

function submitComment() {
	clearTimeout(gc);
	clearTimeout(md);
	submit_el = $(this);
	data = getData() + "&" + $(this).parents("form").serialize() + "&a=pc";
	$(this).attr("disabled","disabled");
	$.ajax({
		data: data
	});
	return false;
}

function getCounts() {
	clearTimeout(gc);
	data = getData() + "&a=gc";;
	$.ajax({
		data: data
	});
	return false;
}

function newComments() {
	clearTimeout(gc);
	data = getData() + "&a=nc";;
	$.ajax({
		data: data
	});
	return false;
}

function unHideComment() {
	if(el = $(".comment_new:first")) {
		el.removeClass("comment_new").show(300,unHideComment);
	}
}

function countMsgDefault() {
	$(".count_msg").removeClass("yellow").removeClass("green").addClass("blue").html("<p>Check for new comments.</p>").click(newComments);
	gc = setTimeout ( "getCounts()", update_interval );
}

function h(d) {
	if(d.a) {
		switch(d.a) {
			case "pc":
			gc = setTimeout ( "getCounts()", update_interval );
			if(d.s == 1) {
				submit_el.removeAttr("disabled").parents("form").find("textarea").val("").end().find("input[name=code]").val("");
				$("#image").attr("src","/securimage/securimage_show.php?sid=" + Math.random());
				$(".comment_msg").hide().empty();
			}
			else {
				submit_el.removeAttr("disabled");
				$(".comment_msg").show().html(d.e);
			}
			break;
			
			case "gc":
			gc = setTimeout ( "getCounts()", update_interval );
			if(d.s == 1) {
				cdiff = d.cc - $(".comment:last").find("span.count").text();
				if(cdiff > 0) {
					$(".count_msg").removeClass("green").removeClass("yellow").addClass("blue").html("<p>Load "+cdiff+" new comments.</p>");
				}
			}
			else {
				$(".count_msg").html("<p>error</p>");
			}
			break;
			
			case "nc":
			if(d.s == 1) {
				if(d.ca == 1) {
					submit_el.removeAttr("disabled").parents("form").find("textarea").val("").end().find("input[name=code]").val("");
					$("#image").attr("src","/securimage/securimage_show.php?sid=" + Math.random());
				}
				var el = $(".count_msg");
				if(d.c.length == 0) {
					$(".count_msg").removeClass("blue").removeClass("green").addClass("yellow").html("<p>None.</p>").unbind("click");
				}
				else {
					$(".count_msg").removeClass("blue").removeClass("yellow").addClass("green").html("<p>"+d.c.length+" new comments loaded.</p>").unbind("click");
					for(i in d.c) {
						el.before(d.c[i]);
					}
					unHideComment();
				}
				md = setTimeout ( "countMsgDefault()", 5000 );
			}
			else {
				gc = setTimeout ( "getCounts()", update_interval );
			}
			break;
			
			default:
			alert("action not found");
		}
	}
	else alert("no action returned");
}