commit 6c599b5eda43f102c4cefefd60dc0a8a1ff55e99
Author: editor <@51Aspx.com>
Date: Wed Jun 28 18:09:45 2023 +0800
初始化
diff --git a/51Aspx源码必读.txt b/51Aspx源码必读.txt
new file mode 100644
index 0000000..6500cb7
--- /dev/null
+++ b/51Aspx源码必读.txt
@@ -0,0 +1,57 @@
+LITEBLOG(MVC)博客源码
+
+
+ LiteBlog(MVC)博客源码
+
+
+
+
+
+ 项目描述:
+LiteBlog是一个可以用于个人博客的轻量级博客系统。它完全基于XML并且可以托管到IIS,不需要任何的数据库。
+
+
+ LiteBlog博客引擎使用了Asp.net MVC 3, Razor 视图, JQuery, LINQ to XML, 和 FckEditor.
+ 1.Composing of posts using FckEditor (Rich editor)
+ 2.Ability to add code in the blog from the editor
+ 3.Syntax Highlighter to highlight the code
+ 4.Completely XML based
+ 5.Scheduled publishing
+ 6.Enhanced XML Profile Provider
+ 7.Use of jQuery for AJAX
+ 8.Use of Data annotations for validations
+ 9.Use of LINQ to XML for XML data access
+ 10.Razor Views with maximum HTML compliance
+ 11.Maximum performance using a cached middle layer
+
+
+
+提示:
+后台管理地址http://你的地址/Admin
+管理用户名密码均为admin
+
+
+ 作者:vijayst
+
+
+
+作者: vijayst
+
+如需获得该源码的视频、更新等更多资料请访问: https://www.51aspx.com/Code/LiteBlog
+------------------------------------------------------------------------------------------------
+
+ 源码服务专家
+ 官网: https://www.51aspx.com
+ 讨论圈: https://club.51aspx.com/
+
+平台声明:
+
+1.51Aspx平台上提供下载的资源为免费、共享、商业三类源码,其中免费和共享源码仅供个人学习和研究使用,商业源码请在相应的授权许可条件下使用;
+2.51Aspx平台对提供下载的软件及其它资源不拥有任何权利,其版权归属源码合法拥有者所有;
+3.著作权人发现本网站载有侵害其合法权益的内容或作品,请与我们联系( 登录官网与客服反馈或发送邮件到support@51Aspx.com );
+4.51Aspx平台不保证提供的下载资源的准确性、安全性和完整性;
+
+友情提示:
+ 一般数据库文件默认在 DB_51Aspx 文件夹下
+ 默认账号密码一般均为51Aspx
+ 关于源码使用常见问题及解决方案,请参阅: https://www.51aspx.com/Help
diff --git a/Backup/MvcLiteBlog/App_Data/Archive.xml b/Backup/MvcLiteBlog/App_Data/Archive.xml
new file mode 100644
index 0000000..5f39e7b
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Archive.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Backup/MvcLiteBlog/App_Data/Blog.xml b/Backup/MvcLiteBlog/App_Data/Blog.xml
new file mode 100644
index 0000000..90f95aa
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Blog.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Backup/MvcLiteBlog/App_Data/Category.xml b/Backup/MvcLiteBlog/App_Data/Category.xml
new file mode 100644
index 0000000..467c6a6
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Category.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/Backup/MvcLiteBlog/App_Data/Comment.xml b/Backup/MvcLiteBlog/App_Data/Comment.xml
new file mode 100644
index 0000000..d9e78e3
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Comment.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/Backup/MvcLiteBlog/App_Data/Draft.xml b/Backup/MvcLiteBlog/App_Data/Draft.xml
new file mode 100644
index 0000000..7a86146
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Draft.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/Backup/MvcLiteBlog/App_Data/Log.txt b/Backup/MvcLiteBlog/App_Data/Log.txt
new file mode 100644
index 0000000..58cce97
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Log.txt
@@ -0,0 +1,15 @@
+29-Dec-2010 01:27 PM Post file could not be found
+Could not find a part of the path 'C:\Projects\MvcLiteBlog-Deploy\App_Data\Posts\Test.xml'.
+mscorlib
+ at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
+ at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
+ at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
+ at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
+ at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
+ at System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)
+ at System.Threading.CompressedStack.runTryCode(Object userData)
+ at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
+ at System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state)
+ at System.Xml.XmlTextReaderImpl.OpenUrl()
+ at System.Xml.XmlTextReaderImpl.Read()
+ at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
diff --git a/Backup/MvcLiteBlog/App_Data/Profile.xml b/Backup/MvcLiteBlog/App_Data/Profile.xml
new file mode 100644
index 0000000..7fa81a8
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Profile.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+ ::1
+
+
+
+ 51aspx
diff --git a/Backup/MvcLiteBlog/App_Data/Rss.xml b/Backup/MvcLiteBlog/App_Data/Rss.xml
new file mode 100644
index 0000000..a040d68
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Rss.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/Backup/MvcLiteBlog/App_Data/Service.xml b/Backup/MvcLiteBlog/App_Data/Service.xml
new file mode 100644
index 0000000..ae8d830
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Service.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Backup/MvcLiteBlog/App_Data/Settings.xml b/Backup/MvcLiteBlog/App_Data/Settings.xml
new file mode 100644
index 0000000..ace27fe
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Settings.xml
@@ -0,0 +1,9 @@
+
+
+ My Blog
+
+
+ 8
+ India Standard Time
+ False
+
diff --git a/Backup/MvcLiteBlog/App_Data/Stat.xml b/Backup/MvcLiteBlog/App_Data/Stat.xml
new file mode 100644
index 0000000..70ab4c2
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Stat.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Backup/MvcLiteBlog/App_Data/User.xml b/Backup/MvcLiteBlog/App_Data/User.xml
new file mode 100644
index 0000000..5561184
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/User.xml
@@ -0,0 +1,15 @@
+
+
+
+ admin
+ False
+ 14/11/2010 01:01 AM
+ 14/11/2010 01:01 AM
+ 10/07/2012 07:14 AM
+ 14/11/2010 01:01 AM
+ 14/11/2010 01:01 AM
+
+
+ admin
+ False
+ 10/07/2012 07:03 AM
diff --git a/Backup/MvcLiteBlog/App_Data/Web.xml b/Backup/MvcLiteBlog/App_Data/Web.xml
new file mode 100644
index 0000000..5fbb47d
--- /dev/null
+++ b/Backup/MvcLiteBlog/App_Data/Web.xml
@@ -0,0 +1,10 @@
+
+
+ My Blog
+ Blog powered by LiteBlog
+
+
+
+
+
+
diff --git a/Backup/MvcLiteBlog/Attributes/MultiButtonAttribute.cs b/Backup/MvcLiteBlog/Attributes/MultiButtonAttribute.cs
new file mode 100644
index 0000000..b7e5d45
--- /dev/null
+++ b/Backup/MvcLiteBlog/Attributes/MultiButtonAttribute.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+
+namespace MvcLiteBlog.Attributes
+{
+ public class MultiButtonAttribute : ActionNameSelectorAttribute
+ {
+ public string FormName { get; set; }
+ public string FormValue { get; set; }
+
+ public override bool IsValidName(ControllerContext controllerContext, string actionName, System.Reflection.MethodInfo methodInfo)
+ {
diff --git a/Backup/MvcLiteBlog/BlogEngine/ArchiveComp.cs b/Backup/MvcLiteBlog/BlogEngine/ArchiveComp.cs
new file mode 100644
index 0000000..f2f03a4
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/ArchiveComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+
+namespace LiteBlog.BlogEngine
+{
+ public class ArchiveComp
+ {
+
+ public static List GetArchiveMonths()
+ {
+ List months = CacheHelper.Get>(CacheType.Archive);
+ if (months == null)
diff --git a/Backup/MvcLiteBlog/BlogEngine/AuthorComp.cs b/Backup/MvcLiteBlog/BlogEngine/AuthorComp.cs
new file mode 100644
index 0000000..3e37bef
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/AuthorComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+using System.Web.Security;
+
+namespace LiteBlog.BlogEngine
+{
+ public class EngineException : ApplicationException
+ {
+ public EngineException() { }
+ public EngineException(string msg) : base(msg) { }
+ public EngineException(string msg, Exception ex) : base(msg, ex) { }
+ }
diff --git a/Backup/MvcLiteBlog/BlogEngine/BlogComp.cs b/Backup/MvcLiteBlog/BlogEngine/BlogComp.cs
new file mode 100644
index 0000000..4333fd7
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/BlogComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+
+namespace LiteBlog.BlogEngine
+{
+ public class BlogComp
+ {
+
+ private static PostCollection GetBlogInfo(bool bRefresh = false)
+ {
+ PostCollection postCol = CacheHelper.Get(CacheType.Blog);
+ if (postCol == null || bRefresh)
diff --git a/Backup/MvcLiteBlog/BlogEngine/BlogInfo.cs b/Backup/MvcLiteBlog/BlogEngine/BlogInfo.cs
new file mode 100644
index 0000000..c72461a
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/BlogInfo.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Net;
+using System.Xml;
+
+namespace LiteBlog.BlogEngine
+{
+ public enum FeedType
+ {
+ RSS , ATOM
+ }
+
+ public class BlogInfo
diff --git a/Backup/MvcLiteBlog/BlogEngine/CacheHelper.cs b/Backup/MvcLiteBlog/BlogEngine/CacheHelper.cs
new file mode 100644
index 0000000..d62ce04
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/CacheHelper.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Caching;
+using LiteBlog.Common;
+
+namespace LiteBlog.BlogEngine
+{
+ ///
+ /// This class is in Common namespace because it
+ /// is tightly coupled with XmlLayer namespace
+ ///
+ public class CacheHelper
+ {
diff --git a/Backup/MvcLiteBlog/BlogEngine/CategoryComp.cs b/Backup/MvcLiteBlog/BlogEngine/CategoryComp.cs
new file mode 100644
index 0000000..e43a668
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/CategoryComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+
+namespace LiteBlog.BlogEngine
+{
+ public class CategoryComp
+ {
+ public static string GetCategoryName(string categoryID)
+ {
+ List catList = GetCategories();
+ var categories = from cat in GetCategories()
+ where cat.CatID.ToLower() == categoryID.ToLower()
diff --git a/Backup/MvcLiteBlog/BlogEngine/CommentComp.cs b/Backup/MvcLiteBlog/BlogEngine/CommentComp.cs
new file mode 100644
index 0000000..e75dae2
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/CommentComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+using ColorCode.Formatting;
+using ColorCode;
+
+namespace LiteBlog.BlogEngine
+{
+ public class CommentComp
+ {
+ public static void Insert(string fileID, string name, string url, string text, bool isAuthor = false)
+ {
+ bool commentModeration = SettingsComp.GetSettings().CommentModeration;
diff --git a/Backup/MvcLiteBlog/BlogEngine/ConfigHelper.cs b/Backup/MvcLiteBlog/BlogEngine/ConfigHelper.cs
new file mode 100644
index 0000000..1fd324f
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/ConfigHelper.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Configuration;
+using System.Reflection;
+using LiteBlog.Common;
+using System.Web.Configuration;
+using Microsoft.Practices.Unity;
+using Microsoft.Practices.Unity.Configuration;
+
+namespace LiteBlog.BlogEngine
+{
+ public class ConfigHelper
+ {
diff --git a/Backup/MvcLiteBlog/BlogEngine/DraftComp.cs b/Backup/MvcLiteBlog/BlogEngine/DraftComp.cs
new file mode 100644
index 0000000..f1447c7
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/DraftComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Xml;
+using System.IO;
+using System.Globalization;
+using LiteBlog.Common;
+using System.Text;
+using System.Web.UI;
+using ColorCode;
+
+
+
+namespace LiteBlog.BlogEngine
diff --git a/Backup/MvcLiteBlog/BlogEngine/PostComp.cs b/Backup/MvcLiteBlog/BlogEngine/PostComp.cs
new file mode 100644
index 0000000..75bfbcf
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/PostComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Xml;
+using System.IO;
+using System.Globalization;
+using LiteBlog.Common;
+using System.Text;
+using System.Web.UI;
+using ColorCode;
+using ColorCode.Formatting;
+
+
+
diff --git a/Backup/MvcLiteBlog/BlogEngine/ProfileComp.cs b/Backup/MvcLiteBlog/BlogEngine/ProfileComp.cs
new file mode 100644
index 0000000..5d11221
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/ProfileComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Profile;
+using System.Web.Security;
+using LiteBlog.Common;
+using System.Configuration;
+
+namespace LiteBlog.BlogEngine
+{
+ public class CustomProfile : ProfileBase
+ {
+ public static CustomProfile GetProfile(string userName)
+ {
diff --git a/Backup/MvcLiteBlog/BlogEngine/PublisherComp.cs b/Backup/MvcLiteBlog/BlogEngine/PublisherComp.cs
new file mode 100644
index 0000000..28e9578
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/PublisherComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Xml;
+using LiteBlog.Common;
+
+namespace LiteBlog.BlogEngine
+{
+ ///
+ /// Helper component to PostComp for publishing
+ ///
+ public class PublisherComp
+ {
+ public static bool Publish(DraftPost post)
diff --git a/Backup/MvcLiteBlog/BlogEngine/ServiceComp.cs b/Backup/MvcLiteBlog/BlogEngine/ServiceComp.cs
new file mode 100644
index 0000000..e03f60f
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/ServiceComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+using System.Reflection;
+
+namespace LiteBlog.BlogEngine
+{
+ public class ServiceComp
+ {
+ ///
+ /// Initializes service run times from Service.xml
+ /// and store in in the Application state object
+ /// Need to run from asp.net worker thread???
diff --git a/Backup/MvcLiteBlog/BlogEngine/SettingsComp.cs b/Backup/MvcLiteBlog/BlogEngine/SettingsComp.cs
new file mode 100644
index 0000000..e0cb8b3
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/SettingsComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+using System.Web.Security;
+
+namespace LiteBlog.BlogEngine
+{
+ public class SettingsComp
+ {
+
+
+ public static Settings GetSettings()
+ {
diff --git a/Backup/MvcLiteBlog/BlogEngine/StatComp.cs b/Backup/MvcLiteBlog/BlogEngine/StatComp.cs
new file mode 100644
index 0000000..bdf7d61
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/StatComp.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+using System.Web.Profile;
+
+namespace LiteBlog.BlogEngine
+{
+ public class StatComp
+ {
+ ///
+ /// to be called only from Application.Start() only
+ ///
+ public static void Initialize()
diff --git a/Backup/MvcLiteBlog/BlogEngine/UrlHelper.cs b/Backup/MvcLiteBlog/BlogEngine/UrlHelper.cs
new file mode 100644
index 0000000..dc8a0fa
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/UrlHelper.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Net;
+using System.IO;
+using System.Xml;
+
+namespace LiteBlog.BlogEngine
+{
+ public class UrlHelper
+ {
+ public static bool IsValidUrl(string url)
+ {
+ HttpWebResponse res;
diff --git a/Backup/MvcLiteBlog/BlogEngine/UrlRewrite.cs b/Backup/MvcLiteBlog/BlogEngine/UrlRewrite.cs
new file mode 100644
index 0000000..e23c90d
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/UrlRewrite.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Web;
+using LiteBlog.Common;
+using System.Text.RegularExpressions;
+
+namespace LiteBlog.BlogEngine
+{
+ public class UrlRewrite : IHttpModule
+ {
+ ///
+ /// You will need to configure this module in the web.config file of your
+ /// web and register it with IIS before being able to use it. For more information
+ /// see the following link: http://go.microsoft.com/?linkid=8101007
+ ///
+ #region IHttpModule Members
diff --git a/Backup/MvcLiteBlog/BlogEngine/XmlMembershipProvider.cs b/Backup/MvcLiteBlog/BlogEngine/XmlMembershipProvider.cs
new file mode 100644
index 0000000..cae4970
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/XmlMembershipProvider.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Security;
+using System.Xml;
+using LiteBlog.Common;
+using System.Configuration.Provider;
+using System.Globalization;
+using System.Text;
+
+namespace LiteBlog.BlogEngine
+{
+ public class XmlMembershipProvider : MembershipProvider
+ {
diff --git a/Backup/MvcLiteBlog/BlogEngine/XmlProfileProvider.cs b/Backup/MvcLiteBlog/BlogEngine/XmlProfileProvider.cs
new file mode 100644
index 0000000..62bbb26
--- /dev/null
+++ b/Backup/MvcLiteBlog/BlogEngine/XmlProfileProvider.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Profile;
+using System.Xml;
+using System.Configuration;
+using System.Collections.Specialized;
+using System.Globalization;
+using System.IO;
+using LiteBlog.Common;
+
+namespace LiteBlog.BlogEngine
+{
+ public class XmlProfileProvider : ProfileProvider
diff --git a/Backup/MvcLiteBlog/Content/Admin.css b/Backup/MvcLiteBlog/Content/Admin.css
new file mode 100644
index 0000000..27b2b15
--- /dev/null
+++ b/Backup/MvcLiteBlog/Content/Admin.css
@@ -0,0 +1,15 @@
+/* Generic page styles */
+body
+{
+ background-color: #fff;
+ margin: 0px;
+ font-family: 'Segoe UI' , 'Lucida Grande' ,Verdana;
+ font-size: 1em;
+}
+
+table
+{
+ padding: 0px;
+ margin: 0px;
+ font-size: 1em;
+}
diff --git a/Backup/MvcLiteBlog/Content/Blog.css b/Backup/MvcLiteBlog/Content/Blog.css
new file mode 100644
index 0000000..db11891
--- /dev/null
+++ b/Backup/MvcLiteBlog/Content/Blog.css
@@ -0,0 +1,15 @@
+/* Generic page styles */
+body
+{
+ background-color: #ddffdd;
+ margin: 0;
+}
+
+table
+{
+ padding: 0px;
+ margin: 0px;
+ font-size: 1em;
+}
+
+tr
diff --git a/Backup/MvcLiteBlog/Content/le-frog/jquery-ui-1.8.16.custom.css b/Backup/MvcLiteBlog/Content/le-frog/jquery-ui-1.8.16.custom.css
new file mode 100644
index 0000000..09da2d8
--- /dev/null
+++ b/Backup/MvcLiteBlog/Content/le-frog/jquery-ui-1.8.16.custom.css
@@ -0,0 +1,15 @@
+/*
+ * jQuery UI CSS Framework 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
diff --git a/Backup/MvcLiteBlog/Controllers/AdminController.cs b/Backup/MvcLiteBlog/Controllers/AdminController.cs
new file mode 100644
index 0000000..7efd71f
--- /dev/null
+++ b/Backup/MvcLiteBlog/Controllers/AdminController.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using System.Web.Security;
+using LiteBlog.BlogEngine;
+using LiteBlog.Common;
+using MvcLiteBlog.Models;
+
+namespace MvcLiteBlog.Controllers
+{
+ public class AdminController : Controller
+ {
+ //
diff --git a/Backup/MvcLiteBlog/Controllers/ArchiveController.cs b/Backup/MvcLiteBlog/Controllers/ArchiveController.cs
new file mode 100644
index 0000000..518c423
--- /dev/null
+++ b/Backup/MvcLiteBlog/Controllers/ArchiveController.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using LiteBlog.BlogEngine;
+using LiteBlog.Common;
+
+namespace MvcLiteBlog.Controllers
+{
+ public class ArchiveController : Controller
+ {
+
+
+ public ActionResult Index(int year, int month)
diff --git a/Backup/MvcLiteBlog/Controllers/AuthorController.cs b/Backup/MvcLiteBlog/Controllers/AuthorController.cs
new file mode 100644
index 0000000..0d54398
--- /dev/null
+++ b/Backup/MvcLiteBlog/Controllers/AuthorController.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using MvcLiteBlog.Models;
+using LiteBlog.Common;
+using LiteBlog.BlogEngine;
+
+namespace MvcLiteBlog.Controllers
+{
+ public class AuthorController : Controller
+ {
+
+ [Authorize]
diff --git a/Backup/MvcLiteBlog/Controllers/CategoryController.cs b/Backup/MvcLiteBlog/Controllers/CategoryController.cs
new file mode 100644
index 0000000..0e7fc7e
--- /dev/null
+++ b/Backup/MvcLiteBlog/Controllers/CategoryController.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using LiteBlog.BlogEngine;
+using LiteBlog.Common;
+using MvcLiteBlog.Models;
+
+namespace MvcLiteBlog.Controllers
+{
+ public class CategoryController : Controller
+ {
+ public ActionResult Index(string id)
+ {
diff --git a/Backup/MvcLiteBlog/Controllers/CommentController.cs b/Backup/MvcLiteBlog/Controllers/CommentController.cs
new file mode 100644
index 0000000..6a13a75
--- /dev/null
+++ b/Backup/MvcLiteBlog/Controllers/CommentController.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using LiteBlog.Common;
+using LiteBlog.BlogEngine;
+using MvcLiteBlog.Models;
+
+
+namespace MvcLiteBlog.Controllers
+{
+ ///
+ /// Used for creating comments from user pages
+ /// Used for editing, deleting, approving, rejecting comments from admin pages
diff --git a/Backup/MvcLiteBlog/Controllers/HomeController.cs b/Backup/MvcLiteBlog/Controllers/HomeController.cs
new file mode 100644
index 0000000..85c6f13
--- /dev/null
+++ b/Backup/MvcLiteBlog/Controllers/HomeController.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using LiteBlog.BlogEngine;
+using LiteBlog.Common;
+using System.ServiceModel.Syndication;
+using System.Xml;
+using System.IO;
+
+namespace MvcLiteBlog.Controllers
+{
+
+ public class HomeController : Controller
diff --git a/Backup/MvcLiteBlog/Controllers/LiteBlogController.cs b/Backup/MvcLiteBlog/Controllers/LiteBlogController.cs
new file mode 100644
index 0000000..4e5580a
--- /dev/null
+++ b/Backup/MvcLiteBlog/Controllers/LiteBlogController.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Caching;
+using System.Web.Mvc;
+using MvcLiteBlog.Models;
+using LiteBlog.Common;
+
+namespace MvcLiteBlog.Controllers
+{
+
+ public class LiteBlogController : Controller
+ {
+ //
diff --git a/Backup/MvcLiteBlog/Controllers/PostController.cs b/Backup/MvcLiteBlog/Controllers/PostController.cs
new file mode 100644
index 0000000..b2e9a5f
--- /dev/null
+++ b/Backup/MvcLiteBlog/Controllers/PostController.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using System.Globalization;
+using LiteBlog.BlogEngine;
+using LiteBlog.Common;
+using MvcLiteBlog.Models;
+using MvcLiteBlog.Attributes;
+
+namespace MvcLiteBlog.Controllers
+{
+ public class PostController : Controller
+ {
diff --git a/Backup/MvcLiteBlog/Extensions/InputHelper.cs b/Backup/MvcLiteBlog/Extensions/InputHelper.cs
new file mode 100644
index 0000000..0914b9b
--- /dev/null
+++ b/Backup/MvcLiteBlog/Extensions/InputHelper.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using System.Web.Mvc.Html;
+
+namespace MvcLiteBlog.Extensions
+{
+ public static class InputHelper
+ {
+ public static IHtmlString ValuedCheckBox(this HtmlHelper helper, string name, string value)
+ {
+ string html = @"";
+ return helper.Raw(String.Format(html, name, value));
diff --git a/Backup/MvcLiteBlog/Extensions/PagerExtension.cs b/Backup/MvcLiteBlog/Extensions/PagerExtension.cs
new file mode 100644
index 0000000..2e3154d
--- /dev/null
+++ b/Backup/MvcLiteBlog/Extensions/PagerExtension.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using System.Web.Mvc.Html;
+
+namespace MvcLiteBlog.Extensions
+{
+ public static class PagerExtension
+ {
+ public static string Pager(this HtmlHelper helper, string action, int pageIndex, int pageSize, int totalRecords)
+ {
+ string html = "";
+ int pageCount = totalRecords % pageSize == 0 ? totalRecords / pageSize : totalRecords / pageSize + 1;
diff --git a/Backup/MvcLiteBlog/Global.asax b/Backup/MvcLiteBlog/Global.asax
new file mode 100644
index 0000000..11e9595
--- /dev/null
+++ b/Backup/MvcLiteBlog/Global.asax
@@ -0,0 +1 @@
+<%@ Application Codebehind="Global.asax.cs" Inherits="MvcLiteBlog.MvcApplication" Language="C#" %>
diff --git a/Backup/MvcLiteBlog/Global.asax.cs b/Backup/MvcLiteBlog/Global.asax.cs
new file mode 100644
index 0000000..7908850
--- /dev/null
+++ b/Backup/MvcLiteBlog/Global.asax.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using System.Web.Routing;
+using LiteBlog.BlogEngine;
+using LiteBlog.Common;
+using System.Web.Profile;
+using System.Web.Security;
+
+namespace MvcLiteBlog
+{
+ // Note: For instructions on enabling IIS6 or IIS7 classic mode,
+ // visit http://go.microsoft.com/?LinkId=9394801
diff --git a/Backup/MvcLiteBlog/Models/AccountModels.cs b/Backup/MvcLiteBlog/Models/AccountModels.cs
new file mode 100644
index 0000000..b5b9705
--- /dev/null
+++ b/Backup/MvcLiteBlog/Models/AccountModels.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using LiteBlog.Common;
+
+namespace MvcLiteBlog.Models
+{
+ public class LoginModel
+ {
+ [Required(ErrorMessage="Please enter a valid user name")]
+ public string UserName { get; set; }
+
diff --git a/Backup/MvcLiteBlog/Models/AppModels.cs b/Backup/MvcLiteBlog/Models/AppModels.cs
new file mode 100644
index 0000000..0f0daa0
--- /dev/null
+++ b/Backup/MvcLiteBlog/Models/AppModels.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using System.Web.Mvc;
+
+
+
+namespace MvcLiteBlog.Models
+{
+ public class ManageAppModel
+ {
+ [Required(ErrorMessage="Please enter a valid blog name")]
diff --git a/Backup/MvcLiteBlog/Models/AuthorModels.cs b/Backup/MvcLiteBlog/Models/AuthorModels.cs
new file mode 100644
index 0000000..b1c5ef7
--- /dev/null
+++ b/Backup/MvcLiteBlog/Models/AuthorModels.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace MvcLiteBlog.Models
+{
+
+ public class AuthorModel
+ {
+ [Required(ErrorMessage = "Please enter a valid user name")]
+ public string Name { get; set; }
diff --git a/Backup/MvcLiteBlog/Models/CatModels.cs b/Backup/MvcLiteBlog/Models/CatModels.cs
new file mode 100644
index 0000000..71dab69
--- /dev/null
+++ b/Backup/MvcLiteBlog/Models/CatModels.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+using LiteBlog.BlogEngine;
+using System.Web.Mvc;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace MvcLiteBlog.Models
+{
+
+ public class CatModel
+ {
diff --git a/Backup/MvcLiteBlog/Models/CommentModels.cs b/Backup/MvcLiteBlog/Models/CommentModels.cs
new file mode 100644
index 0000000..1cfa492
--- /dev/null
+++ b/Backup/MvcLiteBlog/Models/CommentModels.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using LiteBlog.Common;
+
+namespace MvcLiteBlog.Models
+{
+ public class InsertCommentModel
+ {
+ [Required(ErrorMessage="There was some error. Please refresh the page!")]
+ public string FileID { get; set; }
+
diff --git a/Backup/MvcLiteBlog/Models/DonateModels.cs b/Backup/MvcLiteBlog/Models/DonateModels.cs
new file mode 100644
index 0000000..ddefe6e
--- /dev/null
+++ b/Backup/MvcLiteBlog/Models/DonateModels.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace MvcLiteBlog.Models
+{
+ public class DonateModel
+ {
+ [Required(ErrorMessage="Please enter your email")]
+ [RegularExpression(@"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$", ErrorMessage="Please enter the email in a valid format")]
+ public string Email { get; set; }
+
diff --git a/Backup/MvcLiteBlog/Models/GridModel.cs b/Backup/MvcLiteBlog/Models/GridModel.cs
new file mode 100644
index 0000000..f0d2000
--- /dev/null
+++ b/Backup/MvcLiteBlog/Models/GridModel.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace MvcLiteBlog.Models
+{
+ public class GridModel
+ {
+ private List _list = new List();
+ public List List
+ {
+ get { return _list; }
+ set { _list = value; }
+ }
diff --git a/Backup/MvcLiteBlog/Models/PostModels.cs b/Backup/MvcLiteBlog/Models/PostModels.cs
new file mode 100644
index 0000000..1a34ae1
--- /dev/null
+++ b/Backup/MvcLiteBlog/Models/PostModels.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using LiteBlog.Common;
+using LiteBlog.BlogEngine;
+using System.Web.Mvc;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace MvcLiteBlog.Models
+{
+ public class ComposePostModel
+ {
+ public string DraftID { get; set; }
diff --git a/Backup/MvcLiteBlog/MvcLiteBlog.csproj b/Backup/MvcLiteBlog/MvcLiteBlog.csproj
new file mode 100644
index 0000000..3f04927
--- /dev/null
+++ b/Backup/MvcLiteBlog/MvcLiteBlog.csproj
@@ -0,0 +1,15 @@
+
+
+
+ Debug
+ AnyCPU
+
+
+ 2.0
+ {58116181-DB9A-408A-AFC9-ECE842D089D4}
+ {E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ Library
+ Properties
+ MvcLiteBlog
+ MvcLiteBlog
+ v4.0
diff --git a/Backup/MvcLiteBlog/Properties/AssemblyInfo.cs b/Backup/MvcLiteBlog/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..c44254a
--- /dev/null
+++ b/Backup/MvcLiteBlog/Properties/AssemblyInfo.cs
@@ -0,0 +1,15 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("MvcLiteBlog")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("MvcLiteBlog")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
diff --git a/Backup/MvcLiteBlog/Scripts/MicrosoftAjax.debug.js b/Backup/MvcLiteBlog/Scripts/MicrosoftAjax.debug.js
new file mode 100644
index 0000000..b4ea2ad
--- /dev/null
+++ b/Backup/MvcLiteBlog/Scripts/MicrosoftAjax.debug.js
@@ -0,0 +1,15 @@
+// Name: MicrosoftAjax.debug.js
+// Assembly: System.Web.Extensions
+// Version: 4.0.0.0
+// FileVersion: 4.0.20526.0
+//-----------------------------------------------------------------------
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//-----------------------------------------------------------------------
+// MicrosoftAjax.js
+// Microsoft AJAX Framework.
+
+Function.__typeName = 'Function';
+Function.__class = true;
+Function.createCallback = function Function$createCallback(method, context) {
+ ///
+ ///
diff --git a/Backup/MvcLiteBlog/Scripts/MicrosoftAjax.js b/Backup/MvcLiteBlog/Scripts/MicrosoftAjax.js
new file mode 100644
index 0000000..43e4597
--- /dev/null
+++ b/Backup/MvcLiteBlog/Scripts/MicrosoftAjax.js
@@ -0,0 +1,6 @@
+//----------------------------------------------------------
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//----------------------------------------------------------
+// MicrosoftAjax.js
+Function.__typeName="Function";Function.__class=true;Function.createCallback=function(b,a){return function(){var e=arguments.length;if(e>0){var d=[];for(var c=0;c=d)break;a=Function._validateParameter(g[b],f,h);if(a){a.popStackFrame();return a}}return null};Function._validateParameterCount=function(j,d,i){var a,c,b=d.length,e=j.length;if(eb){c=true;for(a=0;a0&&(d=0};Array.dequeue=function(a){return a.shift()};Array.forEach=function(b,e,d){for(var a=0,f=b.length;a=0)b.splice(a,1);return a>=0};Array.removeAt=function(a,b){a.splice(b,1)};Sys._indexOf=function(d,e,a){if(typeof e==="undefined")return -1;var c=d.length;if(c!==0){a=a-0;if(isNaN(a))a=0;else{if(isFinite(a))a=a-a%1;if(a<0)a=Math.max(0,c+a)}for(var b=a;b-1){Sys.Browser.agent=Sys.Browser.InternetExplorer;Sys.Browser.version=parseFloat(navigator.userAgent.match(/MSIE (\d+\.\d+)/)[1]);if(Sys.Browser.version>=8)if(document.documentMode>=7)Sys.Browser.documentMode=document.documentMode;Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(" Firefox/")>-1){Sys.Browser.agent=Sys.Browser.Firefox;Sys.Browser.version=parseFloat(navigator.userAgent.match(/Firefox\/(\d+\.\d+)/)[1]);Sys.Browser.name="Firefox";Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(" AppleWebKit/")>-1){Sys.Browser.agent=Sys.Browser.Safari;Sys.Browser.version=parseFloat(navigator.userAgent.match(/AppleWebKit\/(\d+(\.\d+)?)/)[1]);Sys.Browser.name="Safari"}else if(navigator.userAgent.indexOf("Opera/")>-1)Sys.Browser.agent=Sys.Browser.Opera;Sys.EventArgs=function(){};Sys.EventArgs.registerClass("Sys.EventArgs");Sys.EventArgs.Empty=new Sys.EventArgs;Sys.CancelEventArgs=function(){Sys.CancelEventArgs.initializeBase(this);this._cancel=false};Sys.CancelEventArgs.prototype={get_cancel:function(){return this._cancel},set_cancel:function(a){this._cancel=a}};Sys.CancelEventArgs.registerClass("Sys.CancelEventArgs",Sys.EventArgs);Type.registerNamespace("Sys.UI");Sys._Debug=function(){};Sys._Debug.prototype={_appendConsole:function(a){if(typeof Debug!=="undefined"&&Debug.writeln)Debug.writeln(a);if(window.console&&window.console.log)window.console.log(a);if(window.opera)window.opera.postError(a);if(window.debugService)window.debugService.trace(a)},_appendTrace:function(b){var a=document.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()==="TEXTAREA")a.value+=b+"\n"},assert:function(c,a,b){if(!c){a=b&&this.assert.caller?String.format(Sys.Res.assertFailedCaller,a,this.assert.caller):String.format(Sys.Res.assertFailed,a);if(confirm(String.format(Sys.Res.breakIntoDebugger,a)))this.fail(a)}},clearTrace:function(){var a=document.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()==="TEXTAREA")a.value=""},fail:function(message){this._appendConsole(message);if(Sys.Browser.hasDebuggerStatement)eval("debugger")},trace:function(a){this._appendConsole(a);this._appendTrace(a)},traceDump:function(a,b){var c=this._traceDump(a,b,true)},_traceDump:function(a,c,f,b,d){c=c?c:"traceDump";b=b?b:"";if(a===null){this.trace(b+c+": null");return}switch(typeof a){case "undefined":this.trace(b+c+": Undefined");break;case "number":case "string":case "boolean":this.trace(b+c+": "+a);break;default:if(Date.isInstanceOfType(a)||RegExp.isInstanceOfType(a)){this.trace(b+c+": "+a.toString());break}if(!d)d=[];else if(Array.contains(d,a)){this.trace(b+c+": ...");return}Array.add(d,a);if(a==window||a===document||window.HTMLElement&&a instanceof HTMLElement||typeof a.nodeName==="string"){var k=a.tagName?a.tagName:"DomElement";if(a.id)k+=" - "+a.id;this.trace(b+c+" {"+k+"}")}else{var i=Object.getTypeName(a);this.trace(b+c+(typeof i==="string"?" {"+i+"}":""));if(b===""||f){b+=" ";var e,j,l,g,h;if(Array.isInstanceOfType(a)){j=a.length;for(e=0;e=0;d--){var k=h[d].trim();b=a[k];if(typeof b!=="number")throw Error.argument("value",String.format(Sys.Res.enumInvalidValue,c.split(",")[d].trim(),this.__typeName));j|=b}return j}}function Sys$Enum$toString(c){if(typeof c==="undefined"||c===null)return this.__string;var d=this.prototype,a;if(!this.__flags||c===0){for(a in d)if(d[a]===c)return a}else{var b=this.__sortedValues;if(!b){b=[];for(a in d)b[b.length]={key:a,value:d[a]};b.sort(function(a,b){return a.value-b.value});this.__sortedValues=b}var e=[],g=c;for(a=b.length-1;a>=0;a--){var h=b[a],f=h.value;if(f===0)continue;if((f&c)===f){e[e.length]=h.key;g-=f;if(g===0)break}}if(e.length&&g===0)return e.reverse().join(", ")}return ""}Type.prototype.registerEnum=function(b,c){Sys.__upperCaseTypes[b.toUpperCase()]=this;for(var a in this.prototype)this[a]=this.prototype[a];this.__typeName=b;this.parse=Sys$Enum$parse;this.__string=this.toString();this.toString=Sys$Enum$toString;this.__flags=c;this.__enum=true};Type.isEnum=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__enum};Type.isFlags=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__flags};Sys.CollectionChange=function(e,a,c,b,d){this.action=e;if(a)if(!(a instanceof Array))a=[a];this.newItems=a||null;if(typeof c!=="number")c=-1;this.newStartingIndex=c;if(b)if(!(b instanceof Array))b=[b];this.oldItems=b||null;if(typeof d!=="number")d=-1;this.oldStartingIndex=d};Sys.CollectionChange.registerClass("Sys.CollectionChange");Sys.NotifyCollectionChangedAction=function(){throw Error.notImplemented()};Sys.NotifyCollectionChangedAction.prototype={add:0,remove:1,reset:2};Sys.NotifyCollectionChangedAction.registerEnum("Sys.NotifyCollectionChangedAction");Sys.NotifyCollectionChangedEventArgs=function(a){this._changes=a;Sys.NotifyCollectionChangedEventArgs.initializeBase(this)};Sys.NotifyCollectionChangedEventArgs.prototype={get_changes:function(){return this._changes||[]}};Sys.NotifyCollectionChangedEventArgs.registerClass("Sys.NotifyCollectionChangedEventArgs",Sys.EventArgs);Sys.Observer=function(){};Sys.Observer.registerClass("Sys.Observer");Sys.Observer.makeObservable=function(a){var c=a instanceof Array,b=Sys.Observer;if(a.setValue===b._observeMethods.setValue)return a;b._addMethods(a,b._observeMethods);if(c)b._addMethods(a,b._arrayMethods);return a};Sys.Observer._addMethods=function(c,b){for(var a in b)c[a]=b[a]};Sys.Observer._addEventHandler=function(c,a,b){Sys.Observer._getContext(c,true).events._addHandler(a,b)};Sys.Observer.addEventHandler=function(c,a,b){Sys.Observer._addEventHandler(c,a,b)};Sys.Observer._removeEventHandler=function(c,a,b){Sys.Observer._getContext(c,true).events._removeHandler(a,b)};Sys.Observer.removeEventHandler=function(c,a,b){Sys.Observer._removeEventHandler(c,a,b)};Sys.Observer.raiseEvent=function(b,e,d){var c=Sys.Observer._getContext(b);if(!c)return;var a=c.events.getHandler(e);if(a)a(b,d)};Sys.Observer.addPropertyChanged=function(b,a){Sys.Observer._addEventHandler(b,"propertyChanged",a)};Sys.Observer.removePropertyChanged=function(b,a){Sys.Observer._removeEventHandler(b,"propertyChanged",a)};Sys.Observer.beginUpdate=function(a){Sys.Observer._getContext(a,true).updating=true};Sys.Observer.endUpdate=function(b){var a=Sys.Observer._getContext(b);if(!a||!a.updating)return;a.updating=false;var d=a.dirty;a.dirty=false;if(d){if(b instanceof Array){var c=a.changes;a.changes=null;Sys.Observer.raiseCollectionChanged(b,c)}Sys.Observer.raisePropertyChanged(b,"")}};Sys.Observer.isUpdating=function(b){var a=Sys.Observer._getContext(b);return a?a.updating:false};Sys.Observer._setValue=function(a,j,g){var b,f,k=a,d=j.split(".");for(var i=0,m=d.length-1;i-1&&ac.Calendar.TwoDigitYearMax)a-=100}return a};Date._getEra=function(e,c){if(!c)return 0;var b,d=e.getTime();for(var a=0,f=c.length;a=b)return a}return 0};Date._getEraYear=function(d,b,e,c){var a=d.getFullYear();if(!c&&b.eras)a-=b.eras[e+3];return a};Date._getParseRegExp=function(b,e){if(!b._parseRegExp)b._parseRegExp={};else if(b._parseRegExp[e])return b._parseRegExp[e];var c=Date._expandFormat(b,e);c=c.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g,"\\\\$1");var a=new Sys.StringBuilder("^"),j=[],f=0,i=0,h=Date._getTokenRegExp(),d;while((d=h.exec(c))!==null){var l=c.slice(f,d.index);f=h.lastIndex;i+=Date._appendPreOrPostMatch(l,a);if(i%2===1){a.append(d[0]);continue}switch(d[0]){case "dddd":case "ddd":case "MMMM":case "MMM":case "gg":case "g":a.append("(\\D+)");break;case "tt":case "t":a.append("(\\D*)");break;case "yyyy":a.append("(\\d{4})");break;case "fff":a.append("(\\d{3})");break;case "ff":a.append("(\\d{2})");break;case "f":a.append("(\\d)");break;case "dd":case "d":case "MM":case "M":case "yy":case "y":case "HH":case "H":case "hh":case "h":case "mm":case "m":case "ss":case "s":a.append("(\\d\\d?)");break;case "zzz":a.append("([+-]?\\d\\d?:\\d{2})");break;case "zz":case "z":a.append("([+-]?\\d\\d?)");break;case "/":a.append("(\\"+b.DateSeparator+")")}Array.add(j,d[0])}Date._appendPreOrPostMatch(c.slice(f),a);a.append("$");var k=a.toString().replace(/\s+/g,"\\s+"),g={"regExp":k,"groups":j};b._parseRegExp[e]=g;return g};Date._getTokenRegExp=function(){return /\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|gg|g/g};Date.parseLocale=function(a){return Date._parse(a,Sys.CultureInfo.CurrentCulture,arguments)};Date.parseInvariant=function(a){return Date._parse(a,Sys.CultureInfo.InvariantCulture,arguments)};Date._parse=function(h,d,i){var a,c,b,f,e,g=false;for(a=1,c=i.length;a31)return null;break;case "MMMM":c=k._getMonthIndex(a);if(c<0||c>11)return null;break;case "MMM":c=k._getAbbrMonthIndex(a);if(c<0||c>11)return null;break;case "M":case "MM":c=parseInt(a,10)-1;if(c<0||c>11)return null;break;case "y":case "yy":e=Date._expandYear(g,parseInt(a,10));if(e<0||e>9999)return null;break;case "yyyy":e=parseInt(a,10);if(e<0||e>9999)return null;break;case "h":case "hh":d=parseInt(a,10);if(d===12)d=0;if(d<0||d>11)return null;break;case "H":case "HH":d=parseInt(a,10);if(d<0||d>23)return null;break;case "m":case "mm":q=parseInt(a,10);if(q<0||q>59)return null;break;case "s":case "ss":r=parseInt(a,10);if(r<0||r>59)return null;break;case "tt":case "t":var z=a.toUpperCase();v=z===g.PMDesignator.toUpperCase();if(!v&&z!==g.AMDesignator.toUpperCase())return null;break;case "f":f=parseInt(a,10)*100;if(f<0||f>999)return null;break;case "ff":f=parseInt(a,10)*10;if(f<0||f>999)return null;break;case "fff":f=parseInt(a,10);if(f<0||f>999)return null;break;case "dddd":i=k._getDayIndex(a);if(i<0||i>6)return null;break;case "ddd":i=k._getAbbrDayIndex(a);if(i<0||i>6)return null;break;case "zzz":var u=a.split(/:/);if(u.length!==2)return null;h=parseInt(u[0],10);if(h<-12||h>13)return null;var o=parseInt(u[1],10);if(o<0||o>59)return null;n=h*60+(a.startsWith("-")?-o:o);break;case "z":case "zz":h=parseInt(a,10);if(h<-12||h>13)return null;n=h*60;break;case "g":case "gg":var p=a;if(!p||!g.eras)return null;p=p.toLowerCase().trim();for(var s=0,F=g.eras.length;s0)return this.toLocaleString();else return this.toString();var o=["n %","n%","%n"],n=["-n %","-n%","-%n"],p=["(n)","-n","- n","n-","n -"],m=["$n","n$","$ n","n $"],l=["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];function g(a,c,d){for(var b=a.length;b1?parseInt(e[1]):0;e=b.split(".");b=e[0];a=e.length>1?e[1]:"";var q;if(c>0){a=g(a,c,false);b+=a.slice(0,c);a=a.substr(c)}else if(c<0){c=-c;b=g(b,c+1,true);a=b.slice(-c,b.length)+a;b=b.slice(0,-c)}if(i>0){if(a.length>i)a=a.slice(0,i);else a=g(a,i,false);a=p+a}else a="";var d=b.length-1,f="";while(d>=0){if(h===0||h>d)if(f.length>0)return b.slice(0,d+1)+n+f+a;else return b.slice(0,d+1)+a;if(f.length>0)f=b.slice(d-h+1,d+1)+n+f;else f=b.slice(d-h+1,d+1);d-=h;if(k1)b=parseInt(e.slice(1),10);var c;switch(e.charAt(0)){case "d":case "D":c="n";if(b!==-1)d=g(""+d,b,true);if(this<0)d=-d;break;case "c":case "C":if(this<0)c=l[a.CurrencyNegativePattern];else c=m[a.CurrencyPositivePattern];if(b===-1)b=a.CurrencyDecimalDigits;d=i(Math.abs(this),b,a.CurrencyGroupSizes,a.CurrencyGroupSeparator,a.CurrencyDecimalSeparator);break;case "n":case "N":if(this<0)c=p[a.NumberNegativePattern];else c="n";if(b===-1)b=a.NumberDecimalDigits;d=i(Math.abs(this),b,a.NumberGroupSizes,a.NumberGroupSeparator,a.NumberDecimalSeparator);break;case "p":case "P":if(this<0)c=n[a.PercentNegativePattern];else c=o[a.PercentPositivePattern];if(b===-1)b=a.PercentDecimalDigits;d=i(Math.abs(this)*100,b,a.PercentGroupSizes,a.PercentGroupSeparator,a.PercentDecimalSeparator);break;default:throw Error.format(Sys.Res.formatBadFormatSpecifier)}var k=/n|\$|-|%/g,f="";for(;true;){var q=k.lastIndex,h=k.exec(c);f+=c.slice(q,h?h.index:c.length);if(!h)break;switch(h[0]){case "n":f+=d;break;case "$":f+=a.CurrencySymbol;break;case "-":if(/[1-9]/.test(d))f+=a.NegativeSign;break;case "%":f+=a.PercentSymbol}}return f};Sys.CultureInfo=function(c,b,a){this.name=c;this.numberFormat=b;this.dateTimeFormat=a};Sys.CultureInfo.prototype={_getDateTimeFormats:function(){if(!this._dateTimeFormats){var a=this.dateTimeFormat;this._dateTimeFormats=[a.MonthDayPattern,a.YearMonthPattern,a.ShortDatePattern,a.ShortTimePattern,a.LongDatePattern,a.LongTimePattern,a.FullDateTimePattern,a.RFC1123Pattern,a.SortableDateTimePattern,a.UniversalSortableDateTimePattern]}return this._dateTimeFormats},_getIndex:function(c,d,e){var b=this._toUpper(c),a=Array.indexOf(d,b);if(a===-1)a=Array.indexOf(e,b);return a},_getMonthIndex:function(a){if(!this._upperMonths){this._upperMonths=this._toUpperArray(this.dateTimeFormat.MonthNames);this._upperMonthsGenitive=this._toUpperArray(this.dateTimeFormat.MonthGenitiveNames)}return this._getIndex(a,this._upperMonths,this._upperMonthsGenitive)},_getAbbrMonthIndex:function(a){if(!this._upperAbbrMonths){this._upperAbbrMonths=this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);this._upperAbbrMonthsGenitive=this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthGenitiveNames)}return this._getIndex(a,this._upperAbbrMonths,this._upperAbbrMonthsGenitive)},_getDayIndex:function(a){if(!this._upperDays)this._upperDays=this._toUpperArray(this.dateTimeFormat.DayNames);return Array.indexOf(this._upperDays,this._toUpper(a))},_getAbbrDayIndex:function(a){if(!this._upperAbbrDays)this._upperAbbrDays=this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);return Array.indexOf(this._upperAbbrDays,this._toUpper(a))},_toUpperArray:function(c){var b=[];for(var a=0,d=c.length;a0)a.append(",");Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(b[c],a,false,g)}a.append("]")}else{if(Date.isInstanceOfType(b)){a.append('"\\/Date(');a.append(b.getTime());a.append(')\\/"');break}var d=[],f=0;for(var e in b){if(e.startsWith("$"))continue;if(e===Sys.Serialization.JavaScriptSerializer._serverTypeFieldName&&f!==0){d[f++]=d[0];d[0]=e}else d[f++]=e}if(i)d.sort();a.append("{");var j=false;for(c=0;c=0;c--){var f=d[c];if(!g||f.autoRemove)$removeHandler(a,b,f.handler)}}a._events=null}};Sys.UI.DomEvent._disposeHandlers=function(){Sys.UI.DomEvent._clearHandlers(this,true);var b=this._chainDispose,a=typeof b;if(a!=="undefined"){this.dispose=b;this._chainDispose=null;if(a==="function")this.dispose()}};var $removeHandler=Sys.UI.DomEvent.removeHandler=function(b,a,c){Sys.UI.DomEvent._removeHandler(b,a,c)};Sys.UI.DomEvent._removeHandler=function(a,e,f){var d=null,c=a._events[e];for(var b=0,g=c.length;b=3){d+=parseInt(b.borderLeftWidth);e+=parseInt(b.borderTopWidth)}}b=Sys.UI.DomElement._getCurrentStyle(c);var h=b?b.position:null;if(!h||h!=="absolute")for(a=c.parentNode;a;a=a.parentNode){f=a.tagName?a.tagName.toUpperCase():null;if(f!=="BODY"&&f!=="HTML"&&(a.scrollLeft||a.scrollTop)){d-=a.scrollLeft||0;e-=a.scrollTop||0}b=Sys.UI.DomElement._getCurrentStyle(a);var i=b?b.position:null;if(i&&i==="absolute")break}return new Sys.UI.Point(d,e)};else Sys.UI.DomElement.getLocation=function(d){if(d.window&&d.window===d||d.nodeType===9)return new Sys.UI.Point(0,0);var e=0,f=0,a,i=null,g=null,b=null;for(a=d;a;i=a,(g=b,a=a.offsetParent)){var c=a.tagName?a.tagName.toUpperCase():null;b=Sys.UI.DomElement._getCurrentStyle(a);if((a.offsetLeft||a.offsetTop)&&!(c==="BODY"&&(!g||g.position!=="absolute"))){e+=a.offsetLeft;f+=a.offsetTop}if(i!==null&&b){if(c!=="TABLE"&&c!=="TD"&&c!=="HTML"){e+=parseInt(b.borderLeftWidth)||0;f+=parseInt(b.borderTopWidth)||0}if(c==="TABLE"&&(b.position==="relative"||b.position==="absolute")){e+=parseInt(b.marginLeft)||0;f+=parseInt(b.marginTop)||0}}}b=Sys.UI.DomElement._getCurrentStyle(d);var h=b?b.position:null;if(!h||h!=="absolute")for(a=d.parentNode;a;a=a.parentNode){c=a.tagName?a.tagName.toUpperCase():null;if(c!=="BODY"&&c!=="HTML"&&(a.scrollLeft||a.scrollTop)){e-=a.scrollLeft||0;f-=a.scrollTop||0;b=Sys.UI.DomElement._getCurrentStyle(a);if(b){e+=parseInt(b.borderLeftWidth)||0;f+=parseInt(b.borderTopWidth)||0}}}return new Sys.UI.Point(e,f)};Sys.UI.DomElement.isDomElement=function(a){return Sys._isDomElement(a)};Sys.UI.DomElement.removeCssClass=function(d,c){var a=" "+d.className+" ",b=a.indexOf(" "+c+" ");if(b>=0)d.className=(a.substr(0,b)+" "+a.substring(b+c.length+1,a.length)).trim()};Sys.UI.DomElement.resolveElement=function(b,c){var a=b;if(!a)return null;if(typeof a==="string")a=Sys.UI.DomElement.getElementById(a,c);return a};Sys.UI.DomElement.raiseBubbleEvent=function(c,d){var b=c;while(b){var a=b.control;if(a&&a.onBubbleEvent&&a.raiseBubbleEvent){Sys.UI.DomElement._raiseBubbleEventFromControl(a,c,d);return}b=b.parentNode}};Sys.UI.DomElement._raiseBubbleEventFromControl=function(a,b,c){if(!a.onBubbleEvent(b,c))a._raiseBubbleEvent(b,c)};Sys.UI.DomElement.setLocation=function(b,c,d){var a=b.style;a.position="absolute";a.left=c+"px";a.top=d+"px"};Sys.UI.DomElement.toggleCssClass=function(b,a){if(Sys.UI.DomElement.containsCssClass(b,a))Sys.UI.DomElement.removeCssClass(b,a);else Sys.UI.DomElement.addCssClass(b,a)};Sys.UI.DomElement.getVisibilityMode=function(a){return a._visibilityMode===Sys.UI.VisibilityMode.hide?Sys.UI.VisibilityMode.hide:Sys.UI.VisibilityMode.collapse};Sys.UI.DomElement.setVisibilityMode=function(a,b){Sys.UI.DomElement._ensureOldDisplayMode(a);if(a._visibilityMode!==b){a._visibilityMode=b;if(Sys.UI.DomElement.getVisible(a)===false)if(a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display="none";a._visibilityMode=b}};Sys.UI.DomElement.getVisible=function(b){var a=b.currentStyle||Sys.UI.DomElement._getCurrentStyle(b);if(!a)return true;return a.visibility!=="hidden"&&a.display!=="none"};Sys.UI.DomElement.setVisible=function(a,b){if(b!==Sys.UI.DomElement.getVisible(a)){Sys.UI.DomElement._ensureOldDisplayMode(a);a.style.visibility=b?"visible":"hidden";if(b||a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display="none"}};Sys.UI.DomElement._ensureOldDisplayMode=function(a){if(!a._oldDisplayMode){var b=a.currentStyle||Sys.UI.DomElement._getCurrentStyle(a);a._oldDisplayMode=b?b.display:null;if(!a._oldDisplayMode||a._oldDisplayMode==="none")switch(a.tagName.toUpperCase()){case "DIV":case "P":case "ADDRESS":case "BLOCKQUOTE":case "BODY":case "COL":case "COLGROUP":case "DD":case "DL":case "DT":case "FIELDSET":case "FORM":case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":case "HR":case "IFRAME":case "LEGEND":case "OL":case "PRE":case "TABLE":case "TD":case "TH":case "TR":case "UL":a._oldDisplayMode="block";break;case "LI":a._oldDisplayMode="list-item";break;default:a._oldDisplayMode="inline"}}};Sys.UI.DomElement._getWindow=function(a){var b=a.ownerDocument||a.document||a;return b.defaultView||b.parentWindow};Sys.UI.DomElement._getCurrentStyle=function(a){if(a.nodeType===3)return null;var c=Sys.UI.DomElement._getWindow(a);if(a.documentElement)a=a.documentElement;var b=c&&a!==c&&c.getComputedStyle?c.getComputedStyle(a,null):a.currentStyle||a.style;if(!b&&Sys.Browser.agent===Sys.Browser.Safari&&a.style){var g=a.style.display,f=a.style.position;a.style.position="absolute";a.style.display="block";var e=c.getComputedStyle(a,null);a.style.display=g;a.style.position=f;b={};for(var d in e)b[d]=e[d];b.display="none"}return b};Sys.IContainer=function(){};Sys.IContainer.prototype={};Sys.IContainer.registerInterface("Sys.IContainer");Sys.ApplicationLoadEventArgs=function(b,a){Sys.ApplicationLoadEventArgs.initializeBase(this);this._components=b;this._isPartialLoad=a};Sys.ApplicationLoadEventArgs.prototype={get_components:function(){return this._components},get_isPartialLoad:function(){return this._isPartialLoad}};Sys.ApplicationLoadEventArgs.registerClass("Sys.ApplicationLoadEventArgs",Sys.EventArgs);Sys._Application=function(){Sys._Application.initializeBase(this);this._disposableObjects=[];this._components={};this._createdComponents=[];this._secondPassComponents=[];this._unloadHandlerDelegate=Function.createDelegate(this,this._unloadHandler);Sys.UI.DomEvent.addHandler(window,"unload",this._unloadHandlerDelegate);this._domReady()};Sys._Application.prototype={_creatingComponents:false,_disposing:false,_deleteCount:0,get_isCreatingComponents:function(){return this._creatingComponents},get_isDisposing:function(){return this._disposing},add_init:function(a){if(this._initialized)a(this,Sys.EventArgs.Empty);else this.get_events().addHandler("init",a)},remove_init:function(a){this.get_events().removeHandler("init",a)},add_load:function(a){this.get_events().addHandler("load",a)},remove_load:function(a){this.get_events().removeHandler("load",a)},add_unload:function(a){this.get_events().addHandler("unload",a)},remove_unload:function(a){this.get_events().removeHandler("unload",a)},addComponent:function(a){this._components[a.get_id()]=a},beginCreateComponents:function(){this._creatingComponents=true},dispose:function(){if(!this._disposing){this._disposing=true;if(this._timerCookie){window.clearTimeout(this._timerCookie);delete this._timerCookie}if(this._endRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);delete this._endRequestHandler}if(this._beginRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._beginRequestHandler);delete this._beginRequestHandler}if(window.pageUnload)window.pageUnload(this,Sys.EventArgs.Empty);var c=this.get_events().getHandler("unload");if(c)c(this,Sys.EventArgs.Empty);var b=Array.clone(this._disposableObjects);for(var a=0,f=b.length;a=0;b--)this._disposeElementInternal(c[b]);if(!d)this._disposeElementInternal(a)}},endCreateComponents:function(){var b=this._secondPassComponents;for(var a=0,d=b.length;a1000){var c=[];for(var d=0,f=b.length;d=0;b--){var c=a[b];if(typeof c.dispose==="function")c.dispose()}},_disposeElementInternal:function(a){var d=a.dispose;if(d&&typeof d==="function")a.dispose();else{var c=a.control;if(c&&typeof c.dispose==="function")c.dispose()}var b=a._behaviors;if(b)this._disposeComponents(b);b=a._components;if(b){this._disposeComponents(b);a._components=null}},_domReady:function(){var a,g,f=this;function b(){f.initialize()}var c=function(){Sys.UI.DomEvent.removeHandler(window,"load",c);b()};Sys.UI.DomEvent.addHandler(window,"load",c);if(document.addEventListener)try{document.addEventListener("DOMContentLoaded",a=function(){document.removeEventListener("DOMContentLoaded",a,false);b()},false)}catch(h){}else if(document.attachEvent)if(window==window.top&&document.documentElement.doScroll){var e,d=document.createElement("div");a=function(){try{d.doScroll("left")}catch(c){e=window.setTimeout(a,0);return}d=null;b()};a()}else document.attachEvent("onreadystatechange",a=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",a);b()}})},_raiseInit:function(){var a=this.get_events().getHandler("init");if(a){this.beginCreateComponents();a(this,Sys.EventArgs.Empty);this.endCreateComponents()}},_unloadHandler:function(){this.dispose()}};Sys._Application.registerClass("Sys._Application",Sys.Component,Sys.IContainer);Sys.Application=new Sys._Application;var $find=Sys.Application.findComponent;Sys.UI.Behavior=function(b){Sys.UI.Behavior.initializeBase(this);this._element=b;var a=b._behaviors;if(!a)b._behaviors=[this];else a[a.length]=this};Sys.UI.Behavior.prototype={_name:null,get_element:function(){return this._element},get_id:function(){var a=Sys.UI.Behavior.callBaseMethod(this,"get_id");if(a)return a;if(!this._element||!this._element.id)return "";return this._element.id+"$"+this.get_name()},get_name:function(){if(this._name)return this._name;var a=Object.getTypeName(this),b=a.lastIndexOf(".");if(b!==-1)a=a.substr(b+1);if(!this.get_isInitialized())this._name=a;return a},set_name:function(a){this._name=a},initialize:function(){Sys.UI.Behavior.callBaseMethod(this,"initialize");var a=this.get_name();if(a)this._element[a]=this},dispose:function(){Sys.UI.Behavior.callBaseMethod(this,"dispose");var a=this._element;if(a){var c=this.get_name();if(c)a[c]=null;var b=a._behaviors;Array.remove(b,this);if(b.length===0)a._behaviors=null;delete this._element}}};Sys.UI.Behavior.registerClass("Sys.UI.Behavior",Sys.Component);Sys.UI.Behavior.getBehaviorByName=function(b,c){var a=b[c];return a&&Sys.UI.Behavior.isInstanceOfType(a)?a:null};Sys.UI.Behavior.getBehaviors=function(a){if(!a._behaviors)return [];return Array.clone(a._behaviors)};Sys.UI.Behavior.getBehaviorsByType=function(d,e){var a=d._behaviors,c=[];if(a)for(var b=0,f=a.length;b0&&a.charAt(0)==="#")a=a.substring(1);return a};Sys._Application.prototype.get_enableHistory=function(){return this._enableHistory};Sys._Application.prototype.set_enableHistory=function(a){this._enableHistory=a};Sys._Application.prototype.add_navigate=function(a){this.get_events().addHandler("navigate",a)};Sys._Application.prototype.remove_navigate=function(a){this.get_events().removeHandler("navigate",a)};Sys._Application.prototype.addHistoryPoint=function(c,f){this._ensureHistory();var b=this._state;for(var a in c){var d=c[a];if(d===null){if(typeof b[a]!=="undefined")delete b[a]}else b[a]=d}var e=this._serializeState(b);this._historyPointIsNew=true;this._setState(e,f);this._raiseNavigate()};Sys._Application.prototype.setServerId=function(a,b){this._clientId=a;this._uniqueId=b};Sys._Application.prototype.setServerState=function(a){this._ensureHistory();this._state.__s=a;this._updateHiddenField(a)};Sys._Application.prototype._deserializeState=function(a){var e={};a=a||"";var b=a.indexOf("&&");if(b!==-1&&b+2