From 52ac8b8bc02c1a642811799bd8241752a68501c2 Mon Sep 17 00:00:00 2001 From: JimBobSquarePants Date: Thu, 28 Feb 2013 09:00:15 +0000 Subject: [PATCH] initial commit. Former-commit-id: 03f89d8fac68054652f3c8d904d6020f746dc4b2 --- src/ImageProcessor.Web/Helpers/Class1.cs | 52 + .../Helpers/ProcessorFactory.cs | 20 + .../HttpModules/ImageProcessingModule.cs | 33 +- .../ImageFactoryExtensions.cs | 30 +- .../ImageProcessor.Web.csproj | 2 + src/ImageProcessor/ImageFactory.cs | 30 +- src/ImageProcessor/Imaging/RotateLayer.cs | 2 +- src/ImageProcessor/Processors/Filter.cs | 4 +- src/Test/Test/Content/Site.css | 325 ----- src/Test/Test/Content/flexo.css | 212 +++ src/Test/Test/Content/style.css | 62 + .../images/ui-bg_flat_0_aaaaaa_40x100.png | 3 - .../images/ui-bg_flat_75_ffffff_40x100.png | 3 - .../images/ui-bg_glass_55_fbf9ee_1x400.png | 3 - .../images/ui-bg_glass_65_ffffff_1x400.png | 3 - .../images/ui-bg_glass_75_dadada_1x400.png | 3 - .../images/ui-bg_glass_75_e6e6e6_1x400.png | 3 - .../images/ui-bg_glass_95_fef1ec_1x400.png | 3 - .../ui-bg_highlight-soft_75_cccccc_1x100.png | 3 - .../base/images/ui-icons_222222_256x240.png | 3 - .../base/images/ui-icons_2e83ff_256x240.png | 3 - .../base/images/ui-icons_454545_256x240.png | 3 - .../base/images/ui-icons_888888_256x240.png | 3 - .../base/images/ui-icons_cd0a0a_256x240.png | 3 - .../themes/base/jquery.ui.accordion.css | 24 - .../Content/themes/base/jquery.ui.all.css | 16 - .../themes/base/jquery.ui.autocomplete.css | 62 - .../Content/themes/base/jquery.ui.base.css | 11 - .../Content/themes/base/jquery.ui.button.css | 43 - .../Content/themes/base/jquery.ui.core.css | 46 - .../themes/base/jquery.ui.datepicker.css | 73 - .../Content/themes/base/jquery.ui.dialog.css | 26 - .../themes/base/jquery.ui.progressbar.css | 16 - .../themes/base/jquery.ui.resizable.css | 25 - .../themes/base/jquery.ui.selectable.css | 15 - .../Content/themes/base/jquery.ui.slider.css | 29 - .../Content/themes/base/jquery.ui.tabs.css | 23 - .../Content/themes/base/jquery.ui.theme.css | 257 ---- src/Test/Test/Images/Thumbs.db.REMOVED.git-id | 1 + src/Test/Test/Test.csproj | 34 +- src/Test/Test/Test.vsdoc | 7 - src/Test/Test/Views/Home/Index.cshtml | 67 +- src/Test/Test/Views/Shared/_Layout.cshtml | 57 +- src/Test/Test/packages.config | 5 - ...Framework.4.1.10331.0.nupkg.REMOVED.git-id | 1 - .../lib/EntityFramework.dll.REMOVED.git-id | 1 - .../lib/EntityFramework.xml.REMOVED.git-id | 1 - .../Content/Scripts/modernizr-1.7.js | 969 ------------ .../Content/Scripts/modernizr-1.7.min.js | 10 - .../Modernizr.1.7/Modernizr.1.7.nupkg | Bin 20919 -> 0 bytes .../Scripts/jquery-1.5.1.js.REMOVED.git-id | 1 - .../jquery-1.5.1.min.js.REMOVED.git-id | 1 - .../jQuery.1.5.1.nupkg.REMOVED.git-id | 1 - .../images/ui-bg_flat_0_aaaaaa_40x100.png | 3 - .../images/ui-bg_flat_75_ffffff_40x100.png | 3 - .../images/ui-bg_glass_55_fbf9ee_1x400.png | 3 - .../images/ui-bg_glass_65_ffffff_1x400.png | 3 - .../images/ui-bg_glass_75_dadada_1x400.png | 3 - .../images/ui-bg_glass_75_e6e6e6_1x400.png | 3 - .../images/ui-bg_glass_95_fef1ec_1x400.png | 3 - .../ui-bg_highlight-soft_75_cccccc_1x100.png | 3 - .../base/images/ui-icons_222222_256x240.png | 3 - .../base/images/ui-icons_2e83ff_256x240.png | 3 - .../base/images/ui-icons_454545_256x240.png | 3 - .../base/images/ui-icons_888888_256x240.png | 3 - .../base/images/ui-icons_cd0a0a_256x240.png | 3 - .../themes/base/jquery.ui.accordion.css | 24 - .../Content/themes/base/jquery.ui.all.css | 16 - .../themes/base/jquery.ui.autocomplete.css | 62 - .../Content/themes/base/jquery.ui.base.css | 11 - .../Content/themes/base/jquery.ui.button.css | 43 - .../Content/themes/base/jquery.ui.core.css | 46 - .../themes/base/jquery.ui.datepicker.css | 73 - .../Content/themes/base/jquery.ui.dialog.css | 26 - .../themes/base/jquery.ui.progressbar.css | 16 - .../themes/base/jquery.ui.resizable.css | 25 - .../themes/base/jquery.ui.selectable.css | 15 - .../Content/themes/base/jquery.ui.slider.css | 29 - .../Content/themes/base/jquery.ui.tabs.css | 23 - .../Content/themes/base/jquery.ui.theme.css | 257 ---- .../jquery-ui-1.8.11.js.REMOVED.git-id | 1 - .../jquery-ui-1.8.11.min.js.REMOVED.git-id | 1 - ...ry.UI.Combined.1.8.11.nupkg.REMOVED.git-id | 1 - .../Content/Scripts/jquery.validate-vsdoc.js | 1299 ----------------- .../Content/Scripts/jquery.validate.js | 1162 --------------- .../Content/Scripts/jquery.validate.min.js | 53 - .../jQuery.Validation.1.8.0.nupkg | Bin 35004 -> 0 bytes .../jquery-1.5.1-vsdoc.js.REMOVED.git-id | 1 - .../jQuery.vsdoc.1.5.1.nupkg.REMOVED.git-id | 1 - src/Test/packages/repositories.config | 4 - 90 files changed, 500 insertions(+), 5361 deletions(-) create mode 100644 src/ImageProcessor.Web/Helpers/Class1.cs create mode 100644 src/ImageProcessor.Web/Helpers/ProcessorFactory.cs delete mode 100644 src/Test/Test/Content/Site.css create mode 100644 src/Test/Test/Content/flexo.css create mode 100644 src/Test/Test/Content/style.css delete mode 100644 src/Test/Test/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-icons_222222_256x240.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-icons_2e83ff_256x240.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-icons_454545_256x240.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-icons_888888_256x240.png delete mode 100644 src/Test/Test/Content/themes/base/images/ui-icons_cd0a0a_256x240.png delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.accordion.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.all.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.autocomplete.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.base.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.button.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.core.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.datepicker.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.dialog.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.progressbar.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.resizable.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.selectable.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.slider.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.tabs.css delete mode 100644 src/Test/Test/Content/themes/base/jquery.ui.theme.css create mode 100644 src/Test/Test/Images/Thumbs.db.REMOVED.git-id delete mode 100644 src/Test/Test/Test.vsdoc delete mode 100644 src/Test/packages/EntityFramework.4.1.10331.0/EntityFramework.4.1.10331.0.nupkg.REMOVED.git-id delete mode 100644 src/Test/packages/EntityFramework.4.1.10331.0/lib/EntityFramework.dll.REMOVED.git-id delete mode 100644 src/Test/packages/EntityFramework.4.1.10331.0/lib/EntityFramework.xml.REMOVED.git-id delete mode 100644 src/Test/packages/Modernizr.1.7/Content/Scripts/modernizr-1.7.js delete mode 100644 src/Test/packages/Modernizr.1.7/Content/Scripts/modernizr-1.7.min.js delete mode 100644 src/Test/packages/Modernizr.1.7/Modernizr.1.7.nupkg delete mode 100644 src/Test/packages/jQuery.1.5.1/Content/Scripts/jquery-1.5.1.js.REMOVED.git-id delete mode 100644 src/Test/packages/jQuery.1.5.1/Content/Scripts/jquery-1.5.1.min.js.REMOVED.git-id delete mode 100644 src/Test/packages/jQuery.1.5.1/jQuery.1.5.1.nupkg.REMOVED.git-id delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_222222_256x240.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_2e83ff_256x240.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_454545_256x240.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_888888_256x240.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_cd0a0a_256x240.png delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.accordion.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.all.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.autocomplete.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.base.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.button.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.core.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.datepicker.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.dialog.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.progressbar.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.resizable.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.selectable.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.slider.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.tabs.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.theme.css delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Scripts/jquery-ui-1.8.11.js.REMOVED.git-id delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Scripts/jquery-ui-1.8.11.min.js.REMOVED.git-id delete mode 100644 src/Test/packages/jQuery.UI.Combined.1.8.11/jQuery.UI.Combined.1.8.11.nupkg.REMOVED.git-id delete mode 100644 src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate-vsdoc.js delete mode 100644 src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate.js delete mode 100644 src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate.min.js delete mode 100644 src/Test/packages/jQuery.Validation.1.8.0/jQuery.Validation.1.8.0.nupkg delete mode 100644 src/Test/packages/jQuery.vsdoc.1.5.1/Content/Scripts/jquery-1.5.1-vsdoc.js.REMOVED.git-id delete mode 100644 src/Test/packages/jQuery.vsdoc.1.5.1/jQuery.vsdoc.1.5.1.nupkg.REMOVED.git-id delete mode 100644 src/Test/packages/repositories.config diff --git a/src/ImageProcessor.Web/Helpers/Class1.cs b/src/ImageProcessor.Web/Helpers/Class1.cs new file mode 100644 index 0000000000..409a419e1a --- /dev/null +++ b/src/ImageProcessor.Web/Helpers/Class1.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace ImageProcessor.Web.Helpers +{ + using System.Linq.Expressions; + using System.Reflection; + + public class ObjectFactory + { + public delegate T ObjectActivator(params object[] args); + + public static ObjectActivator GetActivator(ConstructorInfo ctor) + { + Type type = ctor.DeclaringType; + ParameterInfo[] paramsInfo = ctor.GetParameters(); + + //create a single param of type object[] + ParameterExpression param = Expression.Parameter(typeof(object[]), "args"); + + Expression[] argsExp = new Expression[paramsInfo.Length]; + + //pick each arg from the params array + //and create a typed expression of them + for (int i = 0; i < paramsInfo.Length; i++) + { + Expression index = Expression.Constant(i); + Type paramType = paramsInfo[i].ParameterType; + + Expression paramAccessorExp = Expression.ArrayIndex(param, index); + + Expression paramCastExp = Expression.Convert(paramAccessorExp, paramType); + + argsExp[i] = paramCastExp; + } + + //make a NewExpression that calls the + //ctor with the args we just created + NewExpression newExp = Expression.New(ctor, argsExp); + + //create a lambda with the New + //Expression as body and our param object[] as arg + LambdaExpression lambda = Expression.Lambda(typeof(ObjectActivator), newExp, param); + + //compile it + ObjectActivator compiled = (ObjectActivator)lambda.Compile(); + return compiled; + } + } +} diff --git a/src/ImageProcessor.Web/Helpers/ProcessorFactory.cs b/src/ImageProcessor.Web/Helpers/ProcessorFactory.cs new file mode 100644 index 0000000000..922767b8fb --- /dev/null +++ b/src/ImageProcessor.Web/Helpers/ProcessorFactory.cs @@ -0,0 +1,20 @@ + + +namespace ImageProcessor.Web.Helpers +{ + using System; + using System.Linq.Expressions; + using ImageProcessor.Processors; + + public static class ProcessorFactory + { + public static T New() where T:IGraphicsProcessor + { + Type t = typeof(T); + Func method = Expression.Lambda>(Expression.Block(t, new Expression[] { Expression.New(t) })).Compile(); + + return method(); + } + } + +} diff --git a/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs b/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs index a7f6f3ceed..ccd1a73251 100644 --- a/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs +++ b/src/ImageProcessor.Web/HttpModules/ImageProcessingModule.cs @@ -123,35 +123,40 @@ namespace ImageProcessor.Web.HttpModules } // Process the image. - using (ImageFactory imageFactory = new ImageFactory()) + if (isRemote) { - if (isRemote) - { - Uri uri = new Uri(path); - RemoteFile remoteFile = new RemoteFile(uri, false); + Uri uri = new Uri(path); + RemoteFile remoteFile = new RemoteFile(uri, false); - using (MemoryStream memoryStream = new MemoryStream()) + using (MemoryStream memoryStream = new MemoryStream()) + { + using (Stream responseStream = remoteFile.GetWebResponse().GetResponseStream()) { - using (Stream responseStream = remoteFile.GetWebResponse().GetResponseStream()) + if (responseStream != null) { - if (responseStream != null) + responseStream.CopyTo(memoryStream); + // Process the image. + using (ImageFactory imageFactory = new ImageFactory()) { - responseStream.CopyTo(memoryStream); - imageFactory.Load(memoryStream) - .AddQueryString(queryString) - .Format(ImageUtils.GetImageFormat(imageName)) - .AutoProcess().Save(cachedPath); + .AddQueryString(queryString) + .Format(ImageUtils.GetImageFormat(imageName)) + .AutoProcess() + .Save(cachedPath); } } } } - else + } + else + { + using (ImageFactory imageFactory = new ImageFactory()) { imageFactory.Load(fullPath).AutoProcess().Save(cachedPath); } } + // Add 1 to the counter cachedImageCounter += 1; diff --git a/src/ImageProcessor.Web/ImageFactoryExtensions.cs b/src/ImageProcessor.Web/ImageFactoryExtensions.cs index 7880944dd1..d22b8282a9 100644 --- a/src/ImageProcessor.Web/ImageFactoryExtensions.cs +++ b/src/ImageProcessor.Web/ImageFactoryExtensions.cs @@ -8,10 +8,15 @@ namespace ImageProcessor.Web { #region Using + + using System; using System.Collections.Generic; using System.Linq; + using System.Reflection; + using ImageProcessor.Processors; using ImageProcessor.Web.Config; + using ImageProcessor.Web.Helpers; #endregion /// @@ -43,11 +48,34 @@ namespace ImageProcessor.Web // Loop through and process the image. foreach (IGraphicsProcessor graphicsProcessor in list) { - factory.Image = graphicsProcessor.ProcessImage(factory); + try + { + // TODO: This is going to be a bottleneck for speed. Find a faster way. + IGraphicsProcessor processor = + (IGraphicsProcessor)Activator.CreateInstance(graphicsProcessor.GetType()); + // Get the dynamic parameter. + processor.MatchRegexIndex(factory.QueryString); + // Process. + factory.Image = processor.ProcessImage(factory); + + //// TODO: This is going to be a bottleneck for speed. Find a faster way. + //IGraphicsProcessor processor = + // (IGraphicsProcessor)Activator.CreateInstance(graphicsProcessor.GetType()); + //// Get the dynamic parameter. + //processor.MatchRegexIndex(factory.QueryString); + //// Process. + //factory.Image = processor.ProcessImage(factory); + } + catch (Exception ex) + { + throw ex; + } } } return factory; } + + } } diff --git a/src/ImageProcessor.Web/ImageProcessor.Web.csproj b/src/ImageProcessor.Web/ImageProcessor.Web.csproj index 6f5589cf33..eefeb89524 100644 --- a/src/ImageProcessor.Web/ImageProcessor.Web.csproj +++ b/src/ImageProcessor.Web/ImageProcessor.Web.csproj @@ -56,6 +56,8 @@ + + diff --git a/src/ImageProcessor/ImageFactory.cs b/src/ImageProcessor/ImageFactory.cs index edbd7fef86..96f5e0fe44 100644 --- a/src/ImageProcessor/ImageFactory.cs +++ b/src/ImageProcessor/ImageFactory.cs @@ -291,15 +291,19 @@ namespace ImageProcessor /// /// Resizes an image to the given dimensions. /// - /// The width to set the image to. - /// The height to set the image to. + /// + /// The containing the width and height to set the image to. + /// /// /// The current instance of the class. /// - public ImageFactory Resize(int width, int height) + public ImageFactory Resize(Size size) { if (this.ShouldProcess) { + int width = size.Width; + int height = size.Height; + var resizeSettings = new Dictionary { { "MaxWidth", width.ToString("G") }, { "MaxHeight", height.ToString("G") } }; Resize resize = new Resize { DynamicParameter = new Size(width, height), Settings = resizeSettings }; @@ -313,30 +317,20 @@ namespace ImageProcessor /// /// Rotates the current image by the given angle. /// - /// - /// The angle by which to rotate the image. - /// - /// - /// The background Colour. + /// + /// The RotateLayer containing the properties to rotate the image. /// /// /// The current instance of the class. /// - public ImageFactory Rotate(int angle, Color backgroundColour = default(Color)) + public ImageFactory Rotate(RotateLayer rotateLayer) { if (this.ShouldProcess) { // Sanitize the input. - if (angle > 360 || angle < 0) - { - angle = 0; - } - - RotateLayer rotateLayer = new RotateLayer { Angle = angle }; - - if (backgroundColour != default(Color)) + if (rotateLayer.Angle > 360 || rotateLayer.Angle < 0) { - rotateLayer.BackgroundColor = backgroundColour; + rotateLayer.Angle = 0; } Rotate rotate = new Rotate { DynamicParameter = rotateLayer }; diff --git a/src/ImageProcessor/Imaging/RotateLayer.cs b/src/ImageProcessor/Imaging/RotateLayer.cs index cbe23ffdfc..ad47907147 100644 --- a/src/ImageProcessor/Imaging/RotateLayer.cs +++ b/src/ImageProcessor/Imaging/RotateLayer.cs @@ -14,7 +14,7 @@ namespace ImageProcessor.Imaging /// /// Enacapsulates the properties required to rotate an image. /// - internal class RotateLayer + public class RotateLayer { #region Constructors /// diff --git a/src/ImageProcessor/Processors/Filter.cs b/src/ImageProcessor/Processors/Filter.cs index fa92095fba..98b871d3ed 100644 --- a/src/ImageProcessor/Processors/Filter.cs +++ b/src/ImageProcessor/Processors/Filter.cs @@ -134,6 +134,7 @@ namespace ImageProcessor.Processors { Bitmap newImage = null; Image image = factory.Image; + IMatrixFilter matrix = null; try { @@ -141,8 +142,6 @@ namespace ImageProcessor.Processors newImage = new Bitmap(image.Width, image.Height, PixelFormat.Format32bppPArgb); newImage.Tag = image.Tag; - IMatrixFilter matrix = null; - switch ((string)this.DynamicParameter) { case "polaroid": @@ -180,6 +179,7 @@ namespace ImageProcessor.Processors if (matrix != null) { return matrix.ProcessImage(factory, image, newImage); + } } catch diff --git a/src/Test/Test/Content/Site.css b/src/Test/Test/Content/Site.css deleted file mode 100644 index e1f5220978..0000000000 --- a/src/Test/Test/Content/Site.css +++ /dev/null @@ -1,325 +0,0 @@ -/*---------------------------------------------------------- -The base color for this template is #5c87b2. If you'd like -to use a different color start by replacing all instances of -#5c87b2 with your new color. -----------------------------------------------------------*/ -body { - background-color: #5c87b2; - font-size: .85em; - font-family: "Trebuchet MS", Verdana, Helvetica, Sans-Serif; - margin: 0; - padding: 0; - color: #696969; -} - -a:link { - color: #034af3; - text-decoration: underline; -} - -a:visited { - color: #505abc; -} - -a:hover { - color: #1d60ff; - text-decoration: none; -} - -a:active { - color: #12eb87; -} - -p, ul { - margin-bottom: 20px; - line-height: 1.6em; -} - -header, -footer, -nav, -section { - display: block; -} - -/* HEADINGS -----------------------------------------------------------*/ -h1, h2, h3, h4, h5, h6 { - font-size: 1.5em; - color: #000; -} - -h1 { - font-size: 2em; - padding-bottom: 0; - margin-bottom: 0; -} - -h2 { - padding: 0 0 10px 0; -} - -h3 { - font-size: 1.2em; -} - -h4 { - font-size: 1.1em; -} - -h5, h6 { - font-size: 1em; -} - -/* PRIMARY LAYOUT ELEMENTS -----------------------------------------------------------*/ - -/* you can specify a greater or lesser percentage for the -page width. Or, you can specify an exact pixel width. */ -.page { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -header, #header { - position: relative; - margin-bottom: 0px; - color: #000; - padding: 0; -} - -header h1, #header h1 { - font-weight: bold; - padding: 5px 0; - margin: 0; - color: #fff; - border: none; - line-height: 2em; - font-size: 32px !important; - text-shadow: 1px 1px 2px #111; -} - -#main { - padding: 30px 30px 15px 30px; - background-color: #fff; - border-radius: 4px 0 0 0; - -webkit-border-radius: 4px 0 0 0; - -moz-border-radius: 4px 0 0 0; -} - -footer, -#footer { - background-color: #fff; - color: #999; - padding: 10px 0; - text-align: center; - line-height: normal; - margin: 0 0 30px 0; - font-size: .9em; - border-radius: 0 0 4px 4px; - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; -} - -/* TAB MENU -----------------------------------------------------------*/ -ul#menu { - border-bottom: 1px #5C87B2 solid; - padding: 0 0 2px; - position: relative; - margin: 0; - text-align: right; -} - -ul#menu li { - display: inline; - list-style: none; -} - -ul#menu li#greeting { - padding: 10px 20px; - font-weight: bold; - text-decoration: none; - line-height: 2.8em; - color: #fff; -} - -ul#menu li a { - padding: 10px 20px; - font-weight: bold; - text-decoration: none; - line-height: 2.8em; - background-color: #e8eef4; - color: #034af3; - border-radius: 4px 4px 0 0; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; -} - -ul#menu li a:hover { - background-color: #fff; - text-decoration: none; -} - -ul#menu li a:active { - background-color: #a6e2a6; - text-decoration: none; -} - -ul#menu li.selected a { - background-color: #fff; - color: #000; -} - -/* FORM LAYOUT ELEMENTS -----------------------------------------------------------*/ - -fieldset { - border: 1px solid #ddd; - padding: 0 1.4em 1.4em 1.4em; - margin: 0 0 1.5em 0; -} - -legend { - font-size: 1.2em; - font-weight: bold; -} - -textarea { - min-height: 75px; -} - -input[type="text"], -input[type="password"] { - border: 1px solid #ccc; - padding: 2px; - font-size: 1.2em; - color: #444; - width: 200px; -} - -select { - border: 1px solid #ccc; - padding: 2px; - font-size: 1.2em; - color: #444; -} - -input[type="submit"] { - font-size: 1.2em; - padding: 5px; -} - -/* TABLE -----------------------------------------------------------*/ - -table { - border: solid 1px #e8eef4; - border-collapse: collapse; -} - -table td { - padding: 5px; - border: solid 1px #e8eef4; -} - -table th { - padding: 6px 5px; - text-align: left; - background-color: #e8eef4; - border: solid 1px #e8eef4; -} - -/* MISC -----------------------------------------------------------*/ -.clear { - clear: both; -} - -.error { - color: Red; -} - -nav, -#menucontainer { - margin-top: 40px; -} - -div#title { - display: block; - float: left; - text-align: left; -} - -#logindisplay { - font-size: 1.1em; - display: block; - text-align: right; - margin: 10px; - color: White; - height: 40px; -} - -#logindisplay a:link { - color: white; - text-decoration: underline; -} - -#logindisplay a:visited { - color: white; - text-decoration: underline; -} - -#logindisplay a:hover { - color: white; - text-decoration: none; -} - -/* Styles for validation helpers ------------------------------------------------------------*/ -.field-validation-error { - color: #ff0000; -} - -.field-validation-valid { - display: none; -} - -.input-validation-error { - border: 1px solid #ff0000; - background-color: #ffeeee; -} - -.validation-summary-errors { - font-weight: bold; - color: #ff0000; -} - -.validation-summary-valid { - display: none; -} - -/* Styles for editor and display helpers -----------------------------------------------------------*/ -.display-label, -.editor-label { - margin: 1em 0 0 0; -} - -.display-field, -.editor-field { - margin: 0.5em 0 0 0; -} - -.text-box { - width: 30em; -} - -.text-box.multi-line { - height: 6.5em; -} - -.tri-state { - width: 6em; -} diff --git a/src/Test/Test/Content/flexo.css b/src/Test/Test/Content/flexo.css new file mode 100644 index 0000000000..7fc99f096e --- /dev/null +++ b/src/Test/Test/Content/flexo.css @@ -0,0 +1,212 @@ +/* ==|== Flexo 2.0.1 ============================================================= + Author: James South + twitter : http://twitter.com/James_M_South + github : https://github.com/JimBobSquarePants/Flexo + Copyright (c) James South. + Licensed under the Apache License v2.0. + ============================================================================== */ + +/* ============================================================================= + Base + ========================================================================== */ +html { + /*Use the iOS devices hardware accelerator to provide native scrolling*/ + -webkit-overflow-scrolling: touch; + /* Prevents iOS text size adjust after orientation change, without disabling user zoom. */ + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +html, body { + height: 100%; + margin: 0; + position: relative; +} + +.page { + min-height: 100%; + position: relative; + margin-bottom: -150px; + padding-bottom: 150px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + + .page.no-box { + padding-bottom: 0; + } + +.page-push, .page-footer { + height: 150px; +} + +.page-footer { + margin: 0 auto; + position: relative; + z-index: 1; +} + +.container { + margin: 0 auto; + /* Manages width in a single place */ + width: 95%; + max-width: 1140px; +} + + /* Contains floats so all columns can float left*/ + .container:before, + .container:after, + .row:before, + .row:after { + content: ""; + display: table; + } + + .container:after, + .row:after { + clear: both; + } + +/* ============================================================================= + Grid + ========================================================================== */ + +[class*="clmn"] { + display: block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + min-height: 1px; + float: left; +} + +/* ==|== media queries =================================================== +Portrait phone viewport to Landscape phone < 767px +========================================================================== */ +@media screen and (max-width: 767px) { + body:not(.flexo-fixed) [class*="clmn"], + body:not(.flexo-fixed) [class*="offset"] { + float: none; + width: 100%; + margin-left: 0!important; + } +} + +/* ============================================================================= + Grid + ========================================================================== */ +[class*="clmn"] + [class*="clmn"]:not([class*="offset"]) { + margin-left: 2%; +} + +/* Columns */ + +/* Full width calculated with margins */ +.clmn1 { + width: 100%; +} + +/* 2 column */ +.clmn2 { + width: 49%; +} + +/* 3 column */ +.clmn3 { + width: 32%; +} + +/* 4 column */ +.clmn4 { + width: 23.5%; +} + +/* 5 column */ +.clmn5 { + width: 18.4%; +} + +/* Fillers*/ +/* 2/3 column */ +.clmn2-3 { + width: 66%; +} + +/* 3/4 column */ +.clmn3-4 { + width: 74.5%; +} + +/* 2/5 column */ +.clmn2-5 { + width: 38.8%; +} + +/* 3/5 column */ +.clmn3-5 { + width: 59.2%; +} + +/* 4/5 column */ +.clmn4-5 { + width: 79.6%; +} + +/* Offsetting columns */ + +/*offset 1/2*/ +.offset2 { + margin-left: 51%; +} + +/*offset 1/3 */ +.offset3 { + margin-left: 34%; +} + +/*offset 1/4 */ +.offset4 { + margin-left: 25.5%; +} + +/*offset 1/5 */ +.offset5 { + margin-left: 20.4%; +} + +/* offset 2/3 */ +.offset2-3 { + margin-left: 68%; +} + +/* offset 3/4 */ +.offset3-4 { + margin-left: 76.5%; +} + +/* offset 2/5 */ +.offset2-5 { + margin-left: 40.8%; +} + +/* offset 3/5 */ +.offset3-5 { + margin-left: 61.2%; +} + +/* offset 4/5 */ +.offset4-5 { + margin-left: 81.6%; +} + + +/* ============================================================================= + Fixed Grid + ========================================================================== */ +.flexo-fixed .container { + /* Manages width in a single place */ + width: 1140px; +} \ No newline at end of file diff --git a/src/Test/Test/Content/style.css b/src/Test/Test/Content/style.css new file mode 100644 index 0000000000..dfafde877b --- /dev/null +++ b/src/Test/Test/Content/style.css @@ -0,0 +1,62 @@ +body { + font-family: "Segoe UI",Tahoma,Arial,Verdana,Sans-Serif; + color: #333; +} + +h1, h2, h3 { + font-family: "Segoe UI Light", "Segoe UI",Tahoma,Arial,Verdana,Sans-Serif; + font-weight: 400; +} + +h1 { + margin-top: 0; + font-size: 3em; +} + +img { + background: #fff; + padding: 3px; + -webkit-box-shadow: 0 0 5px rgb(0, 0, 0, 0.4); + box-shadow: 0 0 5px rgb(0, 0, 0, 0.4); +} + +.no-bullets { + padding-left: 0; +} + + .no-bullets > li { + list-style: none; + float: left; + margin-right: .5em; + } + +/* + * Clearfix: contain floats + * + * For modern browsers + * 1. The space content is one way to avoid an Opera bug when the + * `contenteditable` attribute is included anywhere else in the document. + * Otherwise it causes space to appear at the top and bottom of elements + * that receive the `clearfix` class. + * 2. The use of `table` rather than `block` is only necessary if using + * `:before` to contain the top-margins of child elements. + */ + +.clearfix:before, +.clearfix:after { + content: " "; /* 1 */ + display: table; /* 2 */ +} + +.clearfix:after { + clear: both; +} + +/* + * For IE 6/7 only + * Include this rule to trigger hasLayout and contain floats. + */ + +.clearfix { + *zoom: 1; +} diff --git a/src/Test/Test/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png b/src/Test/Test/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100644 index aa64503203..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a8492a580bf85d3e98ae8861fbd45567e5a1f83eeafcf9574da0399d5f602ab -size 180 diff --git a/src/Test/Test/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png b/src/Test/Test/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png deleted file mode 100644 index e9ef9bfae9..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39ab7ccd9f4e82579da78a9241265df288d8eb65dbbd7cf48aed2d0129887df5 -size 178 diff --git a/src/Test/Test/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png b/src/Test/Test/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png deleted file mode 100644 index 69dc324c75..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:691597e8a40a891ea94d3589976ecfc33e6145c49422443b00ac2b5a0022964c -size 120 diff --git a/src/Test/Test/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png b/src/Test/Test/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100644 index 0b75d11923..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0e6cd91b837d5c5644d026e5ffeccd907953317cd5c0f689901733afda260b2 -size 105 diff --git a/src/Test/Test/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png b/src/Test/Test/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png deleted file mode 100644 index 08e127e909..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c108f5cbf2dd9ec07a26530695ddd95e1664597ce6c056ae44c162cc2e28cec4 -size 111 diff --git a/src/Test/Test/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png b/src/Test/Test/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png deleted file mode 100644 index 4ee557775d..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ddf5dd4e0ef2b185e8bb0af7b6e90ebe74a84384cb4700658e76e754c8bfe550 -size 110 diff --git a/src/Test/Test/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png b/src/Test/Test/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index 17c0024eec..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f6f1c1bedf1a0f37cfef81d12f5f012869d1ee7c984775a569827a1784d34f5c -size 119 diff --git a/src/Test/Test/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/src/Test/Test/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png deleted file mode 100644 index 553d38c1f0..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:54270656df079c4da5182629a080fc633b6f84b87985eb016d25a560e2c38d4a -size 101 diff --git a/src/Test/Test/Content/themes/base/images/ui-icons_222222_256x240.png b/src/Test/Test/Content/themes/base/images/ui-icons_222222_256x240.png deleted file mode 100644 index 9932cb1ab7..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-icons_222222_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57adb0d65f4e91dacfee975d9574422bee7486c8a182d60133728c672f2cdbbc -size 4369 diff --git a/src/Test/Test/Content/themes/base/images/ui-icons_2e83ff_256x240.png b/src/Test/Test/Content/themes/base/images/ui-icons_2e83ff_256x240.png deleted file mode 100644 index 867aca5aee..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-icons_2e83ff_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:20f8c6667afc48aa433ee9eb6d8a0584bdbd6b4a4a9091ff1e6b3adb31e63bd9 -size 4369 diff --git a/src/Test/Test/Content/themes/base/images/ui-icons_454545_256x240.png b/src/Test/Test/Content/themes/base/images/ui-icons_454545_256x240.png deleted file mode 100644 index 09df6dbbc0..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-icons_454545_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:07460e843c3e59aaadbb34231e699e856a2980753c7a47b66447da5d9f93fb7f -size 4369 diff --git a/src/Test/Test/Content/themes/base/images/ui-icons_888888_256x240.png b/src/Test/Test/Content/themes/base/images/ui-icons_888888_256x240.png deleted file mode 100644 index f3136b3fd0..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-icons_888888_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea2e29625de3463465e93b002b065f5833e05b97f7a052b1c141e754d62e1a8b -size 4369 diff --git a/src/Test/Test/Content/themes/base/images/ui-icons_cd0a0a_256x240.png b/src/Test/Test/Content/themes/base/images/ui-icons_cd0a0a_256x240.png deleted file mode 100644 index a30dd384d4..0000000000 --- a/src/Test/Test/Content/themes/base/images/ui-icons_cd0a0a_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1e32c6dbf5d3fd342f27a78aa881550d6412aa207f48468724a6a15402b6041b -size 4369 diff --git a/src/Test/Test/Content/themes/base/jquery.ui.accordion.css b/src/Test/Test/Content/themes/base/jquery.ui.accordion.css deleted file mode 100644 index 4a67cbf8e4..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.accordion.css +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Accordion 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } diff --git a/src/Test/Test/Content/themes/base/jquery.ui.all.css b/src/Test/Test/Content/themes/base/jquery.ui.all.css deleted file mode 100644 index 2b2c103e80..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.all.css +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Theming - */ -@import "jquery.ui.base.css"; -@import "jquery.ui.theme.css"; diff --git a/src/Test/Test/Content/themes/base/jquery.ui.autocomplete.css b/src/Test/Test/Content/themes/base/jquery.ui.autocomplete.css deleted file mode 100644 index aac4e204d2..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.autocomplete.css +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Autocomplete 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Menu 1.8.11 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} diff --git a/src/Test/Test/Content/themes/base/jquery.ui.base.css b/src/Test/Test/Content/themes/base/jquery.ui.base.css deleted file mode 100644 index f52ee39b95..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.base.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("jquery.ui.core.css"); -@import url("jquery.ui.resizable.css"); -@import url("jquery.ui.selectable.css"); -@import url("jquery.ui.accordion.css"); -@import url("jquery.ui.autocomplete.css"); -@import url("jquery.ui.button.css"); -@import url("jquery.ui.dialog.css"); -@import url("jquery.ui.slider.css"); -@import url("jquery.ui.tabs.css"); -@import url("jquery.ui.datepicker.css"); -@import url("jquery.ui.progressbar.css"); \ No newline at end of file diff --git a/src/Test/Test/Content/themes/base/jquery.ui.button.css b/src/Test/Test/Content/themes/base/jquery.ui.button.css deleted file mode 100644 index af6c985b8d..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.button.css +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Button 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ diff --git a/src/Test/Test/Content/themes/base/jquery.ui.core.css b/src/Test/Test/Content/themes/base/jquery.ui.core.css deleted file mode 100644 index 55fb8b0d99..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.core.css +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * 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; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } diff --git a/src/Test/Test/Content/themes/base/jquery.ui.datepicker.css b/src/Test/Test/Content/themes/base/jquery.ui.datepicker.css deleted file mode 100644 index 7126923cc0..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.datepicker.css +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Datepicker 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -} \ No newline at end of file diff --git a/src/Test/Test/Content/themes/base/jquery.ui.dialog.css b/src/Test/Test/Content/themes/base/jquery.ui.dialog.css deleted file mode 100644 index 311dd32e5d..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.dialog.css +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Dialog 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } diff --git a/src/Test/Test/Content/themes/base/jquery.ui.progressbar.css b/src/Test/Test/Content/themes/base/jquery.ui.progressbar.css deleted file mode 100644 index 6e8718e03f..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.progressbar.css +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Progressbar 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Progressbar#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/src/Test/Test/Content/themes/base/jquery.ui.resizable.css b/src/Test/Test/Content/themes/base/jquery.ui.resizable.css deleted file mode 100644 index bf037be183..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.resizable.css +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Resizable 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)] - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} \ No newline at end of file diff --git a/src/Test/Test/Content/themes/base/jquery.ui.selectable.css b/src/Test/Test/Content/themes/base/jquery.ui.selectable.css deleted file mode 100644 index 011416b6f7..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.selectable.css +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Selectable 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } diff --git a/src/Test/Test/Content/themes/base/jquery.ui.slider.css b/src/Test/Test/Content/themes/base/jquery.ui.slider.css deleted file mode 100644 index 3bbfb932db..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.slider.css +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Slider 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; } \ No newline at end of file diff --git a/src/Test/Test/Content/themes/base/jquery.ui.tabs.css b/src/Test/Test/Content/themes/base/jquery.ui.tabs.css deleted file mode 100644 index aa5cd8a546..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.tabs.css +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Tabs 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/src/Test/Test/Content/themes/base/jquery.ui.theme.css b/src/Test/Test/Content/themes/base/jquery.ui.theme.css deleted file mode 100644 index 0d5b735465..0000000000 --- a/src/Test/Test/Content/themes/base/jquery.ui.theme.css +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/ - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } -.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } -.ui-widget-content a { color: #222222/*{fcContent}*/; } -.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } -.ui-widget-header a { color: #222222/*{fcHeader}*/; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } -.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-top { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-right { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-left { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all { -moz-border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; border-radius: 4px/*{cornerRadius}*/; } - -/* Overlays */ -.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } -.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } \ No newline at end of file diff --git a/src/Test/Test/Images/Thumbs.db.REMOVED.git-id b/src/Test/Test/Images/Thumbs.db.REMOVED.git-id new file mode 100644 index 0000000000..6a8e2c5a2a --- /dev/null +++ b/src/Test/Test/Images/Thumbs.db.REMOVED.git-id @@ -0,0 +1 @@ +8f290942360078af430fc9ce5d6e746500d21d74 \ No newline at end of file diff --git a/src/Test/Test/Test.csproj b/src/Test/Test/Test.csproj index c629e62498..dcb138427f 100644 --- a/src/Test/Test/Test.csproj +++ b/src/Test/Test/Test.csproj @@ -21,6 +21,10 @@ 4.0 + + + + true @@ -83,33 +87,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -127,7 +106,6 @@ Web.config - diff --git a/src/Test/Test/Test.vsdoc b/src/Test/Test/Test.vsdoc deleted file mode 100644 index 9ffff5e7f2..0000000000 --- a/src/Test/Test/Test.vsdoc +++ /dev/null @@ -1,7 +0,0 @@ - - - - default - - - diff --git a/src/Test/Test/Views/Home/Index.cshtml b/src/Test/Test/Views/Home/Index.cshtml index 595709e0aa..47d9dae31a 100644 --- a/src/Test/Test/Views/Home/Index.cshtml +++ b/src/Test/Test/Views/Home/Index.cshtml @@ -1,10 +1,57 @@ -@{ - ViewBag.Title = "Home Page"; -} - -

@ViewBag.Message

-

- Click the about tab to load up a page of resized images. -

-

Remote image test

- \ No newline at end of file +@{ + ViewBag.Title = "Home Page"; +} +
+@*
+

Resized Image

+ +
+
+

Cropped Image

+ +
*@ +
+
+

Filtered Image

+
    +
  • +

    blackwhite

    + +
  • +
  • +

    comic

    + +
  • +
  • +

    lomograph

    + +
  • +@*
  • +

    greyscale

    + +
  • +
  • +

    polaroid

    + +
  • +
  • +

    sepia

    + +
  • +
  • +

    gotham

    + +
  • +
  • +

    hisatch

    + +
  • +
  • +

    losatch

    + +
  • *@ +
+ +
+@*

Remote image test

+*@ \ No newline at end of file diff --git a/src/Test/Test/Views/Shared/_Layout.cshtml b/src/Test/Test/Views/Shared/_Layout.cshtml index abe37402be..09632c1300 100644 --- a/src/Test/Test/Views/Shared/_Layout.cshtml +++ b/src/Test/Test/Views/Shared/_Layout.cshtml @@ -1,32 +1,25 @@ - - - - - @ViewBag.Title - - - -
-
-
-

- ImageProcessor Test Website

-
-
-
- -
-
- @RenderBody() -
-
-
-
- - + + + + + @ViewBag.Title + + + + +
+
+
+
+

ImageProcessor Test Website

+
+
+
+ @RenderBody() +
+
+
+
+
+ + diff --git a/src/Test/Test/packages.config b/src/Test/Test/packages.config index 7ab92592f7..dde88d7f24 100644 --- a/src/Test/Test/packages.config +++ b/src/Test/Test/packages.config @@ -1,9 +1,4 @@  - - - - - \ No newline at end of file diff --git a/src/Test/packages/EntityFramework.4.1.10331.0/EntityFramework.4.1.10331.0.nupkg.REMOVED.git-id b/src/Test/packages/EntityFramework.4.1.10331.0/EntityFramework.4.1.10331.0.nupkg.REMOVED.git-id deleted file mode 100644 index e80e99351e..0000000000 --- a/src/Test/packages/EntityFramework.4.1.10331.0/EntityFramework.4.1.10331.0.nupkg.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -6c2337ee82b7b6bc2dea37bb89cff832c057bef8 \ No newline at end of file diff --git a/src/Test/packages/EntityFramework.4.1.10331.0/lib/EntityFramework.dll.REMOVED.git-id b/src/Test/packages/EntityFramework.4.1.10331.0/lib/EntityFramework.dll.REMOVED.git-id deleted file mode 100644 index cf7e7c6ba4..0000000000 --- a/src/Test/packages/EntityFramework.4.1.10331.0/lib/EntityFramework.dll.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -cbb615d89365c6c7b290e4ad0cc2e226df9bbb61 \ No newline at end of file diff --git a/src/Test/packages/EntityFramework.4.1.10331.0/lib/EntityFramework.xml.REMOVED.git-id b/src/Test/packages/EntityFramework.4.1.10331.0/lib/EntityFramework.xml.REMOVED.git-id deleted file mode 100644 index cbeb2b2225..0000000000 --- a/src/Test/packages/EntityFramework.4.1.10331.0/lib/EntityFramework.xml.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -61abdd39cc4cb11c00715a43ad2203c3e5e97415 \ No newline at end of file diff --git a/src/Test/packages/Modernizr.1.7/Content/Scripts/modernizr-1.7.js b/src/Test/packages/Modernizr.1.7/Content/Scripts/modernizr-1.7.js deleted file mode 100644 index 7bc212a8c7..0000000000 --- a/src/Test/packages/Modernizr.1.7/Content/Scripts/modernizr-1.7.js +++ /dev/null @@ -1,969 +0,0 @@ -/*! -* Note: While Microsoft is not the author of this file, Microsoft is -* offering you a license subject to the terms of the Microsoft Software -* License Terms for Microsoft ASP.NET Model View Controller 3. -* Microsoft reserves all other rights. The notices below are provided -* for informational purposes only and are not the license terms under -* which Microsoft distributed this file. -* -* Modernizr v1.7 -* http://www.modernizr.com -* -* Developed by: -* - Faruk Ates http://farukat.es/ -* - Paul Irish http://paulirish.com/ -* -* Copyright (c) 2009-2011 -*/ - - -/* - * Modernizr is a script that detects native CSS3 and HTML5 features - * available in the current UA and provides an object containing all - * features with a true/false value, depending on whether the UA has - * native support for it or not. - * - * Modernizr will also add classes to the element of the page, - * one for each feature it detects. If the UA supports it, a class - * like "cssgradients" will be added. If not, the class name will be - * "no-cssgradients". This allows for simple if-conditionals in your - * CSS, giving you fine control over the look & feel of your website. - * - * @author Faruk Ates - * @author Paul Irish - * @copyright (c) 2009-2011 Faruk Ates. - * @contributor Ben Alman - */ - -window.Modernizr = (function(window,document,undefined){ - - var version = '1.7', - - ret = {}, - - /** - * !! DEPRECATED !! - * - * enableHTML5 is a private property for advanced use only. If enabled, - * it will make Modernizr.init() run through a brief while() loop in - * which it will create all HTML5 elements in the DOM to allow for - * styling them in Internet Explorer, which does not recognize any - * non-HTML4 elements unless created in the DOM this way. - * - * enableHTML5 is ON by default. - * - * The enableHTML5 toggle option is DEPRECATED as per 1.6, and will be - * replaced in 2.0 in lieu of the modular, configurable nature of 2.0. - */ - enableHTML5 = true, - - - docElement = document.documentElement, - docHead = document.head || document.getElementsByTagName('head')[0], - - /** - * Create our "modernizr" element that we do most feature tests on. - */ - mod = 'modernizr', - modElem = document.createElement( mod ), - m_style = modElem.style, - - /** - * Create the input element for various Web Forms feature tests. - */ - inputElem = document.createElement( 'input' ), - - smile = ':)', - - tostring = Object.prototype.toString, - - // List of property values to set for css tests. See ticket #21 - prefixes = ' -webkit- -moz- -o- -ms- -khtml- '.split(' '), - - // Following spec is to expose vendor-specific style properties as: - // elem.style.WebkitBorderRadius - // and the following would be incorrect: - // elem.style.webkitBorderRadius - - // Webkit ghosts their properties in lowercase but Opera & Moz do not. - // Microsoft foregoes prefixes entirely <= IE8, but appears to - // use a lowercase `ms` instead of the correct `Ms` in IE9 - - // More here: http://github.com/Modernizr/Modernizr/issues/issue/21 - domPrefixes = 'Webkit Moz O ms Khtml'.split(' '), - - ns = {'svg': 'http://www.w3.org/2000/svg'}, - - tests = {}, - inputs = {}, - attrs = {}, - - classes = [], - - featurename, // used in testing loop - - - - // todo: consider using http://javascript.nwbox.com/CSSSupport/css-support.js instead - testMediaQuery = function(mq){ - - var st = document.createElement('style'), - div = document.createElement('div'), - ret; - - st.textContent = mq + '{#modernizr{height:3px}}'; - docHead.appendChild(st); - div.id = 'modernizr'; - docElement.appendChild(div); - - ret = div.offsetHeight === 3; - - st.parentNode.removeChild(st); - div.parentNode.removeChild(div); - - return !!ret; - - }, - - - /** - * isEventSupported determines if a given element supports the given event - * function from http://yura.thinkweb2.com/isEventSupported/ - */ - isEventSupported = (function(){ - - var TAGNAMES = { - 'select':'input','change':'input', - 'submit':'form','reset':'form', - 'error':'img','load':'img','abort':'img' - }; - - function isEventSupported(eventName, element) { - - element = element || document.createElement(TAGNAMES[eventName] || 'div'); - eventName = 'on' + eventName; - - // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those - var isSupported = (eventName in element); - - if (!isSupported) { - // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element - if (!element.setAttribute) { - element = document.createElement('div'); - } - if (element.setAttribute && element.removeAttribute) { - element.setAttribute(eventName, ''); - isSupported = is(element[eventName], 'function'); - - // If property was created, "remove it" (by setting value to `undefined`) - if (!is(element[eventName], undefined)) { - element[eventName] = undefined; - } - element.removeAttribute(eventName); - } - } - - element = null; - return isSupported; - } - return isEventSupported; - })(); - - - // hasOwnProperty shim by kangax needed for Safari 2.0 support - var _hasOwnProperty = ({}).hasOwnProperty, hasOwnProperty; - if (!is(_hasOwnProperty, undefined) && !is(_hasOwnProperty.call, undefined)) { - hasOwnProperty = function (object, property) { - return _hasOwnProperty.call(object, property); - }; - } - else { - hasOwnProperty = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */ - return ((property in object) && is(object.constructor.prototype[property], undefined)); - }; - } - - /** - * set_css applies given styles to the Modernizr DOM node. - */ - function set_css( str ) { - m_style.cssText = str; - } - - /** - * set_css_all extrapolates all vendor-specific css strings. - */ - function set_css_all( str1, str2 ) { - return set_css(prefixes.join(str1 + ';') + ( str2 || '' )); - } - - /** - * is returns a boolean for if typeof obj is exactly type. - */ - function is( obj, type ) { - return typeof obj === type; - } - - /** - * contains returns a boolean for if substr is found within str. - */ - function contains( str, substr ) { - return (''+str).indexOf( substr ) !== -1; - } - - /** - * test_props is a generic CSS / DOM property test; if a browser supports - * a certain property, it won't return undefined for it. - * A supported CSS property returns empty string when its not yet set. - */ - function test_props( props, callback ) { - for ( var i in props ) { - if ( m_style[ props[i] ] !== undefined && ( !callback || callback( props[i], modElem ) ) ) { - return true; - } - } - } - - /** - * test_props_all tests a list of DOM properties we want to check against. - * We specify literally ALL possible (known and/or likely) properties on - * the element including the non-vendor prefixed one, for forward- - * compatibility. - */ - function test_props_all( prop, callback ) { - - var uc_prop = prop.charAt(0).toUpperCase() + prop.substr(1), - props = (prop + ' ' + domPrefixes.join(uc_prop + ' ') + uc_prop).split(' '); - - return !!test_props( props, callback ); - } - - - /** - * Tests - * ----- - */ - - tests['flexbox'] = function() { - /** - * set_prefixed_value_css sets the property of a specified element - * adding vendor prefixes to the VALUE of the property. - * @param {Element} element - * @param {string} property The property name. This will not be prefixed. - * @param {string} value The value of the property. This WILL be prefixed. - * @param {string=} extra Additional CSS to append unmodified to the end of - * the CSS string. - */ - function set_prefixed_value_css(element, property, value, extra) { - property += ':'; - element.style.cssText = (property + prefixes.join(value + ';' + property)).slice(0, -property.length) + (extra || ''); - } - - /** - * set_prefixed_property_css sets the property of a specified element - * adding vendor prefixes to the NAME of the property. - * @param {Element} element - * @param {string} property The property name. This WILL be prefixed. - * @param {string} value The value of the property. This will not be prefixed. - * @param {string=} extra Additional CSS to append unmodified to the end of - * the CSS string. - */ - function set_prefixed_property_css(element, property, value, extra) { - element.style.cssText = prefixes.join(property + ':' + value + ';') + (extra || ''); - } - - var c = document.createElement('div'), - elem = document.createElement('div'); - - set_prefixed_value_css(c, 'display', 'box', 'width:42px;padding:0;'); - set_prefixed_property_css(elem, 'box-flex', '1', 'width:10px;'); - - c.appendChild(elem); - docElement.appendChild(c); - - var ret = elem.offsetWidth === 42; - - c.removeChild(elem); - docElement.removeChild(c); - - return ret; - }; - - // On the S60 and BB Storm, getContext exists, but always returns undefined - // http://github.com/Modernizr/Modernizr/issues/issue/97/ - - tests['canvas'] = function() { - var elem = document.createElement( 'canvas' ); - return !!(elem.getContext && elem.getContext('2d')); - }; - - tests['canvastext'] = function() { - return !!(ret['canvas'] && is(document.createElement( 'canvas' ).getContext('2d').fillText, 'function')); - }; - - // This WebGL test false positives in FF depending on graphics hardware. But really it's quite impossible to know - // wether webgl will succeed until after you create the context. You might have hardware that can support - // a 100x100 webgl canvas, but will not support a 1000x1000 webgl canvas. So this feature inference is weak, - // but intentionally so. - tests['webgl'] = function(){ - return !!window.WebGLRenderingContext; - }; - - /* - * The Modernizr.touch test only indicates if the browser supports - * touch events, which does not necessarily reflect a touchscreen - * device, as evidenced by tablets running Windows 7 or, alas, - * the Palm Pre / WebOS (touch) phones. - * - * Additionally, Chrome (desktop) used to lie about its support on this, - * but that has since been rectified: http://crbug.com/36415 - * - * We also test for Firefox 4 Multitouch Support. - * - * For more info, see: http://modernizr.github.com/Modernizr/touch.html - */ - - tests['touch'] = function() { - - return ('ontouchstart' in window) || testMediaQuery('@media ('+prefixes.join('touch-enabled),(')+'modernizr)'); - - }; - - - /** - * geolocation tests for the new Geolocation API specification. - * This test is a standards compliant-only test; for more complete - * testing, including a Google Gears fallback, please see: - * http://code.google.com/p/geo-location-javascript/ - * or view a fallback solution using google's geo API: - * http://gist.github.com/366184 - */ - tests['geolocation'] = function() { - return !!navigator.geolocation; - }; - - // Per 1.6: - // This used to be Modernizr.crosswindowmessaging but the longer - // name has been deprecated in favor of a shorter and property-matching one. - // The old API is still available in 1.6, but as of 2.0 will throw a warning, - // and in the first release thereafter disappear entirely. - tests['postmessage'] = function() { - return !!window.postMessage; - }; - - // Web SQL database detection is tricky: - - // In chrome incognito mode, openDatabase is truthy, but using it will - // throw an exception: http://crbug.com/42380 - // We can create a dummy database, but there is no way to delete it afterwards. - - // Meanwhile, Safari users can get prompted on any database creation. - // If they do, any page with Modernizr will give them a prompt: - // http://github.com/Modernizr/Modernizr/issues/closed#issue/113 - - // We have chosen to allow the Chrome incognito false positive, so that Modernizr - // doesn't litter the web with these test databases. As a developer, you'll have - // to account for this gotcha yourself. - tests['websqldatabase'] = function() { - var result = !!window.openDatabase; - /* if (result){ - try { - result = !!openDatabase( mod + "testdb", "1.0", mod + "testdb", 2e4); - } catch(e) { - } - } */ - return result; - }; - - // Vendors have inconsistent prefixing with the experimental Indexed DB: - // - Firefox is shipping indexedDB in FF4 as moz_indexedDB - // - Webkit's implementation is accessible through webkitIndexedDB - // We test both styles. - tests['indexedDB'] = function(){ - for (var i = -1, len = domPrefixes.length; ++i < len; ){ - var prefix = domPrefixes[i].toLowerCase(); - if (window[prefix + '_indexedDB'] || window[prefix + 'IndexedDB']){ - return true; - } - } - return false; - }; - - // documentMode logic from YUI to filter out IE8 Compat Mode - // which false positives. - tests['hashchange'] = function() { - return isEventSupported('hashchange', window) && ( document.documentMode === undefined || document.documentMode > 7 ); - }; - - // Per 1.6: - // This used to be Modernizr.historymanagement but the longer - // name has been deprecated in favor of a shorter and property-matching one. - // The old API is still available in 1.6, but as of 2.0 will throw a warning, - // and in the first release thereafter disappear entirely. - tests['history'] = function() { - return !!(window.history && history.pushState); - }; - - tests['draganddrop'] = function() { - return isEventSupported('dragstart') && isEventSupported('drop'); - }; - - tests['websockets'] = function(){ - return ('WebSocket' in window); - }; - - - // http://css-tricks.com/rgba-browser-support/ - tests['rgba'] = function() { - // Set an rgba() color and check the returned value - - set_css( 'background-color:rgba(150,255,150,.5)' ); - - return contains( m_style.backgroundColor, 'rgba' ); - }; - - tests['hsla'] = function() { - // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally, - // except IE9 who retains it as hsla - - set_css('background-color:hsla(120,40%,100%,.5)' ); - - return contains( m_style.backgroundColor, 'rgba' ) || contains( m_style.backgroundColor, 'hsla' ); - }; - - tests['multiplebgs'] = function() { - // Setting multiple images AND a color on the background shorthand property - // and then querying the style.background property value for the number of - // occurrences of "url(" is a reliable method for detecting ACTUAL support for this! - - set_css( 'background:url(//:),url(//:),red url(//:)' ); - - // If the UA supports multiple backgrounds, there should be three occurrences - // of the string "url(" in the return value for elem_style.background - - return new RegExp("(url\\s*\\(.*?){3}").test(m_style.background); - }; - - - // In testing support for a given CSS property, it's legit to test: - // `elem.style[styleName] !== undefined` - // If the property is supported it will return an empty string, - // if unsupported it will return undefined. - - // We'll take advantage of this quick test and skip setting a style - // on our modernizr element, but instead just testing undefined vs - // empty string. - - - tests['backgroundsize'] = function() { - return test_props_all( 'backgroundSize' ); - }; - - tests['borderimage'] = function() { - return test_props_all( 'borderImage' ); - }; - - - // Super comprehensive table about all the unique implementations of - // border-radius: http://muddledramblings.com/table-of-css3-border-radius-compliance - - tests['borderradius'] = function() { - return test_props_all( 'borderRadius', '', function( prop ) { - return contains( prop, 'orderRadius' ); - }); - }; - - // WebOS unfortunately false positives on this test. - tests['boxshadow'] = function() { - return test_props_all( 'boxShadow' ); - }; - - // FF3.0 will false positive on this test - tests['textshadow'] = function(){ - return document.createElement('div').style.textShadow === ''; - }; - - - tests['opacity'] = function() { - // Browsers that actually have CSS Opacity implemented have done so - // according to spec, which means their return values are within the - // range of [0.0,1.0] - including the leading zero. - - set_css_all( 'opacity:.55' ); - - // The non-literal . in this regex is intentional: - // German Chrome returns this value as 0,55 - // https://github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632 - return /^0.55$/.test(m_style.opacity); - }; - - - tests['cssanimations'] = function() { - return test_props_all( 'animationName' ); - }; - - - tests['csscolumns'] = function() { - return test_props_all( 'columnCount' ); - }; - - - tests['cssgradients'] = function() { - /** - * For CSS Gradients syntax, please see: - * http://webkit.org/blog/175/introducing-css-gradients/ - * https://developer.mozilla.org/en/CSS/-moz-linear-gradient - * https://developer.mozilla.org/en/CSS/-moz-radial-gradient - * http://dev.w3.org/csswg/css3-images/#gradients- - */ - - var str1 = 'background-image:', - str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));', - str3 = 'linear-gradient(left top,#9f9, white);'; - - set_css( - (str1 + prefixes.join(str2 + str1) + prefixes.join(str3 + str1)).slice(0,-str1.length) - ); - - return contains( m_style.backgroundImage, 'gradient' ); - }; - - - tests['cssreflections'] = function() { - return test_props_all( 'boxReflect' ); - }; - - - tests['csstransforms'] = function() { - return !!test_props([ 'transformProperty', 'WebkitTransform', 'MozTransform', 'OTransform', 'msTransform' ]); - }; - - - tests['csstransforms3d'] = function() { - - var ret = !!test_props([ 'perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective' ]); - - // Webkit’s 3D transforms are passed off to the browser's own graphics renderer. - // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in - // some conditions. As a result, Webkit typically recognizes the syntax but - // will sometimes throw a false positive, thus we must do a more thorough check: - if (ret && 'webkitPerspective' in docElement.style){ - - // Webkit allows this media query to succeed only if the feature is enabled. - // `@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-ms-transform-3d),(-webkit-transform-3d),(modernizr){ ... }` - ret = testMediaQuery('@media ('+prefixes.join('transform-3d),(')+'modernizr)'); - } - return ret; - }; - - - tests['csstransitions'] = function() { - return test_props_all( 'transitionProperty' ); - }; - - - // @font-face detection routine by Diego Perini - // http://javascript.nwbox.com/CSSSupport/ - tests['fontface'] = function(){ - - var - sheet, bool, - head = docHead || docElement, - style = document.createElement("style"), - impl = document.implementation || { hasFeature: function() { return false; } }; - - style.type = 'text/css'; - head.insertBefore(style, head.firstChild); - sheet = style.sheet || style.styleSheet; - - var supportAtRule = impl.hasFeature('CSS2', '') ? - function(rule) { - if (!(sheet && rule)) return false; - var result = false; - try { - sheet.insertRule(rule, 0); - result = (/src/i).test(sheet.cssRules[0].cssText); - sheet.deleteRule(sheet.cssRules.length - 1); - } catch(e) { } - return result; - } : - function(rule) { - if (!(sheet && rule)) return false; - sheet.cssText = rule; - - return sheet.cssText.length !== 0 && (/src/i).test(sheet.cssText) && - sheet.cssText - .replace(/\r+|\n+/g, '') - .indexOf(rule.split(' ')[0]) === 0; - }; - - bool = supportAtRule('@font-face { font-family: "font"; src: url(data:,); }'); - head.removeChild(style); - return bool; - }; - - - // These tests evaluate support of the video/audio elements, as well as - // testing what types of content they support. - // - // We're using the Boolean constructor here, so that we can extend the value - // e.g. Modernizr.video // true - // Modernizr.video.ogg // 'probably' - // - // Codec values from : http://github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845 - // thx to NielsLeenheer and zcorpan - - // Note: in FF 3.5.1 and 3.5.0, "no" was a return value instead of empty string. - // Modernizr does not normalize for that. - - tests['video'] = function() { - var elem = document.createElement('video'), - bool = !!elem.canPlayType; - - if (bool){ - bool = new Boolean(bool); - bool.ogg = elem.canPlayType('video/ogg; codecs="theora"'); - - // Workaround required for IE9, which doesn't report video support without audio codec specified. - // bug 599718 @ msft connect - var h264 = 'video/mp4; codecs="avc1.42E01E'; - bool.h264 = elem.canPlayType(h264 + '"') || elem.canPlayType(h264 + ', mp4a.40.2"'); - - bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"'); - } - return bool; - }; - - tests['audio'] = function() { - var elem = document.createElement('audio'), - bool = !!elem.canPlayType; - - if (bool){ - bool = new Boolean(bool); - bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"'); - bool.mp3 = elem.canPlayType('audio/mpeg;'); - - // Mimetypes accepted: - // https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements - // http://bit.ly/iphoneoscodecs - bool.wav = elem.canPlayType('audio/wav; codecs="1"'); - bool.m4a = elem.canPlayType('audio/x-m4a;') || elem.canPlayType('audio/aac;'); - } - return bool; - }; - - - // Firefox has made these tests rather unfun. - - // In FF4, if disabled, window.localStorage should === null. - - // Normally, we could not test that directly and need to do a - // `('localStorage' in window) && ` test first because otherwise Firefox will - // throw http://bugzil.la/365772 if cookies are disabled - - // However, in Firefox 4 betas, if dom.storage.enabled == false, just mentioning - // the property will throw an exception. http://bugzil.la/599479 - // This looks to be fixed for FF4 Final. - - // Because we are forced to try/catch this, we'll go aggressive. - - // FWIW: IE8 Compat mode supports these features completely: - // http://www.quirksmode.org/dom/html5.html - // But IE8 doesn't support either with local files - - tests['localstorage'] = function() { - try { - return !!localStorage.getItem; - } catch(e) { - return false; - } - }; - - tests['sessionstorage'] = function() { - try { - return !!sessionStorage.getItem; - } catch(e){ - return false; - } - }; - - - tests['webWorkers'] = function () { - return !!window.Worker; - }; - - - tests['applicationcache'] = function() { - return !!window.applicationCache; - }; - - - // Thanks to Erik Dahlstrom - tests['svg'] = function(){ - return !!document.createElementNS && !!document.createElementNS(ns.svg, "svg").createSVGRect; - }; - - tests['inlinesvg'] = function() { - var div = document.createElement('div'); - div.innerHTML = ''; - return (div.firstChild && div.firstChild.namespaceURI) == ns.svg; - }; - - // Thanks to F1lt3r and lucideer - // http://github.com/Modernizr/Modernizr/issues#issue/35 - tests['smil'] = function(){ - return !!document.createElementNS && /SVG/.test(tostring.call(document.createElementNS(ns.svg,'animate'))); - }; - - tests['svgclippaths'] = function(){ - // Possibly returns a false positive in Safari 3.2? - return !!document.createElementNS && /SVG/.test(tostring.call(document.createElementNS(ns.svg,'clipPath'))); - }; - - - // input features and input types go directly onto the ret object, bypassing the tests loop. - // Hold this guy to execute in a moment. - function webforms(){ - - // Run through HTML5's new input attributes to see if the UA understands any. - // We're using f which is the element created early on - // Mike Taylr has created a comprehensive resource for testing these attributes - // when applied to all input types: - // http://miketaylr.com/code/input-type-attr.html - // spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary - ret['input'] = (function(props) { - for (var i = 0, len = props.length; i>BEGIN IEPP - // Enable HTML 5 elements for styling in IE. - // fyi: jscript version does not reflect trident version - // therefore ie9 in ie7 mode will still have a jScript v.9 - if ( enableHTML5 && window.attachEvent && (function(){ var elem = document.createElement("div"); - elem.innerHTML = ""; - return elem.childNodes.length !== 1; })()) { - // iepp v1.6.2 by @jon_neal : code.google.com/p/ie-print-protector - (function(win, doc) { - var elems = 'abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video', - elemsArr = elems.split('|'), - elemsArrLen = elemsArr.length, - elemRegExp = new RegExp('(^|\\s)('+elems+')', 'gi'), - tagRegExp = new RegExp('<(\/*)('+elems+')', 'gi'), - ruleRegExp = new RegExp('(^|[^\\n]*?\\s)('+elems+')([^\\n]*)({[\\n\\w\\W]*?})', 'gi'), - docFrag = doc.createDocumentFragment(), - html = doc.documentElement, - head = html.firstChild, - bodyElem = doc.createElement('body'), - styleElem = doc.createElement('style'), - body; - function shim(doc) { - var a = -1; - while (++a < elemsArrLen) - // Use createElement so IE allows HTML5-named elements in a document - doc.createElement(elemsArr[a]); - } - function getCSS(styleSheetList, mediaType) { - var a = -1, - len = styleSheetList.length, - styleSheet, - cssTextArr = []; - while (++a < len) { - styleSheet = styleSheetList[a]; - // Get css from all non-screen stylesheets and their imports - if ((mediaType = styleSheet.media || mediaType) != 'screen') cssTextArr.push(getCSS(styleSheet.imports, mediaType), styleSheet.cssText); - } - return cssTextArr.join(''); - } - // Shim the document and iepp fragment - shim(doc); - shim(docFrag); - // Add iepp custom print style element - head.insertBefore(styleElem, head.firstChild); - styleElem.media = 'print'; - win.attachEvent( - 'onbeforeprint', - function() { - var a = -1, - cssText = getCSS(doc.styleSheets, 'all'), - cssTextArr = [], - rule; - body = body || doc.body; - // Get only rules which reference HTML5 elements by name - while ((rule = ruleRegExp.exec(cssText)) != null) - // Replace all html5 element references with iepp substitute classnames - cssTextArr.push((rule[1]+rule[2]+rule[3]).replace(elemRegExp, '$1.iepp_$2')+rule[4]); - // Write iepp custom print CSS - styleElem.styleSheet.cssText = cssTextArr.join('\n'); - while (++a < elemsArrLen) { - var nodeList = doc.getElementsByTagName(elemsArr[a]), - nodeListLen = nodeList.length, - b = -1; - while (++b < nodeListLen) - if (nodeList[b].className.indexOf('iepp_') < 0) - // Append iepp substitute classnames to all html5 elements - nodeList[b].className += ' iepp_'+elemsArr[a]; - } - docFrag.appendChild(body); - html.appendChild(bodyElem); - // Write iepp substitute print-safe document - bodyElem.className = body.className; - // Replace HTML5 elements with which is print-safe and shouldn't conflict since it isn't part of html5 - bodyElem.innerHTML = body.innerHTML.replace(tagRegExp, '<$1font'); - } - ); - win.attachEvent( - 'onafterprint', - function() { - // Undo everything done in onbeforeprint - bodyElem.innerHTML = ''; - html.removeChild(bodyElem); - html.appendChild(body); - styleElem.styleSheet.cssText = ''; - } - ); - })(window, document); - } - //>>END IEPP - - // Assign private properties to the return object with prefix - ret._enableHTML5 = enableHTML5; - ret._version = version; - - // Remove "no-js" class from element, if it exists: - docElement.className = docElement.className.replace(/\bno-js\b/,'') - + ' js ' - - // Add the new classes to the element. - + classes.join( ' ' ); - - return ret; - -})(this,this.document); \ No newline at end of file diff --git a/src/Test/packages/Modernizr.1.7/Content/Scripts/modernizr-1.7.min.js b/src/Test/packages/Modernizr.1.7/Content/Scripts/modernizr-1.7.min.js deleted file mode 100644 index 4b4fcc1e55..0000000000 --- a/src/Test/packages/Modernizr.1.7/Content/Scripts/modernizr-1.7.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! -* Note: While Microsoft is not the author of this file, Microsoft is -* offering you a license subject to the terms of the Microsoft Software -* License Terms for Microsoft ASP.NET Model View Controller 3. -* Microsoft reserves all other rights. The notices below are provided -* for informational purposes only and are not the license terms under -* which Microsoft distributed this file. -*/ -// Modernizr v1.7 www.modernizr.com -window.Modernizr=function(a,b,c){function G(){e.input=function(a){for(var b=0,c=a.length;b7)},r.history=function(){return !!(a.history&&history.pushState)},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){return"WebSocket"in a},r.rgba=function(){A("background-color:rgba(150,255,150,.5)");return D(k.backgroundColor,"rgba")},r.hsla=function(){A("background-color:hsla(120,40%,100%,.5)");return D(k.backgroundColor,"rgba")||D(k.backgroundColor,"hsla")},r.multiplebgs=function(){A("background:url(//:),url(//:),red url(//:)");return(new RegExp("(url\\s*\\(.*?){3}")).test(k.background)},r.backgroundsize=function(){return F("backgroundSize")},r.borderimage=function(){return F("borderImage")},r.borderradius=function(){return F("borderRadius","",function(a){return D(a,"orderRadius")})},r.boxshadow=function(){return F("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){B("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return F("animationName")},r.csscolumns=function(){return F("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";A((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return D(k.backgroundImage,"gradient")},r.cssreflections=function(){return F("boxReflect")},r.csstransforms=function(){return!!E(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!E(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=w("@media ("+o.join("transform-3d),(")+"modernizr)"));return a},r.csstransitions=function(){return F("transitionProperty")},r.fontface=function(){var a,c,d=h||g,e=b.createElement("style"),f=b.implementation||{hasFeature:function(){return!1}};e.type="text/css",d.insertBefore(e,d.firstChild),a=e.sheet||e.styleSheet;var i=f.hasFeature("CSS2","")?function(b){if(!a||!b)return!1;var c=!1;try{a.insertRule(b,0),c=/src/i.test(a.cssRules[0].cssText),a.deleteRule(a.cssRules.length-1)}catch(d){}return c}:function(b){if(!a||!b)return!1;a.cssText=b;return a.cssText.length!==0&&/src/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(b.split(" ")[0])===0};c=i('@font-face { font-family: "font"; src: url(data:,); }'),d.removeChild(e);return c},r.video=function(){var a=b.createElement("video"),c=!!a.canPlayType;if(c){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return c},r.audio=function(){var a=b.createElement("audio"),c=!!a.canPlayType;c&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;"));return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!!sessionStorage.getItem}catch(a){return!1}},r.webWorkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="";return(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var H in r)z(r,H)&&(v=H.toLowerCase(),e[v]=r[H](),u.push((e[v]?"":"no-")+v));e.input||G(),e.crosswindowmessaging=e.postmessage,e.historymanagement=e.history,e.addTest=function(a,b){a=a.toLowerCase();if(!e[a]){b=!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b;return e}},A(""),j=l=null,f&&a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="";return a.childNodes.length!==1}()&&function(a,b){function p(a,b){var c=-1,d=a.length,e,f=[]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

v(#I+E$zvvQCNcbgTvU>6 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 YH)Gd&j2%Zd8wcNy;KaU7ZoQ29FL={RuK)l5 diff --git a/src/Test/packages/jQuery.1.5.1/Content/Scripts/jquery-1.5.1.js.REMOVED.git-id b/src/Test/packages/jQuery.1.5.1/Content/Scripts/jquery-1.5.1.js.REMOVED.git-id deleted file mode 100644 index 25bdfee81b..0000000000 --- a/src/Test/packages/jQuery.1.5.1/Content/Scripts/jquery-1.5.1.js.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -5948d8cc4932a48bc126343cf1d5ea2ac5f0b3c0 \ No newline at end of file diff --git a/src/Test/packages/jQuery.1.5.1/Content/Scripts/jquery-1.5.1.min.js.REMOVED.git-id b/src/Test/packages/jQuery.1.5.1/Content/Scripts/jquery-1.5.1.min.js.REMOVED.git-id deleted file mode 100644 index 1013447da1..0000000000 --- a/src/Test/packages/jQuery.1.5.1/Content/Scripts/jquery-1.5.1.min.js.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -eec584bc589cf1ab1fe50781c1780f89c90aa31b \ No newline at end of file diff --git a/src/Test/packages/jQuery.1.5.1/jQuery.1.5.1.nupkg.REMOVED.git-id b/src/Test/packages/jQuery.1.5.1/jQuery.1.5.1.nupkg.REMOVED.git-id deleted file mode 100644 index e184a83d07..0000000000 --- a/src/Test/packages/jQuery.1.5.1/jQuery.1.5.1.nupkg.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -10542650ebb596cd1cfef53bf8fd64b86ee5f957 \ No newline at end of file diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100644 index aa64503203..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a8492a580bf85d3e98ae8861fbd45567e5a1f83eeafcf9574da0399d5f602ab -size 180 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png deleted file mode 100644 index e9ef9bfae9..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39ab7ccd9f4e82579da78a9241265df288d8eb65dbbd7cf48aed2d0129887df5 -size 178 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png deleted file mode 100644 index 69dc324c75..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:691597e8a40a891ea94d3589976ecfc33e6145c49422443b00ac2b5a0022964c -size 120 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100644 index 0b75d11923..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0e6cd91b837d5c5644d026e5ffeccd907953317cd5c0f689901733afda260b2 -size 105 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png deleted file mode 100644 index 08e127e909..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c108f5cbf2dd9ec07a26530695ddd95e1664597ce6c056ae44c162cc2e28cec4 -size 111 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png deleted file mode 100644 index 4ee557775d..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ddf5dd4e0ef2b185e8bb0af7b6e90ebe74a84384cb4700658e76e754c8bfe550 -size 110 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index 17c0024eec..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f6f1c1bedf1a0f37cfef81d12f5f012869d1ee7c984775a569827a1784d34f5c -size 119 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png deleted file mode 100644 index 553d38c1f0..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:54270656df079c4da5182629a080fc633b6f84b87985eb016d25a560e2c38d4a -size 101 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_222222_256x240.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_222222_256x240.png deleted file mode 100644 index 9932cb1ab7..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_222222_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57adb0d65f4e91dacfee975d9574422bee7486c8a182d60133728c672f2cdbbc -size 4369 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_2e83ff_256x240.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_2e83ff_256x240.png deleted file mode 100644 index 867aca5aee..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_2e83ff_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:20f8c6667afc48aa433ee9eb6d8a0584bdbd6b4a4a9091ff1e6b3adb31e63bd9 -size 4369 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_454545_256x240.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_454545_256x240.png deleted file mode 100644 index 09df6dbbc0..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_454545_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:07460e843c3e59aaadbb34231e699e856a2980753c7a47b66447da5d9f93fb7f -size 4369 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_888888_256x240.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_888888_256x240.png deleted file mode 100644 index f3136b3fd0..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_888888_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea2e29625de3463465e93b002b065f5833e05b97f7a052b1c141e754d62e1a8b -size 4369 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_cd0a0a_256x240.png b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_cd0a0a_256x240.png deleted file mode 100644 index a30dd384d4..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/images/ui-icons_cd0a0a_256x240.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1e32c6dbf5d3fd342f27a78aa881550d6412aa207f48468724a6a15402b6041b -size 4369 diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.accordion.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.accordion.css deleted file mode 100644 index 4a67cbf8e4..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.accordion.css +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Accordion 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Accordion#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.all.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.all.css deleted file mode 100644 index 2b2c103e80..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.all.css +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Theming - */ -@import "jquery.ui.base.css"; -@import "jquery.ui.theme.css"; diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.autocomplete.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.autocomplete.css deleted file mode 100644 index aac4e204d2..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.autocomplete.css +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Autocomplete 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * http://docs.jquery.com/UI/Autocomplete#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Menu 1.8.11 - * - * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.base.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.base.css deleted file mode 100644 index f52ee39b95..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.base.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("jquery.ui.core.css"); -@import url("jquery.ui.resizable.css"); -@import url("jquery.ui.selectable.css"); -@import url("jquery.ui.accordion.css"); -@import url("jquery.ui.autocomplete.css"); -@import url("jquery.ui.button.css"); -@import url("jquery.ui.dialog.css"); -@import url("jquery.ui.slider.css"); -@import url("jquery.ui.tabs.css"); -@import url("jquery.ui.datepicker.css"); -@import url("jquery.ui.progressbar.css"); \ No newline at end of file diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.button.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.button.css deleted file mode 100644 index af6c985b8d..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.button.css +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Button 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Button#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.core.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.core.css deleted file mode 100644 index 55fb8b0d99..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.core.css +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * 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; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.datepicker.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.datepicker.css deleted file mode 100644 index 7126923cc0..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.datepicker.css +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Datepicker 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Datepicker#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -} \ No newline at end of file diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.dialog.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.dialog.css deleted file mode 100644 index 311dd32e5d..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.dialog.css +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Dialog 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Dialog#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.progressbar.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.progressbar.css deleted file mode 100644 index 6e8718e03f..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.progressbar.css +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Progressbar 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Progressbar#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.resizable.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.resizable.css deleted file mode 100644 index bf037be183..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.resizable.css +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Resizable 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)] - * - * http://docs.jquery.com/UI/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} \ No newline at end of file diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.selectable.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.selectable.css deleted file mode 100644 index 011416b6f7..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.selectable.css +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Selectable 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.slider.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.slider.css deleted file mode 100644 index 3bbfb932db..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.slider.css +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Slider 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Slider#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; } \ No newline at end of file diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.tabs.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.tabs.css deleted file mode 100644 index aa5cd8a546..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.tabs.css +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI Tabs 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Tabs#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.theme.css b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.theme.css deleted file mode 100644 index 0d5b735465..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Content/themes/base/jquery.ui.theme.css +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Note: While Microsoft is not the author of this file, Microsoft is - * offering you a license subject to the terms of the Microsoft Software - * License Terms for Microsoft ASP.NET Model View Controller 3. - * Microsoft reserves all other rights. The notices below are provided - * for informational purposes only and are not the license terms under - * which Microsoft distributed this file. - * - * jQuery UI CSS Framework 1.8.11 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/ - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } -.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } -.ui-widget-content a { color: #222222/*{fcContent}*/; } -.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } -.ui-widget-header a { color: #222222/*{fcHeader}*/; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } -.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-top { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-right { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-left { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all { -moz-border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; border-radius: 4px/*{cornerRadius}*/; } - -/* Overlays */ -.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } -.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } \ No newline at end of file diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Scripts/jquery-ui-1.8.11.js.REMOVED.git-id b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Scripts/jquery-ui-1.8.11.js.REMOVED.git-id deleted file mode 100644 index 281a685181..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Scripts/jquery-ui-1.8.11.js.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -79285779228262f9c021d1ee5a455c6f7f4c1113 \ No newline at end of file diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Scripts/jquery-ui-1.8.11.min.js.REMOVED.git-id b/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Scripts/jquery-ui-1.8.11.min.js.REMOVED.git-id deleted file mode 100644 index ec266dd80e..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/Content/Scripts/jquery-ui-1.8.11.min.js.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -89ff61bcba0fbfbe359c0d3734942d260b702a4b \ No newline at end of file diff --git a/src/Test/packages/jQuery.UI.Combined.1.8.11/jQuery.UI.Combined.1.8.11.nupkg.REMOVED.git-id b/src/Test/packages/jQuery.UI.Combined.1.8.11/jQuery.UI.Combined.1.8.11.nupkg.REMOVED.git-id deleted file mode 100644 index f168d8cf17..0000000000 --- a/src/Test/packages/jQuery.UI.Combined.1.8.11/jQuery.UI.Combined.1.8.11.nupkg.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -fec4bd7ea4b03d4eb775a39e20dc1d4da6a928ae \ No newline at end of file diff --git a/src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate-vsdoc.js b/src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate-vsdoc.js deleted file mode 100644 index 30774ac11f..0000000000 --- a/src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate-vsdoc.js +++ /dev/null @@ -1,1299 +0,0 @@ -/* -* This file has been commented to support Visual Studio Intellisense. -* You should not use this file at runtime inside the browser--it is only -* intended to be used only for design-time IntelliSense. Please use the -* standard jQuery library for all production use. -* -* Comment version: 1.8 -*/ - -/* -* Note: While Microsoft is not the author of this file, Microsoft is -* offering you a license subject to the terms of the Microsoft Software -* License Terms for Microsoft ASP.NET Model View Controller 3. -* Microsoft reserves all other rights. The notices below are provided -* for informational purposes only and are not the license terms under -* which Microsoft distributed this file. -* -* jQuery validation plugin 1.8.0 -* -* http://bassistance.de/jquery-plugins/jquery-plugin-validation/ -* http://docs.jquery.com/Plugins/Validation -* -* Copyright (c) 2006 - 2011 Jörn Zaefferer -* -*/ - -(function($) { - -$.extend($.fn, { - // http://docs.jquery.com/Plugins/Validation/validate - validate: function( options ) { - ///

- /// Validates the selected form. This method sets up event handlers for submit, focus, - /// keyup, blur and click to trigger validation of the entire form or individual - /// elements. Each one can be disabled, see the onxxx options (onsubmit, onfocusout, - /// onkeyup, onclick). focusInvalid focuses elements when submitting a invalid form. - /// - /// - /// A set of key/value pairs that configure the validate. All options are optional. - /// - /// - - // if nothing is selected, return nothing; can't chain anyway - if (!this.length) { - options && options.debug && window.console && console.warn( "nothing selected, can't validate, returning nothing" ); - return; - } - - // check if a validator for this form was already created - var validator = $.data(this[0], 'validator'); - if ( validator ) { - return validator; - } - - validator = new $.validator( options, this[0] ); - $.data(this[0], 'validator', validator); - - if ( validator.settings.onsubmit ) { - - // allow suppresing validation by adding a cancel class to the submit button - this.find("input, button").filter(".cancel").click(function() { - validator.cancelSubmit = true; - }); - - // when a submitHandler is used, capture the submitting button - if (validator.settings.submitHandler) { - this.find("input, button").filter(":submit").click(function() { - validator.submitButton = this; - }); - } - - // validate the form on submit - this.submit( function( event ) { - if ( validator.settings.debug ) - // prevent form submit to be able to see console output - event.preventDefault(); - - function handle() { - if ( validator.settings.submitHandler ) { - if (validator.submitButton) { - // insert a hidden input as a replacement for the missing submit button - var hidden = $("").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm); - } - validator.settings.submitHandler.call( validator, validator.currentForm ); - if (validator.submitButton) { - // and clean up afterwards; thanks to no-block-scope, hidden can be referenced - hidden.remove(); - } - return false; - } - return true; - } - - // prevent submit for invalid forms or custom submit handlers - if ( validator.cancelSubmit ) { - validator.cancelSubmit = false; - return handle(); - } - if ( validator.form() ) { - if ( validator.pendingRequest ) { - validator.formSubmitted = true; - return false; - } - return handle(); - } else { - validator.focusInvalid(); - return false; - } - }); - } - - return validator; - }, - // http://docs.jquery.com/Plugins/Validation/valid - valid: function() { - /// - /// Checks if the selected form is valid or if all selected elements are valid. - /// validate() needs to be called on the form before checking it using this method. - /// - /// - - if ( $(this[0]).is('form')) { - return this.validate().form(); - } else { - var valid = true; - var validator = $(this[0].form).validate(); - this.each(function() { - valid &= validator.element(this); - }); - return valid; - } - }, - // attributes: space seperated list of attributes to retrieve and remove - removeAttrs: function(attributes) { - /// - /// Remove the specified attributes from the first matched element and return them. - /// - /// - /// A space-seperated list of attribute names to remove. - /// - /// - - var result = {}, - $element = this; - $.each(attributes.split(/\s/), function(index, value) { - result[value] = $element.attr(value); - $element.removeAttr(value); - }); - return result; - }, - // http://docs.jquery.com/Plugins/Validation/rules - rules: function(command, argument) { - /// - /// Return the validations rules for the first selected element. - /// - /// - /// Can be either "add" or "remove". - /// - /// - /// A list of rules to add or remove. - /// - /// - - var element = this[0]; - - if (command) { - var settings = $.data(element.form, 'validator').settings; - var staticRules = settings.rules; - var existingRules = $.validator.staticRules(element); - switch(command) { - case "add": - $.extend(existingRules, $.validator.normalizeRule(argument)); - staticRules[element.name] = existingRules; - if (argument.messages) - settings.messages[element.name] = $.extend( settings.messages[element.name], argument.messages ); - break; - case "remove": - if (!argument) { - delete staticRules[element.name]; - return existingRules; - } - var filtered = {}; - $.each(argument.split(/\s/), function(index, method) { - filtered[method] = existingRules[method]; - delete existingRules[method]; - }); - return filtered; - } - } - - var data = $.validator.normalizeRules( - $.extend( - {}, - $.validator.metadataRules(element), - $.validator.classRules(element), - $.validator.attributeRules(element), - $.validator.staticRules(element) - ), element); - - // make sure required is at front - if (data.required) { - var param = data.required; - delete data.required; - data = $.extend({required: param}, data); - } - - return data; - } -}); - -// Custom selectors -$.extend($.expr[":"], { - // http://docs.jquery.com/Plugins/Validation/blank - blank: function(a) {return !$.trim("" + a.value);}, - // http://docs.jquery.com/Plugins/Validation/filled - filled: function(a) {return !!$.trim("" + a.value);}, - // http://docs.jquery.com/Plugins/Validation/unchecked - unchecked: function(a) {return !a.checked;} -}); - -// constructor for validator -$.validator = function( options, form ) { - this.settings = $.extend( true, {}, $.validator.defaults, options ); - this.currentForm = form; - this.init(); -}; - -$.validator.format = function(source, params) { - /// - /// Replaces {n} placeholders with arguments. - /// One or more arguments can be passed, in addition to the string template itself, to insert - /// into the string. - /// - /// - /// The string to format. - /// - /// - /// The first argument to insert, or an array of Strings to insert - /// - /// - - if ( arguments.length == 1 ) - return function() { - var args = $.makeArray(arguments); - args.unshift(source); - return $.validator.format.apply( this, args ); - }; - if ( arguments.length > 2 && params.constructor != Array ) { - params = $.makeArray(arguments).slice(1); - } - if ( params.constructor != Array ) { - params = [ params ]; - } - $.each(params, function(i, n) { - source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n); - }); - return source; -}; - -$.extend($.validator, { - - defaults: { - messages: {}, - groups: {}, - rules: {}, - errorClass: "error", - validClass: "valid", - errorElement: "label", - focusInvalid: true, - errorContainer: $( [] ), - errorLabelContainer: $( [] ), - onsubmit: true, - ignore: [], - ignoreTitle: false, - onfocusin: function(element) { - this.lastActive = element; - - // hide error label and remove error class on focus if enabled - if ( this.settings.focusCleanup && !this.blockFocusCleanup ) { - this.settings.unhighlight && this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); - this.addWrapper(this.errorsFor(element)).hide(); - } - }, - onfocusout: function(element) { - if ( !this.checkable(element) && (element.name in this.submitted || !this.optional(element)) ) { - this.element(element); - } - }, - onkeyup: function(element) { - if ( element.name in this.submitted || element == this.lastElement ) { - this.element(element); - } - }, - onclick: function(element) { - // click on selects, radiobuttons and checkboxes - if ( element.name in this.submitted ) - this.element(element); - // or option elements, check parent select in that case - else if (element.parentNode.name in this.submitted) - this.element(element.parentNode); - }, - highlight: function( element, errorClass, validClass ) { - $(element).addClass(errorClass).removeClass(validClass); - }, - unhighlight: function( element, errorClass, validClass ) { - $(element).removeClass(errorClass).addClass(validClass); - } - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/setDefaults - setDefaults: function(settings) { - /// - /// Modify default settings for validation. - /// Accepts everything that Plugins/Validation/validate accepts. - /// - /// - /// Options to set as default. - /// - /// - - $.extend( $.validator.defaults, settings ); - }, - - messages: { - required: "This field is required.", - remote: "Please fix this field.", - email: "Please enter a valid email address.", - url: "Please enter a valid URL.", - date: "Please enter a valid date.", - dateISO: "Please enter a valid date (ISO).", - number: "Please enter a valid number.", - digits: "Please enter only digits.", - creditcard: "Please enter a valid credit card number.", - equalTo: "Please enter the same value again.", - accept: "Please enter a value with a valid extension.", - maxlength: $.validator.format("Please enter no more than {0} characters."), - minlength: $.validator.format("Please enter at least {0} characters."), - rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), - range: $.validator.format("Please enter a value between {0} and {1}."), - max: $.validator.format("Please enter a value less than or equal to {0}."), - min: $.validator.format("Please enter a value greater than or equal to {0}.") - }, - - autoCreateRanges: false, - - prototype: { - - init: function() { - this.labelContainer = $(this.settings.errorLabelContainer); - this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm); - this.containers = $(this.settings.errorContainer).add( this.settings.errorLabelContainer ); - this.submitted = {}; - this.valueCache = {}; - this.pendingRequest = 0; - this.pending = {}; - this.invalid = {}; - this.reset(); - - var groups = (this.groups = {}); - $.each(this.settings.groups, function(key, value) { - $.each(value.split(/\s/), function(index, name) { - groups[name] = key; - }); - }); - var rules = this.settings.rules; - $.each(rules, function(key, value) { - rules[key] = $.validator.normalizeRule(value); - }); - - function delegate(event) { - var validator = $.data(this[0].form, "validator"), - eventType = "on" + event.type.replace(/^validate/, ""); - validator.settings[eventType] && validator.settings[eventType].call(validator, this[0] ); - } - $(this.currentForm) - .validateDelegate(":text, :password, :file, select, textarea", "focusin focusout keyup", delegate) - .validateDelegate(":radio, :checkbox, select, option", "click", delegate); - - if (this.settings.invalidHandler) - $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler); - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/form - form: function() { - /// - /// Validates the form, returns true if it is valid, false otherwise. - /// This behaves as a normal submit event, but returns the result. - /// - /// - - this.checkForm(); - $.extend(this.submitted, this.errorMap); - this.invalid = $.extend({}, this.errorMap); - if (!this.valid()) - $(this.currentForm).triggerHandler("invalid-form", [this]); - this.showErrors(); - return this.valid(); - }, - - checkForm: function() { - this.prepareForm(); - for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) { - this.check( elements[i] ); - } - return this.valid(); - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/element - element: function( element ) { - /// - /// Validates a single element, returns true if it is valid, false otherwise. - /// This behaves as validation on blur or keyup, but returns the result. - /// - /// - /// An element to validate, must be inside the validated form. - /// - /// - - element = this.clean( element ); - this.lastElement = element; - this.prepareElement( element ); - this.currentElements = $(element); - var result = this.check( element ); - if ( result ) { - delete this.invalid[element.name]; - } else { - this.invalid[element.name] = true; - } - if ( !this.numberOfInvalids() ) { - // Hide error containers on last error - this.toHide = this.toHide.add( this.containers ); - } - this.showErrors(); - return result; - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/showErrors - showErrors: function(errors) { - /// - /// Show the specified messages. - /// Keys have to refer to the names of elements, values are displayed for those elements, using the configured error placement. - /// - /// - /// One or more key/value pairs of input names and messages. - /// - /// - - if(errors) { - // add items to error list and map - $.extend( this.errorMap, errors ); - this.errorList = []; - for ( var name in errors ) { - this.errorList.push({ - message: errors[name], - element: this.findByName(name)[0] - }); - } - // remove items from success list - this.successList = $.grep( this.successList, function(element) { - return !(element.name in errors); - }); - } - this.settings.showErrors - ? this.settings.showErrors.call( this, this.errorMap, this.errorList ) - : this.defaultShowErrors(); - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/resetForm - resetForm: function() { - /// - /// Resets the controlled form. - /// Resets input fields to their original value (requires form plugin), removes classes - /// indicating invalid elements and hides error messages. - /// - /// - - if ( $.fn.resetForm ) - $( this.currentForm ).resetForm(); - this.submitted = {}; - this.prepareForm(); - this.hideErrors(); - this.elements().removeClass( this.settings.errorClass ); - }, - - numberOfInvalids: function() { - /// - /// Returns the number of invalid fields. - /// This depends on the internal validator state. It covers all fields only after - /// validating the complete form (on submit or via $("form").valid()). After validating - /// a single element, only that element is counted. Most useful in combination with the - /// invalidHandler-option. - /// - /// - - return this.objectLength(this.invalid); - }, - - objectLength: function( obj ) { - var count = 0; - for ( var i in obj ) - count++; - return count; - }, - - hideErrors: function() { - this.addWrapper( this.toHide ).hide(); - }, - - valid: function() { - return this.size() == 0; - }, - - size: function() { - return this.errorList.length; - }, - - focusInvalid: function() { - if( this.settings.focusInvalid ) { - try { - $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []) - .filter(":visible") - .focus() - // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find - .trigger("focusin"); - } catch(e) { - // ignore IE throwing errors when focusing hidden elements - } - } - }, - - findLastActive: function() { - var lastActive = this.lastActive; - return lastActive && $.grep(this.errorList, function(n) { - return n.element.name == lastActive.name; - }).length == 1 && lastActive; - }, - - elements: function() { - var validator = this, - rulesCache = {}; - - // select all valid inputs inside the form (no submit or reset buttons) - // workaround $Query([]).add until http://dev.jquery.com/ticket/2114 is solved - return $([]).add(this.currentForm.elements) - .filter(":input") - .not(":submit, :reset, :image, [disabled]") - .not( this.settings.ignore ) - .filter(function() { - !this.name && validator.settings.debug && window.console && console.error( "%o has no name assigned", this); - - // select only the first element for each name, and only those with rules specified - if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) - return false; - - rulesCache[this.name] = true; - return true; - }); - }, - - clean: function( selector ) { - return $( selector )[0]; - }, - - errors: function() { - return $( this.settings.errorElement + "." + this.settings.errorClass, this.errorContext ); - }, - - reset: function() { - this.successList = []; - this.errorList = []; - this.errorMap = {}; - this.toShow = $([]); - this.toHide = $([]); - this.currentElements = $([]); - }, - - prepareForm: function() { - this.reset(); - this.toHide = this.errors().add( this.containers ); - }, - - prepareElement: function( element ) { - this.reset(); - this.toHide = this.errorsFor(element); - }, - - check: function( element ) { - element = this.clean( element ); - - // if radio/checkbox, validate first element in group instead - if (this.checkable(element)) { - element = this.findByName(element.name).not(this.settings.ignore)[0]; - } - - var rules = $(element).rules(); - var dependencyMismatch = false; - for (var method in rules) { - var rule = { method: method, parameters: rules[method] }; - try { - var result = $.validator.methods[method].call( this, element.value.replace(/\r/g, ""), element, rule.parameters ); - - // if a method indicates that the field is optional and therefore valid, - // don't mark it as valid when there are no other rules - if ( result == "dependency-mismatch" ) { - dependencyMismatch = true; - continue; - } - dependencyMismatch = false; - - if ( result == "pending" ) { - this.toHide = this.toHide.not( this.errorsFor(element) ); - return; - } - - if( !result ) { - this.formatAndAdd( element, rule ); - return false; - } - } catch(e) { - this.settings.debug && window.console && console.log("exception occured when checking element " + element.id - + ", check the '" + rule.method + "' method", e); - throw e; - } - } - if (dependencyMismatch) - return; - if ( this.objectLength(rules) ) - this.successList.push(element); - return true; - }, - - // return the custom message for the given element and validation method - // specified in the element's "messages" metadata - customMetaMessage: function(element, method) { - if (!$.metadata) - return; - - var meta = this.settings.meta - ? $(element).metadata()[this.settings.meta] - : $(element).metadata(); - - return meta && meta.messages && meta.messages[method]; - }, - - // return the custom message for the given element name and validation method - customMessage: function( name, method ) { - var m = this.settings.messages[name]; - return m && (m.constructor == String - ? m - : m[method]); - }, - - // return the first defined argument, allowing empty strings - findDefined: function() { - for(var i = 0; i < arguments.length; i++) { - if (arguments[i] !== undefined) - return arguments[i]; - } - return undefined; - }, - - defaultMessage: function( element, method) { - return this.findDefined( - this.customMessage( element.name, method ), - this.customMetaMessage( element, method ), - // title is never undefined, so handle empty string as undefined - !this.settings.ignoreTitle && element.title || undefined, - $.validator.messages[method], - "Warning: No message defined for " + element.name + "" - ); - }, - - formatAndAdd: function( element, rule ) { - var message = this.defaultMessage( element, rule.method ), - theregex = /\$?\{(\d+)\}/g; - if ( typeof message == "function" ) { - message = message.call(this, rule.parameters, element); - } else if (theregex.test(message)) { - message = jQuery.format(message.replace(theregex, '{$1}'), rule.parameters); - } - this.errorList.push({ - message: message, - element: element - }); - - this.errorMap[element.name] = message; - this.submitted[element.name] = message; - }, - - addWrapper: function(toToggle) { - if ( this.settings.wrapper ) - toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) ); - return toToggle; - }, - - defaultShowErrors: function() { - for ( var i = 0; this.errorList[i]; i++ ) { - var error = this.errorList[i]; - this.settings.highlight && this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass ); - this.showLabel( error.element, error.message ); - } - if( this.errorList.length ) { - this.toShow = this.toShow.add( this.containers ); - } - if (this.settings.success) { - for ( var i = 0; this.successList[i]; i++ ) { - this.showLabel( this.successList[i] ); - } - } - if (this.settings.unhighlight) { - for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) { - this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass ); - } - } - this.toHide = this.toHide.not( this.toShow ); - this.hideErrors(); - this.addWrapper( this.toShow ).show(); - }, - - validElements: function() { - return this.currentElements.not(this.invalidElements()); - }, - - invalidElements: function() { - return $(this.errorList).map(function() { - return this.element; - }); - }, - - showLabel: function(element, message) { - var label = this.errorsFor( element ); - if ( label.length ) { - // refresh error/success class - label.removeClass().addClass( this.settings.errorClass ); - - // check if we have a generated label, replace the message then - label.attr("generated") && label.html(message); - } else { - // create label - label = $("<" + this.settings.errorElement + "/>") - .attr({"for": this.idOrName(element), generated: true}) - .addClass(this.settings.errorClass) - .html(message || ""); - if ( this.settings.wrapper ) { - // make sure the element is visible, even in IE - // actually showing the wrapped element is handled elsewhere - label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent(); - } - if ( !this.labelContainer.append(label).length ) - this.settings.errorPlacement - ? this.settings.errorPlacement(label, $(element) ) - : label.insertAfter(element); - } - if ( !message && this.settings.success ) { - label.text(""); - typeof this.settings.success == "string" - ? label.addClass( this.settings.success ) - : this.settings.success( label ); - } - this.toShow = this.toShow.add(label); - }, - - errorsFor: function(element) { - var name = this.idOrName(element); - return this.errors().filter(function() { - return $(this).attr('for') == name; - }); - }, - - idOrName: function(element) { - return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name); - }, - - checkable: function( element ) { - return /radio|checkbox/i.test(element.type); - }, - - findByName: function( name ) { - // select by name and filter by form for performance over form.find("[name=...]") - var form = this.currentForm; - return $(document.getElementsByName(name)).map(function(index, element) { - return element.form == form && element.name == name && element || null; - }); - }, - - getLength: function(value, element) { - switch( element.nodeName.toLowerCase() ) { - case 'select': - return $("option:selected", element).length; - case 'input': - if( this.checkable( element) ) - return this.findByName(element.name).filter(':checked').length; - } - return value.length; - }, - - depend: function(param, element) { - return this.dependTypes[typeof param] - ? this.dependTypes[typeof param](param, element) - : true; - }, - - dependTypes: { - "boolean": function(param, element) { - return param; - }, - "string": function(param, element) { - return !!$(param, element.form).length; - }, - "function": function(param, element) { - return param(element); - } - }, - - optional: function(element) { - return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch"; - }, - - startRequest: function(element) { - if (!this.pending[element.name]) { - this.pendingRequest++; - this.pending[element.name] = true; - } - }, - - stopRequest: function(element, valid) { - this.pendingRequest--; - // sometimes synchronization fails, make sure pendingRequest is never < 0 - if (this.pendingRequest < 0) - this.pendingRequest = 0; - delete this.pending[element.name]; - if ( valid && this.pendingRequest == 0 && this.formSubmitted && this.form() ) { - $(this.currentForm).submit(); - this.formSubmitted = false; - } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) { - $(this.currentForm).triggerHandler("invalid-form", [this]); - this.formSubmitted = false; - } - }, - - previousValue: function(element) { - return $.data(element, "previousValue") || $.data(element, "previousValue", { - old: null, - valid: true, - message: this.defaultMessage( element, "remote" ) - }); - } - - }, - - classRuleSettings: { - required: {required: true}, - email: {email: true}, - url: {url: true}, - date: {date: true}, - dateISO: {dateISO: true}, - dateDE: {dateDE: true}, - number: {number: true}, - numberDE: {numberDE: true}, - digits: {digits: true}, - creditcard: {creditcard: true} - }, - - addClassRules: function(className, rules) { - /// - /// Add a compound class method - useful to refactor common combinations of rules into a single - /// class. - /// - /// - /// The name of the class rule to add - /// - /// - /// The compound rules - /// - /// - - className.constructor == String ? - this.classRuleSettings[className] = rules : - $.extend(this.classRuleSettings, className); - }, - - classRules: function(element) { - var rules = {}; - var classes = $(element).attr('class'); - classes && $.each(classes.split(' '), function() { - if (this in $.validator.classRuleSettings) { - $.extend(rules, $.validator.classRuleSettings[this]); - } - }); - return rules; - }, - - attributeRules: function(element) { - var rules = {}; - var $element = $(element); - - for (var method in $.validator.methods) { - var value = $element.attr(method); - if (value) { - rules[method] = value; - } - } - - // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs - if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) { - delete rules.maxlength; - } - - return rules; - }, - - metadataRules: function(element) { - if (!$.metadata) return {}; - - var meta = $.data(element.form, 'validator').settings.meta; - return meta ? - $(element).metadata()[meta] : - $(element).metadata(); - }, - - staticRules: function(element) { - var rules = {}; - var validator = $.data(element.form, 'validator'); - if (validator.settings.rules) { - rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {}; - } - return rules; - }, - - normalizeRules: function(rules, element) { - // handle dependency check - $.each(rules, function(prop, val) { - // ignore rule when param is explicitly false, eg. required:false - if (val === false) { - delete rules[prop]; - return; - } - if (val.param || val.depends) { - var keepRule = true; - switch (typeof val.depends) { - case "string": - keepRule = !!$(val.depends, element.form).length; - break; - case "function": - keepRule = val.depends.call(element, element); - break; - } - if (keepRule) { - rules[prop] = val.param !== undefined ? val.param : true; - } else { - delete rules[prop]; - } - } - }); - - // evaluate parameters - $.each(rules, function(rule, parameter) { - rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter; - }); - - // clean number parameters - $.each(['minlength', 'maxlength', 'min', 'max'], function() { - if (rules[this]) { - rules[this] = Number(rules[this]); - } - }); - $.each(['rangelength', 'range'], function() { - if (rules[this]) { - rules[this] = [Number(rules[this][0]), Number(rules[this][1])]; - } - }); - - if ($.validator.autoCreateRanges) { - // auto-create ranges - if (rules.min && rules.max) { - rules.range = [rules.min, rules.max]; - delete rules.min; - delete rules.max; - } - if (rules.minlength && rules.maxlength) { - rules.rangelength = [rules.minlength, rules.maxlength]; - delete rules.minlength; - delete rules.maxlength; - } - } - - // To support custom messages in metadata ignore rule methods titled "messages" - if (rules.messages) { - delete rules.messages; - } - - return rules; - }, - - // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true} - normalizeRule: function(data) { - if( typeof data == "string" ) { - var transformed = {}; - $.each(data.split(/\s/), function() { - transformed[this] = true; - }); - data = transformed; - } - return data; - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/addMethod - addMethod: function(name, method, message) { - /// - /// Add a custom validation method. It must consist of a name (must be a legal javascript - /// identifier), a javascript based function and a default string message. - /// - /// - /// The name of the method, used to identify and referencing it, must be a valid javascript - /// identifier - /// - /// - /// The actual method implementation, returning true if an element is valid - /// - /// - /// (Optional) The default message to display for this method. Can be a function created by - /// jQuery.validator.format(value). When undefined, an already existing message is used - /// (handy for localization), otherwise the field-specific messages have to be defined. - /// - /// - - $.validator.methods[name] = method; - $.validator.messages[name] = message != undefined ? message : $.validator.messages[name]; - if (method.length < 3) { - $.validator.addClassRules(name, $.validator.normalizeRule(name)); - } - }, - - methods: { - - // http://docs.jquery.com/Plugins/Validation/Methods/required - required: function(value, element, param) { - // check if dependency is met - if ( !this.depend(param, element) ) - return "dependency-mismatch"; - switch( element.nodeName.toLowerCase() ) { - case 'select': - // could be an array for select-multiple or a string, both are fine this way - var val = $(element).val(); - return val && val.length > 0; - case 'input': - if ( this.checkable(element) ) - return this.getLength(value, element) > 0; - default: - return $.trim(value).length > 0; - } - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/remote - remote: function(value, element, param) { - if ( this.optional(element) ) - return "dependency-mismatch"; - - var previous = this.previousValue(element); - if (!this.settings.messages[element.name] ) - this.settings.messages[element.name] = {}; - previous.originalMessage = this.settings.messages[element.name].remote; - this.settings.messages[element.name].remote = previous.message; - - param = typeof param == "string" && {url:param} || param; - - if ( this.pending[element.name] ) { - return "pending"; - } - if ( previous.old === value ) { - return previous.valid; - } - - previous.old = value; - var validator = this; - this.startRequest(element); - var data = {}; - data[element.name] = value; - $.ajax($.extend(true, { - url: param, - mode: "abort", - port: "validate" + element.name, - dataType: "json", - data: data, - success: function(response) { - validator.settings.messages[element.name].remote = previous.originalMessage; - var valid = response === true; - if ( valid ) { - var submitted = validator.formSubmitted; - validator.prepareElement(element); - validator.formSubmitted = submitted; - validator.successList.push(element); - validator.showErrors(); - } else { - var errors = {}; - var message = response || validator.defaultMessage(element, "remote"); - errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message; - validator.showErrors(errors); - } - previous.valid = valid; - validator.stopRequest(element, valid); - } - }, param)); - return "pending"; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/minlength - minlength: function(value, element, param) { - return this.optional(element) || this.getLength($.trim(value), element) >= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/maxlength - maxlength: function(value, element, param) { - return this.optional(element) || this.getLength($.trim(value), element) <= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/rangelength - rangelength: function(value, element, param) { - var length = this.getLength($.trim(value), element); - return this.optional(element) || ( length >= param[0] && length <= param[1] ); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/min - min: function( value, element, param ) { - return this.optional(element) || value >= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/max - max: function( value, element, param ) { - return this.optional(element) || value <= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/range - range: function( value, element, param ) { - return this.optional(element) || ( value >= param[0] && value <= param[1] ); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/email - email: function(value, element) { - // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ - return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/url - url: function(value, element) { - // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/ - return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/date - date: function(value, element) { - return this.optional(element) || !/Invalid|NaN/.test(new Date(value)); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/dateISO - dateISO: function(value, element) { - return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/number - number: function(value, element) { - return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/digits - digits: function(value, element) { - return this.optional(element) || /^\d+$/.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/creditcard - // based on http://en.wikipedia.org/wiki/Luhn - creditcard: function(value, element) { - if ( this.optional(element) ) - return "dependency-mismatch"; - // accept only digits and dashes - if (/[^0-9-]+/.test(value)) - return false; - var nCheck = 0, - nDigit = 0, - bEven = false; - - value = value.replace(/\D/g, ""); - - for (var n = value.length - 1; n >= 0; n--) { - var cDigit = value.charAt(n); - var nDigit = parseInt(cDigit, 10); - if (bEven) { - if ((nDigit *= 2) > 9) - nDigit -= 9; - } - nCheck += nDigit; - bEven = !bEven; - } - - return (nCheck % 10) == 0; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/accept - accept: function(value, element, param) { - param = typeof param == "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif"; - return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i")); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/equalTo - equalTo: function(value, element, param) { - // bind to the blur event of the target in order to revalidate whenever the target field is updated - // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead - var target = $(param).unbind(".validate-equalTo").bind("blur.validate-equalTo", function() { - $(element).valid(); - }); - return value == target.val(); - } - - } - -}); - -// deprecated, use $.validator.format instead -$.format = $.validator.format; - -})(jQuery); - -// ajax mode: abort -// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); -// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() -;(function($) { - var pendingRequests = {}; - // Use a prefilter if available (1.5+) - if ( $.ajaxPrefilter ) { - $.ajaxPrefilter(function(settings, _, xhr) { - var port = settings.port; - if (settings.mode == "abort") { - if ( pendingRequests[port] ) { - pendingRequests[port].abort(); - } pendingRequests[port] = xhr; - } - }); - } else { - // Proxy ajax - var ajax = $.ajax; - $.ajax = function(settings) { - var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode, - port = ( "port" in settings ? settings : $.ajaxSettings ).port; - if (mode == "abort") { - if ( pendingRequests[port] ) { - pendingRequests[port].abort(); - } - - return (pendingRequests[port] = ajax.apply(this, arguments)); - } - return ajax.apply(this, arguments); - }; - } -})(jQuery); - -// provides cross-browser focusin and focusout events -// IE has native support, in other browsers, use event caputuring (neither bubbles) - -// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation -// handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target -;(function($) { - // only implement if not provided by jQuery core (since 1.4) - // TODO verify if jQuery 1.4's implementation is compatible with older jQuery special-event APIs - if (!jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener) { - $.each({ - focus: 'focusin', - blur: 'focusout' - }, function( original, fix ){ - $.event.special[fix] = { - setup:function() { - this.addEventListener( original, handler, true ); - }, - teardown:function() { - this.removeEventListener( original, handler, true ); - }, - handler: function(e) { - arguments[0] = $.event.fix(e); - arguments[0].type = fix; - return $.event.handle.apply(this, arguments); - } - }; - function handler(e) { - e = $.event.fix(e); - e.type = fix; - return $.event.handle.call(this, e); - } - }); - }; - $.extend($.fn, { - validateDelegate: function(delegate, type, handler) { - return this.bind(type, function(event) { - var target = $(event.target); - if (target.is(delegate)) { - return handler.apply(target, arguments); - } - }); - } - }); -})(jQuery); diff --git a/src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate.js b/src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate.js deleted file mode 100644 index 4ba1ad970c..0000000000 --- a/src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate.js +++ /dev/null @@ -1,1162 +0,0 @@ -/** -* Note: While Microsoft is not the author of this file, Microsoft is -* offering you a license subject to the terms of the Microsoft Software -* License Terms for Microsoft ASP.NET Model View Controller 3. -* Microsoft reserves all other rights. The notices below are provided -* for informational purposes only and are not the license terms under -* which Microsoft distributed this file. -* -* jQuery Validation Plugin 1.8.0 -* -* http://bassistance.de/jquery-plugins/jquery-plugin-validation/ -* http://docs.jquery.com/Plugins/Validation -* -* Copyright (c) 2006 - 2011 Jörn Zaefferer -*/ - -(function($) { - -$.extend($.fn, { - // http://docs.jquery.com/Plugins/Validation/validate - validate: function( options ) { - - // if nothing is selected, return nothing; can't chain anyway - if (!this.length) { - options && options.debug && window.console && console.warn( "nothing selected, can't validate, returning nothing" ); - return; - } - - // check if a validator for this form was already created - var validator = $.data(this[0], 'validator'); - if ( validator ) { - return validator; - } - - validator = new $.validator( options, this[0] ); - $.data(this[0], 'validator', validator); - - if ( validator.settings.onsubmit ) { - - // allow suppresing validation by adding a cancel class to the submit button - this.find("input, button").filter(".cancel").click(function() { - validator.cancelSubmit = true; - }); - - // when a submitHandler is used, capture the submitting button - if (validator.settings.submitHandler) { - this.find("input, button").filter(":submit").click(function() { - validator.submitButton = this; - }); - } - - // validate the form on submit - this.submit( function( event ) { - if ( validator.settings.debug ) - // prevent form submit to be able to see console output - event.preventDefault(); - - function handle() { - if ( validator.settings.submitHandler ) { - if (validator.submitButton) { - // insert a hidden input as a replacement for the missing submit button - var hidden = $("").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm); - } - validator.settings.submitHandler.call( validator, validator.currentForm ); - if (validator.submitButton) { - // and clean up afterwards; thanks to no-block-scope, hidden can be referenced - hidden.remove(); - } - return false; - } - return true; - } - - // prevent submit for invalid forms or custom submit handlers - if ( validator.cancelSubmit ) { - validator.cancelSubmit = false; - return handle(); - } - if ( validator.form() ) { - if ( validator.pendingRequest ) { - validator.formSubmitted = true; - return false; - } - return handle(); - } else { - validator.focusInvalid(); - return false; - } - }); - } - - return validator; - }, - // http://docs.jquery.com/Plugins/Validation/valid - valid: function() { - if ( $(this[0]).is('form')) { - return this.validate().form(); - } else { - var valid = true; - var validator = $(this[0].form).validate(); - this.each(function() { - valid &= validator.element(this); - }); - return valid; - } - }, - // attributes: space seperated list of attributes to retrieve and remove - removeAttrs: function(attributes) { - var result = {}, - $element = this; - $.each(attributes.split(/\s/), function(index, value) { - result[value] = $element.attr(value); - $element.removeAttr(value); - }); - return result; - }, - // http://docs.jquery.com/Plugins/Validation/rules - rules: function(command, argument) { - var element = this[0]; - - if (command) { - var settings = $.data(element.form, 'validator').settings; - var staticRules = settings.rules; - var existingRules = $.validator.staticRules(element); - switch(command) { - case "add": - $.extend(existingRules, $.validator.normalizeRule(argument)); - staticRules[element.name] = existingRules; - if (argument.messages) - settings.messages[element.name] = $.extend( settings.messages[element.name], argument.messages ); - break; - case "remove": - if (!argument) { - delete staticRules[element.name]; - return existingRules; - } - var filtered = {}; - $.each(argument.split(/\s/), function(index, method) { - filtered[method] = existingRules[method]; - delete existingRules[method]; - }); - return filtered; - } - } - - var data = $.validator.normalizeRules( - $.extend( - {}, - $.validator.metadataRules(element), - $.validator.classRules(element), - $.validator.attributeRules(element), - $.validator.staticRules(element) - ), element); - - // make sure required is at front - if (data.required) { - var param = data.required; - delete data.required; - data = $.extend({required: param}, data); - } - - return data; - } -}); - -// Custom selectors -$.extend($.expr[":"], { - // http://docs.jquery.com/Plugins/Validation/blank - blank: function(a) {return !$.trim("" + a.value);}, - // http://docs.jquery.com/Plugins/Validation/filled - filled: function(a) {return !!$.trim("" + a.value);}, - // http://docs.jquery.com/Plugins/Validation/unchecked - unchecked: function(a) {return !a.checked;} -}); - -// constructor for validator -$.validator = function( options, form ) { - this.settings = $.extend( true, {}, $.validator.defaults, options ); - this.currentForm = form; - this.init(); -}; - -$.validator.format = function(source, params) { - if ( arguments.length == 1 ) - return function() { - var args = $.makeArray(arguments); - args.unshift(source); - return $.validator.format.apply( this, args ); - }; - if ( arguments.length > 2 && params.constructor != Array ) { - params = $.makeArray(arguments).slice(1); - } - if ( params.constructor != Array ) { - params = [ params ]; - } - $.each(params, function(i, n) { - source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n); - }); - return source; -}; - -$.extend($.validator, { - - defaults: { - messages: {}, - groups: {}, - rules: {}, - errorClass: "error", - validClass: "valid", - errorElement: "label", - focusInvalid: true, - errorContainer: $( [] ), - errorLabelContainer: $( [] ), - onsubmit: true, - ignore: [], - ignoreTitle: false, - onfocusin: function(element) { - this.lastActive = element; - - // hide error label and remove error class on focus if enabled - if ( this.settings.focusCleanup && !this.blockFocusCleanup ) { - this.settings.unhighlight && this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); - this.addWrapper(this.errorsFor(element)).hide(); - } - }, - onfocusout: function(element) { - if ( !this.checkable(element) && (element.name in this.submitted || !this.optional(element)) ) { - this.element(element); - } - }, - onkeyup: function(element) { - if ( element.name in this.submitted || element == this.lastElement ) { - this.element(element); - } - }, - onclick: function(element) { - // click on selects, radiobuttons and checkboxes - if ( element.name in this.submitted ) - this.element(element); - // or option elements, check parent select in that case - else if (element.parentNode.name in this.submitted) - this.element(element.parentNode); - }, - highlight: function( element, errorClass, validClass ) { - $(element).addClass(errorClass).removeClass(validClass); - }, - unhighlight: function( element, errorClass, validClass ) { - $(element).removeClass(errorClass).addClass(validClass); - } - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/setDefaults - setDefaults: function(settings) { - $.extend( $.validator.defaults, settings ); - }, - - messages: { - required: "This field is required.", - remote: "Please fix this field.", - email: "Please enter a valid email address.", - url: "Please enter a valid URL.", - date: "Please enter a valid date.", - dateISO: "Please enter a valid date (ISO).", - number: "Please enter a valid number.", - digits: "Please enter only digits.", - creditcard: "Please enter a valid credit card number.", - equalTo: "Please enter the same value again.", - accept: "Please enter a value with a valid extension.", - maxlength: $.validator.format("Please enter no more than {0} characters."), - minlength: $.validator.format("Please enter at least {0} characters."), - rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), - range: $.validator.format("Please enter a value between {0} and {1}."), - max: $.validator.format("Please enter a value less than or equal to {0}."), - min: $.validator.format("Please enter a value greater than or equal to {0}.") - }, - - autoCreateRanges: false, - - prototype: { - - init: function() { - this.labelContainer = $(this.settings.errorLabelContainer); - this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm); - this.containers = $(this.settings.errorContainer).add( this.settings.errorLabelContainer ); - this.submitted = {}; - this.valueCache = {}; - this.pendingRequest = 0; - this.pending = {}; - this.invalid = {}; - this.reset(); - - var groups = (this.groups = {}); - $.each(this.settings.groups, function(key, value) { - $.each(value.split(/\s/), function(index, name) { - groups[name] = key; - }); - }); - var rules = this.settings.rules; - $.each(rules, function(key, value) { - rules[key] = $.validator.normalizeRule(value); - }); - - function delegate(event) { - var validator = $.data(this[0].form, "validator"), - eventType = "on" + event.type.replace(/^validate/, ""); - validator.settings[eventType] && validator.settings[eventType].call(validator, this[0] ); - } - $(this.currentForm) - .validateDelegate(":text, :password, :file, select, textarea", "focusin focusout keyup", delegate) - .validateDelegate(":radio, :checkbox, select, option", "click", delegate); - - if (this.settings.invalidHandler) - $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler); - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/form - form: function() { - this.checkForm(); - $.extend(this.submitted, this.errorMap); - this.invalid = $.extend({}, this.errorMap); - if (!this.valid()) - $(this.currentForm).triggerHandler("invalid-form", [this]); - this.showErrors(); - return this.valid(); - }, - - checkForm: function() { - this.prepareForm(); - for ( var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++ ) { - this.check( elements[i] ); - } - return this.valid(); - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/element - element: function( element ) { - element = this.clean( element ); - this.lastElement = element; - this.prepareElement( element ); - this.currentElements = $(element); - var result = this.check( element ); - if ( result ) { - delete this.invalid[element.name]; - } else { - this.invalid[element.name] = true; - } - if ( !this.numberOfInvalids() ) { - // Hide error containers on last error - this.toHide = this.toHide.add( this.containers ); - } - this.showErrors(); - return result; - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/showErrors - showErrors: function(errors) { - if(errors) { - // add items to error list and map - $.extend( this.errorMap, errors ); - this.errorList = []; - for ( var name in errors ) { - this.errorList.push({ - message: errors[name], - element: this.findByName(name)[0] - }); - } - // remove items from success list - this.successList = $.grep( this.successList, function(element) { - return !(element.name in errors); - }); - } - this.settings.showErrors - ? this.settings.showErrors.call( this, this.errorMap, this.errorList ) - : this.defaultShowErrors(); - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/resetForm - resetForm: function() { - if ( $.fn.resetForm ) - $( this.currentForm ).resetForm(); - this.submitted = {}; - this.prepareForm(); - this.hideErrors(); - this.elements().removeClass( this.settings.errorClass ); - }, - - numberOfInvalids: function() { - return this.objectLength(this.invalid); - }, - - objectLength: function( obj ) { - var count = 0; - for ( var i in obj ) - count++; - return count; - }, - - hideErrors: function() { - this.addWrapper( this.toHide ).hide(); - }, - - valid: function() { - return this.size() == 0; - }, - - size: function() { - return this.errorList.length; - }, - - focusInvalid: function() { - if( this.settings.focusInvalid ) { - try { - $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []) - .filter(":visible") - .focus() - // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find - .trigger("focusin"); - } catch(e) { - // ignore IE throwing errors when focusing hidden elements - } - } - }, - - findLastActive: function() { - var lastActive = this.lastActive; - return lastActive && $.grep(this.errorList, function(n) { - return n.element.name == lastActive.name; - }).length == 1 && lastActive; - }, - - elements: function() { - var validator = this, - rulesCache = {}; - - // select all valid inputs inside the form (no submit or reset buttons) - // workaround $Query([]).add until http://dev.jquery.com/ticket/2114 is solved - return $([]).add(this.currentForm.elements) - .filter(":input") - .not(":submit, :reset, :image, [disabled]") - .not( this.settings.ignore ) - .filter(function() { - !this.name && validator.settings.debug && window.console && console.error( "%o has no name assigned", this); - - // select only the first element for each name, and only those with rules specified - if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) - return false; - - rulesCache[this.name] = true; - return true; - }); - }, - - clean: function( selector ) { - return $( selector )[0]; - }, - - errors: function() { - return $( this.settings.errorElement + "." + this.settings.errorClass, this.errorContext ); - }, - - reset: function() { - this.successList = []; - this.errorList = []; - this.errorMap = {}; - this.toShow = $([]); - this.toHide = $([]); - this.currentElements = $([]); - }, - - prepareForm: function() { - this.reset(); - this.toHide = this.errors().add( this.containers ); - }, - - prepareElement: function( element ) { - this.reset(); - this.toHide = this.errorsFor(element); - }, - - check: function( element ) { - element = this.clean( element ); - - // if radio/checkbox, validate first element in group instead - if (this.checkable(element)) { - element = this.findByName( element.name ).not(this.settings.ignore)[0]; - } - - var rules = $(element).rules(); - var dependencyMismatch = false; - for (var method in rules ) { - var rule = { method: method, parameters: rules[method] }; - try { - var result = $.validator.methods[method].call( this, element.value.replace(/\r/g, ""), element, rule.parameters ); - - // if a method indicates that the field is optional and therefore valid, - // don't mark it as valid when there are no other rules - if ( result == "dependency-mismatch" ) { - dependencyMismatch = true; - continue; - } - dependencyMismatch = false; - - if ( result == "pending" ) { - this.toHide = this.toHide.not( this.errorsFor(element) ); - return; - } - - if( !result ) { - this.formatAndAdd( element, rule ); - return false; - } - } catch(e) { - this.settings.debug && window.console && console.log("exception occured when checking element " + element.id - + ", check the '" + rule.method + "' method", e); - throw e; - } - } - if (dependencyMismatch) - return; - if ( this.objectLength(rules) ) - this.successList.push(element); - return true; - }, - - // return the custom message for the given element and validation method - // specified in the element's "messages" metadata - customMetaMessage: function(element, method) { - if (!$.metadata) - return; - - var meta = this.settings.meta - ? $(element).metadata()[this.settings.meta] - : $(element).metadata(); - - return meta && meta.messages && meta.messages[method]; - }, - - // return the custom message for the given element name and validation method - customMessage: function( name, method ) { - var m = this.settings.messages[name]; - return m && (m.constructor == String - ? m - : m[method]); - }, - - // return the first defined argument, allowing empty strings - findDefined: function() { - for(var i = 0; i < arguments.length; i++) { - if (arguments[i] !== undefined) - return arguments[i]; - } - return undefined; - }, - - defaultMessage: function( element, method) { - return this.findDefined( - this.customMessage( element.name, method ), - this.customMetaMessage( element, method ), - // title is never undefined, so handle empty string as undefined - !this.settings.ignoreTitle && element.title || undefined, - $.validator.messages[method], - "Warning: No message defined for " + element.name + "" - ); - }, - - formatAndAdd: function( element, rule ) { - var message = this.defaultMessage( element, rule.method ), - theregex = /\$?\{(\d+)\}/g; - if ( typeof message == "function" ) { - message = message.call(this, rule.parameters, element); - } else if (theregex.test(message)) { - message = jQuery.format(message.replace(theregex, '{$1}'), rule.parameters); - } - this.errorList.push({ - message: message, - element: element - }); - - this.errorMap[element.name] = message; - this.submitted[element.name] = message; - }, - - addWrapper: function(toToggle) { - if ( this.settings.wrapper ) - toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) ); - return toToggle; - }, - - defaultShowErrors: function() { - for ( var i = 0; this.errorList[i]; i++ ) { - var error = this.errorList[i]; - this.settings.highlight && this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass ); - this.showLabel( error.element, error.message ); - } - if( this.errorList.length ) { - this.toShow = this.toShow.add( this.containers ); - } - if (this.settings.success) { - for ( var i = 0; this.successList[i]; i++ ) { - this.showLabel( this.successList[i] ); - } - } - if (this.settings.unhighlight) { - for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) { - this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass ); - } - } - this.toHide = this.toHide.not( this.toShow ); - this.hideErrors(); - this.addWrapper( this.toShow ).show(); - }, - - validElements: function() { - return this.currentElements.not(this.invalidElements()); - }, - - invalidElements: function() { - return $(this.errorList).map(function() { - return this.element; - }); - }, - - showLabel: function(element, message) { - var label = this.errorsFor( element ); - if ( label.length ) { - // refresh error/success class - label.removeClass().addClass( this.settings.errorClass ); - - // check if we have a generated label, replace the message then - label.attr("generated") && label.html(message); - } else { - // create label - label = $("<" + this.settings.errorElement + "/>") - .attr({"for": this.idOrName(element), generated: true}) - .addClass(this.settings.errorClass) - .html(message || ""); - if ( this.settings.wrapper ) { - // make sure the element is visible, even in IE - // actually showing the wrapped element is handled elsewhere - label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent(); - } - if ( !this.labelContainer.append(label).length ) - this.settings.errorPlacement - ? this.settings.errorPlacement(label, $(element) ) - : label.insertAfter(element); - } - if ( !message && this.settings.success ) { - label.text(""); - typeof this.settings.success == "string" - ? label.addClass( this.settings.success ) - : this.settings.success( label ); - } - this.toShow = this.toShow.add(label); - }, - - errorsFor: function(element) { - var name = this.idOrName(element); - return this.errors().filter(function() { - return $(this).attr('for') == name; - }); - }, - - idOrName: function(element) { - return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name); - }, - - checkable: function( element ) { - return /radio|checkbox/i.test(element.type); - }, - - findByName: function( name ) { - // select by name and filter by form for performance over form.find("[name=...]") - var form = this.currentForm; - return $(document.getElementsByName(name)).map(function(index, element) { - return element.form == form && element.name == name && element || null; - }); - }, - - getLength: function(value, element) { - switch( element.nodeName.toLowerCase() ) { - case 'select': - return $("option:selected", element).length; - case 'input': - if( this.checkable( element) ) - return this.findByName(element.name).filter(':checked').length; - } - return value.length; - }, - - depend: function(param, element) { - return this.dependTypes[typeof param] - ? this.dependTypes[typeof param](param, element) - : true; - }, - - dependTypes: { - "boolean": function(param, element) { - return param; - }, - "string": function(param, element) { - return !!$(param, element.form).length; - }, - "function": function(param, element) { - return param(element); - } - }, - - optional: function(element) { - return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch"; - }, - - startRequest: function(element) { - if (!this.pending[element.name]) { - this.pendingRequest++; - this.pending[element.name] = true; - } - }, - - stopRequest: function(element, valid) { - this.pendingRequest--; - // sometimes synchronization fails, make sure pendingRequest is never < 0 - if (this.pendingRequest < 0) - this.pendingRequest = 0; - delete this.pending[element.name]; - if ( valid && this.pendingRequest == 0 && this.formSubmitted && this.form() ) { - $(this.currentForm).submit(); - this.formSubmitted = false; - } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) { - $(this.currentForm).triggerHandler("invalid-form", [this]); - this.formSubmitted = false; - } - }, - - previousValue: function(element) { - return $.data(element, "previousValue") || $.data(element, "previousValue", { - old: null, - valid: true, - message: this.defaultMessage( element, "remote" ) - }); - } - - }, - - classRuleSettings: { - required: {required: true}, - email: {email: true}, - url: {url: true}, - date: {date: true}, - dateISO: {dateISO: true}, - dateDE: {dateDE: true}, - number: {number: true}, - numberDE: {numberDE: true}, - digits: {digits: true}, - creditcard: {creditcard: true} - }, - - addClassRules: function(className, rules) { - className.constructor == String ? - this.classRuleSettings[className] = rules : - $.extend(this.classRuleSettings, className); - }, - - classRules: function(element) { - var rules = {}; - var classes = $(element).attr('class'); - classes && $.each(classes.split(' '), function() { - if (this in $.validator.classRuleSettings) { - $.extend(rules, $.validator.classRuleSettings[this]); - } - }); - return rules; - }, - - attributeRules: function(element) { - var rules = {}; - var $element = $(element); - - for (var method in $.validator.methods) { - var value = $element.attr(method); - if (value) { - rules[method] = value; - } - } - - // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs - if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) { - delete rules.maxlength; - } - - return rules; - }, - - metadataRules: function(element) { - if (!$.metadata) return {}; - - var meta = $.data(element.form, 'validator').settings.meta; - return meta ? - $(element).metadata()[meta] : - $(element).metadata(); - }, - - staticRules: function(element) { - var rules = {}; - var validator = $.data(element.form, 'validator'); - if (validator.settings.rules) { - rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {}; - } - return rules; - }, - - normalizeRules: function(rules, element) { - // handle dependency check - $.each(rules, function(prop, val) { - // ignore rule when param is explicitly false, eg. required:false - if (val === false) { - delete rules[prop]; - return; - } - if (val.param || val.depends) { - var keepRule = true; - switch (typeof val.depends) { - case "string": - keepRule = !!$(val.depends, element.form).length; - break; - case "function": - keepRule = val.depends.call(element, element); - break; - } - if (keepRule) { - rules[prop] = val.param !== undefined ? val.param : true; - } else { - delete rules[prop]; - } - } - }); - - // evaluate parameters - $.each(rules, function(rule, parameter) { - rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter; - }); - - // clean number parameters - $.each(['minlength', 'maxlength', 'min', 'max'], function() { - if (rules[this]) { - rules[this] = Number(rules[this]); - } - }); - $.each(['rangelength', 'range'], function() { - if (rules[this]) { - rules[this] = [Number(rules[this][0]), Number(rules[this][1])]; - } - }); - - if ($.validator.autoCreateRanges) { - // auto-create ranges - if (rules.min && rules.max) { - rules.range = [rules.min, rules.max]; - delete rules.min; - delete rules.max; - } - if (rules.minlength && rules.maxlength) { - rules.rangelength = [rules.minlength, rules.maxlength]; - delete rules.minlength; - delete rules.maxlength; - } - } - - // To support custom messages in metadata ignore rule methods titled "messages" - if (rules.messages) { - delete rules.messages; - } - - return rules; - }, - - // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true} - normalizeRule: function(data) { - if( typeof data == "string" ) { - var transformed = {}; - $.each(data.split(/\s/), function() { - transformed[this] = true; - }); - data = transformed; - } - return data; - }, - - // http://docs.jquery.com/Plugins/Validation/Validator/addMethod - addMethod: function(name, method, message) { - $.validator.methods[name] = method; - $.validator.messages[name] = message != undefined ? message : $.validator.messages[name]; - if (method.length < 3) { - $.validator.addClassRules(name, $.validator.normalizeRule(name)); - } - }, - - methods: { - - // http://docs.jquery.com/Plugins/Validation/Methods/required - required: function(value, element, param) { - // check if dependency is met - if ( !this.depend(param, element) ) - return "dependency-mismatch"; - switch( element.nodeName.toLowerCase() ) { - case 'select': - // could be an array for select-multiple or a string, both are fine this way - var val = $(element).val(); - return val && val.length > 0; - case 'input': - if ( this.checkable(element) ) - return this.getLength(value, element) > 0; - default: - return $.trim(value).length > 0; - } - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/remote - remote: function(value, element, param) { - if ( this.optional(element) ) - return "dependency-mismatch"; - - var previous = this.previousValue(element); - if (!this.settings.messages[element.name] ) - this.settings.messages[element.name] = {}; - previous.originalMessage = this.settings.messages[element.name].remote; - this.settings.messages[element.name].remote = previous.message; - - param = typeof param == "string" && {url:param} || param; - - if ( this.pending[element.name] ) { - return "pending"; - } - if ( previous.old === value ) { - return previous.valid; - } - - previous.old = value; - var validator = this; - this.startRequest(element); - var data = {}; - data[element.name] = value; - $.ajax($.extend(true, { - url: param, - mode: "abort", - port: "validate" + element.name, - dataType: "json", - data: data, - success: function(response) { - validator.settings.messages[element.name].remote = previous.originalMessage; - var valid = response === true; - if ( valid ) { - var submitted = validator.formSubmitted; - validator.prepareElement(element); - validator.formSubmitted = submitted; - validator.successList.push(element); - validator.showErrors(); - } else { - var errors = {}; - var message = response || validator.defaultMessage( element, "remote" ); - errors[element.name] = previous.message = $.isFunction(message) ? message(value) : message; - validator.showErrors(errors); - } - previous.valid = valid; - validator.stopRequest(element, valid); - } - }, param)); - return "pending"; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/minlength - minlength: function(value, element, param) { - return this.optional(element) || this.getLength($.trim(value), element) >= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/maxlength - maxlength: function(value, element, param) { - return this.optional(element) || this.getLength($.trim(value), element) <= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/rangelength - rangelength: function(value, element, param) { - var length = this.getLength($.trim(value), element); - return this.optional(element) || ( length >= param[0] && length <= param[1] ); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/min - min: function( value, element, param ) { - return this.optional(element) || value >= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/max - max: function( value, element, param ) { - return this.optional(element) || value <= param; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/range - range: function( value, element, param ) { - return this.optional(element) || ( value >= param[0] && value <= param[1] ); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/email - email: function(value, element) { - // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ - return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/url - url: function(value, element) { - // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/ - return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/date - date: function(value, element) { - return this.optional(element) || !/Invalid|NaN/.test(new Date(value)); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/dateISO - dateISO: function(value, element) { - return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/number - number: function(value, element) { - return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/digits - digits: function(value, element) { - return this.optional(element) || /^\d+$/.test(value); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/creditcard - // based on http://en.wikipedia.org/wiki/Luhn - creditcard: function(value, element) { - if ( this.optional(element) ) - return "dependency-mismatch"; - // accept only digits and dashes - if (/[^0-9-]+/.test(value)) - return false; - var nCheck = 0, - nDigit = 0, - bEven = false; - - value = value.replace(/\D/g, ""); - - for (var n = value.length - 1; n >= 0; n--) { - var cDigit = value.charAt(n); - var nDigit = parseInt(cDigit, 10); - if (bEven) { - if ((nDigit *= 2) > 9) - nDigit -= 9; - } - nCheck += nDigit; - bEven = !bEven; - } - - return (nCheck % 10) == 0; - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/accept - accept: function(value, element, param) { - param = typeof param == "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif"; - return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i")); - }, - - // http://docs.jquery.com/Plugins/Validation/Methods/equalTo - equalTo: function(value, element, param) { - // bind to the blur event of the target in order to revalidate whenever the target field is updated - // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead - var target = $(param).unbind(".validate-equalTo").bind("blur.validate-equalTo", function() { - $(element).valid(); - }); - return value == target.val(); - } - - } - -}); - -// deprecated, use $.validator.format instead -$.format = $.validator.format; - -})(jQuery); - -// ajax mode: abort -// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); -// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() -;(function($) { - var pendingRequests = {}; - // Use a prefilter if available (1.5+) - if ( $.ajaxPrefilter ) { - $.ajaxPrefilter(function(settings, _, xhr) { - var port = settings.port; - if (settings.mode == "abort") { - if ( pendingRequests[port] ) { - pendingRequests[port].abort(); - } - pendingRequests[port] = xhr; - } - }); - } else { - // Proxy ajax - var ajax = $.ajax; - $.ajax = function(settings) { - var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode, - port = ( "port" in settings ? settings : $.ajaxSettings ).port; - if (mode == "abort") { - if ( pendingRequests[port] ) { - pendingRequests[port].abort(); - } - return (pendingRequests[port] = ajax.apply(this, arguments)); - } - return ajax.apply(this, arguments); - }; - } -})(jQuery); - -// provides cross-browser focusin and focusout events -// IE has native support, in other browsers, use event caputuring (neither bubbles) - -// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation -// handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target -;(function($) { - // only implement if not provided by jQuery core (since 1.4) - // TODO verify if jQuery 1.4's implementation is compatible with older jQuery special-event APIs - if (!jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener) { - $.each({ - focus: 'focusin', - blur: 'focusout' - }, function( original, fix ){ - $.event.special[fix] = { - setup:function() { - this.addEventListener( original, handler, true ); - }, - teardown:function() { - this.removeEventListener( original, handler, true ); - }, - handler: function(e) { - arguments[0] = $.event.fix(e); - arguments[0].type = fix; - return $.event.handle.apply(this, arguments); - } - }; - function handler(e) { - e = $.event.fix(e); - e.type = fix; - return $.event.handle.call(this, e); - } - }); - }; - $.extend($.fn, { - validateDelegate: function(delegate, type, handler) { - return this.bind(type, function(event) { - var target = $(event.target); - if (target.is(delegate)) { - return handler.apply(target, arguments); - } - }); - } - }); -})(jQuery); diff --git a/src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate.min.js b/src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate.min.js deleted file mode 100644 index b07c2ab2da..0000000000 --- a/src/Test/packages/jQuery.Validation.1.8.0/Content/Scripts/jquery.validate.min.js +++ /dev/null @@ -1,53 +0,0 @@ -/** -* Note: While Microsoft is not the author of this file, Microsoft is -* offering you a license subject to the terms of the Microsoft Software -* License Terms for Microsoft ASP.NET Model View Controller 3. -* Microsoft reserves all other rights. The notices below are provided -* for informational purposes only and are not the license terms under -* which Microsoft distributed this file. -* -* jQuery Validation Plugin 1.8.0 -* -* http://bassistance.de/jquery-plugins/jquery-plugin-validation/ -* http://docs.jquery.com/Plugins/Validation -* -* Copyright (c) 2006 - 2011 Jörn Zaefferer -*/ -(function(c){c.extend(c.fn,{validate:function(a){if(this.length){var b=c.data(this[0],"validator");if(b)return b;b=new c.validator(a,this[0]);c.data(this[0],"validator",b);if(b.settings.onsubmit){this.find("input, button").filter(".cancel").click(function(){b.cancelSubmit=true});b.settings.submitHandler&&this.find("input, button").filter(":submit").click(function(){b.submitButton=this});this.submit(function(d){function e(){if(b.settings.submitHandler){if(b.submitButton)var f=c("").attr("name", -b.submitButton.name).val(b.submitButton.value).appendTo(b.currentForm);b.settings.submitHandler.call(b,b.currentForm);b.submitButton&&f.remove();return false}return true}b.settings.debug&&d.preventDefault();if(b.cancelSubmit){b.cancelSubmit=false;return e()}if(b.form()){if(b.pendingRequest){b.formSubmitted=true;return false}return e()}else{b.focusInvalid();return false}})}return b}else a&&a.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing")},valid:function(){if(c(this[0]).is("form"))return this.validate().form(); -else{var a=true,b=c(this[0].form).validate();this.each(function(){a&=b.element(this)});return a}},removeAttrs:function(a){var b={},d=this;c.each(a.split(/\s/),function(e,f){b[f]=d.attr(f);d.removeAttr(f)});return b},rules:function(a,b){var d=this[0];if(a){var e=c.data(d.form,"validator").settings,f=e.rules,g=c.validator.staticRules(d);switch(a){case "add":c.extend(g,c.validator.normalizeRule(b));f[d.name]=g;if(b.messages)e.messages[d.name]=c.extend(e.messages[d.name],b.messages);break;case "remove":if(!b){delete f[d.name]; -return g}var h={};c.each(b.split(/\s/),function(j,i){h[i]=g[i];delete g[i]});return h}}d=c.validator.normalizeRules(c.extend({},c.validator.metadataRules(d),c.validator.classRules(d),c.validator.attributeRules(d),c.validator.staticRules(d)),d);if(d.required){e=d.required;delete d.required;d=c.extend({required:e},d)}return d}});c.extend(c.expr[":"],{blank:function(a){return!c.trim(""+a.value)},filled:function(a){return!!c.trim(""+a.value)},unchecked:function(a){return!a.checked}});c.validator=function(a, -b){this.settings=c.extend(true,{},c.validator.defaults,a);this.currentForm=b;this.init()};c.validator.format=function(a,b){if(arguments.length==1)return function(){var d=c.makeArray(arguments);d.unshift(a);return c.validator.format.apply(this,d)};if(arguments.length>2&&b.constructor!=Array)b=c.makeArray(arguments).slice(1);if(b.constructor!=Array)b=[b];c.each(b,function(d,e){a=a.replace(RegExp("\\{"+d+"\\}","g"),e)});return a};c.extend(c.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error", -validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:c([]),errorLabelContainer:c([]),onsubmit:true,ignore:[],ignoreTitle:false,onfocusin:function(a){this.lastActive=a;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass);this.addWrapper(this.errorsFor(a)).hide()}},onfocusout:function(a){if(!this.checkable(a)&&(a.name in this.submitted||!this.optional(a)))this.element(a)}, -onkeyup:function(a){if(a.name in this.submitted||a==this.lastElement)this.element(a)},onclick:function(a){if(a.name in this.submitted)this.element(a);else a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(a,b,d){c(a).addClass(b).removeClass(d)},unhighlight:function(a,b,d){c(a).removeClass(b).addClass(d)}},setDefaults:function(a){c.extend(c.validator.defaults,a)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.", -url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:c.validator.format("Please enter no more than {0} characters."),minlength:c.validator.format("Please enter at least {0} characters."),rangelength:c.validator.format("Please enter a value between {0} and {1} characters long."), -range:c.validator.format("Please enter a value between {0} and {1}."),max:c.validator.format("Please enter a value less than or equal to {0}."),min:c.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){function a(e){var f=c.data(this[0].form,"validator");e="on"+e.type.replace(/^validate/,"");f.settings[e]&&f.settings[e].call(f,this[0])}this.labelContainer=c(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&& -this.labelContainer||c(this.currentForm);this.containers=c(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var b=this.groups={};c.each(this.settings.groups,function(e,f){c.each(f.split(/\s/),function(g,h){b[h]=e})});var d=this.settings.rules;c.each(d,function(e,f){d[e]=c.validator.normalizeRule(f)});c(this.currentForm).validateDelegate(":text, :password, :file, select, textarea", -"focusin focusout keyup",a).validateDelegate(":radio, :checkbox, select, option","click",a);this.settings.invalidHandler&&c(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){this.checkForm();c.extend(this.submitted,this.errorMap);this.invalid=c.extend({},this.errorMap);this.valid()||c(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]); -return this.valid()},element:function(a){this.lastElement=a=this.clean(a);this.prepareElement(a);this.currentElements=c(a);var b=this.check(a);if(b)delete this.invalid[a.name];else this.invalid[a.name]=true;if(!this.numberOfInvalids())this.toHide=this.toHide.add(this.containers);this.showErrors();return b},showErrors:function(a){if(a){c.extend(this.errorMap,a);this.errorList=[];for(var b in a)this.errorList.push({message:a[b],element:this.findByName(b)[0]});this.successList=c.grep(this.successList, -function(d){return!(d.name in a)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){c.fn.resetForm&&c(this.currentForm).resetForm();this.submitted={};this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b=0,d;for(d in a)b++;return b},hideErrors:function(){this.addWrapper(this.toHide).hide()}, -valid:function(){return this.size()==0},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{c(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(a){}},findLastActive:function(){var a=this.lastActive;return a&&c.grep(this.errorList,function(b){return b.element.name==a.name}).length==1&&a},elements:function(){var a=this,b={};return c([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&& -a.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in b||!a.objectLength(c(this).rules()))return false;return b[this.name]=true})},clean:function(a){return c(a)[0]},errors:function(){return c(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext)},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=c([]);this.toHide=c([]);this.currentElements=c([])},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers)}, -prepareElement:function(a){this.reset();this.toHide=this.errorsFor(a)},check:function(a){a=this.clean(a);if(this.checkable(a))a=this.findByName(a.name).not(this.settings.ignore)[0];var b=c(a).rules(),d=false,e;for(e in b){var f={method:e,parameters:b[e]};try{var g=c.validator.methods[e].call(this,a.value.replace(/\r/g,""),a,f.parameters);if(g=="dependency-mismatch")d=true;else{d=false;if(g=="pending"){this.toHide=this.toHide.not(this.errorsFor(a));return}if(!g){this.formatAndAdd(a,f);return false}}}catch(h){this.settings.debug&& -window.console&&console.log("exception occured when checking element "+a.id+", check the '"+f.method+"' method",h);throw h;}}if(!d){this.objectLength(b)&&this.successList.push(a);return true}},customMetaMessage:function(a,b){if(c.metadata){var d=this.settings.meta?c(a).metadata()[this.settings.meta]:c(a).metadata();return d&&d.messages&&d.messages[b]}},customMessage:function(a,b){var d=this.settings.messages[a];return d&&(d.constructor==String?d:d[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+a.name+"")},formatAndAdd:function(a,b){var d=this.defaultMessage(a,b.method),e=/\$?\{(\d+)\}/g;if(typeof d=="function")d=d.call(this,b.parameters,a);else if(e.test(d))d=jQuery.format(d.replace(e,"{$1}"),b.parameters);this.errorList.push({message:d, -element:a});this.errorMap[a.name]=d;this.submitted[a.name]=d},addWrapper:function(a){if(this.settings.wrapper)a=a.add(a.parent(this.settings.wrapper));return a},defaultShowErrors:function(){for(var a=0;this.errorList[a];a++){var b=this.errorList[a];this.settings.highlight&&this.settings.highlight.call(this,b.element,this.settings.errorClass,this.settings.validClass);this.showLabel(b.element,b.message)}if(this.errorList.length)this.toShow=this.toShow.add(this.containers);if(this.settings.success)for(a= -0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight){a=0;for(b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass)}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return c(this.errorList).map(function(){return this.element})},showLabel:function(a, -b){var d=this.errorsFor(a);if(d.length){d.removeClass().addClass(this.settings.errorClass);d.attr("generated")&&d.html(b)}else{d=c("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(a),generated:true}).addClass(this.settings.errorClass).html(b||"");if(this.settings.wrapper)d=d.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();this.labelContainer.append(d).length||(this.settings.errorPlacement?this.settings.errorPlacement(d,c(a)):d.insertAfter(a))}if(!b&&this.settings.success){d.text(""); -typeof this.settings.success=="string"?d.addClass(this.settings.success):this.settings.success(d)}this.toShow=this.toShow.add(d)},errorsFor:function(a){var b=this.idOrName(a);return this.errors().filter(function(){return c(this).attr("for")==b})},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(a){var b=this.currentForm;return c(document.getElementsByName(a)).map(function(d,e){return e.form== -b&&e.name==a&&e||null})},getLength:function(a,b){switch(b.nodeName.toLowerCase()){case "select":return c("option:selected",b).length;case "input":if(this.checkable(b))return this.findByName(b.name).filter(":checked").length}return a.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):true},dependTypes:{"boolean":function(a){return a},string:function(a,b){return!!c(a,b.form).length},"function":function(a,b){return a(b)}},optional:function(a){return!c.validator.methods.required.call(this, -c.trim(a.value),a)&&"dependency-mismatch"},startRequest:function(a){if(!this.pending[a.name]){this.pendingRequest++;this.pending[a.name]=true}},stopRequest:function(a,b){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[a.name];if(b&&this.pendingRequest==0&&this.formSubmitted&&this.form()){c(this.currentForm).submit();this.formSubmitted=false}else if(!b&&this.pendingRequest==0&&this.formSubmitted){c(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted= -false}},previousValue:function(a){return c.data(a,"previousValue")||c.data(a,"previousValue",{old:null,valid:true,message:this.defaultMessage(a,"remote")})}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(a,b){a.constructor==String?this.classRuleSettings[a]=b:c.extend(this.classRuleSettings, -a)},classRules:function(a){var b={};(a=c(a).attr("class"))&&c.each(a.split(" "),function(){this in c.validator.classRuleSettings&&c.extend(b,c.validator.classRuleSettings[this])});return b},attributeRules:function(a){var b={};a=c(a);for(var d in c.validator.methods){var e=a.attr(d);if(e)b[d]=e}b.maxlength&&/-1|2147483647|524288/.test(b.maxlength)&&delete b.maxlength;return b},metadataRules:function(a){if(!c.metadata)return{};var b=c.data(a.form,"validator").settings.meta;return b?c(a).metadata()[b]: -c(a).metadata()},staticRules:function(a){var b={},d=c.data(a.form,"validator");if(d.settings.rules)b=c.validator.normalizeRule(d.settings.rules[a.name])||{};return b},normalizeRules:function(a,b){c.each(a,function(d,e){if(e===false)delete a[d];else if(e.param||e.depends){var f=true;switch(typeof e.depends){case "string":f=!!c(e.depends,b.form).length;break;case "function":f=e.depends.call(b,b)}if(f)a[d]=e.param!==undefined?e.param:true;else delete a[d]}});c.each(a,function(d,e){a[d]=c.isFunction(e)? -e(b):e});c.each(["minlength","maxlength","min","max"],function(){if(a[this])a[this]=Number(a[this])});c.each(["rangelength","range"],function(){if(a[this])a[this]=[Number(a[this][0]),Number(a[this][1])]});if(c.validator.autoCreateRanges){if(a.min&&a.max){a.range=[a.min,a.max];delete a.min;delete a.max}if(a.minlength&&a.maxlength){a.rangelength=[a.minlength,a.maxlength];delete a.minlength;delete a.maxlength}}a.messages&&delete a.messages;return a},normalizeRule:function(a){if(typeof a=="string"){var b= -{};c.each(a.split(/\s/),function(){b[this]=true});a=b}return a},addMethod:function(a,b,d){c.validator.methods[a]=b;c.validator.messages[a]=d!=undefined?d:c.validator.messages[a];b.length<3&&c.validator.addClassRules(a,c.validator.normalizeRule(a))},methods:{required:function(a,b,d){if(!this.depend(d,b))return"dependency-mismatch";switch(b.nodeName.toLowerCase()){case "select":return(a=c(b).val())&&a.length>0;case "input":if(this.checkable(b))return this.getLength(a,b)>0;default:return c.trim(a).length> -0}},remote:function(a,b,d){if(this.optional(b))return"dependency-mismatch";var e=this.previousValue(b);this.settings.messages[b.name]||(this.settings.messages[b.name]={});e.originalMessage=this.settings.messages[b.name].remote;this.settings.messages[b.name].remote=e.message;d=typeof d=="string"&&{url:d}||d;if(this.pending[b.name])return"pending";if(e.old===a)return e.valid;e.old=a;var f=this;this.startRequest(b);var g={};g[b.name]=a;c.ajax(c.extend(true,{url:d,mode:"abort",port:"validate"+b.name, -dataType:"json",data:g,success:function(h){f.settings.messages[b.name].remote=e.originalMessage;var j=h===true;if(j){var i=f.formSubmitted;f.prepareElement(b);f.formSubmitted=i;f.successList.push(b);f.showErrors()}else{i={};h=h||f.defaultMessage(b,"remote");i[b.name]=e.message=c.isFunction(h)?h(a):h;f.showErrors(i)}e.valid=j;f.stopRequest(b,j)}},d));return"pending"},minlength:function(a,b,d){return this.optional(b)||this.getLength(c.trim(a),b)>=d},maxlength:function(a,b,d){return this.optional(b)|| -this.getLength(c.trim(a),b)<=d},rangelength:function(a,b,d){a=this.getLength(c.trim(a),b);return this.optional(b)||a>=d[0]&&a<=d[1]},min:function(a,b,d){return this.optional(b)||a>=d},max:function(a,b,d){return this.optional(b)||a<=d},range:function(a,b,d){return this.optional(b)||a>=d[0]&&a<=d[1]},email:function(a,b){return this.optional(b)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(a)}, -url:function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)}, -date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a))},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9-]+/.test(a))return false;var d=0,e=0,f=false;a=a.replace(/\D/g,"");for(var g=a.length-1;g>= -0;g--){e=a.charAt(g);e=parseInt(e,10);if(f)if((e*=2)>9)e-=9;d+=e;f=!f}return d%10==0},accept:function(a,b,d){d=typeof d=="string"?d.replace(/,/g,"|"):"png|jpe?g|gif";return this.optional(b)||a.match(RegExp(".("+d+")$","i"))},equalTo:function(a,b,d){d=c(d).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){c(b).valid()});return a==d.val()}}});c.format=c.validator.format})(jQuery); -(function(c){var a={};if(c.ajaxPrefilter)c.ajaxPrefilter(function(d,e,f){e=d.port;if(d.mode=="abort"){a[e]&&a[e].abort();a[e]=f}});else{var b=c.ajax;c.ajax=function(d){var e=("port"in d?d:c.ajaxSettings).port;if(("mode"in d?d:c.ajaxSettings).mode=="abort"){a[e]&&a[e].abort();return a[e]=b.apply(this,arguments)}return b.apply(this,arguments)}}})(jQuery); -(function(c){!jQuery.event.special.focusin&&!jQuery.event.special.focusout&&document.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.handle.call(this,e)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)},handler:function(e){arguments[0]=c.event.fix(e);arguments[0].type=b;return c.event.handle.apply(this,arguments)}}});c.extend(c.fn,{validateDelegate:function(a, -b,d){return this.bind(b,function(e){var f=c(e.target);if(f.is(a))return d.apply(f,arguments)})}})})(jQuery); diff --git a/src/Test/packages/jQuery.Validation.1.8.0/jQuery.Validation.1.8.0.nupkg b/src/Test/packages/jQuery.Validation.1.8.0/jQuery.Validation.1.8.0.nupkg deleted file mode 100644 index 3a381a5b3f15dccc1ac37cbda49c7c409a99b3dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35004 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 i|F2%)pQ|?xMEXxYK~3@A{kvr7z&` - - - \ No newline at end of file