$(document).ready(function(){
	/**
	 * event used to add a comment reply form to the nested set of comments
	 */
	$('div.commentList div.reply a').live('click', function() {
		var id = $(this).attr('href').replace(/\D+/, '');
		var randomId = 'dialog'+Math.floor(Math.random()*1001);
		
		$('body').append('<div style="display:none;" title="Compose your reply" id="'+randomId+'"></div>')
		$('#replyFormTemplate div.commentReplyForm:first').clone().appendTo('#'+randomId);
		var $replyForm = $('#'+randomId).find('form:first');
		
		$replyForm.find("input[name='data[Comment][parent_id]']").val(id);
		
		$('#'+randomId).dialog({
			bgiframe: true,
			modal: true,
			buttons: {
				'Post reply': function() {
					var $dialog = $(this);
	
					$replyForm.ajaxSubmit({
						dataType: 'json',		
						success: function(data) {
							$('#replySpinner').remove();
							
							if (data.Errors) {
								for (var i in data.Errors) {
									$replyForm.find("div.input :input[name='data[Comment]["+i+"]']").addClass('form-error').after('<div class="error-message">'+data.Errors[i]+'</div>');
								}
							} else {
								$dialog.dialog('close');
								WC.basicDialog("Success", "Your reply has been posted.");
							}
							
							if (data.ErrorMessage) {
								$dialog.dialog('close');
								WC.basicDialog(data.ErrorMessage, "Error");
							}
						},
						beforeSubmit: function(formData, jqForm, options) {
							jqForm.find("div.input :input").removeClass('form-error');
							jqForm.find('div.error-message').remove();
							$('div.ui-dialog-buttonpane:first button:last').after('<img src="/img/admin/spinner.gif" class="spinner" alt="spinner" id="replySpinner" />');
						},
						error: function() {
							$dialog.dialog('close');
							WC.basicDialog("Request failed. Please try again later.", "Error");
						}												
					});
				},
				Cancel: function() {
					$(this).dialog('close');
				}	
			}
		});
	});	
});
