//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;
using System.Xml;
using CommunityServer.Components;

namespace CommunityServer.Blogs.Components
{
	/// <summary>
	/// Summary description for WeblogHtmlScrubbing.
	/// </summary>
	public class FeedbackHtmlFormatting : ICSModule
	{
		public FeedbackHtmlFormatting()
		{
			//
			// TODO: Add constructor logic here
			//
		}

		public void Init(CSApplication csa, XmlNode node)
		{
			csa.PrePostUpdate +=new CSPostEventHandler(csa_BeforeProcessPost);
		}

		private void csa_BeforeProcessPost(IContent content, CSPostEventArgs e)
		{
			if(e.ApplicationType == ApplicationType.Weblog && e.State == ObjectState.Create)
			{
				WeblogPost wp = content as WeblogPost;
				if(wp != null)
				{
					if((wp.BlogPostType == BlogPostType.Comment || wp.BlogPostType == BlogPostType.Trackback))
					{
                        if(e.State == ObjectState.Create)
                        {
                            wp.FormattedBody = Formatter.SafeFeedback(wp.FormattedBody);
                            wp.Excerpt = Globals.HtmlEncode(wp.Excerpt);
                        }
                        else if (e.State == ObjectState.Update)
                        {
                            wp.FormattedBody = HtmlScrubber.Clean(wp.FormattedBody,false,true);
                            wp.Excerpt = HtmlScrubber.Clean(wp.Excerpt,false,true);
                        }
					}
				}
			}
		}
	}
}
