var DeletingCommentDelay=null;
//Add Comment
function addComment(submitForm,newContentContainer,messageContainer,position) {
	if (typeof(position) == 'undefined') { position = 'after'; }
	formData = $(submitForm).serialize(true);
	if(formData['comment'] == '') {
		alert('Please type in a comment before posting.');
		return false;
	}
	msgContainer = $(messageContainer);
	new Ajax.Request('/ajax/postcomment/', {
		method: 'post',
		parameters: formData,
		onSuccess: function(result) {
			Form.reset($(submitForm));
			 
			//Bottom //new Insertion.Top($(newContentContainer), result.responseText);
			if (position == 'bottom') {
				Element.insert(newContentContainer, { bottom: result.responseText });
			} else {
				Element.insert(newContentContainer, { top: result.responseText });
			}
			
			msgContainer.innerHTML = 'Your comment has been successfully posted.';
			msgContainer.className = 'cpsuccess';
			Effect.Fade($('nocomments'));
		},
		onFailure: function(result) {
			msgContainer.innerHTML = 'Your comment cannot be posted at this time. Please try again later';
			msgContainer.className = 'cperror';
		},
		onComplete:initModals
	});
	Effect.Appear(msgContainer,{duration:0.3});
	Effect.Fade.delay(6,msgContainer,{duration:0.3});
	return false;
}

//Edit Comment
function initEditComment(id,type,div) {
	new Ajax.Request('/modules/sys/editcomment.php?comment='+id+'&type='+type, {
		asynchronous:true,
		evalScripts:true,
		method: 'post',
		onSuccess: function(transport) {
			$(div).innerHTML = transport.responseText;
			$('cmsg_'+id).hide();
			$('emsg_'+id).show();
		},
		onFailure: function(transport) {
			alert(transport.responseText);
		}
	});
}

function cancelEditComment(id) {
	$('cmsg_'+id).show();
	$('emsg_'+id).hide();
}

function editComment(id) {
	data = $('edit_comment_' + id).serialize();
	new Ajax.Request('/ajax/editcomment/', {
		method: 'post',
		parameters: data,
		onSuccess: function(result) {
			$('cmsg_'+id).innerHTML = result.responseText;
			cancelEditComment(id);
		},
		onFailure: function(result) {
			alert(result.responseText);
		}
	});
	return false;
}

//Delete Comment
function deleteComment(id,type,messageContainer,pid) {
	//if(confirm("Are you sure you want to delete this comment?")) {
	//	window.location.href = "http://www.artician.com/ajax/delcomment/?id=" + id;	
	//}
	if(confirm('Are you sure you want to delete this comment? Any deleted comment is deleted forever!')) {
		msgContainer = $(messageContainer);
		msgContainer.innerHTML = '';
		msgContainer.className = '';
		window.clearTimeout(DeletingCommentDelay);
		if (!$(msgContainer).visible()) {
			Effect.Appear(msgContainer,{duration:0.3});
		}
		new Ajax.Request('/ajax/delcomment/', {
			method: 'post',
			parameters: {'id':id,'type':type},
			onSuccess: function(result) {
				msgContainer.innerHTML = result.responseText;
				msgContainer.className = 'cpsuccess';
				Effect.BlindUp('comment_'+id, {
					duration:0.3,
					afterFinish: function(obj) {
						if($('comment_'+id) && $('comment_'+id).next() && $('comment_'+id).next().hasClassName('clear')) {
							$('comment_'+id).next().remove(); //div id="clear", remove this first
						}
						$('comment_'+id).remove();
						if(pid != 0 && pid != null) {
							if($('comment_replies_'+pid).empty()) {
								$('comment_replies_'+pid).previous(0).hide();
							}
						}
					}
				});
			},
			onFailure: function(result) {
				msgContainer.innerHTML = result.responseText;
				msgContainer.className = 'cperror';
			}
		});
		//Effect.Appear(msgContainer);
		Effect.Appear(msgContainer,{
			afterFinish: function(obj) {
				DeletingCommentDelay = Effect.Fade.delay(4,msgContainer,{duration:0.3});
			}
		});
		//new PeriodicalExecuter(function(pe) {
		//	Effect.Fade(msgContainer,{duration:0.3});
		//	pe.stop;
		//},4);
		return false;
	}
}

function replyToComment(id) {
	data = $('replyForm_'+id).serialize(true);
	new Ajax.Request('/ajax/postcomment/', {
		method: 'post',
		parameters: data,
		onSuccess: function(result) {
			sep = '<div class="sep"></div>';
			if($('comment_replies_'+id).innerHTML == '') {
				Element.insert('comment_replies_'+id, { 'before': sep })
			}
			
			Element.insert('comment_replies_'+id,result.responseText);
			if($('comment_replies_'+id) && $('comment_replies_'+id).previous() && $('comment_replies_'+id).previous().hasClassName('sep')) {
				$('comment_replies_'+id).previous().show();
			}
			$('replyForm_'+id).reset();
			$('reply_to_'+id).hide();
		},
		onFailure: function(result) {
			msgContainer.innerHTML = 'Your comment cannot be posted at this time. Please try again later';
			msgContainer.className = 'cperror';
		}
	});	
}

//Reply to a Comment
/*function replyComment(id) {
	if($('repCon_'+id).innerHTML == ''){
		Element.insert('repCon_'+id, '<div id="reply_'+id+'" class="replyComment"><div class="sep"></div><textarea class="textarea"></textarea><span><input type="button" class="button_okay slim" value="Post Comment" onclick=""/> <input type="button" class="button_alert slim" value="Cancel" onclick="cancelReply('+id+');"/></span></div>')
	}
	else if($('repCon_'+id).innerHTML != ''){
		$('repCon_'+id).innerHTML = '';
	}
}

//Cancel a reply
function cancelReply(id) {
	$('repCon_'+id).innerHTML = '';
}	
*/

function quoteComment(id,type,textarea) {
	new Ajax.Request('/ajax/quotecomment/', {
		method: 'post',
		parameters: {'id':id,'type':type},
		onSuccess: function(result) {
			InsertText(textarea,'[quote]'+result.responseText+'[/quote]');
			$(textarea).focus();
			new Effect.ScrollTo(textarea,{offset:-350});
		},
		onFailure: function(result) {
			alert(result.responseText);
		}
	});
}


//Add Reply
function addReply(submitForm,newContentContainer,messageContainer,position) {
	if (typeof(position) == 'undefined') { position = 'after'; }
	formData = $(submitForm).serialize(true);
	if(formData['comment'] == '') {
		alert('Please type in a comment before posting.');
		return false;
	}
	msgContainer = $(messageContainer);
	new Ajax.Request('/ajax/postcomment/', {
		method: 'post',
		parameters: formData,
		onSuccess: function(result) {
			Form.reset($(submitForm));
			 
			//Bottom //new Insertion.Top($(newContentContainer), result.responseText);
			if (position == 'bottom') {
				Element.insert(newContentContainer, { bottom: result.responseText });
			} else {
				Element.insert(newContentContainer, { top: result.responseText });
			}
			
			msgContainer.innerHTML = 'Your reply has been successfully posted.';
			msgContainer.className = 'cpsuccess';
			if (!Element.visible('topicReplies')) { Effect.Appear($('topicReplies')); }
			Effect.Fade($('noReplies'));
		},
		onFailure: function(result) {
			msgContainer.innerHTML = 'Your reply cannot be posted at this time. Please try again later';
			msgContainer.className = 'cperror';
		},
		onComplete:initModals
	});
	Effect.Appear(msgContainer,{duration:0.3});
	Effect.Fade.delay(6,msgContainer,{duration:0.3});
	return false;
}
//Delete Reply
function deleteReply(id,gid,type,messageContainer) {
	if(confirm('Are you sure you want to remove this reply?')) {
		msgContainer = $(messageContainer);
		msgContainer.innerHTML = '';
		msgContainer.className = '';
		window.clearTimeout(DeletingCommentDelay);
		if (!$(msgContainer).visible()) {
			Effect.Appear(msgContainer,{duration:0.3});
		}
		new Ajax.Request('/ajax/delcomment/', {
			method: 'post',
			parameters: {'id':id,'type':type,'gid':gid},
			onSuccess: function(result) {
				msgContainer.innerHTML = result.responseText;
				msgContainer.className = 'cpsuccess';
				Effect.BlindUp('reply_'+id, {
					duration:0.3,
					afterFinish: function(obj) {
						if($('reply_'+id) && $('reply_'+id).next() && $('reply_'+id).next().hasClassName('clear')) {
							$('reply_'+id).next().remove(); //div id="clear", remove this first
						}
						$('reply_'+id).remove();
						
						if ($$('#commentContent .entry') == 0) {
							Effect.Fade($('topicReplies'));
							Effect.Appear($('noReplies'));
						}
					}
				});
			},
			onFailure: function(result) {
				msgContainer.innerHTML = result.responseText;
				msgContainer.className = 'cperror';
			}
		});
		Effect.Appear(msgContainer,{
			afterFinish: function(obj) {
				DeletingCommentDelay = Effect.Fade.delay(4,msgContainer,{duration:0.3});
			}
		});
		return false;
	}
}
//'discussionWrapper'
function deleteTopic(id,gid,container) {
	if(confirm('Are you sure you want to remove this topic?')) {
		new Ajax.Request('/modules/cp/groups/actions.php', {
			method: 'post',
			parameters: {'type':'discussions.delete.topic','gid':gid,'id':id},
			onSuccess: function(r) {
				//alert(result.responseText);
				//window.location.href = "/discussion/";
				new Ajax.Request('/modules/cp/groups/viewmodule.php?modtag=g_page_discussion&section=members', {
					method: 'get',
					evalScripts:true,
					asynchronous:true,
					onSuccess:function(result){
						Effect.toggle('postNewTopic','slide');
						$(container).replace(result.responseText);
						newStatusMsg(r.responseText,1,15,'discussionMessages');
					},

					onFailure: function(result) {
						alert(result.responseText);
					}
				});
			},
			onFailure: function(result) {
				msgContainer.innerHTML = result.responseText;
				msgContainer.className = 'cperror';
			}
		});
	}
}
