addComment = {
	moveForm : function(commId, parentId, respondId, postId) {
		var t = this, div, comm = t.I(commId), respond = t.I(respondId), cancel = t.I('cancel-comment-reply-link'), parent = t.I('comment_parent'), post = t.I('comment_post_ID');

		t.rmTiny();

		if ( ! comm || ! respond || ! cancel || ! parent )
			return;

		t.respondId = respondId;
		postId = postId || false;

		if ( ! t.I('wp-temp-form-div') ) {
			div = document.createElement('div');
			div.id = 'wp-temp-form-div';
			div.style.display = 'none';
			respond.parentNode.insertBefore(div, respond);
		}

		comm.parentNode.insertBefore(respond, comm.nextSibling);
		if ( post && postId )
			post.value = postId;
		parent.value = parentId;
		cancel.style.display = '';

		cancel.onclick = function() {
			var t = addComment, temp = t.I('wp-temp-form-div'), respond = t.I(t.respondId);

			t.rmTiny();

			if ( ! temp || ! respond )
				return;

			t.I('comment_parent').value = '0';
			temp.parentNode.insertBefore(respond, temp);
			temp.parentNode.removeChild(temp);
			this.style.display = 'none';
			this.onclick = null;

			t.addTiny();

			return false;
		}
		
		t.addTiny();

		try { t.I('comment_area').focus(); }
		catch(e) {}

		return false;
	},

	I : function(e) {
		return document.getElementById(e);
	},

	rmTiny : function() {
		try {
			tinyMCE.triggerSave();
			tinyMCE.execCommand('mceFocus', false, 'comment_area');
			tinyMCE.execCommand('mceRemoveControl', false, 'comment_area');
		} catch(el) { console.error(el); }
	},

	addTiny : function() {
		try { tinyMCE.execCommand('mceAddControl', false, 'comment_area');
		} catch (e) { console.error(e); }
	}
}
