var rac_int = null;
var rac_ta = null;
var comment_is_sending = false;
var current_comment_form = null;
var comment_is_first = true;

function refreshAvailableChars()
{
	end_rac();
	var ta_available = (rac_ta.nextSibling.nodeType == 1 ? rac_ta.nextSibling : rac_ta.nextSibling.nextSibling);
	ta_available.innerHTML = "Caractere disponibile: " + (500 - rac_ta.value.length);
}

function end_rac()
{
	clearInterval(rac_int);
	rac_int = null;
}

function refreshTextarea(ta)
{
	if (ta.value.length > 500) ta.value = ta.value.substring(0,500);
	end_rac();
	rac_ta = ta;
	rac_int = setInterval(refreshAvailableChars, 250);
}

function toggleComment(comment_id)
{
	if ($("comments_container"))
	{
		$("comments_container").style.display = "";
	}
	if ($("commentContainer_" + comment_id))
	{
		var el = $("commentContainer_" + comment_id);
		var state = el.style.display;
		el.style.display = (state == "none" ? "" : "none");
	}
}

function toggleChildren(s_items)
{
	$("comments_container").style.display = "";
	items = s_items.split(",");
	for (var i = 0; i < items.length; i++)
	{
		try
		{
			rStyle = $("comments_holder_" + items[i]).style.display;
			$("comments_holder_" + items[i]).style.display = rStyle == "" ? "none" : "";
		}
		catch(E) { }
	}
}

function doFindNodeRec(parentNode, nodeId)
{
	var node;
	for (var i = 0; i < parentNode.childNodes.length; i++)
	{
		node = parentNode.childNodes[i];
		if (node.nodeType == 1)
		{
			if (node.id == nodeId) nodeRecSought = node;
			else findNodeRec(node, nodeId);
		}
	}
}

var nodeRecSought;

function findNodeRec(parentNode, nodeId)
{
	doFindNodeRec(parentNode, nodeId);
	return nodeRecSought;
}

function toggleCommentForm(cf_name, item_id)
{
	$("comments_container").style.display = "";
	var items = $("commentsRoot");
	
	var c_id_form = cf_name.substring(cf_name.indexOf("comments_holder_") + String("comments_holder_").length);
	current_comment_form = $("replyCommentContainer_" + c_id_form);
	if ($("tellfriend_container"))
	{
		$("tellfriend_container").style.display = "none";
	}
	
	if (items == null) return ;

	var subitems = [];
	var tmp;
	var found = false;
	for (var i = 0; i < items.childNodes.length; i++)
	{
		tmp = items.childNodes[i];
		if (typeof(tmp.id ) != "undefined")
		{
			if (tmp.id.indexOf("comments_holder_") >= 0)
			{
				//replyCommentContainer_
				var c_id = tmp.id.substring(tmp.id.indexOf("comments_holder_") + String("comments_holder_").length);
				var form_id = "replyCommentContainer_" + c_id;
				
				if (tmp.id == cf_name)
				{
					if ($(form_id))
					{
						if (document.getElementById("captcha_comment_" + item_id) != undefined)
						{
							document.getElementById("captcha_comment_" + item_id).src = "/action/captcha/lb_reply_" + item_id;
						}
						$(form_id).style.display = "";
					}
					
					if ($("comments_post_link"))
					{
						if (c_id == "add") $("comments_post_link").style.display = "none";
					}

					if ($(form_id))
					{
						ta = findNodeRec($(form_id), "textAddComment");
						if (ta)
						{
							ta.focus();
						}
					}
					
					found = true;
				}
				else
				{
					$(form_id).style.display = "none";
					if (c_id == "add") $("comments_post_link").style.display = "";
				}
			}
		}
	}

	if (!found)
	{
		c_id = "add";
		form_id = "replyCommentContainer_" + c_id;
		
		if ($(form_id))
		{
			$(form_id).style.display = "";
		}
		
		if ($("comments_post_link"))
		{
			if (c_id == "add") $("comments_post_link").style.display = "none";
		}

		if ($(form_id))
		{
			ta = findNodeRec($(form_id), "textAddComment");
			ta.focus();
		}
	}

}

function closeReply(cid)
{
	$("comments_container").style.display = "";
	try
	{
		$("replyCommentContainer_" + cid).style.display = "none";
	}
	catch(E) { }
}

function spamComment(cid)
{
	if (!confirm("Sigur doriti sa marcati acest comentariu ca SPAM ?")) return ;
	
	$("comments_container").style.display = "";
	var comments_id = "cid=" + cid;
	var params = "?" + [comments_id].join("&");
	new Ajax.Request("/comments/spam",
	{
		method: "GET",
		parameters: params,
		onSuccess: function(transport) {
			var json = transport.responseText.evalJSON();
			if (json==false)
			{
				alert("Eroare Ajax!");
			} else
			{
				if (json.err) 
				{
					alert(json.msg);
				}
				else
				{
					loadComments();
				}
			}
		},
		onFailure: function() {
			alert("Eroare Ajax!");
		}
	});
}

function replyComment(pid)
{
	if (comment_is_sending)
	{
		return ;
	}
	
	comment_is_sending = true;
	//$("replyCommentContainer_" + pid).style.display = "none";
	$("commentloading_" + pid).style.display = "";

	$("comments_container").style.display = "";
	f = $("replyCommentForm_" + pid);
	f["page_link"].value = document.location.href;
	
	new Ajax.Request("/comments/add",
	{
		method: f.action,
		parameters: f.serialize(true),
		onSuccess: function(transport) {
			var json = transport.responseText.evalJSON();
			if (json==false)
			{
				alert("Eroare Ajax!");
			} else
			{
				if (json.err) 
				{
					comment_is_sending = false;
					//$("replyCommentContainer_" + pid).style.display = "";
					$("commentloading_" + pid).style.display = "none";
					if (json.msg) alert(json.msg);
					if (json.data)
					{
						fieldsForm = $("replyCommentForm_" + pid);
						
						fieldsForm["email"].className = "ffield";
						fieldsForm["fullname"].className = "ffield";
						fieldsForm["textAddComment"].className = "textbox";
						fieldsForm["captcha"].className = "ffield";
						var is_firstfield = true;
						for (var i = 0; i < json.data.length; i++)
						{
							try
							{
								fieldName = "";
								if (json.data[i] == "comment") fieldName = "textAddComment";
								if (json.data[i] == "name") fieldName = "fullname";
								if (json.data[i] == "captcha") fieldName = "captcha";
								if (json.data[i] == "follow_up_anonim") 
								{
									document.getElementById("email_user_anonim_" + pid).style.display = "block";
									fieldsForm["email"].className = "ffield_error";
									if (json.data[i] == "email") fieldName = "email";
								}
								if (fieldName != "")
								{
									fieldNode = fieldsForm[fieldName].nodeName;
									if (is_firstfield)
									{
										fieldsForm[fieldName].focus();
										is_firstfield = false;
									}
									if (fieldNode == "INPUT")
										fieldsForm[fieldName].className = "ffield_error";
									else if (fieldNode == "TEXTAREA")
										fieldsForm[fieldName].className = "textbox_error";
								}
							}
							catch(E) { }
						}
					}
				}
				else
				{
					comment_is_sending = false;
					loadComments();
				}
			}
		},
		onFailure: function() {
			alert("Eroare Ajax!");
		}
	});
}
function addComment()
{
	if (comment_is_sending)
	{
		return ;
	}
	
	comment_is_sending = true;
	//$("replyCommentContainer_add").style.display = "none";
	$("commentloading_add").style.display = "";
	
	$("comments_container").style.display = "";
	f = $("addCommentForm");
	f["page_link"].value = document.location.href;
	
	new Ajax.Request("/comments/add",
	{
		method: f.action,
		parameters: f.serialize(true),
		onSuccess: function(transport) {
			//$("captcha_lb_add").src = "/action/captcha/lb_add?" + new Date().getTime();
			var json = transport.responseText.evalJSON();
			if (json==false)
			{
				alert("Eroare Ajax!");
			} else
			{
				if (json.err) 
				{
					comment_is_sending = false;
					//$("replyCommentContainer_add").style.display = "";
					$("commentloading_add").style.display = "none";

					if (json.msg) alert(json.msg);
					if (json.data)
					{
						fieldsForm = document.forms["addCommentForm"];
						fieldsForm["email"].className = "ffield";
						fieldsForm["fullname"].className = "ffield";
						fieldsForm["textAddComment"].className = "textbox";
						fieldsForm["captcha"].className = "ffield";

						var is_firstfield = true;
						for (var i = 0; i < json.data.length; i++)
						{
							try
							{
								fieldName = "";
								if (json.data[i] == "comment") fieldName = "textAddComment";
								if (json.data[i] == "email") fieldName = "email";
								if (json.data[i] == "name") fieldName = "fullname";
								if (json.data[i] == "captcha") fieldName = "captcha";
								if (json.data[i] == "follow_up_anonim") 
								{
									document.getElementById("mail_user_anonim").style.display = "block";
									fieldsForm["email"].className = "ffield_error";
									if (json.data[i] == "email") fieldName = "email";
								}
								if (fieldName != "")
								{
									fieldNode = fieldsForm[fieldName].nodeName;
									if (is_firstfield)
									{
										fieldsForm[fieldName].focus();
										is_firstfield = false;
									}
									if (fieldNode == "INPUT")
										fieldsForm[fieldName].className = "ffield_error";
									else if (fieldNode == "TEXTAREA")
										fieldsForm[fieldName].className = "textbox_error";
								}
							}
							catch(E) { }
						}
					}
				}
				else
				{
					comment_is_sending = false;
					loadComments();
				}
			}
		},
		onFailure: function() {
			alert("Eroare Ajax!");
		}
	});
}

function loadCommentsPage(newPage)
{
	$("comments_page").value = newPage;
	loadComments("yes");
}

function getURLParam(strParamName)
{
	var strReturn = "";
	var strHref = window.location.href;
	if (strHref.indexOf("?") > -1)
	{
		var strQueryString = strHref.substr(strHref.indexOf("?"));
		var aQueryString = strQueryString.split("&");
		for (var iParam = 0; iParam < aQueryString.length; iParam++)
		{
			if (aQueryString[iParam].indexOf(strParamName + "=") > -1)
			{
				var aParam = aQueryString[iParam].split("=");
				strReturn = aParam[1];
				break;
			}
		}
	}
	return decodeURIComponent(strReturn);
}

function loadComments(fromPage)
{
	var sought_comment_id = getURLParam("comment_id");
	if (!sought_comment_id || fromPage == "yes") sought_comment_id = 0;

	var comments_page = "comments_page=" + $("comments_page").value;
	var assoc = "assoc=" + $("assoc").value;
	var assoc_id = "assoc_id=" + $("assoc_id").value;
	var data = "data=" + $("data").value;
	var sought_comment = "sought_comment_id=" + sought_comment_id;

	var params = "?" + [comments_page, assoc, assoc_id, data, sought_comment].join("&");
	
	new Ajax.Request("/comments/load", 
	{
		method: "GET",
		parameters: params,
		onSuccess: function(transport) {
			var json = transport.responseText.evalJSON();
			if (json==false)
			{
				alert("Eroare Ajax!");
			} else
			{
				if (json.err) 
				{
					alert("EROARE: "+json.msg);
				}
				else
				{
					if (typeof(json.templates) != "undefined")
					{
						var container_length = $("comments_container").innerHTML.length;
						$("comments_container").innerHTML = json.templates;
						
						str_comm_link = "";
						if (container_length > 0)
						{
							str_comm_link = "#c" + json.first_id;
						}
						else
						{
							str_comm_link = "#c" + json.comment_id;
						}
						if (str_comm_link != "")
						{
							str_comm_href = document.location.href;
							if (str_comm_href.indexOf("#") >= 0)
							{
								str_comm_href = str_comm_href.substr(0, str_comm_href.indexOf("#"));
							}
							if (!comment_is_first || document.location.href.indexOf("#") >= 0)
							{
								document.location.href = str_comm_href + str_comm_link;
							}
						}
						// hide if there is no commnent on lookbook
						//if (json.total_templates == 0) $("comments_container").style.display = "none";
						comment_is_first = false;
					}
				}
			}
		},
		onFailure: function() {
			alert("Eroare Ajax!");
		}
	});
	
	return false;
}

function showOpac()
{
}

function restoreOpac()
{
}
