diff --git a/Libraries/7zip/7-zip.chm b/Libraries/7zip/7-zip.chm new file mode 100644 index 000000000..08e4df235 Binary files /dev/null and b/Libraries/7zip/7-zip.chm differ diff --git a/Libraries/7zip/7za.exe b/Libraries/7zip/7za.exe new file mode 100644 index 000000000..7f6bf86bc Binary files /dev/null and b/Libraries/7zip/7za.exe differ diff --git a/Libraries/7zip/license.txt b/Libraries/7zip/license.txt new file mode 100644 index 000000000..530ff3684 --- /dev/null +++ b/Libraries/7zip/license.txt @@ -0,0 +1,29 @@ + 7-Zip Command line version + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + License for use and distribution + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + 7-Zip Copyright (C) 1999-2010 Igor Pavlov. + + 7za.exe is distributed under the GNU LGPL license + + Notes: + You can use 7-Zip on any computer, including a computer in a commercial + organization. You don't need to register or pay for 7-Zip. + + + GNU LGPL information + -------------------- + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You can receive a copy of the GNU Lesser General Public License from + http://www.gnu.org/ diff --git a/Libraries/7zip/readme.txt b/Libraries/7zip/readme.txt new file mode 100644 index 000000000..9ae4222fe --- /dev/null +++ b/Libraries/7zip/readme.txt @@ -0,0 +1,41 @@ +7-Zip Command line version 9.20 +------------------------------- + +7-Zip is a file archiver with high compression ratio. +7za.exe is a standalone command line version of 7-Zip. + +7-Zip Copyright (C) 1999-2010 Igor Pavlov. + +Features of 7za.exe: + - High compression ratio in new 7z format + - Supported formats: + - Packing / unpacking: 7z, xz, ZIP, GZIP, BZIP2 and TAR + - Unpacking only: Z, lzma + - Highest compression ratio for ZIP and GZIP formats. + - Fast compression and decompression + - Strong AES-256 encryption in 7z and ZIP formats. + +7za.exe is a free software distributed under the GNU LGPL. +Read license.txt for more information. + +Source code of 7za.exe and 7-Zip can be found at +http://www.7-zip.org/ + +7za.exe can work in Windows 95/98/ME/NT/2000/2003/2008/XP/Vista/7. + +There is also port of 7za.exe for POSIX systems like Unix (Linux, Solaris, OpenBSD, +FreeBSD, Cygwin, AIX, ...), MacOS X and BeOS: + +http://p7zip.sourceforge.net/ + + + This distributive packet contains the following files: + + 7za.exe - 7-Zip standalone command line version. + readme.txt - This file. + license.txt - License information. + 7-zip.chm - User's Manual in HTML Help format. + + +--- +End of document diff --git a/NzbDrone.Core/Libraries/Castle.Core.dll b/Libraries/Castle.Core.dll similarity index 100% rename from NzbDrone.Core/Libraries/Castle.Core.dll rename to Libraries/Castle.Core.dll diff --git a/NzbDrone.Core/Libraries/Castle.Core.xml b/Libraries/Castle.Core.xml similarity index 100% rename from NzbDrone.Core/Libraries/Castle.Core.xml rename to Libraries/Castle.Core.xml diff --git a/NzbDrone.Core/Libraries/Exceptioneer.WindowsFormsClient.dll b/Libraries/Exceptioneer.WindowsFormsClient.dll similarity index 100% rename from NzbDrone.Core/Libraries/Exceptioneer.WindowsFormsClient.dll rename to Libraries/Exceptioneer.WindowsFormsClient.dll diff --git a/Libraries/MVC3/Microsoft.Web.Infrastructure.dll b/Libraries/MVC3/Microsoft.Web.Infrastructure.dll new file mode 100644 index 000000000..85f1138c5 Binary files /dev/null and b/Libraries/MVC3/Microsoft.Web.Infrastructure.dll differ diff --git a/Libraries/MVC3/Microsoft.Web.Infrastructure.xml b/Libraries/MVC3/Microsoft.Web.Infrastructure.xml new file mode 100644 index 000000000..ce9e3f423 --- /dev/null +++ b/Libraries/MVC3/Microsoft.Web.Infrastructure.xml @@ -0,0 +1,19 @@ + + + + Microsoft.Web.Infrastructure + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Libraries/MVC3/System.Web.Helpers.dll b/Libraries/MVC3/System.Web.Helpers.dll new file mode 100644 index 000000000..d24cea4eb Binary files /dev/null and b/Libraries/MVC3/System.Web.Helpers.dll differ diff --git a/Libraries/MVC3/System.Web.Helpers.xml b/Libraries/MVC3/System.Web.Helpers.xml new file mode 100644 index 000000000..6ae0d9919 --- /dev/null +++ b/Libraries/MVC3/System.Web.Helpers.xml @@ -0,0 +1,636 @@ + + + + System.Web.Helpers + + + + Displays data as a chart image. + + + Initializes a new instance of the class. + The width, in pixels, of the complete chart image. + The height, in pixels, of the complete chart image. + (Optional) The template (theme) to apply to the chart. + (Optional) The template (theme) path and file name to apply to the chart. + + + Adds a legend to the chart. + The chart. + The text of the legend title. + The unique name of the legend. + + + Provides data points and series attributes for the chart. + The chart. + The unique name of the series. + The chart type of a series. + The name of the chart area used to plot the data series. + The axis label text for the series. + The name of the series associated with the legend. + A value that determines the granularity to display data point markers. + The values to plot along the X-axis. + The name of the field for X-values. + The values to plot along the Y-axis. + A comma-separated list of name or names of the field or fields for Y-values. + + + Adds a title to the chart. + The chart. + The title text. + The unique name of the title. + + + Databinds a chart to a data table, with one series created per unique value in a column. + The chart. + The chart data source. + The name of the column used to group data into the series. + The name of the column for X-values. + A comma-separated list of names of the columns for Y-values. + Other data point properties that can be bound. + The order in which the series will be sorted. The default is "Ascending". + + + Creates and binds series data to the specified data table, and optionally populates multiple Y-values. + The chart. + The chart data source. + The name of the table column used for the series X-values. + + + Gets or sets the name of the file that contains the chart image. + The name of the file. + + + Returns a chart image as a byte array. + The chart. + The image format. The default is "jpeg". + + + Retrieves the specified chart from cache. + The chart. + The identifier of the cache item that contains the chart to retrieve. The key is set when you call the method. + + + Gets or sets the height of the chart image. + The chart height. + + + Saves a chart image to the specified path and file name. + The chart. + The location and name of the image file. + The image file format. + + + Saves a chart in the system cache. + Returns . + The identifier for the chart in the cache. + The number of minutes to keep the chart image in the cache. The default is 20. + true to indicate that the chart cache item's expiration is reset each time the item is accessed, or false to indicate that the expiration is based on an absolute interval since the time that the item was added to the cache. + + + Saves a chart as an XML file. + The chart. + The path and filename to save the XML file to. + + + Sets values for the horizontal axis. + The chart. + The title of the horizontal axis. + The minimum value for the horizontal axis. + The maximum value for the horizontal axis. + + + Sets values for the vertical axis. + The chart. + The title of the vertical axis. + The minimum value for the vertical axis. + The maximum value for the vertical axis. + + + Creates a object based on the current object. + The chart. + The format of the image to save the object as. The default is jpeg. + + + Gets or set the width of the chart image. + The chart width. + + + Renders the output of the object as an image. + The chart. + The format of the image. The default is "jpeg". + + + Renders the output of a object that has been cached as an image. + The chart. + The identifier for the chart in the cache. + The format of the image. The default is "jpeg". + + + + + + + + + Provides methods to encrypt passwords or other sensitive data. + + + + Returns a hash value for the specified byte array. + The hash value for . + The data to provide a hash value for. + The algorithm used to generate the hash value. The default is "sha256". + + + Returns a hash value for the specified string. + The hash value for . + The data to provide a hash value for. + The algorithm used to generate the hash value. The default is "sha256". + + + Returns a hash value for the specified password. + The hash value for . + The password to generate a hash value for. + + + + + + + + + + + + + + + + + + + + + + + + Provides methods for working with data in JavaScript Object Notation (JSON) format. + + + Converts data in JavaScript Object Notation (JSON) format into the specified strongly typed data list. + The JSON-encoded data converted to a strongly typed list. + The JSON-encoded string to convert. + The type of the strongly typed list to convert JSON data into. + + + Converts data in JavaScript Object Notation (JSON) format into a data object. + The JSON-encoded data converted to a data object. + The JSON-encoded string to convert. + + + Converts data in JavaScript Object Notation (JSON) format into a data object of a specified type. + The JSON-encoded data converted to the specified type. + The JSON-encoded string to convert. + The type that the data should be converted to. + + + Converts a data object to a string that is in the JavaScript Object Notation (JSON) format. + Returns a string of data converted to the JSON format. + The data object to convert. + + + Converts a data object to a string in JavaScript Object Notation (JSON) format and adds the string to the specified object. + The data object to convert. + The object that contains the converted JSON data. + + + Renders the property names and values of the specified object and any subobjects that it references. + + + Renders the property names and values of the specified object and any subobjects that it references. + For a simple variable, returns the type and the value. For an object that contains multiple items, returns the property name or key, and the value for each property. + The object to render information for. + Optional. Specifies the depth of nested subobjects to render information for. The default is 10. + Optional. Specifies the maximum number of characters that the method displays for object values. The default is 1000. + + is less than zero. + + is less than or equal to zero. + + + Displays information about the Web server environment that hosts the current Web page. + + + Displays information about the Web server environment. + A string of name-value pairs that contains information about the Web server. + + + Specifies the direction in which to sort a list of items. + + + Sort from smallest to largest. For example, from A to Z. + + + Sort from largest to smallest. For example, from Z to A. + + + Provides a cache to store frequently accessed data. + + + Retrieves the specified item from the object. + The item retrieved from the cache, or null if the item is not found. + The identifier for the cache item to retrieve. + + + Removes the specified item from the object. + The item removed from the object. If the item is not found, returns null. + The identifier for the cache item to remove. + + + Inserts an item into the object. + The identifier for the cache item. + The data to insert into the cache. + Optional. The number of minutes to keep an item in the cache. The default is 20. + Optional. true to indicate that the cache item expiration is reset each time the item is accessed, or false to indicate that the expiration is based on an absolute interval since the time that the item was added to the cache. The default is true, which means that, if you also use the default value for the parameter, a cached item expires 20 minutes after it was last accessed. + The value of is less than or equal to zero. + Sliding expiration is enabled and the value of is greater than a year. + + + Displays data using an HTML table. + + + Initializes a new instance of the class. + The data to display. + A collection of data source column names. By default, this value is auto-populated. + The column name that is used to sort the table by default. + The number of rows that are displayed when paging is displayed. The default is 10. + true to specify that the object can display paging; otherwise false. The default is true. + true to specify that the object can sort based on column; otherwise, false. The default is true. + The ID of the HTML element in the instance that is used for Ajax support in order in order to make partial page updates. + The JavaScript function to call after the HTML element specified by the property has been updated. + The prefix for query-string fields. This value is used in order to support multiple T:System.Web.Helpers.WebGrid objects on the same page. + The query-string field name for the page number. + The query-string field name for the selected row number. + The query-string field name for the sort column. + The query-string field name for the sort direction. + + + Gets the name of the JavaScript function to call after the HTML element specified by the property has been updated. + The element name. + + + Gets the ID of the HTML element in the object that is used for Ajax support in order to make partial-page updates. + The element ID. + + + Binds the specified data to the object. + The populated object. + The data to display. + The names of the columns to bind. + true to enable sorting and paging; otherwise, false. + The number of rows to display for each page of data. + + + Adds a column object to the object. + A column object. + The name of the column. + The header of the column. + A string that specifies the formatting of the column. + A string that specifies the style of the column. + true if the column can be sorted; otherwise, false. The default is true. + + + Gets a collection of column names from the data source. + The collection of column names. + + + Adds a collection of column objects to the object. + A set of columns. + The columns to add. + + + Gets the prefix for query-string fields of a page. + The prefix for query-string fields. + + + Converts a URL into a jQuery Ajax call. + A script used as a jQuery Ajax call. + The URL to convert. + + + Returns HTML that is used to render the instance. + The HTML that represents the populated object. + The CSS class to use to style the table. + The CSS class to use to style the header row of the table. + The CSS class to use to style the footer row of the table. + The CSS class to use to style each row of the table. + The CSS class to use to style the even rows of the table. + The CSS class to use to style the selected rows of the table. + The caption for the table. + true to specify that the header of the table is displayed; otherwise, false. The default is true. + true to specify that the table can add empty rows to ensure the row count is maintained; otherise, false. The default is false. + The text that is used to populate empty rows. The parameter must be set to true to display this value. + The column model for customizing column rendering. + The columns to exclude when auto-populating columns. + A value specifying the mode for rendering paging support. + The text for the link to the first page. + The text for the link to the previous page. + The text for the link to the next page. + The text for the link to the last page. + The number of numeric links to display. + An object that contains the HTML attributes to set for the element. + + + Returns the URL of the page that the object will display based on the specified page index. + The URL of the page that the object will display. + The index of the page to display. + + + Returns a URL used to display the sorted data in the object based on a column name. + The url used to display the sorted data. + The name of the column to sort the grid by. + + + Gets a value that determines whether any row in the object has been selected. + true if a row has been selected; otherwise, false. + + + Gets the number of pages that the object has available to display. + The page count. + + + Gets the query string field name for the page number of the WebGrid. + The column name. + + + Gets or sets the index of the current page to display. + The current page index. + + + Returns the HTML that is required to provide paging support. + A value that specifies paging support. + The text for the link to the first page. + The text for the link to the previous page. + The text for the link to the next page. + The test for the link to the last page. + The number of numeric links to display. + + + Gets a list of rows that are in the object. + The collection of rows. + + + Gets the number of rows to display on each page. + The row count for a page. + + + Gets or sets the index of the selected row. + The row index. + + + Gets the selected row of the object. + The selected row. + + + Gets the query string field name for the selected row number of the WebGrid. + The name of the selected column. + + + Gets or sets the name of the column that is used to sort the object. + The name of the sort column. + + + Gets or sets the direction that the object is sorted. + The sort direction. + + + Gets the query string field name for the sort direction of the WebGrid. + The column prefix and name. + + + Gets the query string field name for the sort column of the WebGrid. + The sort column name. + + + Returns the HTML that is used to render the instance that supports paging. + The HTML that represents the populated object. + The CSS class to use to style the table. + The CSS class to use to style the header row. + The CSS class to use to style the footer row. + The CSS class to use to style odd rows. + The CSS class to use to style even rows. + The CSS class used to use to style the selected row. + The caption for the table. + true to specify that the header of the table is displayed; otherwise, false. The default is true. + true to specify that the table can add empty rows to ensure the row count is maintained; otherise, false. The default is false. + The text that is used to populate empty rows. The parameter must be set to true to display this value. + The column model that is used to customize column rendering. + The columns to exclude when auto-populating columns. + The table footer template. + An object that contains the HTML attributes to set for the element. + + + Gets the total row count for the object. + The row count. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents an object that lets you display and manage images in in a Web page. + + + Initializes a new instance of the class using a byte array to represent the image. + The image. + + + Initializes a new instance of the class using a stream to represent the image. + The image. + + + Initializes a new instance of the class using a path to represent the image location. + The path of the file that contains the image. + + + Adds a watermark image to the image using the specified image file. + The image. + The path of a file that contains the image. + The width, in pixels, of the watermark image. + The height, in pixels, of the watermark image. + The horizontal alignment for watermark image. Values can be left, right, or center. + The vertical alignment for the watermark image. Values can be top, bottom, or middle. + The opacity for the watermark image, specified as a value between 0 and 100. + The size, in pixels, of the padding around the watermark image. + + + Adds a watermark image to the image using the specified object. + The image. + A object. + The width, in pixels, of the watermark image. + The height, in pixels, of the watermark image. + The horizontal alignment for watermark image. Values can be left, right, or center. + The vertical alignment for the watermark image. Values can be top, bottom, or middle. + The opacity for the watermark image specifies as a value between 0 and 100. + The size, in pixels, of the padding around the watermark image. + + + Adds watermark text to the image. + The image. + The text to use as a watermark. + The color of the watermark text. + The font size of the watermark text. + The font style of the watermark text. + The font type of the watermark text. + The horizontal alignment for watermark text. Values can be left, right, or center. + The vertical alignment for the watermark text. Values can be top, bottom, or middle. + The text opacity for the watermark text specified as a value between 0 and 100. + The size, in pixels, of the padding around the watermark text. + + + Copies the object. + The image. + + + Crops an image. + The cropped image. + The number of pixels to remove from the top. + The number of pixels to remove from the left. + The number of pixels to remove from the bottom. + The number of pixels to remove from the right. + + + Gets or sets the name of the file used by the object. + The file name + + + Flips an image horizontally. + The flipped image. + + + Flips an image vertically. + The flipped image. + + + Returns the image as a byte array. + The image. + The of the object. + + + Returns an image that has been uploaded using the browser. + The image. + (Optional) The name of the file that has been posted. + + + Gets the height, in pixels, of the image. + The height. + + + Gets the format of the image (for example, JPEG or PNG). + The format. + + + Resizes an image. + The resized image. + The width, in pixels, of the object. + The height, in pixels, of the object. + true to preserve the aspect ratio of the image; otherwise, false. + true to prevent the enlargement of the image; otherwise, false. + + + Rotates an image to the left. + The rotated image. + + + Rotates an image to the right. + The rotated image. + + + Saves the image using the specified file name. + The image. + The path to save the image to. + The format used when saving the image file. + true to force that the correct file extension is used for the format specified in ; otherwise, false. + + + Gets the width, in pixels, of the image. + The width. + + + Renders an image to the browser to be displayed. + The image. + (Optional) The file format. + + + Provides a way to construct and send an email message using Simple Mail Transfer Protocol (SMTP). + + + Gets or sets whether Secure Sockets Layer (SSL) is used to encrypt the connection when sending email. + true if SSL is used to encrypt the connection; otherwise, false. + + + Gets or sets the email address of the sender. + The email address of the sender. + + + Gets or sets the sender’s password based on the email account used. + The password of the sender. + + + Sends the specified message to an SMTP server for delivery. + The recipients of this email message. Multiple recipients can be specified by separating them using a semicolon (;). + The subject line for the email message. + The body of the email message. If is true, HTML in the body is interpreted as markup. + The email address of the message sender. + The carbon copy (CC) recipients for the email message, if any. + A collection of file names that specifies the files to attach to the email message. + true to specify that the email message body is in HTML format; false to indicate that the body is in plain-text format. + A collection of headers that are sent with this email message. + + + Gets or sets the port used for SMTP transactions. + The port used for SMTP transactions. + + + Gets or sets the SMTP server used to transmit the email message. + The SMTP server. + + + Gets or sets a value that indicates whether the default credentials are sent with the requests. + true if credentials are sent with the email message; otherwise, false. + + + Gets or sets the name of email account name used to send email. + The name of the user. + + + \ No newline at end of file diff --git a/Libraries/MVC3/System.Web.Mvc.dll b/Libraries/MVC3/System.Web.Mvc.dll new file mode 100644 index 000000000..eed0d994a Binary files /dev/null and b/Libraries/MVC3/System.Web.Mvc.dll differ diff --git a/Libraries/MVC3/System.Web.Mvc.xml b/Libraries/MVC3/System.Web.Mvc.xml new file mode 100644 index 000000000..b2b677d8b --- /dev/null +++ b/Libraries/MVC3/System.Web.Mvc.xml @@ -0,0 +1,9395 @@ + + + + System.Web.Mvc + + + + Represents an attribute that specifies which HTTP verbs an action method will respond to. + + + Initializes a new instance of the class by using a list of HTTP verbs that the action method will respond to. + The HTTP verbs that the action method will respond to. + The parameter is null or zero length. + + + Initializes a new instance of the class using the HTTP verbs that the action method will respond to. + The HTTP verbs that the action method will respond to. + + + Determines whether the specified method information is valid for the specified controller context. + true if the method information is valid; otherwise, false. + The controller context. + The method information. + The parameter is null. + + + Gets or sets the list of HTTP verbs that the action method will respond to. + The list of HTTP verbs that the action method will respond to. + + + Provides information about an action method, such as its name, controller, parameters, attributes, and filters. + + + Initializes a new instance of the class. + + + Gets the name of the action method. + The name of the action method. + + + Gets the controller descriptor. + The controller descriptor. + + + Executes the action method by using the specified parameters and controller context. + The result of executing the action method. + The controller context. + The parameters of the action method. + + + Returns an array of custom attributes that are defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + + + Returns an array of custom attributes that are defined for this member, identified by type. + An array of custom attributes, or an empty array if no custom attributes of the specified type exist. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + The parameter is null. + + + Returns the filters that are associated with this action method. + The filters that are associated with this action method. + + + Returns the parameters of the action method. + The parameters of the action method. + + + Returns the action-method selectors. + The action-method selectors. + + + Determines whether one or more instances of the specified attribute type are defined for this member. + true if is defined for this member; otherwise, false. + The type of the custom attribute. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The parameter is null. + + + Gets the unique ID for the action descriptor using lazy initialization. + The unique ID. + + + Provides the context for the ActionExecuted method of the class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The controller context. + The action method descriptor. + true if the action is canceled. + The exception object. + The parameter is null. + + + Gets or sets the action descriptor. + The action descriptor. + + + Gets or sets a value that indicates that this object is canceled. + true if the context canceled; otherwise, false. + + + Gets or sets the exception that occurred during the execution of the action method, if any. + The exception that occurred during the execution of the action method. + + + Gets or sets a value that indicates whether the exception is handled. + true if the exception is handled; otherwise, false. + + + Gets or sets the result returned by the action method. + The result returned by the action method. + + + Provides the context for the ActionExecuting method of the class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified controller context, action descriptor, and action-method parameters. + The controller context. + The action descriptor. + The action-method parameters. + The or parameter is null. + + + Gets or sets the action descriptor. + The action descriptor. + + + Gets or sets the action-method parameters. + The action-method parameters. + + + Gets or sets the result that is returned by the action method. + The result that is returned by the action method. + + + Represents the base class for filter attributes. + + + Initializes a new instance of the class. + + + Called by the ASP.NET MVC framework after the action method executes. + The filter context. + + + Called by the ASP.NET MVC framework before the action method executes. + The filter context. + + + Called by the ASP.NET MVC framework after the action result executes. + The filter context. + + + Called by the ASP.NET MVC framework before the action result executes. + The filter context. + + + Represents an attribute that is used to influence the selection of an action method. + + + Initializes a new instance of the class. + + + Determines whether the action method selection is valid for the specified controller context. + true if the action method selection is valid for the specified controller context; otherwise, false. + The controller context. + Information about the action method. + + + Represents an attribute that is used for the name of an action. + + + Initializes a new instance of the class. + Name of the action. + The parameter is null or empty. + + + Determines whether the action name is valid within the specified controller context. + true if the action name is valid within the specified controller context; otherwise, false. + The controller context. + The name of the action. + Information about the action method. + + + Gets or sets the name of the action. + The name of the action. + + + Represents an attribute that affects the selection of an action method. + + + Initializes a new instance of the class. + + + Determines whether the action name is valid in the specified controller context. + true if the action name is valid in the specified controller context; otherwise, false. + The controller context. + The name of the action. + Information about the action method. + + + Encapsulates the result of an action method and is used to perform a framework-level operation on behalf of the action method. + + + Initializes a new instance of the class. + + + Enables processing of the result of an action method by a custom type that inherits from the class. + The context in which the result is executed. The context information includes the controller, HTTP content, request context, and route data. + + + Represents a delegate that contains the logic for selecting an action method. + true if an action method was successfully selected; otherwise, false. + The current HTTP request context. + + + Provides a class that implements the interface in order to support additional metadata. + + + Initializes a new instance of the class. + The name of the model metadata. + The value of the model metadata. + + + Gets the name of the additional metadata attribute. + The name of the of the additional metadata attribute. + + + Provides metadata to the model metadata creation process. + + + Gets the type of the of the additional metadata attribute. + The type of the of the additional metadata attribute. + + + Gets the value of the of the additional metadata attribute. + The value of the of the additional metadata attribute. + + + Represents support for rendering HTML in AJAX scenarios within a view. + + + Initializes a new instance of the class using the specified view context and view data container. + The view context. + The view data container. + One or both of the parameters is null. + + + Initializes a new instance of the class by using the specified view context, view data container, and route collection. + The view context. + The view data container. + The URL route collection. + One or more of the parameters is null. + + + Gets or sets the root path for the location to use for globalization script files. + The location of the folder where globalization script files are stored. The default location is "~/Scripts/Globalization". + + + Serializes the specified message and returns the resulting JSON-formatted string. + The serialized message as a JSON-formatted string. + The message to serialize. + + + Gets the collection of URL routes for the application. + The collection of routes for the application. + + + Gets the context information about the view. + The context of the view. + + + Gets the current view data dictionary. + The view data dictionary. + + + Gets the view data container. + The view data container. + + + Represents support for rendering HTML in AJAX scenarios within a strongly typed view. + The type of the model. + + + Initializes a new instance of the class by using the specified view context and view data container. + The view context. + The view data container. + + + Initializes a new instance of the class by using the specified view context, view data container, and URL route collection. + The view context. + The view data container. + The URL route collection. + + + Gets the strongly typed version of the view data dictionary. + The strongly typed data dictionary of the view. + + + Represents a class that extends the class by adding the ability to determine whether an HTTP request is an AJAX request. + + + + Allows a request to include HTML markup during model binding by skipping request validation for the property. (It is strongly recommended that your application explicitly check all models where you disable request validation in order to prevent script exploits.) + + + Initializes a new instance of the class. + + + This method supports the ASP.NET MVC validation infrastructure and is not intended to be used directly from your code. + The model metadata. + + + Provides a way to register one or more areas in an ASP.NET MVC application. + + + Initializes a new instance of the class. + + + Gets the name of the area to register. + The name of the area to register. + + + Registers all areas in an ASP.NET MVC application. + + + Registers all areas in an ASP.NET MVC application by using the specified user-defined information. + An object that contains user-defined information to pass to the area. + + + Registers an area in an ASP.NET MVC application using the specified area's context information. + Encapsulates the information that is required in order to register the area. + + + Encapsulates the information that is required in order to register an area within an ASP.NET MVC application. + + + Initializes a new instance of the class using the specified area name and routes collection. + The name of the area to register. + The collection of routes for the application. + + + Initializes a new instance of the class using the specified area name, routes collection, and user-defined data. + The name of the area to register. + The collection of routes for the application. + An object that contains user-defined information to pass to the area. + + + Gets the name of the area to register. + The name of the area to register. + + + Maps the specified URL route and associates it with the area that is specified by the property. + A reference to the mapped route. + The name of the route. + The URL pattern for the route. + The parameter is null. + + + Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values. + A reference to the mapped route. + The name of the route. + The URL pattern for the route. + An object that contains default route values. + The parameter is null. + + + Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values and constraint. + A reference to the mapped route. + The name of the route. + The URL pattern for the route. + An object that contains default route values. + A set of expressions that specify valid values for a URL parameter. + The parameter is null. + + + Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values, constraints, and namespaces. + A reference to the mapped route. + The name of the route. + The URL pattern for the route. + An object that contains default route values. + A set of expressions that specify valid values for a URL parameter. + An enumerable set of namespaces for the application. + The parameter is null. + + + Maps the specified URL route and associates it with the area that is specified by the property, using the specified route default values and namespaces. + A reference to the mapped route. + The name of the route. + The URL pattern for the route. + An object that contains default route values. + An enumerable set of namespaces for the application. + The parameter is null. + + + Maps the specified URL route and associates it with the area that is specified by the property, using the specified namespaces. + A reference to the mapped route. + The name of the route. + The URL pattern for the route. + An enumerable set of namespaces for the application. + The parameter is null. + + + Gets the namespaces for the application. + An enumerable set of namespaces for the application. + + + Gets a collection of defined routes for the application. + A collection of defined routes for the application. + + + Gets an object that contains user-defined information to pass to the area. + An object that contains user-defined information to pass to the area. + + + Provides an abstract class to implement a metadata provider. + + + Called from constructors in a derived class to initialize the class. + + + When overridden in a derived class, creates the model metadata for the property. + The model metadata for the property. + The set of attributes. + The type of the container. + The model accessor. + The type of the model. + The name of the property. + + + Gets a list of attributes. + A list of attributes. + The type of the container. + The property descriptor. + The attribute container. + + + Returns a list of properties for the model. + A list of properties for the model. + The model container. + The type of the container. + + + Returns the metadata for the specified property using the container type and property descriptor. + The metadata for the specified property using the container type and property descriptor. + The model accessor. + The type of the container. + The property descriptor + + + Returns the metadata for the specified property using the container type and property name. + The metadata for the specified property using the container type and property name. + The model accessor. + The type of the container. + The name of the property. + + + Returns the metadata for the specified property using the type of the model. + The metadata for the specified property using the type of the model. + The model accessor. + The type of the model. + + + Returns the type descriptor from the specified type. + The type descriptor. + The type. + + + Provides an abstract class for classes that implement a validation provider. + + + Called from constructors in derived classes to initialize the class. + + + Gets a type descriptor for the specified type. + A type descriptor for the specified type. + The type of the validation provider. + + + Gets the validators for the model using the metadata and controller context. + The validators for the model. + The metadata. + The controller context. + + + Gets the validators for the model using the metadata, the controller context, and a list of attributes. + The validators for the model. + The metadata. + The controller context. + The list of attributes. + + + Provides the base class for asynchronous controllers. + + + Initializes a new instance of the class. + + + Gets the asynchronous manager instance. + The asynchronous manager instance. + + + Called by ASP.NET to initialize asynchronous request processing. + The status of the asynchronous operation. + The request context. + The asynchronous callback method. + The state object. + + + Called by ASP.NET during initialization of asynchronous request processing. + The status of the asynchronous operation. + The asynchronous callback method. + The state object. + + + Creates an action invoker. + An action invoker. + + + Cancels the execution of an asynchronous action method. + The status of the asynchronous result. + + + Called by ASP.NET when the current asynchronous action has completed. + The status of the asynchronous result. + + + Called by ASP.NET to begin the execution of an asynchronous action method. + The status of the asynchronous operation. + The request context. + The asynchronous callback method. + An object that contains information to be used by the callback method. This parameter can be null. + + + Cancels the execution of an asynchronous action method by ASP.NET at the end of the execution of an asynchronous action method. + The status of the asynchronous result. + + + Represents an attribute that is used to set the timeout value, in milliseconds, for an asynchronous method. + + + Initializes a new instance of the class. + The timeout value, in milliseconds. + + + Gets the timeout duration, in milliseconds. + The timeout duration, in milliseconds. + + + Called by ASP.NET before the asynchronous action method executes. + The filter context. + + + Encapsulates the information that is required for using an attribute. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified controller context. + The context within which the result is executed. The context information includes the controller, HTTP content, request context, and route data. + + + Initializes a new instance of the class using the specified controller context and action descriptor. + The context in which the result is executed. The context information includes the controller, HTTP content, request context, and route data. + An object that provides information about an action method, such as its name, controller, parameters, attributes, and filters. + + + Provides information about the action method that is marked by the attribute, such as its name, controller, parameters, attributes, and filters. + The action descriptor for the action method that is marked by the attribute. + + + Gets or sets the result that is returned by an action method. + The result that is returned by an action method. + + + Represents an attribute that is used to restrict access by callers to an action method. + + + Initializes a new instance of the class. + + + When overridden, provides an entry point for custom authorization checks. + true if the user is authorized; otherwise, false. + The HTTP context, which encapsulates all HTTP-specific information about an individual HTTP request. + The parameter is null. + + + Processes HTTP requests that fail authorization. + Encapsulates the information for using . The object contains the controller, HTTP context, request context, action result, and route data. + + + Called when a process requests authorization. + The filter context, which encapsulates information for using . + The parameter is null. + + + Called when the caching module requests authorization. + A reference to the validation status. + The HTTP context, which encapsulates all HTTP-specific information about an individual HTTP request. + The parameter is null. + + + Gets or sets the user roles. + The user roles. + + + Gets the unique identifier for this attribute. + The unique identifier for this attribute. + + + Gets or sets the authorized users. + The authorized users. + + + Represents an attribute that is used to provide details about how model binding to a parameter should occur. + + + Initializes a new instance of the class. + + + Gets or sets a comma-delimited list of property names for which binding is not allowed. + The exclude list. + + + Gets or sets a comma-delimited list of property names for which binding is allowed. + The include list. + + + Determines whether the specified property is allowed. + true if the specified property is allowed; otherwise, false. + The name of the property. + + + Gets or sets the prefix to use when markup is rendered for binding to an action argument or to a model property. + The prefix to use. + + + Represents the base class for views that are compiled by the BuildManager class before being rendered by a view engine. + + + Initializes a new instance of the class using the specified controller context and view path. + The controller context. + The view path. + + + Initializes a new instance of the class using the specified controller context, view path, and view page activator. + Context information for the current controller. This information includes the HTTP context, request context, route data, parent action view context, and more. + The path to the view that will be rendered. + The object responsible for dynamically constructing the view page at run time. + The parameter is null. + The parameter is null or empty. + + + Renders the specified view context by using the specified the writer object. + Information related to rendering a view, such as view data, temporary data, and form context. + The writer object. + The parameter is null. + An instance of the view type could not be created. + + + When overridden in a derived class, renders the specified view context by using the specified writer object and object instance. + Information related to rendering a view, such as view data, temporary data, and form context. + The writer object. + An object that contains additional information that can be used in the view. + + + Gets or sets the view path. + The view path. + + + Provides a base class for view engines. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified view page activator. + The view page activator. + + + Gets a value that indicates whether a file exists in the specified virtual file system (path). + true if the file exists in the virtual file system; otherwise, false. + The controller context. + The virtual path. + + + Gets the view page activator. + The view page activator. + + + Maps a browser request to a byte array. + + + Initializes a new instance of the class. + + + Binds the model by using the specified controller context and binding context. + The bound data object. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + The parameter is null. + + + Represents an attribute that is used to indicate that an action method should be called only as a child action. + + + Initializes a new instance of the class. + + + Called when authorization is required. + An object that encapsulates the information that is required in order to authorize access to the child action. + + + Represents a value provider for values from child actions. + + + Initializes a new instance of the class. + The controller context. + + + Retrieves a value object using the specified key. + The value object for the specified key. + The key. + + + Represents a factory for creating value provider objects for child actions. + + + Initializes a new instance of the class. + + + Returns a object for the specified controller context. + A object. + The controller context. + + + Returns the client data-type model validators. + + + Initializes a new instance of the class. + + + Returns the client data-type model validators. + The client data-type model validators. + The metadata. + The context. + + + Provides an attribute that compares two properties of a model. + + + Initializes a new instance of the class. + The property to compare with the current property. + + + Applies formatting to an error message based on the data field where the compare error occurred. + The formatted error message. + The name of the field that caused the validation failure. + + + Formats the property for client validation by prepending an asterisk (*) and a dot. + The string "*." is prepended to the property. + The property. + + + Gets a list of compare-value client validation rules for the property using the specified model metadata and controller context. + A list of compare-value client validation rules. + The model metadata. + The controller context. + + + Determines whether the specified object is equal to the compared object. + null if the value of the compared property is equal to the value parameter; otherwise, a validation result that contains the error message that indicates that the comparison failed. + The value of the object to compare. + The validation context. + + + Gets the property to compare with the current property. + The property to compare with the current property. + + + Represents a user-defined content type that is the result of an action method. + + + Initializes a new instance of the class. + + + Gets or sets the content. + The content. + + + Gets or sets the content encoding. + The content encoding. + + + Gets or sets the type of the content. + The type of the content. + + + Enables processing of the result of an action method by a custom type that inherits from the class. + The context within which the result is executed. + The parameter is null. + + + Provides methods that respond to HTTP requests that are made to an ASP.NET MVC Web site. + + + Initializes a new instance of the class. + + + Gets the action invoker for the controller. + The action invoker. + + + Gets or sets the binder. + The binder. + + + Creates a content result object by using a string. + The content result instance. + The content to write to the response. + + + Creates a content result object by using a string and the content type. + The content result instance. + The content to write to the response. + The content type (MIME type). + + + Creates a content result object by using a string, the content type, and content encoding. + The content result instance. + The content to write to the response. + The content type (MIME type). + The content encoding. + + + Creates an action invoker. + An action invoker. + + + Creates a temporary data provider. + A temporary data provider. + + + Releases all resources that are used by the current instance of the class. + + + Releases unmanaged resources and optionally releases managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Invokes the action in the current controller context. + + + Creates a object by using the file contents and file type. + The file-content result object. + The binary content to send to the response. + The content type (MIME type). + + + Creates a object by using the file contents, content type, and the destination file name. + The file-content result object. + The binary content to send to the response. + The content type (MIME type). + The file name to use in the file-download dialog box that is displayed in the browser. + + + Creates a object by using the object and content type. + The file-content result object. + The stream to send to the response. + The content type (MIME type). + + + Creates a object using the object, the content type, and the target file name. + The file-stream result object. + The stream to send to the response. + The content type (MIME type) + The file name to use in the file-download dialog box that is displayed in the browser. + + + Creates a object by using the file name and the content type. + The file-stream result object. + The path of the file to send to the response. + The content type (MIME type). + + + Creates a object by using the file name, the content type, and the file download name. + The file-stream result object. + The path of the file to send to the response. + The content type (MIME type). + The file name to use in the file-download dialog box that is displayed in the browser. + + + Called when a request matches this controller, but no method with the specified action name is found in the controller. + The name of the attempted action. + + + Gets HTTP-specific information about an individual HTTP request. + The HTTP context. + + + Returns an instance of the class. + An instance of the class. + + + Returns an instance of the class. + An instance of the class. + The status description. + + + Initializes data that might not be available when the constructor is called. + The HTTP context and route data. + + + Creates a object. + The object that writes the script to the response. + The JavaScript code to run on the client + + + Creates a object that serializes the specified object to JavaScript Object Notation (JSON). + The JSON result object that serializes the specified object to JSON format. The result object that is prepared by this method is written to the response by the ASP.NET MVC framework when the object is executed. + The JavaScript object graph to serialize. + + + Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format. + The JSON result object that serializes the specified object to JSON format. + The JavaScript object graph to serialize. + The content type (MIME type). + + + Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format. + The JSON result object that serializes the specified object to JSON format. + The JavaScript object graph to serialize. + The content type (MIME type). + The content encoding. + + + Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format using the content type, content encoding, and the JSON request behavior. + The result object that serializes the specified object to JSON format. + The JavaScript object graph to serialize. + The content type (MIME type). + The content encoding. + The JSON request behavior + + + Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format using the specified content type and JSON request behavior. + The result object that serializes the specified object to JSON format. + The JavaScript object graph to serialize. + The content type (MIME type). + The JSON request behavior + + + Creates a object that serializes the specified object to JavaScript Object Notation (JSON) format using the specified JSON request behavior. + The result object that serializes the specified object to JSON format. + The JavaScript object graph to serialize. + The content type (MIME type). + + + Gets the model state dictionary object that contains the state of the model and of model-binding validation. + The model state dictionary. + + + Called after the action method is invoked. + Information about the current request and action. + + + Called before the action method is invoked. + Information about the current request and action. + + + Called when authorization occurs. + Information about the current request and action. + + + Called when an unhandled exception occurs in the action. + Information about the current request and action. + + + Called after the action result that is returned by an action method is executed. + Information about the current request and action result + + + Called before the action result that is returned by an action method is executed. + Information about the current request and action result + + + Creates a object that renders a partial view. + A partial-view result object. + + + Creates a object that renders a partial view, by using the specified model. + A partial-view result object. + The model that is rendered by the partial view + + + Creates a object that renders a partial view, by using the specified view name. + A partial-view result object. + The name of the view that is rendered to the response. + + + Creates a object that renders a partial view, by using the specified view name and model. + A partial-view result object. + The name of the view that is rendered to the response. + The model that is rendered by the partial view + + + Creates a object that redirects to the specified URL. + The redirect result object. + The URL to redirect to. + + + Returns an instance of the class with the property set to true. + An instance of the class with the property set to true. + The URL to redirect to. + + + Redirects to the specified action using the action name. + The redirect result object. + The name of the action. + + + Redirects to the specified action using the action name and route values. + The redirect result object. + The name of the action. + The parameters for a route. + + + Redirects to the specified action using the action name and controller name. + The redirect result object. + The name of the action. + The name of the controller + + + Redirects to the specified action using the action name, controller name, and route values. + The redirect result object. + The name of the action. + The name of the controller + The parameters for a route. + + + Redirects to the specified action using the action name, controller name, and route dictionary. + The redirect result object. + The name of the action. + The name of the controller + The parameters for a route. + + + Redirects to the specified action using the action name and route dictionary. + The redirect result object. + The name of the action. + The parameters for a route. + + + Returns an instance of the class with the property set to true using the specified action name. + An instance of the class with the property set to true using the specified action name, controller name, and route values. + The action name. + + + Returns an instance of the class with the property set to true using the specified action name, and route values. + An instance of the class with the property set to true using the specified action name, and route values. + The action name. + The route values. + + + Returns an instance of the class with the property set to true using the specified action name, and controller name. + An instance of the class with the property set to true using the specified action name, and controller name. + The action name. + The controller name. + + + Returns an instance of the class with the property set to true using the specified action name, controller name, and route values. + An instance of the class with the property set to true. + The action name. + The controller name. + The route values. + + + Returns an instance of the class with the property set to true using the specified action name, controller name, and route values. + An instance of the class with the property set to true using the specified action name, controller name, and route values. + The action name. + The controller name. + The route values. + + + Returns an instance of the class with the property set to true using the specified action name, and route values. + An instance of the class with the property set to true using the specified action name, and route values. + + + Redirects to the specified route using the specified route values. + The redirect-to-route result object. + The parameters for a route. + + + Redirects to the specified route using the route name. + The redirect-to-route result object. + The name of the route + + + Redirects to the specified route using the route name and route values. + The redirect-to-route result object. + The name of the route + The parameters for a route. + + + Redirects to the specified route using the route name and route dictionary. + The redirect-to-route result object. + The name of the route + The parameters for a route. + + + Redirects to the specified route using the route dictionary. + The redirect-to-route result object. + The parameters for a route. + + + Returns an instance of the class with the property set to true using the specified route values. + Returns . + The route name. + + + Returns an instance of the class with the property set to true using the specified route name. + Returns an instance of the class with the property set to true using the specified route name. + The route name. + + + Returns an instance of the class with the property set to true using the specified route name and route values. + An instance of the class with the property set to true. + The route name. + The route values. + + + Returns an instance of the class with the property set to true using the specified route name and route values. + An instance of the class with the property set to true using the specified route name and route values. + The route name. + The route values. + + + Returns an instance of the class with the property set to true using the specified route values. + An instance of the class with the property set to true using the specified route values. + The route values. + + + Gets the object for the current HTTP request. + The request object. + + + Gets the object for the current HTTP response. + The response object. + + + Gets the route data for the current request. + The route data. + + + Gets the object that provides methods that are used during Web request processing. + The HTTP server object. + + + Gets the object for the current HTTP request. + The HTTP session-state object for the current HTTP request. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. + The filter context. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. + The filter context. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. + The filter context. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. + The filter context. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. + The filter context. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. + The filter context. + + + Gets the temporary-data provider object that is used to store data for the next request. + The temporary-data provider. + + + Updates the specified model instance using values from the controller's current value provider. + true if the update is successful; otherwise, false. + The model instance to update. + The type of the model object. + The parameter or the property is null. + + + Updates the specified model instance using values from the controller's current value provider and a prefix. + true if the update is successful; otherwise, false. + The model instance to update. + The prefix to use when looking up values in the value provider. + The type of the model object. + The parameter or the property is null. + + + Updates the specified model instance using values from the controller's current value provider, a prefix, and included properties. + true if the update is successful; otherwise, false. + The model instance to update. + The prefix to use when looking up values in the value provider. + A list of properties of the model to update. + The type of the model object. + The parameter or the property is null. + + + Updates the specified model instance using values from the controller's current value provider, a prefix, a list of properties to exclude, and a list of properties to include. + true if the update is successful; otherwise, false. + The model instance to update. + The prefix to use when looking up values in the value provider + A list of properties of the model to update. + A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the parameter list. + The type of the model object. + The parameter or the property is null. + + + Updates the specified model instance using values from the value provider, a prefix, a list of properties to exclude , and a list of properties to include. + true if the update is successful; otherwise, false. + The model instance to update. + The prefix to use when looking up values in the value provider. + A list of properties of the model to update. + A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the parameter list. + A dictionary of values that is used to update the model. + The type of the model object. + + + Updates the specified model instance using values from the value provider, a prefix, and included properties. + true if the update is successful; otherwise, false. + The model instance to update. + The prefix to use when looking up values in the value provider. + A list of properties of the model to update. + A dictionary of values that is used to update the model. + The type of the model object. + + + Updates the specified model instance using values from the value provider and a prefix. + true if the update is successful; otherwise, false. + The model instance to update. + The prefix to use when looking up values in the value provider. + A dictionary of values that is used to update the model. + The type of the model object. + + + Updates the specified model instance using values from the controller's current value provider and included properties. + true if the update is successful; otherwise, false. + The model instance to update. + A list of properties of the model to update. + The type of the model object. + The parameter or the property is null. + + + Updates the specified model instance using values from the value provider and a list of properties to include. + true if the update is successful; otherwise, false. + The model instance to update. + A list of properties of the model to update. + A dictionary of values that is used to update the model. + The type of the model object. + + + Updates the specified model instance using values from the value provider. + true if the update is successful; otherwise, false. + The model instance to update. + A dictionary of values that is used to update the model. + The type of the model object. + + + Validates the specified model instance. + true if the model validation is successful; otherwise, false. + The model instance to validate. + + + Validates the specified model instance using an HTML prefix. + true if the model validation is successful; otherwise, false. + The model to validate. + The prefix to use when looking up values in the model provider. + + + Updates the specified model instance using values from the controller's current value provider. + The model instance to update. + The type of the model object. + The model was not successfully updated. + + + Updates the specified model instance using values from the controller's current value provider and a prefix. + The model instance to update. + A prefix to use when looking up values in the value provider. + The type of the model object. + + + Updates the specified model instance using values from the controller's current value provider, a prefix, and included properties. + The model instance to update. + A prefix to use when looking up values in the value provider. + A list of properties of the model to update. + The type of the model object. + + + Updates the specified model instance using values from the controller's current value provider, a prefix, a list of properties to exclude, and a list of properties to include. + The model instance to update. + A prefix to use when looking up values in the value provider. + A list of properties of the model to update. + A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the list. + The type of the model object. + + + Updates the specified model instance using values from the value provider, a prefix, a list of properties to exclude, and a list of properties to include. + The model instance to update. + The prefix to use when looking up values in the value provider. + A list of properties of the model to update. + A list of properties to explicitly exclude from the update. These are excluded even if they are listed in the parameter list. + A dictionary of values that is used to update the model. + The type of the model object. + + + Updates the specified model instance using values from the value provider, a prefix, and a list of properties to include. + The model instance to update. + The prefix to use when looking up values in the value provider. + A list of properties of the model to update. + A dictionary of values that is used to update the model. + The type of the model object. + + + Updates the specified model instance using values from the value provider and a prefix. + The model instance to update. + The prefix to use when looking up values in the value provider. + A dictionary of values that is used to update the model. + The type of the model object. + + + Updates the specified model instance using values from the controller object's current value provider. + The model instance to update. + A list of properties of the model to update. + The type of the model object. + + + Updates the specified model instance using values from the value provider, a prefix, and a list of properties to include. + The model instance to update. + A list of properties of the model to update. + A dictionary of values that is used to update the model. + The type of the model object. + + + Updates the specified model instance using values from the value provider. + The model instance to update. + A dictionary of values that is used to update the model. + The type of the model object. + + + Gets the URL helper object that is used to generate URLs by using routing. + The URL helper object. + + + Gets the user security information for the current HTTP request. + The user security information for the current HTTP request. + + + Validates the specified model instance. + The model to validate. + + + Validates the specified model instance using an HTML prefix. + The model to validate. + The prefix to use when looking up values in the model provider. + + + Creates a object that renders a view to the response. + The view result that renders a view to the response. + + + Creates a object by using the model that renders a view to the response. + The view result. + The model that is rendered by the view. + + + Creates a object by using the view name that renders a view. + The view result. + The name of the view that is rendered to the response. + + + Creates a object by using the view name and model that renders a view to the response. + The view result. + The name of the view that is rendered to the response. + The model that is rendered by the view. + + + Creates a object using the view name and master-page name that renders a view to the response. + The view result. + The name of the view that is rendered to the response. + The name of the master page or template to use when the view is rendered. + + + Creates a object using the view name, master-page name, and model that renders a view. + The view result. + The name of the view that is rendered to the response. + The name of the master page or template to use when the view is rendered. + The model that is rendered by the view. + + + Creates a object that renders the specified object. + The view result. + The view that is rendered to the response. + + + Creates a object that renders the specified object. + The view result. + The view that is rendered to the response. + The model that is rendered by the view. + + + Represents a class that is responsible for invoking the action methods of a controller. + + + Initializes a new instance of the class. + + + Gets or sets the model binders that are associated with the action. + The model binders that are associated with the action. + + + Creates the action result. + The action result object. + The controller context. + The action descriptor. + The action return value. + + + Finds the information about the action method. + Information about the action method. + The controller context. + The controller descriptor. + The name of the action. + + + Retrieves information about the controller by using the specified controller context. + Information about the controller. + The controller context. + + + Retrieves information about the action filters. + Information about the action filters. + The controller context. + The action descriptor. + + + Gets the value of the specified action-method parameter. + The value of the action-method parameter. + The controller context. + The parameter descriptor. + + + Gets the values of the action-method parameters. + The values of the action-method parameters. + The controller context. + The action descriptor. + + + Invokes the specified action by using the specified controller context. + The result of executing the action. + The controller context. + The name of the action to invoke. + The parameter is null. + The parameter is null or empty. + The thread was aborted during invocation of the action. + An unspecified error occurred during invocation of the action. + + + Invokes the specified action method by using the specified parameters and the controller context. + The result of executing the action method. + The controller context. + The action descriptor. + The parameters. + + + Invokes the specified action method by using the specified parameters, controller context, and action filters. + The context for the ActionExecuted method of the class. + The controller context. + The action filters. + The action descriptor. + The parameters. + + + Invokes the specified action result by using the specified controller context. + The controller context. + The action result. + + + Invokes the specified action result by using the specified action filters and the controller context. + The context for the ResultExecuted method of the class. + The controller context. + The action filters. + The action result. + + + Invokes the specified authorization filters by using the specified action descriptor and controller context. + The context for the object. + The controller context. + The authorization filters. + The action descriptor. + + + Invokes the specified exception filters by using the specified exception and controller context. + The context for the object. + The controller context. + The exception filters. + The exception. + + + Represents the base class for all MVC controllers. + + + Initializes a new instance of the class. + + + Gets or sets the controller context. + The controller context. + + + Executes the specified request context. + The request context. + The parameter is null. + + + Executes the request. + + + Initializes the specified request context. + The request context. + + + Executes the specified request context. + The request context. + + + Gets or sets the dictionary for temporary data. + The dictionary for temporary data. + + + Gets or sets a value that indicates whether request validation is enabled for this request. + true if request validation is enabled for this request; otherwise, false. The default is true. + + + Gets or sets the value provider for the controller. + The value provider for the controller. + + + Gets the dynamic view data dictionary. + The dynamic view data dictionary. + + + Gets or sets the dictionary for view data. + The dictionary for the view data. + + + Represents a class that is responsible for dynamically building a controller. + + + Initializes a new instance of the class. + + + Gets the current controller builder object. + The current controller builder. + + + Gets the default namespaces. + The default namespaces. + + + Gets the associated controller factory. + The controller factory. + + + Sets the controller factory by using the specified type. + The type of the controller factory. + The parameter is null. + The controller factory cannot be assigned from the type in the parameter. + An error occurred while the controller factory was being set. + + + Sets the specified controller factory. + The controller factory. + The parameter is null. + + + Encapsulates information about an HTTP request that matches specified and instances. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified HTTP context, URL route data, and controller. + The HTTP context. + The route data. + The controller. + + + Initializes a new instance of the class by using the specified controller context. + The controller context. + The parameter is null. + + + Initializes a new instance of the class by using the specified request context and controller. + The request context. + The controller. + One or both parameters are null. + + + Gets or sets the controller. + The controller. + + + Gets or sets the HTTP context. + The HTTP context. + + + Gets a value that indicates whether the associated action method is a child action. + true if the associated action method is a child action; otherwise, false. + + + Gets an object that contains the view context information for the parent action method. + An object that contains the view context information for the parent action method. + + + Gets or sets the request context. + The request context. + + + Gets or sets the URL route data. + The URL route data. + + + Encapsulates information that describes a controller, such as its name, type, and actions. + + + Initializes a new instance of the class. + + + Gets the name of the controller. + The name of the controller. + + + Gets the type of the controller. + The type of the controller. + + + Finds an action method by using the specified name and controller context. + The information about the action method. + The controller context. + The name of the action. + + + Retrieves a list of action-method descriptors in the controller. + A list of action-method descriptors in the controller. + + + Retrieves custom attributes that are defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + + + Retrieves custom attributes of a specified type that are defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + The parameter is null (Nothing in Visual Basic). + + + Retrieves a value that indicates whether one or more instance of the specified custom attribute are defined for this member. + true if the is defined for this member; otherwise, false. + The type of the custom attribute. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The parameter is null (Nothing in Visual Basic). + + + When implemented in a derived class, gets the unique ID for the controller descriptor using lazy initialization. + The unique ID. + + + Adds the controller to the instance. + + + Initializes a new instance of the class. + + + Returns the collection of controller instance filters. + The collection of controller instance filters. + The controller context. + The action descriptor. + + + Represents an attribute that invokes a custom model binder. + + + Initializes a new instance of the class. + + + Retrieves the associated model binder. + A reference to an object that implements the interface. + + + Provides a container for common metadata, for the class, and for the class for a data model. + + + Initializes a new instance of the class. + The data-annotations model metadata provider. + The type of the container. + The model accessor. + The type of the model. + The name of the property. + The display column attribute. + + + Returns simple text for the model data. + Simple text for the model data. + + + Implements the default model metadata provider for ASP.NET MVC. + + + Initializes a new instance of the class. + + + Gets the metadata for the specified property. + The metadata for the property. + The attributes. + The type of the container. + The model accessor. + The type of the model. + The name of the property. + + + Represents the method that creates a instance. + + + Provides a model validator. + + + Initializes a new instance of the class. + The metadata for the model. + The controller context for the model. + The validation attribute for the model. + + + Gets the validation attribute for the model validator. + The validation attribute for the model validator. + + + Gets the error message for the validation failure. + The error message for the validation failure. + + + Retrieves a collection of client validation rules. + A collection of client validation rules. + + + Gets a value that indicates whether model validation is required. + true if model validation is required; otherwise, false. + + + Returns a list of validation error messages for the model. + A list of validation error messages for the model, or an empty list if no errors have occurred. + The container for the model. + + + Provides a model validator for a specified validation type. + + + + Initializes a new instance of the class. + The metadata for the model. + The controller context for the model. + The validation attribute for the model. + + + Gets the validation attribute from the model validator. + The validation attribute from the model validator. + + + Implements the default validation provider for ASP.NET MVC. + + + Initializes a new instance of the class. + + + Gets or sets a value that indicates whether non-nullable value types are required. + true if non-nullable value types are required; otherwise, false. + + + Gets a list of validators. + A list of validators. + The metadata. + The context. + The list of validation attributes. + + + Registers an adapter to provide client-side validation. + The type of the validation attribute. + The type of the adapter. + + + Registers an adapter factory for the validation provider. + The type of the attribute. + The factory that will be used to create the object for the specified attribute. + + + Registers the default adapter. + The type of the adapter. + + + Registers the default adapter factory. + The factory that will be used to create the object for the default adapter. + + + Registers an adapter to provide default object validation. + The type of the adapter. + + + Registers an adapter factory for the default object validation provider. + The factory. + + + Registers an adapter to provide object validation. + The type of the model. + The type of the adapter. + + + Registers an adapter factory for the object validation provider. + The type of the model. + The factory. + + + Provides a factory for validators that are based on . + + + Provides a container for the error-information model validator. + + + Initializes a new instance of the class. + + + Gets a list of error-information model validators. + A list of error-information model validators. + The model metadata. + The controller context. + + + Represents the controller factory that is registered by default. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using a controller activator. + An object that implements the controller activator interface. + + + Creates the specified controller by using the specified request context. + The controller. + The context of the HTTP request, which includes the HTTP context and route data. + The name of the controller. + The parameter is null. + The parameter is null or empty. + + + Retrieves the controller instance for the specified request context and controller type. + The controller instance. + The context of the HTTP request, which includes the HTTP context and route data. + The type of the controller. + + is null. + + cannot be assigned. + An instance of cannot be created. + + + Returns the controller's session behavior. + The controller's session behavior. + The request context. + The type of the controller. + + + Retrieves the controller type for the specified name and request context. + The controller type. + The context of the HTTP request, which includes the HTTP context and route data. + The name of the controller. + + + Releases the specified controller. + The controller to release. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. This method calls the method. + The controller's session behavior. + The request context. + The controller name. + + + Maps a browser request to a data object. This class provides a concrete implementation of a model binder. + + + Initializes a new instance of the class. + + + Gets or sets the model binders for the application. + The model binders for the application. + + + Binds the model by using the specified controller context and binding context. + The bound object. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + The parameter is null. + + + Binds the specified property by using the specified controller context and binding context and the specified property descriptor. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + Describes a property to be bound. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value. + + + Creates the specified model type by using the specified controller context and binding context. + A data object of the specified type. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + The type of the model object to return. + + + Creates an index (a subindex) based on a category of components that make up a larger index, where the specified index value is an integer. + The name of the subindex. + The prefix for the subindex. + The index value. + + + Creates an index (a subindex) based on a category of components that make up a larger index, where the specified index value is a string. + The name of the subindex. + The prefix for the subindex. + The index value. + + + Creates the name of the subproperty by using the specified prefix and property name. + The name of the subproperty. + The prefix for the subproperty. + The name of the property. + + + Returns a set of properties that match the property filter restrictions that are established by the specified . + An enumerable set of property descriptors. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + + + Returns the properties of the model by using the specified controller context and binding context. + A collection of property descriptors. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + + + Returns the value of a property using the specified controller context, binding context, property descriptor, and property binder. + An object that represents the property value. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + The descriptor for the property to access. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value. + An object that provides a way to bind the property. + + + Returns the descriptor object for a type that is specified by its controller context and binding context. + A custom type descriptor object. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + + + Determines whether a data model is valid for the specified binding context. + true if the model is valid; otherwise, false. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + The parameter is null. + + + Called when the model is updated. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + + + Called when the model is updating. + true if the model is updating; otherwise, false. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + + + Called when the specified property is validated. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + Describes a property to be validated. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value. + The value to set for the property. + + + Called when the specified property is validating. + true if the property is validating; otherwise, false. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + Describes a property being validated. The descriptor provides information such as component type, property type, and property value. It also provides methods to get or set the property value. + The value to set for the property. + + + Gets or sets the name of the resource file (class key) that contains localized string values. + The name of the resource file (class key). + + + Sets the specified property by using the specified controller context, binding context, and property value. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + Describes a property to be set. The descriptor provides information such as the component type, property type, and property value. It also provides methods to get or set the property value. + The value to set for the property. + + + Represents a memory cache for view locations. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified cache time span. + The cache time span. + The Ticks attribute of the parameter is set to a negative number. + + + Retrieves the default view location by using the specified HTTP context and cache key. + The default view location. + The HTTP context. + The cache key + The parameter is null. + + + Inserts the view in the specified virtual path by using the specified HTTP context, cache key, and virtual path. + The HTTP context. + The cache key. + The virtual path + The parameter is null. + + + Creates an empty view location cache. + + + Gets or sets the cache time span. + The cache time span. + + + Provides a registration point for dependency resolvers that implement or the Common Service Locator IServiceLocator interface. + + + Initializes a new instance of the class. + + + Gets the implementation of the dependency resolver. + The implementation of the dependency resolver. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. + The implementation of the dependency resolver. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. + The function that provides the service. + The function that provides the services. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. + The common service locator. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. + The object that implements the dependency resolver. + + + Provides a registration point for dependency resolvers using the specified service delegate and specified service collection delegates. + The service delegate. + The services delegates. + + + Provides a registration point for dependency resolvers using the provided common service locator when using a service locator interface. + The common service locator. + + + Provides a registration point for dependency resolvers, using the specified dependency resolver interface. + The dependency resolver. + + + Provides a type-safe implementation of and . + + + Resolves singly registered services that support arbitrary object creation. + The requested service or object. + The dependency resolver instance that this method extends. + The type of the requested service or object. + + + Resolves multiply registered services. + The requested services. + The dependency resolver instance that this method extends. + The type of the requested services. + + + Represents the base class for value providers whose values come from a collection that implements the interface. + The type of the value. + + + Initializes a new instance of the class. + The name/value pairs that are used to initialize the value provider. + Information about a specific culture, such as the names of the culture, the writing system, and the calendar used. + The parameter is null. + + + Determines whether the collection contains the specified prefix. + true if the collection contains the specified prefix; otherwise, false. + The prefix to search for. + The parameter is null. + + + Returns a value object using the specified key and controller context. + The value object for the specified key. + The key of the value object to retrieve. + The parameter is null. + + + Provides an empty metadata provider for data models that do not require metadata. + + + Initializes a new instance of the class. + + + Creates a new instance of the class. + A new instance of the class. + The attributes. + The type of the container. + The model accessor. + The type of the model. + The name of the model. + + + Provides an empty validation provider for models that do not require a validator. + + + Initializes a new instance of the class. + + + Gets the empty model validator. + The empty model validator. + The metadata. + The context. + + + Represents a result that does nothing, such as a controller action method that returns nothing. + + + Initializes a new instance of the class. + + + Executes the specified result context. + The result context. + + + Provides the context for using the class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class for the specified exception by using the specified controller context. + The controller context. + The exception. + The parameter is null. + + + Gets or sets the exception object. + The exception object. + + + Gets or sets a value that indicates whether the exception has been handled. + true if the exception has been handled; otherwise, false. + + + Gets or sets the action result. + The action result. + + + Provides a helper class to get the model name from an expression. + + + Gets the model name from a lambda expression. + The model name. + The expression. + + + Gets the model name from a string expression. + The model name. + The expression. + + + Provides a container for client-side field validation metadata. + + + Initializes a new instance of the class. + + + Gets or sets the name of the data field. + The name of the data field. + + + Gets or sets a value that indicates whether the validation message contents should be replaced with the client validation error. + true if the validation message contents should be replaced with the client validation error; otherwise, false. + + + Gets or sets the validator message ID. + The validator message ID. + + + Gets the client validation rules. + The client validation rules. + + + Sends the contents of a binary file to the response. + + + Initializes a new instance of the class by using the specified file contents and content type. + The byte array to send to the response. + The content type to use for the response. + The parameter is null. + + + The binary content to send to the response. + The file contents. + + + Writes the file content to the response. + The response. + + + Sends the contents of a file to the response. + + + Initializes a new instance of the class by using the specified file name and content type. + The name of the file to send to the response. + The content type of the response. + The parameter is null or empty. + + + Gets or sets the path of the file that is sent to the response. + The path of the file that is sent to the response. + + + Writes the file to the response. + The response. + + + Represents a base class that is used to send binary file content to the response. + + + Initializes a new instance of the class. + The type of the content. + The parameter is null or empty. + + + Gets the content type to use for the response. + The type of the content. + + + Enables processing of the result of an action method by a custom type that inherits from the class. + The context within which the result is executed. + The parameter is null. + + + Gets or sets the content-disposition header so that a file-download dialog box is displayed in the browser with the specified file name. + The name of the file. + + + Writes the file to the response. + The response. + + + Sends binary content to the response by using a instance. + + + Initializes a new instance of the class. + The stream to send to the response. + The content type to use for the response. + The parameter is null. + + + Gets the stream that will be sent to the response. + The file stream. + + + Writes the file to the response. + The response. + + + Represents a metadata class that contains a reference to the implementation of one or more of the filter interfaces, the filter's order, and the filter's scope. + + + Initializes a new instance of the class. + The instance. + The scope. + The order. + + + Represents a constant that is used to specify the default ordering of filters. + + + Gets the instance of this class. + The instance of this class. + + + Gets the order in which the filter is applied. + The order in which the filter is applied. + + + Gets the scope ordering of the filter. + The scope ordering of the filter. + + + Represents the base class for action and result filter attributes. + + + Initializes a new instance of the class. + + + Gets or sets a value that indicates whether more than one instance of the filter attribute can be specified. + true if more than one instance of the filter attribute can be specified; otherwise, false. + + + Gets or sets the order in which the action filters are executed. + The order in which the action filters are executed. + + + Defines a filter provider for filter attributes. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class and optionally caches attribute instances. + true to cache attribute instances; otherwise, false. + + + Gets a collection of custom action attributes. + A collection of custom action attributes. + The controller context. + The action descriptor. + + + Gets a collection of controller attributes. + A collection of controller attributes. + The controller context. + The action descriptor. + + + Aggregates the filters from all of the filter providers into one collection. + The collection filters from all of the filter providers. + The controller context. + The action descriptor. + + + Encapsulates information about the available action filters. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified filters collection. + The filters collection. + + + Gets all the action filters in the application. + The action filters. + + + Gets all the authorization filters in the application. + The authorization filters. + + + Gets all the exception filters in the application. + The exception filters. + + + Gets all the result filters in the application. + The result filters. + + + Represents the collection of filter providers for the application. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the filter providers collection. + The filter providers collection. + + + Returns the collection of filter providers. + The collection of filter providers. + The controller context. + The action descriptor. + + + Provides a registration point for filters. + + + Provides a registration point for filters. + The collection of filters. + + + Defines values that specify the order in which ASP.NET MVC filters run within the same filter type and filter order. + + + Specifies first. + + + Specifies an order before and after . + + + Specifies an order before and after . + + + Specifies an order before and after . + + + Specifies last. + + + Contains the form value providers for the application. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The collection. + The parameter is null. + + + Gets the specified value provider. + The value provider. + The name of the value provider to get. + The parameter is null or empty. + + + Gets a value that indicates whether the value provider contains an entry that has the specified prefix. + true if the value provider contains an entry that has the specified prefix; otherwise, false. + The prefix to look for. + + + Gets a value from a value provider using the specified key. + A value from a value provider. + The key. + + + Returns a dictionary that contains the value providers. + A dictionary of value providers. + + + Encapsulates information that is required in order to validate and process the input data from an HTML form. + + + Initializes a new instance of the class. + + + Gets the field validators for the form. + A dictionary of field validators for the form. + + + Gets or sets the form identifier. + The form identifier. + + + Returns a serialized object that contains the form identifier and field-validation values for the form. + A serialized object that contains the form identifier and field-validation values for the form. + + + Returns the validation value for the specified input field. + The value to validate the field input with. + The name of the field to retrieve the validation value for. + The parameter is either null or empty. + + + Returns the validation value for the specified input field and a value that indicates what to do if the validation value is not found. + The value to validate the field input with. + The name of the field to retrieve the validation value for. + true to create a validation value if one is not found; otherwise, false. + The parameter is either null or empty. + + + Returns a value that indicates whether the specified field has been rendered in the form. + true if the field has been rendered; otherwise, false. + The field name. + + + Sets a value that indicates whether the specified field has been rendered in the form. + The field name. + true to specify that the field has been rendered in the form; otherwise, false. + + + Determines whether client validation errors should be dynamically added to the validation summary. + true if client validation errors should be added to the validation summary; otherwise, false. + + + Gets or sets the identifier for the validation summary. + The identifier for the validation summary. + + + Enumerates the HTTP request types for a form. + + + Specifies a GET request. + + + Specifies a POST request. + + + Represents a value provider for form values that are contained in a object. + + + Initializes a new instance of the class. + An object that encapsulates information about the current HTTP request. + + + Represents a class that is responsible for creating a new instance of a form-value provider object. + + + Initializes a new instance of the class. + + + Returns a form-value provider object for the specified controller context. + A form-value provider object. + An object that encapsulates information about the current HTTP request. + The parameter is null. + + + Represents a class that contains all the global filters. + + + Initializes a new instance of the class. + + + Adds the specified filter to the global filter collection. + The filter. + + + Adds the specified filter to the global filter collection using the specified filter run order. + The filter. + The filter run order. + + + Removes all filters from the global filter collection. + + + Determines whether a filter is in the global filter collection. + true if is found in the global filter collection; otherwise, false. + The filter. + + + Gets the number of filters in the global filter collection. + The number of filters in the global filter collection. + + + Returns an enumerator that iterates through the global filter collection. + An enumerator that iterates through the global filter collection. + + + Removes all the filters that match the specified filter. + The filter to remove. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. + An enumerator that iterates through the global filter collection. + + + This API supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. + An enumerator that iterates through the global filter collection. + The controller context. + The action descriptor. + + + Represents the global filter collection. + + + Gets or sets the global filter collection. + The global filter collection. + + + Represents an attribute that is used to handle an exception that is thrown by an action method. + + + Initializes a new instance of the class. + + + Gets or sets the type of the exception. + The type of the exception. + + + Gets or sets the master view for displaying exception information. + The master view. + + + Called when an exception occurs. + The action-filter context. + The parameter is null. + + + Gets the unique identifier for this attribute. + The unique identifier for this attribute. + + + Gets or sets the page view for displaying exception information. + The page view. + + + Encapsulates information for handling an error that was thrown by an action method. + + + Initializes a new instance of the class. + The exception. + The name of the controller. + The name of the action. + The parameter is null. + The or parameter is null or empty. + + + Gets or sets the name of the action that was executing when the exception was thrown. + The name of the action. + + + Gets or sets the name of the controller that contains the action method that threw the exception. + The name of the controller. + + + Gets or sets the exception object. + The exception object. + + + Represents an attribute that is used to indicate whether a property or field value should be rendered as a hidden input element. + + + Initializes a new instance of the class. + + + Gets or sets a value that indicates whether to display the value of the hidden input element. + true if the value should be displayed; otherwise, false. + + + Represents support for rendering HTML controls in a view. + + + Initializes a new instance of the class by using the specified view context and view data container. + The view context. + The view data container. + The or the parameter is null. + + + Initializes a new instance of the class by using the specified view context, view data container, and route collection. + The view context. + The view data container. + The route collection. + One or more parameters is null. + + + Replaces underscore characters (_) with hyphens (-) in the specified HTML attributes. + The HTML attributes with underscore characters replaced by hyphens. + The HTML attributes. + + + Generates a hidden form field (anti-forgery token) that is validated when the form is submitted. + The generated form field (anti-forgery token). + + + Generates a hidden form field (anti-forgery token) that is validated when the form is submitted. The field value is generated using the specified salt value. + The generated form field (anti-forgery token). + The salt value, which can be any non-empty string. + + + Generates a hidden form field (anti-forgery token) that is validated when the form is submitted. The field value is generated using the specified salt value, domain, and path. + The generated form field (anti-forgery token). + The salt value, which can be any non-empty string. + The application domain. + The virtual path. + + + Converts the specified attribute object to an HTML-encoded string. + The HTML-encoded string. If the value parameter is null or empty, this method returns an empty string. + The object to encode. + + + Converts the specified attribute string to an HTML-encoded string. + The HTML-encoded string. If the value parameter is null or empty, this method returns an empty string. + The string to encode. + + + Gets or sets a value that indicates whether client validation is enabled. + true if enable client validation is enabled; otherwise, false. + + + Enables input validation that is performed by using client script in the browser. + + + Enables or disables client validation. + true to enable client validation; otherwise, false. + + + Enables unobtrusive JavaScript. + + + Enables or disables unobtrusive JavaScript. + true to enable unobtrusive JavaScript; otherwise, false. + + + Converts the value of the specified object to an HTML-encoded string. + The HTML-encoded string. + The object to encode. + + + Converts the specified string to an HTML-encoded string. + The HTML-encoded string. + The string to encode. + + + Creates an HTML element ID using the specified element name. + The ID of the HTML element. + The name of the HTML element. + The parameter is null. + + + Creates an HTML element ID using the specified element name and a string that replaces dots in the name. + The ID of the HTML element. + The name of the HTML element. + The string that replaces dots (.) in the parameter. + The parameter or the parameter is null. + + + Generates an HTML anchor element (a element) that links to the specified action method, and enables the user to specify the communication protocol, name of the host, and a URL fragment. + An HTML element that links to the specified action method. + The context of the HTTP request. + The collection of URL routes. + The text caption to display for the link. + The name of the route that is used to return a virtual path. + The name of the action method. + The name of the controller. + The communication protocol, such as HTTP or HTTPS. If this parameter is null, the protocol defaults to HTTP. + The name of the host. + The fragment identifier. + An object that contains the parameters for a route. + An object that contains the HTML attributes for the element. + + + Generates an HTML anchor element (a element) that links to the specified action method. + An HTML element that links to the specified action method. + The context of the HTTP request. + The collection of URL routes. + The text caption to display for the link. + The name of the route that is used to return a virtual path. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. + An object that contains the HTML attributes for the element. + + + Generates an HTML anchor element (a element) that links to the specified URL route, and enables the user to specify the communication protocol, name of the host, and a URL fragment. + An HTML element that links to the specified URL route. + The context of the HTTP request. + The collection of URL routes. + The text caption to display for the link. + The name of the route that is used to return a virtual path. + The communication protocol, such as HTTP or HTTPS. If this parameter is null, the protocol defaults to HTTP. + The name of the host. + The fragment identifier. + An object that contains the parameters for a route. + An object that contains the HTML attributes for the element. + + + Generates an HTML anchor element (a element) that links to the specified URL route. + An HTML element that links to the specified URL route. + The context of the HTTP request. + The collection of URL routes. + The text caption to display for the link. + The name of the route that is used to return a virtual path. + An object that contains the parameters for a route. + An object that contains the HTML attributes for the element. + + + Returns the HTTP method that handles form input (GET or POST) as a string. + The form method string, either "get" or "post". + The HTTP method that handles the form. + + + Returns the HTML input control type as a string. + The input type string ("checkbox", "hidden", "password", "radio", or "text"). + The enumerated input type. + + + Gets the collection of unobtrusive JavaScript validation attributes using the specified HTML name attribute. + The collection of unobtrusive JavaScript validation attributes. + The HTML name attribute. + + + Gets the collection of unobtrusive JavaScript validation attributes using the specified HTML name attribute and model metadata. + The collection of unobtrusive JavaScript validation attributes. + The HTML name attribute. + The model metadata. + + + Returns a hidden input element that identifies the override method for the specified HTTP data-transfer method that was used by the client. + The override method that uses the HTTP data-transfer method that was used by the client. + The HTTP data-transfer method that was used by the client (DELETE, HEAD, or PUT). + The parameter is not "PUT", "DELETE", or "HEAD". + + + Returns a hidden input element that identifies the override method for the specified verb that represents the HTTP data-transfer method used by the client. + The override method that uses the verb that represents the HTTP data-transfer method used by the client. + The verb that represents the HTTP data-transfer method used by the client. + The parameter is not "PUT", "DELETE", or "HEAD". + + + Gets or sets the character that replaces periods in the ID attribute of an element. + The character that replaces periods in the ID attribute of an element. + + + Returns markup that is not HTML encoded. + The HTML markup without encoding. + The HTML markup. + + + Gets or sets the collection of routes for the application. + The collection of routes for the application. + + + Gets or sets a value that indicates whether unobtrusive JavaScript is enabled. + true if unobtrusive JavaScript is enabled; otherwise, false. + + + The name of the CSS class that is used to style an input field when a validation error occurs. + + + The name of the CSS class that is used to style an input field when the input is valid. + + + The name of the CSS class that is used to style the error message when a validation error occurs. + + + The name of the CSS class that is used to style the validation message when the input is valid. + + + The name of the CSS class that is used to style validation summary error messages. + + + The name of the CSS class that is used to style the validation summary when the input is valid. + + + Gets or sets the context information about the view. + The context of the view. + + + Gets the current view data dictionary. + The view data dictionary. + + + Gets or sets the view data container. + The view data container. + + + Represents support for rendering HTML controls in a strongly typed view. + The type of the model. + + + Initializes a new instance of the class by using the specified view context and view data container. + The view context. + The view data container. + + + Initializes a new instance of the class by using the specified view context, view data container, and route collection. + The view context. + The view data container. + The route collection. + + + Gets the strongly typed view data dictionary. + The strongly typed view data dictionary. + + + Represents an attribute that is used to restrict an action method so that the method handles only HTTP DELETE requests. + + + Initializes a new instance of the class. + + + Determines whether a request is a valid HTTP DELETE request. + true if the request is valid; otherwise, false. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + Encapsulates information about a method, such as its type, return type, and arguments. + + + Represents a value provider to use with values that come from a collection of HTTP files. + + + Initializes a new instance of the class. + An object that encapsulates information about the current HTTP request. + + + Represents a class that is responsible for creating a new instance of an HTTP file collection value provider object. + + + Initializes a new instance of the class. + + + Returns a value provider object for the specified controller context. + An HTTP file collection value provider. + An object that encapsulates information about the HTTP request. + The parameter is null. + + + Represents an attribute that is used to restrict an action method so that the method handles only HTTP GET requests. + + + Initializes a new instance of the class. + + + Determines whether a request is a valid HTTP GET request. + true if the request is valid; otherwise, false. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + Encapsulates information about a method, such as its type, return type, and arguments. + + + Defines an object that is used to indicate that the requested resource was not found. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using a status description. + The status description. + + + Represents an attribute that is used to restrict an action method so that the method handles only HTTP POST requests. + + + Initializes a new instance of the class. + + + Determines whether a request is a valid HTTP POST request. + true if the request is valid; otherwise, false. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + Encapsulates information about a method, such as its type, return type, and arguments. + + + Binds a model to a posted file. + + + Initializes a new instance of the class. + + + Binds the model. + The bound value. + The controller context. + The binding context. + One or both parameters are null. + + + Represents an attribute that is used to restrict an action method so that the method handles only HTTP PUT requests. + + + Initializes a new instance of the class. + + + Determines whether a request is a valid HTTP PUT request. + true if the request is valid; otherwise, false. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + Encapsulates information about a method, such as its type, return type, and arguments. + + + Extends the class that contains the HTTP values that were sent by a client during a Web request. + + + Retrieves the HTTP data-transfer method override that was used by the client. + The HTTP data-transfer method override that was used by the client. + An object that contains the HTTP values that were sent by a client during a Web request. + The parameter is null. + The HTTP data-transfer method override was not implemented. + + + Provides a way to return an action result with a specific HTTP response status code and description. + + + Initializes a new instance of the class using a status code. + The status code. + + + Initializes a new instance of the class using a status code and status description. + The status code. + The status description. + + + Enables processing of the result of an action method by a custom type that inherits from the class. + The context in which the result is executed. The context information includes the controller, HTTP content, request context, and route data. + + + Gets the HTTP status code. + The HTTP status code. + + + Gets the HTTP status description. + the HTTP status description. + + + Represents the result of an unauthorized HTTP request. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the status description. + The status description. + + + Enumerates the HTTP verbs. + + + Retrieves the information or entity that is identified by the URI of the request. + + + Posts a new entity as an addition to a URI. + + + Replaces an entity that is identified by a URI. + + + Requests that a specified URI be deleted. + + + Retrieves the message headers for the information or entity that is identified by the URI of the request. + + + Defines the methods that are used in an action filter. + + + Called after the action method executes. + The filter context. + + + Called before an action method executes. + The filter context. + + + Defines the contract for an action invoker, which is used to invoke an action in response to an HTTP request. + + + Invokes the specified action by using the specified controller context. + true if the action was found; otherwise, false. + The controller context. + The name of the action. + + + Defines the methods that are required for an authorization filter. + + + Called when authorization is required. + The filter context. + + + Provides a way for the ASP.NET MVC validation framework to discover at run time whether a validator has support for client validation. + + + When implemented in a class, returns client validation rules for that class. + The client validation rules for this validator. + The model metadata. + The controller context. + + + Defines the methods that are required for a controller. + + + Executes the specified request context. + The request context. + + + Provides fine-grained control over how controllers are instantiated using dependency injection. + + + When implemented in a class, creates a controller. + The created controller. + The request context. + The controller type. + + + Defines the methods that are required for a controller factory. + + + Creates the specified controller by using the specified request context. + The controller. + The request context. + The name of the controller. + + + Gets the controller's session behavior. + The controller's session behavior. + The request context. + The name of the controller whose session behavior you want to get. + + + Releases the specified controller. + The controller. + + + Defines the methods that simplify service location and dependency resolution. + + + Resolves singly registered services that support arbitrary object creation. + The requested service or object. + The type of the requested service or object. + + + Resolves multiply registered services. + The requested services. + The type of the requested services. + + + Defines the methods that are required for an exception filter. + + + Called when an exception occurs. + The filter context. + + + Provides an interface for finding filters. + + + Returns an enumerator that contains all the instances in the service locator. + The enumerator that contains all the instances in the service locator. + The controller context. + The action descriptor. + + + Provides an interface for exposing attributes to the class. + + + When implemented in a class, provides metadata to the model metadata creation process. + The model metadata. + + + Defines the methods that are required for a model binder. + + + Binds the model to a value by using the specified controller context and binding context. + The bound value. + The controller context. + The binding context. + + + Defines methods that enable dynamic implementations of model binding for classes that implement the interface. + + + Returns the model binder for the specified type. + The model binder for the specified type. + The type of the model. + + + Defines members that specify the order of filters and whether multiple filters are allowed. + + + When implemented in a class, gets or sets a value that indicates whether multiple filters are allowed. + true if multiple filters are allowed; otherwise, false. + + + When implemented in a class, gets the filter order. + The filter order. + + + Enumerates the types of input controls. + + + A check box. + + + A hidden field. + + + A password box. + + + A radio button. + + + A text box. + + + Defines the methods that are required for a result filter. + + + Called after an action result executes. + The filter context. + + + Called before an action result executes. + The filter context. + + + Associates a route with an area in an ASP.NET MVC application. + + + Gets the name of the area to associate the route with. + The name of the area to associate the route with. + + + Defines the contract for temporary-data providers that store data that is viewed on the next request. + + + Loads the temporary data. + The temporary data. + The controller context. + + + Saves the temporary data. + The controller context. + The values. + + + Represents an interface that can skip request validation. + + + Retrieves the value of the object that is associated with the specified key. + The value of the object for the specified key. + The key. + true if validation should be skipped; otherwise, false. + + + Defines the methods that are required for a value provider in ASP.NET MVC. + + + Determines whether the collection contains the specified prefix. + true if the collection contains the specified prefix; otherwise, false. + The prefix to search for. + + + Retrieves a value object using the specified key. + The value object for the specified key. + The key of the value object to retrieve. + + + Defines the methods that are required for a view. + + + Renders the specified view context by using the specified the writer object. + The view context. + The writer object. + + + Defines the methods that are required for a view data dictionary. + + + Gets or sets the view data dictionary. + The view data dictionary. + + + Defines the methods that are required for a view engine. + + + Finds the specified partial view by using the specified controller context. + The partial view. + The controller context. + The name of the partial view. + true to specify that the view engine returns the cached view, if a cached view exists; otherwise, false. + + + Finds the specified view by using the specified controller context. + The page view. + The controller context. + The name of the view. + The name of the master. + true to specify that the view engine returns the cached view, if a cached view exists; otherwise, false. + + + Releases the specified view by using the specified controller context. + The controller context. + The view. + + + Defines the methods that are required in order to cache view locations in memory. + + + Gets the view location by using the specified HTTP context and the cache key. + The view location. + The HTTP context. + The cache key. + + + Inserts the specified view location into the cache by using the specified HTTP context and the cache key. + The HTTP context. + The cache key. + The virtual path. + + + Provides fine-grained control over how view pages are instantiated using dependency injection. + + + The created view page. + The controller context. + The type of the controller. + + + Sends JavaScript content to the response. + + + Initializes a new instance of the class. + + + Enables processing of the result of an action method by a custom type that inherits from the class. + The context within which the result is executed. + The parameter is null. + + + Gets or sets the script. + The script. + + + Specifies whether HTTP GET requests from the client are allowed. + + + HTTP GET requests from the client are allowed. + + + HTTP GET requests from the client are not allowed. + + + Represents a class that is used to send JSON-formatted content to the response. + + + Initializes a new instance of the class. + + + Gets or sets the content encoding. + The content encoding. + + + Gets or sets the type of the content. + The type of the content. + + + Gets or sets the data. + The data. + + + Enables processing of the result of an action method by a custom type that inherits from the class. + The context within which the result is executed. + The parameter is null. + + + Gets or sets a value that indicates whether HTTP GET requests from the client are allowed. + A value that indicates whether HTTP GET requests from the client are allowed. + + + Enables action methods to send and receive JSON-formatted text and to model-bind the JSON text to parameters of action methods. + + + Initializes a new instance of the class. + + + Returns a JSON value-provider object for the specified controller context. + A JSON value-provider object for the specified controller context. + The controller context. + + + Maps a browser request to a LINQ object. + + + Initializes a new instance of the class. + + + Binds the model by using the specified controller context and binding context. + The bound data object. If the model cannot be bound, this method returns null. + The context within which the controller operates. The context information includes the controller, HTTP content, request context, and route data. + The context within which the model is bound. The context includes information such as the model object, model name, model type, property filter, and value provider. + + + Represents an attribute that is used to associate a model type to a model-builder type. + + + Initializes a new instance of the class. + The type of the binder. + The parameter is null. + + + Gets or sets the type of the binder. + The type of the binder. + + + Retrieves an instance of the model binder. + A reference to an object that implements the interface. + An error occurred while an instance of the model binder was being created. + + + Represents a class that contains all model binders for the application, listed by binder type. + + + Initializes a new instance of the class. + + + Adds the specified item to the model binder dictionary. + The object to add to the instance. + The object is read-only. + + + Adds the specified item to the model binder dictionary using the specified key. + The key of the element to add. + The value of the element to add. + The object is read-only. + + is null. + An element that has the same key already exists in the object. + + + Removes all items from the model binder dictionary. + The object is read-only. + + + Determines whether the model binder dictionary contains a specified value. + true if is found in the model binder dictionary; otherwise, false. + The object to locate in the object. + + + Determines whether the model binder dictionary contains an element that has the specified key. + true if the model binder dictionary contains an element that has the specified key; otherwise, false. + The key to locate in the object. + + is null. + + + Copies the elements of the model binder dictionary to an array, starting at a specified index. + The one-dimensional array that is the destination of the elements copied from . The array must have zero-based indexing. + The zero-based index in at which copying starts. + + is null. + + is less than 0. + + is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source object is greater than the available space from to the end of the destination array. -or- Type cannot be cast automatically to the type of the destination array. + + + Gets the number of elements in the model binder dictionary. + The number of elements in the model binder dictionary. + + + Gets or sets the default model binder. + The default model binder. + + + Retrieves the model binder for the specified type. + The model binder. + The type of the model to retrieve. + The parameter is null. + + + Retrieves the model binder for the specified type or retrieves the default model binder. + The model binder. + The type of the model to retrieve. + true to retrieve the default model binder. + The parameter is null. + + + Returns an enumerator that can be used to iterate through the collection. + An enumerator that can be used to iterate through the collection. + + + Gets a value that indicates whether the model binder dictionary is read-only. + true if the model binder dictionary is read-only; otherwise, false. + + + Gets or sets the specified key in an object that implements the interface. + The key for the specified item. + The item key. + + + Gets a collection that contains the keys in the model binder dictionary. + A collection that contains the keys in the model binder dictionary. + + + Removes the first occurrence of the specified element from the model binder dictionary. + true if was successfully removed from the model binder dictionary; otherwise, false. This method also returns false if is not found in the model binder dictionary. + The object to remove from the object. + The object is read-only. + + + Removes the element that has the specified key from the model binder dictionary. + true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the model binder dictionary. + The key of the element to remove. + The object is read-only. + + is null. + + + Returns an enumerator that can be used to iterate through a collection. + An enumerator that can be used to iterate through the collection. + + + Gets the value that is associated with the specified key. + true if the object that implements contains an element that has the specified key; otherwise, false. + The key of the value to get. + When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. + + is null. + + + Gets a collection that contains the values in the model binder dictionary. + A collection that contains the values in the model binder dictionary. + + + Provides a container for model binder providers. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using a list of model binder providers. + A list of model binder providers. + + + Returns a model binder of the specified type. + A model binder of the specified type. + The type of the model binder. + + + Inserts a model binder provider into the at the specified index. + The index. + The model binder provider. + + + Replaces the model binder provider element at the specified index. + The index. + The model binder provider. + + + Provides a container for model binder providers. + + + Provides a registration point for model binder providers for applications that do not use dependency injection. + The model binder provider collection. + + + Provides global access to the model binders for the application. + + + Gets the model binders for the application. + The model binders for the application. + + + Provides the context in which a model binder functions. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the binding context. + The binding context. + + + Gets or sets a value that indicates whether the binder should use an empty prefix. + true if the binder should use an empty prefix; otherwise, false. + + + Gets or sets the model. + The model. + + + Gets or sets the model metadata. + The model metadata. + + + Gets or sets the name of the model. + The name of the model. + + + Gets or sets the state of the model. + The state of the model. + + + Gets or sets the type of the model. + The type of the model. + + + Gets or sets the property filter. + The property filter. + + + Gets the property metadata. + The property metadata. + + + Gets or sets the value provider. + The value provider. + + + Provides a container for an equality validation rule that is sent to the browser. + + + Initializes a new instance of the class. + The error message. + The model value used for equality comparison. + + + Provides a container for a range-validation rule that is sent to the browser. + + + Initializes a new instance of the class. + The error message. + The minimum value. + The maximum value. + + + Provides a container for a regular-expression client validation rule that is sent to the browser. + + + Initializes a new instance of the class. + The error message to display when the regular expression validation fails. + The regular expression. + + + Provides a container for a remote validation rule that is sent to the browser. + + + Initializes a new instance of the class. + The error message. + The URL for the validation parameters. + The HTTP method for the validation parameters. + + + Provides a container for client validation for required field. + + + Initializes a new instance of the class. + The error message to display when a value for the required field is not provided. + + + Provides a base class container for a client validation rule that is sent to the browser. + + + Initializes a new instance of the class. + + + Gets or sets the error message for the client validation rule. + The error message for the client validation rule. + + + Gets the list of validation parameters. + A list of validation parameters. + + + Gets or sets the validation type. + The validation type. + + + Provides a container for a string-length validation rule that is sent to the browser. + + + Initializes a new instance of the class. + The validation error message. + The minimum length of the string. + The maximum length of the string. + + + Represents an error that occurs during model binding. + + + Initializes a new instance of the class by using the specified exception. + The exception. + The parameter is null. + + + Initializes a new instance of the class by using the specified exception and error message. + The exception. + The error message. + The parameter is null. + + + Initializes a new instance of the class by using the specified error message. + The error message. + + + Gets or sets the error message. + The error message. + + + Gets or sets the exception object. + The exception object. + + + A collection of instances. + + + Initializes a new instance of the class. + + + Adds the specified object to the model-error collection. + The exception. + + + Adds the specified error message to the model-error collection. + The error message. + + + Provides a container for common metadata, for the class, and for the class for a data model. + + + Initializes a new instance of the class. + The provider. + The type of the container. + The model accessor. + The type of the model. + The name of the model. + + + Gets a dictionary that contains additional metadata about the model. + A dictionary that contains additional metadata about the model. + + + Gets or sets the type of the container for the model. + The type of the container for the model. + + + Gets or sets a value that indicates whether empty strings that are posted back in forms should be converted to null. + true if empty strings that are posted back in forms should be converted to null; otherwise, false. The default value is true. + + + Gets or sets meta information about the data type. + Meta information about the data type. + + + The default order value, which is 10000. + + + Gets or sets the description of the model. + The description of the model. The default value is null. + + + Gets or sets the display format string for the model. + The display format string for the model. + + + Gets or sets the display name of the model. + The display name of the model. + + + Gets or sets the edit format string of the model. + The edit format string of the model. + + + Returns the metadata from the parameter for the model. + The metadata. + An expression that identifies the model. + The view data dictionary. + The type of the parameter. + The type of the value. + + + Gets the metadata from the expression parameter for the model. + The metadata for the model. + An expression that identifies the model. + The view data dictionary. + + + Gets the display name for the model. + The display name for the model. + + + Returns the simple description of the model. + The simple description of the model. + + + Gets a list of validators for the model. + A list of validators for the model. + The controller context. + + + Gets or sets a value that indicates whether the model object should be rendered using associated HTML elements. + true if the associated HTML elements that contains the model object should be included with the object; otherwise, false. + + + Gets or sets a value that indicates whether the model is a complex type. + A value that indicates whether the model is considered a complex type by the MVC framework. + + + Gets a value that indicates whether the type is nullable. + true if the type is nullable; otherwise, false. + + + Gets or sets a value that indicates whether the model is read-only. + true if the model is read-only; otherwise, false. + + + Gets or sets a value that indicates whether the model is required. + true if the model is required; otherwise, false. + + + Gets the value of the model. + The value of the model. For more information about , see the entry ASP.NET MVC 2 Templates, Part 2: ModelMetadata on Brad Wilson's blog + + + Gets the type of the model. + The type of the model. + + + Gets or sets the string to display for null values. + The string to display for null values. + + + Gets or sets a value that represents order of the current metadata. + The order value of the current metadata. + + + Gets a collection of model metadata objects that describe the properties of the model. + A collection of model metadata objects that describe the properties of the model. + + + Gets the property name. + The property name. + + + Gets or sets the provider. + The provider. + + + Gets or sets a value that indicates whether request validation is enabled. + true if request validation is enabled; otherwise, false. + + + Gets or sets a short display name. + The short display name. + + + Gets or sets a value that indicates whether the property should be displayed in read-only views such as list and detail views. + true if the model should be displayed in read-only views; otherwise, false. + + + Gets or sets a value that indicates whether the model should be displayed in editable views. + true if the model should be displayed in editable views; otherwise, false. + + + Gets or sets the simple display string for the model. + The simple display string for the model. + + + Gets or sets a hint that suggests what template to use for this model. + A hint that suggests what template to use for this model. + + + Gets or sets a value that can be used as a watermark. + The watermark. + + + Provides an abstract base class for a custom metadata provider. + + + When overridden in a derived class, initializes a new instance of the object that derives from the class. + + + Gets a object for each property of a model. + A object for each property of a model. + The container. + The type of the container. + + + Gets metadata for the specified property. + A object for the property. + The model accessor. + The type of the container. + The property to get the metadata model for. + + + Gets metadata for the specified model accessor and model type. + A object for the specified model accessor and model type. + The model accessor. + The type of the model. + + + Provides a container for the current instance. + + + Gets or sets the current object. + The current object. + + + Encapsulates the state of model binding to a property of an action-method argument, or to the argument itself. + + + Initializes a new instance of the class. + + + Returns a object that contains any errors that occurred during model binding. + The errors. + + + Returns a object that encapsulates the value that was being bound during model binding. + The value. + + + Represents the state of an attempt to bind a posted form to an action method, which includes validation information. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using values that are copied from the specified model-state dictionary. + The model-state dictionary. + The parameter is null. + + + Adds the specified item to the model-state dictionary. + The object to add to the model-state dictionary. + The model-state dictionary is read-only. + + + Adds an element that has the specified key and value to the model-state dictionary. + The key of the element to add. + The value of the element to add. + The model-state dictionary is read-only. + + is null. + An element that has the specified key already occurs in the model-state dictionary. + + + Adds the specified model error to the errors collection for the model-state dictionary that is associated with the specified key. + The key. + The exception. + + + Adds the specified error message to the errors collection for the model-state dictionary that is associated with the specified key. + The key. + The error message. + + + Removes all items from the model-state dictionary. + The model-state dictionary is read-only. + + + Determines whether the model-state dictionary contains a specific value. + true if is found in the model-state dictionary; otherwise, false. + The object to locate in the model-state dictionary. + + + Determines whether the model-state dictionary contains the specified key. + true if the model-state dictionary contains the specified key; otherwise, false. + The key to locate in the model-state dictionary. + + + Copies the elements of the model-state dictionary to an array, starting at a specified index. + The one-dimensional array that is the destination of the elements copied from the object. The array must have zero-based indexing. + The zero-based index in at which copying starts. + + is null. + + is less than 0. + + is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source collection is greater than the available space from to the end of the destination .-or- Type cannot be cast automatically to the type of the destination . + + + Gets the number of key/value pairs in the collection. + The number of key/value pairs in the collection. + + + Returns an enumerator that can be used to iterate through the collection. + An enumerator that can be used to iterate through the collection. + + + Gets a value that indicates whether the collection is read-only. + true if the collection is read-only; otherwise, false. + + + Gets a value that indicates whether this instance of the model-state dictionary is valid. + true if this instance is valid; otherwise, false. + + + Determines whether there are any objects that are associated with or prefixed with the specified key. + true if the model-state dictionary contains a value that is associated with the specified key; otherwise, false. + The key. + The parameter is null. + + + Gets or sets the value that is associated with the specified key. + The model state item. + The key. + + + Gets a collection that contains the keys in the dictionary. + A collection that contains the keys of the model-state dictionary. + + + Copies the values from the specified object into this dictionary, overwriting existing values if keys are the same. + The dictionary. + + + Removes the first occurrence of the specified object from the model-state dictionary. + true if was successfully removed the model-state dictionary; otherwise, false. This method also returns false if is not found in the model-state dictionary. + The object to remove from the model-state dictionary. + The model-state dictionary is read-only. + + + Removes the element that has the specified key from the model-state dictionary. + true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the model-state dictionary. + The key of the element to remove. + The model-state dictionary is read-only. + + is null. + + + Sets the value for the specified key by using the specified value provider dictionary. + The key. + The value. + + + Returns an enumerator that can be used to iterate through the collection. + An enumerator that can be used to iterate through the collection. + + + Attempts to gets the value that is associated with the specified key. + true if the object that implements contains an element that has the specified key; otherwise, false. + The key of the value to get. + When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. + + is null. + + + Gets a collection that contains the values in the dictionary. + A collection that contains the values of the model-state dictionary. + + + Provides a container for a validation result. + + + Initializes a new instance of the class. + + + Gets or sets the name of the member. + The name of the member. + + + Gets or sets the validation result message. + The validation result message. + + + Provides a base class for implementing validation logic. + + + Called from constructors in derived classes to initialize the class. + The metadata. + The controller context. + + + Gets the controller context. + The controller context. + + + When implemented in a derived class, returns metadata for client validation. + The metadata for client validation. + + + Returns a composite model validator for the model. + A composite model validator for the model. + The metadata. + The controller context. + + + Gets or sets a value that indicates whether a model property is required. + true if the model property is required; otherwise, false. + + + Gets the metadata for the model validator. + The metadata for the model validator. + + + When implemented in a derived class, validates the object. + A list of validation results. + The container. + + + Provides a list of validators for a model. + + + When implemented in a derived class, initializes a new instance of the class. + + + Gets a list of validators. + A list of validators. + The metadata. + The context. + + + Provides a container for a list of validation providers. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using a list of model-validation providers. + A list of model-validation providers. + + + Returns the list of model validators. + The list of model validators. + The model metadata. + The controller context. + + + Inserts a model-validator provider into the collection. + The zero-based index at which item should be inserted. + The model-validator provider object to insert. + + + Replaces the model-validator provider element at the specified index. + The zero-based index of the model-validator provider element to replace. + The new value for the model-validator provider element. + + + Provides a container for the current validation provider. + + + Gets the model validator provider collection. + The model validator provider collection. + + + Represents a list of items that users can select more than one item from. + + + Initializes a new instance of the class by using the specified items to include in the list. + The items. + The parameter is null. + + + Initializes a new instance of the class by using the specified items to include in the list and the selected values. + The items. + The selected values. + The parameter is null. + + + Initializes a new instance of the class by using the items to include in the list, the data value field, and the data text field. + The items. + The data value field. + The data text field. + The parameter is null. + + + Initializes a new instance of the class by using the items to include in the list, the data value field, the data text field, and the selected values. + The items. + The data value field. + The data text field. + The selected values. + The parameter is null. + + + Gets or sets the data text field. + The data text field. + + + Gets or sets the data value field. + The data value field. + + + Returns an enumerator that can be used to iterate through the collection. + An enumerator that can be used to iterate through the collection. + + + Gets or sets the items in the list. + The items in the list. + + + Gets or sets the selected values. + The selected values. + + + Returns an enumerator can be used to iterate through a collection. + An enumerator that can be used to iterate through the collection. + + + When implemented in a derived class, provides a metadata class that contains a reference to the implementation of one or more of the filter interfaces, the filter's order, and the filter's scope. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class and specifies the order of filters and whether multiple filters are allowed. + true to specify that multiple filters of the same type are allowed; otherwise, false. + The filter order. + + + Gets a value that indicates whether more than one instance of the filter attribute can be specified. + true if more than one instance of the filter attribute is allowed; otherwise, false. + + + Gets a value that indicates the order in which a filter is applied. + A value that indicates the order in which a filter is applied. + + + Selects the controller that will handle an HTTP request. + + + Initializes a new instance of the class. + The request context. + The parameter is null. + + + Adds the version header by using the specified HTTP context. + The HTTP context. + + + Called by ASP.NET to begin asynchronous request processing. + The status of the asynchronous call. + The HTTP context. + The asynchronous callback method. + The state of the asynchronous object. + + + Called by ASP.NET to begin asynchronous request processing using the base HTTP context. + The status of the asynchronous call. + The HTTP context. + The asynchronous callback method. + The state of the asynchronous object. + + + Gets or sets a value that indicates whether the MVC response header is disabled. + true if the MVC response header is disabled; otherwise, false. + + + Called by ASP.NET when asynchronous request processing has ended. + The asynchronous result. + + + Gets a value that indicates whether another request can use the instance. + true if the instance is reusable; otherwise, false. + + + Contains the header name of the ASP.NET MVC version. + + + Processes the request by using the specified HTTP request context. + The HTTP context. + + + Processes the request by using the specified base HTTP request context. + The HTTP context. + + + Gets the request context. + The request context. + + + Called by ASP.NET to begin asynchronous request processing using the base HTTP context. + The status of the asynchronous call. + The HTTP context. + The asynchronous callback method. + The data. + + + Called by ASP.NET when asynchronous request processing has ended. + The asynchronous result. + + + Gets a value that indicates whether another request can use the instance. + true if the instance is reusable; otherwise, false. + + + Enables processing of HTTP Web requests by a custom HTTP handler that implements the interface. + An object that provides references to the intrinsic server objects (for example, Request, Response, Session, and Server) that are used to service HTTP requests. + + + Represents an HTML-encoded string that should not be encoded again. + + + Initializes a new instance of the class. + The string to create. If no value is assigned, the object is created using an empty-string value. + + + Creates an HTML-encoded string using the specified text value. + An HTML-encoded string. + The value of the string to create . + + + Contains an empty HTML string. + + + Determines whether the specified string contains content or is either null or empty. + true if the string is null or empty; otherwise, false. + The string. + + + Verifies and processes an HTTP request. + + + Initializes a new instance of the class. + + + Called by ASP.NET to begin asynchronous request processing. + The status of the asynchronous call. + The HTTP context. + The asynchronous callback method. + The state. + + + Called by ASP.NET to begin asynchronous request processing. + The status of the asynchronous call. + The base HTTP context. + The asynchronous callback method. + The state. + + + Called by ASP.NET when asynchronous request processing has ended. + The asynchronous result. + + + Called by ASP.NET to begin asynchronous request processing. + The status of the asynchronous call. + The context. + The asynchronous callback method. + An object that contains data. + + + Called by ASP.NET when asynchronous request processing has ended. + The status of the asynchronous operations. + + + Verifies and processes an HTTP request. + The HTTP handler. + The HTTP context. + + + Creates an object that implements the IHttpHandler interface and passes the request context to it. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified factory controller object. + The controller factory. + + + Returns the HTTP handler by using the specified HTTP context. + The HTTP handler. + The request context. + + + Returns the session behavior. + The session behavior. + The request context. + + + Returns the HTTP handler by using the specified request context. + The HTTP handler. + The request context. + + + Creates instances of files. + + + Initializes a new instance of the class. + + + Creates a Razor host. + A Razor host. + The virtual path to the target file. + The physical path to the target file. + + + Extends a NameValueCollection object so that the collection can be copied to a specified dictionary. + + + Copies the specified collection to the specified destination. + The collection. + The destination. + + + Copies the specified collection to the specified destination, and optionally replaces previous entries. + The collection. + The destination. + true to replace previous entries; otherwise, false. + + + Represents the base class for value providers whose values come from a object. + + + Initializes a new instance of the class using the specified unvalidated collection. + A collection that contains the values that are used to initialize the provider. + A collection that contains the values that are used to initialize the provider. This collection will not be validated. + An object that contains information about the target culture. + + + Initializes a new instance of the class. + A collection that contains the values that are used to initialize the provider. + An object that contains information about the target culture. + The parameter is null. + + + Determines whether the collection contains the specified prefix. + true if the collection contains the specified prefix; otherwise, false. + The prefix to search for. + The parameter is null. + + + Returns a value object using the specified key. + The value object for the specified key. + The key of the value object to retrieve. + The parameter is null. + + + Returns a value object using the specified key and validation directive. + The value object for the specified key. + The key. + true if validation should be skipped; otherwise, false. + + + Provides a convenience wrapper for the attribute. + + + Initializes a new instance of the class. + + + Represents an attribute that is used to indicate that a controller method is not an action method. + + + Initializes a new instance of the class. + + + Determines whether the attribute marks a method that is not an action method by using the specified controller context. + true if the attribute marks a valid non-action method; otherwise, false. + The controller context. + The method information. + + + Represents an attribute that is used to mark an action method whose output will be cached. + + + Initializes a new instance of the class. + + + Gets or sets the cache profile name. + The cache profile name. + + + Gets or sets the child action cache. + The child action cache. + + + Gets or sets the cache duration, in seconds. + The cache duration. + + + Returns a value that indicates whether a child action cache is active. + true if the child action cache is active; otherwise, false. + The controller context. + + + Gets or sets the location. + The location. + + + Gets or sets a value that indicates whether to store the cache. + true if the cache should be stored; otherwise, false. + + + This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code. + The filter context. + + + This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code. + The filter context. + + + This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code. + The filter context. + + + This method is an implementation of and supports the ASP.NET MVC infrastructure. It is not intended to be used directly from your code. + The filter context. + + + Called before the action result executes. + The filter context, which encapsulates information for using . + The parameter is null. + + + Gets or sets the SQL dependency. + The SQL dependency. + + + Gets or sets the vary-by-content encoding. + The vary-by-content encoding. + + + Gets or sets the vary-by-custom value. + The vary-by-custom value. + + + Gets or sets the vary-by-header value. + The vary-by-header value. + + + Gets or sets the vary-by-param value. + The vary-by-param value. + + + Encapsulates information for binding action-method parameters to a data model. + + + Initializes a new instance of the class. + + + Gets the model binder. + The model binder. + + + Gets a comma-delimited list of property names for which binding is disabled. + The exclude list. + + + Gets a comma-delimited list of property names for which binding is enabled. + The include list. + + + Gets the prefix to use when the MVC framework binds a value to an action parameter or to a model property. + The prefix. + + + Contains information that describes a parameter. + + + Initializes a new instance of the class. + + + Gets the action descriptor. + The action descriptor. + + + Gets the binding information. + The binding information. + + + Gets the default value of the parameter. + The default value of the parameter. + + + Returns an array of custom attributes that are defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + + + Returns an array of custom attributes that are defined for this member, identified by type. + An array of custom attributes, or an empty array if no custom attributes exist. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + The parameter is null. + + + Indicates whether one or more instances of a custom attribute type are defined for this member. + true if the custom attribute type is defined for this member; otherwise, false. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The parameter is null. + + + Gets the name of the parameter. + The name of the parameter. + + + Gets the type of the parameter. + The type of the parameter. + + + Represents a base class that is used to send a partial view to the response. + + + Initializes a new instance of the class. + + + Returns the object that is used to render the view. + The view engine result. + The controller context. + An error occurred while the method was attempting to find the view. + + + Provides a registration point for ASP.NET Razor pre-application start code. + + + Registers Razor pre-application start code. + + + Represents a value provider for query strings that are contained in a object. + + + Initializes a new instance of the class. + An object that encapsulates information about the current HTTP request. + + + Represents a class that is responsible for creating a new instance of a query-string value-provider object. + + + Initializes a new instance of the class. + + + Returns a value-provider object for the specified controller context. + A query-string value-provider object. + An object that encapsulates information about the current HTTP request. + The parameter is null. + + + Provides an adapter for the attribute. + + + Initializes a new instance of the class. + The model metadata. + The controller context. + The range attribute. + + + Gets a list of client validation rules for a range check. + A list of client validation rules for a range check. + + + Represents the class used to create views that have Razor syntax. + + + Initializes a new instance of the class. + The controller context. + The view path. + The layout or master page. + A value that indicates whether view start files should be executed before the view. + The set of extensions that will be used when looking up view start files. + + + Initializes a new instance of the class using the view page activator. + The controller context. + The view path. + The layout or master page. + A value that indicates whether view start files should be executed before the view. + The set of extensions that will be used when looking up view start files. + The view page activator. + + + Gets the layout or master page. + The layout or master page. + + + Renders the specified view context by using the specified writer and instance. + The view context. + The writer that is used to render the view to the response. + The instance. + + + Gets a value that indicates whether view start files should be executed before the view. + A value that indicates whether view start files should be executed before the view. + + + Gets or sets the set of file extensions that will be used when looking up view start files. + The set of file extensions that will be used when looking up view start files. + + + Represents a view engine that is used to render a Web page that uses the ASP.NET Razor syntax. + + + Initializes a new instance of the class. + + + + Creates a partial view using the specified controller context and partial path. + The partial view. + The controller context. + The path to the partial view. + + + Creates a view by using the specified controller context and the paths of the view and master view. + The view. + The controller context. + The path to the view. + The path to the master view. + + + Controls the processing of application actions by redirecting to a specified URI. + + + Initializes a new instance of the class. + The target URL. + The parameter is null. + + + Initializes a new instance of the class using the specified URL and permanent-redirection flag. + The URL. + A value that indicates whether the redirection should be permanent. + + + Enables processing of the result of an action method by a custom type that inherits from the class. + The context within which the result is executed. + The parameter is null. + + + Gets a value that indicates whether the redirection should be permanent. + true if the redirection should be permanent; otherwise, false. + + + Gets or sets the target URL. + The target URL. + + + Represents a result that performs a redirection by using the specified route values dictionary. + + + Initializes a new instance of the class by using the specified route name and route values. + The name of the route. + The route values. + + + Initializes a new instance of the class by using the specified route name, route values, and permanent-redirection flag. + The name of the route. + The route values. + A value that indicates whether the redirection should be permanent. + + + Initializes a new instance of the class by using the specified route values. + The route values. + + + Enables processing of the result of an action method by a custom type that inherits from the class. + The context within which the result is executed. + The parameter is null. + + + Gets a value that indicates whether the redirection should be permanent. + true if the redirection should be permanent; otherwise, false. + + + Gets or sets the name of the route. + The name of the route. + + + Gets or sets the route values. + The route values. + + + Contains information that describes a reflected action method. + + + Initializes a new instance of the class. + The action-method information. + The name of the action. + The controller descriptor. + Either the or parameter is null. + The parameter is null or empty. + + + Gets the name of the action. + The name of the action. + + + Gets the controller descriptor. + The controller descriptor. + + + Executes the specified controller context by using the specified action-method parameters. + The action return value. + The controller context. + The parameters. + The or parameter is null. + + + Returns an array of custom attributes defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + + + Returns an array of custom attributes defined for this member, identified by type. + An array of custom attributes, or an empty array if no custom attributes exist. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + + + Retrieves the parameters of the action method. + The parameters of the action method. + + + Retrieves the action selectors. + The action selectors. + + + Indicates whether one or more instances of a custom attribute type are defined for this member. + true if the custom attribute type is defined for this member; otherwise, false. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + + + Gets or sets the action-method information. + The action-method information. + + + Gets the unique ID for the reflected action descriptor using lazy initialization. + The unique ID. + + + Contains information that describes a reflected controller. + + + Initializes a new instance of the class. + The type of the controller. + The parameter is null. + + + Gets the type of the controller. + The type of the controller. + + + Finds the specified action for the specified controller context. + The information about the action. + The controller context. + The name of the action. + The parameter is null. + The parameter is null or empty. + + + Returns the list of actions for the controller. + A list of action descriptors for the controller. + + + Returns an array of custom attributes that are defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + + + Returns an array of custom attributes that are defined for this member, identified by type. + An array of custom attributes, or an empty array if no custom attributes exist. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + + + Returns a value that indicates whether one or more instances of a custom attribute type are defined for this member. + true if the custom attribute type is defined for this member; otherwise, false. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + + + Contains information that describes a reflected action-method parameter. + + + Initializes a new instance of the class. + The parameter information. + The action descriptor. + The or parameter is null. + + + Gets the action descriptor. + The action descriptor. + + + Gets the binding information. + The binding information. + + + Gets the default value of the reflected parameter. + The default value of the reflected parameter. + + + Returns an array of custom attributes that are defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + + + Returns an array of custom attributes that are defined for this member, identified by type. + An array of custom attributes, or an empty array if no custom attributes exist. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + The custom attribute type cannot be loaded. + There is more than one attribute of type defined for this member. + + + Returns a value that indicates whether one or more instances of a custom attribute type are defined for this member. + true if the custom attribute type is defined for this member; otherwise, false. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + + + Gets or sets the parameter information. + The parameter information. + + + Gets the name of the parameter. + The name of the parameter. + + + Gets the type of the parameter. + The type of the parameter. + + + Provides an adapter for the attribute. + + + Initializes a new instance of the class. + The model metadata. + The controller context. + The regular expression attribute. + + + Gets a list of regular-expression client validation rules. + A list of regular-expression client validation rules. + + + Provides an attribute that uses the jQuery validation plug-in remote validator. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified route name. + The route name. + + + Initializes a new instance of the class using the specified action-method name and controller name. + The name of the action method. + The name of the controller. + + + Initializes a new instance of the class using the specified action-method name, controller name, and area name. + The name of the action method. + The name of the controller. + The name of the area. + + + Gets or sets the additional fields that are required for validation. + The additional fields that are required for validation. + + + Returns a comma-delimited string of validation field names. + A comma-delimited string of validation field names. + The name of the validation property. + + + Formats the error message that is displayed when validation fails. + A formatted error message. + A name to display with the error message. + + + Formats the property for client validation by prepending an asterisk (*) and a dot. + The string "*." Is prepended to the property. + The property. + + + Gets a list of client validation rules for the property. + A list of remote client validation rules for the property. + The model metadata. + The controller context. + + + Gets the URL for the remote validation call. + The URL for the remote validation call. + The controller context. + + + Gets or sets the HTTP method used for remote validation. + The HTTP method used for remote validation. The default value is "Get". + + + This method always returns true. + true + The validation target. + + + Gets the route data dictionary. + The route data dictionary. + + + Gets or sets the route name. + The route name. + + + Gets the route collection from the route table. + The route collection from the route table. + + + Provides an adapter for the attribute. + + + Initializes a new instance of the class. + The model metadata. + The controller context. + The required attribute. + + + Gets a list of required-value client validation rules. + A list of required-value client validation rules. + + + Represents an attribute that forces an unsecured HTTP request to be re-sent over HTTPS. + + + Initializes a new instance of the class. + + + Handles unsecured HTTP requests that are sent to the action method. + An object that encapsulates information that is required in order to use the attribute. + The HTTP request contains an invalid transfer method override. All GET requests are considered invalid. + + + Determines whether a request is secured (HTTPS) and, if it is not, calls the method. + An object that encapsulates information that is required in order to use the attribute. + The parameter is null. + + + Provides the context for the method of the class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The controller context. + The result object. + true to cancel execution; otherwise, false. + The exception object. + The parameter is null. + + + Gets or sets a value that indicates whether this instance is canceled. + true if the instance is canceled; otherwise, false. + + + Gets or sets the exception object. + The exception object. + + + Gets or sets a value that indicates whether the exception has been handled. + true if the exception has been handled; otherwise, false. + + + Gets or sets the action result. + The action result. + + + Provides the context for the method of the class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified controller context and action result. + The controller context. + The action result. + The parameter is null. + + + Gets or sets a value that indicates whether this value is "cancel". + true if the value is "cancel"; otherwise, false. + + + Gets or sets the action result. + The action result. + + + Extends a object for MVC routing. + + + Returns an object that contains information about the route and virtual path that are the result of generating a URL in the current area. + An object that contains information about the route and virtual path that are the result of generating a URL in the current area. + An object that contains the routes for the applications. + An object that encapsulates information about the requested route. + The name of the route to use when information about the URL path is retrieved. + An object that contains the parameters for a route. + + + Returns an object that contains information about the route and virtual path that are the result of generating a URL in the current area. + An object that contains information about the route and virtual path that are the result of generating a URL in the current area. + An object that contains the routes for the applications. + An object that encapsulates information about the requested route. + An object that contains the parameters for a route. + + + Ignores the specified URL route for the given list of available routes. + A collection of routes for the application. + The URL pattern for the route to ignore. + The or parameter is null. + + + Ignores the specified URL route for the given list of the available routes and a list of constraints. + A collection of routes for the application. + The URL pattern for the route to ignore. + A set of expressions that specify values for the parameter. + The or parameter is null. + + + Maps the specified URL route. + A reference to the mapped route. + A collection of routes for the application. + The name of the route to map. + The URL pattern for the route. + The or parameter is null. + + + Maps the specified URL route and sets default route values. + A reference to the mapped route. + A collection of routes for the application. + The name of the route to map. + The URL pattern for the route. + An object that contains default route values. + The or parameter is null. + + + Maps the specified URL route and sets default route values and constraints. + A reference to the mapped route. + A collection of routes for the application. + The name of the route to map. + The URL pattern for the route. + An object that contains default route values. + A set of expressions that specify values for the parameter. + The or parameter is null. + + + Maps the specified URL route and sets default route values, constraints, and namespaces. + A reference to the mapped route. + A collection of routes for the application. + The name of the route to map. + The URL pattern for the route. + An object that contains default route values. + A set of expressions that specify values for the parameter. + A set of namespaces for the application. + The or parameter is null. + + + Maps the specified URL route and sets default route values and namespaces. + A reference to the mapped route. + A collection of routes for the application. + The name of the route to map. + The URL pattern for the route. + An object that contains default route values. + A set of namespaces for the application. + The or parameter is null. + + + Maps the specified URL route and sets the namespaces. + A reference to the mapped route. + A collection of routes for the application. + The name of the route to map. + The URL pattern for the route. + A set of namespaces for the application. + The or parameter is null. + + + Represents a value provider for route data that is contained in an object that implements the interface. + + + Initializes a new instance of the class. + An object that contain information about the HTTP request. + + + Represents a factory for creating route-data value provider objects. + + + Initialized a new instance of the class. + + + Returns a value-provider object for the specified controller context. + A value-provider object. + An object that encapsulates information about the current HTTP request. + The parameter is null. + + + Represents a list that lets users select one item. + + + Initializes a new instance of the class by using the specified items for the list. + The items. + + + Initializes a new instance of the class by using the specified items for the list and a selected value. + The items. + The selected value. + + + Initializes a new instance of the class by using the specified items for the list, the data value field, and the data text field. + The items. + The data value field. + The data text field. + + + Initializes a new instance of the class by using the specified items for the list, the data value field, the data text field, and a selected value. + The items. + The data value field. + The data text field. + The selected value. + + + Gets the list value that was selected by the user. + The selected value. + + + Represents the selected item in an instance of the class. + + + Initializes a new instance of the class. + + + Gets or sets a value that indicates whether this is selected. + true if the item is selected; otherwise, false. + + + Gets or sets the text of the selected item. + The text. + + + Gets or sets the value of the selected item. + The value. + + + Specifies the session state of the controller. + + + Initializes a new instance of the class + The type of the session state. + + + Get the session state behavior for the controller. + The session state behavior for the controller. + + + Provides session-state data to the current object. + + + Initializes a new instance of the class. + + + Loads the temporary data by using the specified controller context. + The temporary data. + The controller context. + An error occurred when the session context was being retrieved. + + + Saves the specified values in the temporary data dictionary by using the specified controller context. + The controller context. + The values. + An error occurred the session context was being retrieved. + + + Provides an adapter for the attribute. + + + Initializes a new instance of the class. + The model metadata. + The controller context. + The string-length attribute. + + + Gets a list of string-length client validation rules. + A list of string-length client validation rules. + + + Represents a set of data that persists only from one request to the next. + + + Initializes a new instance of the class. + + + Adds an element that has the specified key and value to the object. + The key of the element to add. + The value of the element to add. + The object is read-only. + + is null. + An element that has the same key already exists in the object. + + + Removes all items from the instance. + The object is read-only. + + + Determines whether the instance contains an element that has the specified key. + true if the instance contains an element that has the specified key; otherwise, false. + The key to locate in the instance. + + is null. + + + Determines whether the dictionary contains the specified value. + true if the dictionary contains the specified value; otherwise, false. + The value. + + + Gets the number of elements in the object. + The number of elements in the object. + + + Gets the enumerator. + The enumerator. + + + Gets or sets the object that has the specified key. + The object that has the specified key. + The key to access. + + + Marks all keys in the dictionary for retention. + + + Marks the specified key in the dictionary for retention. + The key to retain in the dictionary. + + + Gets an object that contains the keys of elements in the object. + The keys of the elements in the object. + + + Loads the specified controller context by using the specified data provider. + The controller context. + The temporary data provider. + + + Returns an object that contains the element that is associated with the specified key, without marking the key for deletion. + An object that contains the element that is associated with the specified key. + The key of the element to return. + + + Removes the element that has the specified key from the object. + true if the element was removed successfully; otherwise, false. This method also returns false if was not found in the . instance. + The key of the element to remove. + The object is read-only. + + is null. + + + Saves the specified controller context by using the specified data provider. + The controller context. + The temporary data provider. + + + Adds the specified key/value pair to the dictionary. + The key/value pair. + + + Determines whether a sequence contains a specified element by using the default equality comparer. + true if the dictionary contains the specified key/value pair; otherwise, false. + The key/value pair to search for. + + + Copies a key/value pair to the specified array at the specified index. + The target array. + The index. + + + Gets a value that indicates whether the dictionary is read-only. + true if the dictionary is read-only; otherwise, false. + + + Deletes the specified key/value pair from the dictionary. + true if the key/value pair was removed successfully; otherwise, false. + The key/value pair. + + + Returns an enumerator that can be used to iterate through a collection. + An object that can be used to iterate through the collection. + + + Gets the value of the element that has the specified key. + true if the object that implements contains an element that has the specified key; otherwise, false. + The key of the value to get. + When this method returns, the value that is associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. + + is null. + + + Gets the object that contains the values in the object. + The values of the elements in the object that implements . + + + Encapsulates information about the current template context. + + + Initializes a new instance of the class. + + + Gets or sets the formatted model value. + The formatted model value. + + + Retrieves the full DOM ID of a field using the specified HTML name attribute. + The full DOM ID. + The value of the HTML name attribute. + + + Retrieves the fully qualified name (including a prefix) for a field using the specified HTML name attribute. + The prefixed name of the field. + The value of the HTML name attribute. + + + Gets or sets the HTML field prefix. + The HTML field prefix. + + + Contains the number of objects that were visited by the user. + The number of objects. + + + Determines whether the template has been visited by the user. + true if the template has been visited by the user; otherwise, false. + An object that encapsulates information that describes the model. + + + Contains methods to build URLs for ASP.NET MVC within an application. + + + Initializes a new instance of the class using the specified request context. + An object that contains information about the current request and about the route that it matched. + The parameter is null. + + + Initializes a new instance of the class by using the specified request context and route collection. + An object that contains information about the current request and about the route that it matched. + A collection of routes. + The or the parameter is null. + + + Generates a fully qualified URL to an action method by using the specified action name. + The fully qualified URL to an action method. + The name of the action method. + + + Generates a fully qualified URL to an action method by using the specified action name and route values. + The fully qualified URL to an action method. + The name of the action method. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + + + Generates a fully qualified URL to an action method by using the specified action name and controller name. + The fully qualified URL to an action method. + The name of the action method. + The name of the controller. + + + Generates a fully qualified URL to an action method by using the specified action name, controller name, and route values. + The fully qualified URL to an action method. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + + + Generates a fully qualified URL to an action method by using the specified action name, controller name, route values, and protocol to use. + The fully qualified URL to an action method. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + The protocol for the URL, such as "http" or "https". + + + Generates a fully qualified URL to an action method by using the specified action name, controller name, and route values. + The fully qualified URL to an action method. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. + + + Generates a fully qualified URL for an action method by using the specified action name, controller name, route values, protocol to use, and host name. + The fully qualified URL to an action method. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. + The protocol for the URL, such as "http" or "https". + The host name for the URL. + + + Generates a fully qualified URL to an action method for the specified action name and route values. + The fully qualified URL to an action method. + The name of the action method. + An object that contains the parameters for a route. + + + Converts a virtual (relative) path to an application absolute path. + The application absolute path. + The virtual path of the content. + + + Encodes special characters in a URL string into character-entity equivalents. + An encoded URL string. + The text to encode. + + + Returns a string that contains a content URL. + A string that contains a content URL. + The content path. + The HTTP context. + + + Returns a string that contains a URL. + A string that contains a URL. + The route name. + The action name. + The controller name. + The HTTP protocol. + The host name. + The fragment. + The route values. + The route collection. + The request context. + true to include implicit MVC values; otherwise false. + + + Returns a string that contains a URL. + A string that contains a URL. + The route name. + The action name. + The controller name. + The route values. + The route collection. + The request context. + true to include implicit MVC values; otherwise. false. + + + Returns a value that indicates whether the URL is local. + true if the URL is local; otherwise, false. + The URL. + + + Gets information about an HTTP request that matches a defined route. + The request context. + + + Gets a collection that contains the routes that are registered for the application. + The route collection. + + + Generates a fully qualified URL for the specified route values. + The fully qualified URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + + + Generates a fully qualified URL for the specified route name. + The fully qualified URL. + The name of the route that is used to generate the URL. + + + Generates a fully qualified URL for the specified route values by using a route name. + The fully qualified URL. + The name of the route that is used to generate the URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + + + Generates a fully qualified URL for the specified route values by using a route name and the protocol to use. + The fully qualified URL. + The name of the route that is used to generate the URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + The protocol for the URL, such as "http" or "https". + + + Generates a fully qualified URL for the specified route values by using a route name. + The fully qualified URL. + The name of the route that is used to generate the URL. + An object that contains the parameters for a route. + + + Generates a fully qualified URL for the specified route values by using the specified route name, protocol to use, and host name. + The fully qualified URL. + The name of the route that is used to generate the URL. + An object that contains the parameters for a route. + The protocol for the URL, such as "http" or "https". + The host name for the URL. + + + Generates a fully qualified URL for the specified route values. + The fully qualified URL. + An object that contains the parameters for a route. + + + Represents an optional parameter that is used by the class during routing. + + + Contains the read-only value for the optional parameter. + + + Returns an empty string. This method supports the ASP.NET MVC infrastructure and is not intended to be used directly from your code. + An empty string. + + + Provides an object adapter that can be validated. + + + Initializes a new instance of the class. + The model metadata. + The controller context. + + + Validates the specified object. + A list of validation results. + The container. + + + Represents an attribute that is used to detect whether a server request has been tampered with. + + + Initializes a new instance of the class. + + + Called when authorization is required. + The filter context. + The parameter is null. + + + Gets or sets the salt string. + The salt string. + + + Represents an attribute that is used to mark action methods whose input must be validated. + + + Initializes a new instance of the class. + true to enable validation. + + + Gets or sets a value that indicates whether to enable validation. + true if validation is enabled; otherwise, false. + + + Called when authorization is required. + The filter context. + The parameter is null. + + + Represents the collection of value-provider objects for the application. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class and registers the specified value providers. + The list of value providers to register. + + + Determines whether the collection contains the specified prefix. + true if the collection contains the specified prefix; otherwise, false. + The prefix to search for. + + + Returns a value object using the specified key. + The value object for the specified key. + The key of the value object to retrieve. + + + Returns a value object using the specified key and skip-validation parameter. + The value object for the specified key. + The key of the value object to retrieve. + true to specify that validation should be skipped; otherwise, false. + + + Inserts the specified value-provider object into the collection at the specified index location. + The zero-based index location at which to insert the value provider into the collection. + The value-provider object to insert. + The parameter is null. + + + Replaces the value provider at the specified index location with a new value provider. + The zero-based index of the element to replace. + The new value for the element at the specified index. + The parameter is null. + + + Represents a dictionary of value providers for the application. + + + Initializes a new instance of the class. + The controller context. + + + Adds the specified item to the collection of value providers. + The object to add to the object. + The object is read-only. + + + Adds an element that has the specified key and value to the collection of value providers. + The key of the element to add. + The value of the element to add. + The object is read-only. + + is null. + An element that has the specified key already exists in the object. + + + Adds an element that has the specified key and value to the collection of value providers. + The key of the element to add. + The value of the element to add. + The object is read-only. + + is null. + An element that has the specified key already exists in the object. + + + Removes all items from the collection of value providers. + The object is read-only. + + + Determines whether the collection of value providers contains the specified item. + true if is found in the collection of value providers; otherwise, false. + The object to locate in the instance. + + + Determines whether the collection of value providers contains an element that has the specified key. + true if the collection of value providers contains an element that has the key; otherwise, false. + The key of the element to find in the instance. + + is null. + + + Gets or sets the controller context. + The controller context. + + + Copies the elements of the collection to an array, starting at the specified index. + The one-dimensional array that is the destination of the elements copied from the object. The array must have zero-based indexing. + The zero-based index in at which copying starts. + + is null. + + is less than 0. + + is multidimensional.-or- is equal to or greater than the length of .-or-The number of elements in the source collection is greater than the available space from to the end of the destination .-or-Type cannot be cast automatically to the type of the destination array. + + + Gets the number of elements in the collection. + The number of elements in the collection. + + + Returns an enumerator that can be used to iterate through the collection. + An enumerator that can be used to iterate through the collection. + + + Gets a value that indicates whether the collection is read-only. + true if the collection is read-only; otherwise, false. + + + Gets or sets the object that has the specified key. + The object. + The key. + + + Gets a collection that contains the keys of the instance. + A collection that contains the keys of the object that implements the interface. + + + Removes the first occurrence of the specified item from the collection of value providers. + true if was successfully removed from the collection; otherwise, false. This method also returns false if is not found in the collection. + The object to remove from the instance. + The object is read-only. + + + Removes the element that has the specified key from the collection of value providers. + true if the element was successfully removed; otherwise, false. This method also returns false if was not found in the collection. + The key of the element to remove. + The object is read-only. + + is null. + + + Returns an enumerator that can be used to iterate through a collection. + An enumerator that can be used to iterate through the collection. + + + Determines whether the collection contains the specified prefix. + true if the collection contains the specified prefix; otherwise, false. + The prefix to search for. + + + Returns a value object using the specified key. + The value object for the specified key. + The key of the value object to return. + + + Gets the value of the element that has the specified key. + true if the object that implements contains an element that has the specified key; otherwise, false. + The key of the element to get. + When this method returns, the value that is associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. + + is null. + + + Gets a collection that contains the values in the object. + A collection of the values in the object that implements the interface. + + + Represents a container for value-provider factory objects. + + + Gets the collection of value-provider factories for the application. + The collection of value-provider factory objects. + + + Represents a factory for creating value-provider objects. + + + Initializes a new instance of the class. + + + Returns a value-provider object for the specified controller context. + A value-provider object. + An object that encapsulates information about the current HTTP request. + + + Represents the collection of value-provider factories for the application. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified list of value-provider factories. + A list of value-provider factories to initialize the collection with. + + + Returns the value-provider factory for the specified controller context. + The value-provider factory object for the specified controller context. + An object that encapsulates information about the current HTTP request. + + + Inserts the specified value-provider factory object at the specified index location. + The zero-based index location at which to insert the value provider into the collection. + The value-provider factory object to insert. + The parameter is null. + + + Sets the specified value-provider factory object at the given index location. + The zero-based index location at which to insert the value provider into the collection. + The value-provider factory object to set. + The parameter is null. + + + Represents the result of binding a value (such as from a form post or query string) to an action-method argument property, or to the argument itself. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified raw value, attempted value, and culture information. + The raw value. + The attempted value. + The culture. + + + Gets or sets the raw value that is converted to a string for display. + The raw value. + + + Converts the value that is encapsulated by this result to the specified type. + The converted value. + The target type. + The parameter is null. + + + Converts the value that is encapsulated by this result to the specified type by using the specified culture information. + The converted value. + The target type. + The culture to use in the conversion. + The parameter is null. + + + Gets or sets the culture. + The culture. + + + Gets or set the raw value that is supplied by the value provider. + The raw value. + + + Encapsulates information that is related to rendering a view. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified controller context, view, view data dictionary, temporary data dictionary, and text writer. + Encapsulates information about the HTTP request. + The view to render. + The dictionary that contains the data that is required in order to render the view. + The dictionary that contains temporary data for the view. + The text writer object that is used to write HTML output. + One of the parameters is null. + + + Gets or sets a value that indicates whether client-side validation is enabled. + true if client-side validation is enabled; otherwise, false. + + + Gets or sets an object that encapsulates information that is required in order to validate and process the input data from an HTML form. + An object that encapsulates information that is required in order to validate and process the input data from an HTML form. + + + Writes the client validation information to the HTTP response. + + + Gets data that is associated with this request and that is available for only one request. + The temporary data. + + + Gets or sets a value that indicates whether unobtrusive JavaScript is enabled. + true if unobtrusive JavaScript is enabled; otherwise, false. + + + Gets an object that implements the interface to render in the browser. + The view. + + + Gets the view data that is passed to the view. + The view data. + + + Gets or sets the text writer object that is used to write HTML output. + The object that is used to write the HTML output. + + + Represents a container that is used to pass data between a controller and a view. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified model. + The model. + + + Initializes a new instance of the class by using the specified dictionary. + The dictionary. + The parameter is null. + + + Adds the specified item to the collection. + The object to add to the collection. + The collection is read-only. + + + Adds an element to the collection using the specified key and value . + The key of the element to add. + The value of the element to add. + The object is read-only. + + is null. + An element with the same key already exists in the object. + + + Removes all items from the collection. + The object is read-only. + + + Determines whether the collection contains the specified item. + true if is found in the collection; otherwise, false. + The object to locate in the collection. + + + Determines whether the collection contains an element that has the specified key. + true if the collection contains an element that has the specified key; otherwise, false. + The key of the element to locate in the collection. + + is null. + + + Copies the elements of the collection to an array, starting at a particular index. + The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + + is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source collection is greater than the available space from to the end of the destination .-or- Type cannot be cast automatically to the type of the destination . + + + Gets the number of elements in the collection. + The number of elements in the collection. + + + Evaluates the specified expression. + The results of the evaluation. + The expression. + The parameter is null or empty. + + + Evaluates the specified expression by using the specified format. + The results of the evaluation. + The expression. + The format. + + + Returns an enumerator that can be used to iterate through the collection. + An enumerator that can be used to iterate through the collection. + + + Returns information about the view data as defined by the parameter. + An object that contains the view data information that is defined by the parameter. + A set of key/value pairs that define the view-data information to return. + The parameter is either null or empty. + + + Gets a value that indicates whether the collection is read-only. + true if the collection is read-only; otherwise, false. + + + Gets or sets the item that is associated with the specified key. + The value of the selected item. + The key. + + + Gets a collection that contains the keys of this dictionary. + A collection that contains the keys of the object that implements . + + + Gets or sets the model that is associated with the view data. + The model that is associated with the view data. + + + Gets or sets information about the model. + Information about the model. + + + Gets the state of the model. + The state of the model. + + + Removes the first occurrence of a specified object from the collection. + true if was successfully removed from the collection; otherwise, false. This method also returns false if is not found in the collection. + The object to remove from the collection. + The collection is read-only. + + + Removes the element from the collection using the specified key. + true if the element is successfully removed; otherwise, false. This method also returns false if was not found in the original collection. + The key of the element to remove. + The collection is read-only. + + is null. + + + Sets the data model to use for the view. + The data model to use for the view. + + + Returns an enumerator that can be used to iterate through the collection. + An enumerator that can be used to iterate through the collection. + + + Gets or sets an object that encapsulates information about the current template context. + An object that contains information about the current template. + + + Attempts to retrieve the value that is associated with the specified key. + true if the collection contains an element with the specified key; otherwise, false. + The key of the value to get. + When this method returns, the value that is associated with the specified key, if the key is found; otherwise, the default value for the type of the parameter. This parameter is passed uninitialized. + + is null. + + + Gets a collection that contains the values in this dictionary. + A collection that contains the values of the object that implements . + + + Represents a container that is used to pass strongly typed data between a controller and a view. + The type of the model. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified view data dictionary. + An existing view data dictionary to copy into this instance. + + + Initializes a new instance of the class by using the specified model. + The data model to use for the view. + + + Gets or sets the model. + A reference to the data model. + + + Gets or sets information about the model. + Information about the model. + + + Sets the data model to use for the view. + The data model to use for the view. + An error occurred while the model was being set. + + + Encapsulates information about the current template content that is used to develop templates and about HTML helpers that interact with templates. + + + Initializes a new instance of the class. + + + Initializes a new instance of the T:System.Web.Mvc.ViewDataInfo class and associates a delegate for accessing the view data information. + A delegate that defines how the view data information is accessed. + + + Gets or sets the object that contains the values to be displayed by the template. + The object that contains the values to be displayed by the template. + + + Gets or sets the description of the property to be displayed by the template. + The description of the property to be displayed by the template. + + + Gets or sets the current value to be displayed by the template. + The current value to be displayed by the template. + + + Represents a collection of view engines that are available to the application. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class by using the specified list of view engines. + The list that is wrapped by the new collection. + + is null. + + + Finds the specified partial view by using the specified controller context. + The partial view. + The controller context. + The name of the partial view. + The parameter is null. + The parameter is null or empty. + + + Finds the specified view by using the specified controller context and master view. + The view. + The controller context. + The name of the view. + The name of the master view. + The parameter is null. + The parameter is null or empty. + + + Inserts an element into the collection at the specified index. + The zero-based index at which should be inserted. + The object to insert. + + is less than zero.-or- is greater than the number of items in the collection. + The parameter is null. + + + Replaces the element at the specified index. + The zero-based index of the element to replace. + The new value for the element at the specified index. + + is less than zero.-or- is greater than the number of items in the collection. + The parameter is null. + + + Represents the result of locating a view engine. + + + Initializes a new instance of the class by using the specified searched locations. + The searched locations. + The parameter is null. + + + Initializes a new instance of the class by using the specified view and view engine. + The view. + The view engine. + The or parameter is null. + + + Gets or sets the searched locations. + The searched locations. + + + Gets or sets the view. + The view. + + + Gets or sets the view engine. + The view engine. + + + Represents a collection of view engines that are available to the application. + + + Gets the view engines. + The view engines. + + + Represents the information that is needed to build a master view page. + + + Initializes a new instance of the class. + + + Gets the AJAX script for the master page. + The AJAX script for the master page. + + + Gets the HTML for the master page. + The HTML for the master page. + + + Gets the model. + The model. + + + Gets the temporary data. + The temporary data. + + + Gets the URL. + The URL. + + + Gets the dynamic view-bag dictionary. + The dynamic view-bag dictionary. + + + Gets the view context. + The view context. + + + Gets the view data. + The view data. + + + Gets the writer that is used to render the master page. + The writer that is used to render the master page. + + + Represents the information that is required in order to build a strongly typed master view page. + The type of the model. + + + Initializes a new instance of the class. + + + Gets the AJAX script for the master page. + The AJAX script for the master page. + + + Gets the HTML for the master page. + The HTML for the master page. + + + Gets the model. + A reference to the data model. + + + Gets the view data. + The view data. + + + Represents the properties and methods that are needed to render a view as a Web Forms page. + + + Initializes a new instance of the class. + + + Gets or sets the object that is used to render HTML in Ajax scenarios. + The Ajax helper object that is associated with the view. + + + Gets or sets the object that is used to render HTML elements. + The HTML helper object that is associated with the view. + + + Initializes the , , and properties. + + + Gets or sets the path of the master view. + The path of the master view. + + + Gets the Model property of the associated object. + The Model property of the associated object. + + + Raises the event at the beginning of page initialization. + The event data. + + + Enables processing of the specified HTTP request by the ASP.NET MVC framework. + An object that encapsulates HTTP-specific information about the current HTTP request. + + + Initializes the object that receives the page content to be rendered. + The object that receives the page content. + + + Renders the view page to the response using the specified view context. + An object that encapsulates the information that is required in order to render the view, which includes the controller context, form context, the temporary data, and the view data for the associated view. + + + Sets the text writer that is used to render the view to the response. + The writer that is used to render the view to the response. + + + Sets the view data dictionary for the associated view. + A dictionary of data to pass to the view. + + + Gets the temporary data to pass to the view. + The temporary data to pass to the view. + + + Gets or sets the URL of the rendered page. + The URL of the rendered page. + + + Gets the view bag. + The view bag. + + + Gets or sets the information that is used to render the view. + The information that is used to render the view, which includes the form context, the temporary data, and the view data of the associated view. + + + Gets or sets a dictionary that contains data to pass between the controller and the view. + A dictionary that contains data to pass between the controller and the view. + + + Gets the text writer that is used to render the view to the response. + The text writer that is used to render the view to the response. + + + Represents the information that is required in order to render a strongly typed view as a Web Forms page. + The type of the model. + + + Initializes a new instance of the class. + + + Gets or sets the object that supports rendering HTML in Ajax scenarios. + The Ajax helper object that is associated with the view. + + + Gets or sets the object that provides support for rendering elements. + The HTML helper object that is associated with the view. + + + Instantiates and initializes the and properties. + + + Gets the property of the associated object. + A reference to the data model. + + + Sets the view data dictionary for the associated view. + A dictionary of data to pass to the view. + + + Gets or sets a dictionary that contains data to pass between the controller and the view. + A dictionary that contains data to pass between the controller and the view. + + + Represents a class that is used to render a view by using an instance that is returned by an object. + + + Initializes a new instance of the class. + + + Searches the registered view engines and returns the object that is used to render the view. + The object that is used to render the view. + The controller context. + An error occurred while the method was searching for the view. + + + Gets the name of the master view (such as a master page or template) to use when the view is rendered. + The name of the master view. + + + Represents a base class that is used to provide the model to the view and then render the view to the response. + + + Initializes a new instance of the class. + + + When called by the action invoker, renders the view to the response. + The context that the result is executed in. + The parameter is null. + + + Returns the object that is used to render the view. + The view engine. + The context. + + + Gets the view data model. + The view data model. + + + Gets or sets the object for this result. + The temporary data. + + + Gets or sets the object that is rendered to the response. + The view. + + + Gets the view bag. + The view bag. + + + Gets or sets the view data object for this result. + The view data. + + + Gets or sets the collection of view engines that are associated with this result. + The collection of view engines. + + + Gets or sets the name of the view to render. + The name of the view. + + + Provides an abstract class that can be used to implement a view start (master) page. + + + When implemented in a derived class, initializes a new instance of the class. + + + When implemented in a derived class, gets the HTML markup for the view start page. + The HTML markup for the view start page. + + + When implemented in a derived class, gets the URL for the view start page. + The URL for the view start page. + + + When implemented in a derived class, gets the view context for the view start page. + The view context for the view start page. + + + Provides a container for objects. + + + Initializes a new instance of the class. + + + Provides a container for objects. + The type of the model. + + + Initializes a new instance of the class. + + + Gets the formatted value. + The formatted value. + + + Represents the type of a view. + + + Initializes a new instance of the class. + + + Gets or sets the name of the type. + The name of the type. + + + Represents the information that is needed to build a user control. + + + Initializes a new instance of the class. + + + Gets the AJAX script for the view. + The AJAX script for the view. + + + Ensures that view data is added to the object of the user control if the view data exists. + + + Gets the HTML for the view. + The HTML for the view. + + + Gets the model. + The model. + + + Renders the view by using the specified view context. + The view context. + + + Sets the text writer that is used to render the view to the response. + The writer that is used to render the view to the response. + + + Sets the view-data dictionary by using the specified view data. + The view data. + + + Gets the temporary-data dictionary. + The temporary-data dictionary. + + + Gets the URL for the view. + The URL for the view. + + + Gets the view bag. + The view bag. + + + Gets or sets the view context. + The view context. + + + Gets or sets the view-data dictionary. + The view-data dictionary. + + + Gets or sets the view-data key. + The view-data key. + + + Gets the writer that is used to render the view to the response. + The writer that is used to render the view to the response. + + + Represents the information that is required in order to build a strongly typed user control. + The type of the model. + + + Initializes a new instance of the class. + + + Gets the AJAX script for the view. + The AJAX script for the view. + + + Gets the HTML for the view. + The HTML for the view. + + + Gets the model. + A reference to the data model. + + + Sets the view data for the view. + The view data. + + + Gets or sets the view data. + The view data. + + + Represents an abstract base-class implementation of the interface. + + + Initializes a new instance of the class. + + + Gets or sets the area-enabled master location formats. + The area-enabled master location formats. + + + Gets or sets the area-enabled partial-view location formats. + The area-enabled partial-view location formats. + + + Gets or sets the area-enabled view location formats. + The area-enabled view location formats. + + + Creates the specified partial view by using the specified controller context. + A reference to the partial view. + The controller context. + The partial path for the new partial view. + + + Creates the specified view by using the controller context, path of the view, and path of the master view. + A reference to the view. + The controller context. + The path of the view. + The path of the master view. + + + Returns a value that indicates whether the file is in the specified path by using the specified controller context. + true if the file is in the specified path; otherwise, false. + The controller context. + The virtual path. + + + Gets or sets the file-name extensions that are used to locate a view. + The file-name extensions that are used to locate a view. + + + Finds the specified partial view by using the specified controller context. + The partial view. + The controller context. + The name of the partial view. + true to use the cached partial view. + The parameter is null (Nothing in Visual Basic). + The parameter is null or empty. + + + Finds the specified view by using the specified controller context and master view name. + The page view. + The controller context. + The name of the view. + The name of the master view. + true to use the cached view. + The parameter is null (Nothing in Visual Basic). + The parameter is null or empty. + + + Gets or sets the master location formats. + The master location formats. + + + Gets or sets the partial-view location formats. + The partial-view location formats. + + + Releases the specified view by using the specified controller context. + The controller context. + The view to release. + + + Gets or sets the view location cache. + The view location cache. + + + Gets or sets the view location formats. + The view location formats. + + + Gets or sets the virtual path provider. + The virtual path provider. + + + Represents the information that is needed to build a Web Forms page in ASP.NET MVC. + + + Initializes a new instance of the class using the controller context and view path. + The controller context. + The view path. + + + Initializes a new instance of the class using the controller context, view path, and the path to the master page. + The controller context. + The view path. + The path to the master page. + + + Initializes a new instance of the class using the controller context, view path, the path to the master page, and a instance. + The controller context. + The view path. + The path to the master page. + An instance of the view page activator interface. + + + Gets or sets the master path. + The master path. + + + Renders the view to the response. + An object that encapsulates the information that is required in order to render the view, which includes the controller context, form context, the temporary data, and the view data for the associated view. + The text writer object that is used to write HTML output. + The view page instance. + + + Represents a view engine that is used to render a Web Forms page to the response. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the specified view page activator. + An instance of a class that implements the interface. + + + Creates the specified partial view by using the specified controller context. + The partial view. + The controller context. + The partial path. + + + Creates the specified view by using the specified controller context and the paths of the view and master view. + The view. + The controller context. + The view path. + The master-view path. + + + Represents the properties and methods that are needed in order to render a view that uses ASP.NET Razor syntax. + + + Initializes a new instance of the class. + + + Gets or sets the object that is used to render HTML using Ajax. + The object that is used to render HTML using Ajax. + + + Sets the view context and view data for the page. + The parent page. + + + Gets the object that is associated with the page. + The object that is associated with the page. + + + Runs the page hierarchy for the ASP.NET Razor execution pipeline. + + + Gets or sets the object that is used to render HTML elements. + The object that is used to render HTML elements. + + + Initializes the , , and classes. + + + Gets the Model property of the associated object. + The Model property of the associated object. + + + Sets the view data. + The view data. + + + Gets the temporary data to pass to the view. + The temporary data to pass to the view. + + + Gets or sets the URL of the rendered page. + The URL of the rendered page. + + + Gets the view bag. + The view bag. + + + Gets or sets the information that is used to render the view. + The information that is used to render the view, which includes the form context, the temporary data, and the view data of the associated view. + + + Gets or sets a dictionary that contains data to pass between the controller and the view. + A dictionary that contains data to pass between the controller and the view. + + + Represents the properties and methods that are needed in order to render a view that uses ASP.NET Razor syntax. + The type of the view data model. + + + Initializes a new instance of the class. + + + Gets or sets the object that is used to render HTML markup using Ajax. + The object that is used to render HTML markup using Ajax. + + + Gets or sets the object that is used to render HTML elements. + The object that is used to render HTML elements. + + + Initializes the , , and classes. + + + Gets the Model property of the associated object. + The Model property of the associated object. + + + Sets the view data. + The view data. + + + Gets or sets a dictionary that contains data to pass between the controller and the view. + A dictionary that contains data to pass between the controller and the view. + + + Represents support for ASP.NET AJAX within an ASP.NET MVC application. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + The name of the controller. + The protocol for the URL, such as "http" or "https". + The host name for the URL. + The URL fragment name (the anchor name). + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + The name of the controller. + The protocol for the URL, such as "http" or "https". + The host name for the URL. + The URL fragment name (the anchor name). + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + The name of the controller. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the URL to the specified action method; when the action link is clicked, the action method is invoked asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the action method. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + The name of the controller. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + The name of the controller. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + The name of the controller. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + The name of the action method that will handle the request. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element.. + + + Writes an opening <form> tag to the response. + An opening <form> tag. + The AJAX helper. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response using the specified routing information. + An opening <form> tag. + The AJAX helper. + The name of the route to use to obtain the form post URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response using the specified routing information. + An opening <form> tag. + The AJAX helper. + The name of the route to use to obtain the form post URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response using the specified routing information. + An opening <form> tag. + The AJAX helper. + The name of the route to use to obtain the form post URL. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response using the specified routing information. + An opening <form> tag. + The AJAX helper. + The name of the route to use to obtain the form post URL. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + + + Writes an opening <form> tag to the response using the specified routing information. + An opening <form> tag. + The AJAX helper. + The name of the route to use to obtain the form post URL. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + + + Returns an HTML script element that contains a reference to a globalization script that defines the culture information. + A script element whose src attribute is set to the globalization script, as in the following example: <script type="text/javascript" src="/MvcApplication1/Scripts/Globalization/en-US.js"></script> + The AJAX helper object that this method extends. + + + Returns an HTML script element that contains a reference to a globalization script that defines the specified culture information. + An HTML script element whose src attribute is set to the globalization script, as in the following example:<script type="text/javascript" src="/MvcApplication1/Scripts/Globalization/en-US.js"></script> + The AJAX helper object that this method extends. + Encapsulates information about the target culture, such as date formats. + The parameter is null. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the route to use to obtain the form post URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the route to use to obtain the form post URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the route to use to obtain the form post URL. + The protocol for the URL, such as "http" or "https". + The host name for the URL. + The URL fragment name (the anchor name). + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the route to use to obtain the form post URL. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the route to use to obtain the form post URL. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the route to use to obtain the form post URL. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the route to use to obtain the form post URL. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + The name of the route to use to obtain the form post URL. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + The parameter is null or empty. + + + Returns an anchor element that contains the virtual path for the specified route values; when the link is clicked, a request is made to the virtual path asynchronously by using JavaScript. + An anchor element. + The AJAX helper. + The inner text of the anchor element. + An object that contains the parameters for a route. + An object that provides options for the asynchronous request. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Represents option settings for running Ajax scripts in an ASP.NET MVC application. + + + Initializes a new instance of the class. + + + Gets or sets the message to display in a confirmation window before a request is submitted. + The message to display in a confirmation window. + + + Gets or sets the HTTP request method ("Get" or "Post"). + The HTTP request method. The default value is "Post". + + + Gets or sets the mode that specifies how to insert the response into the target DOM element. + The insertion mode ("InsertAfter", "InsertBefore", or "Replace"). The default value is "Replace". + + + Gets or sets a value, in milliseconds, that controls the duration of the animation when showing or hiding the loading element. + A value, in milliseconds, that controls the duration of the animation when showing or hiding the loading element. + + + Gets or sets the id attribute of an HTML element that is displayed while the Ajax function is loading. + The ID of the element that is displayed while the Ajax function is loading. + + + Gets or sets the name of the JavaScript function to call immediately before the page is updated. + The name of the JavaScript function to call before the page is updated. + + + Gets or sets the JavaScript function to call when response data has been instantiated but before the page is updated. + The JavaScript function to call when the response data has been instantiated. + + + Gets or sets the JavaScript function to call if the page update fails. + The JavaScript function to call if the page update fails. + + + Gets or sets the JavaScript function to call after the page is successfully updated. + The JavaScript function to call after the page is successfully updated. + + + Returns the Ajax options as a collection of HTML attributes to support unobtrusive JavaScript. + The Ajax options as a collection of HTML attributes to support unobtrusive JavaScript. + + + Gets or sets the ID of the DOM element to update by using the response from the server. + The ID of the DOM element to update. + + + Gets or sets the URL to make the request to. + The URL to make the request to. + + + Enumerates the AJAX script insertion modes. + + + Replace the element. + + + Insert before the element. + + + Insert after the element. + + + Provides information about an asynchronous action method, such as its name, controller, parameters, attributes, and filters. + + + Initializes a new instance of the class. + + + Invokes the asynchronous action method by using the specified parameters and controller context. + An object that contains the result of an asynchronous call. + The controller context. + The parameters of the action method. + The callback method. + An object that contains information to be used by the callback method. This parameter can be null. + + + Returns the result of an asynchronous operation. + The result of an asynchronous operation. + An object that represents the status of an asynchronous operation. + + + Executes the asynchronous action method by using the specified parameters and controller context. + The result of executing the asynchronous action method. + The controller context. + The parameters of the action method. + + + Represents a class that is responsible for invoking the action methods of an asynchronous controller. + + + Initializes a new instance of the class. + + + Invokes the asynchronous action method by using the specified controller context, action name, callback method, and state. + An object that contains the result of an asynchronous operation. + The controller context. + The name of the action. + The callback method. + An object that contains information to be used by the callback method. This parameter can be null. + + + Invokes the asynchronous action method by using the specified controller context, action descriptor, parameters, callback method, and state. + An object that contains the result of an asynchronous operation. + The controller context. + The action descriptor. + The parameters for the asynchronous action method. + The callback method. + An object that contains information to be used by the callback method. This parameter can be null. + + + Invokes the asynchronous action method by using the specified controller context, filters, action descriptor, parameters, callback method, and state. + An object that contains the result of an asynchronous operation. + The controller context. + The filters. + The action descriptor. + The parameters for the asynchronous action method. + The callback method. + An object that contains information to be used by the callback method. This parameter can be null. + + + Cancels the action. + true if the action was canceled; otherwise, false. + The user-defined object that qualifies or contains information about an asynchronous operation. + + + Cancels the action. + true if the action was canceled; otherwise, false. + The user-defined object that qualifies or contains information about an asynchronous operation. + + + Cancels the action. + true if the action was canceled; otherwise, false. + The user-defined object that qualifies or contains information about an asynchronous operation. + + + Returns the controller descriptor. + The controller descriptor. + The controller context. + + + Provides asynchronous operations for the class. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class using the synchronization context. + The synchronization context. + + + Notifies ASP.NET that all asynchronous operations are complete. + + + Occurs when the method is called. + + + Gets the number of outstanding operations. + The number of outstanding operations. + + + Gets the parameters that were passed to the asynchronous completion method. + The parameters that were passed to the asynchronous completion method. + + + Executes a callback in the current synchronization context. + The asynchronous action. + + + Gets or sets the asynchronous timeout value, in milliseconds. + The asynchronous timeout value, in milliseconds. + + + Defines the interface for an action invoker, which is used to invoke an asynchronous action in response to an HTTP request. + + + Invokes the specified action. + The status of the asynchronous result. + The controller context. + The name of the asynchronous action. + The callback method. + The state. + + + Cancels the asynchronous action. + true if the asynchronous method could be canceled; otherwise, false. + The asynchronous result. + + + Defines the methods that are required for an asynchronous controller. + + + Executes the specified request context. + The status of the asynchronous operation. + The request context. + The asynchronous callback method. + The state. + + + Ends the asynchronous operation. + The asynchronous result. + + + Provides a container for the asynchronous manager object. + + + Gets the asynchronous manager object. + The asynchronous manager object. + + + Provides a container that maintains a count of pending asynchronous operations. + + + Initializes a new instance of the class. + + + Occurs when an asynchronous method completes. + + + Gets the operation count. + The operation count. + + + Reduces the operation count by 1. + The updated operation count. + + + Reduces the operation count by the specified value. + The updated operation count. + The number of operations to reduce the count by. + + + Increments the operation count by one. + The updated operation count. + + + Increments the operation count by the specified value. + The updated operation count. + The number of operations to increment the count by. + + + Provides information about an asynchronous action method, such as its name, controller, parameters, attributes, and filters. + + + Initializes a new instance of the class. + An object that contains information about the method that begins the asynchronous operation (the method whose name ends with "Asynch"). + An object that contains information about the completion method (method whose name ends with "Completed"). + The name of the action. + The controller descriptor. + + + Gets the name of the action method. + The name of the action method. + + + Gets the method information for the asynchronous action method. + The method information for the asynchronous action method. + + + Begins running the asynchronous action method by using the specified parameters and controller context. + An object that contains the result of an asynchronous call. + The controller context. + The parameters of the action method. + The callback method. + An object that contains information to be used by the callback method. This parameter can be null. + + + Gets the method information for the asynchronous completion method. + The method information for the asynchronous completion method. + + + Gets the controller descriptor for the asynchronous action method. + The controller descriptor for the asynchronous action method. + + + Returns the result of an asynchronous operation. + The result of an asynchronous operation. + An object that represents the status of an asynchronous operation. + + + Returns an array of custom attributes that are defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + + + Returns an array of custom attributes that are defined for this member, identified by type. + An array of custom attributes, or an empty array if no custom attributes of the specified type exist. + The type of the custom attributes to return. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + + + Returns the parameters of the action method. + The parameters of the action method. + + + Returns the action-method selectors. + The action-method selectors. + + + Determines whether one or more instances of the specified attribute type are defined for the action member. + true if an attribute of type that is represented by is defined for this member; otherwise, false. + The type of the custom attribute. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + + + Gets the lazy initialized unique ID of the instance of this class. + The lazy initialized unique ID of the instance of this class. + + + Encapsulates information that describes an asynchronous controller, such as its name, type, and actions. + + + Initializes a new instance of the class. + The type of the controller. + + + Gets the type of the controller. + The type of the controller. + + + Finds an action method by using the specified name and controller context. + The information about the action method. + The controller context. + The name of the action. + + + Returns a list of action method descriptors in the controller. + A list of action method descriptors in the controller. + + + Returns custom attributes that are defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + + + Returns custom attributes of a specified type that are defined for this member, excluding named attributes. + An array of custom attributes, or an empty array if no custom attributes exist. + The type of the custom attributes. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + + + Returns a value that indicates whether one or more instances of the specified custom attribute are defined for this member. + true if an attribute of the type represented by is defined for this member; otherwise, false. + The type of the custom attribute. + true to look up the hierarchy chain for the inherited custom attribute; otherwise, false. + + + Represents an exception that occurred during the synchronous processing of an HTTP request in an ASP.NET MVC application. + + + Initializes a new instance of the class using a system-supplied message. + + + Initializes a new instance of the class using the specified message. + The message that describes the exception. The caller of this constructor must make sure that this string has been localized for the current system culture. + + + Initializes a new instance of the class using a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor must make sure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Represents support for calling child action methods and rendering the result inline in a parent view. + + + Invokes the specified child action method and returns the result as an HTML string. + The child action result as an HTML string. + The HTML helper instance that this method extends. + The name of the action method to invoke. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method with the specified parameters and returns the result as an HTML string. + The child action result as an HTML string. + The HTML helper instance that this method extends. + The name of the action method to invoke. + An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method using the specified controller name and returns the result as an HTML string. + The child action result as an HTML string. + The HTML helper instance that this method extends. + The name of the action method to invoke. + The name of the controller that contains the action method. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method using the specified parameters and controller name and returns the result as an HTML string. + The child action result as an HTML string. + The HTML helper instance that this method extends. + The name of the action method to invoke. + The name of the controller that contains the action method. + An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method using the specified parameters and controller name and returns the result as an HTML string. + The child action result as an HTML string. + The HTML helper instance that this method extends. + The name of the action method to invoke. + The name of the controller that contains the action method. + A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method using the specified parameters and returns the result as an HTML string. + The child action result as an HTML string. + The HTML helper instance that this method extends. + The name of the action method to invoke. + A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method and renders the result inline in the parent view. + The HTML helper instance that this method extends. + The name of the child action method to invoke. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method using the specified parameters and renders the result inline in the parent view. + The HTML helper instance that this method extends. + The name of the child action method to invoke. + An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method using the specified controller name and renders the result inline in the parent view. + The HTML helper instance that this method extends. + The name of the child action method to invoke. + The name of the controller that contains the action method. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. + The HTML helper instance that this method extends. + The name of the child action method to invoke. + The name of the controller that contains the action method. + An object that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. + The HTML helper instance that this method extends. + The name of the child action method to invoke. + The name of the controller that contains the action method. + A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Invokes the specified child action method using the specified parameters and renders the result inline in the parent view. + The HTML helper instance that this method extends. + The name of the child action method to invoke. + A dictionary that contains the parameters for a route. You can use to provide the parameters that are bound to the action method parameters. The parameter is merged with the original route values and overrides them. + The parameter is null. + The parameter is null or empty. + The required virtual path data cannot be found. + + + Represents support for rendering object values as HTML. + + + Returns HTML markup for each property in the object that is represented by a string expression. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + + + Returns HTML markup for each property in the object that is represented by a string expression, using additional view data. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns HTML markup for each property in the object that is represented by the expression, using the specified template. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template that is used to render the object. + + + Returns HTML markup for each property in the object that is represented by the expression, using the specified template and additional view data. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template that is used to render the object. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns HTML markup for each property in the object that is represented by the expression, using the specified template and an HTML field ID. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template that is used to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + + + Returns HTML markup for each property in the object that is represented by the expression, using the specified template, HTML field ID, and additional view data. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template that is used to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns HTML markup for each property in the object that is represented by the expression. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The type of the model. + The type of the value. + + + Returns a string that contains each property value in the object that is represented by the specified expression, using additional view data. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + The type of the model. + The type of the value. + + + Returns a string that contains each property value in the object that is represented by the , using the specified template. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template that is used to render the object. + The type of the model. + The type of the value. + + + Returns a string that contains each property value in the object that is represented by the specified expression, using the specified template and additional view data. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template that is used to render the object. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + The type of the model. + The type of the value. + + + Returns HTML markup for each property in the object that is represented by the , using the specified template and an HTML field ID. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template that is used to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + The type of the model. + The type of the value. + + + Returns HTML markup for each property in the object that is represented by the specified expression, using the template, an HTML field ID, and additional view data. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template that is used to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + The type of the model. + The type of the value. + + + Returns HTML markup for each property in the model. + The HTML markup for each property in the model. + The HTML helper instance that this method extends. + + + Returns HTML markup for each property in the model, using additional view data. + The HTML markup for each property in the model. + The HTML helper instance that this method extends. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns HTML markup for each property in the model using the specified template. + The HTML markup for each property in the model. + The HTML helper instance that this method extends. + The name of the template that is used to render the object. + + + Returns HTML markup for each property in the model, using the specified template and additional view data. + The HTML markup for each property in the model. + The HTML helper instance that this method extends. + The name of the template that is used to render the object. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns HTML markup for each property in the model using the specified template and HTML field ID. + The HTML markup for each property in the model. + The HTML helper instance that this method extends. + The name of the template that is used to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + + + Returns HTML markup for each property in the model, using the specified template, an HTML field ID, and additional view data. + The HTML markup for each property in the model. + The HTML helper instance that this method extends. + The name of the template that is used to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Provides a way to render object values as HTML. + + + Returns HTML markup for each property in the object that is represented by the specified expression. + The HTML markup for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + + + Returns HTML markup for each property in the object that is represented by the specified expression. + The HTML markup for each property.zz 12/29/2010 1:25:49 PM + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The type of the model. + The type of the result. + + + Represents support for the HTML input element in an application. + + + Returns an HTML input element for each property in the object that is represented by the expression. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + + + Returns an HTML input element for each property in the object that is represented by the expression, using additional view data. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns an HTML input element for each property in the object that is represented by the expression, using the specified template. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template to use to render the object. + + + Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and additional view data. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template to use to render the object. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and HTML field name. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template to use to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + + + Returns an HTML input element for each property in the object that is represented by the expression, using the specified template, HTML field name, and additional view data. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template to use to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns an HTML input element for each property in the object that is represented by the expression. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The type of the model. + The type of the value. + + + Returns an HTML input element for each property in the object that is represented by the expression, using additional view data. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + The type of the model. + The type of the value. + + + Returns an HTML input element for each property in the object that is represented by the expression, using the specified template. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template to use to render the object. + The type of the model. + The type of the value. + + + Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and additional view data. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template to use to render the object. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + The type of the model. + The type of the value. + + + Returns an HTML input element for each property in the object that is represented by the expression, using the specified template and HTML field name. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template to use to render the object. + The type of the model. + The type of the value. + + + Returns an HTML input element for each property in the object that is represented by the expression, using the specified template, HTML field name, and additional view data. + An HTML input element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + The name of the template to use to render the object. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + The type of the model. + The type of the value. + + + Returns an HTML input element for each property in the model. + An HTML input element for each property in the model. + The HTML helper instance that this method extends. + + + Returns an HTML input element for each property in the model, using additional view data. + An HTML input element for each property in the model. + The HTML helper instance that this method extends. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns an HTML input element for each property in the model, using the specified template. + An HTML input element for each property in the model and in the specified template. + The HTML helper instance that this method extends. + The name of the template to use to render the object. + + + Returns an HTML input element for each property in the model, using the specified template and additional view data. + An HTML input element for each property in the model. + The HTML helper instance that this method extends. + The name of the template to use to render the object. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Returns an HTML input element for each property in the model, using the specified template name and HTML field name. + An HTML input element for each property in the model and in the named template. + The HTML helper instance that this method extends. + The name of the template to use to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + + + Returns an HTML input element for each property in the model, using the template name, HTML field name, and additional view data. + An HTML input element for each property in the model. + The HTML helper instance that this method extends. + The name of the template to use to render the object. + A string that is used to disambiguate the names of HTML input elements that are rendered for properties that have the same name. + An anonymous object that can contain additional view data that will be merged into the instance that is created for the template. + + + Represents support for HTML in an application. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + The HTTP method for processing the form, either GET or POST. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + The HTTP method for processing the form, either GET or POST. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + The HTTP method for processing the form, either GET or POST. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + The HTTP method for processing the form, either GET or POST. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + The HTTP method for processing the form, either GET or POST. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. + The HTTP method for processing the form, either GET or POST. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the action method. + The name of the controller. + An object that contains the parameters for a route. + The HTTP method for processing the form, either GET or POST. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by an action method. + An opening <form> tag. + The HTML helper instance that this method extends. + An object that contains the parameters for a route. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + The HTTP method for processing the form, either GET or POST. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. This object is typically created by using object initializer syntax. + The HTTP method for processing the form, either GET or POST. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + The HTTP method for processing the form, either GET or POST. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + The HTTP method for processing the form, either GET or POST. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + The HTTP method for processing the form, either GET or POST. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + An object that contains the parameters for a route + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + An object that contains the parameters for a route + The HTTP method for processing the form, either GET or POST. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + The name of the route to use to obtain the form-post URL. + An object that contains the parameters for a route + The HTTP method for processing the form, either GET or POST. + An object that contains the HTML attributes to set for the element. + + + Writes an opening <form> tag to the response. When the user submits the form, the request will be processed by the route target. + An opening <form> tag. + The HTML helper instance that this method extends. + An object that contains the parameters for a route + + + Renders the closing </form> tag to the response. + The HTML helper instance that this method extends. + + + Represents support for HTML input controls in an application.12/23/2010 12:04:24 PM zz + + + Returns a check box input element by using the specified HTML helper and the name of the form field. + An input element whose type attribute is set to "checkbox". + The HTML helper instance that this method extends. + The name of the form field. + + + Returns a check box input element by using the specified HTML helper, the name of the form field, and a value to indicate whether the check box is selected. + An input element whose type attribute is set to "checkbox". + The HTML helper instance that this method extends. + The name of the form field. + true to select the check box; otherwise, false. + + + Returns a check box input element by using the specified HTML helper, the name of the form field, a value to indicate whether the check box is selected, and the HTML attributes. + An input element whose type attribute is set to "checkbox". + The HTML helper instance that this method extends. + The name of the form field. + true to select the check box; otherwise, false. + An object that contains the HTML attributes to set for the element. + + + Returns a check box input element by using the specified HTML helper, the name of the form field, a value that indicates whether the check box is selected, and the HTML attributes. + An input element whose type attribute is set to "checkbox". + The HTML helper instance that this method extends. + The name of the form field. + true to select the check box; otherwise, false. + An object that contains the HTML attributes to set for the element. + + + Returns a check box input element by using the specified HTML helper, the name of the form field, and the HTML attributes. + An input element whose type attribute is set to "checkbox". + The HTML helper instance that this method extends. + The name of the form field. + An object that contains the HTML attributes to set for the element. + + + Returns a check box input element by using the specified HTML helper, the name of the form field, and the HTML attributes. + An input element whose type attribute is set to "checkbox". + The HTML helper instance that this method extends. + The name of the form field. + An object that contains the HTML attributes to set for the element. + + + Returns a check box input element for each property in the object that is represented by the specified expression. + An HTML input element whose type attribute is set to "checkbox" for each property in the object that is represented by the specified expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The type of the model. + The parameter is null. + + + Returns a check box input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An HTML input element whose type attribute is set to "checkbox" for each property in the object that is represented by the specified expression, using the specified HTML attributes. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + A dictionary that contains the HTML attributes to set for the element. + The type of the model. + The parameter is null. + + + Returns a check box input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An HTML input element whose type attribute is set to "checkbox" for each property in the object that is represented by the specified expression, using the specified HTML attributes. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + An object that contains the HTML attributes to set for the element. + The type of the model. + The parameter is null. + + + Returns a hidden input element by using the specified HTML helper and the name of the form field. + An input element whose type attribute is set to "hidden". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + + + Returns a hidden input element by using the specified HTML helper, the name of the form field, and the value. + An input element whose type attribute is set to "hidden". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + The value of the hidden input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. + + + Returns a hidden input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. + An input element whose type attribute is set to "hidden". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + The value of the hidden input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. + An object that contains the HTML attributes to set for the element. + + + Returns a hidden input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. + An input element whose type attribute is set to "hidden". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + The value of the hidden input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. + An object that contains the HTML attributes to set for the element. + + + Returns an HTML hidden input element for each property in the object that is represented by the specified expression. + An input element whose type attribute is set to "hidden" for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The type of the model. + The type of the property. + + + Returns an HTML hidden input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An input element whose type attribute is set to "hidden" for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + An object that contains the HTML attributes to set for the element. + The type of the model. + The type of the property. + + + Returns an HTML hidden input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An input element whose type attribute is set to "hidden" for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + An object that contains the HTML attributes to set for the element. + The type of the model. + The type of the property. + + + Returns a password input element by using the specified HTML helper and the name of the form field. + An input element whose type attribute is set to "password". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + + + Returns a password input element by using the specified HTML helper, the name of the form field, and the value. + An input element whose type attribute is set to "password". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + The value of the password input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. + + + Returns a password input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. + An input element whose type attribute is set to "password". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + The value of the password input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. + An object that contains the HTML attributes to set for the element. + + + Returns a password input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. + An input element whose type attribute is set to "password". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + The value of the password input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. + An object that contains the HTML attributes to set for the element. + + + Returns a password input element for each property in the object that is represented by the specified expression. + An HTML input element whose type attribute is set to "password" for each property in the object that is represented by the specified expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The type of the model. + The type of the value. + The parameter is null. + + + Returns a password input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An HTML input element whose type attribute is set to "password" for each property in the object that is represented by the specified expression, using the specified HTML attributes. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + A dictionary that contains the HTML attributes to set for the element. + The type of the model. + The type of the value. + The parameter is null. + + + Returns a password input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An HTML input element whose type attribute is set to "password" for each property in the object that is represented by the specified expression, using the specified HTML attributes. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + An object that contains the HTML attributes to set for the element. + The type of the model. + The type of the value. + The parameter is null. + + + Returns a radio button input element that is used to present mutually exclusive options. + An input element whose type attribute is set to "radio". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. + The parameter is null or empty. + The parameter is null. + + + Returns a radio button input element that is used to present mutually exclusive options. + An input element whose type attribute is set to "radio". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. + true to select the radio button; otherwise, false. + The parameter is null or empty. + The parameter is null. + + + Returns a radio button input element that is used to present mutually exclusive options. + An input element whose type attribute is set to "radio". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. + true to select the radio button; otherwise, false. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + The parameter is null. + + + Returns a radio button input element that is used to present mutually exclusive options. + An input element whose type attribute is set to "radio". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. + true to select the radio button; otherwise, false. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + The parameter is null. + + + Returns a radio button input element that is used to present mutually exclusive options. + An input element whose type attribute is set to "radio". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + The parameter is null. + + + Returns a radio button input element that is used to present mutually exclusive options. + An input element whose type attribute is set to "radio". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + The parameter is null. + + + Returns a radio button input element for each property in the object that is represented by the specified expression. + An HTML input element whose type attribute is set to "radio" for each property in the object that is represented by the specified expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. + The type of the model. + The type of the value. + The parameter is null. + + + Returns a radio button input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An HTML input element whose type attribute is set to "radio" for each property in the object that is represented by the specified expression, using the specified HTML attributes. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. + A dictionary that contains the HTML attributes to set for the element. + The type of the model. + The type of the value. + The parameter is null. + + + Returns a radio button input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An HTML input element whose type attribute is set to "radio" for each property in the object that is represented by the specified expression, using the specified HTML attributes. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + If this radio button is selected, the value of the radio button that is submitted when the form is posted. If the value of the selected radio button in the or the object matches this value, this radio button is selected. + An object that contains the HTML attributes to set for the element. + The type of the model. + The type of the value. + The parameter is null. + + + Returns a text input element by using the specified HTML helper and the name of the form field. + An input element whose type attribute is set to "text". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + + + Returns a text input element by using the specified HTML helper, the name of the form field, and the value. + An input element whose type attribute is set to "text". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. + + + Returns a text input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. + An input element whose type attribute is set to "text". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. + An object that contains the HTML attributes to set for the element. + + + Returns a text input element by using the specified HTML helper, the name of the form field, the value, and the HTML attributes. + An input element whose type attribute is set to "text". + The HTML helper instance that this method extends. + The name of the form field and the key that is used to look up the value. + The value of the text input element. If this value is null, the value of the element is retrieved from the object. If no value exists there, the value is retrieved from the object. + An object that contains the HTML attributes to set for the element. + + + Returns a text input element for each property in the object that is represented by the specified expression. + An HTML input element whose type attribute is set to "text" for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The type of the model. + The type of the value. + The parameter is null or empty. + + + Returns a text input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An HTML input element type attribute is set to "text" for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + A dictionary that contains the HTML attributes to set for the element. + The type of the model. + The type of the value. + The parameter is null or empty. + + + Returns a text input element for each property in the object that is represented by the specified expression, using the specified HTML attributes. + An HTML input element whose type attribute is set to "text" for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + An object that contains the HTML attributes to set for the element. + The type of the model. + The type of the value. + The parameter is null or empty. + + + Represents support for the HTML label element in an ASP.NET MVC view. + + + Returns an HTML label element and the property name of the property that is represented by the specified expression. + An HTML label element and the property name of the property that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the property to display. + + + Returns . + + + An HTML label element and the property name of the property that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the property to display. + The type of the model. + The type of the value. + + + An HTML label element and the property name of the property that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the property to display. + The label text. + The type of the model. + The type of the value. + + + Returns an HTML label element and the property name of the property that is represented by the model. + An HTML label element and the property name of the property that is represented by the model. + The HTML helper instance that this method extends. + + + Returns . + + + Represents support for HTML links in an application. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + An object that contains the HTML attributes for the element. The attributes are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + The name of the controller. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + The name of the controller. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + The name of the controller. + The protocol for the URL, such as "http" or "https". + The host name for the URL. + The URL fragment name (the anchor name). + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + The name of the controller. + The protocol for the URL, such as "http" or "https". + The host name for the URL. + The URL fragment name (the anchor name). + An object that contains the parameters for a route. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + The name of the controller. + An object that contains the parameters for a route. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + An object that contains the parameters for a route. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the action. + An object that contains the parameters for a route. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the route that is used to return a virtual path. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the route that is used to return a virtual path. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the route that is used to return a virtual path. + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the route that is used to return a virtual path. + The protocol for the URL, such as "http" or "https". + The host name for the URL. + The URL fragment name (the anchor name). + An object that contains the parameters for a route. The parameters are retrieved through reflection by examining the properties of the object. The object is typically created by using object initializer syntax. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the route that is used to return a virtual path. + The protocol for the URL, such as "http" or "https". + The host name for the URL. + The URL fragment name (the anchor name). + An object that contains the parameters for a route. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the route that is used to return a virtual path. + An object that contains the parameters for a route. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + The name of the route that is used to return a virtual path. + An object that contains the parameters for a route. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + An object that contains the parameters for a route. + The parameter is null or empty. + + + Returns an anchor element (a element) that contains the virtual path of the specified action. + An anchor element (a element). + The HTML helper instance that this method extends. + The inner text of the anchor element. + An object that contains the parameters for a route. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Represents an HTML form element in an MVC view. + + + Initializes a new instance of the class using the specified HTTP response object. + The HTTP response object. + The parameter is null. + + + Initializes a new instance of the class using the specified view context. + An object that encapsulates the information that is required in order to render a view. + The parameter is null. + + + Releases all resources that are used by the current instance of the class. + + + Releases unmanaged and, optionally, managed resources used by the current instance of the class. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + Ends the form and disposes of all form resources. + + + Represents the functionality to render a partial view as an HTML-encoded string. + + + Renders the specified partial view as an HTML-encoded string. + The partial view that is rendered as an HTML-encoded string. + The HTML helper instance that this method extends. + The name of the partial view to render. + + + Renders the specified partial view as an HTML-encoded string. + The partial view that is rendered as an HTML-encoded string. + The HTML helper instance that this method extends. + The name of the partial view to render. + The model for the partial view. + + + Renders the specified partial view as an HTML-encoded string. + The partial view that is rendered as an HTML-encoded string. + The HTML helper instance that this method extends. + The name of the partial view. + The model for the partial view. + The view data dictionary for the partial view. + + + Renders the specified partial view as an HTML-encoded string. + The partial view that is rendered as an HTML-encoded string. + The HTML helper instance that this method extends. + The name of the partial view to render. + The view data dictionary for the partial view. + + + Provides support for rendering a partial view. + + + Renders the specified partial view by using the specified HMTL helper. + The HTML helper. + The name of the partial view + + + Renders the specified partial view, passing it a copy of the current object, but with the Model property set to the specified model. + The HTML helper. + The name of the partial view. + The model. + + + Renders the specified partial view, replacing the partial view's ViewData property with the specified object and setting the Model property of the view data to the specified model. + The HTML helper. + The name of the partial view. + The model for the partial view. + The view data for the partial view. + + + Renders the specified partial view, replacing its ViewData property with the specified object. + The HTML helper. + The name of the partial view. + The view data. + + + Represents support for making selections in a list. + + + Returns a single-selection select element using the specified HTML helper and the name of the form field. + An HTML select element. + The HTML helper instance that this method extends. + The name of the form field to return. + The parameter is null or empty. + + + Returns a single-selection select element using the specified HTML helper, the name of the form field, and the specified list items. + An HTML select element with an option subelement for each item in the list. + The HTML helper instance that this method extends. + The name of the form field to return. + A collection of objects that are used to populate the drop-down list. + The parameter is null or empty. + + + Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, and the specified HTML attributes. + An HTML select element with an option subelement for each item in the list. + The HTML helper instance that this method extends. + The name of the form field to return. + A collection of objects that are used to populate the drop-down list. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, and the specified HTML attributes. + An HTML select element with an option subelement for each item in the list. + The HTML helper instance that this method extends. + The name of the form field to return. + A collection of objects that are used to populate the drop-down list. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, and an option label. + An HTML select element with an option subelement for each item in the list. + The HTML helper instance that this method extends. + The name of the form field to return. + A collection of objects that are used to populate the drop-down list. + The text for a default empty item. This parameter can be null. + The parameter is null or empty. + + + Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, an option label, and the specified HTML attributes. + An HTML select element with an option subelement for each item in the list. + The HTML helper instance that this method extends. + The name of the form field to return. + A collection of objects that are used to populate the drop-down list. + The text for a default empty item. This parameter can be null. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns a single-selection select element using the specified HTML helper, the name of the form field, the specified list items, an option label, and the specified HTML attributes. + An HTML select element with an option subelement for each item in the list. + The HTML helper instance that this method extends. + The name of the form field to return. + A collection of objects that are used to populate the drop-down list. + The text for a default empty item. This parameter can be null. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns a single-selection select element using the specified HTML helper, the name of the form field, and an option label. + An HTML select element with an option subelement for each item in the list. + The HTML helper instance that this method extends. + The name of the form field to return. + The text for a default empty item. This parameter can be null. + The parameter is null or empty. + + + Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items. + An HTML select element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + A collection of objects that are used to populate the drop-down list. + The type of the model. + The type of the value. + The parameter is null. + + + Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and HTML attributes. + An HTML select element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + A collection of objects that are used to populate the drop-down list. + The type of the model. + The type of the value. + The parameter is null. + + + Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and HTML attributes. + An HTML select element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + A collection of objects that are used to populate the drop-down list. + The type of the model. + The type of the value. + The parameter is null. + + + Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and option label. + An HTML select element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + A collection of objects that are used to populate the drop-down list. + The type of the model. + The type of the value. + The parameter is null. + + + Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items, option label, and HTML attributes. + An HTML select element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + A collection of objects that are used to populate the drop-down list. + The type of the model. + The type of the value. + The parameter is null. + + + Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items, option label, and HTML attributes. + An HTML select element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + A collection of objects that are used to populate the drop-down list. + The type of the model. + The type of the value. + The parameter is null. + + + Returns a multi-select select element using the specified HTML helper and the name of the form field. + An HTML select element. + The HTML helper instance that this method extends. + The name of the form field to return. + The parameter is null or empty. + + + Returns a multi-select select element using the specified HTML helper, the name of the form field, and the specified list items. + An HTML select element with an option subelement for each item in the list. + The HTML helper instance that this method extends. + The name of the form field to return. + A collection of objects that are used to populate the drop-down list. + The parameter is null or empty. + + + Returns a multi-select select element using the specified HTML helper, the name of the form field, the specified list items, and the specified HMTL attributes. + An HTML select element with an option subelement for each item in the list.. + The HTML helper instance that this method extends. + The name of the form field to return. + A collection of objects that are used to populate the drop-down list. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns a multi-select select element using the specified HTML helper, the name of the form field, and the specified list items. + An HTML select element with an option subelement for each item in the list.. + The HTML helper instance that this method extends. + The name of the form field to return. + A collection of objects that are used to populate the drop-down list. + An object that contains the HTML attributes to set for the element. + The parameter is null or empty. + + + Returns an HTML select element for each property in the object that is represented by the specified expression and using the specified list items. + An HTML select element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + A collection of objects that are used to populate the drop-down list. + The type of the model. + The type of the property. + The parameter is null. + + + Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and HTML attributes. + An HTML select element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + A collection of objects that are used to populate the drop-down list. + The type of the model. + The type of the property. + The parameter is null. + + + Returns an HTML select element for each property in the object that is represented by the specified expression using the specified list items and HTML attributes. + An HTML select element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to display. + A collection of objects that are used to populate the drop-down list. + The type of the model. + The type of the property. + The parameter is null. + + + Represents support for HTML textarea controls. + + + Returns the specified textarea element by using the specified HTML helper and the name of the form field. + The textarea element. + The HTML helper instance that this method extends. + The name of the form field to return. + + + Returns the specified textarea element by using the specified HTML helper, the name of the form field, and the specified HTML attributes. + The textarea element. + The HTML helper instance that this method extends. + The name of the form field to return. + An object that contains the HTML attributes to set for the element. + + + Returns the specified textarea element by using the specified HTML helper and HTML attributes. + The textarea element. + The HTML helper instance that this method extends. + The name of the form field to return. + An object that contains the HTML attributes to set for the element. + + + Returns the specified textarea element by using the specified HTML helper, the name of the form field, and the text content. + The textarea element. + The HTML helper instance that this method extends. + The name of the form field to return. + The text content. + + + Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, and the specified HTML attributes. + The textarea element. + The HTML helper instance that this method extends. + The name of the form field to return. + The text content. + An object that contains the HTML attributes to set for the element. + + + Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, the number of rows and columns, and the specified HTML attributes. + The textarea element. + The HTML helper instance that this method extends. + The name of the form field to return. + The text content. + The number of rows. + The number of columns. + An object that contains the HTML attributes to set for the element. + + + Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, the number of rows and columns, and the specified HTML attributes. + The textarea element. + The HTML helper instance that this method extends. + The name of the form field to return. + The text content. + The number of rows. + The number of columns. + An object that contains the HTML attributes to set for the element. + + + Returns the specified textarea element by using the specified HTML helper, the name of the form field, the text content, and the specified HTML attributes. + The textarea element. + The HTML helper instance that this method extends. + The name of the form field to return. + The text content. + An object that contains the HTML attributes to set for the element. + + + Returns an HTML textarea element for each property in the object that is represented by the specified expression. + An HTML textarea element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The type of the model. + The type of the property. + The parameter is null. + + + Returns an HTML textarea element for each property in the object that is represented by the specified expression using the specified HTML attributes. + An HTML textarea element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + A dictionary that contains the HTML attributes to set for the element. + The type of the model. + The type of the property. + The parameter is null. + + + Returns an HTML textarea element for each property in the object that is represented by the specified expression using the specified HTML attributes and the number of rows and columns. + An HTML textarea element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The number of rows. + The number of columns. + A dictionary that contains the HTML attributes to set for the element. + The type of the model. + The type of the property. + The parameter is null. + + + Returns an HTML textarea element for each property in the object that is represented by the specified expression using the specified HTML attributes and the number of rows and columns. + An HTML textarea element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The number of rows. + The number of columns. + A dictionary that contains the HTML attributes to set for the element. + The type of the model. + The type of the property. + The parameter is null. + + + Returns an HTML textarea element for each property in the object that is represented by the specified expression using the specified HTML attributes. + An HTML textarea element for each property in the object that is represented by the expression. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + A dictionary that contains the HTML attributes to set for the element. + The type of the model. + The type of the property. + The parameter is null. + + + Provides support for validating the input from an HTML form. + + + Gets or sets the name of the resource file (class key) that contains localized string values. + The name of the resource file (class key). + + + Retrieves the validation metadata for the specified model and applies each rule to the data field. + The HTML helper instance that this method extends. + The name of the property or model object that is being validated. + The parameter is null. + + + Retrieves the validation metadata for the specified model and applies each rule to the data field. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The type of the model. + The type of the property. + + + Displays a validation message if an error exists for the specified field in the object. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + The name of the property or model object that is being validated. + + + Displays a validation message if an error exists for the specified field in the object. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + The name of the property or model object that is being validated. + An object that contains the HTML attributes for the element. + + + Displays a validation message if an error exists for the specified field in the object. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + The name of the property or model object that is being validated. + An object that contains the HTML attributes for the element. + + + Displays a validation message if an error exists for the specified field in the object. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + The name of the property or model object that is being validated. + The message to display if the specified field contains an error. + + + Displays a validation message if an error exists for the specified field in the object. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + The name of the property or model object that is being validated. + The message to display if the specified field contains an error. + An object that contains the HTML attributes for the element. + + + Displays a validation message if an error exists for the specified field in the object. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + The name of the property or model object that is being validated. + The message to display if the specified field contains an error. + An object that contains the HTML attributes for the element. + + + Returns the HTML markup for a validation-error message for each data field that is represented by the specified expression. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The type of the model. + The type of the property. + + + Returns the HTML markup for a validation-error message for each data field that is represented by the specified expression, using the specified message. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The message to display if the specified field contains an error. + The type of the model. + The type of the property. + + + Returns the HTML markup for a validation-error message for each data field that is represented by the specified expression, using the specified message and HTML attributes. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The message to display if the specified field contains an error. + An object that contains the HTML attributes for the element. + The type of the model. + The type of the property. + + + Returns the HTML markup for a validation-error message for each data field that is represented by the specified expression, using the specified message and HTML attributes. + If the property or object is valid, an empty string; otherwise, a span element that contains an error message. + The HTML helper instance that this method extends. + An expression that identifies the object that contains the properties to render. + The message to display if the specified field contains an error. + An object that contains the HTML attributes for the element. + The type of the model. + The type of the property. + + + Returns an unordered list (ul element) of validation messages that are in the object. + A string that contains an unordered list (ul element) of validation messages. + The HTML helper instance that this method extends. + + + Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors. + A string that contains an unordered list (ul element) of validation messages. + The HTML helper instance that this method extends. + true to have the summary display model-level errors only, or false to have the summary display all errors. + + + Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors. + A string that contains an unordered list (ul element) of validation messages. + The HTML helper instance that this method extends. + true to have the summary display model-level errors only, or false to have the summary display all errors. + The message to display with the validation summary. + + + Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors. + A string that contains an unordered list (ul element) of validation messages. + The HTML helper instance that this method extends. + true to have the summary display model-level errors only, or false to have the summary display all errors. + The message to display with the validation summary. + A dictionary that contains the HTML attributes for the element. + + + Returns an unordered list (ul element) of validation messages that are in the object and optionally displays only model-level errors. + A string that contains an unordered list (ul element) of validation messages. + The HTML helper instance that this method extends. + true to have the summary display model-level errors only, or false to have the summary display all errors. + The message to display with the validation summary. + An object that contains the HTML attributes for the element. + + + Returns an unordered list (ul element) of validation messages that are in the object. + A string that contains an unordered list (ul element) of validation messages. + The HMTL helper instance that this method extends. + The message to display if the specified field contains an error. + + + Returns an unordered list (ul element) of validation messages that are in the object. + A string that contains an unordered list (ul element) of validation messages. + The HTML helper instance that this method extends. + The message to display if the specified field contains an error. + A dictionary that contains the HTML attributes for the element. + + + Returns an unordered list (ul element) of validation messages in the object. + A string that contains an unordered list (ul element) of validation messages. + The HTML helper instance that this method extends. + The message to display if the specified field contains an error. + An object that contains the HTML attributes for the element. + + + Provides a model-aware class for ASP.NET MVC. + + + Initializes a new instance of the class. + The start of the span. + The content. + The type name of the model. + + + Gets a value that indicates whether the current object is identical to the specified object. + true if the current object is identical to the specified object; otherwise, false. + The model span object. + + + Returns the hash code of the object. + The hash code of the object. + + + Gets the type name of the model. + The type name of the model. + + + Compiles ASP.NET Razor views into classes. + + + Initializes a new instance of the class. + The class name. + The root namespace. + The name of the source file. + The ASP.NET Razor engine host. + + + Returns a value that indicates whether the specified model span is an instance of . + true if the value of the parameter is an instance of ; otherwise, false. + The model span. + + + + + + Compiles ASP.NET Razor views into classes. + + + + + Extends the VBCodeParser class by adding support for the @model keyword. + + + Initializes a new instance of the class. + + + + Configures the ASP.NET Razor parser and code generator for a specified file. + + + Initializes a new instance of the class. + The virtual path of the ASP.NET Razor file. + The physical path of the ASP.NET Razor file. + + + + + \ No newline at end of file diff --git a/Libraries/MVC3/System.Web.Razor.dll b/Libraries/MVC3/System.Web.Razor.dll new file mode 100644 index 000000000..cd950e6d1 Binary files /dev/null and b/Libraries/MVC3/System.Web.Razor.dll differ diff --git a/Libraries/MVC3/System.Web.Razor.xml b/Libraries/MVC3/System.Web.Razor.xml new file mode 100644 index 000000000..29c5f8423 --- /dev/null +++ b/Libraries/MVC3/System.Web.Razor.xml @@ -0,0 +1,866 @@ + + + + System.Web.Razor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Libraries/MVC3/System.Web.WebPages.Deployment.dll b/Libraries/MVC3/System.Web.WebPages.Deployment.dll new file mode 100644 index 000000000..2e09c485e Binary files /dev/null and b/Libraries/MVC3/System.Web.WebPages.Deployment.dll differ diff --git a/Libraries/MVC3/System.Web.WebPages.Deployment.xml b/Libraries/MVC3/System.Web.WebPages.Deployment.xml new file mode 100644 index 000000000..17d48b4e7 --- /dev/null +++ b/Libraries/MVC3/System.Web.WebPages.Deployment.xml @@ -0,0 +1,16 @@ + + + + System.Web.WebPages.Deployment + + + + + + + + + + + + \ No newline at end of file diff --git a/Libraries/MVC3/System.Web.WebPages.Razor.dll b/Libraries/MVC3/System.Web.WebPages.Razor.dll new file mode 100644 index 000000000..9846dd3fc Binary files /dev/null and b/Libraries/MVC3/System.Web.WebPages.Razor.dll differ diff --git a/Libraries/MVC3/System.Web.WebPages.Razor.xml b/Libraries/MVC3/System.Web.WebPages.Razor.xml new file mode 100644 index 000000000..334ca13d5 --- /dev/null +++ b/Libraries/MVC3/System.Web.WebPages.Razor.xml @@ -0,0 +1,71 @@ + + + + System.Web.WebPages.Razor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Libraries/MVC3/System.Web.WebPages.dll b/Libraries/MVC3/System.Web.WebPages.dll new file mode 100644 index 000000000..9fea01285 Binary files /dev/null and b/Libraries/MVC3/System.Web.WebPages.dll differ diff --git a/Libraries/MVC3/System.Web.WebPages.xml b/Libraries/MVC3/System.Web.WebPages.xml new file mode 100644 index 000000000..fe5c86c78 --- /dev/null +++ b/Libraries/MVC3/System.Web.WebPages.xml @@ -0,0 +1,884 @@ + + + + System.Web.WebPages + + + + Helps prevent malicious scripts from submitting forged page requests. + + + Adds an authenticating token to a form to help protect against request forgery. + Returns a string that contains the encrypted token value in a hidden HTML field. + The current object is null. + + + Adds an authenticating token to a form to help protect against request forgery, allowing callers to specify added authentication details. + Returns the encrypted token value in a hidden HTML field. + The HTTP context data for a request. + An optional random string of characters (such as Z*7g1&p4) that is used to add complexity to the encryption for extra safety. The default is a null string. + The domain of a Web application that a request is submitted from. + The virtual root path of a Web application that a request is submitted from. + The supplied object is null. + + + Validates that input data from an HTML form field comes from the user who submitted the data. + The current value is null. + The HTTP cookie token that accompanies a valid request is missing-or-The form token is missing.-or-The form token value does not match the cookie token value.-or-The form token value does not match the cookie token value. + + + Validates that input data from an HTML form field comes from the user who submitted the data, allowing callers to specify additional custom details for the validation. + An optional random string of characters (such as Z*7g1&p4) used to decrypt an authentication token created by the class. The default is a null string. + The current value is null. + The HTTP cookie token that accompanies a valid request is missing-or-The form token is missing.-or-The form token value does not match the cookie token value.-or-The form token value does not match the cookie token value.-or-The value supplied does not match the value used to create the form token. + + + Provides access to unvalidated values in the object. + + + Gets a collection of unvalidated Web form values. + An unvalidated collection of Web form values. + + + Gets an unvalidated object from a collection in the object. + A member of a collection contained in the object. + The name of the collection member to get. + + + Gets a collection of unvalidated query-string values. + A collection of unvalidated query-string values. + + + Excludes fields of the Request object from being checked for potentially unsafe HTML markup. + + + Returns an unvalidated version of form values or query-string values. + An object that contains unvalidated versions of the form and query string values. + The object that contains values to exclude. + + + Returns an unvalidated value from the form or query string based on the field that has been requested. + A string that contains unvalidated text from the specified field or query-string value. + The object that contains values to exclude from validation s + The name of the field to exclude from validation. + + + Returns an unvalidated version of form values or query-string values. + An object that contains unvalidated versions of the form and query-string values. + The object that contains values to exclude from validation. + + + Returns an unvalidated value from the form or query string based on the field that has been requested. + A string that contains unvalidated text from the specified field or query-string value. + The object that contains values to exclude from validation. + The name of the field to exclude from validation. + + + This class and its members support the .NET Framework infrastructure and are not intended to be used directly from your code. + + + This member supports the .NET Framework infrastructure and is not intended to be used directly from your code. + + + This member supports the .NET Framework infrastructure and is not intended to be used directly from your code. + Details about the exception. + + + This member supports the .NET Framework infrastructure and is not intended to be used directly from your code. + Details about the exception. + An exception that occurred before the current exception. + + + + + + + + + + + + + + + + + + + + + + + + + + Enumerates the modes that are available for rendering HTML tags. + + + Represents normal mode. + + + Represents the start-tag mode. + + + Represents end-tag mode. + + + Represents self-closing-tag mode. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Redirects to the root of the Web site if the host is not local. + The HTTP context of the HTTP request. + A locally hosted URL. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Provides utility methods for converting string values to other data types. + + + Converts a string to a strongly typed value of the specified data type. + The converted value. + The value to convert. + The data type to convert to. + + + Converts a string to the specified data type and specifies a default value. + The converted value. + The value to convert. + The value to return if is null. + The data type to convert to. + + + Converts a string to a Boolean (true/false) value. + The converted value. + The value to convert. + + + Converts a string to a Boolean (true/false) value and specifies a default value. + The converted value. + The value to convert. + The value to return if is null or an invalid value. The default is false. + + + Converts a string to a value. + The converted value. + The value to convert. + + + Converts a string to a value and specifies a default value. + The converted value. + The value to convert. + The value to return if is null or an invalid value. The default is the minimum time value on the system. + + + Converts a string to a number. + The converted value. + The value to convert. + + + Converts a string to a number and specifies a default value. + The converted value. + The value to convert. + The value to return if is null or invalid. + + + Converts a string to a number. + The converted value. + The value to convert. + + + Converts a string to a number and specifies a default value. + The converted value. + The value to convert. + The value to return if is null. + + + Converts a string to an integer. + The converted value. + The value to convert. + + + Converts a string to an integer and specifies a default value. + The converted value. + The value to convert. + The value to return if is null or is an invalid value. + + + Checks whether a string can be converted to the specified data type. + + if can be converted to the specified type; otherwise, . + The value to test. + The data type to convert to. + + + Checks whether a string can be converted to the Boolean (true/false) type. + + if can be converted to the specified type; otherwise, . + The string value to test. + + + Checks whether a string can be converted to the type. + + if can be converted to the specified type; otherwise, . + The string value to test. + + + Checks whether a string can be converted to the type. + + if can be converted to the specified type; otherwise, . + The string value to test. + + + Checks whether a string value is null or empty. + true if is null or is a zero-length string (""); otherwise, false. + The string value to test. + + + Checks whether a string can be converted to the type. + true if can be converted to the specified type; otherwise, false. + The string value to test. + + + Checks whether a string can be converted to an integer. + + if can be converted to the specified type; otherwise, . + The string value to test. + + + + + + + + + + + + Represents an ASP.NET Razor page. + + + Called from a derived class to create a new instance that is based on the class. + + + Gets or sets the object that is associated with a page. + An object that references HTTP data about the current context of a page. + + + Executes the code in a set of dependent Web pages. + + + Gets the object that is associated with a page. + An object that supports rendering HTML form controls in a page. + + + Initializes an object that inherits from the class. + + + Gets the model that is associated with a page. + An object that represents a model that is associated with the view data for a page. + + + Gets the state data for the model that is associated with a page. + The state of the model. + + + Adds a class to a list of classes that handle page execution and that implement custom features for pages. + The class to add. + + + + + + + Called by content pages to create named content sections. + The name of the section to create. + The type of action to take with the new section. + + + + + + + + Gets or sets the path of a layout page. + The path of the layout page. + + + + + Provides property-like access to page data that is shared between pages, layout pages, and partial pages. + An object that contains page data. + + + Provides array-like access to page data that is shared between pages, layout pages, and partial pages. + A dictionary that contains page data. + + + + + In layout pages, renders the portion of a content page that is not within a named section. + The HTML content to render. + + + Renders the content of one page within another page. + The HTML content to render. + The path of the page to render. + (Optional) An array of data to pass to the page being rendered. In the rendered page, these parameters can be accessed by using the property. + + + In layout pages, renders the content of a named section. + The HTML content to render. + The section to render. + + + In layout pages, renders the content of a named section and specifies whether the section is required. + The HTML content to render. + The section to render. + true to specify that the section is required; otherwise, false. The default is false. + + + + + + Contains data that is used by a object to reference details about the Web application, the current HTTP request context, the current execution context, and page data. + + + + + Gets a reference to the current object that is associated with a page. + The current page context object. + + + + Gets the object that is associated with a page. + The page rendering object. + + + Gets the page data that is shared between pages, layout pages, and partial pages. + A dictionary that contains page data. + + + Provides objects and methods that are used to execute and render all ASP.NET Razor pages. + + + + Gets the application state data cast as a object that callers can use to create and access custom application-scoped properties. + An object that references the application state data. + + + Gets a reference to global application state data that can be shared across sessions and requests in an ASP.NET application. + The application state data. + + + When overridden in a derived class, gets or sets the object that is associated with a page. + The current context data. + + + + + + + + + + + + + + + + + + + + + Provides methods and properties that are used to render pages that use the Razor view engine. + + + Initializes a new instance of the class. + + + When overridden in a derived class, gets the cache object for the current application domain. + The cache object. + + + Gets or sets the culture for the current thread. + The culture for the current thread. + + + When overridden in a derived class, calls the methods that are used to initialize the page. + + + When overridden in a derived class, builds a URL using the specified parameters. + A URL. + The path to include in the URL. + Additional path information. + + + When overridden in a derived class, get a value that indicates whether Ajax is being used during the request of the Web page. + true if Ajax is being used during the request; otherwise, false. + + + When overridden in a derived class, returns a value that indicates whether the HTTP data transfer method used by the client to request the Web page is POST. + true if the HTTP verb is "POST"; otherwise, false. + + + When overridden in a derived class, gets or sets the path of a layout page. + The path of a layout page. + + + When overridden in a derived class, provides property-like access to page data that is shared between pages, layout pages, and partial pages. + An object that contains page data. + + + Gets the HTTP context for the Web page. + The HTTP context for the Web page. + + + When overridden in a derived class, provides array-like access to page data that is shared between pages, layout pages, and partial pages. + An object that provides array-like access to page data. + + + When overridden in a derived class, renders a Web page. + The markup that represents the Web page. + The path of the page to render. + Additional data that is used to render the page. + + + When overridden in a derived class, gets the object for the current HTTP request. + A object that contains the HTTP values sent by a client during a Web request. + + + When overridden in a derived class, gets the object for the current HTTP response. + A object that contains the HTTP-response information from an ASP.NET operation. + + + When overridden in a derived class, gets the object that provides methods that can be used as part of Web-page processing. + The object. + + + When overridden in a derived class, gets the object for the current HTTP request. + Session data for the current request. + + + When overridden in a derived class, gets information about the currently executing file. + Information about the currently executing file. + + + Gets or sets the current culture used by the ResourceManager to look up culture-specific resources at run time. + The current culture used by the Resource Manager. + + + When overridden in a derived class, gets data related to the URL path. + Data related to the URL path. + + + When overridden in a derived class, gets a user value based on the HTTP context. + A user value based on the HTTP context. + + + Represents support for rendering HTML controls in a Web page. + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + Returns . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/NzbDrone.Core/Libraries/NLog.dll b/Libraries/NLog.dll similarity index 100% rename from NzbDrone.Core/Libraries/NLog.dll rename to Libraries/NLog.dll diff --git a/NzbDrone.Core/Libraries/NLog.xml b/Libraries/NLog.xml similarity index 100% rename from NzbDrone.Core/Libraries/NLog.xml rename to Libraries/NLog.xml diff --git a/Libraries/SQLite.Interop.dll b/Libraries/SQLite.Interop.dll new file mode 100644 index 000000000..5f2e272e5 Binary files /dev/null and b/Libraries/SQLite.Interop.dll differ diff --git a/NzbDrone.Core/Libraries/SubSonic.Core.XML b/Libraries/SubSonic.Core.XML similarity index 100% rename from NzbDrone.Core/Libraries/SubSonic.Core.XML rename to Libraries/SubSonic.Core.XML diff --git a/NzbDrone.Core/Libraries/SubSonic.Core.dll b/Libraries/SubSonic.Core.dll similarity index 100% rename from NzbDrone.Core/Libraries/SubSonic.Core.dll rename to Libraries/SubSonic.Core.dll diff --git a/Libraries/System.Data.SQLite.dll b/Libraries/System.Data.SQLite.dll new file mode 100644 index 000000000..8cf172f8a Binary files /dev/null and b/Libraries/System.Data.SQLite.dll differ diff --git a/NzbDrone.Core/Libraries/TvdbLib.XML b/Libraries/TvdbLib.XML similarity index 100% rename from NzbDrone.Core/Libraries/TvdbLib.XML rename to Libraries/TvdbLib.XML diff --git a/NzbDrone.Core/Libraries/TvdbLib.dll b/Libraries/TvdbLib.dll similarity index 100% rename from NzbDrone.Core/Libraries/TvdbLib.dll rename to Libraries/TvdbLib.dll diff --git a/Libraries/VCB/AutoVer.exe b/Libraries/VCB/AutoVer.exe new file mode 100644 index 000000000..7df2a43ea Binary files /dev/null and b/Libraries/VCB/AutoVer.exe differ diff --git a/Libraries/VCB/CommandLine.txt b/Libraries/VCB/CommandLine.txt new file mode 100644 index 000000000..b9ef25125 --- /dev/null +++ b/Libraries/VCB/CommandLine.txt @@ -0,0 +1,203 @@ +VCB Command-line Utility ver. 3.2 + +NOTE: Implementation details and latest version of the tool can be found at +http://www.codeproject.com/KB/macros/versioningcontrolledbuild.aspx + +AutoVer.exe is a command-line utility that provides functionality +similar to VCB Add-in - it automates versioning of projects in +solutions. + +Supported workspaces/solutions: +- Visual C++ 6.0 workspaces (.dsw files) +- Visual Studio 2002 solutions (.sln files) +- Visual Studio 2003 solutions (.sln files) +- Visual Studio 2005 solutions (.sln files) +- Visual Studio 2008 solutions (.sln files) +- Visual Studio 2010 solutions (.sln files) + +The tool extracts version information (AssemblyVersion, +AssemblyInformationalVersion and AssemblyFileVersion for .NET projects or +ProductVersion and FileVersion for VC++ projects) and increments versions +according to settings in configuration file or according to command-line +switches that override some settings in configuration file. Configuration file +is stored in + Application Data\Versioning Controlled Build +folder of user's profile and can be modified by Configurator program. + +Basic Syntax: + +AUTOVER /? +AUTOVER [solution] /G +AUTOVER [solution [version]] [/P:projects] [/C:(E|W)] [/A:(A|M)] + [/V:(*|[A][F][P|I])] [/S:(S|I|N)] [/M:([C][F["filename"]]|N)] + [/U:(username[,password])] + + /? Displays command help. + + solution Solution file (.SLN or .DSW) for which versions should be updated. + If solution file is omitted, "Open Solution File" dialog pops-up + allowing user to select the file. + + /G Starts GUI form with a list of all projects. + NOTE: This switch should not be used with any other switch. + + Examples: + AUTOVER /G + AUTOVER /G "C:\My Projects\My Solution.sln" + AUTOVER "C:\My Projects\My Solution.sln" /G + + version Version pattern to be applied. Version pattern is a sequence of + four dot separated version components: Major, Minor, Build and + Revision. Each component may contain number (optionally preceded by + '+' character) or '*' character: + '*' character leaves corresponding version component unchanged, + '+' character increments it by amount specified. + For example, version pattern "1.2.*.+2" sets Major version to 1 + and Minor to 2, leaves Build unchanged and increments Revision by + 2. + If version is omitted, versions are incremented by the scheme + stored in the configuration file. If configuration file does not + exist, Revision will be incremented by 1. + If configured so, user may enter arbitrary version (e.g. "beta 1") + but can apply it to AssemblyInformationalVersion only (using /V:I + or /V:I switch).However such a version will not be applied to + ProductVersion of VC++ projects. + Arbitrary version must not contain a dot character. + NOTE: version pattern cannot be applied in combination with /S + switch. + + Examples: + AUTOVER "C:\My Projects\My Solution.sln" "1.0.0.1" + AUTOVER "C:\My Projects\My Solution.sln" "1.+1,*.*" + AUTOVER "C:\My Projects\My Solution.sln" "beta2" /V:I + + /P Specifications for individual projects as defined in the list + supplied with this switch. If this switch is omitted, all projects + in solution are considered, according to settings in configuration + file. + + projects List of comma separated project names. Each project name may be + prefixed by: + + (optional) include project into the list of projects for + which version may be modified; + - exclude project from the list of projects for which version + may be modified (complement to + prefix); + ! include project into list of projects for which version is + always modified. + If a project name contains whitespace, you should enclose it with + double quotes. Same applies for the case when project name starts + with one of prefix characters. + NOTE: Version of project that may be versioned will be modified + only if other criteria apply (e.g. project modification has been + detected or /A:A switch has been set). + NOTE: Project name may be listed only once, otherwise an error is + issued and command is not executed. + + Examples: + AUTOVER "My Solution.sln" /P:"ConsoleApp1","ConsoleApp2" + AUTOVER "My Solution.sln" /P:-"Xlib" + AUTOVER "My Solution.sln" /P:!"ConsoleApp1",-"ConsoleApp2" + + /C Check if project names provided with /P, /X and /F switches exist + in solution. Any invalid name causes: + E Error - command is not executed (default); + W Warning - command is executed ignoring invalid entries. + + /A Apply version to: + A All projects; + M Modified projects only (default). + NOTE: /P and /X switches change the scope of /A switch by limiting + the scope to or excluding corresponding projects from scope, + respectively. + /F switch extends the scope of /A:M switch by including + corresponding projects. + + /V Version types to modify: + A Assembly version; + P or I Product (i.e. Informational) version; + F File version; + * All version types. + If this switch is omitted, settings from configuration file are + applied. If configuration file does not exist, only Assembly + version is modified. + + Examples: + AUTOVER "My Solution.sln" "1.+1.*.*"/V:AF + AUTOVER "My Solution.sln" /V:* + + /S Synchronization of versions in projects: + S Synchronize (to the highest version); + I Increment and then synchronize; + N Increment versions independently. + If this switch is omitted, settings from configuration file are + applied. If configuration file does not exist, versions are + incremented independently. + NOTE: this switch cannot be used if version pattern is provided. + + Example: + AUTOVER "My Solution.sln" /S:I + + /M Version update summary: + C Output to console (default); + F Write to a file (with optional filename); + N Suppress the summary. + If filename is omitted from /M:F switch, name is automatically + created from solution filename. + + Example: + AUTOVER "My Solution.sln" /M:CF"summary.txt" + + /U SourceSafe username and password. If username or password are not + provided, user will be prompted to enter them if solution is under + SourceSafe control. If you do not want to provide password with + command stored in a script (e.g. in a BAT file), you may store + username only (without comma after it: /G:username); user will be + prompted to enter password when command is run. + NOTE: If /U switch is omitted and solution is under SourceSafe + control, username and password of the currently logged user is + used; if it is not valid, user will be prompted to enter them for + each file to be checked out! + + Examples: + Provide username and password: + AUTOVER "My Solution.sln" /U:john,smith + Provide username and empty password: + AUTOVER "My Solution.sln" /U:john, + AUTOVER "My Solution.sln" /U:john,"" + Provide username only, user will be prompted to enter password: + AUTOVER "My Solution.sln" /U:john + User will be prompted to enter username and password: + AUTOVER "My Solution.sln" /U + + +EXAMPLE 1: + +AUTOVER /V:* /A:M "d:\my projects\MySolution.sln" + +This command increments all versions (Assembly, File and Product) of +modified projects in MySolution solution, using numbering scheme from +configuration file (or default scheme if configuration file does not +exist) + + +EXAMPLE 2: + +AUTOVER /V:AF /A:A "d:\my projects\MySolution.sln" +"2.0.*.+" + +This command sets Assembly and File versions for all projects from +MySolution solution, using version mask provided: +- major version is set to 2 +- minor version is set to 0 +- build is left intact +- revision is incremented by 1 + + +EXAMPLE 3: + +AUTOVER /G + +This command first pops-up File Open dialog so that user can browse for +a solution file. When user selects a SLN or DSW file, form with a list +of all projects is displayed, providing user precise control to set +versions for individual projects. diff --git a/Libraries/VCB/Configurator.exe b/Libraries/VCB/Configurator.exe new file mode 100644 index 000000000..f5bf51dae Binary files /dev/null and b/Libraries/VCB/Configurator.exe differ diff --git a/Libraries/VCB/MultiTabColorPicker.dll b/Libraries/VCB/MultiTabColorPicker.dll new file mode 100644 index 000000000..47b2a192f Binary files /dev/null and b/Libraries/VCB/MultiTabColorPicker.dll differ diff --git a/Libraries/VCB/Shared.InstallState b/Libraries/VCB/Shared.InstallState new file mode 100644 index 000000000..9926bc726 --- /dev/null +++ b/Libraries/VCB/Shared.InstallState @@ -0,0 +1,51 @@ + + + +0.72 +2 + + +11 + + + + +_reserved_nestedSavedStates +_reserved_lastInstallerAttempted + + + +0 + + + + + +0.72 +6 + + +11 + + + + +VS_7_1_INSTALLDIR + +VS_8_0_INSTALLDIR +VS_10_0_INSTALLDIR +VS_9_0_INSTALLDIR + + + +true + +true +true +true +-1 + + + + + diff --git a/Libraries/VCB/Shared.dll b/Libraries/VCB/Shared.dll new file mode 100644 index 000000000..16619a365 Binary files /dev/null and b/Libraries/VCB/Shared.dll differ diff --git a/NzbDrone.Core/Libraries/nlog.xsd b/Libraries/nlog.xsd similarity index 100% rename from NzbDrone.Core/Libraries/nlog.xsd rename to Libraries/nlog.xsd diff --git a/Migrator.net/Migrator.Providers/Migrator.Providers.csproj b/Migrator.net/Migrator.Providers/Migrator.Providers.csproj index 6880f3f86..f0485ccdc 100644 --- a/Migrator.net/Migrator.Providers/Migrator.Providers.csproj +++ b/Migrator.net/Migrator.Providers/Migrator.Providers.csproj @@ -54,7 +54,7 @@ - ..\..\NzbDrone.Core\Libraries\System.Data.SQLite.dll + ..\..\Libraries\System.Data.SQLite.dll diff --git a/NzbDrone.Core.Test/App.config b/NzbDrone.Core.Test/App.config index 6b4327abb..a67132955 100644 --- a/NzbDrone.Core.Test/App.config +++ b/NzbDrone.Core.Test/App.config @@ -12,7 +12,7 @@ - + diff --git a/NzbDrone.Core.Test/Fixtures.cs b/NzbDrone.Core.Test/Fixtures.cs index 816b5f5ce..7862b18be 100644 --- a/NzbDrone.Core.Test/Fixtures.cs +++ b/NzbDrone.Core.Test/Fixtures.cs @@ -30,7 +30,7 @@ namespace NzbDrone.Core.Test [FixtureTearDown] public void FixtureTearDown() { - foreach (var file in Directory.GetFiles(Directory.GetCurrentDirectory(), "*.*", SearchOption.AllDirectories) + foreach (var file in Directory.GetFiles(Directory.GetCurrentDirectory(), "*.db", SearchOption.AllDirectories) ) { try diff --git a/NzbDrone.Core.Test/Libs/Moq.dll b/NzbDrone.Core.Test/Libs/Moq.dll deleted file mode 100644 index 1dd95aa8e..000000000 Binary files a/NzbDrone.Core.Test/Libs/Moq.dll and /dev/null differ diff --git a/NzbDrone.Core.Test/Libs/System.Data.SQLite.DLL b/NzbDrone.Core.Test/Libs/System.Data.SQLite.DLL deleted file mode 100644 index 6f07d5e7a..000000000 Binary files a/NzbDrone.Core.Test/Libs/System.Data.SQLite.DLL and /dev/null differ diff --git a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index 068d76fb8..4414a1d00 100644 --- a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -1,4 +1,4 @@ - + Debug @@ -21,7 +21,7 @@ DEBUG;TRACE prompt 4 - AnyCPU + x86 pdbonly @@ -35,56 +35,51 @@ True - - False - ..\NzbDrone.Core\Libraries\Castle.Core.dll - ..\packages\NBuilder.2.3.0.0\lib\FizzWare.NBuilder.dll - - ..\packages\Unity.2.0\lib\20\Microsoft.Practices.ServiceLocation.dll + + ..\packages\CommonServiceLocator.1.0\lib\NET35\Microsoft.Practices.ServiceLocation.dll - - ..\packages\Unity.2.0\lib\20\Microsoft.Practices.Unity.dll + + False + ..\packages\Unity.2.1.505.0\lib\NET35\Microsoft.Practices.Unity.dll - - ..\packages\Unity.2.0\lib\20\Microsoft.Practices.Unity.Configuration.dll - - - ..\packages\Unity.2.0\lib\20\Microsoft.Practices.Unity.Interception.dll - - - ..\packages\Unity.2.0\lib\20\Microsoft.Practices.Unity.Interception.Configuration.dll + + False + ..\packages\Unity.2.1.505.0\lib\NET35\Microsoft.Practices.Unity.Configuration.dll ..\packages\Moq.4.0.10827\lib\NET40\Moq.dll - - ..\packages\Ninject.2.2.1.0\lib\.NetFramework 4.0\Ninject.dll + + ..\packages\Ninject.2.2.1.4\lib\net40-Full\Ninject.dll - - ..\NzbDrone.Core\Libraries\NLog.dll + + False + ..\Libraries\NLog.dll False - ..\NzbDrone.Core\Libraries\SubSonic.Core.dll + ..\Libraries\SubSonic.Core.dll - - Libs\System.Data.SQLite.DLL - True + + ..\Libraries\System.Data.SQLite.dll + False - - ..\NzbDrone.Core\Libraries\TvdbLib.dll + + False + ..\Libraries\TvdbLib.dll + @@ -166,11 +161,6 @@ Always - - - - Always - @@ -183,6 +173,9 @@ + + copy "$(SolutionDir)\Libraries\SQLite.Interop.dll" "$(TargetDir)" + - \ No newline at end of file diff --git a/NzbDrone.PostProcessor/PostProcessor.xml b/NzbDrone.PostProcessor/PostProcessor.xml deleted file mode 100644 index fc481481c..000000000 --- a/NzbDrone.PostProcessor/PostProcessor.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - localhost - 8989 - Not-An-API-KEY - \ No newline at end of file diff --git a/NzbDrone.PostProcessor/Program.cs b/NzbDrone.PostProcessor/Program.cs deleted file mode 100644 index 90428187d..000000000 --- a/NzbDrone.PostProcessor/Program.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Net; -using System.Xml.Linq; - -namespace NzbDrone.PostProcessor -{ - internal class Program - { - private static string _host = "localhost"; - private static int _port = 8989; - private static string _apiKey = String.Empty; - - private static void Main(string[] args) - { - try - { - if (args.Count() < 5) - { - Console.WriteLine("Did this come from SAB? Missing Arguments.."); - return; - } - - //Load the ConfigFile - if (!LoadConfig()) - return; - - string dir = args[0]; //Get dir from first CMD Line Argument - string nzbName = args[2]; //Get nzbName from third CMD Line Argument - string category = args[4]; //Get category from third CMD Line Argument - - var hostString = _host + ":" + _port; - - var url = String.Format("http://{0}/?apiKey={1}&dir={2}&nzbName={3}&category={4}", hostString, _apiKey, - dir, nzbName, category); - - var webClient = new WebClient(); - webClient.DownloadString(url); - } - catch (Exception ex) - { - Console.WriteLine(ex); - } - } - - private static bool LoadConfig() - { - var configFile = "PostProcessor.xml"; - if (!File.Exists(configFile)) - { - Console.WriteLine("Configuration File does not exist, please create"); - return false; - } - - var xDoc = XDocument.Load(configFile); - var config = (from c in xDoc.Descendants("Configuration") select c).FirstOrDefault(); - - if (config == null) - { - Console.WriteLine("Invalid Configuration File"); - return false; - } - - var hostNode = config.Descendants("Host").FirstOrDefault(); - var portNode = config.Descendants("Port").FirstOrDefault(); - ; - var apiKeyNode = config.Descendants("ApiKey").FirstOrDefault(); - ; - - if (hostNode == null || portNode == null || apiKeyNode == null) - { - Console.WriteLine("Invalid Configuration File"); - return false; - } - - _host = hostNode.Value; - Int32.TryParse(portNode.Value, out _port); - _apiKey = apiKeyNode.Value; - - return true; - } - } -} \ No newline at end of file diff --git a/NzbDrone.PostProcessor/Properties/AssemblyInfo.cs b/NzbDrone.PostProcessor/Properties/AssemblyInfo.cs deleted file mode 100644 index 3b75749fa..000000000 --- a/NzbDrone.PostProcessor/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("NzbDrone.PostProcessor")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("TIO Networks Corp")] -[assembly: AssemblyProduct("NzbDrone.PostProcessor")] -[assembly: AssemblyCopyright("Copyright © TIO Networks Corp 2011")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. - -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM - -[assembly: Guid("6521fcb0-15dc-4324-b08a-f18f87d78859")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/NzbDrone.Web/Global.asax.cs b/NzbDrone.Web/Global.asax.cs index c1a5fa03d..d23b6085a 100644 --- a/NzbDrone.Web/Global.asax.cs +++ b/NzbDrone.Web/Global.asax.cs @@ -1,5 +1,5 @@ using System; -using System.Data.SQLite; +using System.Data.Common; using System.Reflection; using System.Threading; using System.Web; @@ -74,7 +74,7 @@ namespace NzbDrone.Web Logger.FatalException(lastError.Message + Environment.NewLine + Request.Url.PathAndQuery, lastError); - if (lastError is SQLiteException) + if (lastError is DbException) { Logger.Warn("Restarting application"); HttpRuntime.UnloadAppDomain(); diff --git a/NzbDrone.Web/Libraries/Ninject.Web.Mvc.dll b/NzbDrone.Web/Libraries/Ninject.Web.Mvc.dll deleted file mode 100644 index 840dac24d..000000000 Binary files a/NzbDrone.Web/Libraries/Ninject.Web.Mvc.dll and /dev/null differ diff --git a/NzbDrone.Web/NzbDrone.Web.csproj b/NzbDrone.Web/NzbDrone.Web.csproj index 684ff37c3..339a2ef4c 100644 --- a/NzbDrone.Web/NzbDrone.Web.csproj +++ b/NzbDrone.Web/NzbDrone.Web.csproj @@ -26,7 +26,7 @@ DEBUG;TRACE prompt 4 - AnyCPU + x86 false true false @@ -44,31 +44,34 @@ false - - ..\NzbDrone.Core\Libraries\Castle.Core.dll + + False + ..\Libraries\Castle.Core.dll ..\packages\Glimpse.0.81\lib\net40\Glimpse.Net.dll - True + False + ..\Libraries\MVC3\Microsoft.Web.Infrastructure.dll - False - ..\packages\Ninject.2.2.1.0\lib\.NetFramework 4.0\Ninject.dll + ..\packages\Ninject.2.2.1.4\lib\net40-Full\Ninject.dll + + + ..\packages\Ninject.MVC3.2.2.2.0\lib\net40-Full\Ninject.Web.Mvc.dll + + + False + ..\Libraries\NLog.dll - - - D:\My Dropbox\Git\NzbDrone\NzbDrone.Core\Libraries\SubSonic.Core.dll + False + ..\Libraries\SubSonic.Core.dll - - ..\NzbDrone.Core\Libraries\System.Data.SQLite.dll - True - @@ -81,20 +84,32 @@ True + + False + ..\Libraries\MVC3\System.Web.Helpers.dll + - True + False + ..\Libraries\MVC3\System.Web.Mvc.dll - True + False + ..\Libraries\MVC3\System.Web.Razor.dll True + + False + ..\Libraries\MVC3\System.Web.WebPages.dll + - True + False + ..\Libraries\MVC3\System.Web.WebPages.Deployment.dll - True + False + ..\Libraries\MVC3\System.Web.WebPages.Razor.dll @@ -104,14 +119,12 @@ ..\packages\TelerikMvcExtensions.2011.1.315\lib\net40\Telerik.Web.Mvc.dll - - True + + False + ..\Libraries\TvdbLib.dll - - True - - - ..\NzbDrone.Core\Libraries\TvdbLib.dll + + ..\packages\WebActivator.1.4.1\lib\net40\WebActivator.dll @@ -623,8 +636,6 @@ - - @@ -654,9 +665,9 @@ - - - + + + @@ -892,4 +903,7 @@ + + copy "$(SolutionDir)\Libraries\SQLite.Interop.dll" "$(TargetDir)" + \ No newline at end of file diff --git a/NzbDrone.Web/Scripts/jquery-1.5.2.min.js b/NzbDrone.Web/Scripts/jquery-1.5.2.min.js deleted file mode 100644 index f78f96a12..000000000 --- a/NzbDrone.Web/Scripts/jquery-1.5.2.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * jQuery JavaScript Library v1.5.2 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Mar 31 15:28:23 2011 -0400 - */ -(function(a,b){function ci(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cf(a){if(!b_[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";b_[a]=c}return b_[a]}function ce(a,b){var c={};d.each(cd.concat.apply([],cd.slice(0,b)),function(){c[this]=a});return c}function b$(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bZ(){try{return new a.XMLHttpRequest}catch(b){}}function bY(){d(a).unload(function(){for(var a in bW)bW[a](0,1)})}function bS(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g=0===c})}function P(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function H(a,b){return(a&&a!=="*"?a+".":"")+b.replace(t,"`").replace(u,"&")}function G(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,p=[],q=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;ic)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function E(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function y(){return!0}function x(){return!1}function i(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function h(a,c,e){if(e===b&&a.nodeType===1){e=a.getAttribute("data-"+c);if(typeof e==="string"){try{e=e==="true"?!0:e==="false"?!1:e==="null"?null:d.isNaN(e)?g.test(e)?d.parseJSON(e):e:parseFloat(e)}catch(f){}d.data(a,c,e)}else e=b}return e}var c=a.document,d=function(){function G(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(G,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x,y,z=Object.prototype.toString,A=Object.prototype.hasOwnProperty,B=Array.prototype.push,C=Array.prototype.slice,D=String.prototype.trim,E=Array.prototype.indexOf,F={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.2",length:0,size:function(){return this.length},toArray:function(){return C.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?B.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),x.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(C.apply(this,arguments),"slice",C.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:B,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;x.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=d._Deferred();if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",y,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",y),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&G()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):F[z.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!A.call(a,"constructor")&&!A.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||A.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g1?f.call(arguments,0):c,--g||h.resolveWith(h,f.call(b,0))}}var b=arguments,c=0,e=b.length,g=e,h=e<=1&&a&&d.isFunction(a.promise)?a:d.Deferred();if(e>1){for(;c
a";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0,reliableMarginRight:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e)}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(a.style.width="1px",a.style.marginRight="0",d.support.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(a,null).marginRight,10)||0)===0),b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function");return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}}();var g=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!i(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,j=g?b[d.expando]:d.expando;if(!h[j])return;if(c){var k=e?h[j][f]:h[j];if(k){delete k[c];if(!i(k))return}}if(e){delete h[j][f];if(!i(h[j]))return}var l=h[j][f];d.support.deleteExpando||h!=a?delete h[j]:h[j]=null,l?(h[j]={},g||(h[j].toJSON=d.noop),h[j][f]=l):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var f=this[0].attributes,g;for(var i=0,j=f.length;i-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var j=i?f:0,k=i?f+1:h.length;j=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=m.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&n.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var k=a.getAttributeNode("tabIndex");return k&&k.specified?k.value:o.test(a.nodeName)||p.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var l=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return l===null?b:l}h&&(a[c]=e);return a[c]}});var r=/\.(.*)$/,s=/^(?:textarea|input|select)$/i,t=/\./g,u=/ /g,v=/[^\w\s.|`]/g,w=function(a){return a.replace(v,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=x;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(a){return typeof d!=="undefined"&&d.event.triggered!==a.type?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=x);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),w).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(r,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=a.type,l[m]())}catch(p){}k&&(l["on"+m]=k),d.event.triggered=b}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},D=function D(a){var c=a.target,e,f;if(s.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=C(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:D,beforedeactivate:D,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&D.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&D.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",C(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in B)d.event.add(this,c+".specialChange",B[c]);return s.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return s.test(this.nodeName)}},B=d.event.special.change.filters,B.focus=B.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function f(a){var c=d.event.fix(a);c.type=b,c.originalEvent={},d.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var e=0;d.event.special[b]={setup:function(){e++===0&&c.addEventListener(a,f,!0)},teardown:function(){--e===0&&c.removeEventListener(a,f,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return"text"===c&&(b===c||b===null)},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(var g=c;g0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=N.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(P(c[0])||P(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=M.call(arguments);I.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!O[a]?d.unique(f):f,(this.length>1||K.test(e))&&J.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var R=/ jQuery\d+="(?:\d+|null)"/g,S=/^\s+/,T=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,U=/<([\w:]+)/,V=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};Z.optgroup=Z.option,Z.tbody=Z.tfoot=Z.colgroup=Z.caption=Z.thead,Z.th=Z.td,d.support.htmlSerialize||(Z._default=[1,"div
","
"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(R,""):null;if(typeof a!=="string"||X.test(a)||!d.support.leadingWhitespace&&S.test(a)||Z[(U.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(T,"<$1>");try{for(var c=0,e=this.length;c1&&l0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){ba(a,e),f=bb(a),g=bb(e);for(h=0;f[h];++h)ba(f[h],g[h])}if(b){_(a,e);if(c){f=bb(a),g=bb(e);for(h=0;f[h];++h)_(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||W.test(i)){if(typeof i==="string"){i=i.replace(T,"<$1>");var j=(U.exec(i)||["",""])[1].toLowerCase(),k=Z[j]||Z._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=V.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]===""&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&S.test(i)&&m.insertBefore(b.createTextNode(S.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bd=/alpha\([^)]*\)/i,be=/opacity=([^)]*)/,bf=/-([a-z])/ig,bg=/([A-Z]|^ms)/g,bh=/^-?\d+(?:px)?$/i,bi=/^-?\d/,bj={position:"absolute",visibility:"hidden",display:"block"},bk=["Left","Right"],bl=["Top","Bottom"],bm,bn,bo,bp=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bm(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bm)return bm(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bf,bp)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bq(a,b,e):d.swap(a,bj,function(){f=bq(a,b,e)});if(f<=0){f=bm(a,b,b),f==="0px"&&bo&&(f=bo(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bh.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return be.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bd.test(f)?f.replace(bd,e):c.filter+" "+e}}),d(function(){d.support.reliableMarginRight||(d.cssHooks.marginRight={get:function(a,b){var c;d.swap(a,{display:"inline-block"},function(){b?c=bm(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bn=function(a,c,e){var f,g,h;e=e.replace(bg,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bo=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bh.test(d)&&bi.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bm=bn||bo,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var br=/%20/g,bs=/\[\]$/,bt=/\r?\n/g,bu=/#.*$/,bv=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bw=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bx=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,by=/^(?:GET|HEAD)$/,bz=/^\/\//,bA=/\?/,bB=/)<[^<]*)*<\/script>/gi,bC=/^(?:select|textarea)/i,bD=/\s+/,bE=/([?&])_=[^&]*/,bF=/(^|\-)([a-z])/g,bG=function(a,b,c){return b+c.toUpperCase()},bH=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bI=d.fn.load,bJ={},bK={},bL,bM;try{bL=c.location.href}catch(bN){bL=c.createElement("a"),bL.href="",bL=bL.href}bM=bH.exec(bL.toLowerCase())||[],d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bI)return bI.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("
").append(c.replace(bB,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bC.test(this.nodeName)||bw.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bt,"\r\n")}}):{name:b.name,value:c.replace(bt,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bL,isLocal:bx.test(bM[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bO(bJ),ajaxTransport:bO(bK),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bR(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bS(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bF,bG)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bv.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bu,"").replace(bz,bM[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bD),e.crossDomain==null&&(q=bH.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bM[1]||q[2]!=bM[2]||(q[3]||(q[1]==="http:"?80:443))!=(bM[3]||(bM[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bP(bJ,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!by.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(bA.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bE,"$1_="+w);e.url=x+(x===e.url?(bA.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bP(bK,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bQ(g,a[g],c,f);return e.join("&").replace(br,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bT=d.now(),bU=/(\=)\?(&|$)|\?\?/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bT++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bU.test(b.url)||f&&bU.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bU,l),b.url===j&&(f&&(k=k.replace(bU,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bV=d.now(),bW,bX;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bZ()||b$()}:bZ,bX=d.ajaxSettings.xhr(),d.support.ajax=!!bX,d.support.cors=bX&&"withCredentials"in bX,bX=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),!a.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bW[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bW||(bW={},bY()),h=bV++,g.onreadystatechange=bW[h]=c):c()},abort:function(){c&&c(0,1)}}}});var b_={},ca=/^(?:toggle|show|hide)$/,cb=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cc,cd=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(ce("show",3),a,b,c);for(var g=0,h=this.length;g=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:ce("show",1),slideUp:ce("hide",1),slideToggle:ce("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!cc&&(cc=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b
";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=(e==="absolute"||e==="fixed")&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=ch.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!ch.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=ci(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=ci(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window); \ No newline at end of file diff --git a/NzbDrone.Web/Scripts/jquery-1.5.2-vsdoc.js b/NzbDrone.Web/Scripts/jquery-1.6.1-vsdoc.js similarity index 88% rename from NzbDrone.Web/Scripts/jquery-1.5.2-vsdoc.js rename to NzbDrone.Web/Scripts/jquery-1.6.1-vsdoc.js index 1952947b8..87ccbc7fc 100644 --- a/NzbDrone.Web/Scripts/jquery-1.5.2-vsdoc.js +++ b/NzbDrone.Web/Scripts/jquery-1.6.1-vsdoc.js @@ -1,14 +1,14 @@ -/* +/* * This file has been generated 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.5.2 +* Comment version: 1.6.1 */ /*! -* jQuery JavaScript Library v1.5.2 +* jQuery JavaScript Library v1.6.1 * http://jquery.com/ * * Distributed in whole under the terms of the MIT @@ -77,10 +77,37 @@ jQuery.Deferred = function( func ) { deferred.done( doneCallbacks ).fail( failCallbacks ); return this; }, + always: function() { + return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); + }, fail: failDeferred.done, rejectWith: failDeferred.resolveWith, reject: failDeferred.resolve, isRejected: failDeferred.isResolved, + pipe: function( fnDone, fnFail ) { + return jQuery.Deferred(function( newDefer ) { + jQuery.each( { + done: [ fnDone, "resolve" ], + fail: [ fnFail, "reject" ] + }, function( handler, data ) { + var fn = data[ 0 ], + action = data[ 1 ], + returned; + if ( jQuery.isFunction( fn ) ) { + deferred[ handler ](function() { + returned = fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise().then( newDefer.resolve, newDefer.reject ); + } else { + newDefer[ action ]( returned ); + } + }); + } else { + deferred[ handler ]( newDefer[ action ] ); + } + }); + }).promise(); + }, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function( obj ) { @@ -96,7 +123,7 @@ jQuery.Deferred = function( func ) { } return obj; } - } ); + }); // Make sure only one callback list will be used deferred.done( failDeferred.cancel ).fail( deferred.cancel ); // Unexpose cancel @@ -107,11 +134,11 @@ jQuery.Deferred = function( func ) { } return deferred; }; -jQuery.Event = function( src ) { +jQuery.Event = function( src, props ) { // Allow instantiation without the 'new' keyword if ( !this.preventDefault ) { - return new jQuery.Event( src ); + return new jQuery.Event( src, props ); } // Event object @@ -129,6 +156,11 @@ jQuery.Event = function( src ) { this.type = src; } + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + // timeStamp is buggy for some events on Firefox(#3843) // So we won't rely on the native value this.timeStamp = jQuery.now(); @@ -222,6 +254,32 @@ jQuery._data = function( elem, name, data ) { return jQuery.data( elem, name, data, true ); }; +jQuery._mark = function( elem, type ) { + + if ( elem ) { + type = (type || "fx") + "mark"; + jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); + } + }; +jQuery._unmark = function( force, elem, type ) { + + if ( force !== true ) { + type = elem; + elem = force; + force = false; + } + if ( elem ) { + type = type || "fx"; + var key = type + "mark", + count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); + if ( count ) { + jQuery.data( elem, key, count, true ); + } else { + jQuery.removeData( elem, key, true ); + handleQueueMarkDefer( elem, type, "mark" ); + } + } + }; jQuery.acceptData = function( elem ) { if ( elem.nodeName ) { @@ -304,6 +362,7 @@ jQuery.ajax = function( url, options ) { ifModifiedKey, // Headers (they are sent all at once) requestHeaders = {}, + requestHeadersNames = {}, // Response headers responseHeadersString, responseHeaders, @@ -327,7 +386,9 @@ jQuery.ajax = function( url, options ) { // Caches the header setRequestHeader: function( name, value ) { if ( !state ) { - requestHeaders[ name.toLowerCase().replace( rucHeaders, rucHeadersFunc ) ] = value; + var lname = name.toLowerCase(); + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; } return this; }, @@ -575,24 +636,27 @@ jQuery.ajax = function( url, options ) { // Set the correct header, if data is being sent if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - requestHeaders[ "Content-Type" ] = s.contentType; + jqXHR.setRequestHeader( "Content-Type", s.contentType ); } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { ifModifiedKey = ifModifiedKey || s.url; if ( jQuery.lastModified[ ifModifiedKey ] ) { - requestHeaders[ "If-Modified-Since" ] = jQuery.lastModified[ ifModifiedKey ]; + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); } if ( jQuery.etag[ ifModifiedKey ] ) { - requestHeaders[ "If-None-Match" ] = jQuery.etag[ ifModifiedKey ]; + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); } } // Set the Accepts header for the server, depending on the dataType - requestHeaders.Accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? - s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : - s.accepts[ "*" ]; + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : + s.accepts[ "*" ] + ); // Check for headers option for ( i in s.headers ) { @@ -648,6 +712,16 @@ jQuery.ajax = function( url, options ) { return jqXHR; }; jQuery.ajaxPrefilter = function( dataTypeExpression, func ) { +/// +/// Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax(). +/// +/// +/// An optional string containing one or more space-separated dataTypes +/// +/// +/// A handler to set default values for future Ajax requests. +/// +/// if ( typeof dataTypeExpression !== "string" ) { @@ -749,113 +823,71 @@ jQuery.ajaxTransport = function( dataTypeExpression, func ) { }; jQuery.attr = function( elem, name, value, pass ) { + var nType = elem.nodeType; + // don't get/set attributes on text, comment and attribute nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) { + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { return undefined; } if ( pass && name in jQuery.attrFn ) { - return jQuery(elem)[name](value); + return jQuery( elem )[ name ]( value ); } - var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), - // Whether we are setting (or getting) - set = value !== undefined; + // Fallback to prop when attributes are not supported + if ( !("getAttribute" in elem) ) { + return jQuery.prop( elem, name, value ); + } - // Try to normalize/fix the name - name = notxml && jQuery.props[ name ] || name; + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - // Only do all the following if this is a node (faster for style) - if ( elem.nodeType === 1 ) { - // These attributes require special treatment - var special = rspecialurl.test( name ); + // Normalize the name if needed + name = notxml && jQuery.attrFix[ name ] || name; - // Safari mis-reports the default selected property of an option - // Accessing the parent's selectedIndex property fixes it - if ( name === "selected" && !jQuery.support.optSelected ) { - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; + hooks = jQuery.attrHooks[ name ]; - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } + if ( !hooks ) { + // Use boolHook for boolean attributes + if ( rboolean.test( name ) && + (typeof value === "boolean" || value === undefined || value.toLowerCase() === name.toLowerCase()) ) { + + hooks = boolHook; + + // Use formHook for forms and if the name contains certain characters + } else if ( formHook && (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { + hooks = formHook; } + } - // If applicable, access the attribute via the DOM 0 way - // 'in' checks fail in Blackberry 4.7 #6931 - if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) { - if ( set ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } + if ( value !== undefined ) { - if ( value === null ) { - if ( elem.nodeType === 1 ) { - elem.removeAttribute( name ); - } - - } else { - elem[ name ] = value; - } - } - - // browsers index elements by id/name on forms, give priority to attributes. - if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { - return elem.getAttributeNode( name ).nodeValue; - } - - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - if ( name === "tabIndex" ) { - var attributeNode = elem.getAttributeNode( "tabIndex" ); - - return attributeNode && attributeNode.specified ? - attributeNode.value : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - - return elem[ name ]; - } - - if ( !jQuery.support.style && notxml && name === "style" ) { - if ( set ) { - elem.style.cssText = "" + value; - } - - return elem.style.cssText; - } - - if ( set ) { - // convert the value to a string (all browsers do this but IE) see #1070 - elem.setAttribute( name, "" + value ); - } - - // Ensure that missing attributes return undefined - // Blackberry 4.7 returns "" from getAttribute #6938 - if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); return undefined; + + } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, "" + value ); + return value; } - var attr = !jQuery.support.hrefNormalized && notxml && special ? - // Some attributes require a special call on IE - elem.getAttribute( name, 2 ) : - elem.getAttribute( name ); + } else if ( hooks && "get" in hooks && notxml ) { + return hooks.get( elem, name ); + + } else { + + ret = elem.getAttribute( name ); // Non-existent attributes return null, we normalize to undefined - return attr === null ? undefined : attr; + return ret === null ? + undefined : + ret; } - // Handle everything which isn't a DOM element node - if ( set ) { - elem[ name ] = value; - } - return elem[ name ]; }; +jQuery.attrFix = { "tabindex": 'tabIndex' }; jQuery.attrFn = { "val": true, "css": true, "html": true, @@ -888,6 +920,9 @@ jQuery.attrFn = { "val": true, "keypress": true, "keyup": true, "error": true }; +jQuery.attrHooks = { "type": {}, +"tabIndex": {}, +"value": {} }; jQuery.bindReady = function() { if ( readyList ) { @@ -915,7 +950,7 @@ jQuery.bindReady = function() { } else if ( document.attachEvent ) { // ensure firing before onload, // maybe late but safe also for iframes - document.attachEvent("onreadystatechange", DOMContentLoaded); + document.attachEvent( "onreadystatechange", DOMContentLoaded ); // A fallback to window.onload, that will always work window.attachEvent( "onload", jQuery.ready ); @@ -949,11 +984,10 @@ jQuery.buildFragment = function( args, nodes, scripts ) { args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) { cacheable = true; + cacheresults = jQuery.fragments[ args[0] ]; - if ( cacheresults ) { - if ( cacheresults !== 1 ) { - fragment = cacheresults; - } + if ( cacheresults && cacheresults !== 1 ) { + fragment = cacheresults; } } @@ -975,6 +1009,8 @@ jQuery.camelCase = function( string ) { }; jQuery.clean = function( elems, context, fragment, scripts ) { + var checkScriptType; + context = context || document; // !context.createElement fails in IE with an error but returns typeof 'object' @@ -982,7 +1018,7 @@ jQuery.clean = function( elems, context, fragment, scripts ) { context = context.ownerDocument || context[0] && context[0].ownerDocument || document; } - var ret = []; + var ret = [], j; for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { if ( typeof elem === "number" ) { @@ -994,54 +1030,67 @@ jQuery.clean = function( elems, context, fragment, scripts ) { } // Convert html string into DOM nodes - if ( typeof elem === "string" && !rhtml.test( elem ) ) { - elem = context.createTextNode( elem ); + if ( typeof elem === "string" ) { + if ( !rhtml.test( elem ) ) { + elem = context.createTextNode( elem ); + } else { + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(rxhtmlTag, "<$1>"); - } else if ( typeof elem === "string" ) { - // Fix "XHTML"-style tags in all browsers - elem = elem.replace(rxhtmlTag, "<$1>"); + // Trim whitespace, otherwise indexOf won't work as expected + var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), + wrap = wrapMap[ tag ] || wrapMap._default, + depth = wrap[0], + div = context.createElement("div"); - // Trim whitespace, otherwise indexOf won't work as expected - var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), - wrap = wrapMap[ tag ] || wrapMap._default, - depth = wrap[0], - div = context.createElement("div"); + // Go to html and back, then peel off extra wrappers + div.innerHTML = wrap[1] + elem + wrap[2]; - // Go to html and back, then peel off extra wrappers - div.innerHTML = wrap[1] + elem + wrap[2]; + // Move to the right depth + while ( depth-- ) { + div = div.lastChild; + } - // Move to the right depth - while ( depth-- ) { - div = div.lastChild; - } + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { - // Remove IE's autoinserted from table fragments - if ( !jQuery.support.tbody ) { + // String was a , *may* have spurious + var hasBody = rtbody.test(elem), + tbody = tag === "table" && !hasBody ? + div.firstChild && div.firstChild.childNodes : - // String was a
, *may* have spurious - var hasBody = rtbody.test(elem), - tbody = tag === "table" && !hasBody ? - div.firstChild && div.firstChild.childNodes : + // String was a bare or + wrap[1] === "
" && !hasBody ? + div.childNodes : + []; - // String was a bare or - wrap[1] === "
" && !hasBody ? - div.childNodes : - []; - - for ( var j = tbody.length - 1; j >= 0 ; --j ) { - if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { - tbody[ j ].parentNode.removeChild( tbody[ j ] ); + for ( j = tbody.length - 1; j >= 0 ; --j ) { + if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { + tbody[ j ].parentNode.removeChild( tbody[ j ] ); + } } } - } + // IE completely kills leading whitespace when innerHTML is used + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + } - // IE completely kills leading whitespace when innerHTML is used - if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + elem = div.childNodes; } + } - elem = div.childNodes; + // Resets defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + var len; + if ( !jQuery.support.appendChecked ) { + if ( elem[0] && typeof (len = elem.length) === "number" ) { + for ( j = 0; j < len; j++ ) { + findInputs( elem[j] ); + } + } else { + findInputs( elem ); + } } if ( elem.nodeType ) { @@ -1052,13 +1101,18 @@ jQuery.clean = function( elems, context, fragment, scripts ) { } if ( fragment ) { + checkScriptType = function( elem ) { + return !elem.type || rscriptType.test( elem.type ); + }; for ( i = 0; ret[i]; i++ ) { if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); } else { if ( ret[i].nodeType === 1 ) { - ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); + var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType ); + + ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); } fragment.appendChild( ret[i] ); } @@ -1156,7 +1210,7 @@ jQuery.clone = function( elem, dataAndEvents, deepDataAndEvents ) { // Return the cloned set return clone; -}; + }; jQuery.contains = function( a, b ) { /// /// Check to see if a DOM node is within another DOM node. @@ -1173,11 +1227,17 @@ jQuery.contains = function( a, b ) { }; jQuery.css = function( elem, name, extra ) { - // Make sure that we're working with the right name - var ret, origName = jQuery.camelCase( name ), - hooks = jQuery.cssHooks[ origName ]; + var ret, hooks; - name = jQuery.cssProps[ origName ] || origName; + // Make sure that we're working with the right name + name = jQuery.camelCase( name ); + hooks = jQuery.cssHooks[ name ]; + name = jQuery.cssProps[ name ] || name; + + // cssFloat needs a special treatment + if ( name === "cssFloat" ) { + name = "float"; + } // If a hook was provided get the computed value from there if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { @@ -1185,7 +1245,7 @@ jQuery.css = function( elem, name, extra ) { // Otherwise, if a way to get the computed value exists, use that } else if ( curCSS ) { - return curCSS( elem, name, origName ); + return curCSS( elem, name ); } }; jQuery.cssHooks = { "opacity": {}, @@ -1195,15 +1255,23 @@ jQuery.cssNumber = { "zIndex": true, "fontWeight": true, "opacity": true, "zoom": true, -"lineHeight": true }; +"lineHeight": true, +"widows": true, +"orphans": true }; jQuery.cssProps = { "float": 'cssFloat' }; jQuery.curCSS = function( elem, name, extra ) { - // Make sure that we're working with the right name - var ret, origName = jQuery.camelCase( name ), - hooks = jQuery.cssHooks[ origName ]; + var ret, hooks; - name = jQuery.cssProps[ origName ] || origName; + // Make sure that we're working with the right name + name = jQuery.camelCase( name ); + hooks = jQuery.cssHooks[ name ]; + name = jQuery.cssProps[ name ] || name; + + // cssFloat needs a special treatment + if ( name === "cssFloat" ) { + name = "float"; + } // If a hook was provided get the computed value from there if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { @@ -1211,12 +1279,12 @@ jQuery.curCSS = function( elem, name, extra ) { // Otherwise, if a way to get the computed value exists, use that } else if ( curCSS ) { - return curCSS( elem, name, origName ); + return curCSS( elem, name ); } }; jQuery.data = function( elem, name, data, pvt /* Internal Use Only */ ) { /// -/// 1: Store arbitrary data associated with the specified element. +/// 1: Store arbitrary data associated with the specified element. Returns the value that was set. /// 1.1 - jQuery.data(element, key, value) /// 2: Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element. /// 2.1 - jQuery.data(element, key) @@ -1231,7 +1299,7 @@ jQuery.data = function( elem, name, data, pvt /* Internal Use Only */ ) { /// /// The new data value. /// -/// +/// if ( !jQuery.acceptData( elem ) ) { return; @@ -1302,7 +1370,7 @@ jQuery.data = function( elem, name, data, pvt /* Internal Use Only */ ) { } if ( data !== undefined ) { - thisCache[ name ] = data; + thisCache[ jQuery.camelCase( name ) ] = data; } // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should @@ -1312,7 +1380,7 @@ jQuery.data = function( elem, name, data, pvt /* Internal Use Only */ ) { return thisCache[ internalKey ] && thisCache[ internalKey ].events; } - return getByName ? thisCache[ name ] : thisCache; + return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache; }; jQuery.dequeue = function( elem, type ) { /// @@ -1329,7 +1397,8 @@ jQuery.dequeue = function( elem, type ) { type = type || "fx"; var queue = jQuery.queue( elem, type ), - fn = queue.shift(); + fn = queue.shift(), + defer; // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { @@ -1350,6 +1419,7 @@ jQuery.dequeue = function( elem, type ) { if ( !queue.length ) { jQuery.removeData( elem, type + "queue", true ); + handleQueueMarkDefer( elem, type, "queue" ); } }; jQuery.dir = function( elem, dir, until ) { @@ -1379,7 +1449,7 @@ jQuery.each = function( object, callback, args ) { var name, i = 0, length = object.length, - isObj = length === undefined || jQuery.isFunction(object); + isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { @@ -1405,8 +1475,11 @@ jQuery.each = function( object, callback, args ) { } } } else { - for ( var value = object[0]; - i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} + for ( ; i < length; ) { + if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { + break; + } + } } } @@ -1425,6 +1498,7 @@ jQuery.error = function( msg ) { }; jQuery.etag = {}; jQuery.event = { "global": {}, +"customEvent": {}, "props": ['altKey','attrChange','attrName','bubbles','button','cancelable','charCode','clientX','clientY','ctrlKey','currentTarget','data','detail','eventPhase','fromElement','handler','keyCode','layerX','layerY','metaKey','newValue','offsetX','offsetY','pageX','pageY','prevValue','relatedNode','relatedTarget','screenX','screenY','shiftKey','srcElement','target','toElement','view','wheelDelta','which'], "guid": 100000000, "special": {}, @@ -1619,7 +1693,7 @@ jQuery.find = function( query, context, extra, seed ) { return oldSizzle(query, context, extra, seed); }; jQuery.fn = { "selector": '', -"jquery": '1.5.2', +"jquery": '1.6.1', "length": 0 }; jQuery.fragments = {}; jQuery.fx = function( elem, options, prop ) { @@ -1628,9 +1702,7 @@ jQuery.fx = function( elem, options, prop ) { this.elem = elem; this.prop = prop; - if ( !options.orig ) { - options.orig = {}; - } + options.orig = options.orig || {}; }; jQuery.get = function( url, data, callback, type ) { /// @@ -1702,22 +1774,13 @@ jQuery.globalEval = function( data ) { /// The JavaScript code to execute. /// - if ( data && rnotwhite.test(data) ) { - // Inspired by code by Andrea Giammarchi - // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html - var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement, - script = document.createElement( "script" ); - - if ( jQuery.support.scriptEval() ) { - script.appendChild( document.createTextNode( data ) ); - } else { - script.text = data; - } - - // Use insertBefore instead of appendChild to circumvent an IE6 bug. - // This arises when a base node is used (#2709). - head.insertBefore( script, head.firstChild ); - head.removeChild( script ); + if ( data && rnotwhite.test( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); } }; jQuery.grep = function( elems, callback, inv ) { @@ -1763,6 +1826,21 @@ jQuery.hasData = function( elem ) { return !!elem && !isEmptyDataObject( elem ); }; +jQuery.holdReady = function( hold ) { +/// +/// Holds or releases the execution of jQuery's ready event. +/// +/// +/// Indicates whether the ready hold is being requested or released +/// +/// + + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }; jQuery.inArray = function( elem, array ) { /// /// Search for a specified value within an array and return its index (or -1 if not found). @@ -1775,7 +1853,18 @@ jQuery.inArray = function( elem, array ) { /// /// - return indexOf.call( array, elem ); + + if ( indexOf ) { + return indexOf.call( array, elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; }; jQuery.isEmptyObject = function( obj ) { /// @@ -1881,7 +1970,7 @@ jQuery.makeArray = function( array, results ) { // The extra typeof function check is to prevent crashes // in Safari 2 (See: #3039) // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type(array); + var type = jQuery.type( array ); if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { push.call( ret, array ); @@ -1894,25 +1983,42 @@ jQuery.makeArray = function( array, results ) { }; jQuery.map = function( elems, callback, arg ) { /// -/// Translate all items in an array or array-like object to another array of items. +/// Translate all items in an array or object to new array of items. +/// 1 - jQuery.map(array, callback(elementOfArray, indexInArray)) +/// 2 - jQuery.map(arrayOrObject, callback( value, indexOrKey )) /// /// /// The Array to translate. /// /// -/// The function to process each item against. The first argument to the function is the list item, the second argument is the index in array The function can return any value. this will be the global window object. +/// The function to process each item against. The first argument to the function is the array item, the second argument is the index in array The function can return any value. Within the function, this refers to the global (window) object. /// /// - var ret = [], value; + var value, key, ret = [], + i = 0, + length = elems.length, + // jquery objects are treated as arrays + isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; // Go through the array, translating each of the items to their - // new value (or values). - for ( var i = 0, length = elems.length; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); - if ( value != null ) { - ret[ ret.length ] = value; + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( key in elems ) { + value = callback( elems[ key ], key, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } } } @@ -1958,9 +2064,11 @@ jQuery.noConflict = function( deep ) { /// /// - window.$ = _$; + if ( window.$ === jQuery ) { + window.$ = _$; + } - if ( deep ) { + if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } @@ -2032,7 +2140,7 @@ jQuery.param = function( a, traditional ) { // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); - } ); + }); } else { // If traditional, encode the "old" way (the way 1.3.2 or older @@ -2061,20 +2169,21 @@ jQuery.parseJSON = function( data ) { // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test(data.replace(rvalidescape, "@") - .replace(rvalidtokens, "]") - .replace(rvalidbraces, "")) ) { + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { - // Try to use the native JSON parser first - return window.JSON && window.JSON.parse ? - window.JSON.parse( data ) : - (new Function("return " + data))(); + return (new Function( "return " + data ))(); - } else { - jQuery.error( "Invalid JSON: " + data ); } + jQuery.error( "Invalid JSON: " + data ); }; jQuery.parseXML = function( data , xml , tmp ) { /// @@ -2135,17 +2244,54 @@ jQuery.post = function( url, data, callback, type ) { dataType: type }); }; -jQuery.props = { "for": 'htmlFor', -"class": 'className', +jQuery.prop = function( elem, name, value ) { + + var nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return undefined; + } + + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // Try to normalize/fix the name + name = notxml && jQuery.propFix[ name ] || name; + + hooks = jQuery.propHooks[ name ]; + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return (elem[ name ] = value); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { + return ret; + + } else { + return elem[ name ]; + } + } + }; +jQuery.propFix = { "tabindex": 'tabIndex', "readonly": 'readOnly', +"for": 'htmlFor', +"class": 'className', "maxlength": 'maxLength', "cellspacing": 'cellSpacing', +"cellpadding": 'cellPadding', "rowspan": 'rowSpan', "colspan": 'colSpan', -"tabindex": 'tabIndex', "usemap": 'useMap', -"frameborder": 'frameBorder' }; -jQuery.proxy = function( fn, proxy, thisObject ) { +"frameborder": 'frameBorder', +"contenteditable": 'contentEditable' }; +jQuery.propHooks = { "selected": {} }; +jQuery.proxy = function( fn, context ) { /// /// Takes a function and returns a new one that will always have a particular context. /// 1 - jQuery.proxy(function, context) @@ -2154,35 +2300,32 @@ jQuery.proxy = function( fn, proxy, thisObject ) { /// /// The function whose context will be changed. /// -/// +/// /// The object to which the context (this) of the function should be set. /// /// - if ( arguments.length === 2 ) { - if ( typeof proxy === "string" ) { - thisObject = fn; - fn = thisObject[ proxy ]; - proxy = undefined; - - } else if ( proxy && !jQuery.isFunction( proxy ) ) { - thisObject = proxy; - proxy = undefined; - } + if ( typeof context === "string" ) { + var tmp = fn[ context ]; + context = fn; + fn = tmp; } - if ( !proxy && fn ) { + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + var args = slice.call( arguments, 2 ), proxy = function() { - return fn.apply( thisObject || this, arguments ); + return fn.apply( context, args.concat( slice.call( arguments ) ) ); }; - } // Set the guid of unique handler to the same of original handler, so it can be removed - if ( fn ) { - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - } + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - // So proxy can be declared as an argument return proxy; }; jQuery.queue = function( elem, type, data ) { @@ -2204,36 +2347,24 @@ jQuery.queue = function( elem, type, data ) { /// /// - if ( !elem ) { - return; - } - - type = (type || "fx") + "queue"; - var q = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( !data ) { + if ( elem ) { + type = (type || "fx") + "queue"; + var q = jQuery.data( elem, type, undefined, true ); + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !q || jQuery.isArray(data) ) { + q = jQuery.data( elem, type, jQuery.makeArray(data), true ); + } else { + q.push( data ); + } + } return q || []; } - - if ( !q || jQuery.isArray(data) ) { - q = jQuery._data( elem, type, jQuery.makeArray(data) ); - - } else { - q.push( data ); - } - - return q; }; jQuery.ready = function( wait ) { - // A third-party is pushing the ready event forwards - if ( wait === true ) { - jQuery.readyWait--; - } - - // Make sure that the DOM is not already loaded - if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) { + // Either a released hold or an DOMready/load event and not yet ready + if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( !document.body ) { return setTimeout( jQuery.ready, 1 ); @@ -2257,6 +2388,26 @@ jQuery.ready = function( wait ) { } }; jQuery.readyWait = 0; +jQuery.removeAttr = function( elem, name ) { + + var propName; + if ( elem.nodeType === 1 ) { + name = jQuery.attrFix[ name ] || name; + + if ( jQuery.support.getSetAttribute ) { + // Use removeAttribute in browsers that support it + elem.removeAttribute( name ); + } else { + jQuery.attr( elem, name, "" ); + elem.removeAttributeNode( elem.getAttributeNode( name ) ); + } + + // Set corresponding property to false for boolean attributes + if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { + elem[ propName ] = false; + } + } + }; jQuery.removeData = function( elem, name, pvt /* Internal Use Only */ ) { /// /// Remove a previously-stored piece of data. @@ -2384,10 +2535,13 @@ jQuery.speed = function( speed, easing, fn ) { // Queueing opt.old = opt.complete; - opt.complete = function() { + opt.complete = function( noUnmark ) { if ( opt.queue !== false ) { - jQuery(this).dequeue(); + jQuery.dequeue( this ); + } else if ( noUnmark !== false ) { + jQuery._unmark( this ); } + if ( jQuery.isFunction( opt.old ) ) { opt.old.call( this ); } @@ -2403,20 +2557,27 @@ jQuery.style = function( elem, name, value, extra ) { } // Make sure that we're working with the right name - var ret, origName = jQuery.camelCase( name ), + var ret, type, origName = jQuery.camelCase( name ), style = elem.style, hooks = jQuery.cssHooks[ origName ]; name = jQuery.cssProps[ origName ] || origName; // Check if we're setting a value if ( value !== undefined ) { + type = typeof value; + // Make sure that NaN and null values aren't set. See: #7116 - if ( typeof value === "number" && isNaN( value ) || value == null ) { + if ( type === "number" && isNaN( value ) || value == null ) { return; } + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && rrelNum.test( value ) ) { + value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) ); + } + // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) { + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { value += "px"; } @@ -2445,24 +2606,24 @@ jQuery.sub = function() { /// /// - function jQuerySubclass( selector, context ) { - return new jQuerySubclass.fn.init( selector, context ); + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); } - jQuery.extend( true, jQuerySubclass, this ); - jQuerySubclass.superclass = this; - jQuerySubclass.fn = jQuerySubclass.prototype = this(); - jQuerySubclass.fn.constructor = jQuerySubclass; - jQuerySubclass.subclass = this.subclass; - jQuerySubclass.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) { - context = jQuerySubclass(context); + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); } - return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass ); + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); }; - jQuerySubclass.fn.init.prototype = jQuerySubclass.fn; - var rootjQuerySubclass = jQuerySubclass(document); - return jQuerySubclass; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; }; jQuery.support = { "leadingWhitespace": true, "tbody": true, @@ -2473,18 +2634,22 @@ jQuery.support = { "leadingWhitespace": true, "cssFloat": true, "checkOn": true, "optSelected": false, -"deleteExpando": true, -"optDisabled": true, -"checkClone": true, -"noCloneEvent": true, -"noCloneChecked": false, -"boxModel": true, -"inlineBlockNeedsLayout": false, -"shrinkWrapBlocks": false, -"reliableHiddenOffsets": true, -"reliableMarginRight": true, +"getSetAttribute": true, "submitBubbles": true, "changeBubbles": true, +"focusinBubbles": true, +"deleteExpando": true, +"noCloneEvent": true, +"inlineBlockNeedsLayout": false, +"shrinkWrapBlocks": false, +"reliableMarginRight": true, +"noCloneChecked": false, +"optDisabled": true, +"radioValue": false, +"checkClone": , +"appendChecked": true, +"boxModel": true, +"reliableHiddenOffsets": true, "ajax": true, "cors": false }; jQuery.swap = function( elem, options, callback ) { @@ -2586,6 +2751,10 @@ jQuery.unique = function( results ) { return results; }; jQuery.uuid = 0; +jQuery.valHooks = { "option": {}, +"select": {}, +"radio": {}, +"checkbox": {} }; jQuery.when = function( firstParam ) { /// /// Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events. @@ -2705,24 +2874,27 @@ jQuery.prototype._toggle = function( fn ) { // Save reference to arguments for access in closure var args = arguments, - i = 1; + guid = fn.guid || jQuery.guid++, + i = 0, + toggler = function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + }; // link all the functions, so any of them can unbind this click handler + toggler.guid = guid; while ( i < args.length ) { - jQuery.proxy( fn, args[ i++ ] ); + args[ i++ ].guid = guid; } - return this.click( jQuery.proxy( fn, function( event ) { - // Figure out which function to execute - var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; - jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); - - // Make sure that clicks stop - event.preventDefault(); - - // and execute the function - return args[ lastToggle ].apply( this, arguments ) || false; - })); + return this.click( toggler ); }; jQuery.prototype.add = function( selector, context ) { /// @@ -2742,7 +2914,7 @@ jQuery.prototype.add = function( selector, context ) { var set = typeof selector === "string" ? jQuery( selector, context ) : - jQuery.makeArray( selector ), + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), all = jQuery.merge( this.get(), set ); return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? @@ -2760,15 +2932,15 @@ jQuery.prototype.addClass = function( value ) { /// /// - if ( jQuery.isFunction(value) ) { + if ( jQuery.isFunction( value ) ) { return this.each(function(i) { var self = jQuery(this); - self.addClass( value.call(this, i, self.attr("class")) ); + self.addClass( value.call(this, i, self.attr("class") || "") ); }); } if ( value && typeof value === "string" ) { - var classNames = (value || "").split( rspaces ); + var classNames = (value || "").split( rspace ); for ( var i = 0, l = this.length; i < l; i++ ) { var elem = this[i]; @@ -2915,32 +3087,54 @@ jQuery.prototype.animate = function( prop, speed, easing, callback ) { var optall = jQuery.speed(speed, easing, callback); if ( jQuery.isEmptyObject( prop ) ) { - return this.each( optall.complete ); + return this.each( optall.complete, [ false ] ); } + // Do not change referenced properties as per-property easing will be lost + prop = jQuery.extend( {}, prop ); + return this[ optall.queue === false ? "each" : "queue" ](function() { // XXX 'this' does not always have a nodeName when running the // test suite - var opt = jQuery.extend({}, optall), p, + if ( optall.queue === false ) { + jQuery._mark( this ); + } + + var opt = jQuery.extend( {}, optall ), isElement = this.nodeType === 1, hidden = isElement && jQuery(this).is(":hidden"), - self = this; + name, val, p, + display, e, + parts, start, end, unit; + + // will store per property easing and be used to determine when an animation is complete + opt.animatedProperties = {}; for ( p in prop ) { - var name = jQuery.camelCase( p ); + // property name normalization + name = jQuery.camelCase( p ); if ( p !== name ) { prop[ name ] = prop[ p ]; delete prop[ p ]; - p = name; } - if ( prop[p] === "hide" && hidden || prop[p] === "show" && !hidden ) { - return opt.complete.call(this); + val = prop[ name ]; + + // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default) + if ( jQuery.isArray( val ) ) { + opt.animatedProperties[ name ] = val[ 1 ]; + val = prop[ name ] = val[ 0 ]; + } else { + opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing'; } - if ( isElement && ( p === "height" || p === "width" ) ) { + if ( val === "hide" && hidden || val === "show" && !hidden ) { + return opt.complete.call( this ); + } + + if ( isElement && ( name === "height" || name === "width" ) ) { // Make sure that nothing sneaks out // Record all 3 overflow attributes because IE does not // change the overflow attribute when overflowX and @@ -2956,7 +3150,7 @@ jQuery.prototype.animate = function( prop, speed, easing, callback ) { this.style.display = "inline-block"; } else { - var display = defaultDisplay(this.nodeName); + display = defaultDisplay( this.nodeName ); // inline-level elements accept inline-block; // block-level elements need to be inline with layout @@ -2970,44 +3164,37 @@ jQuery.prototype.animate = function( prop, speed, easing, callback ) { } } } - - if ( jQuery.isArray( prop[p] ) ) { - // Create (if needed) and add to specialEasing - (opt.specialEasing = opt.specialEasing || {})[p] = prop[p][1]; - prop[p] = prop[p][0]; - } } if ( opt.overflow != null ) { this.style.overflow = "hidden"; } - opt.curAnim = jQuery.extend({}, prop); - - jQuery.each( prop, function( name, val ) { - var e = new jQuery.fx( self, opt, name ); + for ( p in prop ) { + e = new jQuery.fx( this, opt, p ); + val = prop[ p ]; if ( rfxtypes.test(val) ) { - e[ val === "toggle" ? hidden ? "show" : "hide" : val ]( prop ); + e[ val === "toggle" ? hidden ? "show" : "hide" : val ](); } else { - var parts = rfxnum.exec(val), - start = e.cur(); + parts = rfxnum.exec( val ); + start = e.cur(); if ( parts ) { - var end = parseFloat( parts[2] ), - unit = parts[3] || ( jQuery.cssNumber[ name ] ? "" : "px" ); + end = parseFloat( parts[2] ); + unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" ); // We need to compute starting value if ( unit !== "px" ) { - jQuery.style( self, name, (end || 1) + unit); + jQuery.style( this, p, (end || 1) + unit); start = ((end || 1) / e.cur()) * start; - jQuery.style( self, name, start + unit); + jQuery.style( this, p, start + unit); } // If a +=/-= token was provided, we're doing a relative animation if ( parts[1] ) { - end = ((parts[1] === "-=" ? -1 : 1) * end) + start; + end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start; } e.custom( start, end, unit ); @@ -3016,7 +3203,7 @@ jQuery.prototype.animate = function( prop, speed, easing, callback ) { e.custom( start, val, "" ); } } - }); + } // For JS strict compliance return true; @@ -3130,6 +3317,8 @@ jQuery.prototype.bind = function( type, data, fn ) { /// /// + var handler; + // Handle object literals if ( typeof type === "object" ) { for ( var key in type ) { @@ -3138,15 +3327,20 @@ jQuery.prototype.bind = function( type, data, fn ) { return this; } - if ( jQuery.isFunction( data ) || data === false ) { + if ( arguments.length === 2 || data === false ) { fn = data; data = undefined; } - var handler = name === "one" ? jQuery.proxy( fn, function( event ) { - jQuery( this ).unbind( event, handler ); - return fn.apply( this, arguments ); - }) : fn; + if ( name === "one" ) { + handler = function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }; + handler.guid = fn.guid || jQuery.guid++; + } else { + handler = fn; + } if ( type === "unload" && name !== "one" ) { this.one( type, data, fn ); @@ -3299,7 +3493,9 @@ jQuery.prototype.closest = function( selectors, context ) { /// /// 1: Get the first ancestor element that matches the selector, beginning at the current element and progressing up through the DOM tree. /// 1.1 - closest(selector) -/// 1.2 - closest(selector, context) +/// 1.2 - closest(selector, context) +/// 1.3 - closest(jQuery object) +/// 1.4 - closest(element) /// 2: Gets an array of all the elements and selectors matched against the current element up through the DOM tree. /// 2.1 - closest(selectors, context) /// @@ -3312,7 +3508,8 @@ jQuery.prototype.closest = function( selectors, context ) { /// var ret = [], i, l, cur = this[0]; - + + // Array if ( jQuery.isArray( selectors ) ) { var match, selector, matches = {}, @@ -3322,8 +3519,8 @@ jQuery.prototype.closest = function( selectors, context ) { for ( i = 0, l = selectors.length; i < l; i++ ) { selector = selectors[i]; - if ( !matches[selector] ) { - matches[selector] = jQuery.expr.match.POS.test( selector ) ? + if ( !matches[ selector ] ) { + matches[ selector ] = POS.test( selector ) ? jQuery( selector, context || this.context ) : selector; } @@ -3331,9 +3528,9 @@ jQuery.prototype.closest = function( selectors, context ) { while ( cur && cur.ownerDocument && cur !== context ) { for ( selector in matches ) { - match = matches[selector]; + match = matches[ selector ]; - if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { + if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { ret.push({ selector: selector, elem: cur, level: level }); } } @@ -3346,8 +3543,10 @@ jQuery.prototype.closest = function( selectors, context ) { return ret; } - var pos = POS.test( selectors ) ? - jQuery( selectors, context || this.context ) : null; + // String + var pos = POS.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; for ( i = 0, l = this.length; i < l; i++ ) { cur = this[i]; @@ -3359,14 +3558,14 @@ jQuery.prototype.closest = function( selectors, context ) { } else { cur = cur.parentNode; - if ( !cur || !cur.ownerDocument || cur === context ) { + if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { break; } } } } - ret = ret.length > 1 ? jQuery.unique(ret) : ret; + ret = ret.length > 1 ? jQuery.unique( ret ) : ret; return this.pushStack( ret, "closest", selectors ); }; @@ -3456,12 +3655,13 @@ jQuery.prototype.data = function( key, value ) { data = jQuery.data( this[0] ); if ( this[0].nodeType === 1 ) { - var attr = this[0].attributes, name; + var attr = this[0].attributes, name; for ( var i = 0, l = attr.length; i < l; i++ ) { name = attr[i].name; if ( name.indexOf( "data-" ) === 0 ) { - name = name.substr( 5 ); + name = jQuery.camelCase( name.substring(5) ); + dataAttr( this[0], name, data[ name ] ); } } @@ -3624,8 +3824,16 @@ jQuery.prototype.die = function( types, data, fn, origSelector /* Internal Use O return this; } - if ( jQuery.isFunction( data ) ) { - fn = data; + if ( name === "die" && !types && + origSelector && origSelector.charAt(0) === "." ) { + + context.unbind( origSelector ); + + return this; + } + + if ( data === false || jQuery.isFunction( data ) ) { + fn = data || returnFalse; data = undefined; } @@ -3647,7 +3855,7 @@ jQuery.prototype.die = function( types, data, fn, origSelector /* Internal Use O preType = type; - if ( type === "focus" || type === "blur" ) { + if ( liveMap[ type ] ) { types.push( liveMap[ type ] + namespaces ); type = type + namespaces; @@ -3975,24 +4183,40 @@ jQuery.prototype.filter = function( selector ) { }; jQuery.prototype.find = function( selector ) { /// -/// Get the descendants of each element in the current set of matched elements, filtered by a selector. +/// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. +/// 1 - find(selector) +/// 2 - find(jQuery object) +/// 3 - find(element) /// /// /// A string containing a selector expression to match elements against. /// /// - var ret = this.pushStack( "", "find", selector ), - length = 0; + var self = this, + i, l; - for ( var i = 0, l = this.length; i < l; i++ ) { + if ( typeof selector !== "string" ) { + return jQuery( selector ).filter(function() { + for ( i = 0, l = self.length; i < l; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }); + } + + var ret = this.pushStack( "", "find", selector ), + length, n, r; + + for ( i = 0, l = this.length; i < l; i++ ) { length = ret.length; jQuery.find( selector, this[i], ret ); if ( i > 0 ) { // Make sure that the results are unique - for ( var n = length; n < ret.length; n++ ) { - for ( var r = 0; r < length; r++ ) { + for ( n = length; n < ret.length; n++ ) { + for ( r = 0; r < length; r++ ) { if ( ret[r] === ret[n] ) { ret.splice(n--, 1); break; @@ -4214,17 +4438,21 @@ jQuery.prototype.hide = function( speed, easing, callback ) { } else { for ( var i = 0, j = this.length; i < j; i++ ) { - var display = jQuery.css( this[i], "display" ); + if ( this[i].style ) { + var display = jQuery.css( this[i], "display" ); - if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) { - jQuery._data( this[i], "olddisplay", display ); + if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) { + jQuery._data( this[i], "olddisplay", display ); + } } } // Set the display of the elements in a second loop // to avoid the constant reflow for ( i = 0; i < j; i++ ) { - this[i].style.display = "none"; + if ( this[i].style ) { + this[i].style.display = "none"; + } } return this; @@ -4342,7 +4570,7 @@ jQuery.prototype.init = function( selector, context, rootjQuery ) { if ( selector === "body" && !context && document.body ) { this.context = document; this[0] = document.body; - this.selector = "body"; + this.selector = selector; this.length = 1; return this; } @@ -4350,7 +4578,13 @@ jQuery.prototype.init = function( selector, context, rootjQuery ) { // Handle HTML strings if ( typeof selector === "string" ) { // Are we dealing with HTML string or an ID? - match = quickExpr.exec( selector ); + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = quickExpr.exec( selector ); + } // Verify a match, and that no context was specified for #id if ( match && (match[1] || !context) ) { @@ -4502,14 +4736,20 @@ jQuery.prototype.insertBefore = function( selector ) { }; jQuery.prototype.is = function( selector ) { /// -/// Check the current matched set of elements against a selector and return true if at least one of these elements matches the selector. +/// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. +/// 1 - is(selector) +/// 2 - is(function(index)) +/// 3 - is(jQuery object) +/// 4 - is(element) /// /// /// A string containing a selector expression to match elements against. /// /// - return !!selector && jQuery.filter( selector, this ).length > 0; + return !!selector && ( typeof selector === "string" ? + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); }; jQuery.prototype.keydown = function( data, fn ) { /// @@ -4622,8 +4862,16 @@ jQuery.prototype.live = function( types, data, fn, origSelector /* Internal Use return this; } - if ( jQuery.isFunction( data ) ) { - fn = data; + if ( name === "die" && !types && + origSelector && origSelector.charAt(0) === "." ) { + + context.unbind( origSelector ); + + return this; + } + + if ( data === false || jQuery.isFunction( data ) ) { + fn = data || returnFalse; data = undefined; } @@ -4645,7 +4893,7 @@ jQuery.prototype.live = function( types, data, fn, origSelector /* Internal Use preType = type; - if ( type === "focus" || type === "blur" ) { + if ( liveMap[ type ] ) { types.push( liveMap[ type ] + namespaces ); type = type + namespaces; @@ -5133,6 +5381,8 @@ jQuery.prototype.one = function( type, data, fn ) { /// /// + var handler; + // Handle object literals if ( typeof type === "object" ) { for ( var key in type ) { @@ -5141,15 +5391,20 @@ jQuery.prototype.one = function( type, data, fn ) { return this; } - if ( jQuery.isFunction( data ) || data === false ) { + if ( arguments.length === 2 || data === false ) { fn = data; data = undefined; } - var handler = name === "one" ? jQuery.proxy( fn, function( event ) { - jQuery( this ).unbind( event, handler ); - return fn.apply( this, arguments ); - }) : fn; + if ( name === "one" ) { + handler = function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }; + handler.guid = fn.guid || jQuery.guid++; + } else { + handler = fn; + } if ( type === "unload" && name !== "one" ) { this.one( type, data, fn ); @@ -5462,6 +5717,67 @@ jQuery.prototype.prevUntil = function( until, selector ) { return this.pushStack( ret, name, args.join(",") ); }; +jQuery.prototype.promise = function( type, object ) { +/// +/// Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. +/// +/// +/// The type of queue that needs to be observed. +/// +/// +/// Object onto which the promise methods have to be attached +/// +/// + + if ( typeof type !== "string" ) { + object = type; + type = undefined; + } + type = type || "fx"; + var defer = jQuery.Deferred(), + elements = this, + i = elements.length, + count = 1, + deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + tmp; + function resolve() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + } + while( i-- ) { + if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || + ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || + jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && + jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { + count++; + tmp.done( resolve ); + } + } + resolve(); + return defer.promise(); + }; +jQuery.prototype.prop = function( name, value ) { +/// +/// 1: Get the value of a property for the first element in the set of matched elements. +/// 1.1 - prop(propertyName) +/// 2: Set one or more properties for the set of matched elements. +/// 2.1 - prop(propertyName, value) +/// 2.2 - prop(map) +/// 2.3 - prop(propertyName, function(index, oldPropertyValue)) +/// +/// +/// The name of the property to set. +/// +/// +/// A value to set for the property. +/// +/// + + return jQuery.access( this, name, value, true, jQuery.prop ); + }; jQuery.prototype.pushStack = function( elems, name, selector ) { /// /// Add a collection of DOM elements onto the jQuery stack. @@ -5527,7 +5843,7 @@ jQuery.prototype.queue = function( type, data ) { if ( data === undefined ) { return jQuery.queue( this[0], type ); } - return this.each(function( i ) { + return this.each(function() { var queue = jQuery.queue( this, type, data ); if ( type === "fx" && queue[0] !== "inprogress" ) { @@ -5576,7 +5892,7 @@ jQuery.prototype.remove = function( selector, keepData ) { return this; }; -jQuery.prototype.removeAttr = function( name, fn ) { +jQuery.prototype.removeAttr = function( name ) { /// /// Remove an attribute from each element in the set of matched elements. /// @@ -5585,11 +5901,8 @@ jQuery.prototype.removeAttr = function( name, fn ) { /// /// - return this.each(function(){ - jQuery.attr( this, name, "" ); - if ( this.nodeType === 1 ) { - this.removeAttribute( name ); - } + return this.each(function() { + jQuery.removeAttr( this, name ); }); }; jQuery.prototype.removeClass = function( value ) { @@ -5599,7 +5912,7 @@ jQuery.prototype.removeClass = function( value ) { /// 2 - removeClass(function(index, class)) /// /// -/// A class name to be removed from the class attribute of each matched element. +/// One or more space-separated classes to be removed from the class attribute of each matched element. /// /// @@ -5611,7 +5924,7 @@ jQuery.prototype.removeClass = function( value ) { } if ( (value && typeof value === "string") || value === undefined ) { - var classNames = (value || "").split( rspaces ); + var classNames = (value || "").split( rspace ); for ( var i = 0, l = this.length; i < l; i++ ) { var elem = this[i]; @@ -5646,6 +5959,27 @@ jQuery.prototype.removeData = function( key ) { jQuery.removeData( this, key ); }); }; +jQuery.prototype.removeProp = function( name ) { +/// +/// Remove a property for the set of matched elements. +/// +/// +/// The name of the property to set. +/// +/// +/// A value to set for the property. +/// +/// + + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }; jQuery.prototype.replaceAll = function( selector ) { /// /// Replace each target element with the set of matched elements. @@ -5764,7 +6098,7 @@ jQuery.prototype.scroll = function( data, fn ) { this.bind( name, data, fn ) : this.trigger( name ); }; -jQuery.prototype.scrollLeft = function(val) { +jQuery.prototype.scrollLeft = function( val ) { /// /// 1: Get the current horizontal position of the scroll bar for the first element in the set of matched elements. /// 1.1 - scrollLeft() @@ -5776,28 +6110,15 @@ jQuery.prototype.scrollLeft = function(val) { /// /// - var elem = this[0], win; + var elem, win; - if ( !elem ) { - return null; - } + if ( val === undefined ) { + elem = this[ 0 ]; - if ( val !== undefined ) { - // Set the scroll offset - return this.each(function() { - win = getWindow( this ); + if ( !elem ) { + return null; + } - if ( win ) { - win.scrollTo( - !i ? val : jQuery(win).scrollLeft(), - i ? val : jQuery(win).scrollTop() - ); - - } else { - this[ method ] = val; - } - }); - } else { win = getWindow( elem ); // Return the scroll offset @@ -5806,8 +6127,23 @@ jQuery.prototype.scrollLeft = function(val) { win.document.body[ method ] : elem[ method ]; } + + // Set the scroll offset + return this.each(function() { + win = getWindow( this ); + + if ( win ) { + win.scrollTo( + !i ? val : jQuery( win ).scrollLeft(), + i ? val : jQuery( win ).scrollTop() + ); + + } else { + this[ method ] = val; + } + }); }; -jQuery.prototype.scrollTop = function(val) { +jQuery.prototype.scrollTop = function( val ) { /// /// 1: Get the current vertical position of the scroll bar for the first element in the set of matched elements. /// 1.1 - scrollTop() @@ -5819,28 +6155,15 @@ jQuery.prototype.scrollTop = function(val) { /// /// - var elem = this[0], win; + var elem, win; - if ( !elem ) { - return null; - } + if ( val === undefined ) { + elem = this[ 0 ]; - if ( val !== undefined ) { - // Set the scroll offset - return this.each(function() { - win = getWindow( this ); + if ( !elem ) { + return null; + } - if ( win ) { - win.scrollTo( - !i ? val : jQuery(win).scrollLeft(), - i ? val : jQuery(win).scrollTop() - ); - - } else { - this[ method ] = val; - } - }); - } else { win = getWindow( elem ); // Return the scroll offset @@ -5849,6 +6172,21 @@ jQuery.prototype.scrollTop = function(val) { win.document.body[ method ] : elem[ method ]; } + + // Set the scroll offset + return this.each(function() { + win = getWindow( this ); + + if ( win ) { + win.scrollTo( + !i ? val : jQuery( win ).scrollLeft(), + i ? val : jQuery( win ).scrollTop() + ); + + } else { + this[ method ] = val; + } + }); }; jQuery.prototype.select = function( data, fn ) { /// @@ -5934,19 +6272,22 @@ jQuery.prototype.show = function( speed, easing, callback ) { } else { for ( var i = 0, j = this.length; i < j; i++ ) { elem = this[i]; - display = elem.style.display; - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { - display = elem.style.display = ""; - } + if ( elem.style ) { + display = elem.style.display; - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( display === "" && jQuery.css( elem, "display" ) === "none" ) { - jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName)); + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { + display = elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( display === "" && jQuery.css( elem, "display" ) === "none" ) { + jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName)); + } } } @@ -5954,10 +6295,13 @@ jQuery.prototype.show = function( speed, easing, callback ) { // to avoid the constant reflow for ( i = 0; i < j; i++ ) { elem = this[i]; - display = elem.style.display; - if ( display === "" || display === "none" ) { - elem.style.display = jQuery._data(elem, "olddisplay") || ""; + if ( elem.style ) { + display = elem.style.display; + + if ( display === "" || display === "none" ) { + elem.style.display = jQuery._data(elem, "olddisplay") || ""; + } } } @@ -6088,15 +6432,18 @@ jQuery.prototype.stop = function( clearQueue, gotoEnd ) { /// /// - var timers = jQuery.timers; - if ( clearQueue ) { this.queue([]); } this.each(function() { - // go in reverse order so anything added to the queue during the loop is ignored - for ( var i = timers.length - 1; i >= 0; i-- ) { + var timers = jQuery.timers, + i = timers.length; + // clear marker counters if we know they won't be + if ( !gotoEnd ) { + jQuery._unmark( true, this ); + } + while ( i-- ) { if ( timers[i].elem === this ) { if (gotoEnd) { // force the next step to be the last @@ -6243,7 +6590,7 @@ jQuery.prototype.toggleClass = function( value, stateVal ) { i = 0, self = jQuery( this ), state = stateVal, - classNames = value.split( rspaces ); + classNames = value.split( rspace ); while ( (className = classNames[ i++ ]) ) { // check each className given, space seperated list @@ -6293,11 +6640,7 @@ jQuery.prototype.triggerHandler = function( type, data ) { /// if ( this[0] ) { - var event = jQuery.Event( type ); - event.preventDefault(); - event.stopPropagation(); - jQuery.event.trigger( event, data, this[0] ); - return event.result; + return jQuery.event.trigger( type, data, this[0], true ); } }; jQuery.prototype.unbind = function( type, fn ) { @@ -6335,7 +6678,8 @@ jQuery.prototype.undelegate = function( selector, types, fn ) { /// 1 - undelegate() /// 2 - undelegate(selector, eventType) /// 3 - undelegate(selector, eventType, handler) -/// 4 - undelegate(selector, events) +/// 4 - undelegate(selector, events) +/// 5 - undelegate(namespace) /// /// /// A selector which will be used to filter the event results. @@ -6349,7 +6693,7 @@ jQuery.prototype.undelegate = function( selector, types, fn ) { /// if ( arguments.length === 0 ) { - return this.unbind( "live" ); + return this.unbind( "live" ); } else { return this.die( types, null, fn, selector ); @@ -6403,82 +6747,36 @@ jQuery.prototype.val = function( value ) { /// /// + var hooks, ret, + elem = this[0]; + if ( !arguments.length ) { - var elem = this[0]; - if ( elem ) { - if ( jQuery.nodeName( elem, "option" ) ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; + hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; } - // We need to handle select boxes special - if ( jQuery.nodeName( elem, "select" ) ) { - var index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type === "select-one"; - - // Nothing was selected - if ( index < 0 ) { - return null; - } - - // Loop through all the selected options - for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { - var option = options[ i ]; - - // Don't return options that are disabled or in a disabled optgroup - if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && - (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { - - // Get the specific value for the option - value = jQuery(option).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - // Fixes Bug #2551 -- select.val() broken in IE after form.reset() - if ( one && !values.length && options.length ) { - return jQuery( options[ index ] ).val(); - } - - return values; - } - - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) { - return elem.getAttribute("value") === null ? "on" : elem.value; - } - - // Everything else, we just grab the value return (elem.value || "").replace(rreturn, ""); - } return undefined; } - var isFunction = jQuery.isFunction(value); + var isFunction = jQuery.isFunction( value ); - return this.each(function(i) { - var self = jQuery(this), val = value; + return this.each(function( i ) { + var self = jQuery(this), val; if ( this.nodeType !== 1 ) { return; } if ( isFunction ) { - val = value.call(this, i, self.val()); + val = value.call( this, i, self.val() ); + } else { + val = value; } // Treat null/undefined as ""; convert numbers to string @@ -6486,27 +6784,16 @@ jQuery.prototype.val = function( value ) { val = ""; } else if ( typeof val === "number" ) { val += ""; - } else if ( jQuery.isArray(val) ) { - val = jQuery.map(val, function (value) { + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { return value == null ? "" : value + ""; }); } - if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { - this.checked = jQuery.inArray( self.val(), val ) >= 0; + hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; - } else if ( jQuery.nodeName( this, "select" ) ) { - var values = jQuery.makeArray(val); - - jQuery( "option", this ).each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - this.selectedIndex = -1; - } - - } else { + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { this.value = val; } }); @@ -6611,7 +6898,7 @@ jQuery.prototype.wrapAll = function( html ) { } return elem; - }).append(this); + }).append( this ); } return this; diff --git a/NzbDrone.Web/Scripts/jquery-1.5.2.js b/NzbDrone.Web/Scripts/jquery-1.6.1.js similarity index 79% rename from NzbDrone.Web/Scripts/jquery-1.5.2.js rename to NzbDrone.Web/Scripts/jquery-1.6.1.js index ae0234d2b..5d5a1d58e 100644 --- a/NzbDrone.Web/Scripts/jquery-1.5.2.js +++ b/NzbDrone.Web/Scripts/jquery-1.6.1.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v1.5.2 + * jQuery JavaScript Library v1.6.1 * http://jquery.com/ * * Copyright 2011, John Resig @@ -11,12 +11,14 @@ * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * - * Date: Thu Mar 31 15:28:23 2011 -0400 + * Date: Thu May 12 15:04:36 2011 -0400 */ (function( window, undefined ) { // Use the correct document accordingly with window argument (sandbox) -var document = window.document; +var document = window.document, + navigator = window.navigator, + location = window.location; var jQuery = (function() { // Define a local copy of jQuery @@ -36,7 +38,7 @@ var jQuery = function( selector, context ) { // A simple way to check for HTML strings or ID strings // (both of which we optimize for) - quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/, + quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, // Check if a string has a non-whitespace character in it rnotwhite = /\S/, @@ -107,7 +109,7 @@ jQuery.fn = jQuery.prototype = { if ( selector === "body" && !context && document.body ) { this.context = document; this[0] = document.body; - this.selector = "body"; + this.selector = selector; this.length = 1; return this; } @@ -115,7 +117,13 @@ jQuery.fn = jQuery.prototype = { // Handle HTML strings if ( typeof selector === "string" ) { // Are we dealing with HTML string or an ID? - match = quickExpr.exec( selector ); + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = quickExpr.exec( selector ); + } // Verify a match, and that no context was specified for #id if ( match && (match[1] || !context) ) { @@ -196,7 +204,7 @@ jQuery.fn = jQuery.prototype = { selector: "", // The current version of jQuery being used - jquery: "1.5.2", + jquery: "1.6.1", // The default length of a jQuery object is 0 length: 0, @@ -372,9 +380,11 @@ jQuery.extend = jQuery.fn.extend = function() { jQuery.extend({ noConflict: function( deep ) { - window.$ = _$; + if ( window.$ === jQuery ) { + window.$ = _$; + } - if ( deep ) { + if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } @@ -388,15 +398,19 @@ jQuery.extend({ // the ready event fires. See #6781 readyWait: 1, + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + // Handle when the DOM is ready ready: function( wait ) { - // A third-party is pushing the ready event forwards - if ( wait === true ) { - jQuery.readyWait--; - } - - // Make sure that the DOM is not already loaded - if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) { + // Either a released hold or an DOMready/load event and not yet ready + if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( !document.body ) { return setTimeout( jQuery.ready, 1 ); @@ -446,7 +460,7 @@ jQuery.extend({ } else if ( document.attachEvent ) { // ensure firing before onload, // maybe late but safe also for iframes - document.attachEvent("onreadystatechange", DOMContentLoaded); + document.attachEvent( "onreadystatechange", DOMContentLoaded ); // A fallback to window.onload, that will always work window.attachEvent( "onload", jQuery.ready ); @@ -534,20 +548,21 @@ jQuery.extend({ // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test(data.replace(rvalidescape, "@") - .replace(rvalidtokens, "]") - .replace(rvalidbraces, "")) ) { + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { - // Try to use the native JSON parser first - return window.JSON && window.JSON.parse ? - window.JSON.parse( data ) : - (new Function("return " + data))(); + return (new Function( "return " + data ))(); - } else { - jQuery.error( "Invalid JSON: " + data ); } + jQuery.error( "Invalid JSON: " + data ); }, // Cross-browser xml parsing @@ -574,24 +589,17 @@ jQuery.extend({ noop: function() {}, - // Evalulates a script in a global context + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context globalEval: function( data ) { - if ( data && rnotwhite.test(data) ) { - // Inspired by code by Andrea Giammarchi - // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html - var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement, - script = document.createElement( "script" ); - - if ( jQuery.support.scriptEval() ) { - script.appendChild( document.createTextNode( data ) ); - } else { - script.text = data; - } - - // Use insertBefore instead of appendChild to circumvent an IE6 bug. - // This arises when a base node is used (#2709). - head.insertBefore( script, head.firstChild ); - head.removeChild( script ); + if ( data && rnotwhite.test( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); } }, @@ -603,7 +611,7 @@ jQuery.extend({ each: function( object, callback, args ) { var name, i = 0, length = object.length, - isObj = length === undefined || jQuery.isFunction(object); + isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { @@ -629,8 +637,11 @@ jQuery.extend({ } } } else { - for ( var value = object[0]; - i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} + for ( ; i < length; ) { + if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { + break; + } + } } } @@ -661,7 +672,7 @@ jQuery.extend({ // The extra typeof function check is to prevent crashes // in Safari 2 (See: #3039) // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type(array); + var type = jQuery.type( array ); if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { push.call( ret, array ); @@ -674,8 +685,9 @@ jQuery.extend({ }, inArray: function( elem, array ) { - if ( array.indexOf ) { - return array.indexOf( elem ); + + if ( indexOf ) { + return indexOf.call( array, elem ); } for ( var i = 0, length = array.length; i < length; i++ ) { @@ -725,15 +737,30 @@ jQuery.extend({ // arg is for internal usage only map: function( elems, callback, arg ) { - var ret = [], value; + var value, key, ret = [], + i = 0, + length = elems.length, + // jquery objects are treated as arrays + isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; // Go through the array, translating each of the items to their - // new value (or values). - for ( var i = 0, length = elems.length; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); - if ( value != null ) { - ret[ ret.length ] = value; + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( key in elems ) { + value = callback( elems[ key ], key, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } } } @@ -744,31 +771,30 @@ jQuery.extend({ // A global GUID counter for objects guid: 1, - proxy: function( fn, proxy, thisObject ) { - if ( arguments.length === 2 ) { - if ( typeof proxy === "string" ) { - thisObject = fn; - fn = thisObject[ proxy ]; - proxy = undefined; - - } else if ( proxy && !jQuery.isFunction( proxy ) ) { - thisObject = proxy; - proxy = undefined; - } + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + if ( typeof context === "string" ) { + var tmp = fn[ context ]; + context = fn; + fn = tmp; } - if ( !proxy && fn ) { + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + var args = slice.call( arguments, 2 ), proxy = function() { - return fn.apply( thisObject || this, arguments ); + return fn.apply( context, args.concat( slice.call( arguments ) ) ); }; - } // Set the guid of unique handler to the same of original handler, so it can be removed - if ( fn ) { - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - } + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - // So proxy can be declared as an argument return proxy; }, @@ -820,24 +846,24 @@ jQuery.extend({ }, sub: function() { - function jQuerySubclass( selector, context ) { - return new jQuerySubclass.fn.init( selector, context ); + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); } - jQuery.extend( true, jQuerySubclass, this ); - jQuerySubclass.superclass = this; - jQuerySubclass.fn = jQuerySubclass.prototype = this(); - jQuerySubclass.fn.constructor = jQuerySubclass; - jQuerySubclass.subclass = this.subclass; - jQuerySubclass.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) { - context = jQuerySubclass(context); + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); } - return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass ); + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); }; - jQuerySubclass.fn.init.prototype = jQuerySubclass.fn; - var rootjQuerySubclass = jQuerySubclass(document); - return jQuerySubclass; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; }, browser: {} @@ -859,12 +885,6 @@ if ( jQuery.browser.webkit ) { jQuery.browser.safari = true; } -if ( indexOf ) { - jQuery.inArray = function( elem, array ) { - return indexOf.call( array, elem ); - }; -} - // IE doesn't match non-breaking spaces with \s if ( rnotwhite.test( "\xA0" ) ) { trimLeft = /^[\s\xA0]+/; @@ -917,7 +937,7 @@ return jQuery; var // Promise methods - promiseMethods = "then done fail isResolved isRejected promise".split( " " ), + promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ), // Static reference to slice sliceDeferred = [].slice; @@ -1016,10 +1036,37 @@ jQuery.extend({ deferred.done( doneCallbacks ).fail( failCallbacks ); return this; }, + always: function() { + return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); + }, fail: failDeferred.done, rejectWith: failDeferred.resolveWith, reject: failDeferred.resolve, isRejected: failDeferred.isResolved, + pipe: function( fnDone, fnFail ) { + return jQuery.Deferred(function( newDefer ) { + jQuery.each( { + done: [ fnDone, "resolve" ], + fail: [ fnFail, "reject" ] + }, function( handler, data ) { + var fn = data[ 0 ], + action = data[ 1 ], + returned; + if ( jQuery.isFunction( fn ) ) { + deferred[ handler ](function() { + returned = fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise().then( newDefer.resolve, newDefer.reject ); + } else { + newDefer[ action ]( returned ); + } + }); + } else { + deferred[ handler ]( newDefer[ action ] ); + } + }); + }).promise(); + }, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function( obj ) { @@ -1035,7 +1082,7 @@ jQuery.extend({ } return obj; } - } ); + }); // Make sure only one callback list will be used deferred.done( failDeferred.cancel ).fail( deferred.cancel ); // Unexpose cancel @@ -1087,46 +1134,62 @@ jQuery.extend({ +jQuery.support = (function() { -(function() { + var div = document.createElement( "div" ), + documentElement = document.documentElement, + all, + a, + select, + opt, + input, + marginDiv, + support, + fragment, + body, + bodyStyle, + tds, + events, + eventName, + i, + isSupported; - jQuery.support = {}; + // Preliminary tests + div.setAttribute("className", "t"); + div.innerHTML = "
a"; - var div = document.createElement("div"); - - div.style.display = "none"; - div.innerHTML = "
a"; - - var all = div.getElementsByTagName("*"), - a = div.getElementsByTagName("a")[0], - select = document.createElement("select"), - opt = select.appendChild( document.createElement("option") ), - input = div.getElementsByTagName("input")[0]; + all = div.getElementsByTagName( "*" ); + a = div.getElementsByTagName( "a" )[ 0 ]; // Can't get basic test support if ( !all || !all.length || !a ) { - return; + return {}; } - jQuery.support = { + // First batch of supports tests + select = document.createElement( "select" ); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName( "input" )[ 0 ]; + + support = { // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: div.firstChild.nodeType === 3, + leadingWhitespace: ( div.firstChild.nodeType === 3 ), // Make sure that tbody elements aren't automatically inserted // IE will insert them into empty tables - tbody: !div.getElementsByTagName("tbody").length, + tbody: !div.getElementsByTagName( "tbody" ).length, // Make sure that link elements get serialized correctly by innerHTML // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName("link").length, + htmlSerialize: !!div.getElementsByTagName( "link" ).length, // Get the style information from getAttribute - // (IE uses .cssText insted) - style: /red/.test( a.getAttribute("style") ), + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), // Make sure that URLs aren't manipulated // (IE normalizes it by default) - hrefNormalized: a.getAttribute("href") === "/a", + hrefNormalized: ( a.getAttribute( "href" ) === "/a" ), // Make sure that element opacity exists // (IE uses filter instead) @@ -1140,188 +1203,183 @@ jQuery.extend({ // Make sure that if no value is specified for a checkbox // that it defaults to "on". // (WebKit defaults to "" instead) - checkOn: input.value === "on", + checkOn: ( input.value === "on" ), // Make sure that a selected-by-default option has a working selected property. // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) optSelected: opt.selected, + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + // Will be defined later + submitBubbles: true, + changeBubbles: true, + focusinBubbles: false, deleteExpando: true, - optDisabled: false, - checkClone: false, noCloneEvent: true, - noCloneChecked: true, - boxModel: null, inlineBlockNeedsLayout: false, shrinkWrapBlocks: false, - reliableHiddenOffsets: true, reliableMarginRight: true }; + // Make sure checked status is properly cloned input.checked = true; - jQuery.support.noCloneChecked = input.cloneNode( true ).checked; + support.noCloneChecked = input.cloneNode( true ).checked; // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as diabled) + // (WebKit marks them as disabled) select.disabled = true; - jQuery.support.optDisabled = !opt.disabled; - - var _scriptEval = null; - jQuery.support.scriptEval = function() { - if ( _scriptEval === null ) { - var root = document.documentElement, - script = document.createElement("script"), - id = "script" + jQuery.now(); - - // Make sure that the execution of code works by injecting a script - // tag with appendChild/createTextNode - // (IE doesn't support this, fails, and uses .text instead) - try { - script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); - } catch(e) {} - - root.insertBefore( script, root.firstChild ); - - if ( window[ id ] ) { - _scriptEval = true; - delete window[ id ]; - } else { - _scriptEval = false; - } - - root.removeChild( script ); - } - - return _scriptEval; - }; + support.optDisabled = !opt.disabled; // Test to see if it's possible to delete an expando from an element // Fails in Internet Explorer try { delete div.test; - - } catch(e) { - jQuery.support.deleteExpando = false; + } catch( e ) { + support.deleteExpando = false; } if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { - div.attachEvent("onclick", function click() { + div.attachEvent( "onclick", function click() { // Cloning a node shouldn't copy over any // bound event handlers (IE does this) - jQuery.support.noCloneEvent = false; - div.detachEvent("onclick", click); + support.noCloneEvent = false; + div.detachEvent( "onclick", click ); }); - div.cloneNode(true).fireEvent("onclick"); + div.cloneNode( true ).fireEvent( "onclick" ); } - div = document.createElement("div"); - div.innerHTML = ""; + // Check if a radio maintains it's value + // after being appended to the DOM + input = document.createElement("input"); + input.value = "t"; + input.setAttribute("type", "radio"); + support.radioValue = input.value === "t"; - var fragment = document.createDocumentFragment(); + input.setAttribute("checked", "checked"); + div.appendChild( input ); + fragment = document.createDocumentFragment(); fragment.appendChild( div.firstChild ); // WebKit doesn't clone checked state correctly in fragments - jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + div.innerHTML = ""; // Figure out if the W3C box model works as expected - // document.body must exist before we can do this - jQuery(function() { - var div = document.createElement("div"), - body = document.getElementsByTagName("body")[0]; + div.style.width = div.style.paddingLeft = "1px"; - // Frameset documents with no body should not run this code - if ( !body ) { - return; - } + // We use our own, invisible, body + body = document.createElement( "body" ); + bodyStyle = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + // Set background to avoid IE crashes when removing (#9028) + background: "none" + }; + for ( i in bodyStyle ) { + body.style[ i ] = bodyStyle[ i ]; + } + body.appendChild( div ); + documentElement.insertBefore( body, documentElement.firstChild ); - div.style.width = div.style.paddingLeft = "1px"; - body.appendChild( div ); - jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; - if ( "zoom" in div.style ) { - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - // (IE < 8 does this) - div.style.display = "inline"; - div.style.zoom = 1; - jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2; + support.boxModel = div.offsetWidth === 2; - // Check if elements with layout shrink-wrap their children - // (IE 6 does this) - div.style.display = ""; - div.innerHTML = "
"; - jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2; - } + if ( "zoom" in div.style ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.style.display = "inline"; + div.style.zoom = 1; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); - div.innerHTML = "
t
"; - var tds = div.getElementsByTagName("td"); + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = ""; + div.innerHTML = "
"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); + } - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - // (only IE 8 fails this test) - jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0; + div.innerHTML = "
t
"; + tds = div.getElementsByTagName( "td" ); - tds[0].style.display = ""; - tds[1].style.display = "none"; + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + isSupported = ( tds[ 0 ].offsetHeight === 0 ); - // Check if empty table cells still have offsetWidth/Height - // (IE < 8 fail this test) - jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0; - div.innerHTML = ""; + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. For more - // info see bug #3333 - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - if ( document.defaultView && document.defaultView.getComputedStyle ) { - div.style.width = "1px"; - div.style.marginRight = "0"; - jQuery.support.reliableMarginRight = ( parseInt(document.defaultView.getComputedStyle(div, null).marginRight, 10) || 0 ) === 0; - } + // Check if empty table cells still have offsetWidth/Height + // (IE < 8 fail this test) + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + div.innerHTML = ""; - body.removeChild( div ).style.display = "none"; - div = tds = null; - }); + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. For more + // info see bug #3333 + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + if ( document.defaultView && document.defaultView.getComputedStyle ) { + marginDiv = document.createElement( "div" ); + marginDiv.style.width = "0"; + marginDiv.style.marginRight = "0"; + div.appendChild( marginDiv ); + support.reliableMarginRight = + ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; + } + + // Remove the body element we added + body.innerHTML = ""; + documentElement.removeChild( body ); // Technique from Juriy Zaytsev // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ - var eventSupported = function( eventName ) { - var el = document.createElement("div"); - eventName = "on" + eventName; - - // We only care about the case where non-standard event systems - // are used, namely in IE. Short-circuiting here helps us to - // avoid an eval call (in setAttribute) which can cause CSP - // to go haywire. See: https://developer.mozilla.org/en/Security/CSP - if ( !el.attachEvent ) { - return true; + // We only care about the case where non-standard event systems + // are used, namely in IE. Short-circuiting here helps us to + // avoid an eval call (in setAttribute) which can cause CSP + // to go haywire. See: https://developer.mozilla.org/en/Security/CSP + if ( div.attachEvent ) { + for( i in { + submit: 1, + change: 1, + focusin: 1 + } ) { + eventName = "on" + i; + isSupported = ( eventName in div ); + if ( !isSupported ) { + div.setAttribute( eventName, "return;" ); + isSupported = ( typeof div[ eventName ] === "function" ); + } + support[ i + "Bubbles" ] = isSupported; } + } - var isSupported = (eventName in el); - if ( !isSupported ) { - el.setAttribute(eventName, "return;"); - isSupported = typeof el[eventName] === "function"; - } - return isSupported; - }; - - jQuery.support.submitBubbles = eventSupported("submit"); - jQuery.support.changeBubbles = eventSupported("change"); - - // release memory in IE - div = all = a = null; + return support; })(); +// Keep track of boxModel +jQuery.boxModel = jQuery.support.boxModel; -var rbrace = /^(?:\{.*\}|\[.*\])$/; + + +var rbrace = /^(?:\{.*\}|\[.*\])$/, + rmultiDash = /([a-z])([A-Z])/g; jQuery.extend({ cache: {}, @@ -1418,7 +1476,7 @@ jQuery.extend({ } if ( data !== undefined ) { - thisCache[ name ] = data; + thisCache[ jQuery.camelCase( name ) ] = data; } // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should @@ -1428,7 +1486,7 @@ jQuery.extend({ return thisCache[ internalKey ] && thisCache[ internalKey ].events; } - return getByName ? thisCache[ name ] : thisCache; + return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache; }, removeData: function( elem, name, pvt /* Internal Use Only */ ) { @@ -1544,12 +1602,13 @@ jQuery.fn.extend({ data = jQuery.data( this[0] ); if ( this[0].nodeType === 1 ) { - var attr = this[0].attributes, name; + var attr = this[0].attributes, name; for ( var i = 0, l = attr.length; i < l; i++ ) { name = attr[i].name; if ( name.indexOf( "data-" ) === 0 ) { - name = name.substr( 5 ); + name = jQuery.camelCase( name.substring(5) ); + dataAttr( this[0], name, data[ name ] ); } } @@ -1603,7 +1662,9 @@ function dataAttr( elem, key, data ) { // If nothing was found internally, try to fetch any // data from the HTML5 data-* attribute if ( data === undefined && elem.nodeType === 1 ) { - data = elem.getAttribute( "data-" + key ); + var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase(); + + data = elem.getAttribute( name ); if ( typeof data === "string" ) { try { @@ -1642,35 +1703,76 @@ function isEmptyDataObject( obj ) { +function handleQueueMarkDefer( elem, type, src ) { + var deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + defer = jQuery.data( elem, deferDataKey, undefined, true ); + if ( defer && + ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && + ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { + // Give room for hard-coded callbacks to fire first + // and eventually mark/queue something else on the element + setTimeout( function() { + if ( !jQuery.data( elem, queueDataKey, undefined, true ) && + !jQuery.data( elem, markDataKey, undefined, true ) ) { + jQuery.removeData( elem, deferDataKey, true ); + defer.resolve(); + } + }, 0 ); + } +} + jQuery.extend({ - queue: function( elem, type, data ) { - if ( !elem ) { - return; + + _mark: function( elem, type ) { + if ( elem ) { + type = (type || "fx") + "mark"; + jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); } + }, - type = (type || "fx") + "queue"; - var q = jQuery._data( elem, type ); + _unmark: function( force, elem, type ) { + if ( force !== true ) { + type = elem; + elem = force; + force = false; + } + if ( elem ) { + type = type || "fx"; + var key = type + "mark", + count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); + if ( count ) { + jQuery.data( elem, key, count, true ); + } else { + jQuery.removeData( elem, key, true ); + handleQueueMarkDefer( elem, type, "mark" ); + } + } + }, - // Speed up dequeue by getting out quickly if this is just a lookup - if ( !data ) { + queue: function( elem, type, data ) { + if ( elem ) { + type = (type || "fx") + "queue"; + var q = jQuery.data( elem, type, undefined, true ); + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !q || jQuery.isArray(data) ) { + q = jQuery.data( elem, type, jQuery.makeArray(data), true ); + } else { + q.push( data ); + } + } return q || []; } - - if ( !q || jQuery.isArray(data) ) { - q = jQuery._data( elem, type, jQuery.makeArray(data) ); - - } else { - q.push( data ); - } - - return q; }, dequeue: function( elem, type ) { type = type || "fx"; var queue = jQuery.queue( elem, type ), - fn = queue.shift(); + fn = queue.shift(), + defer; // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { @@ -1691,6 +1793,7 @@ jQuery.extend({ if ( !queue.length ) { jQuery.removeData( elem, type + "queue", true ); + handleQueueMarkDefer( elem, type, "queue" ); } } }); @@ -1705,7 +1808,7 @@ jQuery.fn.extend({ if ( data === undefined ) { return jQuery.queue( this[0], type ); } - return this.each(function( i ) { + return this.each(function() { var queue = jQuery.queue( this, type, data ); if ( type === "fx" && queue[0] !== "inprogress" ) { @@ -1718,7 +1821,6 @@ jQuery.fn.extend({ jQuery.dequeue( this, type ); }); }, - // Based off of the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ delay: function( time, type ) { @@ -1732,9 +1834,41 @@ jQuery.fn.extend({ }, time ); }); }, - clearQueue: function( type ) { return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, object ) { + if ( typeof type !== "string" ) { + object = type; + type = undefined; + } + type = type || "fx"; + var defer = jQuery.Deferred(), + elements = this, + i = elements.length, + count = 1, + deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + tmp; + function resolve() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + } + while( i-- ) { + if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || + ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || + jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && + jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { + count++; + tmp.done( resolve ); + } + } + resolve(); + return defer.promise(); } }); @@ -1742,51 +1876,51 @@ jQuery.fn.extend({ var rclass = /[\n\t\r]/g, - rspaces = /\s+/, + rspace = /\s+/, rreturn = /\r/g, - rspecialurl = /^(?:href|src|style)$/, rtype = /^(?:button|input)$/i, rfocusable = /^(?:button|input|object|select|textarea)$/i, rclickable = /^a(?:rea)?$/i, - rradiocheck = /^(?:radio|checkbox)$/i; - -jQuery.props = { - "for": "htmlFor", - "class": "className", - readonly: "readOnly", - maxlength: "maxLength", - cellspacing: "cellSpacing", - rowspan: "rowSpan", - colspan: "colSpan", - tabindex: "tabIndex", - usemap: "useMap", - frameborder: "frameBorder" -}; + rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, + rinvalidChar = /\:/, + formHook, boolHook; jQuery.fn.extend({ attr: function( name, value ) { return jQuery.access( this, name, value, true, jQuery.attr ); }, - removeAttr: function( name, fn ) { - return this.each(function(){ - jQuery.attr( this, name, "" ); - if ( this.nodeType === 1 ) { - this.removeAttribute( name ); - } + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.prop ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} }); }, addClass: function( value ) { - if ( jQuery.isFunction(value) ) { + if ( jQuery.isFunction( value ) ) { return this.each(function(i) { var self = jQuery(this); - self.addClass( value.call(this, i, self.attr("class")) ); + self.addClass( value.call(this, i, self.attr("class") || "") ); }); } if ( value && typeof value === "string" ) { - var classNames = (value || "").split( rspaces ); + var classNames = (value || "").split( rspace ); for ( var i = 0, l = this.length; i < l; i++ ) { var elem = this[i]; @@ -1822,7 +1956,7 @@ jQuery.fn.extend({ } if ( (value && typeof value === "string") || value === undefined ) { - var classNames = (value || "").split( rspaces ); + var classNames = (value || "").split( rspace ); for ( var i = 0, l = this.length; i < l; i++ ) { var elem = this[i]; @@ -1863,7 +1997,7 @@ jQuery.fn.extend({ i = 0, self = jQuery( this ), state = stateVal, - classNames = value.split( rspaces ); + classNames = value.split( rspace ); while ( (className = classNames[ i++ ]) ) { // check each className given, space seperated list @@ -1895,82 +2029,36 @@ jQuery.fn.extend({ }, val: function( value ) { + var hooks, ret, + elem = this[0]; + if ( !arguments.length ) { - var elem = this[0]; - if ( elem ) { - if ( jQuery.nodeName( elem, "option" ) ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; + hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; } - // We need to handle select boxes special - if ( jQuery.nodeName( elem, "select" ) ) { - var index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type === "select-one"; - - // Nothing was selected - if ( index < 0 ) { - return null; - } - - // Loop through all the selected options - for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { - var option = options[ i ]; - - // Don't return options that are disabled or in a disabled optgroup - if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && - (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { - - // Get the specific value for the option - value = jQuery(option).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - // Fixes Bug #2551 -- select.val() broken in IE after form.reset() - if ( one && !values.length && options.length ) { - return jQuery( options[ index ] ).val(); - } - - return values; - } - - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) { - return elem.getAttribute("value") === null ? "on" : elem.value; - } - - // Everything else, we just grab the value return (elem.value || "").replace(rreturn, ""); - } return undefined; } - var isFunction = jQuery.isFunction(value); + var isFunction = jQuery.isFunction( value ); - return this.each(function(i) { - var self = jQuery(this), val = value; + return this.each(function( i ) { + var self = jQuery(this), val; if ( this.nodeType !== 1 ) { return; } if ( isFunction ) { - val = value.call(this, i, self.val()); + val = value.call( this, i, self.val() ); + } else { + val = value; } // Treat null/undefined as ""; convert numbers to string @@ -1978,27 +2066,16 @@ jQuery.fn.extend({ val = ""; } else if ( typeof val === "number" ) { val += ""; - } else if ( jQuery.isArray(val) ) { - val = jQuery.map(val, function (value) { + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { return value == null ? "" : value + ""; }); } - if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { - this.checked = jQuery.inArray( self.val(), val ) >= 0; + hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; - } else if ( jQuery.nodeName( this, "select" ) ) { - var values = jQuery.makeArray(val); - - jQuery( "option", this ).each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - this.selectedIndex = -1; - } - - } else { + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { this.value = val; } }); @@ -2006,6 +2083,72 @@ jQuery.fn.extend({ }); jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, + index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type === "select-one"; + + // Nothing was selected + if ( index < 0 ) { + return null; + } + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + // Don't return options that are disabled or in a disabled optgroup + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + // Fixes Bug #2551 -- select.val() broken in IE after form.reset() + if ( one && !values.length && options.length ) { + return jQuery( options[ index ] ).val(); + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + attrFn: { val: true, css: true, @@ -2016,124 +2159,345 @@ jQuery.extend({ height: true, offset: true }, - + + attrFix: { + // Always normalize to ensure hook usage + tabindex: "tabIndex" + }, + attr: function( elem, name, value, pass ) { + var nType = elem.nodeType; + // don't get/set attributes on text, comment and attribute nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) { + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { return undefined; } if ( pass && name in jQuery.attrFn ) { - return jQuery(elem)[name](value); + return jQuery( elem )[ name ]( value ); } - var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), - // Whether we are setting (or getting) - set = value !== undefined; + // Fallback to prop when attributes are not supported + if ( !("getAttribute" in elem) ) { + return jQuery.prop( elem, name, value ); + } - // Try to normalize/fix the name - name = notxml && jQuery.props[ name ] || name; + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - // Only do all the following if this is a node (faster for style) - if ( elem.nodeType === 1 ) { - // These attributes require special treatment - var special = rspecialurl.test( name ); + // Normalize the name if needed + name = notxml && jQuery.attrFix[ name ] || name; - // Safari mis-reports the default selected property of an option - // Accessing the parent's selectedIndex property fixes it - if ( name === "selected" && !jQuery.support.optSelected ) { - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; + hooks = jQuery.attrHooks[ name ]; - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } + if ( !hooks ) { + // Use boolHook for boolean attributes + if ( rboolean.test( name ) && + (typeof value === "boolean" || value === undefined || value.toLowerCase() === name.toLowerCase()) ) { + + hooks = boolHook; + + // Use formHook for forms and if the name contains certain characters + } else if ( formHook && (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { + hooks = formHook; } + } - // If applicable, access the attribute via the DOM 0 way - // 'in' checks fail in Blackberry 4.7 #6931 - if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) { - if ( set ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } + if ( value !== undefined ) { - if ( value === null ) { - if ( elem.nodeType === 1 ) { - elem.removeAttribute( name ); - } - - } else { - elem[ name ] = value; - } - } - - // browsers index elements by id/name on forms, give priority to attributes. - if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { - return elem.getAttributeNode( name ).nodeValue; - } - - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - if ( name === "tabIndex" ) { - var attributeNode = elem.getAttributeNode( "tabIndex" ); - - return attributeNode && attributeNode.specified ? - attributeNode.value : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - - return elem[ name ]; - } - - if ( !jQuery.support.style && notxml && name === "style" ) { - if ( set ) { - elem.style.cssText = "" + value; - } - - return elem.style.cssText; - } - - if ( set ) { - // convert the value to a string (all browsers do this but IE) see #1070 - elem.setAttribute( name, "" + value ); - } - - // Ensure that missing attributes return undefined - // Blackberry 4.7 returns "" from getAttribute #6938 - if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); return undefined; + + } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, "" + value ); + return value; } - var attr = !jQuery.support.hrefNormalized && notxml && special ? - // Some attributes require a special call on IE - elem.getAttribute( name, 2 ) : - elem.getAttribute( name ); + } else if ( hooks && "get" in hooks && notxml ) { + return hooks.get( elem, name ); + + } else { + + ret = elem.getAttribute( name ); // Non-existent attributes return null, we normalize to undefined - return attr === null ? undefined : attr; + return ret === null ? + undefined : + ret; } - // Handle everything which isn't a DOM element node - if ( set ) { - elem[ name ] = value; + }, + + removeAttr: function( elem, name ) { + var propName; + if ( elem.nodeType === 1 ) { + name = jQuery.attrFix[ name ] || name; + + if ( jQuery.support.getSetAttribute ) { + // Use removeAttribute in browsers that support it + elem.removeAttribute( name ); + } else { + jQuery.attr( elem, name, "" ); + elem.removeAttributeNode( elem.getAttributeNode( name ) ); + } + + // Set corresponding property to false for boolean attributes + if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { + elem[ propName ] = false; + } } - return elem[ name ]; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to it's default in case type is set after value + // This is for element creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + }, + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabIndex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return undefined; + } + + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // Try to normalize/fix the name + name = notxml && jQuery.propFix[ name ] || name; + + hooks = jQuery.propHooks[ name ]; + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return (elem[ name ] = value); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: {} +}); + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + // Align boolean attributes with corresponding properties + return elem[ jQuery.propFix[ name ] || name ] ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + var propName; + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + // value is true since we know at this point it's type boolean and not false + // Set boolean attributes to the same name and set the DOM property + propName = jQuery.propFix[ name ] || name; + if ( propName in elem ) { + // Only set the IDL specifically if it already exists on the element + elem[ propName ] = value; + } + + elem.setAttribute( name, name.toLowerCase() ); + } + return name; } +}; + +// Use the value property for back compat +// Use the formHook for button elements in IE6/7 (#1954) +jQuery.attrHooks.value = { + get: function( elem, name ) { + if ( formHook && jQuery.nodeName( elem, "button" ) ) { + return formHook.get( elem, name ); + } + return elem.value; + }, + set: function( elem, value, name ) { + if ( formHook && jQuery.nodeName( elem, "button" ) ) { + return formHook.set( elem, value, name ); + } + // Does not return so that setAttribute is also used + elem.value = value; + } +}; + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !jQuery.support.getSetAttribute ) { + + // propFix is more comprehensive and contains all fixes + jQuery.attrFix = jQuery.propFix; + + // Use this for any attribute on a form in IE6/7 + formHook = jQuery.attrHooks.name = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret; + ret = elem.getAttributeNode( name ); + // Return undefined if nodeValue is empty string + return ret && ret.nodeValue !== "" ? + ret.nodeValue : + undefined; + }, + set: function( elem, value, name ) { + // Check form objects in IE (multiple bugs related) + // Only use nodeValue if the attribute node exists on the form + var ret = elem.getAttributeNode( name ); + if ( ret ) { + ret.nodeValue = value; + return value; + } + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); +} + + +// Some attributes require a special call on IE +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret === null ? undefined : ret; + } + }); + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Normalize to lowercase since IE uppercases css property names + return elem.style.cssText.toLowerCase() || undefined; + }, + set: function( elem, value ) { + return (elem.style.cssText = "" + value); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }); +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0); + } + } + }); }); -var rnamespaces = /\.(.*)$/, +var hasOwn = Object.prototype.hasOwnProperty, + rnamespaces = /\.(.*)$/, rformElems = /^(?:textarea|input|select)$/i, rperiod = /\./g, - rspace = / /g, + rspaces = / /g, rescape = /[^\w\s.|`]/g, fcleanup = function( nm ) { return nm.replace(rescape, "\\$&"); @@ -2153,17 +2517,6 @@ jQuery.event = { return; } - // TODO :: Use a try/catch until it's safe to pull this out (likely 1.6) - // Minor release fix for bug #8018 - try { - // For whatever reason, IE has trouble passing the window object - // around, causing it to be cloned in the process - if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) { - elem = window; - } - } - catch ( e ) {} - if ( handler === false ) { handler = returnFalse; } else if ( !handler ) { @@ -2201,9 +2554,9 @@ jQuery.event = { if ( !eventHandle ) { elemData.handle = eventHandle = function( e ) { - // Handle the second event of a trigger and when - // an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? jQuery.event.handle.apply( eventHandle.elem, arguments ) : undefined; }; @@ -2273,7 +2626,7 @@ jQuery.event = { // Add the function to the element's handler list handlers.push( handleObj ); - // Keep track of which events have been used, for global triggering + // Keep track of which events have been used, for event optimization jQuery.event.global[ type ] = true; } @@ -2406,182 +2759,185 @@ jQuery.event = { } } }, + + // Events that are safe to short-circuit if no handlers are attached. + // Native DOM events should not be added, they may have inline handlers. + customEvent: { + "getData": true, + "setData": true, + "changeData": true + }, - // bubbling is internal - trigger: function( event, data, elem /*, bubbling */ ) { + trigger: function( event, data, elem, onlyHandlers ) { // Event object or event type var type = event.type || event, - bubbling = arguments[3]; + namespaces = [], + exclusive; - if ( !bubbling ) { - event = typeof event === "object" ? - // jQuery.Event object - event[ jQuery.expando ] ? event : - // Object literal - jQuery.extend( jQuery.Event(type), event ) : - // Just the event type (string) - jQuery.Event(type); - - if ( type.indexOf("!") >= 0 ) { - event.type = type = type.slice(0, -1); - event.exclusive = true; - } - - // Handle a global trigger - if ( !elem ) { - // Don't bubble custom events when global (to avoid too much overhead) - event.stopPropagation(); - - // Only trigger if we've ever bound an event for it - if ( jQuery.event.global[ type ] ) { - // XXX This code smells terrible. event.js should not be directly - // inspecting the data cache - jQuery.each( jQuery.cache, function() { - // internalKey variable is just used to make it easier to find - // and potentially change this stuff later; currently it just - // points to jQuery.expando - var internalKey = jQuery.expando, - internalCache = this[ internalKey ]; - if ( internalCache && internalCache.events && internalCache.events[ type ] ) { - jQuery.event.trigger( event, data, internalCache.handle.elem ); - } - }); - } - } - - // Handle triggering a single element - - // don't do events on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { - return undefined; - } - - // Clean up in case it is reused - event.result = undefined; - event.target = elem; - - // Clone the incoming data, if any - data = jQuery.makeArray( data ); - data.unshift( event ); + if ( type.indexOf("!") >= 0 ) { + // Exclusive events trigger only for the exact event (no namespaces) + type = type.slice(0, -1); + exclusive = true; } - event.currentTarget = elem; - - // Trigger the event, it is assumed that "handle" is a function - var handle = jQuery._data( elem, "handle" ); - - if ( handle ) { - handle.apply( elem, data ); + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); } - var parent = elem.parentNode || elem.ownerDocument; + if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { + // No jQuery handlers for this event type, and it can't have inline handlers + return; + } - // Trigger an inline bound script - try { - if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { - if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) { - event.result = false; - event.preventDefault(); + // Caller can pass in an Event, Object, or just an event type string + event = typeof event === "object" ? + // jQuery.Event object + event[ jQuery.expando ] ? event : + // Object literal + new jQuery.Event( type, event ) : + // Just the event type (string) + new jQuery.Event( type ); + + event.type = type; + event.exclusive = exclusive; + event.namespace = namespaces.join("."); + event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); + + // triggerHandler() and global events don't bubble or run the default action + if ( onlyHandlers || !elem ) { + event.preventDefault(); + event.stopPropagation(); + } + + // Handle a global trigger + if ( !elem ) { + // TODO: Stop taunting the data cache; remove global events and always attach to document + jQuery.each( jQuery.cache, function() { + // internalKey variable is just used to make it easier to find + // and potentially change this stuff later; currently it just + // points to jQuery.expando + var internalKey = jQuery.expando, + internalCache = this[ internalKey ]; + if ( internalCache && internalCache.events && internalCache.events[ type ] ) { + jQuery.event.trigger( event, data, internalCache.handle.elem ); } + }); + return; + } + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // Clean up the event in case it is being reused + event.result = undefined; + event.target = elem; + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data ? jQuery.makeArray( data ) : []; + data.unshift( event ); + + var cur = elem, + // IE doesn't like method names with a colon (#3533, #8272) + ontype = type.indexOf(":") < 0 ? "on" + type : ""; + + // Fire event on the current element, then bubble up the DOM tree + do { + var handle = jQuery._data( cur, "handle" ); + + event.currentTarget = cur; + if ( handle ) { + handle.apply( cur, data ); } - // prevent IE from throwing an error for some elements with some event types, see #3533 - } catch (inlineError) {} + // Trigger an inline bound script + if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { + event.result = false; + event.preventDefault(); + } - if ( !event.isPropagationStopped() && parent ) { - jQuery.event.trigger( event, data, parent, true ); + // Bubble up to document, then to window + cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window; + } while ( cur && !event.isPropagationStopped() ); - } else if ( !event.isDefaultPrevented() ) { + // If nobody prevented the default action, do it now + if ( !event.isDefaultPrevented() ) { var old, - target = event.target, - targetType = type.replace( rnamespaces, "" ), - isClick = jQuery.nodeName( target, "a" ) && targetType === "click", - special = jQuery.event.special[ targetType ] || {}; + special = jQuery.event.special[ type ] || {}; - if ( (!special._default || special._default.call( elem, event ) === false) && - !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { + if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction)() check here because IE6/7 fails that test. + // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch. try { - if ( target[ targetType ] ) { - // Make sure that we don't accidentally re-trigger the onFOO events - old = target[ "on" + targetType ]; + if ( ontype && elem[ type ] ) { + // Don't re-trigger an onFOO event when we call its FOO() method + old = elem[ ontype ]; if ( old ) { - target[ "on" + targetType ] = null; + elem[ ontype ] = null; } - jQuery.event.triggered = event.type; - target[ targetType ](); + jQuery.event.triggered = type; + elem[ type ](); } - - // prevent IE from throwing an error for some elements with some event types, see #3533 - } catch (triggerError) {} + } catch ( ieError ) {} if ( old ) { - target[ "on" + targetType ] = old; + elem[ ontype ] = old; } jQuery.event.triggered = undefined; } } + + return event.result; }, handle: function( event ) { - var all, handlers, namespaces, namespace_re, events, - namespace_sort = [], - args = jQuery.makeArray( arguments ); + event = jQuery.event.fix( event || window.event ); + // Snapshot the handlers list since a called handler may add/remove events. + var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0), + run_all = !event.exclusive && !event.namespace, + args = Array.prototype.slice.call( arguments, 0 ); - event = args[0] = jQuery.event.fix( event || window.event ); + // Use the fix-ed Event rather than the (read-only) native event + args[0] = event; event.currentTarget = this; - // Namespaced event handlers - all = event.type.indexOf(".") < 0 && !event.exclusive; + for ( var j = 0, l = handlers.length; j < l; j++ ) { + var handleObj = handlers[ j ]; - if ( !all ) { - namespaces = event.type.split("."); - event.type = namespaces.shift(); - namespace_sort = namespaces.slice(0).sort(); - namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)"); - } + // Triggered event must 1) be non-exclusive and have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event. + if ( run_all || event.namespace_re.test( handleObj.namespace ) ) { + // Pass in a reference to the handler function itself + // So that we can later remove it + event.handler = handleObj.handler; + event.data = handleObj.data; + event.handleObj = handleObj; - event.namespace = event.namespace || namespace_sort.join("."); + var ret = handleObj.handler.apply( this, args ); - events = jQuery._data(this, "events"); - - handlers = (events || {})[ event.type ]; - - if ( events && handlers ) { - // Clone the handlers to prevent manipulation - handlers = handlers.slice(0); - - for ( var j = 0, l = handlers.length; j < l; j++ ) { - var handleObj = handlers[ j ]; - - // Filter the functions by class - if ( all || namespace_re.test( handleObj.namespace ) ) { - // Pass in a reference to the handler function itself - // So that we can later remove it - event.handler = handleObj.handler; - event.data = handleObj.data; - event.handleObj = handleObj; - - var ret = handleObj.handler.apply( this, args ); - - if ( ret !== undefined ) { - event.result = ret; - if ( ret === false ) { - event.preventDefault(); - event.stopPropagation(); - } + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); } + } - if ( event.isImmediatePropagationStopped() ) { - break; - } + if ( event.isImmediatePropagationStopped() ) { + break; } } } - return event.result; }, @@ -2620,8 +2976,9 @@ jQuery.event = { // Calculate pageX/Y if missing and clientX/Y available if ( event.pageX == null && event.clientX != null ) { - var doc = document.documentElement, - body = document.body; + var eventDocument = event.target.ownerDocument || document, + doc = eventDocument.documentElement, + body = eventDocument.body; event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); @@ -2700,10 +3057,10 @@ jQuery.removeEvent = document.removeEventListener ? } }; -jQuery.Event = function( src ) { +jQuery.Event = function( src, props ) { // Allow instantiation without the 'new' keyword if ( !this.preventDefault ) { - return new jQuery.Event( src ); + return new jQuery.Event( src, props ); } // Event object @@ -2721,6 +3078,11 @@ jQuery.Event = function( src ) { this.type = src; } + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + // timeStamp is buggy for some events on Firefox(#3843) // So we won't rely on the native value this.timeStamp = jQuery.now(); @@ -2785,6 +3147,9 @@ var withinElement = function( event ) { // Check if mouse(over|out) are still within the same parent element var parent = event.relatedTarget; + // set the correct event type + event.type = event.data; + // Firefox sometimes assigns relatedTarget a XUL element // which we cannot access the parentNode property of try { @@ -2794,15 +3159,13 @@ var withinElement = function( event ) { if ( parent && parent !== document && !parent.parentNode ) { return; } + // Traverse up the tree while ( parent && parent !== this ) { parent = parent.parentNode; } if ( parent !== this ) { - // set the correct event type - event.type = event.data; - // handle event if we actually just moused on to a non sub-element jQuery.event.handle.apply( this, arguments ); } @@ -2838,7 +3201,7 @@ if ( !jQuery.support.submitBubbles ) { jQuery.event.special.submit = { setup: function( data, namespaces ) { - if ( this.nodeName && this.nodeName.toLowerCase() !== "form" ) { + if ( !jQuery.nodeName( this, "form" ) ) { jQuery.event.add(this, "click.specialSubmit", function( e ) { var elem = e.target, type = elem.type; @@ -2887,7 +3250,7 @@ if ( !jQuery.support.changeBubbles ) { }).join("-") : ""; - } else if ( elem.nodeName.toLowerCase() === "select" ) { + } else if ( jQuery.nodeName( elem, "select" ) ) { val = elem.selectedIndex; } @@ -2927,9 +3290,9 @@ if ( !jQuery.support.changeBubbles ) { beforedeactivate: testChange, click: function( e ) { - var elem = e.target, type = elem.type; + var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { + if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) { testChange.call( this, e ); } }, @@ -2937,9 +3300,9 @@ if ( !jQuery.support.changeBubbles ) { // Change has to be called before submit // Keydown will be called before keypress, which is used in submit-event delegation keydown: function( e ) { - var elem = e.target, type = elem.type; + var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") || + if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) || (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || type === "select-multiple" ) { testChange.call( this, e ); @@ -2996,12 +3359,12 @@ function trigger( type, elem, args ) { } // Create "bubbling" focus and blur events -if ( document.addEventListener ) { +if ( !jQuery.support.focusinBubbles ) { jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - + // Attach a single capturing handler while someone wants focusin/focusout var attaches = 0; - + jQuery.event.special[ fix ] = { setup: function() { if ( attaches++ === 0 ) { @@ -3031,6 +3394,8 @@ if ( document.addEventListener ) { jQuery.each(["bind", "one"], function( i, name ) { jQuery.fn[ name ] = function( type, data, fn ) { + var handler; + // Handle object literals if ( typeof type === "object" ) { for ( var key in type ) { @@ -3039,15 +3404,20 @@ jQuery.each(["bind", "one"], function( i, name ) { return this; } - if ( jQuery.isFunction( data ) || data === false ) { + if ( arguments.length === 2 || data === false ) { fn = data; data = undefined; } - var handler = name === "one" ? jQuery.proxy( fn, function( event ) { - jQuery( this ).unbind( event, handler ); - return fn.apply( this, arguments ); - }) : fn; + if ( name === "one" ) { + handler = function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }; + handler.guid = fn.guid || jQuery.guid++; + } else { + handler = fn; + } if ( type === "unload" && name !== "one" ) { this.one( type, data, fn ); @@ -3085,7 +3455,7 @@ jQuery.fn.extend({ undelegate: function( selector, types, fn ) { if ( arguments.length === 0 ) { - return this.unbind( "live" ); + return this.unbind( "live" ); } else { return this.die( types, null, fn, selector ); @@ -3100,35 +3470,34 @@ jQuery.fn.extend({ triggerHandler: function( type, data ) { if ( this[0] ) { - var event = jQuery.Event( type ); - event.preventDefault(); - event.stopPropagation(); - jQuery.event.trigger( event, data, this[0] ); - return event.result; + return jQuery.event.trigger( type, data, this[0], true ); } }, toggle: function( fn ) { // Save reference to arguments for access in closure var args = arguments, - i = 1; + guid = fn.guid || jQuery.guid++, + i = 0, + toggler = function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + }; // link all the functions, so any of them can unbind this click handler + toggler.guid = guid; while ( i < args.length ) { - jQuery.proxy( fn, args[ i++ ] ); + args[ i++ ].guid = guid; } - return this.click( jQuery.proxy( fn, function( event ) { - // Figure out which function to execute - var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; - jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); - - // Make sure that clicks stop - event.preventDefault(); - - // and execute the function - return args[ lastToggle ].apply( this, arguments ) || false; - })); + return this.click( toggler ); }, hover: function( fnOver, fnOut ) { @@ -3157,8 +3526,16 @@ jQuery.each(["live", "die"], function( i, name ) { return this; } - if ( jQuery.isFunction( data ) ) { - fn = data; + if ( name === "die" && !types && + origSelector && origSelector.charAt(0) === "." ) { + + context.unbind( origSelector ); + + return this; + } + + if ( data === false || jQuery.isFunction( data ) ) { + fn = data || returnFalse; data = undefined; } @@ -3180,7 +3557,7 @@ jQuery.each(["live", "die"], function( i, name ) { preType = type; - if ( type === "focus" || type === "blur" ) { + if ( liveMap[ type ] ) { types.push( liveMap[ type ] + namespaces ); type = type + namespaces; @@ -3251,6 +3628,11 @@ function liveHandler( event ) { if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { event.type = handleObj.preType; related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; + + // Make sure not to accidentally match a child element with the same selector + if ( related && jQuery.contains( elem, related ) ) { + related = elem; + } } if ( !related || related !== elem ) { @@ -3289,7 +3671,7 @@ function liveHandler( event ) { } function liveConvert( type, selector ) { - return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&"); + return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&"); } jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + @@ -3314,6 +3696,7 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl }); + /*! * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation @@ -3941,42 +4324,50 @@ var Expr = Sizzle.selectors = { var attr = elem.getAttribute( "type" ), type = elem.type; // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) // use getAttribute instead to test this case - return "text" === type && ( attr === type || attr === null ); + return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); }, radio: function( elem ) { - return "radio" === elem.type; + return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; }, checkbox: function( elem ) { - return "checkbox" === elem.type; + return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; }, file: function( elem ) { - return "file" === elem.type; + return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; }, + password: function( elem ) { - return "password" === elem.type; + return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; }, submit: function( elem ) { - return "submit" === elem.type; + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && "submit" === elem.type; }, image: function( elem ) { - return "image" === elem.type; + return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; }, reset: function( elem ) { - return "reset" === elem.type; + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && "reset" === elem.type; }, button: function( elem ) { - return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; + var name = elem.nodeName.toLowerCase(); + return name === "input" && "button" === elem.type || name === "button"; }, input: function( elem ) { return (/input|select|textarea|button/i).test( elem.nodeName ); + }, + + focus: function( elem ) { + return elem === elem.ownerDocument.activeElement; } }, setFilters: { @@ -4229,6 +4620,16 @@ if ( document.documentElement.compareDocumentPosition ) { } else { sortOrder = function( a, b ) { + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Fallback to using sourceIndex (in IE) if it's available on both nodes + } else if ( a.sourceIndex && b.sourceIndex ) { + return a.sourceIndex - b.sourceIndex; + } + var al, bl, ap = [], bp = [], @@ -4236,13 +4637,8 @@ if ( document.documentElement.compareDocumentPosition ) { bup = b.parentNode, cur = aup; - // The nodes are identical, we can exit early - if ( a === b ) { - hasDuplicate = true; - return 0; - // If the nodes are siblings (or identical) we can do a quick check - } else if ( aup === bup ) { + if ( aup === bup ) { return siblingCheck( a, b ); // If no parents were found then the nodes are disconnected @@ -4739,17 +5135,30 @@ var runtil = /Until$/, jQuery.fn.extend({ find: function( selector ) { - var ret = this.pushStack( "", "find", selector ), - length = 0; + var self = this, + i, l; - for ( var i = 0, l = this.length; i < l; i++ ) { + if ( typeof selector !== "string" ) { + return jQuery( selector ).filter(function() { + for ( i = 0, l = self.length; i < l; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }); + } + + var ret = this.pushStack( "", "find", selector ), + length, n, r; + + for ( i = 0, l = this.length; i < l; i++ ) { length = ret.length; jQuery.find( selector, this[i], ret ); if ( i > 0 ) { // Make sure that the results are unique - for ( var n = length; n < ret.length; n++ ) { - for ( var r = 0; r < length; r++ ) { + for ( n = length; n < ret.length; n++ ) { + for ( r = 0; r < length; r++ ) { if ( ret[r] === ret[n] ) { ret.splice(n--, 1); break; @@ -4782,12 +5191,15 @@ jQuery.fn.extend({ }, is: function( selector ) { - return !!selector && jQuery.filter( selector, this ).length > 0; + return !!selector && ( typeof selector === "string" ? + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); }, closest: function( selectors, context ) { var ret = [], i, l, cur = this[0]; - + + // Array if ( jQuery.isArray( selectors ) ) { var match, selector, matches = {}, @@ -4797,8 +5209,8 @@ jQuery.fn.extend({ for ( i = 0, l = selectors.length; i < l; i++ ) { selector = selectors[i]; - if ( !matches[selector] ) { - matches[selector] = jQuery.expr.match.POS.test( selector ) ? + if ( !matches[ selector ] ) { + matches[ selector ] = POS.test( selector ) ? jQuery( selector, context || this.context ) : selector; } @@ -4806,9 +5218,9 @@ jQuery.fn.extend({ while ( cur && cur.ownerDocument && cur !== context ) { for ( selector in matches ) { - match = matches[selector]; + match = matches[ selector ]; - if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { + if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { ret.push({ selector: selector, elem: cur, level: level }); } } @@ -4821,8 +5233,10 @@ jQuery.fn.extend({ return ret; } - var pos = POS.test( selectors ) ? - jQuery( selectors, context || this.context ) : null; + // String + var pos = POS.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; for ( i = 0, l = this.length; i < l; i++ ) { cur = this[i]; @@ -4834,14 +5248,14 @@ jQuery.fn.extend({ } else { cur = cur.parentNode; - if ( !cur || !cur.ownerDocument || cur === context ) { + if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { break; } } } } - ret = ret.length > 1 ? jQuery.unique(ret) : ret; + ret = ret.length > 1 ? jQuery.unique( ret ) : ret; return this.pushStack( ret, "closest", selectors ); }, @@ -4864,7 +5278,7 @@ jQuery.fn.extend({ add: function( selector, context ) { var set = typeof selector === "string" ? jQuery( selector, context ) : - jQuery.makeArray( selector ), + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), all = jQuery.merge( this.get(), set ); return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? @@ -5002,6 +5416,11 @@ jQuery.extend({ // Implement the identical functionality for filter and not function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + if ( jQuery.isFunction( qualifier ) ) { return jQuery.grep(elements, function( elem, i ) { var retVal = !!qualifier.call( elem, i, elem ); @@ -5042,6 +5461,8 @@ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, rnocache = /<(?:script|object|embed|option|style)/i, // checked="checked" or checked rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /\/(java|ecma)script/i, + rcleanScript = /^\s*", "" ], legend: [ 1, "
", "
" ], @@ -5102,7 +5523,7 @@ jQuery.fn.extend({ } return elem; - }).append(this); + }).append( this ); } return this; @@ -5410,21 +5831,27 @@ function cloneCopyEvent( src, dest ) { } } -function cloneFixAttributes(src, dest) { +function cloneFixAttributes( src, dest ) { + var nodeName; + // We do not need to do anything for non-Elements if ( dest.nodeType !== 1 ) { return; } - var nodeName = dest.nodeName.toLowerCase(); - // clearAttributes removes the attributes, which we don't want, // but also removes the attachEvent events, which we *do* want - dest.clearAttributes(); + if ( dest.clearAttributes ) { + dest.clearAttributes(); + } // mergeAttributes, in contrast, only merges back on the // original attributes, not the events - dest.mergeAttributes(src); + if ( dest.mergeAttributes ) { + dest.mergeAttributes( src ); + } + + nodeName = dest.nodeName.toLowerCase(); // IE6-8 fail to clone children inside object elements that use // the proprietary classid attribute value (rather than the type @@ -5474,11 +5901,10 @@ jQuery.buildFragment = function( args, nodes, scripts ) { args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) { cacheable = true; + cacheresults = jQuery.fragments[ args[0] ]; - if ( cacheresults ) { - if ( cacheresults !== 1 ) { - fragment = cacheresults; - } + if ( cacheresults && cacheresults !== 1 ) { + fragment = cacheresults; } } @@ -5527,7 +5953,7 @@ jQuery.each({ function getAll( elem ) { if ( "getElementsByTagName" in elem ) { return elem.getElementsByTagName( "*" ); - + } else if ( "querySelectorAll" in elem ) { return elem.querySelectorAll( "*" ); @@ -5536,6 +5962,21 @@ function getAll( elem ) { } } +// Used in clean, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( elem.type === "checkbox" || elem.type === "radio" ) { + elem.defaultChecked = elem.checked; + } +} +// Finds all inputs and passes them to fixDefaultChecked +function findInputs( elem ) { + if ( jQuery.nodeName( elem, "input" ) ) { + fixDefaultChecked( elem ); + } else if ( elem.getElementsByTagName ) { + jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); + } +} + jQuery.extend({ clone: function( elem, dataAndEvents, deepDataAndEvents ) { var clone = elem.cloneNode(true), @@ -5582,8 +6023,11 @@ jQuery.extend({ // Return the cloned set return clone; -}, + }, + clean: function( elems, context, fragment, scripts ) { + var checkScriptType; + context = context || document; // !context.createElement fails in IE with an error but returns typeof 'object' @@ -5591,7 +6035,7 @@ jQuery.extend({ context = context.ownerDocument || context[0] && context[0].ownerDocument || document; } - var ret = []; + var ret = [], j; for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { if ( typeof elem === "number" ) { @@ -5603,54 +6047,67 @@ jQuery.extend({ } // Convert html string into DOM nodes - if ( typeof elem === "string" && !rhtml.test( elem ) ) { - elem = context.createTextNode( elem ); + if ( typeof elem === "string" ) { + if ( !rhtml.test( elem ) ) { + elem = context.createTextNode( elem ); + } else { + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(rxhtmlTag, "<$1>"); - } else if ( typeof elem === "string" ) { - // Fix "XHTML"-style tags in all browsers - elem = elem.replace(rxhtmlTag, "<$1>"); + // Trim whitespace, otherwise indexOf won't work as expected + var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), + wrap = wrapMap[ tag ] || wrapMap._default, + depth = wrap[0], + div = context.createElement("div"); - // Trim whitespace, otherwise indexOf won't work as expected - var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), - wrap = wrapMap[ tag ] || wrapMap._default, - depth = wrap[0], - div = context.createElement("div"); + // Go to html and back, then peel off extra wrappers + div.innerHTML = wrap[1] + elem + wrap[2]; - // Go to html and back, then peel off extra wrappers - div.innerHTML = wrap[1] + elem + wrap[2]; + // Move to the right depth + while ( depth-- ) { + div = div.lastChild; + } - // Move to the right depth - while ( depth-- ) { - div = div.lastChild; - } + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { - // Remove IE's autoinserted from table fragments - if ( !jQuery.support.tbody ) { + // String was a , *may* have spurious + var hasBody = rtbody.test(elem), + tbody = tag === "table" && !hasBody ? + div.firstChild && div.firstChild.childNodes : - // String was a
, *may* have spurious - var hasBody = rtbody.test(elem), - tbody = tag === "table" && !hasBody ? - div.firstChild && div.firstChild.childNodes : + // String was a bare or + wrap[1] === "
" && !hasBody ? + div.childNodes : + []; - // String was a bare or - wrap[1] === "
" && !hasBody ? - div.childNodes : - []; - - for ( var j = tbody.length - 1; j >= 0 ; --j ) { - if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { - tbody[ j ].parentNode.removeChild( tbody[ j ] ); + for ( j = tbody.length - 1; j >= 0 ; --j ) { + if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { + tbody[ j ].parentNode.removeChild( tbody[ j ] ); + } } } - } + // IE completely kills leading whitespace when innerHTML is used + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + } - // IE completely kills leading whitespace when innerHTML is used - if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + elem = div.childNodes; } + } - elem = div.childNodes; + // Resets defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + var len; + if ( !jQuery.support.appendChecked ) { + if ( elem[0] && typeof (len = elem.length) === "number" ) { + for ( j = 0; j < len; j++ ) { + findInputs( elem[j] ); + } + } else { + findInputs( elem ); + } } if ( elem.nodeType ) { @@ -5661,13 +6118,18 @@ jQuery.extend({ } if ( fragment ) { + checkScriptType = function( elem ) { + return !elem.type || rscriptType.test( elem.type ); + }; for ( i = 0; ret[i]; i++ ) { if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); } else { if ( ret[i].nodeType === 1 ) { - ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); + var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType ); + + ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); } fragment.appendChild( ret[i] ); } @@ -5729,7 +6191,7 @@ function evalScript( i, elem ) { dataType: "script" }); } else { - jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); + jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) ); } if ( elem.parentNode ) { @@ -5747,6 +6209,8 @@ var ralpha = /alpha\([^)]*\)/i, rupper = /([A-Z]|^ms)/g, rnumpx = /^-?\d+(?:px)?$/i, rnum = /^-?\d/, + rrelNum = /^[+\-]=/, + rrelNumFilter = /[^+\-\.\de]+/g, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssWidth = [ "Left", "Right" ], @@ -5797,7 +6261,9 @@ jQuery.extend({ "fontWeight": true, "opacity": true, "zoom": true, - "lineHeight": true + "lineHeight": true, + "widows": true, + "orphans": true }, // Add in properties whose names you wish to fix before @@ -5815,20 +6281,27 @@ jQuery.extend({ } // Make sure that we're working with the right name - var ret, origName = jQuery.camelCase( name ), + var ret, type, origName = jQuery.camelCase( name ), style = elem.style, hooks = jQuery.cssHooks[ origName ]; name = jQuery.cssProps[ origName ] || origName; // Check if we're setting a value if ( value !== undefined ) { + type = typeof value; + // Make sure that NaN and null values aren't set. See: #7116 - if ( typeof value === "number" && isNaN( value ) || value == null ) { + if ( type === "number" && isNaN( value ) || value == null ) { return; } + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && rrelNum.test( value ) ) { + value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) ); + } + // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) { + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { value += "px"; } @@ -5853,11 +6326,17 @@ jQuery.extend({ }, css: function( elem, name, extra ) { - // Make sure that we're working with the right name - var ret, origName = jQuery.camelCase( name ), - hooks = jQuery.cssHooks[ origName ]; + var ret, hooks; - name = jQuery.cssProps[ origName ] || origName; + // Make sure that we're working with the right name + name = jQuery.camelCase( name ); + hooks = jQuery.cssHooks[ name ]; + name = jQuery.cssProps[ name ] || name; + + // cssFloat needs a special treatment + if ( name === "cssFloat" ) { + name = "float"; + } // If a hook was provided get the computed value from there if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { @@ -5865,7 +6344,7 @@ jQuery.extend({ // Otherwise, if a way to get the computed value exists, use that } else if ( curCSS ) { - return curCSS( elem, name, origName ); + return curCSS( elem, name ); } }, @@ -5956,27 +6435,28 @@ if ( !jQuery.support.opacity ) { jQuery.cssHooks.opacity = { get: function( elem, computed ) { // IE uses filters for opacity - return ropacity.test((computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ? - (parseFloat(RegExp.$1) / 100) + "" : + return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? + ( parseFloat( RegExp.$1 ) / 100 ) + "" : computed ? "1" : ""; }, set: function( elem, value ) { - var style = elem.style; + var style = elem.style, + currentStyle = elem.currentStyle; // IE has trouble with opacity if it does not have layout // Force it by setting the zoom level style.zoom = 1; // Set the alpha filter to set the opacity - var opacity = jQuery.isNaN(value) ? + var opacity = jQuery.isNaN( value ) ? "" : "alpha(opacity=" + value * 100 + ")", - filter = style.filter || ""; + filter = currentStyle && currentStyle.filter || style.filter || ""; - style.filter = ralpha.test(filter) ? - filter.replace(ralpha, opacity) : - style.filter + ' ' + opacity; + style.filter = ralpha.test( filter ) ? + filter.replace( ralpha, opacity ) : + filter + " " + opacity; } }; } @@ -6004,7 +6484,7 @@ jQuery(function() { }); if ( document.defaultView && document.defaultView.getComputedStyle ) { - getComputedStyle = function( elem, newName, name ) { + getComputedStyle = function( elem, name ) { var ret, defaultView, computedStyle; name = name.replace( rupper, "-$1" ).toLowerCase(); @@ -6115,10 +6595,6 @@ var r20 = /%20/g, rselectTextarea = /^(?:select|textarea)/i, rspacesAjax = /\s+/, rts = /([?&])_=[^&]*/, - rucHeaders = /(^|\-)([a-z])/g, - rucHeadersFunc = function( _, $1, $2 ) { - return $1 + $2.toUpperCase(); - }, rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, // Keep a copy of the old load method @@ -6149,9 +6625,9 @@ var r20 = /%20/g, ajaxLocParts; // #8138, IE may throw an exception when accessing -// a field from document.location if document.domain has been set +// a field from window.location if document.domain has been set try { - ajaxLocation = document.location.href; + ajaxLocation = location.href; } catch( e ) { // Use the href attribute of an A element // since IE will modify it given document.location @@ -6199,7 +6675,7 @@ function addToPrefiltersOrTransports( structure ) { }; } -//Base inspection function for prefilters and transports +// Base inspection function for prefilters and transports function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR, dataType /* internal */, inspected /* internal */ ) { @@ -6348,7 +6824,7 @@ jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".sp jQuery.fn[ o ] = function( f ){ return this.bind( o, f ); }; -} ); +}); jQuery.each( [ "get", "post" ], function( i, method ) { jQuery[ method ] = function( url, data, callback, type ) { @@ -6367,7 +6843,7 @@ jQuery.each( [ "get", "post" ], function( i, method ) { dataType: type }); }; -} ); +}); jQuery.extend({ @@ -6493,6 +6969,7 @@ jQuery.extend({ ifModifiedKey, // Headers (they are sent all at once) requestHeaders = {}, + requestHeadersNames = {}, // Response headers responseHeadersString, responseHeaders, @@ -6516,7 +6993,9 @@ jQuery.extend({ // Caches the header setRequestHeader: function( name, value ) { if ( !state ) { - requestHeaders[ name.toLowerCase().replace( rucHeaders, rucHeadersFunc ) ] = value; + var lname = name.toLowerCase(); + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; } return this; }, @@ -6764,24 +7243,27 @@ jQuery.extend({ // Set the correct header, if data is being sent if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - requestHeaders[ "Content-Type" ] = s.contentType; + jqXHR.setRequestHeader( "Content-Type", s.contentType ); } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { ifModifiedKey = ifModifiedKey || s.url; if ( jQuery.lastModified[ ifModifiedKey ] ) { - requestHeaders[ "If-Modified-Since" ] = jQuery.lastModified[ ifModifiedKey ]; + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); } if ( jQuery.etag[ ifModifiedKey ] ) { - requestHeaders[ "If-None-Match" ] = jQuery.etag[ ifModifiedKey ]; + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); } } // Set the Accepts header for the server, depending on the dataType - requestHeaders.Accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? - s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : - s.accepts[ "*" ]; + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : + s.accepts[ "*" ] + ); // Check for headers option for ( i in s.headers ) { @@ -6857,7 +7339,7 @@ jQuery.extend({ // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); - } ); + }); } else { // If traditional, encode the "old" way (the way 1.3.2 or older @@ -6873,7 +7355,7 @@ jQuery.extend({ }); function buildParams( prefix, obj, traditional, add ) { - if ( jQuery.isArray( obj ) && obj.length ) { + if ( jQuery.isArray( obj ) ) { // Serialize array item. jQuery.each( obj, function( i, v ) { if ( traditional || rbracket.test( prefix ) ) { @@ -6893,16 +7375,9 @@ function buildParams( prefix, obj, traditional, add ) { }); } else if ( !traditional && obj != null && typeof obj === "object" ) { - // If we see an array here, it is empty and should be treated as an empty - // object - if ( jQuery.isArray( obj ) || jQuery.isEmptyObject( obj ) ) { - add( prefix, "" ); - // Serialize object item. - } else { - for ( var name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } + for ( var name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); } } else { @@ -7095,13 +7570,12 @@ jQuery.ajaxSetup({ // Detect, normalize options and install callbacks for jsonp requests jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { - var dataIsString = ( typeof s.data === "string" ); + var inspectData = s.contentType === "application/x-www-form-urlencoded" && + ( typeof s.data === "string" ); if ( s.dataTypes[ 0 ] === "jsonp" || - originalSettings.jsonpCallback || - originalSettings.jsonp != null || s.jsonp !== false && ( jsre.test( s.url ) || - dataIsString && jsre.test( s.data ) ) ) { + inspectData && jsre.test( s.data ) ) ) { var responseContainer, jsonpCallback = s.jsonpCallback = @@ -7109,20 +7583,12 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { previous = window[ jsonpCallback ], url = s.url, data = s.data, - replace = "$1" + jsonpCallback + "$2", - cleanUp = function() { - // Set callback back to previous value - window[ jsonpCallback ] = previous; - // Call if it was a function and we have a response - if ( responseContainer && jQuery.isFunction( previous ) ) { - window[ jsonpCallback ]( responseContainer[ 0 ] ); - } - }; + replace = "$1" + jsonpCallback + "$2"; if ( s.jsonp !== false ) { url = url.replace( jsre, replace ); if ( s.url === url ) { - if ( dataIsString ) { + if ( inspectData ) { data = data.replace( jsre, replace ); } if ( s.data === data ) { @@ -7140,8 +7606,15 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { responseContainer = [ response ]; }; - // Install cleanUp function - jqXHR.then( cleanUp, cleanUp ); + // Clean-up function + jqXHR.always(function() { + // Set callback back to previous value + window[ jsonpCallback ] = previous; + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( previous ) ) { + window[ jsonpCallback ]( responseContainer[ 0 ] ); + } + }); // Use data converter to retrieve json after script execution s.converters["script json"] = function() { @@ -7157,7 +7630,7 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { // Delegate to script return "script"; } -} ); +}); @@ -7187,7 +7660,7 @@ jQuery.ajaxPrefilter( "script", function( s ) { s.type = "GET"; s.global = false; } -} ); +}); // Bind script tag hack transport jQuery.ajaxTransport( "script", function(s) { @@ -7215,7 +7688,7 @@ jQuery.ajaxTransport( "script", function(s) { // Attach handlers for all browsers script.onload = script.onreadystatechange = function( _, isAbort ) { - if ( !script.readyState || /loaded|complete/.test( script.readyState ) ) { + if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { // Handle memory leak in IE script.onload = script.onreadystatechange = null; @@ -7246,27 +7719,20 @@ jQuery.ajaxTransport( "script", function(s) { } }; } -} ); +}); -var // #5280: next active xhr id and list of active xhrs' callbacks - xhrId = jQuery.now(), - xhrCallbacks, - - // XHR used to determine supports properties - testXHR; - -// #5280: Internet Explorer will keep connections alive if we don't abort on unload -function xhrOnUnloadAbort() { - jQuery( window ).unload(function() { +var // #5280: Internet Explorer will keep connections alive if we don't abort on unload + xhrOnUnloadAbort = window.ActiveXObject ? function() { // Abort all pending requests for ( var key in xhrCallbacks ) { xhrCallbacks[ key ]( 0, 1 ); } - }); -} + } : false, + xhrId = 0, + xhrCallbacks; // Functions to create xhrs function createStandardXHR() { @@ -7296,15 +7762,13 @@ jQuery.ajaxSettings.xhr = window.ActiveXObject ? // For all other browsers, use the standard XMLHttpRequest object createStandardXHR; -// Test if we can create an xhr object -testXHR = jQuery.ajaxSettings.xhr(); -jQuery.support.ajax = !!testXHR; - -// Does this browser support crossDomain XHR requests -jQuery.support.cors = testXHR && ( "withCredentials" in testXHR ); - -// No need for the temporary xhr anymore -testXHR = undefined; +// Determine support properties +(function( xhr ) { + jQuery.extend( jQuery.support, { + ajax: !!xhr, + cors: !!xhr && ( "withCredentials" in xhr ) + }); +})( jQuery.ajaxSettings.xhr() ); // Create transport if the browser can provide an xhr if ( jQuery.support.ajax ) { @@ -7387,7 +7851,9 @@ if ( jQuery.support.ajax ) { // Do not keep as active anymore if ( handle ) { xhr.onreadystatechange = jQuery.noop; - delete xhrCallbacks[ handle ]; + if ( xhrOnUnloadAbort ) { + delete xhrCallbacks[ handle ]; + } } // If it's an abort @@ -7448,15 +7914,18 @@ if ( jQuery.support.ajax ) { if ( !s.async || xhr.readyState === 4 ) { callback(); } else { - // Create the active xhrs callbacks list if needed - // and attach the unload handler - if ( !xhrCallbacks ) { - xhrCallbacks = {}; - xhrOnUnloadAbort(); + handle = ++xhrId; + if ( xhrOnUnloadAbort ) { + // Create the active xhrs callbacks list if needed + // and attach the unload handler + if ( !xhrCallbacks ) { + xhrCallbacks = {}; + jQuery( window ).unload( xhrOnUnloadAbort ); + } + // Add to list of active xhrs callbacks + xhrCallbacks[ handle ] = callback; } - // Add to list of active xhrs callbacks - handle = xhrId++; - xhr.onreadystatechange = xhrCallbacks[ handle ] = callback; + xhr.onreadystatechange = callback; } }, @@ -7474,6 +7943,7 @@ if ( jQuery.support.ajax ) { var elemdisplay = {}, + iframe, iframeDoc, rfxtypes = /^(?:toggle|show|hide)$/, rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i, timerId, @@ -7484,7 +7954,11 @@ var elemdisplay = {}, [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ], // opacity animations [ "opacity" ] - ]; + ], + fxNow, + requestAnimationFrame = window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame; jQuery.fn.extend({ show: function( speed, easing, callback ) { @@ -7496,19 +7970,22 @@ jQuery.fn.extend({ } else { for ( var i = 0, j = this.length; i < j; i++ ) { elem = this[i]; - display = elem.style.display; - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { - display = elem.style.display = ""; - } + if ( elem.style ) { + display = elem.style.display; - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( display === "" && jQuery.css( elem, "display" ) === "none" ) { - jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName)); + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { + display = elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( display === "" && jQuery.css( elem, "display" ) === "none" ) { + jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName)); + } } } @@ -7516,10 +7993,13 @@ jQuery.fn.extend({ // to avoid the constant reflow for ( i = 0; i < j; i++ ) { elem = this[i]; - display = elem.style.display; - if ( display === "" || display === "none" ) { - elem.style.display = jQuery._data(elem, "olddisplay") || ""; + if ( elem.style ) { + display = elem.style.display; + + if ( display === "" || display === "none" ) { + elem.style.display = jQuery._data(elem, "olddisplay") || ""; + } } } @@ -7533,17 +8013,21 @@ jQuery.fn.extend({ } else { for ( var i = 0, j = this.length; i < j; i++ ) { - var display = jQuery.css( this[i], "display" ); + if ( this[i].style ) { + var display = jQuery.css( this[i], "display" ); - if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) { - jQuery._data( this[i], "olddisplay", display ); + if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) { + jQuery._data( this[i], "olddisplay", display ); + } } } // Set the display of the elements in a second loop // to avoid the constant reflow for ( i = 0; i < j; i++ ) { - this[i].style.display = "none"; + if ( this[i].style ) { + this[i].style.display = "none"; + } } return this; @@ -7581,32 +8065,54 @@ jQuery.fn.extend({ var optall = jQuery.speed(speed, easing, callback); if ( jQuery.isEmptyObject( prop ) ) { - return this.each( optall.complete ); + return this.each( optall.complete, [ false ] ); } + // Do not change referenced properties as per-property easing will be lost + prop = jQuery.extend( {}, prop ); + return this[ optall.queue === false ? "each" : "queue" ](function() { // XXX 'this' does not always have a nodeName when running the // test suite - var opt = jQuery.extend({}, optall), p, + if ( optall.queue === false ) { + jQuery._mark( this ); + } + + var opt = jQuery.extend( {}, optall ), isElement = this.nodeType === 1, hidden = isElement && jQuery(this).is(":hidden"), - self = this; + name, val, p, + display, e, + parts, start, end, unit; + + // will store per property easing and be used to determine when an animation is complete + opt.animatedProperties = {}; for ( p in prop ) { - var name = jQuery.camelCase( p ); + // property name normalization + name = jQuery.camelCase( p ); if ( p !== name ) { prop[ name ] = prop[ p ]; delete prop[ p ]; - p = name; } - if ( prop[p] === "hide" && hidden || prop[p] === "show" && !hidden ) { - return opt.complete.call(this); + val = prop[ name ]; + + // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default) + if ( jQuery.isArray( val ) ) { + opt.animatedProperties[ name ] = val[ 1 ]; + val = prop[ name ] = val[ 0 ]; + } else { + opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing'; } - if ( isElement && ( p === "height" || p === "width" ) ) { + if ( val === "hide" && hidden || val === "show" && !hidden ) { + return opt.complete.call( this ); + } + + if ( isElement && ( name === "height" || name === "width" ) ) { // Make sure that nothing sneaks out // Record all 3 overflow attributes because IE does not // change the overflow attribute when overflowX and @@ -7622,7 +8128,7 @@ jQuery.fn.extend({ this.style.display = "inline-block"; } else { - var display = defaultDisplay(this.nodeName); + display = defaultDisplay( this.nodeName ); // inline-level elements accept inline-block; // block-level elements need to be inline with layout @@ -7636,44 +8142,37 @@ jQuery.fn.extend({ } } } - - if ( jQuery.isArray( prop[p] ) ) { - // Create (if needed) and add to specialEasing - (opt.specialEasing = opt.specialEasing || {})[p] = prop[p][1]; - prop[p] = prop[p][0]; - } } if ( opt.overflow != null ) { this.style.overflow = "hidden"; } - opt.curAnim = jQuery.extend({}, prop); - - jQuery.each( prop, function( name, val ) { - var e = new jQuery.fx( self, opt, name ); + for ( p in prop ) { + e = new jQuery.fx( this, opt, p ); + val = prop[ p ]; if ( rfxtypes.test(val) ) { - e[ val === "toggle" ? hidden ? "show" : "hide" : val ]( prop ); + e[ val === "toggle" ? hidden ? "show" : "hide" : val ](); } else { - var parts = rfxnum.exec(val), - start = e.cur(); + parts = rfxnum.exec( val ); + start = e.cur(); if ( parts ) { - var end = parseFloat( parts[2] ), - unit = parts[3] || ( jQuery.cssNumber[ name ] ? "" : "px" ); + end = parseFloat( parts[2] ); + unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" ); // We need to compute starting value if ( unit !== "px" ) { - jQuery.style( self, name, (end || 1) + unit); + jQuery.style( this, p, (end || 1) + unit); start = ((end || 1) / e.cur()) * start; - jQuery.style( self, name, start + unit); + jQuery.style( this, p, start + unit); } // If a +=/-= token was provided, we're doing a relative animation if ( parts[1] ) { - end = ((parts[1] === "-=" ? -1 : 1) * end) + start; + end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start; } e.custom( start, end, unit ); @@ -7682,7 +8181,7 @@ jQuery.fn.extend({ e.custom( start, val, "" ); } } - }); + } // For JS strict compliance return true; @@ -7690,15 +8189,18 @@ jQuery.fn.extend({ }, stop: function( clearQueue, gotoEnd ) { - var timers = jQuery.timers; - if ( clearQueue ) { this.queue([]); } this.each(function() { - // go in reverse order so anything added to the queue during the loop is ignored - for ( var i = timers.length - 1; i >= 0; i-- ) { + var timers = jQuery.timers, + i = timers.length; + // clear marker counters if we know they won't be + if ( !gotoEnd ) { + jQuery._unmark( true, this ); + } + while ( i-- ) { if ( timers[i].elem === this ) { if (gotoEnd) { // force the next step to be the last @@ -7720,6 +8222,17 @@ jQuery.fn.extend({ }); +// Animations created synchronously will run synchronously +function createFxNow() { + setTimeout( clearFxNow, 0 ); + return ( fxNow = jQuery.now() ); +} + +function clearFxNow() { + fxNow = undefined; +} + +// Generate parameters to create a standard animation function genFx( type, num ) { var obj = {}; @@ -7758,10 +8271,13 @@ jQuery.extend({ // Queueing opt.old = opt.complete; - opt.complete = function() { + opt.complete = function( noUnmark ) { if ( opt.queue !== false ) { - jQuery(this).dequeue(); + jQuery.dequeue( this ); + } else if ( noUnmark !== false ) { + jQuery._unmark( this ); } + if ( jQuery.isFunction( opt.old ) ) { opt.old.call( this ); } @@ -7786,9 +8302,7 @@ jQuery.extend({ this.elem = elem; this.prop = prop; - if ( !options.orig ) { - options.orig = {}; - } + options.orig = options.orig || {}; } }); @@ -7820,9 +8334,10 @@ jQuery.fx.prototype = { // Start an animation from one number to another custom: function( from, to, unit ) { var self = this, - fx = jQuery.fx; + fx = jQuery.fx, + raf; - this.startTime = jQuery.now(); + this.startTime = fxNow || createFxNow(); this.start = from; this.end = to; this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" ); @@ -7836,7 +8351,20 @@ jQuery.fx.prototype = { t.elem = this.elem; if ( t() && jQuery.timers.push(t) && !timerId ) { - timerId = setInterval(fx.tick, fx.interval); + // Use requestAnimationFrame instead of setInterval if available + if ( requestAnimationFrame ) { + timerId = 1; + raf = function() { + // When timerId gets set to null at any point, this stops + if ( timerId ) { + requestAnimationFrame( raf ); + fx.tick(); + } + }; + requestAnimationFrame( raf ); + } else { + timerId = setInterval( fx.tick, fx.interval ); + } } }, @@ -7867,60 +8395,64 @@ jQuery.fx.prototype = { // Each step of an animation step: function( gotoEnd ) { - var t = jQuery.now(), done = true; + var t = fxNow || createFxNow(), + done = true, + elem = this.elem, + options = this.options, + i, n; - if ( gotoEnd || t >= this.options.duration + this.startTime ) { + if ( gotoEnd || t >= options.duration + this.startTime ) { this.now = this.end; this.pos = this.state = 1; this.update(); - this.options.curAnim[ this.prop ] = true; + options.animatedProperties[ this.prop ] = true; - for ( var i in this.options.curAnim ) { - if ( this.options.curAnim[i] !== true ) { + for ( i in options.animatedProperties ) { + if ( options.animatedProperties[i] !== true ) { done = false; } } if ( done ) { // Reset the overflow - if ( this.options.overflow != null && !jQuery.support.shrinkWrapBlocks ) { - var elem = this.elem, - options = this.options; + if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) { jQuery.each( [ "", "X", "Y" ], function (index, value) { elem.style[ "overflow" + value ] = options.overflow[index]; - } ); + }); } // Hide the element if the "hide" operation was done - if ( this.options.hide ) { - jQuery(this.elem).hide(); + if ( options.hide ) { + jQuery(elem).hide(); } // Reset the properties, if the item has been hidden or shown - if ( this.options.hide || this.options.show ) { - for ( var p in this.options.curAnim ) { - jQuery.style( this.elem, p, this.options.orig[p] ); + if ( options.hide || options.show ) { + for ( var p in options.animatedProperties ) { + jQuery.style( elem, p, options.orig[p] ); } } // Execute the complete function - this.options.complete.call( this.elem ); + options.complete.call( elem ); } return false; } else { - var n = t - this.startTime; - this.state = n / this.options.duration; - - // Perform the easing function, defaults to swing - var specialEasing = this.options.specialEasing && this.options.specialEasing[this.prop]; - var defaultEasing = this.options.easing || (jQuery.easing.swing ? "swing" : "linear"); - this.pos = jQuery.easing[specialEasing || defaultEasing](this.state, n, 0, 1, this.options.duration); - this.now = this.start + ((this.end - this.start) * this.pos); + // classical easing cannot be used with an Infinity duration + if ( options.duration == Infinity ) { + this.now = t; + } else { + n = t - this.startTime; + this.state = n / options.duration; + // Perform the easing function, defaults to swing + this.pos = jQuery.easing[ options.animatedProperties[ this.prop ] ]( this.state, n, 0, 1, options.duration ); + this.now = this.start + ((this.end - this.start) * this.pos); + } // Perform the next step of the animation this.update(); } @@ -7931,9 +8463,7 @@ jQuery.fx.prototype = { jQuery.extend( jQuery.fx, { tick: function() { - var timers = jQuery.timers; - - for ( var i = 0; i < timers.length; i++ ) { + for ( var timers = jQuery.timers, i = 0 ; i < timers.length ; ++i ) { if ( !timers[i]() ) { timers.splice(i--, 1); } @@ -7981,17 +8511,45 @@ if ( jQuery.expr && jQuery.expr.filters ) { }; } +// Try to restore the default display value of an element function defaultDisplay( nodeName ) { + if ( !elemdisplay[ nodeName ] ) { - var elem = jQuery("<" + nodeName + ">").appendTo("body"), - display = elem.css("display"); + + var elem = jQuery( "<" + nodeName + ">" ).appendTo( "body" ), + display = elem.css( "display" ); elem.remove(); + // If the simple way fails, + // get element's real default display by attaching it to a temp iframe if ( display === "none" || display === "" ) { - display = "block"; + // No iframe to use yet, so create it + if ( !iframe ) { + iframe = document.createElement( "iframe" ); + iframe.frameBorder = iframe.width = iframe.height = 0; + } + + document.body.appendChild( iframe ); + + // Create a cacheable copy of the iframe document on first call. + // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake html + // document to it, Webkit & Firefox won't allow reusing the iframe document + if ( !iframeDoc || !iframe.createElement ) { + iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; + iframeDoc.write( "" ); + } + + elem = iframeDoc.createElement( nodeName ); + + iframeDoc.body.appendChild( elem ); + + display = jQuery.css( elem, "display" ); + + document.body.removeChild( iframe ); } + // Store the correct default display elemdisplay[ nodeName ] = display; } @@ -8181,17 +8739,19 @@ jQuery.offset = { curOffset = curElem.offset(), curCSSTop = jQuery.css( elem, "top" ), curCSSLeft = jQuery.css( elem, "left" ), - calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray('auto', [curCSSTop, curCSSLeft]) > -1, + calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1, props = {}, curPosition = {}, curTop, curLeft; // need to be able to calculate position if either top or left is auto and position is either absolute or fixed if ( calculatePosition ) { curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; } - curTop = calculatePosition ? curPosition.top : parseInt( curCSSTop, 10 ) || 0; - curLeft = calculatePosition ? curPosition.left : parseInt( curCSSLeft, 10 ) || 0; - if ( jQuery.isFunction( options ) ) { options = options.call( elem, i, curOffset ); } @@ -8260,29 +8820,16 @@ jQuery.fn.extend({ jQuery.each( ["Left", "Top"], function( i, name ) { var method = "scroll" + name; - jQuery.fn[ method ] = function(val) { - var elem = this[0], win; + jQuery.fn[ method ] = function( val ) { + var elem, win; - if ( !elem ) { - return null; - } + if ( val === undefined ) { + elem = this[ 0 ]; - if ( val !== undefined ) { - // Set the scroll offset - return this.each(function() { - win = getWindow( this ); + if ( !elem ) { + return null; + } - if ( win ) { - win.scrollTo( - !i ? val : jQuery(win).scrollLeft(), - i ? val : jQuery(win).scrollTop() - ); - - } else { - this[ method ] = val; - } - }); - } else { win = getWindow( elem ); // Return the scroll offset @@ -8291,6 +8838,21 @@ jQuery.each( ["Left", "Top"], function( i, name ) { win.document.body[ method ] : elem[ method ]; } + + // Set the scroll offset + return this.each(function() { + win = getWindow( this ); + + if ( win ) { + win.scrollTo( + !i ? val : jQuery( win ).scrollLeft(), + i ? val : jQuery( win ).scrollTop() + ); + + } else { + this[ method ] = val; + } + }); }; }); diff --git a/NzbDrone.Web/Scripts/jquery-1.6.1.min.js b/NzbDrone.Web/Scripts/jquery-1.6.1.min.js new file mode 100644 index 000000000..b2ac1747f --- /dev/null +++ b/NzbDrone.Web/Scripts/jquery-1.6.1.min.js @@ -0,0 +1,18 @@ +/*! + * jQuery JavaScript Library v1.6.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu May 12 15:04:36 2011 -0400 + */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem +)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/NzbDrone.Web/Views/Shared/SiteLayout.cshtml b/NzbDrone.Web/Views/Shared/SiteLayout.cshtml index abf64dce5..2edda7af3 100644 --- a/NzbDrone.Web/Views/Shared/SiteLayout.cshtml +++ b/NzbDrone.Web/Views/Shared/SiteLayout.cshtml @@ -43,7 +43,8 @@ @RenderSection("Scripts", required: false) @{Html.Telerik().ScriptRegistrar().Scripts( - c => c.Add("jquery-ui-1.8.8.min.js") + c => //c.Add("jquery-1.6.1.min.js") + c.Add("jquery-ui-1.8.8.min.js") .Add("jquery.form.js") .Add("jquery.jgrowl.js") .Add("Notification.js") diff --git a/NzbDrone.Web/Web.config b/NzbDrone.Web/Web.config index 184fed9e0..26ea04840 100644 --- a/NzbDrone.Web/Web.config +++ b/NzbDrone.Web/Web.config @@ -64,7 +64,7 @@ - + diff --git a/NzbDrone.Web/packages.config b/NzbDrone.Web/packages.config index 3202b0471..bd4c3b3b6 100644 --- a/NzbDrone.Web/packages.config +++ b/NzbDrone.Web/packages.config @@ -1,10 +1,12 @@  - - - - + + + + + + \ No newline at end of file diff --git a/NzbDrone.sln b/NzbDrone.sln index 2413f6864..bdc2469f6 100644 --- a/NzbDrone.sln +++ b/NzbDrone.sln @@ -131,4 +131,7 @@ Global {5270F048-E580-486C-B14C-E5B9F6E539D4} = {CE083327-EB44-44F2-ACC7-A0A0ECB8B87D} {D58C68E4-D789-40F7-9078-C9F587D4363C} = {CE083327-EB44-44F2-ACC7-A0A0ECB8B87D} EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35 + EndGlobalSection EndGlobal diff --git a/NzbDrone/NzbDrone.csproj b/NzbDrone/NzbDrone.csproj index 0582bac62..b06d8b11a 100644 --- a/NzbDrone/NzbDrone.csproj +++ b/NzbDrone/NzbDrone.csproj @@ -63,13 +63,13 @@ True - + False - ..\NzbDrone.Core\Libraries\Exceptioneer.WindowsFormsClient.dll + ..\Libraries\Exceptioneer.WindowsFormsClient.dll False - ..\NzbDrone.Core\Libraries\NLog.dll + ..\Libraries\NLog.dll diff --git a/package.bat b/package.bat new file mode 100644 index 000000000..114603e9b --- /dev/null +++ b/package.bat @@ -0,0 +1,23 @@ +SET TARGET=_deploy + +rmdir /s "%TARGET%" +xcopy IISExpress %TARGET%\IISExpress /E /V /I /F /Y +xcopy NzbDrone\bin\Release\*.* %TARGET%\ /E /V /I /F /Y + +xcopy NzbDrone.Web\bin\*.* %TARGET%\NzbDrone.Web\bin\ /E /V /I /F /Y +xcopy NzbDrone.Web\App_GlobalResources\*.* %TARGET%\NzbDrone.Web\App_GlobalResources\ /E /V /I /F /Y +xcopy NzbDrone.Web\Content\*.* %TARGET%\NzbDrone.Web\Content\ /E /V /I /F /Y +xcopy NzbDrone.Web\Scripts\*.* %TARGET%\NzbDrone.Web\Scripts\ /E /V /I /F /Y +xcopy NzbDrone.Web\Views\*.* %TARGET%\NzbDrone.Web\Views\ /E /V /I /F /Y + + +xcopy NzbDrone.Web\log.config %TARGET%\NzbDrone.Web\ +xcopy NzbDrone.Web\Global.asax %TARGET%\NzbDrone.Web\ +xcopy NzbDrone.Web\favicon.ico %TARGET%\NzbDrone.Web\ +xcopy NzbDrone.Web\web.config %TARGET%\NzbDrone.Web\ + + +CD "%TARGET%" +..\Libraries\7zip\7za.exe a -tzip NzbDrone.zip * +..\Libraries\7zip\7za.exe t NzbDrone.zip +cD .. \ No newline at end of file diff --git a/packages/CommonServiceLocator.1.0/CommonServiceLocator.1.0.nupkg b/packages/CommonServiceLocator.1.0/CommonServiceLocator.1.0.nupkg new file mode 100644 index 000000000..a81045f04 Binary files /dev/null and b/packages/CommonServiceLocator.1.0/CommonServiceLocator.1.0.nupkg differ diff --git a/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.XML b/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.XML new file mode 100644 index 000000000..6c6f2fe62 --- /dev/null +++ b/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.XML @@ -0,0 +1,280 @@ + + + + Microsoft.Practices.ServiceLocation + + + + + The standard exception thrown when a ServiceLocator has an error in resolving an object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + + The message that describes the error. + + + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + + + The error message that explains the reason for the exception. + + + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + + Initializes a new instance of the class with serialized data. + + + The that holds the serialized object data about the exception being thrown. + + + The that contains contextual information about the source or destination. + + + The parameter is null. + + + The class name is null or is zero (0). + + + + + The generic Service Locator interface. This interface is used + to retrieve services (instances identified by type and optional + name) from a container. + + + + + Get an instance of the given . + + Type of object requested. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + Get an instance of the given . + + Type of object requested. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Activation error occured while trying to get all instances of type {0}. + + + + + Looks up a localized string similar to Activation error occured while trying to get instance of type {0}, key "{1}". + + + + + This class provides the ambient container for this application. If your + framework defines such an ambient container, use ServiceLocator.Current + to get it. + + + + + Set the delegate that is used to retrieve the current container. + + Delegate that, when called, will return + the current ambient container. + + + + The current ambient container. + + + + + This class is a helper that provides a default implementation + for most of the methods of . + + + + + Implementation of . + + The requested service. + if there is an error in resolving the service instance. + The requested object. + + + + Get an instance of the given . + + Type of object requested. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + Get an instance of the given . + + Type of object requested. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + When implemented by inheriting classes, this method will do the actual work of resolving + the requested service instance. + + Type of instance requested. + Name of registered service you want. May be null. + The requested service instance. + + + + When implemented by inheriting classes, this method will do the actual work of + resolving all the requested service instances. + + Type of service requested. + Sequence of service instance objects. + + + + Format the exception message for use in an + that occurs while resolving a single service. + + The actual exception thrown by the implementation. + Type of service requested. + Name requested. + The formatted exception message string. + + + + Format the exception message for use in an + that occurs while resolving multiple service instances. + + The actual exception thrown by the implementation. + Type of service requested. + The formatted exception message string. + + + + This delegate type is used to provide a method that will + return the current container. Used with the + static accessor class. + + An . + + + diff --git a/packages/Unity.2.0/lib/20/Microsoft.Practices.ServiceLocation.dll b/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.dll similarity index 100% rename from packages/Unity.2.0/lib/20/Microsoft.Practices.ServiceLocation.dll rename to packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.dll diff --git a/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.pdb b/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.pdb new file mode 100644 index 000000000..0df5fe3fb Binary files /dev/null and b/packages/CommonServiceLocator.1.0/lib/NET35/Microsoft.Practices.ServiceLocation.pdb differ diff --git a/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.XML b/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.XML new file mode 100644 index 000000000..6c6f2fe62 --- /dev/null +++ b/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.XML @@ -0,0 +1,280 @@ + + + + Microsoft.Practices.ServiceLocation + + + + + The standard exception thrown when a ServiceLocator has an error in resolving an object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + + The message that describes the error. + + + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + + + The error message that explains the reason for the exception. + + + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + + Initializes a new instance of the class with serialized data. + + + The that holds the serialized object data about the exception being thrown. + + + The that contains contextual information about the source or destination. + + + The parameter is null. + + + The class name is null or is zero (0). + + + + + The generic Service Locator interface. This interface is used + to retrieve services (instances identified by type and optional + name) from a container. + + + + + Get an instance of the given . + + Type of object requested. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + Get an instance of the given . + + Type of object requested. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Activation error occured while trying to get all instances of type {0}. + + + + + Looks up a localized string similar to Activation error occured while trying to get instance of type {0}, key "{1}". + + + + + This class provides the ambient container for this application. If your + framework defines such an ambient container, use ServiceLocator.Current + to get it. + + + + + Set the delegate that is used to retrieve the current container. + + Delegate that, when called, will return + the current ambient container. + + + + The current ambient container. + + + + + This class is a helper that provides a default implementation + for most of the methods of . + + + + + Implementation of . + + The requested service. + if there is an error in resolving the service instance. + The requested object. + + + + Get an instance of the given . + + Type of object requested. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is an error resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + Get an instance of the given . + + Type of object requested. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get an instance of the given named . + + Type of object requested. + Name the object was registered with. + if there is are errors resolving + the service instance. + The requested service instance. + + + + Get all instances of the given currently + registered in the container. + + Type of object requested. + if there is are errors resolving + the service instance. + A sequence of instances of the requested . + + + + When implemented by inheriting classes, this method will do the actual work of resolving + the requested service instance. + + Type of instance requested. + Name of registered service you want. May be null. + The requested service instance. + + + + When implemented by inheriting classes, this method will do the actual work of + resolving all the requested service instances. + + Type of service requested. + Sequence of service instance objects. + + + + Format the exception message for use in an + that occurs while resolving a single service. + + The actual exception thrown by the implementation. + Type of service requested. + Name requested. + The formatted exception message string. + + + + Format the exception message for use in an + that occurs while resolving multiple service instances. + + The actual exception thrown by the implementation. + Type of service requested. + The formatted exception message string. + + + + This delegate type is used to provide a method that will + return the current container. Used with the + static accessor class. + + An . + + + diff --git a/packages/Unity.2.0/lib/SL30/Microsoft.Practices.ServiceLocation.dll b/packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.dll similarity index 100% rename from packages/Unity.2.0/lib/SL30/Microsoft.Practices.ServiceLocation.dll rename to packages/CommonServiceLocator.1.0/lib/SL30/Microsoft.Practices.ServiceLocation.dll diff --git a/packages/Moq.4.0.10827/License.txt b/packages/Moq.4.0.10827/License.txt new file mode 100644 index 000000000..fb36f9263 --- /dev/null +++ b/packages/Moq.4.0.10827/License.txt @@ -0,0 +1,39 @@ +Copyright (c) 2007. Clarius Consulting, Manas Technology Solutions, InSTEDD +http://code.google.com/p/moq/ +All rights reserved. + +Redistribution and use in source and binary forms, +with or without modification, are permitted provided +that the following conditions are met: + + * Redistributions of source code must retain the + above copyright notice, this list of conditions and + the following disclaimer. + + * Redistributions in binary form must reproduce + the above copyright notice, this list of conditions + and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of Clarius Consulting, Manas Technology Solutions or InSTEDD nor the + names of its contributors may be used to endorse + or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[This is the BSD license, see + http://www.opensource.org/licenses/bsd-license.php] \ No newline at end of file diff --git a/packages/Moq.4.0.10827/Moq.4.0.10827.nupkg b/packages/Moq.4.0.10827/Moq.4.0.10827.nupkg new file mode 100644 index 000000000..91e88a472 Binary files /dev/null and b/packages/Moq.4.0.10827/Moq.4.0.10827.nupkg differ diff --git a/packages/Moq.4.0.10827/Moq.chm b/packages/Moq.4.0.10827/Moq.chm new file mode 100644 index 000000000..f5779bbbd Binary files /dev/null and b/packages/Moq.4.0.10827/Moq.chm differ diff --git a/packages/Moq.4.0.10827/lib/NET35/Moq.dll b/packages/Moq.4.0.10827/lib/NET35/Moq.dll new file mode 100644 index 000000000..3d3b8ccd0 Binary files /dev/null and b/packages/Moq.4.0.10827/lib/NET35/Moq.dll differ diff --git a/packages/Moq.4.0.10827/lib/NET35/Moq.pdb b/packages/Moq.4.0.10827/lib/NET35/Moq.pdb new file mode 100644 index 000000000..b0eaa8025 Binary files /dev/null and b/packages/Moq.4.0.10827/lib/NET35/Moq.pdb differ diff --git a/packages/Moq.4.0.10827/lib/NET35/Moq.xml b/packages/Moq.4.0.10827/lib/NET35/Moq.xml new file mode 100644 index 000000000..a0be31ce5 --- /dev/null +++ b/packages/Moq.4.0.10827/lib/NET35/Moq.xml @@ -0,0 +1,5768 @@ + + + + Moq + + + + + Implements the fluent API. + + + + + The expectation will be considered only in the former condition. + + + + + + + The expectation will be considered only in the former condition. + + + + + + + + Setups the get. + + The type of the property. + The expression. + + + + + Setups the set. + + The type of the property. + The setter expression. + + + + + Setups the set. + + The setter expression. + + + + + Defines the Callback verb and overloads. + + + + + Helper interface used to hide the base + members from the fluent API to make it much cleaner + in Visual Studio intellisense. + + + + + + + + + + + + + + + + + Specifies a callback to invoke when the method is called. + + The callback method to invoke. + + The following example specifies a callback to set a boolean + value that can be used later: + + var called = false; + mock.Setup(x => x.Execute()) + .Callback(() => called = true); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The argument type of the invoked method. + The callback method to invoke. + + Invokes the given callback with the concrete invocation argument value. + + Notice how the specific string argument is retrieved by simply declaring + it as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute(It.IsAny<string>())) + .Callback((string command) => Console.WriteLine(command)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2) => Console.WriteLine(arg1 + arg2)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3) => Console.WriteLine(arg1 + arg2 + arg3)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4) => Console.WriteLine(arg1 + arg2 + arg3 + arg4)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The type of the sixteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15, string arg16) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15 + arg16)); + + + + + + Defines the Callback verb and overloads for callbacks on + setups that return a value. + + Mocked type. + Type of the return value of the setup. + + + + Specifies a callback to invoke when the method is called. + + The callback method to invoke. + + The following example specifies a callback to set a boolean value that can be used later: + + var called = false; + mock.Setup(x => x.Execute()) + .Callback(() => called = true) + .Returns(true); + + Note that in the case of value-returning methods, after the Callback + call you can still specify the return value. + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the argument of the invoked method. + Callback method to invoke. + + Invokes the given callback with the concrete invocation argument value. + + Notice how the specific string argument is retrieved by simply declaring + it as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute(It.IsAny<string>())) + .Callback(command => Console.WriteLine(command)) + .Returns(true); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2) => Console.WriteLine(arg1 + arg2)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3) => Console.WriteLine(arg1 + arg2 + arg3)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4) => Console.WriteLine(arg1 + arg2 + arg3 + arg4)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The type of the sixteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15 + arg16)); + + + + + + Defines the Raises verb. + + + + + Specifies the event that will be raised + when the setup is met. + + An expression that represents an event attach or detach action. + The event arguments to pass for the raised event. + + The following example shows how to raise an event when + the setup is met: + + var mock = new Mock<IContainer>(); + + mock.Setup(add => add.Add(It.IsAny<string>(), It.IsAny<object>())) + .Raises(add => add.Added += null, EventArgs.Empty); + + + + + + Specifies the event that will be raised + when the setup is matched. + + An expression that represents an event attach or detach action. + A function that will build the + to pass when raising the event. + + + + + Specifies the custom event that will be raised + when the setup is matched. + + An expression that represents an event attach or detach action. + The arguments to pass to the custom delegate (non EventHandler-compatible). + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + The type of the thirteenth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + The type of the thirteenth argument received by the expected invocation. + The type of the fourteenth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + The type of the thirteenth argument received by the expected invocation. + The type of the fourteenth argument received by the expected invocation. + The type of the fifteenth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + The type of the thirteenth argument received by the expected invocation. + The type of the fourteenth argument received by the expected invocation. + The type of the fifteenth argument received by the expected invocation. + The type of the sixteenth argument received by the expected invocation. + + + + + Defines the Returns verb. + + Mocked type. + Type of the return value from the expression. + + + + Specifies the value to return. + + The value to return, or . + + Return a true value from the method call: + + mock.Setup(x => x.Execute("ping")) + .Returns(true); + + + + + + Specifies a function that will calculate the value to return from the method. + + The function that will calculate the return value. + + Return a calculated value when the method is called: + + mock.Setup(x => x.Execute("ping")) + .Returns(() => returnValues[0]); + + The lambda expression to retrieve the return value is lazy-executed, + meaning that its value may change depending on the moment the method + is executed and the value the returnValues array has at + that moment. + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the argument of the invoked method. + The function that will calculate the return value. + + Return a calculated value which is evaluated lazily at the time of the invocation. + + The lookup list can change between invocations and the setup + will return different values accordingly. Also, notice how the specific + string argument is retrieved by simply declaring it as part of the lambda + expression: + + + mock.Setup(x => x.Execute(It.IsAny<string>())) + .Returns((string command) => returnValues[command]); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2) => arg1 + arg2); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3) => arg1 + arg2 + arg3); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4) => arg1 + arg2 + arg3 + arg4); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5) => arg1 + arg2 + arg3 + arg4 + arg5); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The type of the sixteenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15, string arg16) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15 + arg16); + + + + + + Language for ReturnSequence + + + + + Returns value + + + + + Throws an exception + + + + + Throws an exception + + + + + The first method call or member access will be the + last segment of the expression (depth-first traversal), + which is the one we have to Setup rather than FluentMock. + And the last one is the one we have to Mock.Get rather + than FluentMock. + + + + + Base class for mocks and static helper class with methods that + apply to mocked objects, such as to + retrieve a from an object instance. + + + + + Creates an mock object of the indicated type. + + The type of the mocked object. + The mocked object created. + + + + Creates an mock object of the indicated type. + + The predicate with the specification of how the mocked object should behave. + The type of the mocked object. + The mocked object created. + + + + Initializes a new instance of the class. + + + + + Retrieves the mock object for the given object instance. + + Type of the mock to retrieve. Can be omitted as it's inferred + from the object instance passed in as the instance. + The instance of the mocked object.The mock associated with the mocked object. + The received instance + was not created by Moq. + + The following example shows how to add a new setup to an object + instance which is not the original but rather + the object associated with it: + + // Typed instance, not the mock, is retrieved from some test API. + HttpContextBase context = GetMockContext(); + + // context.Request is the typed object from the "real" API + // so in order to add a setup to it, we need to get + // the mock that "owns" it + Mock<HttpRequestBase> request = Mock.Get(context.Request); + mock.Setup(req => req.AppRelativeCurrentExecutionFilePath) + .Returns(tempUrl); + + + + + + Returns the mocked object value. + + + + + Verifies that all verifiable expectations have been met. + + This example sets up an expectation and marks it as verifiable. After + the mock is used, a Verify() call is issued on the mock + to ensure the method in the setup was invoked: + + var mock = new Mock<IWarehouse>(); + this.Setup(x => x.HasInventory(TALISKER, 50)).Verifiable().Returns(true); + ... + // other test code + ... + // Will throw if the test code has didn't call HasInventory. + this.Verify(); + + Not all verifiable expectations were met. + + + + Verifies all expectations regardless of whether they have + been flagged as verifiable. + + This example sets up an expectation without marking it as verifiable. After + the mock is used, a call is issued on the mock + to ensure that all expectations are met: + + var mock = new Mock<IWarehouse>(); + this.Setup(x => x.HasInventory(TALISKER, 50)).Returns(true); + ... + // other test code + ... + // Will throw if the test code has didn't call HasInventory, even + // that expectation was not marked as verifiable. + this.VerifyAll(); + + At least one expectation was not met. + + + + Gets the interceptor target for the given expression and root mock, + building the intermediate hierarchy of mock objects if necessary. + + + + + Raises the associated event with the given + event argument data. + + + + + Raises the associated event with the given + event argument data. + + + + + Adds an interface implementation to the mock, + allowing setups to be specified for it. + + This method can only be called before the first use + of the mock property, at which + point the runtime type has already been generated + and no more interfaces can be added to it. + + Also, must be an + interface and not a class, which must be specified + when creating the mock instead. + + + The mock type + has already been generated by accessing the property. + + The specified + is not an interface. + + The following example creates a mock for the main interface + and later adds to it to verify + it's called by the consumer code: + + var mock = new Mock<IProcessor>(); + mock.Setup(x => x.Execute("ping")); + + // add IDisposable interface + var disposable = mock.As<IDisposable>(); + disposable.Setup(d => d.Dispose()).Verifiable(); + + Type of interface to cast the mock to. + + + + + + + Behavior of the mock, according to the value set in the constructor. + + + + + Whether the base member virtual implementation will be called + for mocked classes if no setup is matched. Defaults to . + + + + + Specifies the behavior to use when returning default values for + unexpected invocations on loose mocks. + + + + + Gets the mocked object instance. + + + + + Retrieves the type of the mocked object, its generic type argument. + This is used in the auto-mocking of hierarchy access. + + + + + Specifies the class that will determine the default + value to return when invocations are made that + have no setups and need to return a default + value (for loose mocks). + + + + + Exposes the list of extra interfaces implemented by the mock. + + + + + Utility repository class to use to construct multiple + mocks when consistent verification is + desired for all of them. + + + If multiple mocks will be created during a test, passing + the desired (if different than the + or the one + passed to the repository constructor) and later verifying each + mock can become repetitive and tedious. + + This repository class helps in that scenario by providing a + simplified creation of multiple mocks with a default + (unless overriden by calling + ) and posterior verification. + + + + The following is a straightforward example on how to + create and automatically verify strict mocks using a : + + var repository = new MockRepository(MockBehavior.Strict); + + var foo = repository.Create<IFoo>(); + var bar = repository.Create<IBar>(); + + // no need to call Verifiable() on the setup + // as we'll be validating all of them anyway. + foo.Setup(f => f.Do()); + bar.Setup(b => b.Redo()); + + // exercise the mocks here + + repository.VerifyAll(); + // At this point all setups are already checked + // and an optional MockException might be thrown. + // Note also that because the mocks are strict, any invocation + // that doesn't have a matching setup will also throw a MockException. + + The following examples shows how to setup the repository + to create loose mocks and later verify only verifiable setups: + + var repository = new MockRepository(MockBehavior.Loose); + + var foo = repository.Create<IFoo>(); + var bar = repository.Create<IBar>(); + + // this setup will be verified when we verify the repository + foo.Setup(f => f.Do()).Verifiable(); + + // this setup will NOT be verified + foo.Setup(f => f.Calculate()); + + // this setup will be verified when we verify the repository + bar.Setup(b => b.Redo()).Verifiable(); + + // exercise the mocks here + // note that because the mocks are Loose, members + // called in the interfaces for which no matching + // setups exist will NOT throw exceptions, + // and will rather return default values. + + repository.Verify(); + // At this point verifiable setups are already checked + // and an optional MockException might be thrown. + + The following examples shows how to setup the repository with a + default strict behavior, overriding that default for a + specific mock: + + var repository = new MockRepository(MockBehavior.Strict); + + // this particular one we want loose + var foo = repository.Create<IFoo>(MockBehavior.Loose); + var bar = repository.Create<IBar>(); + + // specify setups + + // exercise the mocks here + + repository.Verify(); + + + + + + + Utility factory class to use to construct multiple + mocks when consistent verification is + desired for all of them. + + + If multiple mocks will be created during a test, passing + the desired (if different than the + or the one + passed to the factory constructor) and later verifying each + mock can become repetitive and tedious. + + This factory class helps in that scenario by providing a + simplified creation of multiple mocks with a default + (unless overriden by calling + ) and posterior verification. + + + + The following is a straightforward example on how to + create and automatically verify strict mocks using a : + + var factory = new MockFactory(MockBehavior.Strict); + + var foo = factory.Create<IFoo>(); + var bar = factory.Create<IBar>(); + + // no need to call Verifiable() on the setup + // as we'll be validating all of them anyway. + foo.Setup(f => f.Do()); + bar.Setup(b => b.Redo()); + + // exercise the mocks here + + factory.VerifyAll(); + // At this point all setups are already checked + // and an optional MockException might be thrown. + // Note also that because the mocks are strict, any invocation + // that doesn't have a matching setup will also throw a MockException. + + The following examples shows how to setup the factory + to create loose mocks and later verify only verifiable setups: + + var factory = new MockFactory(MockBehavior.Loose); + + var foo = factory.Create<IFoo>(); + var bar = factory.Create<IBar>(); + + // this setup will be verified when we verify the factory + foo.Setup(f => f.Do()).Verifiable(); + + // this setup will NOT be verified + foo.Setup(f => f.Calculate()); + + // this setup will be verified when we verify the factory + bar.Setup(b => b.Redo()).Verifiable(); + + // exercise the mocks here + // note that because the mocks are Loose, members + // called in the interfaces for which no matching + // setups exist will NOT throw exceptions, + // and will rather return default values. + + factory.Verify(); + // At this point verifiable setups are already checked + // and an optional MockException might be thrown. + + The following examples shows how to setup the factory with a + default strict behavior, overriding that default for a + specific mock: + + var factory = new MockFactory(MockBehavior.Strict); + + // this particular one we want loose + var foo = factory.Create<IFoo>(MockBehavior.Loose); + var bar = factory.Create<IBar>(); + + // specify setups + + // exercise the mocks here + + factory.Verify(); + + + + + + + Initializes the factory with the given + for newly created mocks from the factory. + + The behavior to use for mocks created + using the factory method if not overriden + by using the overload. + + + + Creates a new mock with the default + specified at factory construction time. + + Type to mock. + A new . + + + var factory = new MockFactory(MockBehavior.Strict); + + var foo = factory.Create<IFoo>(); + // use mock on tests + + factory.VerifyAll(); + + + + + + Creates a new mock with the default + specified at factory construction time and with the + the given constructor arguments for the class. + + + The mock will try to find the best match constructor given the + constructor arguments, and invoke that to initialize the instance. + This applies only to classes, not interfaces. + + Type to mock. + Constructor arguments for mocked classes. + A new . + + + var factory = new MockFactory(MockBehavior.Default); + + var mock = factory.Create<MyBase>("Foo", 25, true); + // use mock on tests + + factory.Verify(); + + + + + + Creates a new mock with the given . + + Type to mock. + Behavior to use for the mock, which overrides + the default behavior specified at factory construction time. + A new . + + The following example shows how to create a mock with a different + behavior to that specified as the default for the factory: + + var factory = new MockFactory(MockBehavior.Strict); + + var foo = factory.Create<IFoo>(MockBehavior.Loose); + + + + + + Creates a new mock with the given + and with the the given constructor arguments for the class. + + + The mock will try to find the best match constructor given the + constructor arguments, and invoke that to initialize the instance. + This applies only to classes, not interfaces. + + Type to mock. + Behavior to use for the mock, which overrides + the default behavior specified at factory construction time. + Constructor arguments for mocked classes. + A new . + + The following example shows how to create a mock with a different + behavior to that specified as the default for the factory, passing + constructor arguments: + + var factory = new MockFactory(MockBehavior.Default); + + var mock = factory.Create<MyBase>(MockBehavior.Strict, "Foo", 25, true); + + + + + + Implements creation of a new mock within the factory. + + Type to mock. + The behavior for the new mock. + Optional arguments for the construction of the mock. + + + + Verifies all verifiable expectations on all mocks created + by this factory. + + + One or more mocks had expectations that were not satisfied. + + + + Verifies all verifiable expectations on all mocks created + by this factory. + + + One or more mocks had expectations that were not satisfied. + + + + Invokes for each mock + in , and accumulates the resulting + that might be + thrown from the action. + + The action to execute against + each mock. + + + + Whether the base member virtual implementation will be called + for mocked classes if no setup is matched. Defaults to . + + + + + Specifies the behavior to use when returning default values for + unexpected invocations on loose mocks. + + + + + Gets the mocks that have been created by this factory and + that will get verified together. + + + + + Access the universe of mocks of the given type, to retrieve those + that behave according to the LINQ query specification. + + The type of the mocked object to query. + + + + Access the universe of mocks of the given type, to retrieve those + that behave according to the LINQ query specification. + + The predicate with the setup expressions. + The type of the mocked object to query. + + + + Creates an mock object of the indicated type. + + The type of the mocked object. + The mocked object created. + + + + Creates an mock object of the indicated type. + + The predicate with the setup expressions. + The type of the mocked object. + The mocked object created. + + + + Creates the mock query with the underlying queriable implementation. + + + + + Wraps the enumerator inside a queryable. + + + + + Method that is turned into the actual call from .Query{T}, to + transform the queryable query into a normal enumerable query. + This method is never used directly by consumers. + + + + + Initializes the repository with the given + for newly created mocks from the repository. + + The behavior to use for mocks created + using the repository method if not overriden + by using the overload. + + + + A that returns an empty default value + for invocations that do not have setups or return values, with loose mocks. + This is the default behavior for a mock. + + + + + Interface to be implemented by classes that determine the + default value of non-expected invocations. + + + + + Defines the default value to return in all the methods returning . + The type of the return value.The value to set as default. + + + + Provides a value for the given member and arguments. + + The member to provide a default value for. + + + + + The intention of is to create a more readable + string representation for the failure message. + + + + + Implements the fluent API. + + + + + Defines the Throws verb. + + + + + Specifies the exception to throw when the method is invoked. + + Exception instance to throw. + + This example shows how to throw an exception when the method is + invoked with an empty string argument: + + mock.Setup(x => x.Execute("")) + .Throws(new ArgumentException()); + + + + + + Specifies the type of exception to throw when the method is invoked. + + Type of exception to instantiate and throw when the setup is matched. + + This example shows how to throw an exception when the method is + invoked with an empty string argument: + + mock.Setup(x => x.Execute("")) + .Throws<ArgumentException>(); + + + + + + Implements the fluent API. + + + + + Defines occurrence members to constraint setups. + + + + + The expected invocation can happen at most once. + + + + var mock = new Mock<ICommand>(); + mock.Setup(foo => foo.Execute("ping")) + .AtMostOnce(); + + + + + + The expected invocation can happen at most specified number of times. + + The number of times to accept calls. + + + var mock = new Mock<ICommand>(); + mock.Setup(foo => foo.Execute("ping")) + .AtMost( 5 ); + + + + + + Defines the Verifiable verb. + + + + + Marks the expectation as verifiable, meaning that a call + to will check if this particular + expectation was met. + + + The following example marks the expectation as verifiable: + + mock.Expect(x => x.Execute("ping")) + .Returns(true) + .Verifiable(); + + + + + + Marks the expectation as verifiable, meaning that a call + to will check if this particular + expectation was met, and specifies a message for failures. + + + The following example marks the expectation as verifiable: + + mock.Expect(x => x.Execute("ping")) + .Returns(true) + .Verifiable("Ping should be executed always!"); + + + + + + Implements the fluent API. + + + + + We need this non-generics base class so that + we can use from + generic code. + + + + + Implements the fluent API. + + + + + Implements the fluent API. + + + + + Implements the fluent API. + + + + + Defines the Callback verb for property getter setups. + + + Mocked type. + Type of the property. + + + + Specifies a callback to invoke when the property is retrieved. + + Callback method to invoke. + + Invokes the given callback with the property value being set. + + mock.SetupGet(x => x.Suspended) + .Callback(() => called = true) + .Returns(true); + + + + + + Implements the fluent API. + + + + + Defines the Returns verb for property get setups. + + Mocked type. + Type of the property. + + + + Specifies the value to return. + + The value to return, or . + + Return a true value from the property getter call: + + mock.SetupGet(x => x.Suspended) + .Returns(true); + + + + + + Specifies a function that will calculate the value to return for the property. + + The function that will calculate the return value. + + Return a calculated value when the property is retrieved: + + mock.SetupGet(x => x.Suspended) + .Returns(() => returnValues[0]); + + The lambda expression to retrieve the return value is lazy-executed, + meaning that its value may change depending on the moment the property + is retrieved and the value the returnValues array has at + that moment. + + + + + Implements the fluent API. + + + + + Encapsulates a method that has five parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has five parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has six parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has six parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has seven parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has seven parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has eight parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has eight parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has nine parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has nine parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has ten parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has ten parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has eleven parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has eleven parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has twelve parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has twelve parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has thirteen parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The type of the thirteenth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + The thirteenth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has thirteen parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The type of the thirteenth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + The thirteenth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has fourteen parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The type of the thirteenth parameter of the method that this delegate encapsulates. + The type of the fourteenth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + The thirteenth parameter of the method that this delegate encapsulates. + The fourteenth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has fourteen parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The type of the thirteenth parameter of the method that this delegate encapsulates. + The type of the fourteenth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + The thirteenth parameter of the method that this delegate encapsulates. + The fourteenth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has fifteen parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The type of the thirteenth parameter of the method that this delegate encapsulates. + The type of the fourteenth parameter of the method that this delegate encapsulates. + The type of the fifteenth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + The thirteenth parameter of the method that this delegate encapsulates. + The fourteenth parameter of the method that this delegate encapsulates. + The fifteenth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has fifteen parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The type of the thirteenth parameter of the method that this delegate encapsulates. + The type of the fourteenth parameter of the method that this delegate encapsulates. + The type of the fifteenth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + The thirteenth parameter of the method that this delegate encapsulates. + The fourteenth parameter of the method that this delegate encapsulates. + The fifteenth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Encapsulates a method that has sixteen parameters and does not return a value. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The type of the thirteenth parameter of the method that this delegate encapsulates. + The type of the fourteenth parameter of the method that this delegate encapsulates. + The type of the fifteenth parameter of the method that this delegate encapsulates. + The type of the sixteenth parameter of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + The thirteenth parameter of the method that this delegate encapsulates. + The fourteenth parameter of the method that this delegate encapsulates. + The fifteenth parameter of the method that this delegate encapsulates. + The sixteenth parameter of the method that this delegate encapsulates. + + + + Encapsulates a method that has sixteen parameters and returns a value of the type specified by the parameter. + + The type of the first parameter of the method that this delegate encapsulates. + The type of the second parameter of the method that this delegate encapsulates. + The type of the third parameter of the method that this delegate encapsulates. + The type of the fourth parameter of the method that this delegate encapsulates. + The type of the fifth parameter of the method that this delegate encapsulates. + The type of the sixth parameter of the method that this delegate encapsulates. + The type of the seventh parameter of the method that this delegate encapsulates. + The type of the eighth parameter of the method that this delegate encapsulates. + The type of the nineth parameter of the method that this delegate encapsulates. + The type of the tenth parameter of the method that this delegate encapsulates. + The type of the eleventh parameter of the method that this delegate encapsulates. + The type of the twelfth parameter of the method that this delegate encapsulates. + The type of the thirteenth parameter of the method that this delegate encapsulates. + The type of the fourteenth parameter of the method that this delegate encapsulates. + The type of the fifteenth parameter of the method that this delegate encapsulates. + The type of the sixteenth parameter of the method that this delegate encapsulates. + The type of the return value of the method that this delegate encapsulates. + The first parameter of the method that this delegate encapsulates. + The second parameter of the method that this delegate encapsulates. + The third parameter of the method that this delegate encapsulates. + The fourth parameter of the method that this delegate encapsulates. + The fifth parameter of the method that this delegate encapsulates. + The sixth parameter of the method that this delegate encapsulates. + The seventh parameter of the method that this delegate encapsulates. + The eighth parameter of the method that this delegate encapsulates. + The nineth parameter of the method that this delegate encapsulates. + The tenth parameter of the method that this delegate encapsulates. + The eleventh parameter of the method that this delegate encapsulates. + The twelfth parameter of the method that this delegate encapsulates. + The thirteenth parameter of the method that this delegate encapsulates. + The fourteenth parameter of the method that this delegate encapsulates. + The fifteenth parameter of the method that this delegate encapsulates. + The sixteenth parameter of the method that this delegate encapsulates. + The return value of the method that this delegate encapsulates. + + + + Helper class to setup a full trace between many mocks + + + + + Initialize a trace setup + + + + + Allow sequence to be repeated + + + + + define nice api + + + + + Perform an expectation in the trace. + + + + + Marks a method as a matcher, which allows complete replacement + of the built-in class with your own argument + matching rules. + + + This feature has been deprecated in favor of the new + and simpler . + + + The argument matching is used to determine whether a concrete + invocation in the mock matches a given setup. This + matching mechanism is fully extensible. + + + There are two parts of a matcher: the compiler matcher + and the runtime matcher. + + + Compiler matcher + Used to satisfy the compiler requirements for the + argument. Needs to be a method optionally receiving any arguments + you might need for the matching, but with a return type that + matches that of the argument. + + Let's say I want to match a lists of orders that contains + a particular one. I might create a compiler matcher like the following: + + + public static class Orders + { + [Matcher] + public static IEnumerable<Order> Contains(Order order) + { + return null; + } + } + + Now we can invoke this static method instead of an argument in an + invocation: + + var order = new Order { ... }; + var mock = new Mock<IRepository<Order>>(); + + mock.Setup(x => x.Save(Orders.Contains(order))) + .Throws<ArgumentException>(); + + Note that the return value from the compiler matcher is irrelevant. + This method will never be called, and is just used to satisfy the + compiler and to signal Moq that this is not a method that we want + to be invoked at runtime. + + + + Runtime matcher + + The runtime matcher is the one that will actually perform evaluation + when the test is run, and is defined by convention to have the + same signature as the compiler matcher, but where the return + value is the first argument to the call, which contains the + object received by the actual invocation at runtime: + + public static bool Contains(IEnumerable<Order> orders, Order order) + { + return orders.Contains(order); + } + + At runtime, the mocked method will be invoked with a specific + list of orders. This value will be passed to this runtime + matcher as the first argument, while the second argument is the + one specified in the setup (x.Save(Orders.Contains(order))). + + The boolean returned determines whether the given argument has been + matched. If all arguments to the expected method are matched, then + the setup matches and is evaluated. + + + + + + Using this extensible infrastructure, you can easily replace the entire + set of matchers with your own. You can also avoid the + typical (and annoying) lengthy expressions that result when you have + multiple arguments that use generics. + + + The following is the complete example explained above: + + public static class Orders + { + [Matcher] + public static IEnumerable<Order> Contains(Order order) + { + return null; + } + + public static bool Contains(IEnumerable<Order> orders, Order order) + { + return orders.Contains(order); + } + } + + And the concrete test using this matcher: + + var order = new Order { ... }; + var mock = new Mock<IRepository<Order>>(); + + mock.Setup(x => x.Save(Orders.Contains(order))) + .Throws<ArgumentException>(); + + // use mock, invoke Save, and have the matcher filter. + + + + + + Provides a mock implementation of . + + Any interface type can be used for mocking, but for classes, only abstract and virtual members can be mocked. + + The behavior of the mock with regards to the setups and the actual calls is determined + by the optional that can be passed to the + constructor. + + Type to mock, which can be an interface or a class. + The following example shows establishing setups with specific values + for method invocations: + + // Arrange + var order = new Order(TALISKER, 50); + var mock = new Mock<IWarehouse>(); + + mock.Setup(x => x.HasInventory(TALISKER, 50)).Returns(true); + + // Act + order.Fill(mock.Object); + + // Assert + Assert.True(order.IsFilled); + + The following example shows how to use the class + to specify conditions for arguments instead of specific values: + + // Arrange + var order = new Order(TALISKER, 50); + var mock = new Mock<IWarehouse>(); + + // shows how to expect a value within a range + mock.Setup(x => x.HasInventory( + It.IsAny<string>(), + It.IsInRange(0, 100, Range.Inclusive))) + .Returns(false); + + // shows how to throw for unexpected calls. + mock.Setup(x => x.Remove( + It.IsAny<string>(), + It.IsAny<int>())) + .Throws(new InvalidOperationException()); + + // Act + order.Fill(mock.Object); + + // Assert + Assert.False(order.IsFilled); + + + + + + Obsolete. + + + + + Obsolete. + + + + + Obsolete. + + + + + Obsolete. + + + + + Obsolete. + + + + + Ctor invoked by AsTInterface exclusively. + + + + + Initializes an instance of the mock with default behavior. + + var mock = new Mock<IFormatProvider>(); + + + + + Initializes an instance of the mock with default behavior and with + the given constructor arguments for the class. (Only valid when is a class) + + The mock will try to find the best match constructor given the constructor arguments, and invoke that + to initialize the instance. This applies only for classes, not interfaces. + + var mock = new Mock<MyProvider>(someArgument, 25); + Optional constructor arguments if the mocked type is a class. + + + + Initializes an instance of the mock with the specified behavior. + + var mock = new Mock<IFormatProvider>(MockBehavior.Relaxed); + Behavior of the mock. + + + + Initializes an instance of the mock with a specific behavior with + the given constructor arguments for the class. + + The mock will try to find the best match constructor given the constructor arguments, and invoke that + to initialize the instance. This applies only to classes, not interfaces. + + var mock = new Mock<MyProvider>(someArgument, 25); + Behavior of the mock.Optional constructor arguments if the mocked type is a class. + + + + Returns the mocked object value. + + + + + Specifies a setup on the mocked type for a call to + to a void method. + + If more than one setup is specified for the same method or property, + the latest one wins and is the one that will be executed. + Lambda expression that specifies the expected method invocation. + + var mock = new Mock<IProcessor>(); + mock.Setup(x => x.Execute("ping")); + + + + + + Specifies a setup on the mocked type for a call to + to a value returning method. + Type of the return value. Typically omitted as it can be inferred from the expression. + If more than one setup is specified for the same method or property, + the latest one wins and is the one that will be executed. + Lambda expression that specifies the method invocation. + + mock.Setup(x => x.HasInventory("Talisker", 50)).Returns(true); + + + + + + Specifies a setup on the mocked type for a call to + to a property getter. + + If more than one setup is set for the same property getter, + the latest one wins and is the one that will be executed. + Type of the property. Typically omitted as it can be inferred from the expression.Lambda expression that specifies the property getter. + + mock.SetupGet(x => x.Suspended) + .Returns(true); + + + + + + Specifies a setup on the mocked type for a call to + to a property setter. + + If more than one setup is set for the same property setter, + the latest one wins and is the one that will be executed. + + This overloads allows the use of a callback already + typed for the property type. + + Type of the property. Typically omitted as it can be inferred from the expression.The Lambda expression that sets a property to a value. + + mock.SetupSet(x => x.Suspended = true); + + + + + + Specifies a setup on the mocked type for a call to + to a property setter. + + If more than one setup is set for the same property setter, + the latest one wins and is the one that will be executed. + Lambda expression that sets a property to a value. + + mock.SetupSet(x => x.Suspended = true); + + + + + + Specifies that the given property should have "property behavior", + meaning that setting its value will cause it to be saved and + later returned when the property is requested. (this is also + known as "stubbing"). + + Type of the property, inferred from the property + expression (does not need to be specified). + Property expression to stub. + If you have an interface with an int property Value, you might + stub it using the following straightforward call: + + var mock = new Mock<IHaveValue>(); + mock.Stub(v => v.Value); + + After the Stub call has been issued, setting and + retrieving the object value will behave as expected: + + IHaveValue v = mock.Object; + + v.Value = 5; + Assert.Equal(5, v.Value); + + + + + + Specifies that the given property should have "property behavior", + meaning that setting its value will cause it to be saved and + later returned when the property is requested. This overload + allows setting the initial value for the property. (this is also + known as "stubbing"). + + Type of the property, inferred from the property + expression (does not need to be specified). + Property expression to stub.Initial value for the property. + If you have an interface with an int property Value, you might + stub it using the following straightforward call: + + var mock = new Mock<IHaveValue>(); + mock.SetupProperty(v => v.Value, 5); + + After the SetupProperty call has been issued, setting and + retrieving the object value will behave as expected: + + IHaveValue v = mock.Object; + // Initial value was stored + Assert.Equal(5, v.Value); + + // New value set which changes the initial value + v.Value = 6; + Assert.Equal(6, v.Value); + + + + + + Specifies that the all properties on the mock should have "property behavior", + meaning that setting its value will cause it to be saved and + later returned when the property is requested. (this is also + known as "stubbing"). The default value for each property will be the + one generated as specified by the property for the mock. + + If the mock is set to , + the mocked default values will also get all properties setup recursively. + + + + + + + + Verifies that a specific invocation matching the given expression was performed on the mock. Use + in conjuntion with the default . + + This example assumes that the mock has been used, and later we want to verify that a given + invocation with specific parameters was performed: + + var mock = new Mock<IProcessor>(); + // exercise mock + //... + // Will throw if the test code didn't call Execute with a "ping" string argument. + mock.Verify(proc => proc.Execute("ping")); + + The invocation was not performed on the mock.Expression to verify. + + + + Verifies that a specific invocation matching the given expression was performed on the mock. Use + in conjuntion with the default . + + The invocation was not call the times specified by + . + Expression to verify.The number of times a method is allowed to be called. + + + + Verifies that a specific invocation matching the given expression was performed on the mock, + specifying a failure error message. Use in conjuntion with the default + . + + This example assumes that the mock has been used, and later we want to verify that a given + invocation with specific parameters was performed: + + var mock = new Mock<IProcessor>(); + // exercise mock + //... + // Will throw if the test code didn't call Execute with a "ping" string argument. + mock.Verify(proc => proc.Execute("ping")); + + The invocation was not performed on the mock.Expression to verify.Message to show if verification fails. + + + + Verifies that a specific invocation matching the given expression was performed on the mock, + specifying a failure error message. Use in conjuntion with the default + . + + The invocation was not call the times specified by + . + Expression to verify.The number of times a method is allowed to be called.Message to show if verification fails. + + + + Verifies that a specific invocation matching the given expression was performed on the mock. Use + in conjuntion with the default . + + This example assumes that the mock has been used, and later we want to verify that a given + invocation with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't call HasInventory. + mock.Verify(warehouse => warehouse.HasInventory(TALISKER, 50)); + + The invocation was not performed on the mock.Expression to verify.Type of return value from the expression. + + + + Verifies that a specific invocation matching the given + expression was performed on the mock. Use in conjuntion + with the default . + + The invocation was not call the times specified by + . + Expression to verify.The number of times a method is allowed to be called.Type of return value from the expression. + + + + Verifies that a specific invocation matching the given + expression was performed on the mock, specifying a failure + error message. + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't call HasInventory. + mock.Verify(warehouse => warehouse.HasInventory(TALISKER, 50), "When filling orders, inventory has to be checked"); + + The invocation was not performed on the mock.Expression to verify.Message to show if verification fails.Type of return value from the expression. + + + + Verifies that a specific invocation matching the given + expression was performed on the mock, specifying a failure + error message. + + The invocation was not call the times specified by + . + Expression to verify.The number of times a method is allowed to be called.Message to show if verification fails.Type of return value from the expression. + + + + Verifies that a property was read on the mock. + + This example assumes that the mock has been used, + and later we want to verify that a given property + was retrieved from it: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't retrieve the IsClosed property. + mock.VerifyGet(warehouse => warehouse.IsClosed); + + The invocation was not performed on the mock.Expression to verify. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + + Verifies that a property was read on the mock. + + The invocation was not call the times specified by + . + The number of times a method is allowed to be called.Expression to verify. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + + Verifies that a property was read on the mock, specifying a failure + error message. + + This example assumes that the mock has been used, + and later we want to verify that a given property + was retrieved from it: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't retrieve the IsClosed property. + mock.VerifyGet(warehouse => warehouse.IsClosed); + + The invocation was not performed on the mock.Expression to verify.Message to show if verification fails. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + + Verifies that a property was read on the mock, specifying a failure + error message. + + The invocation was not call the times specified by + . + The number of times a method is allowed to be called.Expression to verify.Message to show if verification fails. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + + Verifies that a property was set on the mock. + + This example assumes that the mock has been used, + and later we want to verify that a given property + was set on it: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed = true); + + The invocation was not performed on the mock.Expression to verify. + + + + Verifies that a property was set on the mock. + + The invocation was not call the times specified by + . + The number of times a method is allowed to be called.Expression to verify. + + + + Verifies that a property was set on the mock, specifying + a failure message. + + This example assumes that the mock has been used, + and later we want to verify that a given property + was set on it: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed = true, "Warehouse should always be closed after the action"); + + The invocation was not performed on the mock.Expression to verify.Message to show if verification fails. + + + + Verifies that a property was set on the mock, specifying + a failure message. + + The invocation was not call the times specified by + . + The number of times a method is allowed to be called.Expression to verify.Message to show if verification fails. + + + + Raises the event referenced in using + the given argument. + + The argument is + invalid for the target event invocation, or the is + not an event attach or detach expression. + + The following example shows how to raise a event: + + var mock = new Mock<IViewModel>(); + + mock.Raise(x => x.PropertyChanged -= null, new PropertyChangedEventArgs("Name")); + + + This example shows how to invoke an event with a custom event arguments + class in a view that will cause its corresponding presenter to + react by changing its state: + + var mockView = new Mock<IOrdersView>(); + var presenter = new OrdersPresenter(mockView.Object); + + // Check that the presenter has no selection by default + Assert.Null(presenter.SelectedOrder); + + // Raise the event with a specific arguments data + mockView.Raise(v => v.SelectionChanged += null, new OrderEventArgs { Order = new Order("moq", 500) }); + + // Now the presenter reacted to the event, and we have a selected order + Assert.NotNull(presenter.SelectedOrder); + Assert.Equal("moq", presenter.SelectedOrder.ProductName); + + + + + + Raises the event referenced in using + the given argument for a non-EventHandler typed event. + + The arguments are + invalid for the target event invocation, or the is + not an event attach or detach expression. + + The following example shows how to raise a custom event that does not adhere to + the standard EventHandler: + + var mock = new Mock<IViewModel>(); + + mock.Raise(x => x.MyEvent -= null, "Name", bool, 25); + + + + + + Exposes the mocked object instance. + + + + + Provides legacy API members as extensions so that + existing code continues to compile, but new code + doesn't see then. + + + + + Obsolete. + + + + + Obsolete. + + + + + Obsolete. + + + + + Provides additional methods on mocks. + + + Provided as extension methods as they confuse the compiler + with the overloads taking Action. + + + + + Specifies a setup on the mocked type for a call to + to a property setter, regardless of its value. + + + If more than one setup is set for the same property setter, + the latest one wins and is the one that will be executed. + + Type of the property. Typically omitted as it can be inferred from the expression. + Type of the mock. + The target mock for the setup. + Lambda expression that specifies the property setter. + + + mock.SetupSet(x => x.Suspended); + + + + This method is not legacy, but must be on an extension method to avoid + confusing the compiler with the new Action syntax. + + + + + Verifies that a property has been set on the mock, regarless of its value. + + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed); + + + The invocation was not performed on the mock. + Expression to verify. + The mock instance. + Mocked type. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + Verifies that a property has been set on the mock, specifying a failure + error message. + + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed); + + + The invocation was not performed on the mock. + Expression to verify. + Message to show if verification fails. + The mock instance. + Mocked type. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + Verifies that a property has been set on the mock, regardless + of the value but only the specified number of times. + + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed); + + + The invocation was not performed on the mock. + The invocation was not call the times specified by + . + The mock instance. + Mocked type. + The number of times a method is allowed to be called. + Expression to verify. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + Verifies that a property has been set on the mock, regardless + of the value but only the specified number of times, and specifying a failure + error message. + + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed); + + + The invocation was not performed on the mock. + The invocation was not call the times specified by + . + The mock instance. + Mocked type. + The number of times a method is allowed to be called. + Message to show if verification fails. + Expression to verify. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + Helper for sequencing return values in the same method. + + + + + Return a sequence of values, once per call. + + + + + Casts the expression to a lambda expression, removing + a cast if there's any. + + + + + Casts the body of the lambda expression to a . + + If the body is not a method call. + + + + Converts the body of the lambda expression into the referenced by it. + + + + + Checks whether the body of the lambda expression is a property access. + + + + + Checks whether the expression is a property access. + + + + + Checks whether the body of the lambda expression is a property indexer, which is true + when the expression is an whose + has + equal to . + + + + + Checks whether the expression is a property indexer, which is true + when the expression is an whose + has + equal to . + + + + + Creates an expression that casts the given expression to the + type. + + + + + TODO: remove this code when https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=331583 + is fixed. + + + + + Provides partial evaluation of subtrees, whenever they can be evaluated locally. + + Matt Warren: http://blogs.msdn.com/mattwar + Documented by InSTEDD: http://www.instedd.org + + + + Performs evaluation and replacement of independent sub-trees + + The root of the expression tree. + A function that decides whether a given expression + node can be part of the local function. + A new tree with sub-trees evaluated and replaced. + + + + Performs evaluation and replacement of independent sub-trees + + The root of the expression tree. + A new tree with sub-trees evaluated and replaced. + + + + Evaluates and replaces sub-trees when first candidate is reached (top-down) + + + + + Performs bottom-up analysis to determine which nodes can possibly + be part of an evaluated sub-tree. + + + + + Ensures the given is not null. + Throws otherwise. + + + + + Ensures the given string is not null or empty. + Throws in the first case, or + in the latter. + + + + + Checks an argument to ensure it is in the specified range including the edges. + + Type of the argument to check, it must be an type. + + The expression containing the name of the argument. + The argument value to check. + The minimun allowed value for the argument. + The maximun allowed value for the argument. + + + + Checks an argument to ensure it is in the specified range excluding the edges. + + Type of the argument to check, it must be an type. + + The expression containing the name of the argument. + The argument value to check. + The minimun allowed value for the argument. + The maximun allowed value for the argument. + + + + Implemented by all generated mock object instances. + + + + + Implemented by all generated mock object instances. + + + + + Reference the Mock that contains this as the mock.Object value. + + + + + Reference the Mock that contains this as the mock.Object value. + + + + + Implements the actual interception and method invocation for + all mocks. + + + + + Get an eventInfo for a given event name. Search type ancestors depth first if necessary. + + Name of the event, with the set_ or get_ prefix already removed + + + + Given a type return all of its ancestors, both types and interfaces. + + The type to find immediate ancestors of + + + + Implements the fluent API. + + + + + Defines the Callback verb for property setter setups. + + Type of the property. + + + + Specifies a callback to invoke when the property is set that receives the + property value being set. + + Callback method to invoke. + + Invokes the given callback with the property value being set. + + mock.SetupSet(x => x.Suspended) + .Callback((bool state) => Console.WriteLine(state)); + + + + + + Allows the specification of a matching condition for an + argument in a method invocation, rather than a specific + argument value. "It" refers to the argument being matched. + + This class allows the setup to match a method invocation + with an arbitrary value, with a value in a specified range, or + even one that matches a given predicate. + + + + + Matches any value of the given type. + + Typically used when the actual argument value for a method + call is not relevant. + + + // Throws an exception for a call to Remove with any string value. + mock.Setup(x => x.Remove(It.IsAny<string>())).Throws(new InvalidOperationException()); + + Type of the value. + + + + Matches any value that satisfies the given predicate. + Type of the argument to check.The predicate used to match the method argument. + Allows the specification of a predicate to perform matching + of method call arguments. + + This example shows how to return the value 1 whenever the argument to the + Do method is an even number. + + mock.Setup(x => x.Do(It.Is<int>(i => i % 2 == 0))) + .Returns(1); + + This example shows how to throw an exception if the argument to the + method is a negative number: + + mock.Setup(x => x.GetUser(It.Is<int>(i => i < 0))) + .Throws(new ArgumentException()); + + + + + + Matches any value that is in the range specified. + Type of the argument to check.The lower bound of the range.The upper bound of the range. + The kind of range. See . + + The following example shows how to expect a method call + with an integer argument within the 0..100 range. + + mock.Setup(x => x.HasInventory( + It.IsAny<string>(), + It.IsInRange(0, 100, Range.Inclusive))) + .Returns(false); + + + + + + Matches a string argument if it matches the given regular expression pattern. + The pattern to use to match the string argument value. + The following example shows how to expect a call to a method where the + string argument matches the given regular expression: + + mock.Setup(x => x.Check(It.IsRegex("[a-z]+"))).Returns(1); + + + + + + Matches a string argument if it matches the given regular expression pattern. + The pattern to use to match the string argument value.The options used to interpret the pattern. + The following example shows how to expect a call to a method where the + string argument matches the given regular expression, in a case insensitive way: + + mock.Setup(x => x.Check(It.IsRegex("[a-z]+", RegexOptions.IgnoreCase))).Returns(1); + + + + + + Matcher to treat static functions as matchers. + + mock.Setup(x => x.StringMethod(A.MagicString())); + + public static class A + { + [Matcher] + public static string MagicString() { return null; } + public static bool MagicString(string arg) + { + return arg == "magic"; + } + } + + Will succeed if: mock.Object.StringMethod("magic"); + and fail with any other call. + + + + + Options to customize the behavior of the mock. + + + + + Causes the mock to always throw + an exception for invocations that don't have a + corresponding setup. + + + + + Will never throw exceptions, returning default + values when necessary (null for reference types, + zero for value types or empty enumerables and arrays). + + + + + Default mock behavior, which equals . + + + + + Exception thrown by mocks when setups are not matched, + the mock is not properly setup, etc. + + + A distinct exception type is provided so that exceptions + thrown by the mock can be differentiated in tests that + expect other exceptions to be thrown (i.e. ArgumentException). + + Richer exception hierarchy/types are not provided as + tests typically should not catch or expect exceptions + from the mocks. These are typically the result of changes + in the tested class or its collaborators implementation, and + result in fixes in the mock setup so that they dissapear and + allow the test to pass. + + + + + + Supports the serialization infrastructure. + + Serialization information. + Streaming context. + + + + Supports the serialization infrastructure. + + Serialization information. + Streaming context. + + + + Made internal as it's of no use for + consumers, but it's important for + our own tests. + + + + + Used by the mock factory to accumulate verification + failures. + + + + + Supports the serialization infrastructure. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Mock type has already been initialized by accessing its Object property. Adding interfaces must be done before that.. + + + + + Looks up a localized string similar to Value cannot be an empty string.. + + + + + Looks up a localized string similar to Can only add interfaces to the mock.. + + + + + Looks up a localized string similar to Can't set return value for void method {0}.. + + + + + Looks up a localized string similar to Constructor arguments cannot be passed for interface mocks.. + + + + + Looks up a localized string similar to A matching constructor for the given arguments was not found on the mocked type.. + + + + + Looks up a localized string similar to Could not locate event for attach or detach method {0}.. + + + + + Looks up a localized string similar to Expression {0} involves a field access, which is not supported. Use properties instead.. + + + + + Looks up a localized string similar to Type to mock must be an interface or an abstract or non-sealed class. . + + + + + Looks up a localized string similar to Cannot retrieve a mock with the given object type {0} as it's not the main type of the mock or any of its additional interfaces. + Please cast the argument to one of the supported types: {1}. + Remember that there's no generics covariance in the CLR, so your object must be one of these types in order for the call to succeed.. + + + + + Looks up a localized string similar to The equals ("==" or "=" in VB) and the conditional 'and' ("&&" or "AndAlso" in VB) operators are the only ones supported in the query specification expression. Unsupported expression: {0}. + + + + + Looks up a localized string similar to LINQ method '{0}' not supported.. + + + + + Looks up a localized string similar to Expression contains a call to a method which is not virtual (overridable in VB) or abstract. Unsupported expression: {0}. + + + + + Looks up a localized string similar to Member {0}.{1} does not exist.. + + + + + Looks up a localized string similar to Method {0}.{1} is public. Use strong-typed Expect overload instead: + mock.Setup(x => x.{1}()); + . + + + + + Looks up a localized string similar to {0} invocation failed with mock behavior {1}. + {2}. + + + + + Looks up a localized string similar to Expected only {0} calls to {1}.. + + + + + Looks up a localized string similar to Expected only one call to {0}.. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock at least {2} times, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock at least once, but was never performed: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock at most {3} times, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock at most once, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock between {2} and {3} times (Exclusive), but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock between {2} and {3} times (Inclusive), but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock exactly {2} times, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock should never have been performed, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock once, but was {4} times: {1}. + + + + + Looks up a localized string similar to All invocations on the mock must have a corresponding setup.. + + + + + Looks up a localized string similar to Object instance was not created by Moq.. + + + + + Looks up a localized string similar to Out expression must evaluate to a constant value.. + + + + + Looks up a localized string similar to Property {0}.{1} does not have a getter.. + + + + + Looks up a localized string similar to Property {0}.{1} does not exist.. + + + + + Looks up a localized string similar to Property {0}.{1} is write-only.. + + + + + Looks up a localized string similar to Property {0}.{1} is read-only.. + + + + + Looks up a localized string similar to Property {0}.{1} does not have a setter.. + + + + + Looks up a localized string similar to Cannot raise a mocked event unless it has been associated (attached) to a concrete event in a mocked object.. + + + + + Looks up a localized string similar to Ref expression must evaluate to a constant value.. + + + + + Looks up a localized string similar to Invocation needs to return a value and therefore must have a corresponding setup that provides it.. + + + + + Looks up a localized string similar to A lambda expression is expected as the argument to It.Is<T>.. + + + + + Looks up a localized string similar to Invocation {0} should not have been made.. + + + + + Looks up a localized string similar to Expression is not a method invocation: {0}. + + + + + Looks up a localized string similar to Expression is not a property access: {0}. + + + + + Looks up a localized string similar to Expression is not a property setter invocation.. + + + + + Looks up a localized string similar to Expression references a method that does not belong to the mocked object: {0}. + + + + + Looks up a localized string similar to Invalid setup on a non-virtual (overridable in VB) member: {0}. + + + + + Looks up a localized string similar to Type {0} does not implement required interface {1}. + + + + + Looks up a localized string similar to Type {0} does not from required type {1}. + + + + + Looks up a localized string similar to To specify a setup for public property {0}.{1}, use the typed overloads, such as: + mock.Setup(x => x.{1}).Returns(value); + mock.SetupGet(x => x.{1}).Returns(value); //equivalent to previous one + mock.SetupSet(x => x.{1}).Callback(callbackDelegate); + . + + + + + Looks up a localized string similar to Unsupported expression: {0}. + + + + + Looks up a localized string similar to Only property accesses are supported in intermediate invocations on a setup. Unsupported expression {0}.. + + + + + Looks up a localized string similar to Expression contains intermediate property access {0}.{1} which is of type {2} and cannot be mocked. Unsupported expression {3}.. + + + + + Looks up a localized string similar to Setter expression cannot use argument matchers that receive parameters.. + + + + + Looks up a localized string similar to Member {0} is not supported for protected mocking.. + + + + + Looks up a localized string similar to Setter expression can only use static custom matchers.. + + + + + Looks up a localized string similar to The following setups were not matched: + {0}. + + + + + Looks up a localized string similar to Invalid verify on a non-virtual (overridable in VB) member: {0}. + + + + + Allows setups to be specified for protected members by using their + name as a string, rather than strong-typing them which is not possible + due to their visibility. + + + + + Specifies a setup for a void method invocation with the given + , optionally specifying arguments for the method call. + + The name of the void method to be invoked. + The optional arguments for the invocation. If argument matchers are used, + remember to use rather than . + + + + Specifies a setup for an invocation on a property or a non void method with the given + , optionally specifying arguments for the method call. + + The name of the method or property to be invoked. + The optional arguments for the invocation. If argument matchers are used, + remember to use rather than . + The return type of the method or property. + + + + Specifies a setup for an invocation on a property getter with the given + . + + The name of the property. + The type of the property. + + + + Specifies a setup for an invocation on a property setter with the given + . + + The name of the property. + The property value. If argument matchers are used, + remember to use rather than . + The type of the property. + + + + Specifies a verify for a void method with the given , + optionally specifying arguments for the method call. Use in conjuntion with the default + . + + The invocation was not call the times specified by + . + The name of the void method to be verified. + The number of times a method is allowed to be called. + The optional arguments for the invocation. If argument matchers are used, + remember to use rather than . + + + + Specifies a verify for an invocation on a property or a non void method with the given + , optionally specifying arguments for the method call. + + The invocation was not call the times specified by + . + The name of the method or property to be invoked. + The optional arguments for the invocation. If argument matchers are used, + remember to use rather than . + The number of times a method is allowed to be called. + The type of return value from the expression. + + + + Specifies a verify for an invocation on a property getter with the given + . + The invocation was not call the times specified by + . + + The name of the property. + The number of times a method is allowed to be called. + The type of the property. + + + + Specifies a setup for an invocation on a property setter with the given + . + + The invocation was not call the times specified by + . + The name of the property. + The number of times a method is allowed to be called. + The property value. + The type of the property. If argument matchers are used, + remember to use rather than . + + + + Allows the specification of a matching condition for an + argument in a protected member setup, rather than a specific + argument value. "ItExpr" refers to the argument being matched. + + + Use this variant of argument matching instead of + for protected setups. + This class allows the setup to match a method invocation + with an arbitrary value, with a value in a specified range, or + even one that matches a given predicate, or null. + + + + + Matches a null value of the given type. + + + Required for protected mocks as the null value cannot be used + directly as it prevents proper method overload selection. + + + + // Throws an exception for a call to Remove with a null string value. + mock.Protected() + .Setup("Remove", ItExpr.IsNull<string>()) + .Throws(new InvalidOperationException()); + + + Type of the value. + + + + Matches any value of the given type. + + + Typically used when the actual argument value for a method + call is not relevant. + + + + // Throws an exception for a call to Remove with any string value. + mock.Protected() + .Setup("Remove", ItExpr.IsAny<string>()) + .Throws(new InvalidOperationException()); + + + Type of the value. + + + + Matches any value that satisfies the given predicate. + + Type of the argument to check. + The predicate used to match the method argument. + + Allows the specification of a predicate to perform matching + of method call arguments. + + + This example shows how to return the value 1 whenever the argument to the + Do method is an even number. + + mock.Protected() + .Setup("Do", ItExpr.Is<int>(i => i % 2 == 0)) + .Returns(1); + + This example shows how to throw an exception if the argument to the + method is a negative number: + + mock.Protected() + .Setup("GetUser", ItExpr.Is<int>(i => i < 0)) + .Throws(new ArgumentException()); + + + + + + Matches any value that is in the range specified. + + Type of the argument to check. + The lower bound of the range. + The upper bound of the range. + The kind of range. See . + + The following example shows how to expect a method call + with an integer argument within the 0..100 range. + + mock.Protected() + .Setup("HasInventory", + ItExpr.IsAny<string>(), + ItExpr.IsInRange(0, 100, Range.Inclusive)) + .Returns(false); + + + + + + Matches a string argument if it matches the given regular expression pattern. + + The pattern to use to match the string argument value. + + The following example shows how to expect a call to a method where the + string argument matches the given regular expression: + + mock.Protected() + .Setup("Check", ItExpr.IsRegex("[a-z]+")) + .Returns(1); + + + + + + Matches a string argument if it matches the given regular expression pattern. + + The pattern to use to match the string argument value. + The options used to interpret the pattern. + + The following example shows how to expect a call to a method where the + string argument matches the given regular expression, in a case insensitive way: + + mock.Protected() + .Setup("Check", ItExpr.IsRegex("[a-z]+", RegexOptions.IgnoreCase)) + .Returns(1); + + + + + + Enables the Protected() method on , + allowing setups to be set for protected members by using their + name as a string, rather than strong-typing them which is not possible + due to their visibility. + + + + + Enable protected setups for the mock. + + Mocked object type. Typically omitted as it can be inferred from the mock instance. + The mock to set the protected setups on. + + + + + + + + + + + + Kind of range to use in a filter specified through + . + + + + + The range includes the to and + from values. + + + + + The range does not include the to and + from values. + + + + + Determines the way default values are generated + calculated for loose mocks. + + + + + Default behavior, which generates empty values for + value types (i.e. default(int)), empty array and + enumerables, and nulls for all other reference types. + + + + + Whenever the default value generated by + is null, replaces this value with a mock (if the type + can be mocked). + + + For sealed classes, a null value will be generated. + + + + + A default implementation of IQueryable for use with QueryProvider + + + + + The is a + static method that returns an IQueryable of Mocks of T which is used to + apply the linq specification to. + + + + + Allows creation custom value matchers that can be used on setups and verification, + completely replacing the built-in class with your own argument + matching rules. + + See also . + + + + + Provided for the sole purpose of rendering the delegate passed to the + matcher constructor if no friendly render lambda is provided. + + + + + Initializes the match with the condition that + will be checked in order to match invocation + values. + The condition to match against actual values. + + + + + + + + + This method is used to set an expression as the last matcher invoked, + which is used in the SetupSet to allow matchers in the prop = value + delegate expression. This delegate is executed in "fluent" mode in + order to capture the value being set, and construct the corresponding + methodcall. + This is also used in the MatcherFactory for each argument expression. + This method ensures that when we execute the delegate, we + also track the matcher that was invoked, so that when we create the + methodcall we build the expression using it, rather than the null/default + value returned from the actual invocation. + + + + + Allows creation custom value matchers that can be used on setups and verification, + completely replacing the built-in class with your own argument + matching rules. + Type of the value to match. + The argument matching is used to determine whether a concrete + invocation in the mock matches a given setup. This + matching mechanism is fully extensible. + + Creating a custom matcher is straightforward. You just need to create a method + that returns a value from a call to with + your matching condition and optional friendly render expression: + + [Matcher] + public Order IsBigOrder() + { + return Match<Order>.Create( + o => o.GrandTotal >= 5000, + /* a friendly expression to render on failures */ + () => IsBigOrder()); + } + + This method can be used in any mock setup invocation: + + mock.Setup(m => m.Submit(IsBigOrder()).Throws<UnauthorizedAccessException>(); + + At runtime, Moq knows that the return value was a matcher (note that the method MUST be + annotated with the [Matcher] attribute in order to determine this) and + evaluates your predicate with the actual value passed into your predicate. + + Another example might be a case where you want to match a lists of orders + that contains a particular one. You might create matcher like the following: + + + public static class Orders + { + [Matcher] + public static IEnumerable<Order> Contains(Order order) + { + return Match<IEnumerable<Order>>.Create(orders => orders.Contains(order)); + } + } + + Now we can invoke this static method instead of an argument in an + invocation: + + var order = new Order { ... }; + var mock = new Mock<IRepository<Order>>(); + + mock.Setup(x => x.Save(Orders.Contains(order))) + .Throws<ArgumentException>(); + + + + + + Tracks the current mock and interception context. + + + + + Having an active fluent mock context means that the invocation + is being performed in "trial" mode, just to gather the + target method and arguments that need to be matched later + when the actual invocation is made. + + + + + A that returns an empty default value + for non-mockeable types, and mocks for all other types (interfaces and + non-sealed classes) that can be mocked. + + + + + Allows querying the universe of mocks for those that behave + according to the LINQ query specification. + + + This entry-point into Linq to Mocks is the only one in the root Moq + namespace to ease discovery. But to get all the mocking extension + methods on Object, a using of Moq.Linq must be done, so that the + polluting of the intellisense for all objects is an explicit opt-in. + + + + + Access the universe of mocks of the given type, to retrieve those + that behave according to the LINQ query specification. + + The type of the mocked object to query. + + + + Access the universe of mocks of the given type, to retrieve those + that behave according to the LINQ query specification. + + The predicate with the setup expressions. + The type of the mocked object to query. + + + + Creates an mock object of the indicated type. + + The type of the mocked object. + The mocked object created. + + + + Creates an mock object of the indicated type. + + The predicate with the setup expressions. + The type of the mocked object. + The mocked object created. + + + + Creates the mock query with the underlying queriable implementation. + + + + + Wraps the enumerator inside a queryable. + + + + + Method that is turned into the actual call from .Query{T}, to + transform the queryable query into a normal enumerable query. + This method is never used directly by consumers. + + + + + Extension method used to support Linq-like setup properties that are not virtual but do have + a getter and a setter, thereby allowing the use of Linq to Mocks to quickly initialize Dtos too :) + + + + + Helper extensions that are used by the query translator. + + + + + Retrieves a fluent mock from the given setup expression. + + + + + Defines the number of invocations allowed by a mocked method. + + + + + Specifies that a mocked method should be invoked times as minimum. + The minimun number of times.An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked one time as minimum. + An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked time as maximun. + The maximun number of times.An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked one time as maximun. + An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked between and + times. + The minimun number of times.The maximun number of times. + The kind of range. See . + An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked exactly times. + The times that a method or property can be called.An object defining the allowed number of invocations. + + + + Specifies that a mocked method should not be invoked. + An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked exactly one time. + An object defining the allowed number of invocations. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether two specified objects have the same value. + + The first . + + The second . + + true if the value of left is the same as the value of right; otherwise, false. + + + + + Determines whether two specified objects have different values. + + The first . + + The second . + + true if the value of left is different from the value of right; otherwise, false. + + + + diff --git a/packages/Moq.4.0.10827/lib/NET40/Moq.dll b/packages/Moq.4.0.10827/lib/NET40/Moq.dll new file mode 100644 index 000000000..3a3e653aa Binary files /dev/null and b/packages/Moq.4.0.10827/lib/NET40/Moq.dll differ diff --git a/packages/Moq.4.0.10827/lib/NET40/Moq.pdb b/packages/Moq.4.0.10827/lib/NET40/Moq.pdb new file mode 100644 index 000000000..03cca5608 Binary files /dev/null and b/packages/Moq.4.0.10827/lib/NET40/Moq.pdb differ diff --git a/NzbDrone.Core.Test/Libs/Moq.xml b/packages/Moq.4.0.10827/lib/NET40/Moq.xml similarity index 100% rename from NzbDrone.Core.Test/Libs/Moq.xml rename to packages/Moq.4.0.10827/lib/NET40/Moq.xml diff --git a/packages/Moq.4.0.10827/lib/Silverlight4/Castle.Core.dll b/packages/Moq.4.0.10827/lib/Silverlight4/Castle.Core.dll new file mode 100644 index 000000000..a887ecd5f Binary files /dev/null and b/packages/Moq.4.0.10827/lib/Silverlight4/Castle.Core.dll differ diff --git a/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.dll b/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.dll new file mode 100644 index 000000000..fb516c1dd Binary files /dev/null and b/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.dll differ diff --git a/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.pdb b/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.pdb new file mode 100644 index 000000000..d33d394fc Binary files /dev/null and b/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.pdb differ diff --git a/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.xml b/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.xml new file mode 100644 index 000000000..ac37f5c62 --- /dev/null +++ b/packages/Moq.4.0.10827/lib/Silverlight4/Moq.Silverlight.xml @@ -0,0 +1,5101 @@ + + + + Moq.Silverlight + + + + + Provides a mock implementation of . + + Any interface type can be used for mocking, but for classes, only abstract and virtual members can be mocked. + + The behavior of the mock with regards to the setups and the actual calls is determined + by the optional that can be passed to the + constructor. + + Type to mock, which can be an interface or a class. + The following example shows establishing setups with specific values + for method invocations: + + // Arrange + var order = new Order(TALISKER, 50); + var mock = new Mock<IWarehouse>(); + + mock.Setup(x => x.HasInventory(TALISKER, 50)).Returns(true); + + // Act + order.Fill(mock.Object); + + // Assert + Assert.True(order.IsFilled); + + The following example shows how to use the class + to specify conditions for arguments instead of specific values: + + // Arrange + var order = new Order(TALISKER, 50); + var mock = new Mock<IWarehouse>(); + + // shows how to expect a value within a range + mock.Setup(x => x.HasInventory( + It.IsAny<string>(), + It.IsInRange(0, 100, Range.Inclusive))) + .Returns(false); + + // shows how to throw for unexpected calls. + mock.Setup(x => x.Remove( + It.IsAny<string>(), + It.IsAny<int>())) + .Throws(new InvalidOperationException()); + + // Act + order.Fill(mock.Object); + + // Assert + Assert.False(order.IsFilled); + + + + + + Base class for mocks and static helper class with methods that + apply to mocked objects, such as to + retrieve a from an object instance. + + + + + Helper interface used to hide the base + members from the fluent API to make it much cleaner + in Visual Studio intellisense. + + + + + + + + + + + + + + + + + Creates an mock object of the indicated type. + + The type of the mocked object. + The mocked object created. + + + + Creates an mock object of the indicated type. + + The predicate with the specification of how the mocked object should behave. + The type of the mocked object. + The mocked object created. + + + + Initializes a new instance of the class. + + + + + Retrieves the mock object for the given object instance. + + Type of the mock to retrieve. Can be omitted as it's inferred + from the object instance passed in as the instance. + The instance of the mocked object.The mock associated with the mocked object. + The received instance + was not created by Moq. + + The following example shows how to add a new setup to an object + instance which is not the original but rather + the object associated with it: + + // Typed instance, not the mock, is retrieved from some test API. + HttpContextBase context = GetMockContext(); + + // context.Request is the typed object from the "real" API + // so in order to add a setup to it, we need to get + // the mock that "owns" it + Mock<HttpRequestBase> request = Mock.Get(context.Request); + mock.Setup(req => req.AppRelativeCurrentExecutionFilePath) + .Returns(tempUrl); + + + + + + Returns the mocked object value. + + + + + Verifies that all verifiable expectations have been met. + + This example sets up an expectation and marks it as verifiable. After + the mock is used, a Verify() call is issued on the mock + to ensure the method in the setup was invoked: + + var mock = new Mock<IWarehouse>(); + this.Setup(x => x.HasInventory(TALISKER, 50)).Verifiable().Returns(true); + ... + // other test code + ... + // Will throw if the test code has didn't call HasInventory. + this.Verify(); + + Not all verifiable expectations were met. + + + + Verifies all expectations regardless of whether they have + been flagged as verifiable. + + This example sets up an expectation without marking it as verifiable. After + the mock is used, a call is issued on the mock + to ensure that all expectations are met: + + var mock = new Mock<IWarehouse>(); + this.Setup(x => x.HasInventory(TALISKER, 50)).Returns(true); + ... + // other test code + ... + // Will throw if the test code has didn't call HasInventory, even + // that expectation was not marked as verifiable. + this.VerifyAll(); + + At least one expectation was not met. + + + + Gets the interceptor target for the given expression and root mock, + building the intermediate hierarchy of mock objects if necessary. + + + + + Raises the associated event with the given + event argument data. + + + + + Raises the associated event with the given + event argument data. + + + + + Adds an interface implementation to the mock, + allowing setups to be specified for it. + + This method can only be called before the first use + of the mock property, at which + point the runtime type has already been generated + and no more interfaces can be added to it. + + Also, must be an + interface and not a class, which must be specified + when creating the mock instead. + + + The mock type + has already been generated by accessing the property. + + The specified + is not an interface. + + The following example creates a mock for the main interface + and later adds to it to verify + it's called by the consumer code: + + var mock = new Mock<IProcessor>(); + mock.Setup(x => x.Execute("ping")); + + // add IDisposable interface + var disposable = mock.As<IDisposable>(); + disposable.Setup(d => d.Dispose()).Verifiable(); + + Type of interface to cast the mock to. + + + + + + + Behavior of the mock, according to the value set in the constructor. + + + + + Whether the base member virtual implementation will be called + for mocked classes if no setup is matched. Defaults to . + + + + + Specifies the behavior to use when returning default values for + unexpected invocations on loose mocks. + + + + + Gets the mocked object instance. + + + + + Retrieves the type of the mocked object, its generic type argument. + This is used in the auto-mocking of hierarchy access. + + + + + Specifies the class that will determine the default + value to return when invocations are made that + have no setups and need to return a default + value (for loose mocks). + + + + + Exposes the list of extra interfaces implemented by the mock. + + + + + Ctor invoked by AsTInterface exclusively. + + + + + Initializes an instance of the mock with default behavior. + + var mock = new Mock<IFormatProvider>(); + + + + + Initializes an instance of the mock with default behavior and with + the given constructor arguments for the class. (Only valid when is a class) + + The mock will try to find the best match constructor given the constructor arguments, and invoke that + to initialize the instance. This applies only for classes, not interfaces. + + var mock = new Mock<MyProvider>(someArgument, 25); + Optional constructor arguments if the mocked type is a class. + + + + Initializes an instance of the mock with the specified behavior. + + var mock = new Mock<IFormatProvider>(MockBehavior.Relaxed); + Behavior of the mock. + + + + Initializes an instance of the mock with a specific behavior with + the given constructor arguments for the class. + + The mock will try to find the best match constructor given the constructor arguments, and invoke that + to initialize the instance. This applies only to classes, not interfaces. + + var mock = new Mock<MyProvider>(someArgument, 25); + Behavior of the mock.Optional constructor arguments if the mocked type is a class. + + + + Returns the mocked object value. + + + + + Specifies a setup on the mocked type for a call to + to a void method. + + If more than one setup is specified for the same method or property, + the latest one wins and is the one that will be executed. + Lambda expression that specifies the expected method invocation. + + var mock = new Mock<IProcessor>(); + mock.Setup(x => x.Execute("ping")); + + + + + + Specifies a setup on the mocked type for a call to + to a value returning method. + Type of the return value. Typically omitted as it can be inferred from the expression. + If more than one setup is specified for the same method or property, + the latest one wins and is the one that will be executed. + Lambda expression that specifies the method invocation. + + mock.Setup(x => x.HasInventory("Talisker", 50)).Returns(true); + + + + + + Specifies a setup on the mocked type for a call to + to a property getter. + + If more than one setup is set for the same property getter, + the latest one wins and is the one that will be executed. + Type of the property. Typically omitted as it can be inferred from the expression.Lambda expression that specifies the property getter. + + mock.SetupGet(x => x.Suspended) + .Returns(true); + + + + + + Specifies a setup on the mocked type for a call to + to a property setter. + + If more than one setup is set for the same property setter, + the latest one wins and is the one that will be executed. + + This overloads allows the use of a callback already + typed for the property type. + + Type of the property. Typically omitted as it can be inferred from the expression.The Lambda expression that sets a property to a value. + + mock.SetupSet(x => x.Suspended = true); + + + + + + Specifies a setup on the mocked type for a call to + to a property setter. + + If more than one setup is set for the same property setter, + the latest one wins and is the one that will be executed. + Lambda expression that sets a property to a value. + + mock.SetupSet(x => x.Suspended = true); + + + + + + Specifies that the given property should have "property behavior", + meaning that setting its value will cause it to be saved and + later returned when the property is requested. (this is also + known as "stubbing"). + + Type of the property, inferred from the property + expression (does not need to be specified). + Property expression to stub. + If you have an interface with an int property Value, you might + stub it using the following straightforward call: + + var mock = new Mock<IHaveValue>(); + mock.Stub(v => v.Value); + + After the Stub call has been issued, setting and + retrieving the object value will behave as expected: + + IHaveValue v = mock.Object; + + v.Value = 5; + Assert.Equal(5, v.Value); + + + + + + Specifies that the given property should have "property behavior", + meaning that setting its value will cause it to be saved and + later returned when the property is requested. This overload + allows setting the initial value for the property. (this is also + known as "stubbing"). + + Type of the property, inferred from the property + expression (does not need to be specified). + Property expression to stub.Initial value for the property. + If you have an interface with an int property Value, you might + stub it using the following straightforward call: + + var mock = new Mock<IHaveValue>(); + mock.SetupProperty(v => v.Value, 5); + + After the SetupProperty call has been issued, setting and + retrieving the object value will behave as expected: + + IHaveValue v = mock.Object; + // Initial value was stored + Assert.Equal(5, v.Value); + + // New value set which changes the initial value + v.Value = 6; + Assert.Equal(6, v.Value); + + + + + + Specifies that the all properties on the mock should have "property behavior", + meaning that setting its value will cause it to be saved and + later returned when the property is requested. (this is also + known as "stubbing"). The default value for each property will be the + one generated as specified by the property for the mock. + + If the mock is set to , + the mocked default values will also get all properties setup recursively. + + + + + + + + Verifies that a specific invocation matching the given expression was performed on the mock. Use + in conjuntion with the default . + + This example assumes that the mock has been used, and later we want to verify that a given + invocation with specific parameters was performed: + + var mock = new Mock<IProcessor>(); + // exercise mock + //... + // Will throw if the test code didn't call Execute with a "ping" string argument. + mock.Verify(proc => proc.Execute("ping")); + + The invocation was not performed on the mock.Expression to verify. + + + + Verifies that a specific invocation matching the given expression was performed on the mock. Use + in conjuntion with the default . + + The invocation was not call the times specified by + . + Expression to verify.The number of times a method is allowed to be called. + + + + Verifies that a specific invocation matching the given expression was performed on the mock, + specifying a failure error message. Use in conjuntion with the default + . + + This example assumes that the mock has been used, and later we want to verify that a given + invocation with specific parameters was performed: + + var mock = new Mock<IProcessor>(); + // exercise mock + //... + // Will throw if the test code didn't call Execute with a "ping" string argument. + mock.Verify(proc => proc.Execute("ping")); + + The invocation was not performed on the mock.Expression to verify.Message to show if verification fails. + + + + Verifies that a specific invocation matching the given expression was performed on the mock, + specifying a failure error message. Use in conjuntion with the default + . + + The invocation was not call the times specified by + . + Expression to verify.The number of times a method is allowed to be called.Message to show if verification fails. + + + + Verifies that a specific invocation matching the given expression was performed on the mock. Use + in conjuntion with the default . + + This example assumes that the mock has been used, and later we want to verify that a given + invocation with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't call HasInventory. + mock.Verify(warehouse => warehouse.HasInventory(TALISKER, 50)); + + The invocation was not performed on the mock.Expression to verify.Type of return value from the expression. + + + + Verifies that a specific invocation matching the given + expression was performed on the mock. Use in conjuntion + with the default . + + The invocation was not call the times specified by + . + Expression to verify.The number of times a method is allowed to be called.Type of return value from the expression. + + + + Verifies that a specific invocation matching the given + expression was performed on the mock, specifying a failure + error message. + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't call HasInventory. + mock.Verify(warehouse => warehouse.HasInventory(TALISKER, 50), "When filling orders, inventory has to be checked"); + + The invocation was not performed on the mock.Expression to verify.Message to show if verification fails.Type of return value from the expression. + + + + Verifies that a specific invocation matching the given + expression was performed on the mock, specifying a failure + error message. + + The invocation was not call the times specified by + . + Expression to verify.The number of times a method is allowed to be called.Message to show if verification fails.Type of return value from the expression. + + + + Verifies that a property was read on the mock. + + This example assumes that the mock has been used, + and later we want to verify that a given property + was retrieved from it: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't retrieve the IsClosed property. + mock.VerifyGet(warehouse => warehouse.IsClosed); + + The invocation was not performed on the mock.Expression to verify. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + + Verifies that a property was read on the mock. + + The invocation was not call the times specified by + . + The number of times a method is allowed to be called.Expression to verify. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + + Verifies that a property was read on the mock, specifying a failure + error message. + + This example assumes that the mock has been used, + and later we want to verify that a given property + was retrieved from it: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't retrieve the IsClosed property. + mock.VerifyGet(warehouse => warehouse.IsClosed); + + The invocation was not performed on the mock.Expression to verify.Message to show if verification fails. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + + Verifies that a property was read on the mock, specifying a failure + error message. + + The invocation was not call the times specified by + . + The number of times a method is allowed to be called.Expression to verify.Message to show if verification fails. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + + Verifies that a property was set on the mock. + + This example assumes that the mock has been used, + and later we want to verify that a given property + was set on it: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed = true); + + The invocation was not performed on the mock.Expression to verify. + + + + Verifies that a property was set on the mock. + + The invocation was not call the times specified by + . + The number of times a method is allowed to be called.Expression to verify. + + + + Verifies that a property was set on the mock, specifying + a failure message. + + This example assumes that the mock has been used, + and later we want to verify that a given property + was set on it: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed = true, "Warehouse should always be closed after the action"); + + The invocation was not performed on the mock.Expression to verify.Message to show if verification fails. + + + + Verifies that a property was set on the mock, specifying + a failure message. + + The invocation was not call the times specified by + . + The number of times a method is allowed to be called.Expression to verify.Message to show if verification fails. + + + + Raises the event referenced in using + the given argument. + + The argument is + invalid for the target event invocation, or the is + not an event attach or detach expression. + + The following example shows how to raise a event: + + var mock = new Mock<IViewModel>(); + + mock.Raise(x => x.PropertyChanged -= null, new PropertyChangedEventArgs("Name")); + + + This example shows how to invoke an event with a custom event arguments + class in a view that will cause its corresponding presenter to + react by changing its state: + + var mockView = new Mock<IOrdersView>(); + var presenter = new OrdersPresenter(mockView.Object); + + // Check that the presenter has no selection by default + Assert.Null(presenter.SelectedOrder); + + // Raise the event with a specific arguments data + mockView.Raise(v => v.SelectionChanged += null, new OrderEventArgs { Order = new Order("moq", 500) }); + + // Now the presenter reacted to the event, and we have a selected order + Assert.NotNull(presenter.SelectedOrder); + Assert.Equal("moq", presenter.SelectedOrder.ProductName); + + + + + + Raises the event referenced in using + the given argument for a non-EventHandler typed event. + + The arguments are + invalid for the target event invocation, or the is + not an event attach or detach expression. + + The following example shows how to raise a custom event that does not adhere to + the standard EventHandler: + + var mock = new Mock<IViewModel>(); + + mock.Raise(x => x.MyEvent -= null, "Name", bool, 25); + + + + + + Obsolete. + + + + + Obsolete. + + + + + Obsolete. + + + + + Obsolete. + + + + + Obsolete. + + + + + Exposes the mocked object instance. + + + + + Implements the fluent API. + + + + + The expectation will be considered only in the former condition. + + + + + + + The expectation will be considered only in the former condition. + + + + + + + + Setups the get. + + The type of the property. + The expression. + + + + + Setups the set. + + The type of the property. + The setter expression. + + + + + Setups the set. + + The setter expression. + + + + + Determines the way default values are generated + calculated for loose mocks. + + + + + Default behavior, which generates empty values for + value types (i.e. default(int)), empty array and + enumerables, and nulls for all other reference types. + + + + + Whenever the default value generated by + is null, replaces this value with a mock (if the type + can be mocked). + + + For sealed classes, a null value will be generated. + + + + + A that returns an empty default value + for invocations that do not have setups or return values, with loose mocks. + This is the default behavior for a mock. + + + + + Interface to be implemented by classes that determine the + default value of non-expected invocations. + + + + + Defines the default value to return in all the methods returning . + The type of the return value.The value to set as default. + + + + Provides a value for the given member and arguments. + + The member to provide a default value for. + + + + + Provides partial evaluation of subtrees, whenever they can be evaluated locally. + + Matt Warren: http://blogs.msdn.com/mattwar + Documented by InSTEDD: http://www.instedd.org + + + + Performs evaluation and replacement of independent sub-trees + + The root of the expression tree. + A function that decides whether a given expression + node can be part of the local function. + A new tree with sub-trees evaluated and replaced. + + + + Performs evaluation and replacement of independent sub-trees + + The root of the expression tree. + A new tree with sub-trees evaluated and replaced. + + + + Evaluates and replaces sub-trees when first candidate is reached (top-down) + + + + + Performs bottom-up analysis to determine which nodes can possibly + be part of an evaluated sub-tree. + + + + + Casts the expression to a lambda expression, removing + a cast if there's any. + + + + + Casts the body of the lambda expression to a . + + If the body is not a method call. + + + + Converts the body of the lambda expression into the referenced by it. + + + + + Checks whether the body of the lambda expression is a property access. + + + + + Checks whether the expression is a property access. + + + + + Checks whether the body of the lambda expression is a property indexer, which is true + when the expression is an whose + has + equal to . + + + + + Checks whether the expression is a property indexer, which is true + when the expression is an whose + has + equal to . + + + + + Creates an expression that casts the given expression to the + type. + + + + + TODO: remove this code when https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=331583 + is fixed. + + + + + The intention of is to create a more readable + string representation for the failure message. + + + + + Tracks the current mock and interception context. + + + + + Having an active fluent mock context means that the invocation + is being performed in "trial" mode, just to gather the + target method and arguments that need to be matched later + when the actual invocation is made. + + + + + Ensures the given is not null. + Throws otherwise. + + + + + Ensures the given string is not null or empty. + Throws in the first case, or + in the latter. + + + + + Checks an argument to ensure it is in the specified range including the edges. + + Type of the argument to check, it must be an type. + + The expression containing the name of the argument. + The argument value to check. + The minimun allowed value for the argument. + The maximun allowed value for the argument. + + + + Checks an argument to ensure it is in the specified range excluding the edges. + + Type of the argument to check, it must be an type. + + The expression containing the name of the argument. + The argument value to check. + The minimun allowed value for the argument. + The maximun allowed value for the argument. + + + + Implemented by all generated mock object instances. + + + + + Implemented by all generated mock object instances. + + + + + Reference the Mock that contains this as the mock.Object value. + + + + + Reference the Mock that contains this as the mock.Object value. + + + + + Implements the actual interception and method invocation for + all mocks. + + + + + Get an eventInfo for a given event name. Search type ancestors depth first if necessary. + + Name of the event, with the set_ or get_ prefix already removed + + + + Given a type return all of its ancestors, both types and interfaces. + + The type to find immediate ancestors of + + + + Allows the specification of a matching condition for an + argument in a method invocation, rather than a specific + argument value. "It" refers to the argument being matched. + + This class allows the setup to match a method invocation + with an arbitrary value, with a value in a specified range, or + even one that matches a given predicate. + + + + + Matches any value of the given type. + + Typically used when the actual argument value for a method + call is not relevant. + + + // Throws an exception for a call to Remove with any string value. + mock.Setup(x => x.Remove(It.IsAny<string>())).Throws(new InvalidOperationException()); + + Type of the value. + + + + Matches any value that satisfies the given predicate. + Type of the argument to check.The predicate used to match the method argument. + Allows the specification of a predicate to perform matching + of method call arguments. + + This example shows how to return the value 1 whenever the argument to the + Do method is an even number. + + mock.Setup(x => x.Do(It.Is<int>(i => i % 2 == 0))) + .Returns(1); + + This example shows how to throw an exception if the argument to the + method is a negative number: + + mock.Setup(x => x.GetUser(It.Is<int>(i => i < 0))) + .Throws(new ArgumentException()); + + + + + + Matches any value that is in the range specified. + Type of the argument to check.The lower bound of the range.The upper bound of the range. + The kind of range. See . + + The following example shows how to expect a method call + with an integer argument within the 0..100 range. + + mock.Setup(x => x.HasInventory( + It.IsAny<string>(), + It.IsInRange(0, 100, Range.Inclusive))) + .Returns(false); + + + + + + Matches a string argument if it matches the given regular expression pattern. + The pattern to use to match the string argument value. + The following example shows how to expect a call to a method where the + string argument matches the given regular expression: + + mock.Setup(x => x.Check(It.IsRegex("[a-z]+"))).Returns(1); + + + + + + Matches a string argument if it matches the given regular expression pattern. + The pattern to use to match the string argument value.The options used to interpret the pattern. + The following example shows how to expect a call to a method where the + string argument matches the given regular expression, in a case insensitive way: + + mock.Setup(x => x.Check(It.IsRegex("[a-z]+", RegexOptions.IgnoreCase))).Returns(1); + + + + + + Implements the fluent API. + + + + + Defines the Callback verb and overloads. + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2) => Console.WriteLine(arg1 + arg2)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3) => Console.WriteLine(arg1 + arg2 + arg3)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4) => Console.WriteLine(arg1 + arg2 + arg3 + arg4)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15)); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The type of the sixteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15, string arg16) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15 + arg16)); + + + + + + Specifies a callback to invoke when the method is called. + + The callback method to invoke. + + The following example specifies a callback to set a boolean + value that can be used later: + + var called = false; + mock.Setup(x => x.Execute()) + .Callback(() => called = true); + + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The argument type of the invoked method. + The callback method to invoke. + + Invokes the given callback with the concrete invocation argument value. + + Notice how the specific string argument is retrieved by simply declaring + it as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute(It.IsAny<string>())) + .Callback((string command) => Console.WriteLine(command)); + + + + + + Defines occurrence members to constraint setups. + + + + + The expected invocation can happen at most once. + + + + var mock = new Mock<ICommand>(); + mock.Setup(foo => foo.Execute("ping")) + .AtMostOnce(); + + + + + + The expected invocation can happen at most specified number of times. + + The number of times to accept calls. + + + var mock = new Mock<ICommand>(); + mock.Setup(foo => foo.Execute("ping")) + .AtMost( 5 ); + + + + + + Defines the Raises verb. + + + + + Specifies the event that will be raised + when the setup is met. + + An expression that represents an event attach or detach action. + The event arguments to pass for the raised event. + + The following example shows how to raise an event when + the setup is met: + + var mock = new Mock<IContainer>(); + + mock.Setup(add => add.Add(It.IsAny<string>(), It.IsAny<object>())) + .Raises(add => add.Added += null, EventArgs.Empty); + + + + + + Specifies the event that will be raised + when the setup is matched. + + An expression that represents an event attach or detach action. + A function that will build the + to pass when raising the event. + + + + + Specifies the custom event that will be raised + when the setup is matched. + + An expression that represents an event attach or detach action. + The arguments to pass to the custom delegate (non EventHandler-compatible). + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + The type of the thirteenth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + The type of the thirteenth argument received by the expected invocation. + The type of the fourteenth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + The type of the thirteenth argument received by the expected invocation. + The type of the fourteenth argument received by the expected invocation. + The type of the fifteenth argument received by the expected invocation. + + + + + Specifies the event that will be raised when the setup is matched. + + The expression that represents an event attach or detach action. + The function that will build the + to pass when raising the event. + The type of the first argument received by the expected invocation. + The type of the second argument received by the expected invocation. + The type of the third argument received by the expected invocation. + The type of the fourth argument received by the expected invocation. + The type of the fifth argument received by the expected invocation. + The type of the sixth argument received by the expected invocation. + The type of the seventh argument received by the expected invocation. + The type of the eighth argument received by the expected invocation. + The type of the nineth argument received by the expected invocation. + The type of the tenth argument received by the expected invocation. + The type of the eleventh argument received by the expected invocation. + The type of the twelfth argument received by the expected invocation. + The type of the thirteenth argument received by the expected invocation. + The type of the fourteenth argument received by the expected invocation. + The type of the fifteenth argument received by the expected invocation. + The type of the sixteenth argument received by the expected invocation. + + + + + Defines the Verifiable verb. + + + + + Marks the expectation as verifiable, meaning that a call + to will check if this particular + expectation was met. + + + The following example marks the expectation as verifiable: + + mock.Expect(x => x.Execute("ping")) + .Returns(true) + .Verifiable(); + + + + + + Marks the expectation as verifiable, meaning that a call + to will check if this particular + expectation was met, and specifies a message for failures. + + + The following example marks the expectation as verifiable: + + mock.Expect(x => x.Execute("ping")) + .Returns(true) + .Verifiable("Ping should be executed always!"); + + + + + + Implements the fluent API. + + + + + Implements the fluent API. + + + + + Defines the Throws verb. + + + + + Specifies the exception to throw when the method is invoked. + + Exception instance to throw. + + This example shows how to throw an exception when the method is + invoked with an empty string argument: + + mock.Setup(x => x.Execute("")) + .Throws(new ArgumentException()); + + + + + + Specifies the type of exception to throw when the method is invoked. + + Type of exception to instantiate and throw when the setup is matched. + + This example shows how to throw an exception when the method is + invoked with an empty string argument: + + mock.Setup(x => x.Execute("")) + .Throws<ArgumentException>(); + + + + + + Implements the fluent API. + + + + + Implements the fluent API. + + + + + Defines the Callback verb and overloads for callbacks on + setups that return a value. + + Mocked type. + Type of the return value of the setup. + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2) => Console.WriteLine(arg1 + arg2)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3) => Console.WriteLine(arg1 + arg2 + arg3)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4) => Console.WriteLine(arg1 + arg2 + arg3 + arg4)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15)); + + + + + + Specifies a callback to invoke when the method is called that receives the original + arguments. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The type of the sixteenth argument of the invoked method. + The callback method to invoke. + A reference to interface. + + Invokes the given callback with the concrete invocation arguments values. + + Notice how the specific arguments are retrieved by simply declaring + them as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute( + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>(), + It.IsAny<string>())) + .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16) => Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15 + arg16)); + + + + + + Specifies a callback to invoke when the method is called. + + The callback method to invoke. + + The following example specifies a callback to set a boolean value that can be used later: + + var called = false; + mock.Setup(x => x.Execute()) + .Callback(() => called = true) + .Returns(true); + + Note that in the case of value-returning methods, after the Callback + call you can still specify the return value. + + + + + Specifies a callback to invoke when the method is called that receives the original arguments. + + The type of the argument of the invoked method. + Callback method to invoke. + + Invokes the given callback with the concrete invocation argument value. + + Notice how the specific string argument is retrieved by simply declaring + it as part of the lambda expression for the callback: + + + mock.Setup(x => x.Execute(It.IsAny<string>())) + .Callback(command => Console.WriteLine(command)) + .Returns(true); + + + + + + Implements the fluent API. + + + + + Defines the Returns verb. + + Mocked type. + Type of the return value from the expression. + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2) => arg1 + arg2); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3) => arg1 + arg2 + arg3); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4) => arg1 + arg2 + arg3 + arg4); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5) => arg1 + arg2 + arg3 + arg4 + arg5); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15); + + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the first argument of the invoked method. + The type of the second argument of the invoked method. + The type of the third argument of the invoked method. + The type of the fourth argument of the invoked method. + The type of the fifth argument of the invoked method. + The type of the sixth argument of the invoked method. + The type of the seventh argument of the invoked method. + The type of the eighth argument of the invoked method. + The type of the nineth argument of the invoked method. + The type of the tenth argument of the invoked method. + The type of the eleventh argument of the invoked method. + The type of the twelfth argument of the invoked method. + The type of the thirteenth argument of the invoked method. + The type of the fourteenth argument of the invoked method. + The type of the fifteenth argument of the invoked method. + The type of the sixteenth argument of the invoked method. + The function that will calculate the return value. + Returns a calculated value which is evaluated lazily at the time of the invocation. + + + The return value is calculated from the value of the actual method invocation arguments. + Notice how the arguments are retrieved by simply declaring them as part of the lambda + expression: + + + mock.Setup(x => x.Execute( + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>(), + It.IsAny<int>())) + .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15, string arg16) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15 + arg16); + + + + + + Specifies the value to return. + + The value to return, or . + + Return a true value from the method call: + + mock.Setup(x => x.Execute("ping")) + .Returns(true); + + + + + + Specifies a function that will calculate the value to return from the method. + + The function that will calculate the return value. + + Return a calculated value when the method is called: + + mock.Setup(x => x.Execute("ping")) + .Returns(() => returnValues[0]); + + The lambda expression to retrieve the return value is lazy-executed, + meaning that its value may change depending on the moment the method + is executed and the value the returnValues array has at + that moment. + + + + + Specifies a function that will calculate the value to return from the method, + retrieving the arguments for the invocation. + + The type of the argument of the invoked method. + The function that will calculate the return value. + + Return a calculated value which is evaluated lazily at the time of the invocation. + + The lookup list can change between invocations and the setup + will return different values accordingly. Also, notice how the specific + string argument is retrieved by simply declaring it as part of the lambda + expression: + + + mock.Setup(x => x.Execute(It.IsAny<string>())) + .Returns((string command) => returnValues[command]); + + + + + + Implements the fluent API. + + + + + Defines the Callback verb for property getter setups. + + + Mocked type. + Type of the property. + + + + Specifies a callback to invoke when the property is retrieved. + + Callback method to invoke. + + Invokes the given callback with the property value being set. + + mock.SetupGet(x => x.Suspended) + .Callback(() => called = true) + .Returns(true); + + + + + + Implements the fluent API. + + + + + Defines the Returns verb for property get setups. + + Mocked type. + Type of the property. + + + + Specifies the value to return. + + The value to return, or . + + Return a true value from the property getter call: + + mock.SetupGet(x => x.Suspended) + .Returns(true); + + + + + + Specifies a function that will calculate the value to return for the property. + + The function that will calculate the return value. + + Return a calculated value when the property is retrieved: + + mock.SetupGet(x => x.Suspended) + .Returns(() => returnValues[0]); + + The lambda expression to retrieve the return value is lazy-executed, + meaning that its value may change depending on the moment the property + is retrieved and the value the returnValues array has at + that moment. + + + + + Implements the fluent API. + + + + + Defines the Callback verb for property setter setups. + + Type of the property. + + + + Specifies a callback to invoke when the property is set that receives the + property value being set. + + Callback method to invoke. + + Invokes the given callback with the property value being set. + + mock.SetupSet(x => x.Suspended) + .Callback((bool state) => Console.WriteLine(state)); + + + + + + Language for ReturnSequence + + + + + Returns value + + + + + Throws an exception + + + + + Throws an exception + + + + + The first method call or member access will be the + last segment of the expression (depth-first traversal), + which is the one we have to Setup rather than FluentMock. + And the last one is the one we have to Mock.Get rather + than FluentMock. + + + + + A default implementation of IQueryable for use with QueryProvider + + + + + The is a + static method that returns an IQueryable of Mocks of T which is used to + apply the linq specification to. + + + + + Utility repository class to use to construct multiple + mocks when consistent verification is + desired for all of them. + + + If multiple mocks will be created during a test, passing + the desired (if different than the + or the one + passed to the repository constructor) and later verifying each + mock can become repetitive and tedious. + + This repository class helps in that scenario by providing a + simplified creation of multiple mocks with a default + (unless overriden by calling + ) and posterior verification. + + + + The following is a straightforward example on how to + create and automatically verify strict mocks using a : + + var repository = new MockRepository(MockBehavior.Strict); + + var foo = repository.Create<IFoo>(); + var bar = repository.Create<IBar>(); + + // no need to call Verifiable() on the setup + // as we'll be validating all of them anyway. + foo.Setup(f => f.Do()); + bar.Setup(b => b.Redo()); + + // exercise the mocks here + + repository.VerifyAll(); + // At this point all setups are already checked + // and an optional MockException might be thrown. + // Note also that because the mocks are strict, any invocation + // that doesn't have a matching setup will also throw a MockException. + + The following examples shows how to setup the repository + to create loose mocks and later verify only verifiable setups: + + var repository = new MockRepository(MockBehavior.Loose); + + var foo = repository.Create<IFoo>(); + var bar = repository.Create<IBar>(); + + // this setup will be verified when we verify the repository + foo.Setup(f => f.Do()).Verifiable(); + + // this setup will NOT be verified + foo.Setup(f => f.Calculate()); + + // this setup will be verified when we verify the repository + bar.Setup(b => b.Redo()).Verifiable(); + + // exercise the mocks here + // note that because the mocks are Loose, members + // called in the interfaces for which no matching + // setups exist will NOT throw exceptions, + // and will rather return default values. + + repository.Verify(); + // At this point verifiable setups are already checked + // and an optional MockException might be thrown. + + The following examples shows how to setup the repository with a + default strict behavior, overriding that default for a + specific mock: + + var repository = new MockRepository(MockBehavior.Strict); + + // this particular one we want loose + var foo = repository.Create<IFoo>(MockBehavior.Loose); + var bar = repository.Create<IBar>(); + + // specify setups + + // exercise the mocks here + + repository.Verify(); + + + + + + + Utility factory class to use to construct multiple + mocks when consistent verification is + desired for all of them. + + + If multiple mocks will be created during a test, passing + the desired (if different than the + or the one + passed to the factory constructor) and later verifying each + mock can become repetitive and tedious. + + This factory class helps in that scenario by providing a + simplified creation of multiple mocks with a default + (unless overriden by calling + ) and posterior verification. + + + + The following is a straightforward example on how to + create and automatically verify strict mocks using a : + + var factory = new MockFactory(MockBehavior.Strict); + + var foo = factory.Create<IFoo>(); + var bar = factory.Create<IBar>(); + + // no need to call Verifiable() on the setup + // as we'll be validating all of them anyway. + foo.Setup(f => f.Do()); + bar.Setup(b => b.Redo()); + + // exercise the mocks here + + factory.VerifyAll(); + // At this point all setups are already checked + // and an optional MockException might be thrown. + // Note also that because the mocks are strict, any invocation + // that doesn't have a matching setup will also throw a MockException. + + The following examples shows how to setup the factory + to create loose mocks and later verify only verifiable setups: + + var factory = new MockFactory(MockBehavior.Loose); + + var foo = factory.Create<IFoo>(); + var bar = factory.Create<IBar>(); + + // this setup will be verified when we verify the factory + foo.Setup(f => f.Do()).Verifiable(); + + // this setup will NOT be verified + foo.Setup(f => f.Calculate()); + + // this setup will be verified when we verify the factory + bar.Setup(b => b.Redo()).Verifiable(); + + // exercise the mocks here + // note that because the mocks are Loose, members + // called in the interfaces for which no matching + // setups exist will NOT throw exceptions, + // and will rather return default values. + + factory.Verify(); + // At this point verifiable setups are already checked + // and an optional MockException might be thrown. + + The following examples shows how to setup the factory with a + default strict behavior, overriding that default for a + specific mock: + + var factory = new MockFactory(MockBehavior.Strict); + + // this particular one we want loose + var foo = factory.Create<IFoo>(MockBehavior.Loose); + var bar = factory.Create<IBar>(); + + // specify setups + + // exercise the mocks here + + factory.Verify(); + + + + + + + Initializes the factory with the given + for newly created mocks from the factory. + + The behavior to use for mocks created + using the factory method if not overriden + by using the overload. + + + + Creates a new mock with the default + specified at factory construction time. + + Type to mock. + A new . + + + var factory = new MockFactory(MockBehavior.Strict); + + var foo = factory.Create<IFoo>(); + // use mock on tests + + factory.VerifyAll(); + + + + + + Creates a new mock with the default + specified at factory construction time and with the + the given constructor arguments for the class. + + + The mock will try to find the best match constructor given the + constructor arguments, and invoke that to initialize the instance. + This applies only to classes, not interfaces. + + Type to mock. + Constructor arguments for mocked classes. + A new . + + + var factory = new MockFactory(MockBehavior.Default); + + var mock = factory.Create<MyBase>("Foo", 25, true); + // use mock on tests + + factory.Verify(); + + + + + + Creates a new mock with the given . + + Type to mock. + Behavior to use for the mock, which overrides + the default behavior specified at factory construction time. + A new . + + The following example shows how to create a mock with a different + behavior to that specified as the default for the factory: + + var factory = new MockFactory(MockBehavior.Strict); + + var foo = factory.Create<IFoo>(MockBehavior.Loose); + + + + + + Creates a new mock with the given + and with the the given constructor arguments for the class. + + + The mock will try to find the best match constructor given the + constructor arguments, and invoke that to initialize the instance. + This applies only to classes, not interfaces. + + Type to mock. + Behavior to use for the mock, which overrides + the default behavior specified at factory construction time. + Constructor arguments for mocked classes. + A new . + + The following example shows how to create a mock with a different + behavior to that specified as the default for the factory, passing + constructor arguments: + + var factory = new MockFactory(MockBehavior.Default); + + var mock = factory.Create<MyBase>(MockBehavior.Strict, "Foo", 25, true); + + + + + + Implements creation of a new mock within the factory. + + Type to mock. + The behavior for the new mock. + Optional arguments for the construction of the mock. + + + + Verifies all verifiable expectations on all mocks created + by this factory. + + + One or more mocks had expectations that were not satisfied. + + + + Verifies all verifiable expectations on all mocks created + by this factory. + + + One or more mocks had expectations that were not satisfied. + + + + Invokes for each mock + in , and accumulates the resulting + that might be + thrown from the action. + + The action to execute against + each mock. + + + + Whether the base member virtual implementation will be called + for mocked classes if no setup is matched. Defaults to . + + + + + Specifies the behavior to use when returning default values for + unexpected invocations on loose mocks. + + + + + Gets the mocks that have been created by this factory and + that will get verified together. + + + + + Access the universe of mocks of the given type, to retrieve those + that behave according to the LINQ query specification. + + The type of the mocked object to query. + + + + Access the universe of mocks of the given type, to retrieve those + that behave according to the LINQ query specification. + + The predicate with the setup expressions. + The type of the mocked object to query. + + + + Creates an mock object of the indicated type. + + The type of the mocked object. + The mocked object created. + + + + Creates an mock object of the indicated type. + + The predicate with the setup expressions. + The type of the mocked object. + The mocked object created. + + + + Creates the mock query with the underlying queriable implementation. + + + + + Wraps the enumerator inside a queryable. + + + + + Method that is turned into the actual call from .Query{T}, to + transform the queryable query into a normal enumerable query. + This method is never used directly by consumers. + + + + + Initializes the repository with the given + for newly created mocks from the repository. + + The behavior to use for mocks created + using the repository method if not overriden + by using the overload. + + + + Allows querying the universe of mocks for those that behave + according to the LINQ query specification. + + + This entry-point into Linq to Mocks is the only one in the root Moq + namespace to ease discovery. But to get all the mocking extension + methods on Object, a using of Moq.Linq must be done, so that the + polluting of the intellisense for all objects is an explicit opt-in. + + + + + Access the universe of mocks of the given type, to retrieve those + that behave according to the LINQ query specification. + + The type of the mocked object to query. + + + + Access the universe of mocks of the given type, to retrieve those + that behave according to the LINQ query specification. + + The predicate with the setup expressions. + The type of the mocked object to query. + + + + Creates an mock object of the indicated type. + + The type of the mocked object. + The mocked object created. + + + + Creates an mock object of the indicated type. + + The predicate with the setup expressions. + The type of the mocked object. + The mocked object created. + + + + Creates the mock query with the underlying queriable implementation. + + + + + Wraps the enumerator inside a queryable. + + + + + Method that is turned into the actual call from .Query{T}, to + transform the queryable query into a normal enumerable query. + This method is never used directly by consumers. + + + + + Extension method used to support Linq-like setup properties that are not virtual but do have + a getter and a setter, thereby allowing the use of Linq to Mocks to quickly initialize Dtos too :) + + + + + Helper extensions that are used by the query translator. + + + + + Retrieves a fluent mock from the given setup expression. + + + + + Allows creation custom value matchers that can be used on setups and verification, + completely replacing the built-in class with your own argument + matching rules. + + See also . + + + + + Provided for the sole purpose of rendering the delegate passed to the + matcher constructor if no friendly render lambda is provided. + + + + + Initializes the match with the condition that + will be checked in order to match invocation + values. + The condition to match against actual values. + + + + + + + + + This method is used to set an expression as the last matcher invoked, + which is used in the SetupSet to allow matchers in the prop = value + delegate expression. This delegate is executed in "fluent" mode in + order to capture the value being set, and construct the corresponding + methodcall. + This is also used in the MatcherFactory for each argument expression. + This method ensures that when we execute the delegate, we + also track the matcher that was invoked, so that when we create the + methodcall we build the expression using it, rather than the null/default + value returned from the actual invocation. + + + + + Allows creation custom value matchers that can be used on setups and verification, + completely replacing the built-in class with your own argument + matching rules. + Type of the value to match. + The argument matching is used to determine whether a concrete + invocation in the mock matches a given setup. This + matching mechanism is fully extensible. + + Creating a custom matcher is straightforward. You just need to create a method + that returns a value from a call to with + your matching condition and optional friendly render expression: + + [Matcher] + public Order IsBigOrder() + { + return Match<Order>.Create( + o => o.GrandTotal >= 5000, + /* a friendly expression to render on failures */ + () => IsBigOrder()); + } + + This method can be used in any mock setup invocation: + + mock.Setup(m => m.Submit(IsBigOrder()).Throws<UnauthorizedAccessException>(); + + At runtime, Moq knows that the return value was a matcher (note that the method MUST be + annotated with the [Matcher] attribute in order to determine this) and + evaluates your predicate with the actual value passed into your predicate. + + Another example might be a case where you want to match a lists of orders + that contains a particular one. You might create matcher like the following: + + + public static class Orders + { + [Matcher] + public static IEnumerable<Order> Contains(Order order) + { + return Match<IEnumerable<Order>>.Create(orders => orders.Contains(order)); + } + } + + Now we can invoke this static method instead of an argument in an + invocation: + + var order = new Order { ... }; + var mock = new Mock<IRepository<Order>>(); + + mock.Setup(x => x.Save(Orders.Contains(order))) + .Throws<ArgumentException>(); + + + + + + Marks a method as a matcher, which allows complete replacement + of the built-in class with your own argument + matching rules. + + + This feature has been deprecated in favor of the new + and simpler . + + + The argument matching is used to determine whether a concrete + invocation in the mock matches a given setup. This + matching mechanism is fully extensible. + + + There are two parts of a matcher: the compiler matcher + and the runtime matcher. + + + Compiler matcher + Used to satisfy the compiler requirements for the + argument. Needs to be a method optionally receiving any arguments + you might need for the matching, but with a return type that + matches that of the argument. + + Let's say I want to match a lists of orders that contains + a particular one. I might create a compiler matcher like the following: + + + public static class Orders + { + [Matcher] + public static IEnumerable<Order> Contains(Order order) + { + return null; + } + } + + Now we can invoke this static method instead of an argument in an + invocation: + + var order = new Order { ... }; + var mock = new Mock<IRepository<Order>>(); + + mock.Setup(x => x.Save(Orders.Contains(order))) + .Throws<ArgumentException>(); + + Note that the return value from the compiler matcher is irrelevant. + This method will never be called, and is just used to satisfy the + compiler and to signal Moq that this is not a method that we want + to be invoked at runtime. + + + + Runtime matcher + + The runtime matcher is the one that will actually perform evaluation + when the test is run, and is defined by convention to have the + same signature as the compiler matcher, but where the return + value is the first argument to the call, which contains the + object received by the actual invocation at runtime: + + public static bool Contains(IEnumerable<Order> orders, Order order) + { + return orders.Contains(order); + } + + At runtime, the mocked method will be invoked with a specific + list of orders. This value will be passed to this runtime + matcher as the first argument, while the second argument is the + one specified in the setup (x.Save(Orders.Contains(order))). + + The boolean returned determines whether the given argument has been + matched. If all arguments to the expected method are matched, then + the setup matches and is evaluated. + + + + + + Using this extensible infrastructure, you can easily replace the entire + set of matchers with your own. You can also avoid the + typical (and annoying) lengthy expressions that result when you have + multiple arguments that use generics. + + + The following is the complete example explained above: + + public static class Orders + { + [Matcher] + public static IEnumerable<Order> Contains(Order order) + { + return null; + } + + public static bool Contains(IEnumerable<Order> orders, Order order) + { + return orders.Contains(order); + } + } + + And the concrete test using this matcher: + + var order = new Order { ... }; + var mock = new Mock<IRepository<Order>>(); + + mock.Setup(x => x.Save(Orders.Contains(order))) + .Throws<ArgumentException>(); + + // use mock, invoke Save, and have the matcher filter. + + + + + + Matcher to treat static functions as matchers. + + mock.Setup(x => x.StringMethod(A.MagicString())); + + public static class A + { + [Matcher] + public static string MagicString() { return null; } + public static bool MagicString(string arg) + { + return arg == "magic"; + } + } + + Will succeed if: mock.Object.StringMethod("magic"); + and fail with any other call. + + + + + We need this non-generics base class so that + we can use from + generic code. + + + + + Options to customize the behavior of the mock. + + + + + Causes the mock to always throw + an exception for invocations that don't have a + corresponding setup. + + + + + Will never throw exceptions, returning default + values when necessary (null for reference types, + zero for value types or empty enumerables and arrays). + + + + + Default mock behavior, which equals . + + + + + A that returns an empty default value + for non-mockeable types, and mocks for all other types (interfaces and + non-sealed classes) that can be mocked. + + + + + Exception thrown by mocks when setups are not matched, + the mock is not properly setup, etc. + + + A distinct exception type is provided so that exceptions + thrown by the mock can be differentiated in tests that + expect other exceptions to be thrown (i.e. ArgumentException). + + Richer exception hierarchy/types are not provided as + tests typically should not catch or expect exceptions + from the mocks. These are typically the result of changes + in the tested class or its collaborators implementation, and + result in fixes in the mock setup so that they dissapear and + allow the test to pass. + + + + + + Made internal as it's of no use for + consumers, but it's important for + our own tests. + + + + + Used by the mock factory to accumulate verification + failures. + + + + + Helper class to setup a full trace between many mocks + + + + + Initialize a trace setup + + + + + Allow sequence to be repeated + + + + + define nice api + + + + + Perform an expectation in the trace. + + + + + Provides legacy API members as extensions so that + existing code continues to compile, but new code + doesn't see then. + + + + + Obsolete. + + + + + Obsolete. + + + + + Obsolete. + + + + + Provides additional methods on mocks. + + + Provided as extension methods as they confuse the compiler + with the overloads taking Action. + + + + + Specifies a setup on the mocked type for a call to + to a property setter, regardless of its value. + + + If more than one setup is set for the same property setter, + the latest one wins and is the one that will be executed. + + Type of the property. Typically omitted as it can be inferred from the expression. + Type of the mock. + The target mock for the setup. + Lambda expression that specifies the property setter. + + + mock.SetupSet(x => x.Suspended); + + + + This method is not legacy, but must be on an extension method to avoid + confusing the compiler with the new Action syntax. + + + + + Verifies that a property has been set on the mock, regarless of its value. + + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed); + + + The invocation was not performed on the mock. + Expression to verify. + The mock instance. + Mocked type. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + Verifies that a property has been set on the mock, specifying a failure + error message. + + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed); + + + The invocation was not performed on the mock. + Expression to verify. + Message to show if verification fails. + The mock instance. + Mocked type. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + Verifies that a property has been set on the mock, regardless + of the value but only the specified number of times. + + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed); + + + The invocation was not performed on the mock. + The invocation was not call the times specified by + . + The mock instance. + Mocked type. + The number of times a method is allowed to be called. + Expression to verify. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + Verifies that a property has been set on the mock, regardless + of the value but only the specified number of times, and specifying a failure + error message. + + + This example assumes that the mock has been used, + and later we want to verify that a given invocation + with specific parameters was performed: + + var mock = new Mock<IWarehouse>(); + // exercise mock + //... + // Will throw if the test code didn't set the IsClosed property. + mock.VerifySet(warehouse => warehouse.IsClosed); + + + The invocation was not performed on the mock. + The invocation was not call the times specified by + . + The mock instance. + Mocked type. + The number of times a method is allowed to be called. + Message to show if verification fails. + Expression to verify. + Type of the property to verify. Typically omitted as it can + be inferred from the expression's return type. + + + + Allows setups to be specified for protected members by using their + name as a string, rather than strong-typing them which is not possible + due to their visibility. + + + + + Specifies a setup for a void method invocation with the given + , optionally specifying arguments for the method call. + + The name of the void method to be invoked. + The optional arguments for the invocation. If argument matchers are used, + remember to use rather than . + + + + Specifies a setup for an invocation on a property or a non void method with the given + , optionally specifying arguments for the method call. + + The name of the method or property to be invoked. + The optional arguments for the invocation. If argument matchers are used, + remember to use rather than . + The return type of the method or property. + + + + Specifies a setup for an invocation on a property getter with the given + . + + The name of the property. + The type of the property. + + + + Specifies a setup for an invocation on a property setter with the given + . + + The name of the property. + The property value. If argument matchers are used, + remember to use rather than . + The type of the property. + + + + Specifies a verify for a void method with the given , + optionally specifying arguments for the method call. Use in conjuntion with the default + . + + The invocation was not call the times specified by + . + The name of the void method to be verified. + The number of times a method is allowed to be called. + The optional arguments for the invocation. If argument matchers are used, + remember to use rather than . + + + + Specifies a verify for an invocation on a property or a non void method with the given + , optionally specifying arguments for the method call. + + The invocation was not call the times specified by + . + The name of the method or property to be invoked. + The optional arguments for the invocation. If argument matchers are used, + remember to use rather than . + The number of times a method is allowed to be called. + The type of return value from the expression. + + + + Specifies a verify for an invocation on a property getter with the given + . + The invocation was not call the times specified by + . + + The name of the property. + The number of times a method is allowed to be called. + The type of the property. + + + + Specifies a setup for an invocation on a property setter with the given + . + + The invocation was not call the times specified by + . + The name of the property. + The number of times a method is allowed to be called. + The property value. + The type of the property. If argument matchers are used, + remember to use rather than . + + + + Allows the specification of a matching condition for an + argument in a protected member setup, rather than a specific + argument value. "ItExpr" refers to the argument being matched. + + + Use this variant of argument matching instead of + for protected setups. + This class allows the setup to match a method invocation + with an arbitrary value, with a value in a specified range, or + even one that matches a given predicate, or null. + + + + + Matches a null value of the given type. + + + Required for protected mocks as the null value cannot be used + directly as it prevents proper method overload selection. + + + + // Throws an exception for a call to Remove with a null string value. + mock.Protected() + .Setup("Remove", ItExpr.IsNull<string>()) + .Throws(new InvalidOperationException()); + + + Type of the value. + + + + Matches any value of the given type. + + + Typically used when the actual argument value for a method + call is not relevant. + + + + // Throws an exception for a call to Remove with any string value. + mock.Protected() + .Setup("Remove", ItExpr.IsAny<string>()) + .Throws(new InvalidOperationException()); + + + Type of the value. + + + + Matches any value that satisfies the given predicate. + + Type of the argument to check. + The predicate used to match the method argument. + + Allows the specification of a predicate to perform matching + of method call arguments. + + + This example shows how to return the value 1 whenever the argument to the + Do method is an even number. + + mock.Protected() + .Setup("Do", ItExpr.Is<int>(i => i % 2 == 0)) + .Returns(1); + + This example shows how to throw an exception if the argument to the + method is a negative number: + + mock.Protected() + .Setup("GetUser", ItExpr.Is<int>(i => i < 0)) + .Throws(new ArgumentException()); + + + + + + Matches any value that is in the range specified. + + Type of the argument to check. + The lower bound of the range. + The upper bound of the range. + The kind of range. See . + + The following example shows how to expect a method call + with an integer argument within the 0..100 range. + + mock.Protected() + .Setup("HasInventory", + ItExpr.IsAny<string>(), + ItExpr.IsInRange(0, 100, Range.Inclusive)) + .Returns(false); + + + + + + Matches a string argument if it matches the given regular expression pattern. + + The pattern to use to match the string argument value. + + The following example shows how to expect a call to a method where the + string argument matches the given regular expression: + + mock.Protected() + .Setup("Check", ItExpr.IsRegex("[a-z]+")) + .Returns(1); + + + + + + Matches a string argument if it matches the given regular expression pattern. + + The pattern to use to match the string argument value. + The options used to interpret the pattern. + + The following example shows how to expect a call to a method where the + string argument matches the given regular expression, in a case insensitive way: + + mock.Protected() + .Setup("Check", ItExpr.IsRegex("[a-z]+", RegexOptions.IgnoreCase)) + .Returns(1); + + + + + + Enables the Protected() method on , + allowing setups to be set for protected members by using their + name as a string, rather than strong-typing them which is not possible + due to their visibility. + + + + + Enable protected setups for the mock. + + Mocked object type. Typically omitted as it can be inferred from the mock instance. + The mock to set the protected setups on. + + + + + + + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Mock type has already been initialized by accessing its Object property. Adding interfaces must be done before that.. + + + + + Looks up a localized string similar to Value cannot be an empty string.. + + + + + Looks up a localized string similar to Can only add interfaces to the mock.. + + + + + Looks up a localized string similar to Can't set return value for void method {0}.. + + + + + Looks up a localized string similar to Constructor arguments cannot be passed for interface mocks.. + + + + + Looks up a localized string similar to A matching constructor for the given arguments was not found on the mocked type.. + + + + + Looks up a localized string similar to Could not locate event for attach or detach method {0}.. + + + + + Looks up a localized string similar to Expression {0} involves a field access, which is not supported. Use properties instead.. + + + + + Looks up a localized string similar to Type to mock must be an interface or an abstract or non-sealed class. . + + + + + Looks up a localized string similar to Cannot retrieve a mock with the given object type {0} as it's not the main type of the mock or any of its additional interfaces. + Please cast the argument to one of the supported types: {1}. + Remember that there's no generics covariance in the CLR, so your object must be one of these types in order for the call to succeed.. + + + + + Looks up a localized string similar to The equals ("==" or "=" in VB) and the conditional 'and' ("&&" or "AndAlso" in VB) operators are the only ones supported in the query specification expression. Unsupported expression: {0}. + + + + + Looks up a localized string similar to LINQ method '{0}' not supported.. + + + + + Looks up a localized string similar to Expression contains a call to a method which is not virtual (overridable in VB) or abstract. Unsupported expression: {0}. + + + + + Looks up a localized string similar to Member {0}.{1} does not exist.. + + + + + Looks up a localized string similar to Method {0}.{1} is public. Use strong-typed Expect overload instead: + mock.Setup(x => x.{1}()); + . + + + + + Looks up a localized string similar to {0} invocation failed with mock behavior {1}. + {2}. + + + + + Looks up a localized string similar to Expected only {0} calls to {1}.. + + + + + Looks up a localized string similar to Expected only one call to {0}.. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock at least {2} times, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock at least once, but was never performed: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock at most {3} times, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock at most once, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock between {2} and {3} times (Exclusive), but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock between {2} and {3} times (Inclusive), but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock exactly {2} times, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock should never have been performed, but was {4} times: {1}. + + + + + Looks up a localized string similar to {0} + Expected invocation on the mock once, but was {4} times: {1}. + + + + + Looks up a localized string similar to All invocations on the mock must have a corresponding setup.. + + + + + Looks up a localized string similar to Object instance was not created by Moq.. + + + + + Looks up a localized string similar to Out expression must evaluate to a constant value.. + + + + + Looks up a localized string similar to Property {0}.{1} does not have a getter.. + + + + + Looks up a localized string similar to Property {0}.{1} does not exist.. + + + + + Looks up a localized string similar to Property {0}.{1} is write-only.. + + + + + Looks up a localized string similar to Property {0}.{1} is read-only.. + + + + + Looks up a localized string similar to Property {0}.{1} does not have a setter.. + + + + + Looks up a localized string similar to Cannot raise a mocked event unless it has been associated (attached) to a concrete event in a mocked object.. + + + + + Looks up a localized string similar to Ref expression must evaluate to a constant value.. + + + + + Looks up a localized string similar to Invocation needs to return a value and therefore must have a corresponding setup that provides it.. + + + + + Looks up a localized string similar to A lambda expression is expected as the argument to It.Is<T>.. + + + + + Looks up a localized string similar to Invocation {0} should not have been made.. + + + + + Looks up a localized string similar to Expression is not a method invocation: {0}. + + + + + Looks up a localized string similar to Expression is not a property access: {0}. + + + + + Looks up a localized string similar to Expression is not a property setter invocation.. + + + + + Looks up a localized string similar to Expression references a method that does not belong to the mocked object: {0}. + + + + + Looks up a localized string similar to Invalid setup on a non-virtual (overridable in VB) member: {0}. + + + + + Looks up a localized string similar to Type {0} does not implement required interface {1}. + + + + + Looks up a localized string similar to Type {0} does not from required type {1}. + + + + + Looks up a localized string similar to To specify a setup for public property {0}.{1}, use the typed overloads, such as: + mock.Setup(x => x.{1}).Returns(value); + mock.SetupGet(x => x.{1}).Returns(value); //equivalent to previous one + mock.SetupSet(x => x.{1}).Callback(callbackDelegate); + . + + + + + Looks up a localized string similar to Unsupported expression: {0}. + + + + + Looks up a localized string similar to Only property accesses are supported in intermediate invocations on a setup. Unsupported expression {0}.. + + + + + Looks up a localized string similar to Expression contains intermediate property access {0}.{1} which is of type {2} and cannot be mocked. Unsupported expression {3}.. + + + + + Looks up a localized string similar to Setter expression cannot use argument matchers that receive parameters.. + + + + + Looks up a localized string similar to Member {0} is not supported for protected mocking.. + + + + + Looks up a localized string similar to Setter expression can only use static custom matchers.. + + + + + Looks up a localized string similar to The following setups were not matched: + {0}. + + + + + Looks up a localized string similar to Invalid verify on a non-virtual (overridable in VB) member: {0}. + + + + + Kind of range to use in a filter specified through + . + + + + + The range includes the to and + from values. + + + + + The range does not include the to and + from values. + + + + + Helper for sequencing return values in the same method. + + + + + Return a sequence of values, once per call. + + + + + Defines the number of invocations allowed by a mocked method. + + + + + Specifies that a mocked method should be invoked times as minimum. + The minimun number of times.An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked one time as minimum. + An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked time as maximun. + The maximun number of times.An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked one time as maximun. + An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked between and + times. + The minimun number of times.The maximun number of times. + The kind of range. See . + An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked exactly times. + The times that a method or property can be called.An object defining the allowed number of invocations. + + + + Specifies that a mocked method should not be invoked. + An object defining the allowed number of invocations. + + + + Specifies that a mocked method should be invoked exactly one time. + An object defining the allowed number of invocations. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether two specified objects have the same value. + + The first . + + The second . + + true if the value of left is the same as the value of right; otherwise, false. + + + + + Determines whether two specified objects have different values. + + The first . + + The second . + + true if the value of left is different from the value of right; otherwise, false. + + + + diff --git a/packages/Ninject.2.2.1.0/Ninject.2.2.1.0.nupkg b/packages/Ninject.2.2.1.0/Ninject.2.2.1.0.nupkg deleted file mode 100644 index 1cdf30c66..000000000 Binary files a/packages/Ninject.2.2.1.0/Ninject.2.2.1.0.nupkg and /dev/null differ diff --git a/packages/Ninject.2.2.1.4/Ninject.2.2.1.4.nupkg b/packages/Ninject.2.2.1.4/Ninject.2.2.1.4.nupkg new file mode 100644 index 000000000..8e06be52e Binary files /dev/null and b/packages/Ninject.2.2.1.4/Ninject.2.2.1.4.nupkg differ diff --git a/packages/Ninject.2.2.1.4/lib/net35-Client/Ninject.dll b/packages/Ninject.2.2.1.4/lib/net35-Client/Ninject.dll new file mode 100644 index 000000000..c12e773c1 Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/net35-Client/Ninject.dll differ diff --git a/packages/Ninject.2.2.1.4/lib/net35-Client/Ninject.pdb b/packages/Ninject.2.2.1.4/lib/net35-Client/Ninject.pdb new file mode 100644 index 000000000..72099f6d1 Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/net35-Client/Ninject.pdb differ diff --git a/packages/Ninject.2.2.1.4/lib/net35-Client/Ninject.xml b/packages/Ninject.2.2.1.4/lib/net35-Client/Ninject.xml new file mode 100644 index 000000000..59289bfb1 --- /dev/null +++ b/packages/Ninject.2.2.1.4/lib/net35-Client/Ninject.xml @@ -0,0 +1,4646 @@ + + + + Ninject + + + + + A block used for deterministic disposal of activated instances. When the block is + disposed, all instances activated via it will be deactivated. + + + + + An object that notifies when it is disposed. + + + + + An object that can report whether or not it is disposed. + + + + + Gets a value indicating whether this instance is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases resources held by the object. + + + + + Releases resources before the object is reclaimed by garbage collection. + + + + + Gets a value indicating whether this instance is disposed. + + + + + A block used for deterministic disposal of activated instances. When the block is + disposed, all instances activated via it will be deactivated. + + + + + Provides a path to resolve instances. + + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + An object that fires an event when it is disposed. + + + + + Occurs when the object is disposed. + + + + + Initializes a new instance of the class. + + The parent resolution root. + + + + Releases resources held by the object. + + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + Gets or sets the parent resolution root (usually the kernel). + + + + + Occurs when the object is disposed. + + + + + Stores the objects that were activated + + + + + A component that contributes to the internals of Ninject. + + + + + A component that contributes to the internals of Ninject. + + + + + Gets or sets the settings. + + + + + Gets or sets the settings. + + + + + Stores the objects that were activated + + + + + Clears the cache. + + + + + Adds an activated instance. + + The instance to be added. + + + + Adds an deactivated instance. + + The instance to be added. + + + + Determines whether the specified instance is activated. + + The instance. + + true if the specified instance is activated; otherwise, false. + + + + + Determines whether the specified instance is deactivated. + + The instance. + + true if the specified instance is deactivated; otherwise, false. + + + + + An object that is prunealble. + + + + + Removes instances from the cache which should no longer be re-used. + + + + + The objects that were activated as reference equal weak references. + + + + + The objects that were activated as reference equal weak references. + + + + + Initializes a new instance of the class. + + The cache pruner. + + + + Clears the cache. + + + + + Adds an activated instance. + + The instance to be added. + + + + Adds an deactivated instance. + + The instance to be added. + + + + Determines whether the specified instance is activated. + + The instance. + + true if the specified instance is activated; otherwise, false. + + + + + Determines whether the specified instance is deactivated. + + The instance. + + true if the specified instance is deactivated; otherwise, false. + + + + + Prunes this instance. + + + + + Removes all dead objects. + + The objects collection to be freed of dead objects. + + + + Gets the activated object count. + + The activated object count. + + + + Gets the deactivated object count. + + The deactivated object count. + + + + Tracks instances for re-use in certain scopes. + + + + + Tracks instances for re-use in certain scopes. + + + + + Stores the specified instance in the cache. + + The context to store. + The instance reference. + + + + Tries to retrieve an instance to re-use in the specified context. + + The context that is being activated. + The instance for re-use, or if none has been stored. + + + + Deactivates and releases the specified instance from the cache. + + The instance to release. + if the instance was found and released; otherwise . + + + + Immediately deactivates and removes all instances in the cache that are owned by + the specified scope. + + The scope whose instances should be deactivated. + + + + Immediately deactivates and removes all instances in the cache, regardless of scope. + + + + + Gets the number of entries currently stored in the cache. + + + + + Contains all cached instances. + This is a dictionary of scopes to a multimap for bindings to cache entries. + + + + + Initializes a new instance of the class. + + The pipeline component. + The cache pruner component. + + + + Releases resources held by the object. + + + + + + Stores the specified context in the cache. + + The context to store. + The instance reference. + + + + Tries to retrieve an instance to re-use in the specified context. + + The context that is being activated. + The instance for re-use, or if none has been stored. + + + + Deactivates and releases the specified instance from the cache. + + The instance to release. + if the instance was found and released; otherwise . + + + + Removes instances from the cache which should no longer be re-used. + + + + + Immediately deactivates and removes all instances in the cache that are owned by + the specified scope. + + The scope whose instances should be deactivated. + + + + Immediately deactivates and removes all instances in the cache, regardless of scope. + + + + + Gets all entries for a binding withing the selected scope. + + The bindings. + All bindings of a binding. + + + + Gets all cache entries. + + Returns all cache entries. + + + + Forgets the specified cache entries. + + The cache entries. + + + + Forgets the specified entry. + + The entry. + + + + Gets the pipeline component. + + + + + Gets the number of entries currently stored in the cache. + + + + + An entry in the cache. + + + + + Initializes a new instance of the class. + + The context. + The instance reference. + + + + Gets the context of the instance. + + The context. + + + + Gets the instance reference. + + The instance reference. + + + + Uses a and some magic to poll + the garbage collector to see if it has run. + + + + + Prunes instances from an based on environmental information. + + + + + Starts pruning the specified cache based on the rules of the pruner. + + The cache that will be pruned. + + + + Stops pruning. + + + + + The caches that are being pruned. + + + + + Releases resources held by the object. + + + + + Starts pruning the specified pruneable based on the rules of the pruner. + + The pruneable that will be pruned. + + + + Stops pruning. + + + + + A provider that delegates to a callback method to create instances. + + The type of instances the provider creates. + + + + A simple abstract provider for instances of a specific type. + + The type of instances the provider creates. + + + + Creates instances of services. + + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Initializes a new instance of the CallbackProvider<T> class. + + The callback method that will be called to create instances. + + + + Invokes the callback method to create an instance. + + The context. + The created instance. + + + + Gets the callback method used by the provider. + + + + + A provider that always returns the same constant value. + + The type of value that is returned. + + + + Initializes a new instance of the ConstantProvider<T> class. + + The value that the provider should return. + + + + Creates an instance within the specified context. + + The context. + The constant value this provider returns. + + + + Gets the value that the provider will return. + + + + + The standard provider for types, which activates instances via a . + + + + + Initializes a new instance of the class. + + The type (or prototype) of instances the provider creates. + The planner component. + The selector component. + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the value to inject into the specified target. + + The context. + The target. + The value to inject into the specified target. + + + + Gets the implementation type that the provider will activate an instance of + for the specified service. + + The service in question. + The implementation type that will be activated. + + + + Gets a callback that creates an instance of the + for the specified type. + + The prototype the provider instance will create. + The created callback. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Gets or sets the planner component. + + + + + Gets or sets the selector component. + + + + + Adds all activated instances to the activation cache. + + + + + Contributes to a , and is called during the activation + and deactivation of an instance. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + The activation cache. + + + + + Initializes a new instance of the class. + + The activation cache. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + Gets or sets the settings. + + The ninject settings. + + + + Contributes to a , and is called during the activation + and deactivation of an instance. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + Executes actions defined on the binding during activation and deactivation. + + + + + Calls the activation actions defined on the binding. + + The context. + A reference to the instance being activated. + + + + Calls the deactivation actions defined on the binding. + + The context. + A reference to the instance being deactivated. + + + + During deactivation, disposes instances that implement . + + + + + Disposes the specified instance. + + The context. + A reference to the instance being deactivated. + + + + During activation, initializes instances that implement . + + + + + Initializes the specified instance. + + The context. + A reference to the instance being activated. + + + + Injects methods on an instance during activation. + + + + + Injects values into the properties as described by s + contained in the plan. + + The context. + A reference to the instance being activated. + + + + Injects properties on an instance during activation. + + + + + Initializes a new instance of the class. + + The injector factory component. + + + + Injects values into the properties as described by s + contained in the plan. + + The context. + A reference to the instance being activated. + + + + Applies user supplied override values to instance properties. + + The context. + A reference to the instance being activated. + The parameter ovverride value accessors. + + + + Gets the value to inject into the specified target. + + The context. + The target. + The value to inject into the specified target. + + + + Gets the injector factory component. + + + + + Starts instances that implement during activation, + and stops them during deactivation. + + + + + Starts the specified instance. + + The context. + A reference to the instance being activated. + + + + Stops the specified instance. + + The context. + A reference to the instance being deactivated. + + + + Contains information about the activation of a single instance. + + + + + Contains information about the activation of a single instance. + + + + + Gets the provider that should be used to create the instance for this context. + + The provider that should be used. + + + + Gets the scope for the context that "owns" the instance activated therein. + + The object that acts as the scope. + + + + Resolves this instance for this context. + + The resolved instance. + + + + Gets the kernel that is driving the activation. + + + + + Gets the request. + + + + + Gets the binding. + + + + + Gets or sets the activation plan. + + + + + Gets the parameters that were passed to manipulate the activation process. + + + + + Gets the generic arguments for the request, if any. + + + + + Gets a value indicating whether the request involves inferred generic arguments. + + + + + Initializes a new instance of the class. + + The kernel managing the resolution. + The context's request. + The context's binding. + The cache component. + The planner component. + The pipeline component. + + + + Gets the scope for the context that "owns" the instance activated therein. + + The object that acts as the scope. + + + + Gets the provider that should be used to create the instance for this context. + + The provider that should be used. + + + + Resolves the instance associated with this hook. + + The resolved instance. + + + + Gets the kernel that is driving the activation. + + + + + Gets the request. + + + + + Gets the binding. + + + + + Gets or sets the activation plan. + + + + + Gets the parameters that were passed to manipulate the activation process. + + + + + Gets the generic arguments for the request, if any. + + + + + Gets a value indicating whether the request involves inferred generic arguments. + + + + + Gets or sets the cache component. + + + + + Gets or sets the planner component. + + + + + Gets or sets the pipeline component. + + + + + Holds an instance during activation or after it has been cached. + + + + + Returns a value indicating whether the instance is of the specified type. + + The type in question. + if the instance is of the specified type, otherwise . + + + + Returns the instance as the specified type. + + The requested type. + The instance. + + + + Executes the specified action if the instance if of the specified type. + + The type in question. + The action to execute. + + + + Gets or sets the instance. + + + + + Drives the activation (injection, etc.) of an instance. + + + + + Activates the instance in the specified context. + + The context. + The instance reference. + + + + Deactivates the instance in the specified context. + + The context. + The instance reference. + + + + Gets the strategies that contribute to the activation and deactivation processes. + + + + + Describes the request for a service resolution. + + + + + Determines whether the specified binding satisfies the constraint defined on this request. + + The binding. + True if the binding satisfies the constraint; otherwise false. + + + + Gets the scope if one was specified in the request. + + The object that acts as the scope. + + + + Creates a child request. + + The service that is being requested. + The context in which the request was made. + The target that will receive the injection. + The child request. + + + + Gets the service that was requested. + + + + + Gets the parent request. + + + + + Gets the parent context. + + + + + Gets the target that will receive the injection, if any. + + + + + Gets the constraint that will be applied to filter the bindings used for the request. + + + + + Gets the parameters that affect the resolution. + + + + + Gets the stack of bindings which have been activated by either this request or its ancestors. + + + + + Gets the recursive depth at which this request occurs. + + + + + Gets or sets value indicating whether the request is optional. + + + + + Gets or sets value indicating whether the request should return a unique result. + + + + + Drives the activation (injection, etc.) of an instance. + + + + + The activation cache. + + + + + Initializes a new instance of the class. + + The strategies to execute during activation and deactivation. + The activation cache. + + + + Activates the instance in the specified context. + + The context. + The instance reference. + + + + Deactivates the instance in the specified context. + + The context. + The instance reference. + + + + Gets the strategies that contribute to the activation and deactivation processes. + + + + + Describes the request for a service resolution. + + + + + Initializes a new instance of the class. + + The service that was requested. + The constraint that will be applied to filter the bindings used for the request. + The parameters that affect the resolution. + The scope callback, if an external scope was specified. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + + + + Initializes a new instance of the class. + + The parent context. + The service that was requested. + The target that will receive the injection. + The scope callback, if an external scope was specified. + + + + Determines whether the specified binding satisfies the constraints defined on this request. + + The binding. + True if the binding satisfies the constraints; otherwise false. + + + + Gets the scope if one was specified in the request. + + The object that acts as the scope. + + + + Creates a child request. + + The service that is being requested. + The context in which the request was made. + The target that will receive the injection. + The child request. + + + + Gets the service that was requested. + + + + + Gets the parent request. + + + + + Gets the parent context. + + + + + Gets the target that will receive the injection, if any. + + + + + Gets the constraint that will be applied to filter the bindings used for the request. + + + + + Gets the parameters that affect the resolution. + + + + + Gets the stack of bindings which have been activated by either this request or its ancestors. + + + + + Gets the recursive depth at which this request occurs. + + + + + Gets or sets value indicating whether the request is optional. + + + + + Gets or sets value indicating whether the request is for a single service. + + + + + Gets the callback that resolves the scope for the request, if an external scope was provided. + + + + + Defines a constraint on the decorated member. + + + + + Determines whether the specified binding metadata matches the constraint. + + The metadata in question. + True if the metadata matches; otherwise false. + + + + Indicates that the decorated member should be injected. + + + + + Indicates that the decorated member should only be injected using binding(s) registered + with the specified name. + + + + + Initializes a new instance of the class. + + The name of the binding(s) to use. + + + + Determines whether the specified binding metadata matches the constraint. + + The metadata in question. + True if the metadata matches; otherwise false. + + + + Gets the binding name. + + + + + Indicates that the decorated member represents an optional dependency. + + + + + An internal container that manages and resolves components that contribute to Ninject. + + + + + An internal container that manages and resolves components that contribute to Ninject. + + + + + Registers a component in the container. + + The component type. + The component's implementation type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Removes all registrations for the specified component. + + The component's type. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets or sets the kernel that owns the component container. + + + + + Releases resources held by the object. + + + + + Registers a component in the container. + + The component type. + The component's implementation type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets or sets the kernel that owns the component container. + + + + + Provides meaningful exception messages. + + + + + Generates a message saying that modules without names are not supported. + + The exception message. + + + + Generates a message saying that a module with the same name is already loaded. + + The new module. + The existing module. + The exception message. + + + + Generates a message saying that no module has been loaded with the specified name. + + The module name. + The exception message. + + + + Generates a message saying that the binding could not be uniquely resolved. + + The request. + The exception message. + + + + Generates a message saying that the binding could not be resolved on the specified request. + + The request. + The exception message. + + + + Generates a message saying that the specified context has cyclic dependencies. + + The context. + The exception message. + + + + Generates a message saying that an invalid attribute type is used in the binding condition. + + The binding. + Name of the method. + The type. + The exception message. + + + + Generates a message saying that no constructors are available on the specified context. + + The context. + The exception message. + + + + Generates a message saying that no constructors are available for the given component. + + The component. + The implementation. + The exception message. + + + + Generates a message saying that the specified component is not registered. + + The component. + The exception message. + + + + Generates a message saying that the specified property could not be resolved on the specified request. + + The request. + The property name. + The exception message. + + + + Generates a message saying that the provider on the specified context returned null. + + The context. + The exception message. + + + + Provides extension methods for string formatting + + + + + Formats the activation path into a meaningful string representation. + + The request to be formatted. + The activation path formatted as string. + + + + Formats the given binding into a meaningful string representation. + + The binding to be formatted. + The context. + The binding formatted as string + + + + Formats the specified request into a meaningful string representation. + + The request to be formatted. + The request formatted as string. + + + + Formats the specified target into a meaningful string representation.. + + The target to be formatted. + The target formatted as string. + + + + Formats the specified type into a meaningful string representation.. + + The type to be formatted. + The type formatted as string. + + + + Extensions for MemberInfo + + + + + Determines whether the specified member has attribute. + + The type of the attribute. + The member. + + true if the specified member has attribute; otherwise, false. + + + + + Determines whether the specified member has attribute. + + The member. + The type of the attribute. + + true if the specified member has attribute; otherwise, false. + + + + + Gets the property info from its declared tpe. + + The member info. + The property definition. + The flags. + The property info from the declared type of the property. + + + + Determines whether the specified property info is private. + + The property info. + + true if the specified property info is private; otherwise, false. + + + + + Gets the custom attributes. + This version is able to get custom attributes for properties from base types even if the property is none public. + + The member. + Type of the attribute. + if set to true [inherited]. + + + + + Represents a future value. + + The type of value. + + + + Initializes a new instance of the Future<T> class. + + The callback that will be triggered to read the value. + + + + Gets the value from the future. + + The future. + The future value. + + + + Gets the value, resolving it if necessary. + + + + + Gets the callback that will be called to resolve the value. + + + + + Indicates the object has a reference to a . + + + + + Gets the binding. + + + + + Indicates that the object has a reference to an . + + + + + Gets the kernel. + + + + + A data structure that contains multiple values for a each key. + + The type of key. + The type of value. + + + + Adds the specified value for the specified key. + + The key. + The value. + + + + Removes the specified value for the specified key. + + The key. + The value. + True if such a value existed and was removed; otherwise false. + + + + Removes all values for the specified key. + + The key. + True if any such values existed; otherwise false. + + + + Removes all values. + + + + + Determines whether the multimap contains any values for the specified key. + + The key. + True if the multimap has one or more values for the specified key; otherwise, false. + + + + Determines whether the multimap contains the specified value for the specified key. + + The key. + The value. + True if the multimap contains such a value; otherwise, false. + + + + Returns an enumerator that iterates through a the multimap. + + An object that can be used to iterate through the multimap. + + + + Gets the collection of values stored under the specified key. + + The key. + + + + Gets the collection of keys. + + + + + Gets the collection of collections of values. + + + + + Weak reference that can be used in collections. It is equal to the + object it references and has the same hash code. + + + + + Initializes a new instance of the class. + + The target. + + + + Initializes a new instance of the class. + + The target. + if set to true [track resurrection]. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + The parameter is null. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets a value indicating whether this instance is alive. + + true if this instance is alive; otherwise, false. + + + + Gets or sets the target of this weak reference. + + The targe of this weak reference. + + + + Defines the style of request (single or multi-injection, whether it is optional, etc.) + + + + + Indicates a request for a single instance of a service. + + + + + Indicates a request for multiple instances of a service. + + + + + Indicates that null should be returned (instead of throwing) if the service cannot be resolved. + + + + + Scope callbacks for standard scopes. + + + + + Gets the callback for transient scope. + + + + + Gets the callback for singleton scope. + + + + + Gets the callback for thread scope. + + + + + A delegate that can inject values into a constructor. + + + + + Creates injectors for members via s. + + + + + Creates injectors from members. + + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + A delegate that can inject values into a method. + + + + + A delegate that can inject values into a property. + + + + + Creates injectors from members via reflective invocation. + + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + Loads modules from compiled assemblies. + + + + + Loads modules at runtime by searching external files. + + + + + Loads modules from the specified files. + + The names of the files to load modules from. + + + + Gets the file extensions that the plugin understands how to load. + + + + + Initializes a new instance of the class. + + The kernel into which modules will be loaded. + + + + Loads modules from the specified files. + + The names of the files to load modules from. + + + + Gets or sets the kernel into which modules will be loaded. + + + + + Gets the file extensions that the plugin understands how to load. + + + + + Finds modules defined in external files. + + + + + Loads any modules found in the files that match the specified patterns. + + The patterns to search. + + + + A pluggable unit that can be loaded into an . + + + + + Called when the module is loaded into a kernel. + + The kernel that is loading the module. + + + + Called when the module is unloaded from a kernel. + + The kernel that is unloading the module. + + + + Gets the module's name. + + + + + Automatically finds and loads modules from assemblies. + + + + + Initializes a new instance of the class. + + The kernel into which modules will be loaded. + + + + Loads any modules found in the files that match the specified patterns. + + The patterns to search. + + + + Gets or sets the kernel into which modules will be loaded. + + + + + A loadable unit that defines bindings for your application. + + + + + Provides a path to register bindings. + + + + + Provides a path to register bindings. + + + + + Declares a binding for the specified service. + + The service to bind. + + + + Declares a binding from the service to itself. + + The service to bind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Declares a binding for the specified service. + + The service to bind. + + + + Declares a binding for the specified service. + + The service to bind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Initializes a new instance of the class. + + + + + Called when the module is loaded into a kernel. + + The kernel that is loading the module. + + + + Called when the module is unloaded from a kernel. + + The kernel that is unloading the module. + + + + Loads the module into the kernel. + + + + + Unloads the module from the kernel. + + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Gets the kernel that the module is loaded into. + + + + + Gets the module's name. Only a single module with a given name can be loaded at one time. + + + + + Gets the bindings that were registered by the module. + + + + + Overrides the injected value of a constructor argument. + + + + + Modifies an activation process in some way. + + + + + Modifies an activation process in some way. + + + + + Gets the value for the parameter within the specified context. + + The context. + The target. + The value for the parameter. + + + + Gets the name of the parameter. + + + + + Gets a value indicating whether the parameter should be inherited into child requests. + + + + + Initializes a new instance of the class. + + The name of the parameter. + The value of the parameter. + Whether the parameter should be inherited into child requests. + + + + Initializes a new instance of the class. + + The name of the parameter. + The callback that will be triggered to get the parameter's value. + Whether the parameter should be inherited into child requests. + + + + Initializes a new instance of the class. + + The name of the parameter. + The callback that will be triggered to get the parameter's value. + Whether the parameter should be inherited into child requests. + + + + Gets the value for the parameter within the specified context. + + The context. + The target. + The value for the parameter. + + + + Determines whether the object equals the specified object. + + An object to compare with this object. + True if the objects are equal; otherwise false + + + + Serves as a hash function for a particular type. + + A hash code for the object. + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + True if the objects are equal; otherwise false + + + + Gets the name of the parameter. + + + + + Gets a value indicating whether the parameter should be inherited into child requests. + + + + + Gets or sets the callback that will be triggered to get the parameter's value. + + + + + Initializes a new instance of the class. + + The name of the argument to override. + The value to inject into the property. + + + + Initializes a new instance of the class. + + The name of the argument to override. + The callback to invoke to get the value that should be injected. + + + + Initializes a new instance of the class. + + The name of the argument to override. + The callback to invoke to get the value that should be injected. + + + + Overrides the injected value of a property. + + + + + Initializes a new instance of the class. + + The name of the property to override. + The value to inject into the property. + + + + Initializes a new instance of the class. + + The name of the property to override. + The callback to invoke to get the value that should be injected. + + + + Initializes a new instance of the class. + + The name of the property to override. + The callback to invoke to get the value that should be injected. + + + + Contains logic about which bindings to use for a given service request. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Contains logic about which bindings to use for a given service request + when other attempts have failed. + + + + + Returns any bindings from the specified collection that match the specified request. + + The multimap of all registered bindings. + The request in question. + The series of matching bindings. + + + + Resolves bindings for open generic types. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Returns a value indicating whether the specified service is self-bindable. + + The service. + if the type is self-bindable; otherwise . + + + + Resolves bindings that have been registered directly for the service. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Contains information about a service registration. + + + + + Contains information about a service registration. + + + + + Gets the provider for the binding. + + The context. + The provider to use. + + + + Gets the scope for the binding, if any. + + The context. + The object that will act as the scope, or if the service is transient. + + + + Determines whether the specified request satisfies the condition defined on the binding, + if one was defined. + + The request. + True if the request satisfies the condition; otherwise false. + + + + Gets the service type that is controlled by the binding. + + + + + Gets the binding's metadata. + + + + + Gets or sets the type of target for the binding. + + + + + Gets or sets a value indicating whether the binding was implicitly registered. + + + + + Gets a value indicating whether the binding has a condition associated with it. + + + + + Gets or sets the condition defined for the binding. + + + + + Gets or sets the callback that returns the provider that should be used by the binding. + + + + + Gets or sets the callback that returns the object that will act as the binding's scope. + + + + + Gets the parameters defined for the binding. + + + + + Gets the actions that should be called after instances are activated via the binding. + + + + + Gets the actions that should be called before instances are deactivated via the binding. + + + + + Initializes a new instance of the class. + + The service that is controlled by the binding. + + + + Initializes a new instance of the class. + + The service that is controlled by the binding. + The binding's metadata container. + + + + Gets the provider for the binding. + + The context. + The provider to use. + + + + Gets the scope for the binding, if any. + + The context. + The object that will act as the scope, or if the service is transient. + + + + Determines whether the specified request satisfies the conditions defined on this binding. + + The request. + True if the request satisfies the conditions; otherwise false. + + + + Gets the service type that is controlled by the binding. + + + + + Gets the binding's metadata. + + + + + Gets or sets a value indicating whether the binding was implicitly registered. + + + + + Gets a value indicating whether the binding has a condition associated with it. + + + + + Gets or sets the type of target for the binding. + + + + + Gets or sets the condition defined for the binding. + + + + + Gets or sets the callback that returns the provider that should be used by the binding. + + + + + Gets or sets the callback that returns the object that will act as the binding's scope. + + + + + Gets the parameters defined for the binding. + + + + + Gets the actions that should be called after instances are activated via the binding. + + + + + Gets the actions that should be called before instances are deactivated via the binding. + + + + + Provides a root for the fluent syntax associated with an . + + + + + Used to define the target of a binding. + + The service being bound. + + + + Used to define a basic binding syntax builder. + + + + + A hack to hide methods defined on for IntelliSense + on fluent interfaces. Credit to Daniel Cazzulino. + + + + + + + + + + + + + + + + + Indicates that the service should be self-bound. + + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to the specified provider. + + The provider. + + + + Indicates that the service should be bound to the specified callback method. + + The method. + + + + Indicates that the service should be bound to the specified constant value. + + The constant value. + + + + Used to set the condition, scope, name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to define the conditions under which a binding should be used. + + The service being bound. + + + + Indicates that the binding should be used only for requests that support the specified condition. + + The condition. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the service is being requested + by a service bound with the specified name. + + The name to expect. + + + + Used to define the scope in which instances activated via a binding should be re-used. + + The service being bound. + + + + Indicates that only a single instance of the binding should be created, and then + should be re-used for all subsequent requests. + + + + + Indicates that instances activated via the binding should not be re-used, nor have + their lifecycle managed by Ninject. + + + + + Indicates that instances activated via the binding should be re-used within the same thread. + + + + + Indicates that instances activated via the binding should be re-used as long as the object + returned by the provided callback remains alive (that is, has not been garbage collected). + + The callback that returns the scope. + + + + Used to define the name of a binding. + + The service being bound. + + + + Indicates that the binding should be registered with the specified name. Names are not + necessarily unique; multiple bindings for a given service may be registered with the same name. + + The name to give the binding. + + + + Used to add additional information to a binding. + + The service being bound. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Adds a custom parameter to the binding. + + The parameter. + + + + Sets the value of a piece of metadata on the binding. + + The metadata key. + The metadata value. + + + + Used to add additional actions to be performed during activation or deactivation of instances via a binding. + + The service being bound. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Used to set the scope, name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to set the name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to add additional information or actions to a binding. + + The service being bound. + + + + Initializes a new instance of the BindingBuilder<T> class. + + The binding to build. + The kernel. + + + + Indicates that the service should be self-bound. + + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to the specified provider. + + The provider. + + + + Indicates that the service should be bound to the specified callback method. + + The method. + + + + Indicates that the service should be bound to the specified constant value. + + The constant value. + + + + Indicates that the binding should be used only for requests that support the specified condition. + + The condition. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the service is being requested + by a service bound with the specified name. + + The name to expect. + + + + Indicates that the binding should be registered with the specified name. Names are not + necessarily unique; multiple bindings for a given service may be registered with the same name. + + The name to give the binding. + + + + Indicates that only a single instance of the binding should be created, and then + should be re-used for all subsequent requests. + + + + + Indicates that instances activated via the binding should not be re-used, nor have + their lifecycle managed by Ninject. + + + + + Indicates that instances activated via the binding should be re-used within the same thread. + + + + + Indicates that instances activated via the binding should be re-used as long as the object + returned by the provided callback remains alive (that is, has not been garbage collected). + + The callback that returns the scope. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Adds a custom parameter to the binding. + + The parameter. + + + + Sets the value of a piece of metadata on the binding. + + The metadata key. + The metadata value. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Provides a root for the fluent syntax associated with an . + + + + + Gets the binding being built. + + + + + Gets the kernel. + + + + + Additional information available about a binding, which can be used in constraints + to select bindings to use in activation. + + + + + Additional information available about a binding, which can be used in constraints + to select bindings to use in activation. + + + + + Determines whether a piece of metadata with the specified key has been defined. + + The metadata key. + True if such a piece of metadata exists; otherwise, false. + + + + Gets the value of metadata defined with the specified key, cast to the specified type. + + The type of value to expect. + The metadata key. + The metadata value. + + + + Gets the value of metadata defined with the specified key. + + The metadata key. + The value to return if the binding has no metadata set with the specified key. + The metadata value, or the default value if none was set. + + + + Sets the value of a piece of metadata. + + The metadata key. + The metadata value. + + + + Gets or sets the binding's name. + + + + + Determines whether a piece of metadata with the specified key has been defined. + + The metadata key. + True if such a piece of metadata exists; otherwise, false. + + + + Gets the value of metadata defined with the specified key, cast to the specified type. + + The type of value to expect. + The metadata key. + The metadata value. + + + + Gets the value of metadata defined with the specified key. + + The metadata key. + The value to return if the binding has no metadata set with the specified key. + The metadata value, or the default value if none was set. + + + + Sets the value of a piece of metadata. + + The metadata key. + The metadata value. + + + + Gets or sets the binding's name. + + + + + Describes the target of a binding. + + + + + Indicates that the binding is from a type to itself. + + + + + Indicates that the binding is from one type to another. + + + + + Indicates that the binding is from a type to a provider. + + + + + Indicates that the binding is from a type to a callback method. + + + + + Indicates that the binding is from a type to a constant value. + + + + + Describes the injection of a constructor. + + + + + Describes the injection of a method or constructor. + + + + + A piece of information used in an . (Just a marker.) + + + + + Initializes a new instance of the MethodInjectionDirectiveBase<TMethod, TInjector> class. + + The method this directive represents. + The injector that will be triggered. + + + + Creates targets for the parameters of the method. + + The method. + The targets for the method's parameters. + + + + Gets or sets the injector that will be triggered. + + + + + Gets or sets the targets for the directive. + + + + + Initializes a new instance of the class. + + The constructor described by the directive. + The injector that will be triggered. + + + + The base .ctor definition. + + + + + Describes the injection of a method. + + + + + Initializes a new instance of the class. + + The method described by the directive. + The injector that will be triggered. + + + + Describes the injection of a property. + + + + + Initializes a new instance of the class. + + The member the directive describes. + The injector that will be triggered. + + + + Creates a target for the property. + + The property. + The target for the property. + + + + Gets or sets the injector that will be triggered. + + + + + Gets or sets the injection target for the directive. + + + + + Adds a directive to plans indicating which constructor should be injected during activation. + + + + + Contributes to the generation of a . + + + + + Contributes to the specified plan. + + The plan that is being generated. + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for the constructor + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Adds directives to plans indicating which methods should be injected during activation. + + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for each method + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Adds directives to plans indicating which properties should be injected during activation. + + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for each property + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Represents a site on a type where a value will be injected. + + + + + Resolves a value for the target within the specified parent context. + + The parent context. + The resolved value. + + + + Gets the type of the target. + + + + + Gets the name of the target. + + + + + Gets the member that contains the target. + + + + + Gets the constraint defined on the target. + + + + + Gets a value indicating whether the target represents an optional dependency. + + + + + Represents an injection target for a . + + + + + Represents a site on a type where a value can be injected. + + The type of site this represents. + + + + Initializes a new instance of the Target<T> class. + + The member that contains the target. + The site represented by the target. + + + + Returns an array of custom attributes of a specified type defined on the target. + + The type of attribute to search for. + Whether to look up the hierarchy chain for inherited custom attributes. + An array of custom attributes of the specified type. + + + + Returns an array of custom attributes defined on the target. + + Whether to look up the hierarchy chain for inherited custom attributes. + An array of custom attributes. + + + + Returns a value indicating whether an attribute of the specified type is defined on the target. + + The type of attribute to search for. + Whether to look up the hierarchy chain for inherited custom attributes. + True if such an attribute is defined; otherwise false. + + + + Resolves a value for the target within the specified parent context. + + The parent context. + The resolved value. + + + + Gets the value(s) that should be injected into the target. + + The service that the target is requesting. + The parent context in which the target is being injected. + A series of values that are available for injection. + + + + Gets the value that should be injected into the target. + + The service that the target is requesting. + The parent context in which the target is being injected. + The value that is to be injected. + + + + Reads whether the target represents an optional dependency. + + if it is optional; otherwise . + + + + Reads the resolution constraint from target. + + The resolution constraint. + + + + Gets the member that contains the target. + + + + + Gets or sets the site (property, parameter, etc.) represented by the target. + + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Gets the constraint defined on the target. + + + + + Gets a value indicating whether the target represents an optional dependency. + + + + + Initializes a new instance of the class. + + The method that defines the parameter. + The parameter that this target represents. + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Represents an injection target for a . + + + + + Initializes a new instance of the class. + + The property that this target represents. + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Describes the means by which a type should be activated. + + + + + Adds the specified directive to the plan. + + The directive. + + + + Determines whether the plan contains one or more directives of the specified type. + + The type of directive. + True if the plan has one or more directives of the type; otherwise, false. + + + + Gets the first directive of the specified type from the plan. + + The type of directive. + The first directive, or if no matching directives exist. + + + + Gets all directives of the specified type that exist in the plan. + + The type of directive. + A series of directives of the specified type. + + + + Gets the type that the plan describes. + + + + + Generates plans for how to activate instances. + + + + + Gets or creates an activation plan for the specified type. + + The type for which a plan should be created. + The type's activation plan. + + + + Gets the strategies that contribute to the planning process. + + + + + Describes the means by which a type should be activated. + + + + + Initializes a new instance of the class. + + The type the plan describes. + + + + Adds the specified directive to the plan. + + The directive. + + + + Determines whether the plan contains one or more directives of the specified type. + + The type of directive. + True if the plan has one or more directives of the type; otherwise, false. + + + + Gets the first directive of the specified type from the plan. + + The type of directive. + The first directive, or if no matching directives exist. + + + + Gets all directives of the specified type that exist in the plan. + + The type of directive. + A series of directives of the specified type. + + + + Gets the type that the plan describes. + + + + + Gets the directives defined in the plan. + + + + + Generates plans for how to activate instances. + + + + + Initializes a new instance of the class. + + The strategies to execute during planning. + + + + Gets or creates an activation plan for the specified type. + + The type for which a plan should be created. + The type's activation plan. + + + + Creates an empty plan for the specified type. + + The type for which a plan should be created. + The created plan. + + + + Gets the strategies that contribute to the planning process. + + + + + Generates scores for constructors, to determine which is the best one to call during activation. + + + + + Gets the score for the specified constructor. + + The injection context. + The constructor. + The constructor's score. + + + + Determines whether members should be injected during activation. + + + + + Returns a value indicating whether the specified member should be injected. + + The member in question. + True if the member should be injected; otherwise false. + + + + Scores constructors by either looking for the existence of an injection marker + attribute, or by counting the number of parameters. + + + + + Gets the score for the specified constructor. + + The injection context. + The constructor. + The constructor's score. + + + + Determines whether members should be injected during activation by checking + if they are decorated with an injection marker attribute. + + + + + Returns a value indicating whether the specified member should be injected. + + The member in question. + True if the member should be injected; otherwise false. + + + + Selects members for injection. + + + + + Selects the constructor to call on the specified type, by using the constructor scorer. + + The type. + The selected constructor, or if none were available. + + + + Selects properties that should be injected. + + The type. + A series of the selected properties. + + + + Selects methods that should be injected. + + The type. + A series of the selected methods. + + + + Gets or sets the constructor scorer. + + + + + Gets the heuristics used to determine which members should be injected. + + + + + Selects members for injection. + + + + + Initializes a new instance of the class. + + The constructor scorer. + The injection heuristics. + + + + Selects the constructor to call on the specified type, by using the constructor scorer. + + The type. + The selected constructor, or if none were available. + + + + Selects properties that should be injected. + + The type. + A series of the selected properties. + + + + Selects methods that should be injected. + + The type. + A series of the selected methods. + + + + Gets or sets the constructor scorer. + + + + + Gets the property injection heuristics. + + + + + Extension methods that enhance module loading. + + + + + Creates a new instance of the module and loads it into the kernel. + + The type of the module. + The kernel. + + + + Loads the module(s) into the kernel. + + The kernel. + The modules to load. + + + + Loads modules from the files that match the specified pattern(s). + + The kernel. + The file patterns (i.e. "*.dll", "modules/*.rb") to match. + + + + Loads modules defined in the specified assemblies. + + The kernel. + The assemblies to search. + + + + Extensions that enhance resolution of services. + + + + + Gets an instance of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding that matches the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service. + + + + Tries to get an instance of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding that matches the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Gets all available instances of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service using bindings registered with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service by using the bindings that match the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the bindings. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets an instance of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding that matches the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service. + + + + Tries to get an instance of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding that matches the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Gets all available instances of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service using bindings registered with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service by using the bindings that match the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the bindings. + The parameters to pass to the request. + A series of instances of the service. + + + + Indicates that an error occured during activation of an instance. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + Initializes a new instance of the class. + + The exception message. + The inner exception. + + + + Initializes a new instance of the class. + + The serialized object data. + The serialization context. + + + + A service that requires initialization after it is activated. + + + + + Initializes the instance. Called during activation. + + + + + A super-factory that can create objects of all kinds, following hints provided by s. + + + + + Gets the modules that have been loaded into the kernel. + + A series of loaded modules. + + + + Determines whether a module with the specified name has been loaded in the kernel. + + The name of the module. + True if the specified module has been loaded; otherwise, false. + + + + Loads the module(s) into the kernel. + + The modules to load. + + + + Loads modules from the files that match the specified pattern(s). + + The file patterns (i.e. "*.dll", "modules/*.rb") to match. + + + + Loads modules defined in the specified assemblies. + + The assemblies to search. + + + + Unloads the plugin with the specified name. + + The plugin's name. + + + + Injects the specified existing instance, without managing its lifecycle. + + The instance to inject. + The parameters to pass to the request. + + + + Deactivates and releases the specified instance if it is currently managed by Ninject. + + The instance to release. + if the instance was found and released; otherwise . + + + + Gets the bindings registered for the specified service. + + The service in question. + A series of bindings that are registered for the service. + + + + Begins a new activation block, which can be used to deterministically dispose resolved instances. + + The new activation block. + + + + Gets the kernel settings. + + + + + Gets the component container, which holds components that contribute to Ninject. + + + + + Contains configuration options for Ninject. + + + + + Gets the value for the specified key. + + The type of value to return. + The setting's key. + The value to return if no setting is available. + The value, or the default value if none was found. + + + + Sets the value for the specified key. + + The setting's key. + The setting's value. + + + + Gets the attribute that indicates that a member should be injected. + + + + + Gets the interval at which the cache should be pruned. + + + + + Gets a value indicating whether the kernel should automatically load extensions at startup. + + + + + Gets the path that should be searched for extensions. + + + + + Gets a value indicating whether Ninject should use reflection-based injection instead of + the (usually faster) lightweight code generation system. + + + + + Gets a value indicating whether Ninject should inject non public members. + + + + + Gets a value indicating whether Ninject should inject private properties of base classes. + + + Activating this setting has an impact on the performance. It is recomended not + to use this feature and use constructor injection instead. + + + + + Gets or sets a value indicating whether the activation cache is disabled. + If the activation cache is disabled less memory is used. But in some cases + instances are activated or deactivated multiple times. e.g. in the following scenario: + Bind{A}().ToSelf(); + Bind{IA}().ToMethod(ctx => kernel.Get{IA}(); + + + true if activation cache is disabled; otherwise, false. + + + + + Gets or sets a value indicating whether Null is a valid value for injection. + By defualt this is disabled and whenever a provider returns null an eception is thrown. + + true if null is allowed as injected value otherwise false. + + + + A service that is started when activated, and stopped when deactivated. + + + + + Starts this instance. Called during activation. + + + + + Stops this instance. Called during deactivation. + + + + + The base implementation of an . + + + + + Lock used when adding missing bindings. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The configuration to use. + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The component container to use. + The configuration to use. + The modules to load into the kernel. + + + + Releases resources held by the object. + + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Determines whether a module with the specified name has been loaded in the kernel. + + The name of the module. + True if the specified module has been loaded; otherwise, false. + + + + Gets the modules that have been loaded into the kernel. + + A series of loaded modules. + + + + Loads the module(s) into the kernel. + + The modules to load. + + + + Loads modules from the files that match the specified pattern(s). + + The file patterns (i.e. "*.dll", "modules/*.rb") to match. + + + + Loads modules defined in the specified assemblies. + + The assemblies to search. + + + + Unloads the plugin with the specified name. + + The plugin's name. + + + + Injects the specified existing instance, without managing its lifecycle. + + The instance to inject. + The parameters to pass to the request. + + + + Deactivates and releases the specified instance if it is currently managed by Ninject. + + The instance to release. + if the instance was found and released; otherwise . + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + Begins a new activation block, which can be used to deterministically dispose resolved instances. + + The new activation block. + + + + Gets the bindings registered for the specified service. + + The service in question. + A series of bindings that are registered for the service. + + + + Returns an IComparer that is used to determine resolution precedence. + + An IComparer that is used to determine resolution precedence. + + + + Returns a predicate that can determine if a given IBinding matches the request. + + The request/ + A predicate that can determine if a given IBinding matches the request. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Adds components to the kernel during startup. + + + + + Attempts to handle a missing binding for a service. + + The service. + True if the missing binding can be handled; otherwise false. + + + + Attempts to handle a missing binding for a request. + + The request. + True if the missing binding can be handled; otherwise false. + + + + Returns a value indicating whether the specified service is self-bindable. + + The service. + if the type is self-bindable; otherwise . + + + + Creates a context for the specified request and binding. + + The request. + The binding. + The created context. + + + + Gets the kernel settings. + + + + + Gets the component container, which holds components that contribute to Ninject. + + + + + Contains configuration options for Ninject. + + + + + Gets the value for the specified key. + + The type of value to return. + The setting's key. + The value to return if no setting is available. + The value, or the default value if none was found. + + + + Sets the value for the specified key. + + The setting's key. + The setting's value. + + + + Gets or sets the attribute that indicates that a member should be injected. + + + + + Gets or sets the interval at which the GC should be polled. + + + + + Gets or sets a value indicating whether the kernel should automatically load extensions at startup. + + + + + Gets or sets the path that should be searched for extensions. + + + + + Gets a value indicating whether Ninject should use reflection-based injection instead of + the (usually faster) lightweight code generation system. + + + + + Gets a value indicating whether Ninject should inject non public members. + + + + + Gets a value indicating whether Ninject should inject private properties of base classes. + + + Activating this setting has an impact on the performance. It is recomended not + to use this feature and use constructor injection instead. + + + + + Gets or sets a value indicating whether the activation cache is disabled. + If the activation cache is disabled less memory is used. But in some cases + instances are activated or deactivated multiple times. e.g. in the following scenario: + Bind{A}().ToSelf(); + Bind{IA}().ToMethod(ctx => kernel.Get{IA}(); + + + true if activation cache is disabled; otherwise, false. + + + + + Gets or sets a value indicating whether Null is a valid value for injection. + By defualt this is disabled and whenever a provider returns null an eception is thrown. + + + true if null is allowed as injected value otherwise false. + + + + + The standard implementation of a kernel. + + + + + Initializes a new instance of the class. + + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The configuration to use. + The modules to load into the kernel. + + + + Adds components to the kernel during startup. + + + + diff --git a/packages/Ninject.2.2.1.0/lib/.NetFramework 3.5/Ninject.dll b/packages/Ninject.2.2.1.4/lib/net35-Full/Ninject.dll similarity index 98% rename from packages/Ninject.2.2.1.0/lib/.NetFramework 3.5/Ninject.dll rename to packages/Ninject.2.2.1.4/lib/net35-Full/Ninject.dll index 1a3daf8bf..7264dc255 100644 Binary files a/packages/Ninject.2.2.1.0/lib/.NetFramework 3.5/Ninject.dll and b/packages/Ninject.2.2.1.4/lib/net35-Full/Ninject.dll differ diff --git a/packages/Ninject.2.2.1.4/lib/net35-Full/Ninject.pdb b/packages/Ninject.2.2.1.4/lib/net35-Full/Ninject.pdb new file mode 100644 index 000000000..abf91116e Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/net35-Full/Ninject.pdb differ diff --git a/packages/Ninject.2.2.1.0/lib/.NetFramework 3.5/Ninject.xml b/packages/Ninject.2.2.1.4/lib/net35-Full/Ninject.xml similarity index 100% rename from packages/Ninject.2.2.1.0/lib/.NetFramework 3.5/Ninject.xml rename to packages/Ninject.2.2.1.4/lib/net35-Full/Ninject.xml diff --git a/packages/Ninject.2.2.1.4/lib/net40-Client/Ninject.dll b/packages/Ninject.2.2.1.4/lib/net40-Client/Ninject.dll new file mode 100644 index 000000000..083528ccb Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/net40-Client/Ninject.dll differ diff --git a/packages/Ninject.2.2.1.4/lib/net40-Client/Ninject.pdb b/packages/Ninject.2.2.1.4/lib/net40-Client/Ninject.pdb new file mode 100644 index 000000000..46d08cc59 Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/net40-Client/Ninject.pdb differ diff --git a/packages/Ninject.2.2.1.4/lib/net40-Client/Ninject.xml b/packages/Ninject.2.2.1.4/lib/net40-Client/Ninject.xml new file mode 100644 index 000000000..2a7ad161f --- /dev/null +++ b/packages/Ninject.2.2.1.4/lib/net40-Client/Ninject.xml @@ -0,0 +1,4641 @@ + + + + Ninject + + + + + A block used for deterministic disposal of activated instances. When the block is + disposed, all instances activated via it will be deactivated. + + + + + An object that notifies when it is disposed. + + + + + An object that can report whether or not it is disposed. + + + + + Gets a value indicating whether this instance is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases resources held by the object. + + + + + Releases resources before the object is reclaimed by garbage collection. + + + + + Gets a value indicating whether this instance is disposed. + + + + + A block used for deterministic disposal of activated instances. When the block is + disposed, all instances activated via it will be deactivated. + + + + + Provides a path to resolve instances. + + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + An object that fires an event when it is disposed. + + + + + Occurs when the object is disposed. + + + + + Initializes a new instance of the class. + + The parent resolution root. + + + + Releases resources held by the object. + + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + Gets or sets the parent resolution root (usually the kernel). + + + + + Occurs when the object is disposed. + + + + + Stores the objects that were activated + + + + + A component that contributes to the internals of Ninject. + + + + + A component that contributes to the internals of Ninject. + + + + + Gets or sets the settings. + + + + + Gets or sets the settings. + + + + + Stores the objects that were activated + + + + + Clears the cache. + + + + + Adds an activated instance. + + The instance to be added. + + + + Adds an deactivated instance. + + The instance to be added. + + + + Determines whether the specified instance is activated. + + The instance. + + true if the specified instance is activated; otherwise, false. + + + + + Determines whether the specified instance is deactivated. + + The instance. + + true if the specified instance is deactivated; otherwise, false. + + + + + An object that is prunealble. + + + + + Removes instances from the cache which should no longer be re-used. + + + + + The objects that were activated as reference equal weak references. + + + + + The objects that were activated as reference equal weak references. + + + + + Initializes a new instance of the class. + + The cache pruner. + + + + Clears the cache. + + + + + Adds an activated instance. + + The instance to be added. + + + + Adds an deactivated instance. + + The instance to be added. + + + + Determines whether the specified instance is activated. + + The instance. + + true if the specified instance is activated; otherwise, false. + + + + + Determines whether the specified instance is deactivated. + + The instance. + + true if the specified instance is deactivated; otherwise, false. + + + + + Prunes this instance. + + + + + Removes all dead objects. + + The objects collection to be freed of dead objects. + + + + Gets the activated object count. + + The activated object count. + + + + Gets the deactivated object count. + + The deactivated object count. + + + + Tracks instances for re-use in certain scopes. + + + + + Tracks instances for re-use in certain scopes. + + + + + Stores the specified instance in the cache. + + The context to store. + The instance reference. + + + + Tries to retrieve an instance to re-use in the specified context. + + The context that is being activated. + The instance for re-use, or if none has been stored. + + + + Deactivates and releases the specified instance from the cache. + + The instance to release. + if the instance was found and released; otherwise . + + + + Immediately deactivates and removes all instances in the cache that are owned by + the specified scope. + + The scope whose instances should be deactivated. + + + + Immediately deactivates and removes all instances in the cache, regardless of scope. + + + + + Gets the number of entries currently stored in the cache. + + + + + Contains all cached instances. + This is a dictionary of scopes to a multimap for bindings to cache entries. + + + + + Initializes a new instance of the class. + + The pipeline component. + The cache pruner component. + + + + Releases resources held by the object. + + + + + + Stores the specified context in the cache. + + The context to store. + The instance reference. + + + + Tries to retrieve an instance to re-use in the specified context. + + The context that is being activated. + The instance for re-use, or if none has been stored. + + + + Deactivates and releases the specified instance from the cache. + + The instance to release. + if the instance was found and released; otherwise . + + + + Removes instances from the cache which should no longer be re-used. + + + + + Immediately deactivates and removes all instances in the cache that are owned by + the specified scope. + + The scope whose instances should be deactivated. + + + + Immediately deactivates and removes all instances in the cache, regardless of scope. + + + + + Gets all entries for a binding withing the selected scope. + + The bindings. + All bindings of a binding. + + + + Gets all cache entries. + + Returns all cache entries. + + + + Forgets the specified cache entries. + + The cache entries. + + + + Forgets the specified entry. + + The entry. + + + + Gets the pipeline component. + + + + + Gets the number of entries currently stored in the cache. + + + + + An entry in the cache. + + + + + Initializes a new instance of the class. + + The context. + The instance reference. + + + + Gets the context of the instance. + + The context. + + + + Gets the instance reference. + + The instance reference. + + + + Uses a and some magic to poll + the garbage collector to see if it has run. + + + + + Prunes instances from an based on environmental information. + + + + + Starts pruning the specified cache based on the rules of the pruner. + + The cache that will be pruned. + + + + Stops pruning. + + + + + The caches that are being pruned. + + + + + Releases resources held by the object. + + + + + Starts pruning the specified pruneable based on the rules of the pruner. + + The pruneable that will be pruned. + + + + Stops pruning. + + + + + A provider that delegates to a callback method to create instances. + + The type of instances the provider creates. + + + + A simple abstract provider for instances of a specific type. + + The type of instances the provider creates. + + + + Creates instances of services. + + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Initializes a new instance of the CallbackProvider<T> class. + + The callback method that will be called to create instances. + + + + Invokes the callback method to create an instance. + + The context. + The created instance. + + + + Gets the callback method used by the provider. + + + + + A provider that always returns the same constant value. + + The type of value that is returned. + + + + Initializes a new instance of the ConstantProvider<T> class. + + The value that the provider should return. + + + + Creates an instance within the specified context. + + The context. + The constant value this provider returns. + + + + Gets the value that the provider will return. + + + + + The standard provider for types, which activates instances via a . + + + + + Initializes a new instance of the class. + + The type (or prototype) of instances the provider creates. + The planner component. + The selector component. + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the value to inject into the specified target. + + The context. + The target. + The value to inject into the specified target. + + + + Gets the implementation type that the provider will activate an instance of + for the specified service. + + The service in question. + The implementation type that will be activated. + + + + Gets a callback that creates an instance of the + for the specified type. + + The prototype the provider instance will create. + The created callback. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Gets or sets the planner component. + + + + + Gets or sets the selector component. + + + + + Adds all activated instances to the activation cache. + + + + + Contributes to a , and is called during the activation + and deactivation of an instance. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + The activation cache. + + + + + Initializes a new instance of the class. + + The activation cache. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + Gets or sets the settings. + + The ninject settings. + + + + Contributes to a , and is called during the activation + and deactivation of an instance. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + Executes actions defined on the binding during activation and deactivation. + + + + + Calls the activation actions defined on the binding. + + The context. + A reference to the instance being activated. + + + + Calls the deactivation actions defined on the binding. + + The context. + A reference to the instance being deactivated. + + + + During deactivation, disposes instances that implement . + + + + + Disposes the specified instance. + + The context. + A reference to the instance being deactivated. + + + + During activation, initializes instances that implement . + + + + + Initializes the specified instance. + + The context. + A reference to the instance being activated. + + + + Injects methods on an instance during activation. + + + + + Injects values into the properties as described by s + contained in the plan. + + The context. + A reference to the instance being activated. + + + + Injects properties on an instance during activation. + + + + + Initializes a new instance of the class. + + The injector factory component. + + + + Injects values into the properties as described by s + contained in the plan. + + The context. + A reference to the instance being activated. + + + + Applies user supplied override values to instance properties. + + The context. + A reference to the instance being activated. + The parameter ovverride value accessors. + + + + Gets the value to inject into the specified target. + + The context. + The target. + The value to inject into the specified target. + + + + Gets the injector factory component. + + + + + Starts instances that implement during activation, + and stops them during deactivation. + + + + + Starts the specified instance. + + The context. + A reference to the instance being activated. + + + + Stops the specified instance. + + The context. + A reference to the instance being deactivated. + + + + Contains information about the activation of a single instance. + + + + + Contains information about the activation of a single instance. + + + + + Gets the provider that should be used to create the instance for this context. + + The provider that should be used. + + + + Gets the scope for the context that "owns" the instance activated therein. + + The object that acts as the scope. + + + + Resolves this instance for this context. + + The resolved instance. + + + + Gets the kernel that is driving the activation. + + + + + Gets the request. + + + + + Gets the binding. + + + + + Gets or sets the activation plan. + + + + + Gets the parameters that were passed to manipulate the activation process. + + + + + Gets the generic arguments for the request, if any. + + + + + Gets a value indicating whether the request involves inferred generic arguments. + + + + + Initializes a new instance of the class. + + The kernel managing the resolution. + The context's request. + The context's binding. + The cache component. + The planner component. + The pipeline component. + + + + Gets the scope for the context that "owns" the instance activated therein. + + The object that acts as the scope. + + + + Gets the provider that should be used to create the instance for this context. + + The provider that should be used. + + + + Resolves the instance associated with this hook. + + The resolved instance. + + + + Gets the kernel that is driving the activation. + + + + + Gets the request. + + + + + Gets the binding. + + + + + Gets or sets the activation plan. + + + + + Gets the parameters that were passed to manipulate the activation process. + + + + + Gets the generic arguments for the request, if any. + + + + + Gets a value indicating whether the request involves inferred generic arguments. + + + + + Gets or sets the cache component. + + + + + Gets or sets the planner component. + + + + + Gets or sets the pipeline component. + + + + + Holds an instance during activation or after it has been cached. + + + + + Returns a value indicating whether the instance is of the specified type. + + The type in question. + if the instance is of the specified type, otherwise . + + + + Returns the instance as the specified type. + + The requested type. + The instance. + + + + Executes the specified action if the instance if of the specified type. + + The type in question. + The action to execute. + + + + Gets or sets the instance. + + + + + Drives the activation (injection, etc.) of an instance. + + + + + Activates the instance in the specified context. + + The context. + The instance reference. + + + + Deactivates the instance in the specified context. + + The context. + The instance reference. + + + + Gets the strategies that contribute to the activation and deactivation processes. + + + + + Describes the request for a service resolution. + + + + + Determines whether the specified binding satisfies the constraint defined on this request. + + The binding. + True if the binding satisfies the constraint; otherwise false. + + + + Gets the scope if one was specified in the request. + + The object that acts as the scope. + + + + Creates a child request. + + The service that is being requested. + The context in which the request was made. + The target that will receive the injection. + The child request. + + + + Gets the service that was requested. + + + + + Gets the parent request. + + + + + Gets the parent context. + + + + + Gets the target that will receive the injection, if any. + + + + + Gets the constraint that will be applied to filter the bindings used for the request. + + + + + Gets the parameters that affect the resolution. + + + + + Gets the stack of bindings which have been activated by either this request or its ancestors. + + + + + Gets the recursive depth at which this request occurs. + + + + + Gets or sets value indicating whether the request is optional. + + + + + Gets or sets value indicating whether the request should return a unique result. + + + + + Drives the activation (injection, etc.) of an instance. + + + + + The activation cache. + + + + + Initializes a new instance of the class. + + The strategies to execute during activation and deactivation. + The activation cache. + + + + Activates the instance in the specified context. + + The context. + The instance reference. + + + + Deactivates the instance in the specified context. + + The context. + The instance reference. + + + + Gets the strategies that contribute to the activation and deactivation processes. + + + + + Describes the request for a service resolution. + + + + + Initializes a new instance of the class. + + The service that was requested. + The constraint that will be applied to filter the bindings used for the request. + The parameters that affect the resolution. + The scope callback, if an external scope was specified. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + + + + Initializes a new instance of the class. + + The parent context. + The service that was requested. + The target that will receive the injection. + The scope callback, if an external scope was specified. + + + + Determines whether the specified binding satisfies the constraints defined on this request. + + The binding. + True if the binding satisfies the constraints; otherwise false. + + + + Gets the scope if one was specified in the request. + + The object that acts as the scope. + + + + Creates a child request. + + The service that is being requested. + The context in which the request was made. + The target that will receive the injection. + The child request. + + + + Gets the service that was requested. + + + + + Gets the parent request. + + + + + Gets the parent context. + + + + + Gets the target that will receive the injection, if any. + + + + + Gets the constraint that will be applied to filter the bindings used for the request. + + + + + Gets the parameters that affect the resolution. + + + + + Gets the stack of bindings which have been activated by either this request or its ancestors. + + + + + Gets the recursive depth at which this request occurs. + + + + + Gets or sets value indicating whether the request is optional. + + + + + Gets or sets value indicating whether the request is for a single service. + + + + + Gets the callback that resolves the scope for the request, if an external scope was provided. + + + + + Defines a constraint on the decorated member. + + + + + Determines whether the specified binding metadata matches the constraint. + + The metadata in question. + True if the metadata matches; otherwise false. + + + + Indicates that the decorated member should be injected. + + + + + Indicates that the decorated member should only be injected using binding(s) registered + with the specified name. + + + + + Initializes a new instance of the class. + + The name of the binding(s) to use. + + + + Determines whether the specified binding metadata matches the constraint. + + The metadata in question. + True if the metadata matches; otherwise false. + + + + Gets the binding name. + + + + + Indicates that the decorated member represents an optional dependency. + + + + + An internal container that manages and resolves components that contribute to Ninject. + + + + + An internal container that manages and resolves components that contribute to Ninject. + + + + + Registers a component in the container. + + The component type. + The component's implementation type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Removes all registrations for the specified component. + + The component's type. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets or sets the kernel that owns the component container. + + + + + Releases resources held by the object. + + + + + Registers a component in the container. + + The component type. + The component's implementation type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets or sets the kernel that owns the component container. + + + + + Provides meaningful exception messages. + + + + + Generates a message saying that modules without names are not supported. + + The exception message. + + + + Generates a message saying that a module with the same name is already loaded. + + The new module. + The existing module. + The exception message. + + + + Generates a message saying that no module has been loaded with the specified name. + + The module name. + The exception message. + + + + Generates a message saying that the binding could not be uniquely resolved. + + The request. + The exception message. + + + + Generates a message saying that the binding could not be resolved on the specified request. + + The request. + The exception message. + + + + Generates a message saying that the specified context has cyclic dependencies. + + The context. + The exception message. + + + + Generates a message saying that an invalid attribute type is used in the binding condition. + + The binding. + Name of the method. + The type. + The exception message. + + + + Generates a message saying that no constructors are available on the specified context. + + The context. + The exception message. + + + + Generates a message saying that no constructors are available for the given component. + + The component. + The implementation. + The exception message. + + + + Generates a message saying that the specified component is not registered. + + The component. + The exception message. + + + + Generates a message saying that the specified property could not be resolved on the specified request. + + The request. + The property name. + The exception message. + + + + Generates a message saying that the provider on the specified context returned null. + + The context. + The exception message. + + + + Provides extension methods for string formatting + + + + + Formats the activation path into a meaningful string representation. + + The request to be formatted. + The activation path formatted as string. + + + + Formats the given binding into a meaningful string representation. + + The binding to be formatted. + The context. + The binding formatted as string + + + + Formats the specified request into a meaningful string representation. + + The request to be formatted. + The request formatted as string. + + + + Formats the specified target into a meaningful string representation.. + + The target to be formatted. + The target formatted as string. + + + + Formats the specified type into a meaningful string representation.. + + The type to be formatted. + The type formatted as string. + + + + Extensions for MemberInfo + + + + + Determines whether the specified member has attribute. + + The type of the attribute. + The member. + + true if the specified member has attribute; otherwise, false. + + + + + Determines whether the specified member has attribute. + + The member. + The type of the attribute. + + true if the specified member has attribute; otherwise, false. + + + + + Gets the property info from its declared tpe. + + The member info. + The property definition. + The flags. + The property info from the declared type of the property. + + + + Determines whether the specified property info is private. + + The property info. + + true if the specified property info is private; otherwise, false. + + + + + Gets the custom attributes. + This version is able to get custom attributes for properties from base types even if the property is none public. + + The member. + Type of the attribute. + if set to true [inherited]. + + + + + Represents a future value. + + The type of value. + + + + Initializes a new instance of the Future<T> class. + + The callback that will be triggered to read the value. + + + + Gets the value from the future. + + The future. + The future value. + + + + Gets the value, resolving it if necessary. + + + + + Gets the callback that will be called to resolve the value. + + + + + Indicates the object has a reference to a . + + + + + Gets the binding. + + + + + Indicates that the object has a reference to an . + + + + + Gets the kernel. + + + + + A data structure that contains multiple values for a each key. + + The type of key. + The type of value. + + + + Adds the specified value for the specified key. + + The key. + The value. + + + + Removes the specified value for the specified key. + + The key. + The value. + True if such a value existed and was removed; otherwise false. + + + + Removes all values for the specified key. + + The key. + True if any such values existed; otherwise false. + + + + Removes all values. + + + + + Determines whether the multimap contains any values for the specified key. + + The key. + True if the multimap has one or more values for the specified key; otherwise, false. + + + + Determines whether the multimap contains the specified value for the specified key. + + The key. + The value. + True if the multimap contains such a value; otherwise, false. + + + + Returns an enumerator that iterates through a the multimap. + + An object that can be used to iterate through the multimap. + + + + Gets the collection of values stored under the specified key. + + The key. + + + + Gets the collection of keys. + + + + + Gets the collection of collections of values. + + + + + Weak reference that can be used in collections. It is equal to the + object it references and has the same hash code. + + + + + Initializes a new instance of the class. + + The target. + + + + Initializes a new instance of the class. + + The target. + if set to true [track resurrection]. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + The parameter is null. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets a value indicating whether this instance is alive. + + true if this instance is alive; otherwise, false. + + + + Gets or sets the target of this weak reference. + + The targe of this weak reference. + + + + Defines the style of request (single or multi-injection, whether it is optional, etc.) + + + + + Indicates a request for a single instance of a service. + + + + + Indicates a request for multiple instances of a service. + + + + + Indicates that null should be returned (instead of throwing) if the service cannot be resolved. + + + + + Scope callbacks for standard scopes. + + + + + Gets the callback for transient scope. + + + + + Gets the callback for singleton scope. + + + + + Gets the callback for thread scope. + + + + + A delegate that can inject values into a constructor. + + + + + Creates injectors for members via s. + + + + + Creates injectors from members. + + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + A delegate that can inject values into a method. + + + + + A delegate that can inject values into a property. + + + + + Creates injectors from members via reflective invocation. + + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + Loads modules from compiled assemblies. + + + + + Loads modules at runtime by searching external files. + + + + + Loads modules from the specified files. + + The names of the files to load modules from. + + + + Gets the file extensions that the plugin understands how to load. + + + + + Initializes a new instance of the class. + + The kernel into which modules will be loaded. + + + + Loads modules from the specified files. + + The names of the files to load modules from. + + + + Gets or sets the kernel into which modules will be loaded. + + + + + Gets the file extensions that the plugin understands how to load. + + + + + Finds modules defined in external files. + + + + + Loads any modules found in the files that match the specified patterns. + + The patterns to search. + + + + A pluggable unit that can be loaded into an . + + + + + Called when the module is loaded into a kernel. + + The kernel that is loading the module. + + + + Called when the module is unloaded from a kernel. + + The kernel that is unloading the module. + + + + Gets the module's name. + + + + + Automatically finds and loads modules from assemblies. + + + + + Initializes a new instance of the class. + + The kernel into which modules will be loaded. + + + + Loads any modules found in the files that match the specified patterns. + + The patterns to search. + + + + Gets or sets the kernel into which modules will be loaded. + + + + + A loadable unit that defines bindings for your application. + + + + + Provides a path to register bindings. + + + + + Provides a path to register bindings. + + + + + Declares a binding for the specified service. + + The service to bind. + + + + Declares a binding from the service to itself. + + The service to bind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Declares a binding for the specified service. + + The service to bind. + + + + Declares a binding for the specified service. + + The service to bind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Initializes a new instance of the class. + + + + + Called when the module is loaded into a kernel. + + The kernel that is loading the module. + + + + Called when the module is unloaded from a kernel. + + The kernel that is unloading the module. + + + + Loads the module into the kernel. + + + + + Unloads the module from the kernel. + + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Gets the kernel that the module is loaded into. + + + + + Gets the module's name. Only a single module with a given name can be loaded at one time. + + + + + Gets the bindings that were registered by the module. + + + + + Overrides the injected value of a constructor argument. + + + + + Modifies an activation process in some way. + + + + + Modifies an activation process in some way. + + + + + Gets the value for the parameter within the specified context. + + The context. + The target. + The value for the parameter. + + + + Gets the name of the parameter. + + + + + Gets a value indicating whether the parameter should be inherited into child requests. + + + + + Initializes a new instance of the class. + + The name of the parameter. + The value of the parameter. + Whether the parameter should be inherited into child requests. + + + + Initializes a new instance of the class. + + The name of the parameter. + The callback that will be triggered to get the parameter's value. + Whether the parameter should be inherited into child requests. + + + + Initializes a new instance of the class. + + The name of the parameter. + The callback that will be triggered to get the parameter's value. + Whether the parameter should be inherited into child requests. + + + + Gets the value for the parameter within the specified context. + + The context. + The target. + The value for the parameter. + + + + Determines whether the object equals the specified object. + + An object to compare with this object. + True if the objects are equal; otherwise false + + + + Serves as a hash function for a particular type. + + A hash code for the object. + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + True if the objects are equal; otherwise false + + + + Gets the name of the parameter. + + + + + Gets a value indicating whether the parameter should be inherited into child requests. + + + + + Gets or sets the callback that will be triggered to get the parameter's value. + + + + + Initializes a new instance of the class. + + The name of the argument to override. + The value to inject into the property. + + + + Initializes a new instance of the class. + + The name of the argument to override. + The callback to invoke to get the value that should be injected. + + + + Initializes a new instance of the class. + + The name of the argument to override. + The callback to invoke to get the value that should be injected. + + + + Overrides the injected value of a property. + + + + + Initializes a new instance of the class. + + The name of the property to override. + The value to inject into the property. + + + + Initializes a new instance of the class. + + The name of the property to override. + The callback to invoke to get the value that should be injected. + + + + Initializes a new instance of the class. + + The name of the property to override. + The callback to invoke to get the value that should be injected. + + + + Contains logic about which bindings to use for a given service request. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Contains logic about which bindings to use for a given service request + when other attempts have failed. + + + + + Returns any bindings from the specified collection that match the specified request. + + The multimap of all registered bindings. + The request in question. + The series of matching bindings. + + + + Resolves bindings for open generic types. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Returns a value indicating whether the specified service is self-bindable. + + The service. + if the type is self-bindable; otherwise . + + + + Resolves bindings that have been registered directly for the service. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Contains information about a service registration. + + + + + Contains information about a service registration. + + + + + Gets the provider for the binding. + + The context. + The provider to use. + + + + Gets the scope for the binding, if any. + + The context. + The object that will act as the scope, or if the service is transient. + + + + Determines whether the specified request satisfies the condition defined on the binding, + if one was defined. + + The request. + True if the request satisfies the condition; otherwise false. + + + + Gets the service type that is controlled by the binding. + + + + + Gets the binding's metadata. + + + + + Gets or sets the type of target for the binding. + + + + + Gets or sets a value indicating whether the binding was implicitly registered. + + + + + Gets a value indicating whether the binding has a condition associated with it. + + + + + Gets or sets the condition defined for the binding. + + + + + Gets or sets the callback that returns the provider that should be used by the binding. + + + + + Gets or sets the callback that returns the object that will act as the binding's scope. + + + + + Gets the parameters defined for the binding. + + + + + Gets the actions that should be called after instances are activated via the binding. + + + + + Gets the actions that should be called before instances are deactivated via the binding. + + + + + Initializes a new instance of the class. + + The service that is controlled by the binding. + + + + Initializes a new instance of the class. + + The service that is controlled by the binding. + The binding's metadata container. + + + + Gets the provider for the binding. + + The context. + The provider to use. + + + + Gets the scope for the binding, if any. + + The context. + The object that will act as the scope, or if the service is transient. + + + + Determines whether the specified request satisfies the conditions defined on this binding. + + The request. + True if the request satisfies the conditions; otherwise false. + + + + Gets the service type that is controlled by the binding. + + + + + Gets the binding's metadata. + + + + + Gets or sets a value indicating whether the binding was implicitly registered. + + + + + Gets a value indicating whether the binding has a condition associated with it. + + + + + Gets or sets the type of target for the binding. + + + + + Gets or sets the condition defined for the binding. + + + + + Gets or sets the callback that returns the provider that should be used by the binding. + + + + + Gets or sets the callback that returns the object that will act as the binding's scope. + + + + + Gets the parameters defined for the binding. + + + + + Gets the actions that should be called after instances are activated via the binding. + + + + + Gets the actions that should be called before instances are deactivated via the binding. + + + + + Provides a root for the fluent syntax associated with an . + + + + + Used to define the target of a binding. + + The service being bound. + + + + Used to define a basic binding syntax builder. + + + + + A hack to hide methods defined on for IntelliSense + on fluent interfaces. Credit to Daniel Cazzulino. + + + + + + + + + + + + + + + + + Indicates that the service should be self-bound. + + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to the specified provider. + + The provider. + + + + Indicates that the service should be bound to the specified callback method. + + The method. + + + + Indicates that the service should be bound to the specified constant value. + + The constant value. + + + + Used to set the condition, scope, name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to define the conditions under which a binding should be used. + + The service being bound. + + + + Indicates that the binding should be used only for requests that support the specified condition. + + The condition. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the service is being requested + by a service bound with the specified name. + + The name to expect. + + + + Used to define the scope in which instances activated via a binding should be re-used. + + The service being bound. + + + + Indicates that only a single instance of the binding should be created, and then + should be re-used for all subsequent requests. + + + + + Indicates that instances activated via the binding should not be re-used, nor have + their lifecycle managed by Ninject. + + + + + Indicates that instances activated via the binding should be re-used within the same thread. + + + + + Indicates that instances activated via the binding should be re-used as long as the object + returned by the provided callback remains alive (that is, has not been garbage collected). + + The callback that returns the scope. + + + + Used to define the name of a binding. + + The service being bound. + + + + Indicates that the binding should be registered with the specified name. Names are not + necessarily unique; multiple bindings for a given service may be registered with the same name. + + The name to give the binding. + + + + Used to add additional information to a binding. + + The service being bound. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Adds a custom parameter to the binding. + + The parameter. + + + + Sets the value of a piece of metadata on the binding. + + The metadata key. + The metadata value. + + + + Used to add additional actions to be performed during activation or deactivation of instances via a binding. + + The service being bound. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Used to set the scope, name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to set the name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to add additional information or actions to a binding. + + The service being bound. + + + + Initializes a new instance of the BindingBuilder<T> class. + + The binding to build. + The kernel. + + + + Indicates that the service should be self-bound. + + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to the specified provider. + + The provider. + + + + Indicates that the service should be bound to the specified callback method. + + The method. + + + + Indicates that the service should be bound to the specified constant value. + + The constant value. + + + + Indicates that the binding should be used only for requests that support the specified condition. + + The condition. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the service is being requested + by a service bound with the specified name. + + The name to expect. + + + + Indicates that the binding should be registered with the specified name. Names are not + necessarily unique; multiple bindings for a given service may be registered with the same name. + + The name to give the binding. + + + + Indicates that only a single instance of the binding should be created, and then + should be re-used for all subsequent requests. + + + + + Indicates that instances activated via the binding should not be re-used, nor have + their lifecycle managed by Ninject. + + + + + Indicates that instances activated via the binding should be re-used within the same thread. + + + + + Indicates that instances activated via the binding should be re-used as long as the object + returned by the provided callback remains alive (that is, has not been garbage collected). + + The callback that returns the scope. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Adds a custom parameter to the binding. + + The parameter. + + + + Sets the value of a piece of metadata on the binding. + + The metadata key. + The metadata value. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Gets the binding being built. + + + + + Gets the kernel. + + + + + Additional information available about a binding, which can be used in constraints + to select bindings to use in activation. + + + + + Additional information available about a binding, which can be used in constraints + to select bindings to use in activation. + + + + + Determines whether a piece of metadata with the specified key has been defined. + + The metadata key. + True if such a piece of metadata exists; otherwise, false. + + + + Gets the value of metadata defined with the specified key, cast to the specified type. + + The type of value to expect. + The metadata key. + The metadata value. + + + + Gets the value of metadata defined with the specified key. + + The metadata key. + The value to return if the binding has no metadata set with the specified key. + The metadata value, or the default value if none was set. + + + + Sets the value of a piece of metadata. + + The metadata key. + The metadata value. + + + + Gets or sets the binding's name. + + + + + Determines whether a piece of metadata with the specified key has been defined. + + The metadata key. + True if such a piece of metadata exists; otherwise, false. + + + + Gets the value of metadata defined with the specified key, cast to the specified type. + + The type of value to expect. + The metadata key. + The metadata value. + + + + Gets the value of metadata defined with the specified key. + + The metadata key. + The value to return if the binding has no metadata set with the specified key. + The metadata value, or the default value if none was set. + + + + Sets the value of a piece of metadata. + + The metadata key. + The metadata value. + + + + Gets or sets the binding's name. + + + + + Describes the target of a binding. + + + + + Indicates that the binding is from a type to itself. + + + + + Indicates that the binding is from one type to another. + + + + + Indicates that the binding is from a type to a provider. + + + + + Indicates that the binding is from a type to a callback method. + + + + + Indicates that the binding is from a type to a constant value. + + + + + Describes the injection of a constructor. + + + + + Describes the injection of a method or constructor. + + + + + A piece of information used in an . (Just a marker.) + + + + + Initializes a new instance of the MethodInjectionDirectiveBase<TMethod, TInjector> class. + + The method this directive represents. + The injector that will be triggered. + + + + Creates targets for the parameters of the method. + + The method. + The targets for the method's parameters. + + + + Gets or sets the injector that will be triggered. + + + + + Gets or sets the targets for the directive. + + + + + Initializes a new instance of the class. + + The constructor described by the directive. + The injector that will be triggered. + + + + The base .ctor definition. + + + + + Describes the injection of a method. + + + + + Initializes a new instance of the class. + + The method described by the directive. + The injector that will be triggered. + + + + Describes the injection of a property. + + + + + Initializes a new instance of the class. + + The member the directive describes. + The injector that will be triggered. + + + + Creates a target for the property. + + The property. + The target for the property. + + + + Gets or sets the injector that will be triggered. + + + + + Gets or sets the injection target for the directive. + + + + + Adds a directive to plans indicating which constructor should be injected during activation. + + + + + Contributes to the generation of a . + + + + + Contributes to the specified plan. + + The plan that is being generated. + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for the constructor + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Adds directives to plans indicating which methods should be injected during activation. + + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for each method + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Adds directives to plans indicating which properties should be injected during activation. + + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for each property + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Represents a site on a type where a value will be injected. + + + + + Resolves a value for the target within the specified parent context. + + The parent context. + The resolved value. + + + + Gets the type of the target. + + + + + Gets the name of the target. + + + + + Gets the member that contains the target. + + + + + Gets the constraint defined on the target. + + + + + Gets a value indicating whether the target represents an optional dependency. + + + + + Represents an injection target for a . + + + + + Represents a site on a type where a value can be injected. + + The type of site this represents. + + + + Initializes a new instance of the Target<T> class. + + The member that contains the target. + The site represented by the target. + + + + Returns an array of custom attributes of a specified type defined on the target. + + The type of attribute to search for. + Whether to look up the hierarchy chain for inherited custom attributes. + An array of custom attributes of the specified type. + + + + Returns an array of custom attributes defined on the target. + + Whether to look up the hierarchy chain for inherited custom attributes. + An array of custom attributes. + + + + Returns a value indicating whether an attribute of the specified type is defined on the target. + + The type of attribute to search for. + Whether to look up the hierarchy chain for inherited custom attributes. + True if such an attribute is defined; otherwise false. + + + + Resolves a value for the target within the specified parent context. + + The parent context. + The resolved value. + + + + Gets the value(s) that should be injected into the target. + + The service that the target is requesting. + The parent context in which the target is being injected. + A series of values that are available for injection. + + + + Gets the value that should be injected into the target. + + The service that the target is requesting. + The parent context in which the target is being injected. + The value that is to be injected. + + + + Reads whether the target represents an optional dependency. + + if it is optional; otherwise . + + + + Reads the resolution constraint from target. + + The resolution constraint. + + + + Gets the member that contains the target. + + + + + Gets or sets the site (property, parameter, etc.) represented by the target. + + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Gets the constraint defined on the target. + + + + + Gets a value indicating whether the target represents an optional dependency. + + + + + Initializes a new instance of the class. + + The method that defines the parameter. + The parameter that this target represents. + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Represents an injection target for a . + + + + + Initializes a new instance of the class. + + The property that this target represents. + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Describes the means by which a type should be activated. + + + + + Adds the specified directive to the plan. + + The directive. + + + + Determines whether the plan contains one or more directives of the specified type. + + The type of directive. + True if the plan has one or more directives of the type; otherwise, false. + + + + Gets the first directive of the specified type from the plan. + + The type of directive. + The first directive, or if no matching directives exist. + + + + Gets all directives of the specified type that exist in the plan. + + The type of directive. + A series of directives of the specified type. + + + + Gets the type that the plan describes. + + + + + Generates plans for how to activate instances. + + + + + Gets or creates an activation plan for the specified type. + + The type for which a plan should be created. + The type's activation plan. + + + + Gets the strategies that contribute to the planning process. + + + + + Describes the means by which a type should be activated. + + + + + Initializes a new instance of the class. + + The type the plan describes. + + + + Adds the specified directive to the plan. + + The directive. + + + + Determines whether the plan contains one or more directives of the specified type. + + The type of directive. + True if the plan has one or more directives of the type; otherwise, false. + + + + Gets the first directive of the specified type from the plan. + + The type of directive. + The first directive, or if no matching directives exist. + + + + Gets all directives of the specified type that exist in the plan. + + The type of directive. + A series of directives of the specified type. + + + + Gets the type that the plan describes. + + + + + Gets the directives defined in the plan. + + + + + Generates plans for how to activate instances. + + + + + Initializes a new instance of the class. + + The strategies to execute during planning. + + + + Gets or creates an activation plan for the specified type. + + The type for which a plan should be created. + The type's activation plan. + + + + Creates an empty plan for the specified type. + + The type for which a plan should be created. + The created plan. + + + + Gets the strategies that contribute to the planning process. + + + + + Generates scores for constructors, to determine which is the best one to call during activation. + + + + + Gets the score for the specified constructor. + + The injection context. + The constructor. + The constructor's score. + + + + Determines whether members should be injected during activation. + + + + + Returns a value indicating whether the specified member should be injected. + + The member in question. + True if the member should be injected; otherwise false. + + + + Scores constructors by either looking for the existence of an injection marker + attribute, or by counting the number of parameters. + + + + + Gets the score for the specified constructor. + + The injection context. + The constructor. + The constructor's score. + + + + Determines whether members should be injected during activation by checking + if they are decorated with an injection marker attribute. + + + + + Returns a value indicating whether the specified member should be injected. + + The member in question. + True if the member should be injected; otherwise false. + + + + Selects members for injection. + + + + + Selects the constructor to call on the specified type, by using the constructor scorer. + + The type. + The selected constructor, or if none were available. + + + + Selects properties that should be injected. + + The type. + A series of the selected properties. + + + + Selects methods that should be injected. + + The type. + A series of the selected methods. + + + + Gets or sets the constructor scorer. + + + + + Gets the heuristics used to determine which members should be injected. + + + + + Selects members for injection. + + + + + Initializes a new instance of the class. + + The constructor scorer. + The injection heuristics. + + + + Selects the constructor to call on the specified type, by using the constructor scorer. + + The type. + The selected constructor, or if none were available. + + + + Selects properties that should be injected. + + The type. + A series of the selected properties. + + + + Selects methods that should be injected. + + The type. + A series of the selected methods. + + + + Gets or sets the constructor scorer. + + + + + Gets the property injection heuristics. + + + + + Extension methods that enhance module loading. + + + + + Creates a new instance of the module and loads it into the kernel. + + The type of the module. + The kernel. + + + + Loads the module(s) into the kernel. + + The kernel. + The modules to load. + + + + Loads modules from the files that match the specified pattern(s). + + The kernel. + The file patterns (i.e. "*.dll", "modules/*.rb") to match. + + + + Loads modules defined in the specified assemblies. + + The kernel. + The assemblies to search. + + + + Extensions that enhance resolution of services. + + + + + Gets an instance of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding that matches the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service. + + + + Tries to get an instance of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding that matches the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Gets all available instances of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service using bindings registered with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service by using the bindings that match the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the bindings. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets an instance of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding that matches the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service. + + + + Tries to get an instance of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding that matches the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Gets all available instances of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service using bindings registered with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service by using the bindings that match the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the bindings. + The parameters to pass to the request. + A series of instances of the service. + + + + Indicates that an error occured during activation of an instance. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + Initializes a new instance of the class. + + The exception message. + The inner exception. + + + + Initializes a new instance of the class. + + The serialized object data. + The serialization context. + + + + A service that requires initialization after it is activated. + + + + + Initializes the instance. Called during activation. + + + + + A super-factory that can create objects of all kinds, following hints provided by s. + + + + + Gets the modules that have been loaded into the kernel. + + A series of loaded modules. + + + + Determines whether a module with the specified name has been loaded in the kernel. + + The name of the module. + True if the specified module has been loaded; otherwise, false. + + + + Loads the module(s) into the kernel. + + The modules to load. + + + + Loads modules from the files that match the specified pattern(s). + + The file patterns (i.e. "*.dll", "modules/*.rb") to match. + + + + Loads modules defined in the specified assemblies. + + The assemblies to search. + + + + Unloads the plugin with the specified name. + + The plugin's name. + + + + Injects the specified existing instance, without managing its lifecycle. + + The instance to inject. + The parameters to pass to the request. + + + + Deactivates and releases the specified instance if it is currently managed by Ninject. + + The instance to release. + if the instance was found and released; otherwise . + + + + Gets the bindings registered for the specified service. + + The service in question. + A series of bindings that are registered for the service. + + + + Begins a new activation block, which can be used to deterministically dispose resolved instances. + + The new activation block. + + + + Gets the kernel settings. + + + + + Gets the component container, which holds components that contribute to Ninject. + + + + + Contains configuration options for Ninject. + + + + + Gets the value for the specified key. + + The type of value to return. + The setting's key. + The value to return if no setting is available. + The value, or the default value if none was found. + + + + Sets the value for the specified key. + + The setting's key. + The setting's value. + + + + Gets the attribute that indicates that a member should be injected. + + + + + Gets the interval at which the cache should be pruned. + + + + + Gets a value indicating whether the kernel should automatically load extensions at startup. + + + + + Gets the path that should be searched for extensions. + + + + + Gets a value indicating whether Ninject should use reflection-based injection instead of + the (usually faster) lightweight code generation system. + + + + + Gets a value indicating whether Ninject should inject non public members. + + + + + Gets a value indicating whether Ninject should inject private properties of base classes. + + + Activating this setting has an impact on the performance. It is recomended not + to use this feature and use constructor injection instead. + + + + + Gets or sets a value indicating whether the activation cache is disabled. + If the activation cache is disabled less memory is used. But in some cases + instances are activated or deactivated multiple times. e.g. in the following scenario: + Bind{A}().ToSelf(); + Bind{IA}().ToMethod(ctx => kernel.Get{IA}(); + + + true if activation cache is disabled; otherwise, false. + + + + + Gets or sets a value indicating whether Null is a valid value for injection. + By defualt this is disabled and whenever a provider returns null an eception is thrown. + + true if null is allowed as injected value otherwise false. + + + + A service that is started when activated, and stopped when deactivated. + + + + + Starts this instance. Called during activation. + + + + + Stops this instance. Called during deactivation. + + + + + The base implementation of an . + + + + + Lock used when adding missing bindings. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The configuration to use. + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The component container to use. + The configuration to use. + The modules to load into the kernel. + + + + Releases resources held by the object. + + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Determines whether a module with the specified name has been loaded in the kernel. + + The name of the module. + True if the specified module has been loaded; otherwise, false. + + + + Gets the modules that have been loaded into the kernel. + + A series of loaded modules. + + + + Loads the module(s) into the kernel. + + The modules to load. + + + + Loads modules from the files that match the specified pattern(s). + + The file patterns (i.e. "*.dll", "modules/*.rb") to match. + + + + Loads modules defined in the specified assemblies. + + The assemblies to search. + + + + Unloads the plugin with the specified name. + + The plugin's name. + + + + Injects the specified existing instance, without managing its lifecycle. + + The instance to inject. + The parameters to pass to the request. + + + + Deactivates and releases the specified instance if it is currently managed by Ninject. + + The instance to release. + if the instance was found and released; otherwise . + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + Begins a new activation block, which can be used to deterministically dispose resolved instances. + + The new activation block. + + + + Gets the bindings registered for the specified service. + + The service in question. + A series of bindings that are registered for the service. + + + + Returns an IComparer that is used to determine resolution precedence. + + An IComparer that is used to determine resolution precedence. + + + + Returns a predicate that can determine if a given IBinding matches the request. + + The request/ + A predicate that can determine if a given IBinding matches the request. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Adds components to the kernel during startup. + + + + + Attempts to handle a missing binding for a service. + + The service. + True if the missing binding can be handled; otherwise false. + + + + Attempts to handle a missing binding for a request. + + The request. + True if the missing binding can be handled; otherwise false. + + + + Returns a value indicating whether the specified service is self-bindable. + + The service. + if the type is self-bindable; otherwise . + + + + Creates a context for the specified request and binding. + + The request. + The binding. + The created context. + + + + Gets the kernel settings. + + + + + Gets the component container, which holds components that contribute to Ninject. + + + + + Contains configuration options for Ninject. + + + + + Gets the value for the specified key. + + The type of value to return. + The setting's key. + The value to return if no setting is available. + The value, or the default value if none was found. + + + + Sets the value for the specified key. + + The setting's key. + The setting's value. + + + + Gets or sets the attribute that indicates that a member should be injected. + + + + + Gets or sets the interval at which the GC should be polled. + + + + + Gets or sets a value indicating whether the kernel should automatically load extensions at startup. + + + + + Gets or sets the path that should be searched for extensions. + + + + + Gets a value indicating whether Ninject should use reflection-based injection instead of + the (usually faster) lightweight code generation system. + + + + + Gets a value indicating whether Ninject should inject non public members. + + + + + Gets a value indicating whether Ninject should inject private properties of base classes. + + + Activating this setting has an impact on the performance. It is recomended not + to use this feature and use constructor injection instead. + + + + + Gets or sets a value indicating whether the activation cache is disabled. + If the activation cache is disabled less memory is used. But in some cases + instances are activated or deactivated multiple times. e.g. in the following scenario: + Bind{A}().ToSelf(); + Bind{IA}().ToMethod(ctx => kernel.Get{IA}(); + + + true if activation cache is disabled; otherwise, false. + + + + + Gets or sets a value indicating whether Null is a valid value for injection. + By defualt this is disabled and whenever a provider returns null an eception is thrown. + + + true if null is allowed as injected value otherwise false. + + + + + The standard implementation of a kernel. + + + + + Initializes a new instance of the class. + + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The configuration to use. + The modules to load into the kernel. + + + + Adds components to the kernel during startup. + + + + diff --git a/packages/Ninject.2.2.1.0/lib/.NetFramework 4.0/Ninject.dll b/packages/Ninject.2.2.1.4/lib/net40-Full/Ninject.dll similarity index 98% rename from packages/Ninject.2.2.1.0/lib/.NetFramework 4.0/Ninject.dll rename to packages/Ninject.2.2.1.4/lib/net40-Full/Ninject.dll index d10ba78d3..147bac0d3 100644 Binary files a/packages/Ninject.2.2.1.0/lib/.NetFramework 4.0/Ninject.dll and b/packages/Ninject.2.2.1.4/lib/net40-Full/Ninject.dll differ diff --git a/packages/Ninject.2.2.1.4/lib/net40-Full/Ninject.pdb b/packages/Ninject.2.2.1.4/lib/net40-Full/Ninject.pdb new file mode 100644 index 000000000..688f7f44b Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/net40-Full/Ninject.pdb differ diff --git a/packages/Ninject.2.2.1.0/lib/.NetFramework 4.0/Ninject.xml b/packages/Ninject.2.2.1.4/lib/net40-Full/Ninject.xml similarity index 100% rename from packages/Ninject.2.2.1.0/lib/.NetFramework 4.0/Ninject.xml rename to packages/Ninject.2.2.1.4/lib/net40-Full/Ninject.xml diff --git a/packages/Ninject.2.2.1.0/lib/Silverlight 3.0/Ninject.dll b/packages/Ninject.2.2.1.4/lib/sl2/Ninject.dll similarity index 98% rename from packages/Ninject.2.2.1.0/lib/Silverlight 3.0/Ninject.dll rename to packages/Ninject.2.2.1.4/lib/sl2/Ninject.dll index 3873e6d3d..b976a6ede 100644 Binary files a/packages/Ninject.2.2.1.0/lib/Silverlight 3.0/Ninject.dll and b/packages/Ninject.2.2.1.4/lib/sl2/Ninject.dll differ diff --git a/packages/Ninject.2.2.1.4/lib/sl2/Ninject.pdb b/packages/Ninject.2.2.1.4/lib/sl2/Ninject.pdb new file mode 100644 index 000000000..7be7cfcb6 Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/sl2/Ninject.pdb differ diff --git a/packages/Ninject.2.2.1.0/lib/Silverlight 2.0/Ninject.xml b/packages/Ninject.2.2.1.4/lib/sl2/Ninject.xml similarity index 100% rename from packages/Ninject.2.2.1.0/lib/Silverlight 2.0/Ninject.xml rename to packages/Ninject.2.2.1.4/lib/sl2/Ninject.xml diff --git a/packages/Ninject.2.2.1.4/lib/sl3-wp/Ninject.dll b/packages/Ninject.2.2.1.4/lib/sl3-wp/Ninject.dll new file mode 100644 index 000000000..ad7cde27a Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/sl3-wp/Ninject.dll differ diff --git a/packages/Ninject.2.2.1.4/lib/sl3-wp/Ninject.pdb b/packages/Ninject.2.2.1.4/lib/sl3-wp/Ninject.pdb new file mode 100644 index 000000000..1b8d8e1ac Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/sl3-wp/Ninject.pdb differ diff --git a/packages/Ninject.2.2.1.4/lib/sl3-wp/Ninject.xml b/packages/Ninject.2.2.1.4/lib/sl3-wp/Ninject.xml new file mode 100644 index 000000000..37e8563db --- /dev/null +++ b/packages/Ninject.2.2.1.4/lib/sl3-wp/Ninject.xml @@ -0,0 +1,4439 @@ + + + + Ninject + + + + + A block used for deterministic disposal of activated instances. When the block is + disposed, all instances activated via it will be deactivated. + + + + + An object that notifies when it is disposed. + + + + + An object that can report whether or not it is disposed. + + + + + Gets a value indicating whether this instance is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases resources held by the object. + + + + + Releases resources before the object is reclaimed by garbage collection. + + + + + Gets a value indicating whether this instance is disposed. + + + + + A block used for deterministic disposal of activated instances. When the block is + disposed, all instances activated via it will be deactivated. + + + + + Provides a path to resolve instances. + + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + An object that fires an event when it is disposed. + + + + + Occurs when the object is disposed. + + + + + Initializes a new instance of the class. + + The parent resolution root. + + + + Releases resources held by the object. + + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + Gets or sets the parent resolution root (usually the kernel). + + + + + Occurs when the object is disposed. + + + + + Stores the objects that were activated + + + + + A component that contributes to the internals of Ninject. + + + + + A component that contributes to the internals of Ninject. + + + + + Gets or sets the settings. + + + + + Gets or sets the settings. + + + + + Stores the objects that were activated + + + + + Clears the cache. + + + + + Adds an activated instance. + + The instance to be added. + + + + Adds an deactivated instance. + + The instance to be added. + + + + Determines whether the specified instance is activated. + + The instance. + + true if the specified instance is activated; otherwise, false. + + + + + Determines whether the specified instance is deactivated. + + The instance. + + true if the specified instance is deactivated; otherwise, false. + + + + + An object that is prunealble. + + + + + Removes instances from the cache which should no longer be re-used. + + + + + The objects that were activated as reference equal weak references. + + + + + The objects that were activated as reference equal weak references. + + + + + Initializes a new instance of the class. + + The cache pruner. + + + + Clears the cache. + + + + + Adds an activated instance. + + The instance to be added. + + + + Adds an deactivated instance. + + The instance to be added. + + + + Determines whether the specified instance is activated. + + The instance. + + true if the specified instance is activated; otherwise, false. + + + + + Determines whether the specified instance is deactivated. + + The instance. + + true if the specified instance is deactivated; otherwise, false. + + + + + Prunes this instance. + + + + + Removes all dead objects. + + The objects collection to be freed of dead objects. + + + + Gets the activated object count. + + The activated object count. + + + + Gets the deactivated object count. + + The deactivated object count. + + + + Tracks instances for re-use in certain scopes. + + + + + Tracks instances for re-use in certain scopes. + + + + + Stores the specified instance in the cache. + + The context to store. + The instance reference. + + + + Tries to retrieve an instance to re-use in the specified context. + + The context that is being activated. + The instance for re-use, or if none has been stored. + + + + Deactivates and releases the specified instance from the cache. + + The instance to release. + if the instance was found and released; otherwise . + + + + Immediately deactivates and removes all instances in the cache that are owned by + the specified scope. + + The scope whose instances should be deactivated. + + + + Immediately deactivates and removes all instances in the cache, regardless of scope. + + + + + Gets the number of entries currently stored in the cache. + + + + + Contains all cached instances. + This is a dictionary of scopes to a multimap for bindings to cache entries. + + + + + Initializes a new instance of the class. + + The pipeline component. + The cache pruner component. + + + + Releases resources held by the object. + + + + + + Stores the specified context in the cache. + + The context to store. + The instance reference. + + + + Tries to retrieve an instance to re-use in the specified context. + + The context that is being activated. + The instance for re-use, or if none has been stored. + + + + Deactivates and releases the specified instance from the cache. + + The instance to release. + if the instance was found and released; otherwise . + + + + Removes instances from the cache which should no longer be re-used. + + + + + Immediately deactivates and removes all instances in the cache that are owned by + the specified scope. + + The scope whose instances should be deactivated. + + + + Immediately deactivates and removes all instances in the cache, regardless of scope. + + + + + Gets all entries for a binding withing the selected scope. + + The bindings. + All bindings of a binding. + + + + Gets all cache entries. + + Returns all cache entries. + + + + Forgets the specified cache entries. + + The cache entries. + + + + Forgets the specified entry. + + The entry. + + + + Gets the pipeline component. + + + + + Gets the number of entries currently stored in the cache. + + + + + An entry in the cache. + + + + + Initializes a new instance of the class. + + The context. + The instance reference. + + + + Gets the context of the instance. + + The context. + + + + Gets the instance reference. + + The instance reference. + + + + Uses a and some magic to poll + the garbage collector to see if it has run. + + + + + Prunes instances from an based on environmental information. + + + + + Starts pruning the specified cache based on the rules of the pruner. + + The cache that will be pruned. + + + + Stops pruning. + + + + + The caches that are being pruned. + + + + + Releases resources held by the object. + + + + + Starts pruning the specified pruneable based on the rules of the pruner. + + The pruneable that will be pruned. + + + + Stops pruning. + + + + + A provider that delegates to a callback method to create instances. + + The type of instances the provider creates. + + + + A simple abstract provider for instances of a specific type. + + The type of instances the provider creates. + + + + Creates instances of services. + + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Initializes a new instance of the CallbackProvider<T> class. + + The callback method that will be called to create instances. + + + + Invokes the callback method to create an instance. + + The context. + The created instance. + + + + Gets the callback method used by the provider. + + + + + A provider that always returns the same constant value. + + The type of value that is returned. + + + + Initializes a new instance of the ConstantProvider<T> class. + + The value that the provider should return. + + + + Creates an instance within the specified context. + + The context. + The constant value this provider returns. + + + + Gets the value that the provider will return. + + + + + The standard provider for types, which activates instances via a . + + + + + Initializes a new instance of the class. + + The type (or prototype) of instances the provider creates. + The planner component. + The selector component. + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the value to inject into the specified target. + + The context. + The target. + The value to inject into the specified target. + + + + Gets the implementation type that the provider will activate an instance of + for the specified service. + + The service in question. + The implementation type that will be activated. + + + + Gets a callback that creates an instance of the + for the specified type. + + The prototype the provider instance will create. + The created callback. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Gets or sets the planner component. + + + + + Gets or sets the selector component. + + + + + Adds all activated instances to the activation cache. + + + + + Contributes to a , and is called during the activation + and deactivation of an instance. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + The activation cache. + + + + + Initializes a new instance of the class. + + The activation cache. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + Gets or sets the settings. + + The ninject settings. + + + + Contributes to a , and is called during the activation + and deactivation of an instance. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + Executes actions defined on the binding during activation and deactivation. + + + + + Calls the activation actions defined on the binding. + + The context. + A reference to the instance being activated. + + + + Calls the deactivation actions defined on the binding. + + The context. + A reference to the instance being deactivated. + + + + During deactivation, disposes instances that implement . + + + + + Disposes the specified instance. + + The context. + A reference to the instance being deactivated. + + + + During activation, initializes instances that implement . + + + + + Initializes the specified instance. + + The context. + A reference to the instance being activated. + + + + Injects methods on an instance during activation. + + + + + Injects values into the properties as described by s + contained in the plan. + + The context. + A reference to the instance being activated. + + + + Injects properties on an instance during activation. + + + + + Initializes a new instance of the class. + + The injector factory component. + + + + Injects values into the properties as described by s + contained in the plan. + + The context. + A reference to the instance being activated. + + + + Applies user supplied override values to instance properties. + + The context. + A reference to the instance being activated. + The parameter ovverride value accessors. + + + + Gets the value to inject into the specified target. + + The context. + The target. + The value to inject into the specified target. + + + + Gets the injector factory component. + + + + + Starts instances that implement during activation, + and stops them during deactivation. + + + + + Starts the specified instance. + + The context. + A reference to the instance being activated. + + + + Stops the specified instance. + + The context. + A reference to the instance being deactivated. + + + + Contains information about the activation of a single instance. + + + + + Contains information about the activation of a single instance. + + + + + Gets the provider that should be used to create the instance for this context. + + The provider that should be used. + + + + Gets the scope for the context that "owns" the instance activated therein. + + The object that acts as the scope. + + + + Resolves this instance for this context. + + The resolved instance. + + + + Gets the kernel that is driving the activation. + + + + + Gets the request. + + + + + Gets the binding. + + + + + Gets or sets the activation plan. + + + + + Gets the parameters that were passed to manipulate the activation process. + + + + + Gets the generic arguments for the request, if any. + + + + + Gets a value indicating whether the request involves inferred generic arguments. + + + + + Initializes a new instance of the class. + + The kernel managing the resolution. + The context's request. + The context's binding. + The cache component. + The planner component. + The pipeline component. + + + + Gets the scope for the context that "owns" the instance activated therein. + + The object that acts as the scope. + + + + Gets the provider that should be used to create the instance for this context. + + The provider that should be used. + + + + Resolves the instance associated with this hook. + + The resolved instance. + + + + Gets the kernel that is driving the activation. + + + + + Gets the request. + + + + + Gets the binding. + + + + + Gets or sets the activation plan. + + + + + Gets the parameters that were passed to manipulate the activation process. + + + + + Gets the generic arguments for the request, if any. + + + + + Gets a value indicating whether the request involves inferred generic arguments. + + + + + Gets or sets the cache component. + + + + + Gets or sets the planner component. + + + + + Gets or sets the pipeline component. + + + + + Holds an instance during activation or after it has been cached. + + + + + Returns a value indicating whether the instance is of the specified type. + + The type in question. + if the instance is of the specified type, otherwise . + + + + Returns the instance as the specified type. + + The requested type. + The instance. + + + + Executes the specified action if the instance if of the specified type. + + The type in question. + The action to execute. + + + + Gets or sets the instance. + + + + + Drives the activation (injection, etc.) of an instance. + + + + + Activates the instance in the specified context. + + The context. + The instance reference. + + + + Deactivates the instance in the specified context. + + The context. + The instance reference. + + + + Gets the strategies that contribute to the activation and deactivation processes. + + + + + Describes the request for a service resolution. + + + + + Determines whether the specified binding satisfies the constraint defined on this request. + + The binding. + True if the binding satisfies the constraint; otherwise false. + + + + Gets the scope if one was specified in the request. + + The object that acts as the scope. + + + + Creates a child request. + + The service that is being requested. + The context in which the request was made. + The target that will receive the injection. + The child request. + + + + Gets the service that was requested. + + + + + Gets the parent request. + + + + + Gets the parent context. + + + + + Gets the target that will receive the injection, if any. + + + + + Gets the constraint that will be applied to filter the bindings used for the request. + + + + + Gets the parameters that affect the resolution. + + + + + Gets the stack of bindings which have been activated by either this request or its ancestors. + + + + + Gets the recursive depth at which this request occurs. + + + + + Gets or sets value indicating whether the request is optional. + + + + + Gets or sets value indicating whether the request should return a unique result. + + + + + Drives the activation (injection, etc.) of an instance. + + + + + The activation cache. + + + + + Initializes a new instance of the class. + + The strategies to execute during activation and deactivation. + The activation cache. + + + + Activates the instance in the specified context. + + The context. + The instance reference. + + + + Deactivates the instance in the specified context. + + The context. + The instance reference. + + + + Gets the strategies that contribute to the activation and deactivation processes. + + + + + Describes the request for a service resolution. + + + + + Initializes a new instance of the class. + + The service that was requested. + The constraint that will be applied to filter the bindings used for the request. + The parameters that affect the resolution. + The scope callback, if an external scope was specified. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + + + + Initializes a new instance of the class. + + The parent context. + The service that was requested. + The target that will receive the injection. + The scope callback, if an external scope was specified. + + + + Determines whether the specified binding satisfies the constraints defined on this request. + + The binding. + True if the binding satisfies the constraints; otherwise false. + + + + Gets the scope if one was specified in the request. + + The object that acts as the scope. + + + + Creates a child request. + + The service that is being requested. + The context in which the request was made. + The target that will receive the injection. + The child request. + + + + Gets the service that was requested. + + + + + Gets the parent request. + + + + + Gets the parent context. + + + + + Gets the target that will receive the injection, if any. + + + + + Gets the constraint that will be applied to filter the bindings used for the request. + + + + + Gets the parameters that affect the resolution. + + + + + Gets the stack of bindings which have been activated by either this request or its ancestors. + + + + + Gets the recursive depth at which this request occurs. + + + + + Gets or sets value indicating whether the request is optional. + + + + + Gets or sets value indicating whether the request is for a single service. + + + + + Gets the callback that resolves the scope for the request, if an external scope was provided. + + + + + Defines a constraint on the decorated member. + + + + + Determines whether the specified binding metadata matches the constraint. + + The metadata in question. + True if the metadata matches; otherwise false. + + + + Indicates that the decorated member should be injected. + + + + + Indicates that the decorated member should only be injected using binding(s) registered + with the specified name. + + + + + Initializes a new instance of the class. + + The name of the binding(s) to use. + + + + Determines whether the specified binding metadata matches the constraint. + + The metadata in question. + True if the metadata matches; otherwise false. + + + + Gets the binding name. + + + + + Indicates that the decorated member represents an optional dependency. + + + + + An internal container that manages and resolves components that contribute to Ninject. + + + + + An internal container that manages and resolves components that contribute to Ninject. + + + + + Registers a component in the container. + + The component type. + The component's implementation type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Removes all registrations for the specified component. + + The component's type. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets or sets the kernel that owns the component container. + + + + + Releases resources held by the object. + + + + + Registers a component in the container. + + The component type. + The component's implementation type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets or sets the kernel that owns the component container. + + + + + Provides meaningful exception messages. + + + + + Generates a message saying that modules without names are not supported. + + The exception message. + + + + Generates a message saying that a module with the same name is already loaded. + + The new module. + The existing module. + The exception message. + + + + Generates a message saying that no module has been loaded with the specified name. + + The module name. + The exception message. + + + + Generates a message saying that the binding could not be uniquely resolved. + + The request. + The exception message. + + + + Generates a message saying that the binding could not be resolved on the specified request. + + The request. + The exception message. + + + + Generates a message saying that the specified context has cyclic dependencies. + + The context. + The exception message. + + + + Generates a message saying that an invalid attribute type is used in the binding condition. + + The binding. + Name of the method. + The type. + The exception message. + + + + Generates a message saying that no constructors are available on the specified context. + + The context. + The exception message. + + + + Generates a message saying that no constructors are available for the given component. + + The component. + The implementation. + The exception message. + + + + Generates a message saying that the specified component is not registered. + + The component. + The exception message. + + + + Generates a message saying that the specified property could not be resolved on the specified request. + + The request. + The property name. + The exception message. + + + + Generates a message saying that the provider on the specified context returned null. + + The context. + The exception message. + + + + Provides extension methods for string formatting + + + + + Formats the activation path into a meaningful string representation. + + The request to be formatted. + The activation path formatted as string. + + + + Formats the given binding into a meaningful string representation. + + The binding to be formatted. + The context. + The binding formatted as string + + + + Formats the specified request into a meaningful string representation. + + The request to be formatted. + The request formatted as string. + + + + Formats the specified target into a meaningful string representation.. + + The target to be formatted. + The target formatted as string. + + + + Formats the specified type into a meaningful string representation.. + + The type to be formatted. + The type formatted as string. + + + + Extensions for MemberInfo + + + + + Determines whether the specified member has attribute. + + The type of the attribute. + The member. + + true if the specified member has attribute; otherwise, false. + + + + + Determines whether the specified member has attribute. + + The member. + The type of the attribute. + + true if the specified member has attribute; otherwise, false. + + + + + Gets the property info from its declared tpe. + + The member info. + The property definition. + The flags. + The property info from the declared type of the property. + + + + Determines whether the specified property info is private. + + The property info. + + true if the specified property info is private; otherwise, false. + + + + + Gets the custom attributes. + This version is able to get custom attributes for properties from base types even if the property is none public. + + The member. + Type of the attribute. + if set to true [inherited]. + + + + + Represents a future value. + + The type of value. + + + + Initializes a new instance of the Future<T> class. + + The callback that will be triggered to read the value. + + + + Gets the value from the future. + + The future. + The future value. + + + + Gets the value, resolving it if necessary. + + + + + Gets the callback that will be called to resolve the value. + + + + + Indicates the object has a reference to a . + + + + + Gets the binding. + + + + + Indicates that the object has a reference to an . + + + + + Gets the kernel. + + + + + A data structure that contains multiple values for a each key. + + The type of key. + The type of value. + + + + Adds the specified value for the specified key. + + The key. + The value. + + + + Removes the specified value for the specified key. + + The key. + The value. + True if such a value existed and was removed; otherwise false. + + + + Removes all values for the specified key. + + The key. + True if any such values existed; otherwise false. + + + + Removes all values. + + + + + Determines whether the multimap contains any values for the specified key. + + The key. + True if the multimap has one or more values for the specified key; otherwise, false. + + + + Determines whether the multimap contains the specified value for the specified key. + + The key. + The value. + True if the multimap contains such a value; otherwise, false. + + + + Returns an enumerator that iterates through a the multimap. + + An object that can be used to iterate through the multimap. + + + + Gets the collection of values stored under the specified key. + + The key. + + + + Gets the collection of keys. + + + + + Gets the collection of collections of values. + + + + + Weak reference that can be used in collections. It is equal to the + object it references and has the same hash code. + + + + + Initializes a new instance of the class. + + The target. + + + + Initializes a new instance of the class. + + The target. + if set to true [track resurrection]. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + The parameter is null. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets a value indicating whether this instance is alive. + + true if this instance is alive; otherwise, false. + + + + Gets or sets the target of this weak reference. + + The targe of this weak reference. + + + + Defines the style of request (single or multi-injection, whether it is optional, etc.) + + + + + Indicates a request for a single instance of a service. + + + + + Indicates a request for multiple instances of a service. + + + + + Indicates that null should be returned (instead of throwing) if the service cannot be resolved. + + + + + Scope callbacks for standard scopes. + + + + + Gets the callback for transient scope. + + + + + Gets the callback for singleton scope. + + + + + Gets the callback for thread scope. + + + + + A delegate that can inject values into a constructor. + + + + + Creates injectors from members. + + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + A delegate that can inject values into a method. + + + + + A delegate that can inject values into a property. + + + + + Creates injectors from members via reflective invocation. + + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + A pluggable unit that can be loaded into an . + + + + + Called when the module is loaded into a kernel. + + The kernel that is loading the module. + + + + Called when the module is unloaded from a kernel. + + The kernel that is unloading the module. + + + + Gets the module's name. + + + + + A loadable unit that defines bindings for your application. + + + + + Provides a path to register bindings. + + + + + Provides a path to register bindings. + + + + + Declares a binding for the specified service. + + The service to bind. + + + + Declares a binding from the service to itself. + + The service to bind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Declares a binding for the specified service. + + The service to bind. + + + + Declares a binding for the specified service. + + The service to bind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Initializes a new instance of the class. + + + + + Called when the module is loaded into a kernel. + + The kernel that is loading the module. + + + + Called when the module is unloaded from a kernel. + + The kernel that is unloading the module. + + + + Loads the module into the kernel. + + + + + Unloads the module from the kernel. + + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Gets the kernel that the module is loaded into. + + + + + Gets the module's name. Only a single module with a given name can be loaded at one time. + + + + + Gets the bindings that were registered by the module. + + + + + Overrides the injected value of a constructor argument. + + + + + Modifies an activation process in some way. + + + + + Modifies an activation process in some way. + + + + + Gets the value for the parameter within the specified context. + + The context. + The target. + The value for the parameter. + + + + Gets the name of the parameter. + + + + + Gets a value indicating whether the parameter should be inherited into child requests. + + + + + Initializes a new instance of the class. + + The name of the parameter. + The value of the parameter. + Whether the parameter should be inherited into child requests. + + + + Initializes a new instance of the class. + + The name of the parameter. + The callback that will be triggered to get the parameter's value. + Whether the parameter should be inherited into child requests. + + + + Initializes a new instance of the class. + + The name of the parameter. + The callback that will be triggered to get the parameter's value. + Whether the parameter should be inherited into child requests. + + + + Gets the value for the parameter within the specified context. + + The context. + The target. + The value for the parameter. + + + + Determines whether the object equals the specified object. + + An object to compare with this object. + True if the objects are equal; otherwise false + + + + Serves as a hash function for a particular type. + + A hash code for the object. + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + True if the objects are equal; otherwise false + + + + Gets the name of the parameter. + + + + + Gets a value indicating whether the parameter should be inherited into child requests. + + + + + Gets or sets the callback that will be triggered to get the parameter's value. + + + + + Initializes a new instance of the class. + + The name of the argument to override. + The value to inject into the property. + + + + Initializes a new instance of the class. + + The name of the argument to override. + The callback to invoke to get the value that should be injected. + + + + Initializes a new instance of the class. + + The name of the argument to override. + The callback to invoke to get the value that should be injected. + + + + Overrides the injected value of a property. + + + + + Initializes a new instance of the class. + + The name of the property to override. + The value to inject into the property. + + + + Initializes a new instance of the class. + + The name of the property to override. + The callback to invoke to get the value that should be injected. + + + + Initializes a new instance of the class. + + The name of the property to override. + The callback to invoke to get the value that should be injected. + + + + Contains logic about which bindings to use for a given service request. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Contains logic about which bindings to use for a given service request + when other attempts have failed. + + + + + Returns any bindings from the specified collection that match the specified request. + + The multimap of all registered bindings. + The request in question. + The series of matching bindings. + + + + Resolves bindings for open generic types. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Returns a value indicating whether the specified service is self-bindable. + + The service. + if the type is self-bindable; otherwise . + + + + Resolves bindings that have been registered directly for the service. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Contains information about a service registration. + + + + + Contains information about a service registration. + + + + + Gets the provider for the binding. + + The context. + The provider to use. + + + + Gets the scope for the binding, if any. + + The context. + The object that will act as the scope, or if the service is transient. + + + + Determines whether the specified request satisfies the condition defined on the binding, + if one was defined. + + The request. + True if the request satisfies the condition; otherwise false. + + + + Gets the service type that is controlled by the binding. + + + + + Gets the binding's metadata. + + + + + Gets or sets the type of target for the binding. + + + + + Gets or sets a value indicating whether the binding was implicitly registered. + + + + + Gets a value indicating whether the binding has a condition associated with it. + + + + + Gets or sets the condition defined for the binding. + + + + + Gets or sets the callback that returns the provider that should be used by the binding. + + + + + Gets or sets the callback that returns the object that will act as the binding's scope. + + + + + Gets the parameters defined for the binding. + + + + + Gets the actions that should be called after instances are activated via the binding. + + + + + Gets the actions that should be called before instances are deactivated via the binding. + + + + + Initializes a new instance of the class. + + The service that is controlled by the binding. + + + + Initializes a new instance of the class. + + The service that is controlled by the binding. + The binding's metadata container. + + + + Gets the provider for the binding. + + The context. + The provider to use. + + + + Gets the scope for the binding, if any. + + The context. + The object that will act as the scope, or if the service is transient. + + + + Determines whether the specified request satisfies the conditions defined on this binding. + + The request. + True if the request satisfies the conditions; otherwise false. + + + + Gets the service type that is controlled by the binding. + + + + + Gets the binding's metadata. + + + + + Gets or sets a value indicating whether the binding was implicitly registered. + + + + + Gets a value indicating whether the binding has a condition associated with it. + + + + + Gets or sets the type of target for the binding. + + + + + Gets or sets the condition defined for the binding. + + + + + Gets or sets the callback that returns the provider that should be used by the binding. + + + + + Gets or sets the callback that returns the object that will act as the binding's scope. + + + + + Gets the parameters defined for the binding. + + + + + Gets the actions that should be called after instances are activated via the binding. + + + + + Gets the actions that should be called before instances are deactivated via the binding. + + + + + Provides a root for the fluent syntax associated with an . + + + + + Used to define the target of a binding. + + The service being bound. + + + + Used to define a basic binding syntax builder. + + + + + A hack to hide methods defined on for IntelliSense + on fluent interfaces. Credit to Daniel Cazzulino. + + + + + + + + + + + + + + + + + Indicates that the service should be self-bound. + + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to the specified provider. + + The provider. + + + + Indicates that the service should be bound to the specified callback method. + + The method. + + + + Indicates that the service should be bound to the specified constant value. + + The constant value. + + + + Used to set the condition, scope, name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to define the conditions under which a binding should be used. + + The service being bound. + + + + Indicates that the binding should be used only for requests that support the specified condition. + + The condition. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the service is being requested + by a service bound with the specified name. + + The name to expect. + + + + Used to define the scope in which instances activated via a binding should be re-used. + + The service being bound. + + + + Indicates that only a single instance of the binding should be created, and then + should be re-used for all subsequent requests. + + + + + Indicates that instances activated via the binding should not be re-used, nor have + their lifecycle managed by Ninject. + + + + + Indicates that instances activated via the binding should be re-used within the same thread. + + + + + Indicates that instances activated via the binding should be re-used as long as the object + returned by the provided callback remains alive (that is, has not been garbage collected). + + The callback that returns the scope. + + + + Used to define the name of a binding. + + The service being bound. + + + + Indicates that the binding should be registered with the specified name. Names are not + necessarily unique; multiple bindings for a given service may be registered with the same name. + + The name to give the binding. + + + + Used to add additional information to a binding. + + The service being bound. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Adds a custom parameter to the binding. + + The parameter. + + + + Sets the value of a piece of metadata on the binding. + + The metadata key. + The metadata value. + + + + Used to add additional actions to be performed during activation or deactivation of instances via a binding. + + The service being bound. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Used to set the scope, name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to set the name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to add additional information or actions to a binding. + + The service being bound. + + + + Initializes a new instance of the BindingBuilder<T> class. + + The binding to build. + The kernel. + + + + Indicates that the service should be self-bound. + + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to the specified provider. + + The provider. + + + + Indicates that the service should be bound to the specified callback method. + + The method. + + + + Indicates that the service should be bound to the specified constant value. + + The constant value. + + + + Indicates that the binding should be used only for requests that support the specified condition. + + The condition. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the service is being requested + by a service bound with the specified name. + + The name to expect. + + + + Indicates that the binding should be registered with the specified name. Names are not + necessarily unique; multiple bindings for a given service may be registered with the same name. + + The name to give the binding. + + + + Indicates that only a single instance of the binding should be created, and then + should be re-used for all subsequent requests. + + + + + Indicates that instances activated via the binding should not be re-used, nor have + their lifecycle managed by Ninject. + + + + + Indicates that instances activated via the binding should be re-used within the same thread. + + + + + Indicates that instances activated via the binding should be re-used as long as the object + returned by the provided callback remains alive (that is, has not been garbage collected). + + The callback that returns the scope. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Adds a custom parameter to the binding. + + The parameter. + + + + Sets the value of a piece of metadata on the binding. + + The metadata key. + The metadata value. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Provides a root for the fluent syntax associated with an . + + + + + Gets the binding being built. + + + + + Gets the kernel. + + + + + Additional information available about a binding, which can be used in constraints + to select bindings to use in activation. + + + + + Additional information available about a binding, which can be used in constraints + to select bindings to use in activation. + + + + + Determines whether a piece of metadata with the specified key has been defined. + + The metadata key. + True if such a piece of metadata exists; otherwise, false. + + + + Gets the value of metadata defined with the specified key, cast to the specified type. + + The type of value to expect. + The metadata key. + The metadata value. + + + + Gets the value of metadata defined with the specified key. + + The metadata key. + The value to return if the binding has no metadata set with the specified key. + The metadata value, or the default value if none was set. + + + + Sets the value of a piece of metadata. + + The metadata key. + The metadata value. + + + + Gets or sets the binding's name. + + + + + Determines whether a piece of metadata with the specified key has been defined. + + The metadata key. + True if such a piece of metadata exists; otherwise, false. + + + + Gets the value of metadata defined with the specified key, cast to the specified type. + + The type of value to expect. + The metadata key. + The metadata value. + + + + Gets the value of metadata defined with the specified key. + + The metadata key. + The value to return if the binding has no metadata set with the specified key. + The metadata value, or the default value if none was set. + + + + Sets the value of a piece of metadata. + + The metadata key. + The metadata value. + + + + Gets or sets the binding's name. + + + + + Describes the target of a binding. + + + + + Indicates that the binding is from a type to itself. + + + + + Indicates that the binding is from one type to another. + + + + + Indicates that the binding is from a type to a provider. + + + + + Indicates that the binding is from a type to a callback method. + + + + + Indicates that the binding is from a type to a constant value. + + + + + Describes the injection of a constructor. + + + + + Describes the injection of a method or constructor. + + + + + A piece of information used in an . (Just a marker.) + + + + + Initializes a new instance of the MethodInjectionDirectiveBase<TMethod, TInjector> class. + + The method this directive represents. + The injector that will be triggered. + + + + Creates targets for the parameters of the method. + + The method. + The targets for the method's parameters. + + + + Gets or sets the injector that will be triggered. + + + + + Gets or sets the targets for the directive. + + + + + Initializes a new instance of the class. + + The constructor described by the directive. + The injector that will be triggered. + + + + The base .ctor definition. + + + + + Describes the injection of a method. + + + + + Initializes a new instance of the class. + + The method described by the directive. + The injector that will be triggered. + + + + Describes the injection of a property. + + + + + Initializes a new instance of the class. + + The member the directive describes. + The injector that will be triggered. + + + + Creates a target for the property. + + The property. + The target for the property. + + + + Gets or sets the injector that will be triggered. + + + + + Gets or sets the injection target for the directive. + + + + + Adds a directive to plans indicating which constructor should be injected during activation. + + + + + Contributes to the generation of a . + + + + + Contributes to the specified plan. + + The plan that is being generated. + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for the constructor + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Adds directives to plans indicating which methods should be injected during activation. + + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for each method + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Adds directives to plans indicating which properties should be injected during activation. + + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for each property + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Represents a site on a type where a value will be injected. + + + + + Resolves a value for the target within the specified parent context. + + The parent context. + The resolved value. + + + + Gets the type of the target. + + + + + Gets the name of the target. + + + + + Gets the member that contains the target. + + + + + Gets the constraint defined on the target. + + + + + Gets a value indicating whether the target represents an optional dependency. + + + + + Represents an injection target for a . + + + + + Represents a site on a type where a value can be injected. + + The type of site this represents. + + + + Initializes a new instance of the Target<T> class. + + The member that contains the target. + The site represented by the target. + + + + Returns an array of custom attributes of a specified type defined on the target. + + The type of attribute to search for. + Whether to look up the hierarchy chain for inherited custom attributes. + An array of custom attributes of the specified type. + + + + Returns an array of custom attributes defined on the target. + + Whether to look up the hierarchy chain for inherited custom attributes. + An array of custom attributes. + + + + Returns a value indicating whether an attribute of the specified type is defined on the target. + + The type of attribute to search for. + Whether to look up the hierarchy chain for inherited custom attributes. + True if such an attribute is defined; otherwise false. + + + + Resolves a value for the target within the specified parent context. + + The parent context. + The resolved value. + + + + Gets the value(s) that should be injected into the target. + + The service that the target is requesting. + The parent context in which the target is being injected. + A series of values that are available for injection. + + + + Gets the value that should be injected into the target. + + The service that the target is requesting. + The parent context in which the target is being injected. + The value that is to be injected. + + + + Reads whether the target represents an optional dependency. + + if it is optional; otherwise . + + + + Reads the resolution constraint from target. + + The resolution constraint. + + + + Gets the member that contains the target. + + + + + Gets or sets the site (property, parameter, etc.) represented by the target. + + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Gets the constraint defined on the target. + + + + + Gets a value indicating whether the target represents an optional dependency. + + + + + Initializes a new instance of the class. + + The method that defines the parameter. + The parameter that this target represents. + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Represents an injection target for a . + + + + + Initializes a new instance of the class. + + The property that this target represents. + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Describes the means by which a type should be activated. + + + + + Adds the specified directive to the plan. + + The directive. + + + + Determines whether the plan contains one or more directives of the specified type. + + The type of directive. + True if the plan has one or more directives of the type; otherwise, false. + + + + Gets the first directive of the specified type from the plan. + + The type of directive. + The first directive, or if no matching directives exist. + + + + Gets all directives of the specified type that exist in the plan. + + The type of directive. + A series of directives of the specified type. + + + + Gets the type that the plan describes. + + + + + Generates plans for how to activate instances. + + + + + Gets or creates an activation plan for the specified type. + + The type for which a plan should be created. + The type's activation plan. + + + + Gets the strategies that contribute to the planning process. + + + + + Describes the means by which a type should be activated. + + + + + Initializes a new instance of the class. + + The type the plan describes. + + + + Adds the specified directive to the plan. + + The directive. + + + + Determines whether the plan contains one or more directives of the specified type. + + The type of directive. + True if the plan has one or more directives of the type; otherwise, false. + + + + Gets the first directive of the specified type from the plan. + + The type of directive. + The first directive, or if no matching directives exist. + + + + Gets all directives of the specified type that exist in the plan. + + The type of directive. + A series of directives of the specified type. + + + + Gets the type that the plan describes. + + + + + Gets the directives defined in the plan. + + + + + Generates plans for how to activate instances. + + + + + Initializes a new instance of the class. + + The strategies to execute during planning. + + + + Gets or creates an activation plan for the specified type. + + The type for which a plan should be created. + The type's activation plan. + + + + Creates an empty plan for the specified type. + + The type for which a plan should be created. + The created plan. + + + + Gets the strategies that contribute to the planning process. + + + + + Generates scores for constructors, to determine which is the best one to call during activation. + + + + + Gets the score for the specified constructor. + + The injection context. + The constructor. + The constructor's score. + + + + Determines whether members should be injected during activation. + + + + + Returns a value indicating whether the specified member should be injected. + + The member in question. + True if the member should be injected; otherwise false. + + + + Scores constructors by either looking for the existence of an injection marker + attribute, or by counting the number of parameters. + + + + + Gets the score for the specified constructor. + + The injection context. + The constructor. + The constructor's score. + + + + Determines whether members should be injected during activation by checking + if they are decorated with an injection marker attribute. + + + + + Returns a value indicating whether the specified member should be injected. + + The member in question. + True if the member should be injected; otherwise false. + + + + Selects members for injection. + + + + + Selects the constructor to call on the specified type, by using the constructor scorer. + + The type. + The selected constructor, or if none were available. + + + + Selects properties that should be injected. + + The type. + A series of the selected properties. + + + + Selects methods that should be injected. + + The type. + A series of the selected methods. + + + + Gets or sets the constructor scorer. + + + + + Gets the heuristics used to determine which members should be injected. + + + + + Selects members for injection. + + + + + Initializes a new instance of the class. + + The constructor scorer. + The injection heuristics. + + + + Selects the constructor to call on the specified type, by using the constructor scorer. + + The type. + The selected constructor, or if none were available. + + + + Selects properties that should be injected. + + The type. + A series of the selected properties. + + + + Selects methods that should be injected. + + The type. + A series of the selected methods. + + + + Gets or sets the constructor scorer. + + + + + Gets the property injection heuristics. + + + + + Extension methods that enhance module loading. + + + + + Creates a new instance of the module and loads it into the kernel. + + The type of the module. + The kernel. + + + + Loads the module(s) into the kernel. + + The kernel. + The modules to load. + + + + Extensions that enhance resolution of services. + + + + + Gets an instance of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding that matches the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service. + + + + Tries to get an instance of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding that matches the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Gets all available instances of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service using bindings registered with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service by using the bindings that match the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the bindings. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets an instance of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding that matches the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service. + + + + Tries to get an instance of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding that matches the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Gets all available instances of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service using bindings registered with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service by using the bindings that match the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the bindings. + The parameters to pass to the request. + A series of instances of the service. + + + + Indicates that an error occured during activation of an instance. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + Initializes a new instance of the class. + + The exception message. + The inner exception. + + + + A service that requires initialization after it is activated. + + + + + Initializes the instance. Called during activation. + + + + + A super-factory that can create objects of all kinds, following hints provided by s. + + + + + Gets the modules that have been loaded into the kernel. + + A series of loaded modules. + + + + Determines whether a module with the specified name has been loaded in the kernel. + + The name of the module. + True if the specified module has been loaded; otherwise, false. + + + + Loads the module(s) into the kernel. + + The modules to load. + + + + Unloads the plugin with the specified name. + + The plugin's name. + + + + Injects the specified existing instance, without managing its lifecycle. + + The instance to inject. + The parameters to pass to the request. + + + + Deactivates and releases the specified instance if it is currently managed by Ninject. + + The instance to release. + if the instance was found and released; otherwise . + + + + Gets the bindings registered for the specified service. + + The service in question. + A series of bindings that are registered for the service. + + + + Begins a new activation block, which can be used to deterministically dispose resolved instances. + + The new activation block. + + + + Gets the kernel settings. + + + + + Gets the component container, which holds components that contribute to Ninject. + + + + + Contains configuration options for Ninject. + + + + + Gets the value for the specified key. + + The type of value to return. + The setting's key. + The value to return if no setting is available. + The value, or the default value if none was found. + + + + Sets the value for the specified key. + + The setting's key. + The setting's value. + + + + Gets the attribute that indicates that a member should be injected. + + + + + Gets the interval at which the cache should be pruned. + + + + + Gets or sets a value indicating whether the activation cache is disabled. + If the activation cache is disabled less memory is used. But in some cases + instances are activated or deactivated multiple times. e.g. in the following scenario: + Bind{A}().ToSelf(); + Bind{IA}().ToMethod(ctx => kernel.Get{IA}(); + + + true if activation cache is disabled; otherwise, false. + + + + + Gets or sets a value indicating whether Null is a valid value for injection. + By defualt this is disabled and whenever a provider returns null an eception is thrown. + + true if null is allowed as injected value otherwise false. + + + + A service that is started when activated, and stopped when deactivated. + + + + + Starts this instance. Called during activation. + + + + + Stops this instance. Called during deactivation. + + + + + The base implementation of an . + + + + + Lock used when adding missing bindings. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The configuration to use. + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The component container to use. + The configuration to use. + The modules to load into the kernel. + + + + Releases resources held by the object. + + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Determines whether a module with the specified name has been loaded in the kernel. + + The name of the module. + True if the specified module has been loaded; otherwise, false. + + + + Gets the modules that have been loaded into the kernel. + + A series of loaded modules. + + + + Loads the module(s) into the kernel. + + The modules to load. + + + + Unloads the plugin with the specified name. + + The plugin's name. + + + + Injects the specified existing instance, without managing its lifecycle. + + The instance to inject. + The parameters to pass to the request. + + + + Deactivates and releases the specified instance if it is currently managed by Ninject. + + The instance to release. + if the instance was found and released; otherwise . + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + Begins a new activation block, which can be used to deterministically dispose resolved instances. + + The new activation block. + + + + Gets the bindings registered for the specified service. + + The service in question. + A series of bindings that are registered for the service. + + + + Returns an IComparer that is used to determine resolution precedence. + + An IComparer that is used to determine resolution precedence. + + + + Returns a predicate that can determine if a given IBinding matches the request. + + The request/ + A predicate that can determine if a given IBinding matches the request. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Adds components to the kernel during startup. + + + + + Attempts to handle a missing binding for a service. + + The service. + True if the missing binding can be handled; otherwise false. + + + + Attempts to handle a missing binding for a request. + + The request. + True if the missing binding can be handled; otherwise false. + + + + Returns a value indicating whether the specified service is self-bindable. + + The service. + if the type is self-bindable; otherwise . + + + + Creates a context for the specified request and binding. + + The request. + The binding. + The created context. + + + + Gets the kernel settings. + + + + + Gets the component container, which holds components that contribute to Ninject. + + + + + Contains configuration options for Ninject. + + + + + Gets the value for the specified key. + + The type of value to return. + The setting's key. + The value to return if no setting is available. + The value, or the default value if none was found. + + + + Sets the value for the specified key. + + The setting's key. + The setting's value. + + + + Gets or sets the attribute that indicates that a member should be injected. + + + + + Gets or sets the interval at which the GC should be polled. + + + + + Gets or sets a value indicating whether the activation cache is disabled. + If the activation cache is disabled less memory is used. But in some cases + instances are activated or deactivated multiple times. e.g. in the following scenario: + Bind{A}().ToSelf(); + Bind{IA}().ToMethod(ctx => kernel.Get{IA}(); + + + true if activation cache is disabled; otherwise, false. + + + + + Gets or sets a value indicating whether Null is a valid value for injection. + By defualt this is disabled and whenever a provider returns null an eception is thrown. + + + true if null is allowed as injected value otherwise false. + + + + + The standard implementation of a kernel. + + + + + Initializes a new instance of the class. + + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The configuration to use. + The modules to load into the kernel. + + + + Adds components to the kernel during startup. + + + + diff --git a/packages/Ninject.2.2.1.0/lib/Silverlight 2.0/Ninject.dll b/packages/Ninject.2.2.1.4/lib/sl3/Ninject.dll similarity index 98% rename from packages/Ninject.2.2.1.0/lib/Silverlight 2.0/Ninject.dll rename to packages/Ninject.2.2.1.4/lib/sl3/Ninject.dll index fef05e04a..be215dd4a 100644 Binary files a/packages/Ninject.2.2.1.0/lib/Silverlight 2.0/Ninject.dll and b/packages/Ninject.2.2.1.4/lib/sl3/Ninject.dll differ diff --git a/packages/Ninject.2.2.1.4/lib/sl3/Ninject.pdb b/packages/Ninject.2.2.1.4/lib/sl3/Ninject.pdb new file mode 100644 index 000000000..565434c19 Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/sl3/Ninject.pdb differ diff --git a/packages/Ninject.2.2.1.0/lib/Silverlight 3.0/Ninject.xml b/packages/Ninject.2.2.1.4/lib/sl3/Ninject.xml similarity index 100% rename from packages/Ninject.2.2.1.0/lib/Silverlight 3.0/Ninject.xml rename to packages/Ninject.2.2.1.4/lib/sl3/Ninject.xml diff --git a/packages/Ninject.2.2.1.0/lib/Silverlight 4.0/Ninject.dll b/packages/Ninject.2.2.1.4/lib/sl4/Ninject.dll similarity index 98% rename from packages/Ninject.2.2.1.0/lib/Silverlight 4.0/Ninject.dll rename to packages/Ninject.2.2.1.4/lib/sl4/Ninject.dll index b23fadc2f..f36390af0 100644 Binary files a/packages/Ninject.2.2.1.0/lib/Silverlight 4.0/Ninject.dll and b/packages/Ninject.2.2.1.4/lib/sl4/Ninject.dll differ diff --git a/packages/Ninject.2.2.1.4/lib/sl4/Ninject.pdb b/packages/Ninject.2.2.1.4/lib/sl4/Ninject.pdb new file mode 100644 index 000000000..65f62e73b Binary files /dev/null and b/packages/Ninject.2.2.1.4/lib/sl4/Ninject.pdb differ diff --git a/packages/Ninject.2.2.1.0/lib/Silverlight 4.0/Ninject.xml b/packages/Ninject.2.2.1.4/lib/sl4/Ninject.xml similarity index 100% rename from packages/Ninject.2.2.1.0/lib/Silverlight 4.0/Ninject.xml rename to packages/Ninject.2.2.1.4/lib/sl4/Ninject.xml diff --git a/packages/Ninject.MVC3.2.2.2.0/Content/App_Start/NinjectMVC3.cs.pp b/packages/Ninject.MVC3.2.2.2.0/Content/App_Start/NinjectMVC3.cs.pp new file mode 100644 index 000000000..02598ea5d --- /dev/null +++ b/packages/Ninject.MVC3.2.2.2.0/Content/App_Start/NinjectMVC3.cs.pp @@ -0,0 +1,52 @@ +[assembly: WebActivator.PreApplicationStartMethod(typeof($rootnamespace$.App_Start.NinjectMVC3), "Start")] +[assembly: WebActivator.ApplicationShutdownMethodAttribute(typeof($rootnamespace$.App_Start.NinjectMVC3), "Stop")] + +namespace $rootnamespace$.App_Start +{ + using System.Reflection; + using Microsoft.Web.Infrastructure.DynamicModuleHelper; + using Ninject; + using Ninject.Web.Mvc; + + public static class NinjectMVC3 + { + private static readonly Bootstrapper bootstrapper = new Bootstrapper(); + + /// + /// Starts the application + /// + public static void Start() + { + DynamicModuleUtility.RegisterModule(typeof(OnePerRequestModule)); + DynamicModuleUtility.RegisterModule(typeof(HttpApplicationInitializationModule)); + bootstrapper.Initialize(CreateKernel); + } + + /// + /// Stops the application. + /// + public static void Stop() + { + bootstrapper.ShutDown(); + } + + /// + /// Creates the kernel that will manage your application. + /// + /// The created kernel. + private static IKernel CreateKernel() + { + var kernel = new StandardKernel(); + RegisterServices(kernel); + return kernel; + } + + /// + /// Load your modules or register your services here! + /// + /// The kernel. + private static void RegisterServices(IKernel kernel) + { + } + } +} diff --git a/packages/Ninject.MVC3.2.2.2.0/Ninject.MVC3.2.2.2.0.nupkg b/packages/Ninject.MVC3.2.2.2.0/Ninject.MVC3.2.2.2.0.nupkg new file mode 100644 index 000000000..36f4a878c Binary files /dev/null and b/packages/Ninject.MVC3.2.2.2.0/Ninject.MVC3.2.2.2.0.nupkg differ diff --git a/packages/Ninject.MVC3.2.2.2.0/lib/net40-Full/Ninject.Web.Mvc.dll b/packages/Ninject.MVC3.2.2.2.0/lib/net40-Full/Ninject.Web.Mvc.dll new file mode 100644 index 000000000..958928788 Binary files /dev/null and b/packages/Ninject.MVC3.2.2.2.0/lib/net40-Full/Ninject.Web.Mvc.dll differ diff --git a/packages/Ninject.MVC3.2.2.2.0/lib/net40-Full/Ninject.Web.Mvc.pdb b/packages/Ninject.MVC3.2.2.2.0/lib/net40-Full/Ninject.Web.Mvc.pdb new file mode 100644 index 000000000..e38dcc922 Binary files /dev/null and b/packages/Ninject.MVC3.2.2.2.0/lib/net40-Full/Ninject.Web.Mvc.pdb differ diff --git a/NzbDrone.Web/Libraries/Ninject.Web.Mvc.xml b/packages/Ninject.MVC3.2.2.2.0/lib/net40-Full/Ninject.Web.Mvc.xml similarity index 97% rename from NzbDrone.Web/Libraries/Ninject.Web.Mvc.xml rename to packages/Ninject.MVC3.2.2.2.0/lib/net40-Full/Ninject.Web.Mvc.xml index b366bd6da..c39564baf 100644 --- a/NzbDrone.Web/Libraries/Ninject.Web.Mvc.xml +++ b/packages/Ninject.MVC3.2.2.2.0/lib/net40-Full/Ninject.Web.Mvc.xml @@ -794,6 +794,12 @@ The create kernel callback function. + + + Initializes a HttpApplication instance. + + The HttpApplication instance. + Releases the kernel on application end. @@ -810,6 +816,12 @@ The create kernel callback function. + + + Initializes a HttpApplication instance. + + The HttpApplication instance. + Releases the kernel on application end. @@ -831,6 +843,17 @@ Gets the kernel. + + + Initializes a HttpApplication instance + + + + + Initializes a module and prepares it to handle requests. + + An that provides access to the methods, properties, and events common to all application objects within an ASP.NET application + Dependency resolver implementation for ninject. @@ -876,6 +899,11 @@ Initializes a new instance of the class. + + + Executes custom initialization code after all event handler modules have been added. + + Starts the application. diff --git a/packages/Unity.2.0/Unity.2.0.nupkg b/packages/Unity.2.0/Unity.2.0.nupkg deleted file mode 100644 index db3f48942..000000000 Binary files a/packages/Unity.2.0/Unity.2.0.nupkg and /dev/null differ diff --git a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.Configuration.dll b/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.Configuration.dll deleted file mode 100644 index 15ec9b8b4..000000000 Binary files a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.Configuration.dll and /dev/null differ diff --git a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.Configuration.xml b/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.Configuration.xml deleted file mode 100644 index c8d919d28..000000000 --- a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.Configuration.xml +++ /dev/null @@ -1,716 +0,0 @@ - - - - Microsoft.Practices.Unity.Interception.Configuration - - - - - Configuration element that lets you specify additional interfaces - to add when this type is intercepted. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Return the set of s that are needed - to configure the container according to this configuration element. - - Container that is being configured. - Type that is being registered. - Type that is being mapped to. - Name this registration is under. - One or more objects that should be - applied to the container registration. - - - - Type of interface to add. - - - - - Each element must have a unique key, which is generated by the subclasses. - - - - - Configuration element representing a call handler. - - - - - Base class for the two children of the Policy element: - MatchingRuleElement and CallHandlerElement. - - - - These configuration elements have a required "name" attribute, an optional "type" attribute, and - optional child elements <lifetime> and <injection> - - - Elements without a value for the type attribute can only have a value for the name attribute, and - indicate that the represented handler or rule is configured elsewhere and that a reference to - the given name must be added to the policy to be resolved, while elements with a value for the type - attribute indicate how the represented handler or rule should be built and can optionally specify - lifetime management and injection configuration. - - - This element is similar to the , except that it does not provide - an extension point for arbitrary configuration. - - - - - - Reads XML from the configuration file. - - The that reads from the configuration file. - true to serialize only the collection key properties; otherwise, false. - The element to read is locked. - - or - - An attribute of the current node is not recognized. - - or - - The lock status of the current node cannot be determined. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Name of this item - - - - - Type that implements this matching rule or call handler. - - - - - Injection members that control how this item is created. - - - - - Lifetime manager for this item. - - - - - A collection of s for configuration. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Causes the configuration system to throw an exception. - - - true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. - - The name of the unrecognized element. - An input stream that reads XML from the configuration file. - The element specified in is the <clear> element. - starts with the reserved prefix "config" or "lock". - - - - - Retrieve a call handler element from the collection by name. - - Name to look up. - The rule, or null if not in the collection. - - - - The <default> element that appears inside an <interceptor> element. - - - - - Base class for the default and key elements that can occur - inside the <interceptor> element. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Actually register the interceptor against this type. - - Container to configure. - interceptor to register. - - - - Type name that this interceptor will be registered for. - - - - - Return the type object that is resolved from the property. - - The type object. - - - - Actually register the interceptor against this type. - - Container to configure. - interceptor to register. - - - - Configuration elmement for specifying - interception behaviors for a type. - - - - - Reads XML from the configuration file. - - The that reads from the configuration file. - true to serialize only the collection key properties; otherwise, false. - The element to read is locked. - - or - - An attribute of the current node is not recognized. - - or - - The lock status of the current node cannot be determined. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Return the set of s that are needed - to configure the container according to this configuration element. - - Container that is being configured. - Type that is being registered. - Type that is being mapped to. - Name this registration is under. - One or more objects that should be - applied to the container registration. - - - - Type of behavior to add. - - - - - Name of behavior to resolve. - - - - - Should this behavior be configured as a default behavior for this type, or - specifically for this type/name pair only? - - - - - Each element must have a unique key, which is generated by the subclasses. - - - - - Section extension class used to add the elements needed to configure - Unity interception to the configuration schema. - - - - - Add the extensions to the section via the context. - - Context object that can be used to add elements and aliases. - - - - A configuration element that contains the top-level container configuration - information for interception - handler policies and global interceptor definitions. - - - - - Gets a value indicating whether an unknown element is encountered during deserialization. - - - true when an unknown element is encountered while deserializing; otherwise, false. - - The name of the unknown subelement. - The being used for deserialization. - The element identified by is locked. - - or - - One or more of the element's attributes is locked. - - or - - is unrecognized, or the element has an unrecognized attribute. - - or - - The element has a Boolean attribute with an invalid value. - - or - - An attempt was made to deserialize a property more than once. - - or - - An attempt was made to deserialize a property that is not a valid member of the element. - - or - - The element cannot contain a CDATA or text element. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Apply this element's configuration to the given . - - Container to configure. - - - - Policies defined for this container. - - - - - Configuration element that lets you configure - what interceptor to use for a type. - - - - - Initialize a new . - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Return the set of s that are needed - to configure the container according to this configuration element. - - Container that is being configured. - Type that is being registered. - Type that is being mapped to. - Name this registration is under. - One or more objects that should be - applied to the container registration. - - - - Type name for the interceptor to apply. - - - - - Name to use when resolving interceptors from the container. - - - - - Should this interceptor be registered as the default for the contained - type, or only for this particular type/name pair? - - - - - Each element must have a unique key, which is generated by the subclasses. - - - - - A collection of objects as shown - in configuration. - - - - - When overridden in a derived class, creates a new . - - - A new . - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Configuration element that provides a top-level element for - configuration interceptors for types in a container. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Apply this element's configuration to the given . - - Container to configure. - - - - The various child elements that are contained in this element. - - - - - Configuration element that represents the configuration for - a specific interceptor, as presented in the config file inside - the <interceptors> element. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Gets a value indicating whether an unknown element is encountered during deserialization. - - - true when an unknown element is encountered while deserializing; otherwise, false. - - The name of the unknown subelement. - The being used for deserialization. - The element identified by is locked. - - or - - One or more of the element's attributes is locked. - - or - - is unrecognized, or the element has an unrecognized attribute. - - or - - The element has a Boolean attribute with an invalid value. - - or - - An attempt was made to deserialize a property more than once. - - or - - An attempt was made to deserialize a property that is not a valid member of the element. - - or - - The element cannot contain a CDATA or text element. - - - - - Type of interceptor to configure. - - - - - The types that this interceptor will be registered against. - - - - - Any value passed to the type converter. - - - - - Type converter to use to create the interceptor, if any. - - - - - A collection of objects - as stored in configuration. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - The <key> element that occurs inside an <interceptor> element - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Actually register the interceptor against this type. - - Container to configure. - interceptor to register. - - - - Name registration should be under. To register under the default, leave blank. - - - - - A configuration element representing a matching rule. - - - - - A collection of s for configuration. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Causes the configuration system to throw an exception. - - - true if the unrecognized element was deserialized successfully; otherwise, false. The default is false. - - The name of the unrecognized element. - An input stream that reads XML from the configuration file. - The element specified in is the <clear> element. - starts with the reserved prefix "config" or "lock". - - - - - Retrieve a matching rule element from the collection by name. - - Name to look up. - The rule, or null if not in the collection. - - - - Configuration element for building up an interception policy. - - - - - Gets a value indicating whether an unknown element is encountered during deserialization. - - - true when an unknown element is encountered while deserializing; otherwise, false. - - The name of the unknown subelement. - The being used for deserialization. - The element identified by is locked. - - or - - One or more of the element's attributes is locked. - - or - - is unrecognized, or the element has an unrecognized attribute. - - or - - The element has a Boolean attribute with an invalid value. - - or - - An attempt was made to deserialize a property more than once. - - or - - An attempt was made to deserialize a property that is not a valid member of the element. - - or - - The element cannot contain a CDATA or text element. - - - - - Write the contents of this element to the given . - - The caller of this method has already written the start element tag before - calling this method, so deriving classes only need to write the element content, not - the start or end tags. - Writer to send XML content to. - - - - Name of this policy. - - - - - Matching rules for this policy. - - - - - Call handlers for this policy. - - - - - A collection of in the configuration. - - - - - Gets the element key for a specified configuration element when overridden in a derived class. - - - An that acts as the key for the specified . - - The to return the key for. - - - - - Indexer to retrieve policy element objects by name. - - Name of policy to get. - The element. - - - - A shortcut element to enable the policy injection behavior. - - - - - Return the set of s that are needed - to configure the container according to this configuration element. - - Container that is being configured. - Type that is being registered. - Type that is being mapped to. - Name this registration is under. - One or more objects that should be - applied to the container registration. - - - - Each element must have a unique key, which is generated by the subclasses. - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to The abstract type InterceptorRegistrationElement cannot be created. Please create a concrete instance.. - - - - - Looks up a localized string similar to The <injection/> element is not allowed on element named '{0}' because it doesn't have a type attribute.. - - - - - Looks up a localized string similar to The <lifetime/> element is not allowed on element named '{0}' because it doesn't have a type attribute.. - - - - - Looks up a localized string similar to The type name or alias {0} could not be resolved. Please check your configuration file and verify this type name.. - - - - - Looks up a localized string similar to Cannot create instance of type {0} with a default constructor.. - - - - - Looks up a localized string similar to The type name {0} resolved to type {1} is not compatible with the required type {2}.. - - - - - Looks up a localized string similar to The type {0} could not be resolved to a valid type. Please double check your configuration.. - - - - - Looks up a localized string similar to The interception behavior element must have at least one of the 'name' or 'type' attributes.. - - - - diff --git a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.dll b/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.dll deleted file mode 100644 index 28b3c0e82..000000000 Binary files a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.dll and /dev/null differ diff --git a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.xml b/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.xml deleted file mode 100644 index c282fc211..000000000 --- a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Interception.xml +++ /dev/null @@ -1,3460 +0,0 @@ - - - - Microsoft.Practices.Unity.Interception - - - - - Stores information about a single to be an additional interface for an intercepted object and - configures a container accordingly. - - - - - Stores information about a an intercepted object and configures a container accordingly. - - - - - Initializes a new instance of the with a - . - - A descriptor representing the interception behavior to use. - when is - . - when is not an interface. - - - - - Add policies to the to configure the container to use the represented - as an additional interface for the supplied parameters. - - Interface being registered. - Type to register. - Name used to resolve the type object. - Policy list to add policies to. - - - - Stores information about a single to be an additional interface for an intercepted object and - configures a container accordingly. - - The interface. - - - - Initializes a new instance of the . - - - - - An injection member that lets you specify behaviors that should - apply to all instances of a type in the container regardless - of what name it's resolved under. - - - - - Base class for injection members that allow you to add - interception behaviors. - - - - - Initializes a new instance of the with a - . - - The interception behavior to use. - - - - Initializes a new instance of the with a - given type/name pair. - - Type of behavior to - - - - - Initializes a new instance of the with a - given behavior type. - - Type of behavior to - - - - Add policies to the to configure the container to use the represented - for the supplied parameters. - - Interface being registered. - Type to register. - Name used to resolve the type object. - Policy list to add policies to. - - - - Get the list of behaviors for the current type so that it can be added to. - - Policy list. - Implementation type to set behaviors for. - Name type is registered under. - An instance of . - - - - Create a new that will - supply the given interception behavior to the container. - - Behavior to apply to this type. - - - - Create a new that will - resolve the given type/name pair to get the behavior. - - Type of behavior. - Name for behavior registration. - - - - Create a new that will - resolve the given type to get the behavior. - - Type of behavior. - - - - Get the list of behaviors for the current type so that it can be added to. - - Policy list. - Implementation type to set behaviors for. - Name type is registered under. - An instance of . - - - - A generic version of so you - can give the behavior type using generic syntax. - - Type of the behavior object to apply. - - - - Construct a new instance - that use the given type and name to resolve the behavior object. - - Name of the registration. - - - - Construct a new instance - that uses the given type to resolve the behavior object. - - - - - A that can be passed to the - method to specify - which interceptor to use. This member sets up the default - interceptor for a type - this will be used regardless of which - name is used to resolve the type. - - - - - Construt a new instance that, - when applied to a container, will register the given - interceptor as the default one. - - Interceptor to use. - - - - Construct a new that, when - applied to a container, will register the given type as - the default interceptor. - - Type of interceptor. - Name to use to resolve the interceptor. - - - - Construct a new that, when - applied to a container, will register the given type as - the default interceptor. - - Type of interceptor. - - - - Add policies to the to configure the - container to call this constructor with the appropriate parameter values. - - Type of interface being registered. If no interface, - this will be null. - Type of concrete type being registered. - Name used to resolve the type object. - Policy list to add policies to. - - - - A generic version of so that - you can specify the interceptor type using generics. - - - - - - Create a new instance of . - - Name to use when resolving interceptor. - - - - Create a new instance of . - - - - - An that accumulates a sequence of - instances representing the additional interfaces for an intercepted object. - - - - - An that returns a sequence of - instances representing the additional interfaces for an intercepted object. - - - - - Gets the instances accumulated by this policy. - - - - - Initializes a new instance of the class. - - - - - Gets the instances accumulated by this policy. - - - - - An implementation of that will - resolve the interceptor through the container. - - - - - An interface that determines when to intercept instances - and which interceptor to use. - - - - - Interceptor to use. - - Context for current build operation. - - - - Construct a new that - will resolve the interceptor using the given build key. - - build key to resolve. - - - - Interceptor to use. - - Context for current build operation. - - - - An implementation of that will - resolve the interceptor through the container. - - - - - Interface that controls when and how types get intercepted. - - - - - Interceptor to use to create type proxy - - Context for current build operation. - - - - Cache for proxied type. - - - - - construct a new that - will resolve the interceptor with the given . - - The build key to use to resolve. - - - - Interceptor to use to create type proxy - - Context for current build operation. - - - - Cache for proxied type. - - - - - High-level API for performing interception on existing and new objects. - - - - - Returns a for type which wraps - the supplied . - - The type to intercept. - The instance to intercept. - The to use when creating the proxy. - The interception behaviors for the new proxy. - Any additional interfaces the proxy must implement. - A proxy for compatible with . - when is . - when is . - when is . - when is . - when cannot intercept - . - - - - Returns a for type which wraps - the supplied . - - Type to intercept. - The instance to intercept. - The to use when creating the proxy. - The interception behaviors for the new proxy. - A proxy for compatible with . - when is . - when is . - when is . - when cannot intercept - . - - - - Returns a for type which wraps - the supplied . - - The type to intercept. - The instance to intercept. - The to use when creating the proxy. - The interception behaviors for the new proxy. - Any additional interfaces the proxy must implement. - A proxy for compatible with . - when is . - when is . - when is . - when is . - when is . - when cannot intercept - . - - - - Returns a for type which wraps - the supplied . - - The type to intercept. - The instance to intercept. - The to use when creating the proxy. - The interception behaviors for the new proxy. - A proxy for compatible with . - when is . - when is . - when is . - when is . - when cannot intercept - . - - - - Creates a new instance of type that is intercepted with the behaviors in - . - - The type of the object to create. - The to use when creating the proxy. - The interception behaviors for the new proxy. - Any additional interfaces the proxy must implement. - The arguments for the creation of the new instance. - An instance of a class compatible with that includes execution of the - given . - when is . - when is . - When is . - when cannot intercept - . - - - - Creates a new instance of type that is intercepted with the behaviors in - . - - The type of the object to create. - The to use when creating the proxy. - The interception behaviors for the new proxy. - The arguments for the creation of the new instance. - An instance of a class compatible with that includes execution of the - given . - when is . - when is . - when cannot intercept - . - - - - Creates a new instance of type that is intercepted with the behaviors in - . - - The type of the object to create. - The to use when creating the proxy. - The interception behaviors for the new proxy. - Any additional interfaces the instance must implement. - The arguments for the creation of the new instance. - An instance of a class compatible with that includes execution of the - given . - when is . - when is . - when is . - when is . - when cannot intercept - . - - - - Creates a new instance of type that is intercepted with the behaviors in - . - - The type of the object to create. - The to use when creating the proxy. - The interception behaviors for the new proxy. - The arguments for the creation of the new instance. - An instance of a class compatible with that includes execution of the - given . - when is . - when is . - when is . - when cannot intercept - . - - - - Computes the array with all the additional interfaces for the interception of an object. - - The interception behaviors for the new proxy. - Any additional interfaces the instance must implement. - An array with the required interfaces for - when the interfaces are not valid. - - - - Stores information about the to be used to intercept an object and - configures a container accordingly. - - - - - - Initializes a new instance of the class with an interceptor instance. - - The to use. - when is - . - - - - Initialize a new instance of the class with a given - name and type that will be resolved to provide interception. - - Type of the interceptor - name to use to resolve. - - - - Initialize a new instance of the class with - a given type that will be resolved to provide interception. - - Type of the interceptor. - - - - Add policies to the to configure the container to use the represented - for the supplied parameters. - - Interface being registered. - Type to register. - Name used to resolve the type object. - Policy list to add policies to. - - - - Generic version of that lets you specify an interceptor - type using generic syntax. - - Type of interceptor - - - - Initialize an instance of that will - resolve the given interceptor type. - - - - - Initialize an instance of that will - resolve the given interceptor type and name. - - Name that will be used to resolve the interceptor. - - - - A simple data holder class used to store information about the current - interception operation that's being set up. Useful for creating behaviors - that need to know this stuff (especially the PIAB behavior). - - - - - Create a new instance of that - stores the given , - , and . - - that will be used to - create the intercepting type or proxy. - Type that interception was requested on. - Type of the object that will actually be intercepted. - - - - that will be used to - create the intercepting type or proxy. - - - - - Type that interception was requested on. - - - - - Type of the object that will actually be intercepted. - - - - - This interface is implemented by all proxy objects, type or instance based. - It allows for adding interception behaviors. - - - - - Adds a to the proxy. - - The to add. - - - - Base interface for type and instance based interceptor classes. - - - - - Can this interceptor generate a proxy for the given type? - - Type to check. - True if interception is possible, false if not. - - - - Returns a sequence of methods on the given type that can be - intercepted. - - Type that was specified when this interceptor - was created (typically an interface). - The concrete type of the implementing object. - Sequence of objects. - - - - Interface for interceptors that generate separate proxy - objects to implement interception on instances. - - - - - Create a proxy object that provides interception for . - - Type to generate the proxy of. - Object to create the proxy for. - Additional interfaces the proxy must implement. - The proxy object. - - - - Implementation of that returns a - pre-created interceptor. - - - - - Create a new instance of . - - Interceptor to store. - - - - Interceptor to use. - - Context for current build operation. - - - - A that intercepts objects - in the build chain by creating a proxy object. - - - - - Called during the chain of responsibility for a build operation. The - PostBuildUp method is called when the chain has finished the PreBuildUp - phase and executes in reverse order from the PreBuildUp calls. - - Context of the build operation. - - - - An instance interceptor that works by generating a - proxy class on the fly for a single interface. - - - - - Can this interceptor generate a proxy for the given type? - - Type to check. - True if interception is possible, false if not. - - - - Returns a sequence of methods on the given type that can be - intercepted. - - Type that was specified when this interceptor - was created (typically an interface). - The concrete type of the implementing object. - Sequence of objects. - - - - Create a proxy object that provides interception for . - - Type to generate the proxy of. - Object to create the proxy for. - Additional interfaces the proxy must implement. - The proxy object. - - - - A class used to generate proxy classes for doing interception on - interfaces. - - - - - Create an instance of that - can construct an intercepting proxy for the given interface. - - Type of the interface to intercept. - Additional interfaces the proxy must implement. - - - - Create the type to proxy the requested interface - - - - - - Represents the implementation of an interface method. - - - - - Used to throw an for non-implemented methods on the - additional interfaces. - - - - - This class provides the remoting-based interception mechanism. It is - invoked by a call on the corresponding TransparentProxy - object. It routes calls through the handlers as appropriate. - - - - - Creates a new instance that applies - the given policies to the given target object. - - Target object to intercept calls to. - Type to return as the type being proxied. - Additional interfaces the proxy must implement. - - - - Adds a to the proxy. - - The to add. - - - - Checks whether the proxy that represents the specified object type can be cast to the type represented by the interface. - - - - true if cast will succeed; otherwise, false. - - - The type to cast to. - The object for which to check casting. - The immediate caller makes the call through a reference to the interface and does not have infrastructure permission. - - - - Executes a method call represented by the - parameter. The CLR will call this method when a method is called - on the TransparentProxy. This method runs the invocation through - the call handler pipeline and finally sends it down to the - target object, and then back through the pipeline. - - An object that contains the information - about the method call. - An object contains the - information about the target method's return value. - - - - Returns the target of this intercepted call. - - The target object. - - - - Gets or sets the fully qualified type name of the server object in a . - - - - The fully qualified type name of the server object in a . - - - The immediate caller makes the call through a reference to the interface and does not have infrastructure permission. - - - - An instance interceptor that uses remoting proxies to do the - interception. - - - - - Can this interceptor generate a proxy for the given type? - - Type to check. - True if interception is possible, false if not. - - - - Returns a sequence of methods on the given type that can be - intercepted. - - The intercepted type. - The concrete type of the implementing object. - Sequence of objects. - - - - Create a proxy object that provides interception for . - - Type to generate the proxy of. - Object to create the proxy for. - Additional interfaces the proxy must implement. - The proxy object. - - - - A dumb data holder that returns the methodinfo for both an - interface method and the method that implements that interface - method. - - - - - Construct a new which holds - the given objects. - - MethodInfo for the interface method (may be null if no interface). - MethodInfo for implementing method. - - - - Determines whether the specified is equal to the current . - - - true if the specified is equal to the current ; otherwise, false. - - - The to compare with the current . - - - The parameter is null. - 2 - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - 2 - - - - Standard equals operator - - - - - standard not equal operator. - - - - - Returns a that represents the current . - - - A that represents the current . - - 2 - - - - The interface method MethodInfo. - - - - - The implementing method MethodInfo. - - - - - Interface for interceptor objects that generate - proxy types. - - - - - Create a type to proxy for the given type . - - Type to proxy. - Additional interfaces the proxy must implement. - New type that can be instantiated instead of the - original type t, and supports interception. - - - - Implementation of that returns a precreated - interceptor object. - - - - - Create a new instance of that - uses the given . - - Interceptor to use. - - - - Interceptor to use to create type proxy - - Context for current build operation. - - - - Cache for proxied type. - - - - - A that hooks up type interception. It looks for - a for the current build key, or the current - build type. If present, it substitutes types so that that proxy class gets - built up instead. On the way back, it hooks up the appropriate handlers. - - - - - Called during the chain of responsibility for a build operation. The - PreBuildUp method is called when the chain is being executed in the - forward direction. - - In this class, PreBuildUp is responsible for figuring out if the - class is proxiable, and if so, replacing it with a proxy class. - Context of the build operation. - - - - Called during the chain of responsibility for a build operation. The - PostBuildUp method is called when the chain has finished the PreBuildUp - phase and executes in reverse order from the PreBuildUp calls. - - In this class, PostBuildUp checks to see if the object was proxyable, - and if it was, wires up the handlers. - Context of the build operation. - - - - This class provides the code needed to implement the - interface on a class. - - - - - This class handles parameter type mapping. When we generate - a generic method, we need to make sure our parameter type - objects line up with the generic parameters on the generated - method, not on the one we're overriding. - - - - - A utility class that takes a set of s - and pulls out shadowed methods, only returning the ones that - are actually accessible to be overriden. - - - - - Take the list of methods and put them together into lists index by method name. - - Methods to sort through. - - - - Given a list of overloads for a method, return only those methods - that are actually visible. In other words, if there's a "new SomeType" method - somewhere, return only the new one, not the one from the base class - that's now hidden. - - Sequence of methods to process. - Sequence of returned methods. - - - - Take a semi-randomly ordered set of methods on a type and - sort them into groups by name and by parameter list. - - The list of methods. - Sequence of lists of methods, grouped by method name. - - - - Given a set of hiding overloads, return only the currently visible one. - - The set of overloads. - The most visible one. - - - - Given a method, return a value indicating how deeply in the - inheritance hierarchy the method is declared. Current type = 0, - parent = 1, grandparent = 2, etc. - - Method to check. - Declaration depth - - - - A implementation that can compare two - based on their parameter lists. - - First to compare. - Second to compare. - < 0, 0, or > 0 based on which one is "greater" than the other. - - - - Compare two parameter lists. - - First parameter list. - Second parameter list. - < 0, 0, or > 0. - - - - Compare two objects by type. - - First - First - < 0, 0, or > 0 - - - - A type based interceptor that works by generated a new class - on the fly that derives from the target class. - - - - - Can this interceptor generate a proxy for the given type? - - Type to check. - True if interception is possible, false if not. - - - - Returns a sequence of methods on the given type that can be - intercepted. - - The intercepted type. - The concrete type of the implementing object. - Sequence of objects. - - - - Create a type to proxy for the given type . - - Type to proxy. - Additional interfaces the proxy must implement. - New type that can be instantiated instead of the - original type t, and supports interception. - - - - An that returns a sequence of - instances for an intercepted object. - - - - - Get the set of object to be used for the given type and - interceptor. - - - This method will return a sequence of s. These behaviors will - only be included if their properties are true. - - Context for the current build operation. - Interceptor that will be used to invoke the behavior. - Type that interception was requested on. - Type that implements the interception. - - - - - Get the set of that can be used to resolve the - behaviors. - - - - - Key for handler pipelines. - - - - - Creates a new for the supplied method. - - The method for the key. - The new key. - - - - Compare two instances. - - Object to compare to. - True if the two keys are equal, false if not. - - - - Calculate a hash code for this instance. - - A hash code. - - - - Compare two instances for equality. - - First of the two keys to compare. - Second of the two keys to compare. - True if the values of the keys are the same, else false. - - - - Compare two instances for inequality. - - First of the two keys to compare. - Second of the two keys to compare. - false if the values of the keys are the same, else true. - - - - Compare two instances. - - Object to compare to. - True if the two keys are equal, false if not. - - - - A collection of objects, indexed - by . Returns an empty pipeline if a - MethodBase is requested that isn't in the dictionary. - - - - - Retrieve the pipeline assocated with the requested . - - The method for which the pipeline is being requested. - The handler pipeline for the given method. If no pipeline has - been set, returns a new empty pipeline. - - - - Set a new pipeline for a method. - - The method on which the pipeline should be set. - The new pipeline. - - - - Get the pipeline for the given method, creating it if necessary. - - Method to retrieve the pipeline for. - Handlers to initialize the pipeline with - True if the pipeline has any handlers in it, false if not. - - - - Attribute used to indicate that no interception should be applied to - the attribute target. - - - - - A class that reads and constructs handlers - based on on the target. - - - - - Base class for Policies that specifies which handlers apply to which methods of an object. - - - This base class always enforces the - before - passing the checks onto derived classes. This way, derived classes do not need to - worry about implementing this check. - It also means that derived classes cannot override this rule. This is considered a feature. - - - - Creates a new empty Policy. - - - - - Creates a new empty policy with the given name. - - Name of the policy. - - - - Checks if the rules in this policy match the given member info. - - MemberInfo to check against. - true if ruleset matches, false if it does not. - - - - Returns ordered collection of handlers in order that apply to the given member. - - Member that may or may not be assigned handlers by this policy. - The to use when creating handlers, - if necessary. - Collection of handlers (possibly empty) that apply to this member. - - - - Given a method on an object, return the set of MethodBases for that method, - plus any inteface methods that the member implements. - - Member to get Method Set for. - The set of methods - - - - Derived classes implement this method to calculate if the policy - will provide any handler to the specified member. - - Member to check. - true if policy applies to this member, false if not. - - - - Derived classes implement this method to supply the list of handlers for - this specific member. - - Member to get handlers for. - The to use when creating handlers, - if necessary. - Enumerable collection of handlers for this method. - - - - Gets the name of this policy. - - The name of the policy. - - - - Constructs a new instance of the . - - - - - Derived classes implement this method to calculate if the policy - will provide any handler to the specified member. - - Member to check. - true if policy applies to this member, false if not. - - - - Derived classes implement this method to supply the list of handlers for - this specific member. - - Member to get handlers for. - The to use when creating handlers, - if necessary. - Enumerable collection of handlers for this method. - - - - Base class for handler attributes used in the attribute-driven - interception policy. - - - - - Derived classes implement this method. When called, it - creates a new call handler as specified in the attribute - configuration. - - The to use when creating handlers, - if necessary. - A new call handler object. - - - - Gets or sets the order in which the handler will be executed. - - - - - The HandlerPipeline class encapsulates a list of s - and manages calling them in the proper order with the right inputs. - - - - - Creates a new with an empty pipeline. - - - - - Creates a new with the given collection - of s. - - Collection of handlers to add to the pipeline. - - - - Execute the pipeline with the given input. - - Input to the method call. - The ultimate target of the call. - Return value from the pipeline. - - - - Get the number of handlers in this pipeline. - - - - - Handlers implement this interface and are called for each - invocation of the pipelines that they're included in. - - - - - Implement this method to execute your handler processing. - - Inputs to the current call to the target. - Delegate to execute to get the next delegate in the handler - chain. - Return value from the target. - - - - Order in which the handler will be executed - - - - - This delegate type is the type that points to the next - method to execute in the current pipeline. - - Inputs to the current method call. - Delegate to get the next handler in the chain. - Return from the next method in the chain. - - - - This delegate type is passed to each handler's Invoke method. - Call the delegate to get the next delegate to call to continue - the chain. - - Next delegate in the handler chain to call. - - - - This interface is implemented by the matching rule classes. - A Matching rule is used to see if a particular policy should - be applied to a class member. - - - - - Tests to see if this rule applies to the given member. - - Member to test. - true if the rule applies, false if it doesn't. - - - - This interface is used to represent the call to a method. - An implementation of IMethodInvocation is passed to the - call handlers so that they may manipulate the call - (typically by changing the parameters) before the final target - gets called. - - - - - Factory method that creates the correct implementation of - IMethodReturn. - - Return value to be placed in the IMethodReturn object. - All arguments passed or returned as out/byref to the method. - Note that this is the entire argument list, including in parameters. - New IMethodReturn object. - - - - Factory method that creates the correct implementation of - IMethodReturn in the presence of an exception. - - Exception to be set into the returned object. - New IMethodReturn object - - - - Gets the inputs for this call. - - - - - Collection of all parameters to the call: in, out and byref. - - - - - Retrieves a dictionary that can be used to store arbitrary additional - values. This allows the user to pass values between call handlers. - - - - - The object that the call is made on. - - - - - The method on Target that we're aiming at. - - - - - This interface is used to represent the return value from a method. - An implementation of IMethodReturn is returned by call handlers, and - each handler can manipulate the parameters, return value, or add an - exception on the way out. - - - - - The collection of output parameters. If the method has no output - parameters, this is a zero-length list (never null). - - - - - Returns value from the method call. - - This value is null if the method has no return value. - - - - If the method threw an exception, the exception object is here. - - - - - Retrieves a dictionary that can be used to store arbitrary additional - values. This allows the user to pass values between call handlers. - - This is guaranteed to be the same dictionary that was used - in the IMethodInvocation object, so handlers can set context - properties in the pre-call phase and retrieve them in the after-call phase. - - - - - A Unity container extension that allows you to configure - whether an object should be intercepted and which mechanism should - be used to do it, and also provides a convenient set of methods for - configuring injection for instances. - - - - - - - - - - Initial the container with this extension's functionality. - - - - - API to configure interception for a type. - - Type to intercept. - Name type is registered under. - Interceptor to use. - This extension object. - - - - API to configure interception for a type. - - Type to intercept. - Interceptor to use. - This extension object. - - - - API to configure interception for a type. - - Type to intercept - Name type is registered under. - Interceptor object to use. - This extension object. - - - - API to configure interception for a type. - - Type to intercept - Interceptor object to use. - This extension object. - - - - API to configure interception for a type. - - Type to intercept. - Name type is registered under. - Instance interceptor to use. - This extension object. - - - - Set the interceptor for a type, regardless of what name is used to resolve the instances. - - Type to intercept - Interceptor instance. - This extension object. - - - - Set the interceptor for a type, regardless of what name is used to resolve the instances. - - Type to intercept - Interceptor instance. - This extension object. - - - - API to configure interception for a type. - - Type to intercept. - Instance interceptor to use. - This extension object. - - - - API to configure interception for a type. - - Type to intercept. - Name type is registered under. - Instance interceptor to use. - This extension object. - - - - API to configure interception for a type. - - Type to intercept. - Instance interceptor to use. - This extension object. - - - - API to configure the default interception settings for a type. - - Type the interception is being configured for. - The interceptor to use by default. - This extension object. - - - - API to configure the default interception settings for a type. - - Type the interception is being configured for. - The interceptor to use by default. - This extension object. - - - - Starts the definition of a new . - - The policy name. - - This is a convenient way for defining a new policy and the - instances and instances that are required by a policy. - - This mechanism is just a shortcut for what can be natively expressed by wiring up together objects - with repeated calls to the method. - - - - - This interface represents a list of either input or output - parameters. It implements a fixed size list, plus a couple - of other utility methods. - - - - - Gets the name of a parameter based on index. - - Index of parameter to get the name for. - Name of the requested parameter. - - - - Gets the ParameterInfo for a particular parameter by index. - - Index for this parameter. - ParameterInfo object describing the parameter. - - - - Gets the ParameterInfo for a particular parameter by name. - - Name of the parameter. - ParameterInfo object for the named parameter. - - - - Fetches a parameter's value by name. - - parameter name. - value of the named parameter. - - - - A is a matching rule that - is a collection of other matching rules. All the contained - rules much match for the set to match. - - - - - Tests the given member against the ruleset. The member matches - if all contained rules in the ruleset match against it. - - If the ruleset is empty, then Matches passes since no rules failed. - MemberInfo to test. - true if all contained rules match, false if any fail. - - - - A implementation that fails to match - if the method in question has the ApplyNoPolicies attribute on it. - - - - - Check if the matches this rule. - - This rule returns true if the member does NOT have the - on it, or a containing type doesn't have the attribute. - Member to check. - True if the rule matches, false if it doesn't. - - - - An that matches the assembly name of the - given member. - - - - - Constructs a new with the given - assembly name (or partial name). - - Assembly name to match. - - - - Constructs a new that matches - against the given assembly. - - Assembly to match. - - - - Determines if the supplied matches the rule. - - - This rule matches if the assembly containing the given - matches the name given. The rule used for matches lets you include the parts - of the assembly name in order. You can specify assembly name only, assembly and version, - assembly, version and culture, or the fully qualified assembly name. - - Member to check. - true if is in a matching assembly, false if not. - - - - An implementation of that checks to see if the - member (or type containing that member) have any s. - - - - - Checks to see if matches the rule. - - Returns true if any s are present on the method - or the type containing that method. - Member to check. - true if member matches, false if not. - - - - An implementation of that checks to see if - the member tested has an arbitrary attribute applied. - - - - - Constructs a new . - - Attribute to match. - If true, checks the base class for attributes as well. - - - - Checks to see if the given matches the rule. - - Member to check. - true if it matches, false if not. - - - - Class used for storing information about a single name/ignoreCase - pair. This class is also used as a base class for other classes that - need this pair plus some other properties. - - - - - Constructs an empty object with empty - string and ignoreCase = false. - - - - - Constructs a object that matches the given - string. IgnoreCase is false. - - The name to match. - - - - Constructs a object that matches the - given string, setting the ignoreCase flag to the given value. - - The name to match. - true to do case insensitive comparison, false to do case sensitive. - - - - Gets or sets the name to match. - - The name to match. - - - - Gets or sets whether to do case sensitive comparisons of Match. - - If false, case sensitive comparison. If true, case insensitive comparisons. - - - - A matching rule that matches when the given member name is - the same as the one supplied in the constructor. - - - - - Create a new that matches the - given member name. Wildcards are allowed. - - Name to match against. Comparison is case sensitive. - - - - Create a new that matches the - given member name. Wildcards are allowed. - - Name to match against. - If false, name comparisons are case sensitive. If true, name comparisons are case insensitive. - - - - Create a new that matches the - given member names. Wildcards are allowed. - - collections of names to match. If any of these patterns match, the rule matches. Comparisons are case sensitive. - - - - Create a new that matches the - given member names. Wildcards are allowed. - - Collections of names to match. If any of these patterns match, the rule matches. - If false, name comparisons are case sensitive. If true, name comparisons are case insensitive. - - - - Create a new that matches - one of the given member names. Wildcards are allowed. - - List of objects containing - the pattern to match and case sensitivity flag. - - - - Check if the given matches one of this - object's matching patterns. - - Member to check. - True if matches, false if not. - - - - Match methods with the given names and method signature. - - - - - Creates a new that matches methods - with the given name, with parameter types matching the given list. - - Method name to match. Wildcards are allowed. - Parameter type names to match, in order. Wildcards are allowed. - If false, name comparisons are case sensitive. If true, name comparisons are case insensitive. - - - - Create a new that matches methods - with the given name, with parameter types matching the given list. - - Name comparisons are case sensitive. - Method name to match. Wildcards are allowed. - Parameter type names to match, in order. Wildcards are allowed. - - - - Create a new that matches any method - with parameter types matching the given list. - - Name comparisons are case sensitive. - Parameter type names to match, in order. Wildcards are allowed. - - - - Create a new that matches any method - with parameter types matching the given list. - - Parameter type names to match, in order. Wildcards are allowed. - If false, name comparisons are case sensitive. If true, name comparisons are case insensitive. - - - - Check to see if the given method matches the name and signature. - - Member to check. - True if match, false if not. - - - - An that matches members in a given namespace. You can - specify either a single namespace (e.g. System.Data) or a namespace root - (e.g. System.Data.* to match types in that namespace or below. - - - - - Create a new that matches the given - namespace. - - namespace name to match. Comparison is case sensitive. - - - - Create a new that matches the given - namespace. - - namespace name to match. - If false, comparison is case sensitive. If true, comparison is case insensitive. - - - - Create a new that matches any of - the given namespace names. - - Collection of namespace names to match. - - - - Check to see if the given is in a namespace - matched by any of our given namespace names. - - member to check. - True if member is contained in a matching namespace, false if not. - - - - A helper class that encapsulates the name to match, case sensitivity flag, - and the wildcard rules for matching namespaces. - - - - - Construct a new that matches the - given namespace name. - - Namespace name to match. - If false, comparison is case sensitive. If true, comparison is case insensitive. - - - - Check if the given type is in a matching namespace. - - Type to check. - True if type is in a matching namespace, false if not. - - - - An that matches methods that have any parameters - of the given types. - - - - - Creates a new that matches if any of - the method parameters match ones in the given collection. - - Collection of that - describes the types to match. - - - - Check the given member to see if it has any matching parameters. - - Member to match. - true if member matches, false if it doesn't. - - - - The list of describing the parameter types to match. - - The collection of matches. - - - - Describes the type of parameter to match. - - - - - Input parameter - - - - - Output parameter - - - - - Input or output parameter - - - - - Method return value - - - - - A class that stores information about a single type to match. - - - - - Creates a new uninitialized . - - - - - Creates a new matching the given kind of parameter. - - of parameter to match. - - - - Creates a new matching the given parameter - type and kind. - - Parameter name to match. - of parameter to match. - - - - Creates a new matching the given parameter - type and kind. - - Parameter name to match. - If false, compare type names using case-sensitive comparison. - If true, compare type names using case-insensitive comparison. - of parameter to match. - - - - What kind of parameter to match. - - indicating which kind of parameters to match. - - - - An implementation that matches properties - by name. You can match the getter, setter, or both. - - - - - Construct a new that matches the - getter or setter of the given property. - - Name of the property. Name comparison is case sensitive. Wildcards are allowed. - - - - Constructs a new that matches the - given method of the given property. - - Name of the property. Name comparison is case sensitive. Wildcards are allowed. - Match the getter, setter, or both. - - - - Constructs a new that matches the - given method of the given property. - - Name of the property to match. Wildcards are allowed. - Match the getter, setter, or both. - If false, name comparison is case sensitive. If true, name comparison is case insensitive. - - - - Constructs a new that matches any of the - given properties. - - Collection of defining which - properties to match. - - - - Checks if the given member matches the rule. - - Member to check. - True if it matches, false if it does not. - - - - Specifies which methods of a property should be matches by - the . - - - - - Match the property getter method. - - - - - Match the property setter method. - - - - - Match either the getter or setter method. - - - - - Information about a property match. - - - - - Construct a new that matches the get or set methods - of the given property name, and does a case-sensitive comparison. - - Property name to match. - - - - Constructs a new that matches the given methods of - the given property name, doing a case-sensitive comparison. - - Property name to match. - specifying which methods of the property to match. - - - - Construt a new that matches the given methods of - the given property name. - - Property name to match. - specifying which methods of the property to match. - If false, name comparison is case sensitive. If true, name comparison is case insensitive. - - - - The to use when doing name comparisons on this property. - - Specifies which methods of the property to match. - - - - An that checks to see if a member has a specified - type. - - - - - Construct a new that matches - members with the given return type. - - Type to look for. - - - - Construct a new that matches - the given return type by name. - - See the class for details on how - type name matches are done. - Type name to match. Name comparisons are case sensitive. - - - - Construct a new that matches - the given return type by name. - - See the class for details on how - type name matches are done. - Type name to match. - If false, name comparison is case sensitive. If true, comparison - is case insensitive. - - - - Check to see if the given member has a matching return type. - - Member to check. - true if return types match, false if they don't. - - - - A that checks a member for the presence - of the on the method, property, or class, and - that the given string matches. - - - - - Constructs a new , looking for - the given string. The comparison is case sensitive. - - tag string to match. - - - - Constructs a new , looking for - the given string. The comparison is case sensitive if is - false, case insensitive if is true. - - tag string to match. - if false, case-senstive comparison. If true, case-insensitive comparison. - - - - Check the given member for the presence of the and - match the strings. - - Member to check. - True if tag strings match, false if they don't. - - - - A matching rule that matches when the member is declared - in the given type. - - - - - Constructs a new that matches the - given type. - - The type to match. - - - - Constructs a new that matches types - with the given name. - - Comparisons are case sensitive. - Type name to match. - - - - Constructs a new that matches types - with the given name, using the given case sensitivity. - - Type name to match. - if false, do case-sensitive comparison. If true, do case-insensitive. - - - - Constructs a new that will match - any of the type names given in the collection of match information. - - The match information to match. - - - - Checks if the given member matches any of this object's matches. - - Member to match. - True if match, false if not. - - - - Checks if the given type matches any of this object's matches. - - Matches may be on the namespace-qualified type name or just the type name. - Type to check. - True if it matches, false if it doesn't. - - - - An implementation of that wraps a provided array - containing the argument values. - - - - - Construct a new that wraps the - given array of arguments. - - Complete collection of arguments. - Type information about about each parameter. - A that indicates - whether a particular parameter is part of the collection. Used to filter out only input - parameters, for example. - - - - Gets the ParameterInfo for a particular parameter by index. - - Index for this parameter. - ParameterInfo object describing the parameter. - - - - Gets the for the given named parameter. - - Name of parameter. - for the requested parameter. - - - - Gets the name of a parameter based on index. - - Index of parameter to get the name for. - Name of the requested parameter. - - - - Adds to the collection. This is a read only collection, so this method - always throws . - - Object to add. - Nothing, always throws. - Always throws this. - - - - Checks to see if the collection contains the given object. - - Tests for the object using object.Equals. - Object to find. - true if object is in collection, false if it is not. - - - - Remove all items in the collection. This collection is fixed-size, so this - method always throws . - - This is always thrown. - - - - Returns the index of the given object, or -1 if not found. - - Object to find. - zero-based index of found object, or -1 if not found. - - - - Inserts a new item. This is a fixed-size collection, so this method throws . - - Index to insert at. - Always throws. - Always throws this. - - - - Removes the given item. This is a fixed-size collection, so this method throws . - - Always throws. - Always throws this. - - - - Removes the given item. This is a fixed-size collection, so this method throws . - - Always throws. - Always throws this. - - - - Copies the contents of this collection to the given array. - - Destination array. - index to start copying from. - - - - Gets an enumerator object to support the foreach construct. - - Enumerator object. - - - - Fetches a parameter's value by name. - - parameter name. - value of the named parameter. - - - - Gets the value of a parameter based on index. - - Index of parameter to get the value for. - Value of the requested parameter. - - - - Is this collection read only? - - No, it is not read only, the contents can change. - - - - Is this collection fixed size? - - Yes, it is. - - - - Total number of items in the collection. - - The count. - - - - Gets a synchronized version of this collection. WARNING: Not implemented completely, - DO NOT USE THIS METHOD. - - - - - Is the object synchronized for thread safety? - - No, it isn't. - - - - An internal struct that maps the index in the arguments collection to the - corresponding about that argument. - - - - - Construct a new object linking the - given index and object. - - Index into arguments array (zero-based). - for the argument at . - - - - Transient class that supports convenience method for specifying interception policies. - - - - - Adds a reference to matching rule by name. - - The name for the matching rule. - - The than allows further configuration of the policy. - - - The details of how the rule should be created by the container must be specified using a - standard injection specification mechanism. - - - - - Makes a matching rule in the current policy. - - The new for the policy. - - The than allows further configuration of the policy. - - - - - Configures injection for a new and makes it available - as a matching rule in the current policy. - - The type for the new matching rule. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new and makes it available - as a matching rule in the current policy, using the given . - - The type for the new matching rule. - The that controls the lifetime - of the configured matching rule. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new using the specified name - and makes it available as a matching rule in the current policy. - - The type for the new matching rule. - The name for the injection configuration for the matching rule. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new and makes it available - as a matching rule in the current policy, using the given . - - The type for the new matching rule. - The name for the injection configuration for the matching rule. - The that controls the lifetime - of the configured matching rule. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new and makes it available - as a matching rule in the current policy. - - The type for the new matching rule. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new and makes it available - as a matching rule in the current policy, using the given . - - The type for the new matching rule. - The that controls the lifetime - of the configured matching rule. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new using the specified name - and makes it available as a matching rule in the current policy. - - The type for the new matching rule. - The name for the injection configuration for the matching rule. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new using the specified name - and makes it available as a matching rule in the current policy, - using the given . - - The type for the new matching rule. - The name for the injection configuration for the matching rule. - The that controls the lifetime - of the configured matching rule. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Adds a reference to call handler by name. - - The name for the call handler. - - The than allows further configuration of the policy. - - - The details of how the handler should be created by the container must be specified using a - standard injection specification mechanism. - - - - - Makes a call handler in the current policy. - - The new for the policy. - - The than allows further configuration of the policy. - - - - - Configures injection for a new and makes it available - as a call handler in the current policy. - - The type for the new call handler. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new and makes it available - as a call handler in the current policy, using the given . - - The type for the new call handler. - The that controls the lifetime - of the configured call handler. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new using the specified name - and makes it available as a call handler in the current policy. - - The type for the new call handler. - The name for the injection configuration for the call handler. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new using the specified name - and makes it available as a call handler in the current policy, - using the given . - - The type for the new call handler. - The name for the injection configuration for the call handler. - The that controls the lifetime - of the configured call handler. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new and makes it available - as a call handler in the current policy. - - The type for the new call handler. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new and makes it available - as a call handler in the current policy, using the given . - - The type for the new call handler. - The that controls the lifetime - of the configured call handler. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new using the specified name - and makes it available as a call handler in the current policy. - - The type for the new call handler. - The name for the injection configuration for the call handler . - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - Configures injection for a new using the specified name - and makes it available as a call handler in the current policy, - using the given . - - The type for the new call handler. - The name for the injection configuration for the call handler . - The that controls the lifetime - of the configured call handler. - Objects containing the details on which members to inject and how. - - The than allows further configuration of the policy. - - - - - The that is currently being - configured. - - - - - The extension to which the policy was added. - - - Use this property to start adding a new policy. - - - - - A collection of Policy objects. The policies within a PolicySet combine using - an "or" operation. - - - - - Creates a new containing the given policies. - - Policies to put into the policy set. - - - - Gets the policies that apply to the given member. - - Member to get policies for. - Collection of policies that apply to this member. - - - - Gets the policies in the that do not - apply to the given member. - - Member to check. - Collection of policies that do not apply to . - - - - Gets the handlers that apply to the given member based on all policies in the . - - Member to get handlers for. - The to use when creating handlers, - if necessary. - Collection of call handlers for . - - - - Interceptor that performs policy injection. - - - - - Interception behaviors implement this interface and are called for each - invocation of the pipelines that they're included in. - - - - - Implement this method to execute your behavior processing. - - Inputs to the current call to the target. - Delegate to execute to get the next delegate in the behavior chain. - Return value from the target. - - - - Returns the interfaces required by the behavior for the objects it intercepts. - - The required interfaces. - - - - Returns a flag indicating if this behavior will actually do anything when invoked. - - This is used to optimize interception. If the behaviors won't actually - do anything (for example, PIAB where no policies match) then the interception - mechanism can be skipped completely. - - - - Initializes a new instance of the with a pipeline manager. - - The for the new instance. - - - - Initializes a new instance of the with the given information - about what's being intercepted and the current set of injection policies. - - Information about what will be injected. - Current injection policies. - Unity container that can be used to resolve call handlers. - - - - Applies the policy injection handlers configured for the invoked method. - - Inputs to the current call to the target. - Delegate to execute to get the next delegate in the handler - chain. - Return value from the target. - - - - Returns the interfaces required by the behavior for the objects it intercepts. - - An empty array of interfaces. - - - - Returns a flag indicating if this behavior will actually do anything when invoked. - - This is used to optimize interception. If the behaviors won't actually - do anything (for example, PIAB where no policies match) then the interception - mechanism can be skipped completely. - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to Intercepted abstract method was invoked.. - - - - - Looks up a localized string similar to Additional interfaces do not have an implementation.. - - - - - Looks up a localized string similar to The additional interfaces supplied are invalid: {0}. - - - - - Looks up a localized string similar to Type must be a subclass of System.Attribute.. - - - - - Looks up a localized string similar to Could not create instance of type {0} with no constructor arguments.. - - - - - Looks up a localized string similar to Collection contains a null element.. - - - - - Looks up a localized string similar to The collection of interfaces is null.. - - - - - Looks up a localized string similar to The required interfaces for behavior {1} are invalid: {0}. - - - - - Looks up a localized string similar to The type {0} is not an interface.. - - - - - Looks up a localized string similar to Null type.. - - - - - Looks up a localized string similar to The type {0} is an open generic.. - - - - - Looks up a localized string similar to The type {0} is not interceptable.. - - - - - Looks up a localized string similar to Could not find the implementation of interface method {0}.{1} in type {2}. - - - - - Looks up a localized string similar to Null is not permitted as an interception behavior.. - - - - - A class that wraps the inputs of a into the - interface. - - - - - Constructs a new that wraps the - given method call and arguments. - - The call message. - The arguments. - - - - An implementation of that wraps the - remoting-based in the PIAB call - interface. - - - - - Creates a new implementation that wraps - the given , with the given ultimate - target object. - - Remoting call message object. - Ultimate target of the method call. - - - - Factory method that creates the correct implementation of - IMethodReturn. - - In this implementation we create an instance of . - Return value to be placed in the IMethodReturn object. - All arguments passed or returned as out/byref to the method. - Note that this is the entire argument list, including in parameters. - New IMethodReturn object. - - - - Factory method that creates the correct implementation of - IMethodReturn in the presence of an exception. - - Exception to be set into the returned object. - New IMethodReturn object - - - - Gets the inputs for this call. - - The input collection. - - - - Collection of all parameters to the call: in, out and byref. - - The arguments collection. - - - - Retrieves a dictionary that can be used to store arbitrary additional - values. This allows the user to pass values between call handlers. - - The invocation context dictionary. - - - - The object that the call is made on. - - The target object. - - - - The method on Target that we're aiming at. - - The target method base. - - - - Gets the collection of arguments being passed to the target. - - This method exists becuase the underlying remoting call message - does not let handlers change the arguments. - Array containing the arguments to the target. - - - - An implementation of that wraps the - remoting call and return messages. - - - - - Creates a new object that contains a - return value. - - The original call message that invoked the method. - Return value from the method. - Collections of arguments passed to the method (including the new - values of any out params). - Invocation context dictionary passed into the call. - - - - Creates a new object that contains an - exception thrown by the target. - - Exception that was thrown. - The original call message that invoked the method. - Invocation context dictionary passed into the call. - - - - Constructs a for the remoting - infrastructure based on the contents of this object. - - The instance. - - - - The collection of output parameters. If the method has no output - parameters, this is a zero-length list (never null). - - The output parameter collection. - - - - Return value from the method call. - - This value is null if the method has no return value. - The return value. - - - - If the method threw an exception, the exception object is here. - - The exception, or null if no exception was thrown. - - - - Retrieves a dictionary that can be used to store arbitrary additional - values. This allows the user to pass values between call handlers. - - This is guaranteed to be the same dictionary that was used - in the IMethodInvocation object, so handlers can set context - properties in the pre-call phase and retrieve them in the after-call phase. - - The invocation context dictionary. - - - - A class that wraps the outputs of a into the - interface. - - - - - Constructs a new that wraps the - given method call and arguments. - - The call message. - The arguments. - - - - A policy is a combination of a matching rule set and a set of handlers. - If the policy applies to a member, then the handlers will be enabled for - that member. - - - - - Creates a new object with a set of matching rules - and the names to use when resolving handlers. - - - - - Creates a new object with a name, a set of matching rules - and the names to use when resolving handlers. - - - - - Checks if the rules in this policy match the given member info. - - MemberInfo to check against. - true if ruleset matches, false if it does not. - - - - Return ordered collection of handlers in order that apply to the given member. - - Member that may or may not be assigned handlers by this policy. - The to use when creating handlers, - if necessary. - Collection of handlers (possibly empty) that apply to this member. - - - - A simple attribute used to "tag" classes, methods, or properties with a - string that can later be matched via the . - - - - - Creates a new with the given string. - - The tag string. - - - - The string tag for this attribute. - - the tag. - - - - Stores information about a single to be used on an intercepted object and - configures a container accordingly. - - - - - - Initializes a new instance of the with a - . - - The interception behavior to use. - - - - Initializes a new instance of the with a - given type/name pair. - - Type of behavior to - - - - - Initializes a new instance of the with a - given behavior type. - - Type of behavior to - - - - Get the list of behaviors for the current type so that it can be added to. - - Policy list. - Implementation type to set behaviors for. - Name type is registered under. - An instance of . - - - - A generic version of that lets you - specify behavior types using generic syntax. - - Type of behavior to register. - - - - Initializes a new instance of the with a - given behavior type. - - - - - Initializes a new instance of the with a - given type/name pair. - - Name to use to resolve the behavior. - - - - An that accumulates a sequence of - instances for an intercepted object. - - - - - Get the set of object to be used for the given type and - interceptor. - - - This method will return a sequence of s. These behaviors will - only be included if their properties are true. - - Context for the current build operation. - Interceptor that will be used to invoke the behavior. - Type that interception was requested on. - Type that implements the interception. - - - - - Get the set of that can be used to resolve the - behaviors. - - - - - The InterceptionBehaviorPipeline class encapsulates a list of s - and manages calling them in the proper order with the right inputs. - - - - - Creates a new with an empty pipeline. - - - - - Creates a new with the given collection - of s. - - Collection of interception behaviors to add to the pipeline. - - - - Execute the pipeline with the given input. - - Input to the method call. - The ultimate target of the call. - Return value from the pipeline. - - - - Adds a to the pipeline. - - The interception behavior to add. - - - - Get the number of interceptors in this pipeline. - - - - - This delegate type is the type that points to the next - method to execute in the current pipeline. - - Inputs to the current method call. - Delegate to get the next interceptor in the chain. - Return from the next method in the chain. - - - - This delegate type is passed to each interceptor's Invoke method. - Call the delegate to get the next delegate to call to continue - the chain. - - Next delegate in the interceptor chain to call. - - - - A "glob" is a string matching pattern. It is similar to the - matches available in the file system (*.cs, for example). The Glob - class implements this string matching. - - Glob supports the following metacharacters: - * - match zero or more characters - ? - match any one character - [abc] - match one character if it's in the characters inside the brackets. - All other characters in the glob are literals. - - - - - Constructs a new instance that matches the given pattern. - - - The pattern match is case sensitive by default. - - Pattern to use. See summary for - details of the pattern. - - - - Constructs a new instance that matches the given pattern. - - The pattern to use. See summary for - details of the patterns supported. - If true, perform a case sensitive match. - If false, perform a case insensitive comparison. - - - - Checks to see if the given string matches the pattern. - - String to check. - True if it matches, false if it doesn't. - - - - A collection of utility functions to encapsulate details of - reflection and finding attributes. - - - - - Given a MethodBase for a property's get or set method, - return the corresponding property info. - - MethodBase for the property's get or set method. - PropertyInfo for the property, or null if method is not part of a property. - - - - Given a MethodInfo for a property's get or set method, - return the corresponding property info. - - MethodBase for the property's get or set method. - PropertyInfo for the property, or null if method is not part of a property. - - - - Given a particular MemberInfo, return the custom attributes of the - given type on that member. - - Type of attribute to retrieve. - The member to look at. - True to include attributes inherited from base classes. - Array of found attributes. - - - - Given a particular MemberInfo, find all the attributes that apply to this - member. Specifically, it returns the attributes on the type, then (if it's a - property accessor) on the property, then on the member itself. - - Type of attribute to retrieve. - The member to look at. - true to include attributes inherited from base classes. - Array of found attributes. - - - - A small implementation of that returns the - given object. - - - - - Create a new instance. - - Information about which constructor to select. - - - - Choose the constructor to call for the given type. - - Current build context - The to add any - generated resolver objects into. - The chosen constructor. - - - - MethodInfo objects for the methods we need to generate - calls to on IMethodInvocation. - - - - - Class that handles generating the dynamic types used for interception. - - - - - Create a new that will generate a - wrapper class for the requested . - - Type to generate the wrapper for. - Additional interfaces the proxy must implement. - - - - Create the wrapper class for the given type. - - Wrapper type. - - - - Represents the implementation of a method override. - - - - - Used to throw an for overrides on abstract methods. - - - - - Implementation of used - by the virtual method interceptor. - - - - - Construct a new instance for the - given target object and method, passing the - to the target method. - - Object that is target of this invocation. - Method on to call. - Values for the parameters. - - - - Factory method that creates the correct implementation of - IMethodReturn. - - Return value to be placed in the IMethodReturn object. - All arguments passed or returned as out/byref to the method. - Note that this is the entire argument list, including in parameters. - New IMethodReturn object. - - - - Factory method that creates the correct implementation of - IMethodReturn in the presence of an exception. - - Exception to be set into the returned object. - New IMethodReturn object - - - - Gets the inputs for this call. - - - - - Collection of all parameters to the call: in, out and byref. - - - - - Retrieves a dictionary that can be used to store arbitrary additional - values. This allows the user to pass values between call handlers. - - - - - The object that the call is made on. - - - - - The method on Target that we're aiming at. - - - - - An implementation of used by - the virtual method interception mechanism. - - - - - Construct a instance that returns - a value. - - The method invocation. - Return value (should be null if method returns void). - All arguments (including current values) passed to the method. - - - - Construct a instance for when the target method throws an exception. - - The method invocation. - Exception that was thrown. - - - - The collection of output parameters. If the method has no output - parameters, this is a zero-length list (never null). - - - - - Returns value from the method call. - - This value is null if the method has no return value. - - - - If the method threw an exception, the exception object is here. - - - - - Retrieves a dictionary that can be used to store arbitrary additional - values. This allows the user to pass values between call handlers. - - This is guaranteed to be the same dictionary that was used - in the IMethodInvocation object, so handlers can set context - properties in the pre-call phase and retrieve them in the after-call phase. - - - - diff --git a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.dll b/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.dll deleted file mode 100644 index 84f1870df..000000000 Binary files a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.dll and /dev/null differ diff --git a/packages/Unity.2.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll b/packages/Unity.2.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll deleted file mode 100644 index 0ce1d2818..000000000 Binary files a/packages/Unity.2.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll and /dev/null differ diff --git a/packages/Unity.2.1.505.0/Unity.2.1.505.0.nupkg b/packages/Unity.2.1.505.0/Unity.2.1.505.0.nupkg new file mode 100644 index 000000000..9df836221 Binary files /dev/null and b/packages/Unity.2.1.505.0/Unity.2.1.505.0.nupkg differ diff --git a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Configuration.dll b/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.dll similarity index 88% rename from packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Configuration.dll rename to packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.dll index 619a5721f..3bf4b2761 100644 Binary files a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Configuration.dll and b/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.dll differ diff --git a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Configuration.xml b/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.xml similarity index 100% rename from packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.Configuration.xml rename to packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.Configuration.xml diff --git a/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.dll b/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.dll new file mode 100644 index 000000000..0d1a8950d Binary files /dev/null and b/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.dll differ diff --git a/packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.xml b/packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.xml similarity index 100% rename from packages/Unity.2.0/lib/20/Microsoft.Practices.Unity.xml rename to packages/Unity.2.1.505.0/lib/NET35/Microsoft.Practices.Unity.xml diff --git a/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll b/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll new file mode 100644 index 000000000..f83c42685 Binary files /dev/null and b/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.dll differ diff --git a/packages/Unity.2.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml b/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml similarity index 99% rename from packages/Unity.2.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml rename to packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml index 37c7a1172..1df14f6c6 100644 --- a/packages/Unity.2.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml +++ b/packages/Unity.2.1.505.0/lib/SL30/Microsoft.Practices.Unity.Silverlight.xml @@ -4044,6 +4044,63 @@ Context of the build operation. + + + A that stores objects in the locator and + lifetime container provided by the context. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + + + + A method that does whatever is needed to clean up + as part of cleaning up after an exception. + + + Don't do anything that could throw in this method, + it will cause later recover operations to get skipped + and play real havok with the stack trace. + + + + + An implementation of that does nothing, + ensuring that a new object gets created every time. + + + + + Retrieve a value from the backing store associated with this Lifetime policy. + + the object desired, or null if no such object is currently stored. + + + + Stores the given value into backing store for retrieval later. + + The object being stored. + + + + Remove the given object from backing store. + + Represents a chain of responsibility for builder strategies partitioned by stages. diff --git a/packages/Unity.2.1.505.0/tools/Utils.psm1 b/packages/Unity.2.1.505.0/tools/Utils.psm1 new file mode 100644 index 000000000..209582df5 Binary files /dev/null and b/packages/Unity.2.1.505.0/tools/Utils.psm1 differ diff --git a/packages/Unity.2.1.505.0/tools/install.ps1 b/packages/Unity.2.1.505.0/tools/install.ps1 new file mode 100644 index 000000000..7a225dd7d Binary files /dev/null and b/packages/Unity.2.1.505.0/tools/install.ps1 differ diff --git a/packages/WebActivator.1.4.1/WebActivator.1.4.1.nupkg b/packages/WebActivator.1.4.1/WebActivator.1.4.1.nupkg new file mode 100644 index 000000000..270b40aab Binary files /dev/null and b/packages/WebActivator.1.4.1/WebActivator.1.4.1.nupkg differ diff --git a/packages/WebActivator.1.4.1/lib/net40/WebActivator.dll b/packages/WebActivator.1.4.1/lib/net40/WebActivator.dll new file mode 100644 index 000000000..8ae134cbf Binary files /dev/null and b/packages/WebActivator.1.4.1/lib/net40/WebActivator.dll differ diff --git a/packages/jQuery.1.5.2/jQuery.1.5.2.nupkg b/packages/jQuery.1.5.2/jQuery.1.5.2.nupkg deleted file mode 100644 index 542ba025d..000000000 Binary files a/packages/jQuery.1.5.2/jQuery.1.5.2.nupkg and /dev/null differ diff --git a/packages/jQuery.1.6.1/Content/Scripts/jquery-1.6.1-vsdoc.js b/packages/jQuery.1.6.1/Content/Scripts/jquery-1.6.1-vsdoc.js new file mode 100644 index 000000000..87ccbc7fc --- /dev/null +++ b/packages/jQuery.1.6.1/Content/Scripts/jquery-1.6.1-vsdoc.js @@ -0,0 +1,6938 @@ +/* +* This file has been generated 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.6.1 +*/ + +/*! +* jQuery JavaScript Library v1.6.1 +* http://jquery.com/ +* +* Distributed in whole under the terms of the MIT +* +* Copyright 2010, John Resig +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +* Includes Sizzle.js +* http://sizzlejs.com/ +* Copyright 2010, The Dojo Foundation +* Released under the MIT and BSD Licenses. +*/ + +(function ( window, undefined ) { +var jQuery = function( selector, context ) { +/// +/// 1: Accepts a string containing a CSS selector which is then used to match a set of elements. +/// 1.1 - $(selector, context) +/// 1.2 - $(element) +/// 1.3 - $(elementArray) +/// 1.4 - $(jQuery object) +/// 1.5 - $() +/// 2: Creates DOM elements on the fly from the provided string of raw HTML. +/// 2.1 - $(html, ownerDocument) +/// 2.2 - $(html, props) +/// 3: Binds a function to be executed when the DOM has finished loading. +/// 3.1 - $(callback) +/// +/// +/// A string containing a selector expression +/// +/// +/// A DOM Element, Document, or jQuery to use as context +/// +/// + + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }; +jQuery.Deferred = function( func ) { + + var deferred = jQuery._Deferred(), + failDeferred = jQuery._Deferred(), + promise; + // Add errorDeferred methods, then and promise + jQuery.extend( deferred, { + then: function( doneCallbacks, failCallbacks ) { + deferred.done( doneCallbacks ).fail( failCallbacks ); + return this; + }, + always: function() { + return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); + }, + fail: failDeferred.done, + rejectWith: failDeferred.resolveWith, + reject: failDeferred.resolve, + isRejected: failDeferred.isResolved, + pipe: function( fnDone, fnFail ) { + return jQuery.Deferred(function( newDefer ) { + jQuery.each( { + done: [ fnDone, "resolve" ], + fail: [ fnFail, "reject" ] + }, function( handler, data ) { + var fn = data[ 0 ], + action = data[ 1 ], + returned; + if ( jQuery.isFunction( fn ) ) { + deferred[ handler ](function() { + returned = fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise().then( newDefer.resolve, newDefer.reject ); + } else { + newDefer[ action ]( returned ); + } + }); + } else { + deferred[ handler ]( newDefer[ action ] ); + } + }); + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + if ( obj == null ) { + if ( promise ) { + return promise; + } + promise = obj = {}; + } + var i = promiseMethods.length; + while( i-- ) { + obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; + } + return obj; + } + }); + // Make sure only one callback list will be used + deferred.done( failDeferred.cancel ).fail( deferred.cancel ); + // Unexpose cancel + delete deferred.cancel; + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + return deferred; + }; +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !this.preventDefault ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // timeStamp is buggy for some events on Firefox(#3843) + // So we won't rely on the native value + this.timeStamp = jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; +jQuery._Deferred = function() { + + var // callbacks list + callbacks = [], + // stored [ context , args ] + fired, + // to avoid firing when already doing so + firing, + // flag to know if the deferred has been cancelled + cancelled, + // the deferred itself + deferred = { + + // done( f1, f2, ...) + done: function() { + if ( !cancelled ) { + var args = arguments, + i, + length, + elem, + type, + _fired; + if ( fired ) { + _fired = fired; + fired = 0; + } + for ( i = 0, length = args.length; i < length; i++ ) { + elem = args[ i ]; + type = jQuery.type( elem ); + if ( type === "array" ) { + deferred.done.apply( deferred, elem ); + } else if ( type === "function" ) { + callbacks.push( elem ); + } + } + if ( _fired ) { + deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); + } + } + return this; + }, + + // resolve with given context and args + resolveWith: function( context, args ) { + if ( !cancelled && !fired && !firing ) { + // make sure args are available (#8421) + args = args || []; + firing = 1; + try { + while( callbacks[ 0 ] ) { + callbacks.shift().apply( context, args ); + } + } + finally { + fired = [ context, args ]; + firing = 0; + } + } + return this; + }, + + // resolve with this as context and given arguments + resolve: function() { + deferred.resolveWith( this, arguments ); + return this; + }, + + // Has this deferred been resolved? + isResolved: function() { + return !!( firing || fired ); + }, + + // Cancel + cancel: function() { + cancelled = 1; + callbacks = []; + return this; + } + }; + + return deferred; + }; +jQuery._data = function( elem, name, data ) { + + return jQuery.data( elem, name, data, true ); + }; +jQuery._mark = function( elem, type ) { + + if ( elem ) { + type = (type || "fx") + "mark"; + jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); + } + }; +jQuery._unmark = function( force, elem, type ) { + + if ( force !== true ) { + type = elem; + elem = force; + force = false; + } + if ( elem ) { + type = type || "fx"; + var key = type + "mark", + count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); + if ( count ) { + jQuery.data( elem, key, count, true ); + } else { + jQuery.removeData( elem, key, true ); + handleQueueMarkDefer( elem, type, "mark" ); + } + } + }; +jQuery.acceptData = function( elem ) { + + if ( elem.nodeName ) { + var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; + + if ( match ) { + return !(match === true || elem.getAttribute("classid") !== match); + } + } + + return true; + }; +jQuery.access = function( elems, key, value, exec, fn, pass ) { + + var length = elems.length; + + // Setting many attributes + if ( typeof key === "object" ) { + for ( var k in key ) { + jQuery.access( elems, k, key[k], exec, fn, value ); + } + return elems; + } + + // Setting one attribute + if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = !pass && exec && jQuery.isFunction(value); + + for ( var i = 0; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + + return elems; + } + + // Getting an attribute + return length ? fn( elems[0], key ) : undefined; + }; +jQuery.active = 0; +jQuery.ajax = function( url, options ) { +/// +/// Perform an asynchronous HTTP (Ajax) request. +/// 1 - jQuery.ajax(url, settings) +/// 2 - jQuery.ajax(settings) +/// +/// +/// A string containing the URL to which the request is sent. +/// +/// +/// A set of key/value pairs that configure the Ajax request. All settings are optional. A default can be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings. +/// + + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + // Callbacks context + callbackContext = s.context || s, + // Context for global events + // It's the callbackContext if one was provided in the options + // and if it's a DOM node or a jQuery collection + globalEventContext = callbackContext !== s && + ( callbackContext.nodeType || callbackContext instanceof jQuery ) ? + jQuery( callbackContext ) : jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery._Deferred(), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // ifModified key + ifModifiedKey, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // Response headers + responseHeadersString, + responseHeaders, + // transport + transport, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // The jqXHR state + state = 0, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Fake xhr + jqXHR = { + + readyState: 0, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( !state ) { + var lname = name.toLowerCase(); + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match === undefined ? null : match; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + statusText = statusText || "abort"; + if ( transport ) { + transport.abort( statusText ); + } + done( 0, statusText ); + return this; + } + }; + + // Callback for when everything is done + // It is defined here because jslint complains if it is declared + // at the end of the function (which would be more logical and readable) + function done( status, statusText, responses, headers ) { + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status ? 4 : 0; + + var isSuccess, + success, + error, + response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined, + lastModified, + etag; + + // If successful, handle type chaining + if ( status >= 200 && status < 300 || status === 304 ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + + if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) { + jQuery.lastModified[ ifModifiedKey ] = lastModified; + } + if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) { + jQuery.etag[ ifModifiedKey ] = etag; + } + } + + // If not modified + if ( status === 304 ) { + + statusText = "notmodified"; + isSuccess = true; + + // If we have data + } else { + + try { + success = ajaxConvert( s, response ); + statusText = "success"; + isSuccess = true; + } catch(e) { + // We have a parsererror + statusText = "parsererror"; + error = e; + } + } + } else { + // We extract error from statusText + // then normalize statusText and status for non-aborts + error = statusText; + if( !statusText || status ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = statusText; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ), + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] ); + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + // Attach deferreds + deferred.promise( jqXHR ); + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + jqXHR.complete = completeDeferred.done; + + // Status-dependent callbacks + jqXHR.statusCode = function( map ) { + if ( map ) { + var tmp; + if ( state < 2 ) { + for( tmp in map ) { + statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ]; + } + } else { + tmp = map[ jqXHR.status ]; + jqXHR.then( tmp, tmp ); + } + } + return this; + }; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) + // We also use the url parameter if available + s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax ); + + // Determine if a cross-domain request is in order + if ( s.crossDomain == null ) { + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) ) + ); + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefiler, stop there + if ( state === 2 ) { + return false; + } + + // We can fire global events as of now if asked to + fireGlobals = s.global; + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; + } + + // Get ifModifiedKey before adding the anti-cache parameter + ifModifiedKey = s.url; + + // Add anti-cache in url if needed + if ( s.cache === false ) { + + var ts = jQuery.now(), + // try replacing _= if it is there + ret = s.url.replace( rts, "$1_=" + ts ); + + // if nothing was replaced, add timestamp to the end + s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + ifModifiedKey = ifModifiedKey || s.url; + if ( jQuery.lastModified[ ifModifiedKey ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); + } + if ( jQuery.etag[ ifModifiedKey ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); + } + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + // Abort if not done already + jqXHR.abort(); + return false; + + } + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = setTimeout( function(){ + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch (e) { + // Propagate exception as error if not done + if ( status < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { + jQuery.error( e ); + } + } + } + + return jqXHR; + }; +jQuery.ajaxPrefilter = function( dataTypeExpression, func ) { +/// +/// Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax(). +/// +/// +/// An optional string containing one or more space-separated dataTypes +/// +/// +/// A handler to set default values for future Ajax requests. +/// +/// + + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + if ( jQuery.isFunction( func ) ) { + var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ), + i = 0, + length = dataTypes.length, + dataType, + list, + placeBefore; + + // For each dataType in the dataTypeExpression + for(; i < length; i++ ) { + dataType = dataTypes[ i ]; + // We control if we're asked to add before + // any existing element + placeBefore = /^\+/.test( dataType ); + if ( placeBefore ) { + dataType = dataType.substr( 1 ) || "*"; + } + list = structure[ dataType ] = structure[ dataType ] || []; + // then we add to the structure accordingly + list[ placeBefore ? "unshift" : "push" ]( func ); + } + } + }; +jQuery.ajaxSettings = { "url": 'http://localhost:25813/', +"isLocal": false, +"global": true, +"type": 'GET', +"contentType": 'application/x-www-form-urlencoded', +"processData": true, +"async": true, +"accepts": {}, +"contents": {}, +"responseFields": {}, +"converters": {}, +"jsonp": 'callback' }; +jQuery.ajaxSetup = function ( target, settings ) { +/// +/// Set default values for future Ajax requests. +/// +/// +/// A set of key/value pairs that configure the default Ajax request. All options are optional. +/// + + if ( !settings ) { + // Only one parameter, we extend ajaxSettings + settings = target; + target = jQuery.extend( true, jQuery.ajaxSettings, settings ); + } else { + // target was provided, we extend into it + jQuery.extend( true, target, jQuery.ajaxSettings, settings ); + } + // Flatten fields we don't want deep extended + for( var field in { context: 1, url: 1 } ) { + if ( field in settings ) { + target[ field ] = settings[ field ]; + } else if( field in jQuery.ajaxSettings ) { + target[ field ] = jQuery.ajaxSettings[ field ]; + } + } + return target; + }; +jQuery.ajaxTransport = function( dataTypeExpression, func ) { + + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + if ( jQuery.isFunction( func ) ) { + var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ), + i = 0, + length = dataTypes.length, + dataType, + list, + placeBefore; + + // For each dataType in the dataTypeExpression + for(; i < length; i++ ) { + dataType = dataTypes[ i ]; + // We control if we're asked to add before + // any existing element + placeBefore = /^\+/.test( dataType ); + if ( placeBefore ) { + dataType = dataType.substr( 1 ) || "*"; + } + list = structure[ dataType ] = structure[ dataType ] || []; + // then we add to the structure accordingly + list[ placeBefore ? "unshift" : "push" ]( func ); + } + } + }; +jQuery.attr = function( elem, name, value, pass ) { + + var nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return undefined; + } + + if ( pass && name in jQuery.attrFn ) { + return jQuery( elem )[ name ]( value ); + } + + // Fallback to prop when attributes are not supported + if ( !("getAttribute" in elem) ) { + return jQuery.prop( elem, name, value ); + } + + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // Normalize the name if needed + name = notxml && jQuery.attrFix[ name ] || name; + + hooks = jQuery.attrHooks[ name ]; + + if ( !hooks ) { + // Use boolHook for boolean attributes + if ( rboolean.test( name ) && + (typeof value === "boolean" || value === undefined || value.toLowerCase() === name.toLowerCase()) ) { + + hooks = boolHook; + + // Use formHook for forms and if the name contains certain characters + } else if ( formHook && (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { + hooks = formHook; + } + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return undefined; + + } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, "" + value ); + return value; + } + + } else if ( hooks && "get" in hooks && notxml ) { + return hooks.get( elem, name ); + + } else { + + ret = elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return ret === null ? + undefined : + ret; + } + }; +jQuery.attrFix = { "tabindex": 'tabIndex' }; +jQuery.attrFn = { "val": true, +"css": true, +"html": true, +"text": true, +"data": true, +"width": true, +"height": true, +"offset": true, +"blur": true, +"focus": true, +"focusin": true, +"focusout": true, +"load": true, +"resize": true, +"scroll": true, +"unload": true, +"click": true, +"dblclick": true, +"mousedown": true, +"mouseup": true, +"mousemove": true, +"mouseover": true, +"mouseout": true, +"mouseenter": true, +"mouseleave": true, +"change": true, +"select": true, +"submit": true, +"keydown": true, +"keypress": true, +"keyup": true, +"error": true }; +jQuery.attrHooks = { "type": {}, +"tabIndex": {}, +"value": {} }; +jQuery.bindReady = function() { + + if ( readyList ) { + return; + } + + readyList = jQuery._Deferred(); + + // Catch cases where $(document).ready() is called after the + // browser event has already occurred. + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + return setTimeout( jQuery.ready, 1 ); + } + + // Mozilla, Opera and webkit nightlies currently support this event + if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else if ( document.attachEvent ) { + // ensure firing before onload, + // maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", DOMContentLoaded ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var toplevel = false; + + try { + toplevel = window.frameElement == null; + } catch(e) {} + + if ( document.documentElement.doScroll && toplevel ) { + doScrollCheck(); + } + } + }; +jQuery.boxModel = true; +jQuery.browser = { "msie": true, +"version": '9.0' }; +jQuery.buildFragment = function( args, nodes, scripts ) { + + var fragment, cacheable, cacheresults, + doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document); + + // Only cache "small" (1/2 KB) HTML strings that are associated with the main document + // Cloning options loses the selected state, so don't cache them + // IE 6 doesn't like it when you put or elements in a fragment + // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache + if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document && + args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) { + + cacheable = true; + + cacheresults = jQuery.fragments[ args[0] ]; + if ( cacheresults && cacheresults !== 1 ) { + fragment = cacheresults; + } + } + + if ( !fragment ) { + fragment = doc.createDocumentFragment(); + jQuery.clean( args, doc, fragment, scripts ); + } + + if ( cacheable ) { + jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1; + } + + return { fragment: fragment, cacheable: cacheable }; +}; +jQuery.cache = {}; +jQuery.camelCase = function( string ) { + + return string.replace( rdashAlpha, fcamelCase ); + }; +jQuery.clean = function( elems, context, fragment, scripts ) { + + var checkScriptType; + + context = context || document; + + // !context.createElement fails in IE with an error but returns typeof 'object' + if ( typeof context.createElement === "undefined" ) { + context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + } + + var ret = [], j; + + for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + if ( typeof elem === "number" ) { + elem += ""; + } + + if ( !elem ) { + continue; + } + + // Convert html string into DOM nodes + if ( typeof elem === "string" ) { + if ( !rhtml.test( elem ) ) { + elem = context.createTextNode( elem ); + } else { + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(rxhtmlTag, "<$1>"); + + // Trim whitespace, otherwise indexOf won't work as expected + var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), + wrap = wrapMap[ tag ] || wrapMap._default, + depth = wrap[0], + div = context.createElement("div"); + + // Go to html and back, then peel off extra wrappers + div.innerHTML = wrap[1] + elem + wrap[2]; + + // Move to the right depth + while ( depth-- ) { + div = div.lastChild; + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + var hasBody = rtbody.test(elem), + tbody = tag === "table" && !hasBody ? + div.firstChild && div.firstChild.childNodes : + + // String was a bare or + wrap[1] === "
" && !hasBody ? + div.childNodes : + []; + + for ( j = tbody.length - 1; j >= 0 ; --j ) { + if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { + tbody[ j ].parentNode.removeChild( tbody[ j ] ); + } + } + } + + // IE completely kills leading whitespace when innerHTML is used + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + } + + elem = div.childNodes; + } + } + + // Resets defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + var len; + if ( !jQuery.support.appendChecked ) { + if ( elem[0] && typeof (len = elem.length) === "number" ) { + for ( j = 0; j < len; j++ ) { + findInputs( elem[j] ); + } + } else { + findInputs( elem ); + } + } + + if ( elem.nodeType ) { + ret.push( elem ); + } else { + ret = jQuery.merge( ret, elem ); + } + } + + if ( fragment ) { + checkScriptType = function( elem ) { + return !elem.type || rscriptType.test( elem.type ); + }; + for ( i = 0; ret[i]; i++ ) { + if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { + scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); + + } else { + if ( ret[i].nodeType === 1 ) { + var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType ); + + ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); + } + fragment.appendChild( ret[i] ); + } + } + } + + return ret; + }; +jQuery.cleanData = function( elems ) { + + var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special, + deleteExpando = jQuery.support.deleteExpando; + + for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { + continue; + } + + id = elem[ jQuery.expando ]; + + if ( id ) { + data = cache[ id ] && cache[ id ][ internalKey ]; + + if ( data && data.events ) { + for ( var type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + + // Null the DOM reference to avoid IE6/7/8 leak (#7054) + if ( data.handle ) { + data.handle.elem = null; + } + } + + if ( deleteExpando ) { + delete elem[ jQuery.expando ]; + + } else if ( elem.removeAttribute ) { + elem.removeAttribute( jQuery.expando ); + } + + delete cache[ id ]; + } + } + }; +jQuery.clone = function( elem, dataAndEvents, deepDataAndEvents ) { + + var clone = elem.cloneNode(true), + srcElements, + destElements, + i; + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + // IE copies events bound via attachEvent when using cloneNode. + // Calling detachEvent on the clone will also remove the events + // from the original. In order to get around this, we use some + // proprietary methods to clear the events. Thanks to MooTools + // guys for this hotness. + + cloneFixAttributes( elem, clone ); + + // Using Sizzle here is crazy slow, so we use getElementsByTagName + // instead + srcElements = getAll( elem ); + destElements = getAll( clone ); + + // Weird iteration because IE will replace the length property + // with an element if you are cloning the body and one of the + // elements on the page has a name or id of "length" + for ( i = 0; srcElements[i]; ++i ) { + cloneFixAttributes( srcElements[i], destElements[i] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + cloneCopyEvent( elem, clone ); + + if ( deepDataAndEvents ) { + srcElements = getAll( elem ); + destElements = getAll( clone ); + + for ( i = 0; srcElements[i]; ++i ) { + cloneCopyEvent( srcElements[i], destElements[i] ); + } + } + } + + // Return the cloned set + return clone; + }; +jQuery.contains = function( a, b ) { +/// +/// Check to see if a DOM node is within another DOM node. +/// +/// +/// The DOM element that may contain the other element. +/// +/// +/// The DOM node that may be contained by the other element. +/// +/// + + return a !== b && (a.contains ? a.contains(b) : true); + }; +jQuery.css = function( elem, name, extra ) { + + var ret, hooks; + + // Make sure that we're working with the right name + name = jQuery.camelCase( name ); + hooks = jQuery.cssHooks[ name ]; + name = jQuery.cssProps[ name ] || name; + + // cssFloat needs a special treatment + if ( name === "cssFloat" ) { + name = "float"; + } + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { + return ret; + + // Otherwise, if a way to get the computed value exists, use that + } else if ( curCSS ) { + return curCSS( elem, name ); + } + }; +jQuery.cssHooks = { "opacity": {}, +"height": {}, +"width": {} }; +jQuery.cssNumber = { "zIndex": true, +"fontWeight": true, +"opacity": true, +"zoom": true, +"lineHeight": true, +"widows": true, +"orphans": true }; +jQuery.cssProps = { "float": 'cssFloat' }; +jQuery.curCSS = function( elem, name, extra ) { + + var ret, hooks; + + // Make sure that we're working with the right name + name = jQuery.camelCase( name ); + hooks = jQuery.cssHooks[ name ]; + name = jQuery.cssProps[ name ] || name; + + // cssFloat needs a special treatment + if ( name === "cssFloat" ) { + name = "float"; + } + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { + return ret; + + // Otherwise, if a way to get the computed value exists, use that + } else if ( curCSS ) { + return curCSS( elem, name ); + } + }; +jQuery.data = function( elem, name, data, pvt /* Internal Use Only */ ) { +/// +/// 1: Store arbitrary data associated with the specified element. Returns the value that was set. +/// 1.1 - jQuery.data(element, key, value) +/// 2: Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element. +/// 2.1 - jQuery.data(element, key) +/// 2.2 - jQuery.data(element) +/// +/// +/// The DOM element to associate with the data. +/// +/// +/// A string naming the piece of data to set. +/// +/// +/// The new data value. +/// +/// + + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ jQuery.expando ] = id = ++jQuery.uuid; + } else { + id = jQuery.expando; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); + } else { + cache[ id ] = jQuery.extend(cache[ id ], name); + } + } + + thisCache = cache[ id ]; + + // Internal jQuery data is stored in a separate object inside the object's data + // cache in order to avoid key collisions between internal data and user-defined + // data + if ( pvt ) { + if ( !thisCache[ internalKey ] ) { + thisCache[ internalKey ] = {}; + } + + thisCache = thisCache[ internalKey ]; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should + // not attempt to inspect the internal events object using jQuery.data, as this + // internal data object is undocumented and subject to change. + if ( name === "events" && !thisCache[name] ) { + return thisCache[ internalKey ] && thisCache[ internalKey ].events; + } + + return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache; + }; +jQuery.dequeue = function( elem, type ) { +/// +/// Execute the next function on the queue for the matched element. +/// +/// +/// A DOM element from which to remove and execute a queued function. +/// +/// +/// A string containing the name of the queue. Defaults to fx, the standard effects queue. +/// +/// + + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + fn = queue.shift(), + defer; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } + + if ( fn ) { + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift("inprogress"); + } + + fn.call(elem, function() { + jQuery.dequeue(elem, type); + }); + } + + if ( !queue.length ) { + jQuery.removeData( elem, type + "queue", true ); + handleQueueMarkDefer( elem, type, "queue" ); + } + }; +jQuery.dir = function( elem, dir, until ) { + + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }; +jQuery.each = function( object, callback, args ) { +/// +/// A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. +/// +/// +/// The object or array to iterate over. +/// +/// +/// The function that will be executed on every object. +/// +/// + + var name, i = 0, + length = object.length, + isObj = length === undefined || jQuery.isFunction( object ); + + if ( args ) { + if ( isObj ) { + for ( name in object ) { + if ( callback.apply( object[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( object[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in object ) { + if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { + break; + } + } + } + } + + return object; + }; +jQuery.easing = {}; +jQuery.error = function( msg ) { +/// +/// Takes a string and throws an exception containing it. +/// +/// +/// The message to send out. +/// + + throw msg; + }; +jQuery.etag = {}; +jQuery.event = { "global": {}, +"customEvent": {}, +"props": ['altKey','attrChange','attrName','bubbles','button','cancelable','charCode','clientX','clientY','ctrlKey','currentTarget','data','detail','eventPhase','fromElement','handler','keyCode','layerX','layerY','metaKey','newValue','offsetX','offsetY','pageX','pageY','prevValue','relatedNode','relatedTarget','screenX','screenY','shiftKey','srcElement','target','toElement','view','wheelDelta','which'], +"guid": 100000000, +"special": {}, +"triggered": }; +jQuery.expr = { "order": ['ID','CLASS','NAME','TAG'], +"match": {}, +"leftMatch": {}, +"attrMap": {}, +"attrHandle": {}, +"relative": {}, +"find": {}, +"preFilter": {}, +"filters": {}, +"setFilters": {}, +"filter": {}, +":": {} }; +jQuery.extend = function() { +/// +/// Merge the contents of two or more objects together into the first object. +/// 1 - jQuery.extend(target, object1, objectN) +/// 2 - jQuery.extend(deep, target, object1, objectN) +/// +/// +/// If true, the merge becomes recursive (aka. deep copy). +/// +/// +/// The object to extend. It will receive the new properties. +/// +/// +/// An object containing additional properties to merge in. +/// +/// +/// Additional objects containing properties to merge in. +/// +/// + + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; +jQuery.filter = function( expr, elems, not ) { + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }; +jQuery.find = function( query, context, extra, seed ) { + + context = context || document; + + // Only use querySelectorAll on non-XML documents + // (ID selectors don't work in non-HTML documents) + if ( !seed && !Sizzle.isXML(context) ) { + // See if we find a selector to speed up + var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); + + if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { + // Speed-up: Sizzle("TAG") + if ( match[1] ) { + return makeArray( context.getElementsByTagName( query ), extra ); + + // Speed-up: Sizzle(".CLASS") + } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { + return makeArray( context.getElementsByClassName( match[2] ), extra ); + } + } + + if ( context.nodeType === 9 ) { + // Speed-up: Sizzle("body") + // The body element only exists once, optimize finding it + if ( query === "body" && context.body ) { + return makeArray( [ context.body ], extra ); + + // Speed-up: Sizzle("#ID") + } else if ( match && match[3] ) { + var elem = context.getElementById( match[3] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id === match[3] ) { + return makeArray( [ elem ], extra ); + } + + } else { + return makeArray( [], extra ); + } + } + + try { + return makeArray( context.querySelectorAll(query), extra ); + } catch(qsaError) {} + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + var oldContext = context, + old = context.getAttribute( "id" ), + nid = old || id, + hasParent = context.parentNode, + relativeHierarchySelector = /^\s*[+~]/.test( query ); + + if ( !old ) { + context.setAttribute( "id", nid ); + } else { + nid = nid.replace( /'/g, "\\$&" ); + } + if ( relativeHierarchySelector && hasParent ) { + context = context.parentNode; + } + + try { + if ( !relativeHierarchySelector || hasParent ) { + return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); + } + + } catch(pseudoError) { + } finally { + if ( !old ) { + oldContext.removeAttribute( "id" ); + } + } + } + } + + return oldSizzle(query, context, extra, seed); + }; +jQuery.fn = { "selector": '', +"jquery": '1.6.1', +"length": 0 }; +jQuery.fragments = {}; +jQuery.fx = function( elem, options, prop ) { + + this.options = options; + this.elem = elem; + this.prop = prop; + + options.orig = options.orig || {}; + }; +jQuery.get = function( url, data, callback, type ) { +/// +/// Load data from the server using a HTTP GET request. +/// +/// +/// A string containing the URL to which the request is sent. +/// +/// +/// A map or string that is sent to the server with the request. +/// +/// +/// A callback function that is executed if the request succeeds. +/// +/// +/// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). +/// + + // shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + type: method, + url: url, + data: data, + success: callback, + dataType: type + }); + }; +jQuery.getJSON = function( url, data, callback ) { +/// +/// Load JSON-encoded data from the server using a GET HTTP request. +/// +/// +/// A string containing the URL to which the request is sent. +/// +/// +/// A map or string that is sent to the server with the request. +/// +/// +/// A callback function that is executed if the request succeeds. +/// + + return jQuery.get( url, data, callback, "json" ); + }; +jQuery.getScript = function( url, callback ) { +/// +/// Load a JavaScript file from the server using a GET HTTP request, then execute it. +/// +/// +/// A string containing the URL to which the request is sent. +/// +/// +/// A callback function that is executed if the request succeeds. +/// +/// + + return jQuery.get( url, undefined, callback, "script" ); + }; +jQuery.globalEval = function( data ) { +/// +/// Execute some JavaScript code globally. +/// +/// +/// The JavaScript code to execute. +/// + + if ( data && rnotwhite.test( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }; +jQuery.grep = function( elems, callback, inv ) { +/// +/// Finds the elements of an array which satisfy a filter function. The original array is not affected. +/// +/// +/// The array to search through. +/// +/// +/// The function to process each item against. The first argument to the function is the item, and the second argument is the index. The function should return a Boolean value. this will be the global window object. +/// +/// +/// If "invert" is false, or not provided, then the function returns an array consisting of all elements for which "callback" returns true. If "invert" is true, then the function returns an array consisting of all elements for which "callback" returns false. +/// +/// + + var ret = [], retVal; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( var i = 0, length = elems.length; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }; +jQuery.guid = 1; +jQuery.hasData = function( elem ) { +/// +/// Determine whether an element has any jQuery data associated with it. +/// +/// +/// A DOM element to be checked for data. +/// +/// + + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + + return !!elem && !isEmptyDataObject( elem ); + }; +jQuery.holdReady = function( hold ) { +/// +/// Holds or releases the execution of jQuery's ready event. +/// +/// +/// Indicates whether the ready hold is being requested or released +/// +/// + + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }; +jQuery.inArray = function( elem, array ) { +/// +/// Search for a specified value within an array and return its index (or -1 if not found). +/// +/// +/// The value to search for. +/// +/// +/// An array through which to search. +/// +/// + + + if ( indexOf ) { + return indexOf.call( array, elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; + }; +jQuery.isEmptyObject = function( obj ) { +/// +/// Check to see if an object is empty (contains no properties). +/// +/// +/// The object that will be checked to see if it's empty. +/// +/// + + for ( var name in obj ) { + return false; + } + return true; + }; +jQuery.isFunction = function( obj ) { +/// +/// Determine if the argument passed is a Javascript function object. +/// +/// +/// Object to test whether or not it is a function. +/// +/// + + return jQuery.type(obj) === "function"; + }; +jQuery.isNaN = function( obj ) { + + return obj == null || !rdigit.test( obj ) || isNaN( obj ); + }; +jQuery.isPlainObject = function( obj ) { +/// +/// Check to see if an object is a plain object (created using "{}" or "new Object"). +/// +/// +/// The object that will be checked to see if it's a plain object. +/// +/// + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || hasOwn.call( obj, key ); + }; +jQuery.isReady = true; +jQuery.isWindow = function( obj ) { +/// +/// Determine whether the argument is a window. +/// +/// +/// Object to test whether or not it is a window. +/// +/// + + return obj && typeof obj === "object" && "setInterval" in obj; + }; +jQuery.isXMLDoc = function( elem ) { +/// +/// Check to see if a DOM node is within an XML document (or is an XML document). +/// +/// +/// The DOM node that will be checked to see if it's in an XML document. +/// +/// + + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; +jQuery.lastModified = {}; +jQuery.makeArray = function( array, results ) { +/// +/// Convert an array-like object into a true JavaScript array. +/// +/// +/// Any object to turn into a native Array. +/// +/// + + var ret = results || []; + + if ( array != null ) { + // The window, strings (and functions) also have 'length' + // The extra typeof function check is to prevent crashes + // in Safari 2 (See: #3039) + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + var type = jQuery.type( array ); + + if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { + push.call( ret, array ); + } else { + jQuery.merge( ret, array ); + } + } + + return ret; + }; +jQuery.map = function( elems, callback, arg ) { +/// +/// Translate all items in an array or object to new array of items. +/// 1 - jQuery.map(array, callback(elementOfArray, indexInArray)) +/// 2 - jQuery.map(arrayOrObject, callback( value, indexOrKey )) +/// +/// +/// The Array to translate. +/// +/// +/// The function to process each item against. The first argument to the function is the array item, the second argument is the index in array The function can return any value. Within the function, this refers to the global (window) object. +/// +/// + + var value, key, ret = [], + i = 0, + length = elems.length, + // jquery objects are treated as arrays + isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( key in elems ) { + value = callback( elems[ key ], key, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }; +jQuery.merge = function( first, second ) { +/// +/// Merge the contents of two arrays together into the first array. +/// +/// +/// The first array to merge, the elements of second added. +/// +/// +/// The second array to merge into the first, unaltered. +/// +/// + + var i = first.length, + j = 0; + + if ( typeof second.length === "number" ) { + for ( var l = second.length; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }; +jQuery.noConflict = function( deep ) { +/// +/// Relinquish jQuery's control of the $ variable. +/// +/// +/// A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself). +/// +/// + + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }; +jQuery.noData = { "embed": true, +"object": 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000', +"applet": true }; +jQuery.nodeName = function( elem, name ) { + + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }; +jQuery.noop = function() { +/// +/// An empty function. +/// +/// +}; +jQuery.now = function() { +/// +/// Return a number representing the current time. +/// +/// + + return (new Date()).getTime(); + }; +jQuery.nth = function( cur, result, dir, elem ) { + + result = result || 1; + var num = 0; + + for ( ; cur; cur = cur[dir] ) { + if ( cur.nodeType === 1 && ++num === result ) { + break; + } + } + + return cur; + }; +jQuery.offset = {}; +jQuery.param = function( a, traditional ) { +/// +/// Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. +/// 1 - jQuery.param(obj) +/// 2 - jQuery.param(obj, traditional) +/// +/// +/// An array or object to serialize. +/// +/// +/// A Boolean indicating whether to perform a traditional "shallow" serialization. +/// +/// + + var s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : value; + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( var prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); + }; +jQuery.parseJSON = function( data ) { +/// +/// Takes a well-formed JSON string and returns the resulting JavaScript object. +/// +/// +/// The JSON string to parse. +/// +/// + + if ( typeof data !== "string" || !data ) { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return (new Function( "return " + data ))(); + + } + jQuery.error( "Invalid JSON: " + data ); + }; +jQuery.parseXML = function( data , xml , tmp ) { +/// +/// Parses a string into an XML document. +/// +/// +/// a well-formed XML string to be parsed +/// +/// + + + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + + tmp = xml.documentElement; + + if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { + jQuery.error( "Invalid XML: " + data ); + } + + return xml; + }; +jQuery.post = function( url, data, callback, type ) { +/// +/// Load data from the server using a HTTP POST request. +/// +/// +/// A string containing the URL to which the request is sent. +/// +/// +/// A map or string that is sent to the server with the request. +/// +/// +/// A callback function that is executed if the request succeeds. +/// +/// +/// The type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). +/// + + // shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + type: method, + url: url, + data: data, + success: callback, + dataType: type + }); + }; +jQuery.prop = function( elem, name, value ) { + + var nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return undefined; + } + + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // Try to normalize/fix the name + name = notxml && jQuery.propFix[ name ] || name; + + hooks = jQuery.propHooks[ name ]; + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return (elem[ name ] = value); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { + return ret; + + } else { + return elem[ name ]; + } + } + }; +jQuery.propFix = { "tabindex": 'tabIndex', +"readonly": 'readOnly', +"for": 'htmlFor', +"class": 'className', +"maxlength": 'maxLength', +"cellspacing": 'cellSpacing', +"cellpadding": 'cellPadding', +"rowspan": 'rowSpan', +"colspan": 'colSpan', +"usemap": 'useMap', +"frameborder": 'frameBorder', +"contenteditable": 'contentEditable' }; +jQuery.propHooks = { "selected": {} }; +jQuery.proxy = function( fn, context ) { +/// +/// Takes a function and returns a new one that will always have a particular context. +/// 1 - jQuery.proxy(function, context) +/// 2 - jQuery.proxy(context, name) +/// +/// +/// The function whose context will be changed. +/// +/// +/// The object to which the context (this) of the function should be set. +/// +/// + + if ( typeof context === "string" ) { + var tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + var args = slice.call( arguments, 2 ), + proxy = function() { + return fn.apply( context, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + + return proxy; + }; +jQuery.queue = function( elem, type, data ) { +/// +/// 1: Show the queue of functions to be executed on the matched element. +/// 1.1 - jQuery.queue(element, queueName) +/// 2: Manipulate the queue of functions to be executed on the matched element. +/// 2.1 - jQuery.queue(element, queueName, newQueue) +/// 2.2 - jQuery.queue(element, queueName, callback()) +/// +/// +/// A DOM element where the array of queued functions is attached. +/// +/// +/// A string containing the name of the queue. Defaults to fx, the standard effects queue. +/// +/// +/// An array of functions to replace the current queue contents. +/// +/// + + if ( elem ) { + type = (type || "fx") + "queue"; + var q = jQuery.data( elem, type, undefined, true ); + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !q || jQuery.isArray(data) ) { + q = jQuery.data( elem, type, jQuery.makeArray(data), true ); + } else { + q.push( data ); + } + } + return q || []; + } + }; +jQuery.ready = function( wait ) { + + // Either a released hold or an DOMready/load event and not yet ready + if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger( "ready" ).unbind( "ready" ); + } + } + }; +jQuery.readyWait = 0; +jQuery.removeAttr = function( elem, name ) { + + var propName; + if ( elem.nodeType === 1 ) { + name = jQuery.attrFix[ name ] || name; + + if ( jQuery.support.getSetAttribute ) { + // Use removeAttribute in browsers that support it + elem.removeAttribute( name ); + } else { + jQuery.attr( elem, name, "" ); + elem.removeAttributeNode( elem.getAttributeNode( name ) ); + } + + // Set corresponding property to false for boolean attributes + if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { + elem[ propName ] = false; + } + } + }; +jQuery.removeData = function( elem, name, pvt /* Internal Use Only */ ) { +/// +/// Remove a previously-stored piece of data. +/// +/// +/// A DOM element from which to remove data. +/// +/// +/// A string naming the piece of data to remove. +/// +/// + + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + + // See jQuery.data for more information + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; + + if ( thisCache ) { + delete thisCache[ name ]; + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !isEmptyDataObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( pvt ) { + delete cache[ id ][ internalKey ]; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject(cache[ id ]) ) { + return; + } + } + + var internalCache = cache[ id ][ internalKey ]; + + // Browsers that fail expando deletion also refuse to delete expandos on + // the window, but it will allow it on all other JS objects; other browsers + // don't care + if ( jQuery.support.deleteExpando || cache != window ) { + delete cache[ id ]; + } else { + cache[ id ] = null; + } + + // We destroyed the entire user cache at once because it's faster than + // iterating through each key, but we need to continue to persist internal + // data if it existed + if ( internalCache ) { + cache[ id ] = {}; + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + + cache[ id ][ internalKey ] = internalCache; + + // Otherwise, we need to eliminate the expando on the node to avoid + // false lookups in the cache for entries that no longer exist + } else if ( isNode ) { + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( jQuery.support.deleteExpando ) { + delete elem[ jQuery.expando ]; + } else if ( elem.removeAttribute ) { + elem.removeAttribute( jQuery.expando ); + } else { + elem[ jQuery.expando ] = null; + } + } + }; +jQuery.removeEvent = function( elem, type, handle ) { + + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + }; +jQuery.sibling = function( n, elem ) { + + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + }; +jQuery.speed = function( speed, easing, fn ) { + + var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction(easing) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default; + + // Queueing + opt.old = opt.complete; + opt.complete = function( noUnmark ) { + if ( opt.queue !== false ) { + jQuery.dequeue( this ); + } else if ( noUnmark !== false ) { + jQuery._unmark( this ); + } + + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + }; + + return opt; + }; +jQuery.style = function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, origName = jQuery.camelCase( name ), + style = elem.style, hooks = jQuery.cssHooks[ origName ]; + + name = jQuery.cssProps[ origName ] || origName; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Make sure that NaN and null values aren't set. See: #7116 + if ( type === "number" && isNaN( value ) || value == null ) { + return; + } + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && rrelNum.test( value ) ) { + value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) ); + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) { + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }; +jQuery.sub = function() { +/// +/// Creates a new copy of jQuery whose properties and methods can be modified without affecting the original jQuery object. +/// +/// + + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); + }; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; + }; +jQuery.support = { "leadingWhitespace": true, +"tbody": true, +"htmlSerialize": true, +"style": true, +"hrefNormalized": true, +"opacity": true, +"cssFloat": true, +"checkOn": true, +"optSelected": false, +"getSetAttribute": true, +"submitBubbles": true, +"changeBubbles": true, +"focusinBubbles": true, +"deleteExpando": true, +"noCloneEvent": true, +"inlineBlockNeedsLayout": false, +"shrinkWrapBlocks": false, +"reliableMarginRight": true, +"noCloneChecked": false, +"optDisabled": true, +"radioValue": false, +"checkClone": , +"appendChecked": true, +"boxModel": true, +"reliableHiddenOffsets": true, +"ajax": true, +"cors": false }; +jQuery.swap = function( elem, options, callback ) { + + var old = {}; + + // Remember the old values, and insert the new ones + for ( var name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + }; +jQuery.text = function( elems ) { + + var ret = "", elem; + + for ( var i = 0; elems[i]; i++ ) { + elem = elems[i]; + + // Get the text from text nodes and CDATA nodes + if ( elem.nodeType === 3 || elem.nodeType === 4 ) { + ret += elem.nodeValue; + + // Traverse everything else, except comment nodes + } else if ( elem.nodeType !== 8 ) { + ret += Sizzle.getText( elem.childNodes ); + } + } + + return ret; +}; +jQuery.trim = function( text ) { +/// +/// Remove the whitespace from the beginning and end of a string. +/// +/// +/// The string to trim. +/// +/// + + return text == null ? + "" : + trim.call( text ); + }; +jQuery.type = function( obj ) { +/// +/// Determine the internal JavaScript [[Class]] of an object. +/// +/// +/// Object to get the internal JavaScript [[Class]] of. +/// +/// + + return obj == null ? + String( obj ) : + class2type[ toString.call(obj) ] || "object"; + }; +jQuery.uaMatch = function( ua ) { + + ua = ua.toLowerCase(); + + var match = rwebkit.exec( ua ) || + ropera.exec( ua ) || + rmsie.exec( ua ) || + ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || + []; + + return { browser: match[1] || "", version: match[2] || "0" }; + }; +jQuery.unique = function( results ) { +/// +/// Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers. +/// +/// +/// The Array of DOM elements. +/// +/// + + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( var i = 1; i < results.length; i++ ) { + if ( results[i] === results[ i - 1 ] ) { + results.splice( i--, 1 ); + } + } + } + } + + return results; +}; +jQuery.uuid = 0; +jQuery.valHooks = { "option": {}, +"select": {}, +"radio": {}, +"checkbox": {} }; +jQuery.when = function( firstParam ) { +/// +/// Provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events. +/// +/// +/// One or more Deferred objects, or plain JavaScript objects. +/// +/// + + var args = arguments, + i = 0, + length = args.length, + count = length, + deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? + firstParam : + jQuery.Deferred(); + function resolveFunc( i ) { + return function( value ) { + args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; + if ( !( --count ) ) { + // Strange bug in FF4: + // Values changed onto the arguments object sometimes end up as undefined values + // outside the $.when method. Cloning the object into a fresh array solves the issue + deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) ); + } + }; + } + if ( length > 1 ) { + for( ; i < length; i++ ) { + if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) { + args[ i ].promise().then( resolveFunc(i), deferred.reject ); + } else { + --count; + } + } + if ( !count ) { + deferred.resolveWith( deferred, args ); + } + } else if ( deferred !== firstParam ) { + deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); + } + return deferred.promise(); + }; +jQuery.Event.prototype.isDefaultPrevented = function returnFalse() { +/// +/// Returns whether event.preventDefault() was ever called on this event object. +/// +/// + + return false; +}; +jQuery.Event.prototype.isImmediatePropagationStopped = function returnFalse() { +/// +/// Returns whether event.stopImmediatePropagation() was ever called on this event object. +/// +/// + + return false; +}; +jQuery.Event.prototype.isPropagationStopped = function returnFalse() { +/// +/// Returns whether event.stopPropagation() was ever called on this event object. +/// +/// + + return false; +}; +jQuery.Event.prototype.preventDefault = function() { +/// +/// If this method is called, the default action of the event will not be triggered. +/// +/// + + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }; +jQuery.Event.prototype.stopImmediatePropagation = function() { +/// +/// Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. +/// + + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }; +jQuery.Event.prototype.stopPropagation = function() { +/// +/// Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. +/// + + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }; +jQuery.prototype._toggle = function( fn ) { + + // Save reference to arguments for access in closure + var args = arguments, + guid = fn.guid || jQuery.guid++, + i = 0, + toggler = function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + }; + + // link all the functions, so any of them can unbind this click handler + toggler.guid = guid; + while ( i < args.length ) { + args[ i++ ].guid = guid; + } + + return this.click( toggler ); + }; +jQuery.prototype.add = function( selector, context ) { +/// +/// Add elements to the set of matched elements. +/// 1 - add(selector) +/// 2 - add(elements) +/// 3 - add(html) +/// 4 - add(selector, context) +/// +/// +/// A string representing a selector expression to find additional elements to add to the set of matched elements. +/// +/// +/// The point in the document at which the selector should begin matching; similar to the context argument of the $(selector, context) method. +/// +/// + + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }; +jQuery.prototype.addClass = function( value ) { +/// +/// Adds the specified class(es) to each of the set of matched elements. +/// 1 - addClass(className) +/// 2 - addClass(function(index, currentClass)) +/// +/// +/// One or more class names to be added to the class attribute of each matched element. +/// +/// + + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this); + self.addClass( value.call(this, i, self.attr("class") || "") ); + }); + } + + if ( value && typeof value === "string" ) { + var classNames = (value || "").split( rspace ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className ) { + elem.className = value; + + } else { + var className = " " + elem.className + " ", + setClass = elem.className; + + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { + setClass += " " + classNames[c]; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }; +jQuery.prototype.after = function() { +/// +/// Insert content, specified by the parameter, after each element in the set of matched elements. +/// 1 - after(content, content) +/// 2 - after(function(index)) +/// +/// +/// HTML string, DOM element, or jQuery object to insert after each element in the set of matched elements. +/// +/// +/// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert after each element in the set of matched elements. +/// +/// + + if ( this[0] && this[0].parentNode ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + } else if ( arguments.length ) { + var set = this.pushStack( this, "after", arguments ); + set.push.apply( set, jQuery(arguments[0]).toArray() ); + return set; + } + }; +jQuery.prototype.ajaxComplete = function( f ){ +/// +/// Register a handler to be called when Ajax requests complete. This is an Ajax Event. +/// +/// +/// The function to be invoked. +/// +/// + + return this.bind( o, f ); + }; +jQuery.prototype.ajaxError = function( f ){ +/// +/// Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event. +/// +/// +/// The function to be invoked. +/// +/// + + return this.bind( o, f ); + }; +jQuery.prototype.ajaxSend = function( f ){ +/// +/// Attach a function to be executed before an Ajax request is sent. This is an Ajax Event. +/// +/// +/// The function to be invoked. +/// +/// + + return this.bind( o, f ); + }; +jQuery.prototype.ajaxStart = function( f ){ +/// +/// Register a handler to be called when the first Ajax request begins. This is an Ajax Event. +/// +/// +/// The function to be invoked. +/// +/// + + return this.bind( o, f ); + }; +jQuery.prototype.ajaxStop = function( f ){ +/// +/// Register a handler to be called when all Ajax requests have completed. This is an Ajax Event. +/// +/// +/// The function to be invoked. +/// +/// + + return this.bind( o, f ); + }; +jQuery.prototype.ajaxSuccess = function( f ){ +/// +/// Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event. +/// +/// +/// The function to be invoked. +/// +/// + + return this.bind( o, f ); + }; +jQuery.prototype.andSelf = function() { +/// +/// Add the previous set of elements on the stack to the current set. +/// +/// + + return this.add( this.prevObject ); + }; +jQuery.prototype.animate = function( prop, speed, easing, callback ) { +/// +/// Perform a custom animation of a set of CSS properties. +/// 1 - animate(properties, duration, easing, complete) +/// 2 - animate(properties, options) +/// +/// +/// A map of CSS properties that the animation will move toward. +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + var optall = jQuery.speed(speed, easing, callback); + + if ( jQuery.isEmptyObject( prop ) ) { + return this.each( optall.complete, [ false ] ); + } + + // Do not change referenced properties as per-property easing will be lost + prop = jQuery.extend( {}, prop ); + + return this[ optall.queue === false ? "each" : "queue" ](function() { + // XXX 'this' does not always have a nodeName when running the + // test suite + + if ( optall.queue === false ) { + jQuery._mark( this ); + } + + var opt = jQuery.extend( {}, optall ), + isElement = this.nodeType === 1, + hidden = isElement && jQuery(this).is(":hidden"), + name, val, p, + display, e, + parts, start, end, unit; + + // will store per property easing and be used to determine when an animation is complete + opt.animatedProperties = {}; + + for ( p in prop ) { + + // property name normalization + name = jQuery.camelCase( p ); + if ( p !== name ) { + prop[ name ] = prop[ p ]; + delete prop[ p ]; + } + + val = prop[ name ]; + + // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default) + if ( jQuery.isArray( val ) ) { + opt.animatedProperties[ name ] = val[ 1 ]; + val = prop[ name ] = val[ 0 ]; + } else { + opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing'; + } + + if ( val === "hide" && hidden || val === "show" && !hidden ) { + return opt.complete.call( this ); + } + + if ( isElement && ( name === "height" || name === "width" ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE does not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height + // animated + if ( jQuery.css( this, "display" ) === "inline" && + jQuery.css( this, "float" ) === "none" ) { + if ( !jQuery.support.inlineBlockNeedsLayout ) { + this.style.display = "inline-block"; + + } else { + display = defaultDisplay( this.nodeName ); + + // inline-level elements accept inline-block; + // block-level elements need to be inline with layout + if ( display === "inline" ) { + this.style.display = "inline-block"; + + } else { + this.style.display = "inline"; + this.style.zoom = 1; + } + } + } + } + } + + if ( opt.overflow != null ) { + this.style.overflow = "hidden"; + } + + for ( p in prop ) { + e = new jQuery.fx( this, opt, p ); + val = prop[ p ]; + + if ( rfxtypes.test(val) ) { + e[ val === "toggle" ? hidden ? "show" : "hide" : val ](); + + } else { + parts = rfxnum.exec( val ); + start = e.cur(); + + if ( parts ) { + end = parseFloat( parts[2] ); + unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" ); + + // We need to compute starting value + if ( unit !== "px" ) { + jQuery.style( this, p, (end || 1) + unit); + start = ((end || 1) / e.cur()) * start; + jQuery.style( this, p, start + unit); + } + + // If a +=/-= token was provided, we're doing a relative animation + if ( parts[1] ) { + end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start; + } + + e.custom( start, end, unit ); + + } else { + e.custom( start, val, "" ); + } + } + } + + // For JS strict compliance + return true; + }); + }; +jQuery.prototype.append = function() { +/// +/// Insert content, specified by the parameter, to the end of each element in the set of matched elements. +/// 1 - append(content, content) +/// 2 - append(function(index, html)) +/// +/// +/// DOM element, HTML string, or jQuery object to insert at the end of each element in the set of matched elements. +/// +/// +/// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the end of each element in the set of matched elements. +/// +/// + + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 ) { + this.appendChild( elem ); + } + }); + }; +jQuery.prototype.appendTo = function( selector ) { +/// +/// Insert every element in the set of matched elements to the end of the target. +/// +/// +/// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the end of the element(s) specified by this parameter. +/// +/// + + var ret = [], + insert = jQuery( selector ), + parent = this.length === 1 && this[0].parentNode; + + if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { + insert[ original ]( this[0] ); + return this; + + } else { + for ( var i = 0, l = insert.length; i < l; i++ ) { + var elems = (i > 0 ? this.clone(true) : this).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; +jQuery.prototype.attr = function( name, value ) { +/// +/// 1: Get the value of an attribute for the first element in the set of matched elements. +/// 1.1 - attr(attributeName) +/// 2: Set one or more attributes for the set of matched elements. +/// 2.1 - attr(attributeName, value) +/// 2.2 - attr(map) +/// 2.3 - attr(attributeName, function(index, attr)) +/// +/// +/// The name of the attribute to set. +/// +/// +/// A value to set for the attribute. +/// +/// + + return jQuery.access( this, name, value, true, jQuery.attr ); + }; +jQuery.prototype.before = function() { +/// +/// Insert content, specified by the parameter, before each element in the set of matched elements. +/// 1 - before(content, content) +/// 2 - before(function) +/// +/// +/// HTML string, DOM element, or jQuery object to insert before each element in the set of matched elements. +/// +/// +/// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert before each element in the set of matched elements. +/// +/// + + if ( this[0] && this[0].parentNode ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this ); + }); + } else if ( arguments.length ) { + var set = jQuery(arguments[0]); + set.push.apply( set, this.toArray() ); + return this.pushStack( set, "before", arguments ); + } + }; +jQuery.prototype.bind = function( type, data, fn ) { +/// +/// Attach a handler to an event for the elements. +/// 1 - bind(eventType, eventData, handler(eventObject)) +/// 2 - bind(eventType, eventData, false) +/// 3 - bind(events) +/// +/// +/// A string containing one or more JavaScript event types, such as "click" or "submit," or custom event names. +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + var handler; + + // Handle object literals + if ( typeof type === "object" ) { + for ( var key in type ) { + this[ name ](key, data, type[key], fn); + } + return this; + } + + if ( arguments.length === 2 || data === false ) { + fn = data; + data = undefined; + } + + if ( name === "one" ) { + handler = function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }; + handler.guid = fn.guid || jQuery.guid++; + } else { + handler = fn; + } + + if ( type === "unload" && name !== "one" ) { + this.one( type, data, fn ); + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.add( this[i], type, handler, data ); + } + } + + return this; + }; +jQuery.prototype.blur = function( data, fn ) { +/// +/// Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. +/// 1 - blur(handler(eventObject)) +/// 2 - blur(eventData, handler(eventObject)) +/// 3 - blur() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.change = function( data, fn ) { +/// +/// Bind an event handler to the "change" JavaScript event, or trigger that event on an element. +/// 1 - change(handler(eventObject)) +/// 2 - change(eventData, handler(eventObject)) +/// 3 - change() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.children = function( until, selector ) { +/// +/// Get the children of each element in the set of matched elements, optionally filtered by a selector. +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.clearQueue = function( type ) { +/// +/// Remove from the queue all items that have not yet been run. +/// +/// +/// A string containing the name of the queue. Defaults to fx, the standard effects queue. +/// +/// + + return this.queue( type || "fx", [] ); + }; +jQuery.prototype.click = function( data, fn ) { +/// +/// Bind an event handler to the "click" JavaScript event, or trigger that event on an element. +/// 1 - click(handler(eventObject)) +/// 2 - click(eventData, handler(eventObject)) +/// 3 - click() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.clone = function( dataAndEvents, deepDataAndEvents ) { +/// +/// Create a deep copy of the set of matched elements. +/// 1 - clone(withDataAndEvents) +/// 2 - clone(withDataAndEvents, deepWithDataAndEvents) +/// +/// +/// A Boolean indicating whether event handlers and data should be copied along with the elements. The default value is false. *For 1.5.0 the default value is incorrectly true. This will be changed back to false in 1.5.1 and up. +/// +/// +/// A Boolean indicating whether event handlers and data for all children of the cloned element should be copied. By default its value matches the first argument's value (which defaults to false). +/// +/// + + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }; +jQuery.prototype.closest = function( selectors, context ) { +/// +/// 1: Get the first ancestor element that matches the selector, beginning at the current element and progressing up through the DOM tree. +/// 1.1 - closest(selector) +/// 1.2 - closest(selector, context) +/// 1.3 - closest(jQuery object) +/// 1.4 - closest(element) +/// 2: Gets an array of all the elements and selectors matched against the current element up through the DOM tree. +/// 2.1 - closest(selectors, context) +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// +/// A DOM element within which a matching element may be found. If no context is passed in then the context of the jQuery set will be used instead. +/// +/// + + var ret = [], i, l, cur = this[0]; + + // Array + if ( jQuery.isArray( selectors ) ) { + var match, selector, + matches = {}, + level = 1; + + if ( cur && selectors.length ) { + for ( i = 0, l = selectors.length; i < l; i++ ) { + selector = selectors[i]; + + if ( !matches[ selector ] ) { + matches[ selector ] = POS.test( selector ) ? + jQuery( selector, context || this.context ) : + selector; + } + } + + while ( cur && cur.ownerDocument && cur !== context ) { + for ( selector in matches ) { + match = matches[ selector ]; + + if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { + ret.push({ selector: selector, elem: cur, level: level }); + } + } + + cur = cur.parentNode; + level++; + } + } + + return ret; + } + + // String + var pos = POS.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( i = 0, l = this.length; i < l; i++ ) { + cur = this[i]; + + while ( cur ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + + } else { + cur = cur.parentNode; + if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { + break; + } + } + } + } + + ret = ret.length > 1 ? jQuery.unique( ret ) : ret; + + return this.pushStack( ret, "closest", selectors ); + }; +jQuery.prototype.constructor = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }; +jQuery.prototype.contents = function( until, selector ) { +/// +/// Get the children of each element in the set of matched elements, including text and comment nodes. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.css = function( name, value ) { +/// +/// 1: Get the value of a style property for the first element in the set of matched elements. +/// 1.1 - css(propertyName) +/// 2: Set one or more CSS properties for the set of matched elements. +/// 2.1 - css(propertyName, value) +/// 2.2 - css(propertyName, function(index, value)) +/// 2.3 - css(map) +/// +/// +/// A CSS property name. +/// +/// +/// A value to set for the property. +/// +/// + + // Setting 'undefined' is a no-op + if ( arguments.length === 2 && value === undefined ) { + return this; + } + + return jQuery.access( this, name, value, true, function( elem, name, value ) { + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }); +}; +jQuery.prototype.data = function( key, value ) { +/// +/// 1: Store arbitrary data associated with the matched elements. +/// 1.1 - data(key, value) +/// 1.2 - data(obj) +/// 2: Returns value at named data store for the first element in the jQuery collection, as set by data(name, value). +/// 2.1 - data(key) +/// 2.2 - data() +/// +/// +/// A string naming the piece of data to set. +/// +/// +/// The new data value; it can be any Javascript type including Array or Object. +/// +/// + + var data = null; + + if ( typeof key === "undefined" ) { + if ( this.length ) { + data = jQuery.data( this[0] ); + + if ( this[0].nodeType === 1 ) { + var attr = this[0].attributes, name; + for ( var i = 0, l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.substring(5) ); + + dataAttr( this[0], name, data[ name ] ); + } + } + } + } + + return data; + + } else if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + var parts = key.split("."); + parts[1] = parts[1] ? "." + parts[1] : ""; + + if ( value === undefined ) { + data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + + // Try to fetch any internally stored data first + if ( data === undefined && this.length ) { + data = jQuery.data( this[0], key ); + data = dataAttr( this[0], key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + + } else { + return this.each(function() { + var $this = jQuery( this ), + args = [ parts[0], value ]; + + $this.triggerHandler( "setData" + parts[1] + "!", args ); + jQuery.data( this, key, value ); + $this.triggerHandler( "changeData" + parts[1] + "!", args ); + }); + } + }; +jQuery.prototype.dblclick = function( data, fn ) { +/// +/// Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. +/// 1 - dblclick(handler(eventObject)) +/// 2 - dblclick(eventData, handler(eventObject)) +/// 3 - dblclick() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.delay = function( time, type ) { +/// +/// Set a timer to delay execution of subsequent items in the queue. +/// +/// +/// An integer indicating the number of milliseconds to delay execution of the next item in the queue. +/// +/// +/// A string containing the name of the queue. Defaults to fx, the standard effects queue. +/// +/// + + time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; + type = type || "fx"; + + return this.queue( type, function() { + var elem = this; + setTimeout(function() { + jQuery.dequeue( elem, type ); + }, time ); + }); + }; +jQuery.prototype.delegate = function( selector, types, data, fn ) { +/// +/// Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. +/// 1 - delegate(selector, eventType, handler) +/// 2 - delegate(selector, eventType, eventData, handler) +/// 3 - delegate(selector, events) +/// +/// +/// A selector to filter the elements that trigger the event. +/// +/// +/// A string containing one or more space-separated JavaScript event types, such as "click" or "keydown," or custom event names. +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute at the time the event is triggered. +/// +/// + + return this.live( types, data, fn, selector ); + }; +jQuery.prototype.dequeue = function( type ) { +/// +/// Execute the next function on the queue for the matched elements. +/// +/// +/// A string containing the name of the queue. Defaults to fx, the standard effects queue. +/// +/// + + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }; +jQuery.prototype.detach = function( selector ) { +/// +/// Remove the set of matched elements from the DOM. +/// +/// +/// A selector expression that filters the set of matched elements to be removed. +/// +/// + + return this.remove( selector, true ); + }; +jQuery.prototype.die = function( types, data, fn, origSelector /* Internal Use Only */ ) { +/// +/// 1: Remove all event handlers previously attached using .live() from the elements. +/// 1.1 - die() +/// 2: Remove an event handler previously attached using .live() from the elements. +/// 2.1 - die(eventType, handler) +/// 2.2 - die(eventTypes) +/// +/// +/// A string containing a JavaScript event type, such as click or keydown. +/// +/// +/// The function that is no longer to be executed. +/// +/// + + var type, i = 0, match, namespaces, preType, + selector = origSelector || this.selector, + context = origSelector ? this : jQuery( this.context ); + + if ( typeof types === "object" && !types.preventDefault ) { + for ( var key in types ) { + context[ name ]( key, data, types[key], selector ); + } + + return this; + } + + if ( name === "die" && !types && + origSelector && origSelector.charAt(0) === "." ) { + + context.unbind( origSelector ); + + return this; + } + + if ( data === false || jQuery.isFunction( data ) ) { + fn = data || returnFalse; + data = undefined; + } + + types = (types || "").split(" "); + + while ( (type = types[ i++ ]) != null ) { + match = rnamespaces.exec( type ); + namespaces = ""; + + if ( match ) { + namespaces = match[0]; + type = type.replace( rnamespaces, "" ); + } + + if ( type === "hover" ) { + types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); + continue; + } + + preType = type; + + if ( liveMap[ type ] ) { + types.push( liveMap[ type ] + namespaces ); + type = type + namespaces; + + } else { + type = (liveMap[ type ] || type) + namespaces; + } + + if ( name === "live" ) { + // bind live handler + for ( var j = 0, l = context.length; j < l; j++ ) { + jQuery.event.add( context[j], "live." + liveConvert( type, selector ), + { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); + } + + } else { + // unbind live handler + context.unbind( "live." + liveConvert( type, selector ), fn ); + } + } + + return this; + }; +jQuery.prototype.domManip = function( args, table, callback ) { + + var results, first, fragment, parent, + value = args[0], + scripts = []; + + // We can't cloneNode fragments that contain checked, in WebKit + if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) { + return this.each(function() { + jQuery(this).domManip( args, table, callback, true ); + }); + } + + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + args[0] = value.call(this, i, table ? self.html() : undefined); + self.domManip( args, table, callback ); + }); + } + + if ( this[0] ) { + parent = value && value.parentNode; + + // If we're in a fragment, just use that instead of building a new one + if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) { + results = { fragment: parent }; + + } else { + results = jQuery.buildFragment( args, this, scripts ); + } + + fragment = results.fragment; + + if ( fragment.childNodes.length === 1 ) { + first = fragment = fragment.firstChild; + } else { + first = fragment.firstChild; + } + + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); + + for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) { + callback.call( + table ? + root(this[i], first) : + this[i], + // Make sure that we do not leak memory by inadvertently discarding + // the original fragment (which might have attached data) instead of + // using it; in addition, use the original fragment object for the last + // item instead of first because it can end up being emptied incorrectly + // in certain situations (Bug #8070). + // Fragments from the fragment cache must always be cloned and never used + // in place. + results.cacheable || (l > 1 && i < lastIndex) ? + jQuery.clone( fragment, true, true ) : + fragment + ); + } + } + + if ( scripts.length ) { + jQuery.each( scripts, evalScript ); + } + } + + return this; + }; +jQuery.prototype.each = function( callback, args ) { +/// +/// Iterate over a jQuery object, executing a function for each matched element. +/// +/// +/// A function to execute for each matched element. +/// +/// + + return jQuery.each( this, callback, args ); + }; +jQuery.prototype.empty = function() { +/// +/// Remove all child nodes of the set of matched elements from the DOM. +/// +/// + + for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName("*") ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + } + + return this; + }; +jQuery.prototype.end = function() { +/// +/// End the most recent filtering operation in the current chain and return the set of matched elements to its previous state. +/// +/// + + return this.prevObject || this.constructor(null); + }; +jQuery.prototype.eq = function( i ) { +/// +/// Reduce the set of matched elements to the one at the specified index. +/// 1 - eq(index) +/// 2 - eq(-index) +/// +/// +/// An integer indicating the 0-based position of the element. +/// +/// + + return i === -1 ? + this.slice( i ) : + this.slice( i, +i + 1 ); + }; +jQuery.prototype.error = function( data, fn ) { +/// +/// Bind an event handler to the "error" JavaScript event. +/// 1 - error(handler(eventObject)) +/// 2 - error(eventData, handler(eventObject)) +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.extend = function() { + + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; +jQuery.prototype.fadeIn = function( speed, easing, callback ) { +/// +/// Display the matched elements by fading them to opaque. +/// 1 - fadeIn(duration, callback) +/// 2 - fadeIn(duration, easing, callback) +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + return this.animate( props, speed, easing, callback ); + }; +jQuery.prototype.fadeOut = function( speed, easing, callback ) { +/// +/// Hide the matched elements by fading them to transparent. +/// 1 - fadeOut(duration, callback) +/// 2 - fadeOut(duration, easing, callback) +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + return this.animate( props, speed, easing, callback ); + }; +jQuery.prototype.fadeTo = function( speed, to, easing, callback ) { +/// +/// Adjust the opacity of the matched elements. +/// 1 - fadeTo(duration, opacity, callback) +/// 2 - fadeTo(duration, opacity, easing, callback) +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A number between 0 and 1 denoting the target opacity. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + return this.filter(":hidden").css("opacity", 0).show().end() + .animate({opacity: to}, speed, easing, callback); + }; +jQuery.prototype.fadeToggle = function( speed, easing, callback ) { +/// +/// Display or hide the matched elements by animating their opacity. +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + return this.animate( props, speed, easing, callback ); + }; +jQuery.prototype.filter = function( selector ) { +/// +/// Reduce the set of matched elements to those that match the selector or pass the function's test. +/// 1 - filter(selector) +/// 2 - filter(function(index)) +/// 3 - filter(element) +/// 4 - filter(jQuery object) +/// +/// +/// A string containing a selector expression to match the current set of elements against. +/// +/// + + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }; +jQuery.prototype.find = function( selector ) { +/// +/// Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. +/// 1 - find(selector) +/// 2 - find(jQuery object) +/// 3 - find(element) +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var self = this, + i, l; + + if ( typeof selector !== "string" ) { + return jQuery( selector ).filter(function() { + for ( i = 0, l = self.length; i < l; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }); + } + + var ret = this.pushStack( "", "find", selector ), + length, n, r; + + for ( i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( n = length; n < ret.length; n++ ) { + for ( r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }; +jQuery.prototype.first = function() { +/// +/// Reduce the set of matched elements to the first in the set. +/// +/// + + return this.eq( 0 ); + }; +jQuery.prototype.focus = function( data, fn ) { +/// +/// Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. +/// 1 - focus(handler(eventObject)) +/// 2 - focus(eventData, handler(eventObject)) +/// 3 - focus() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.focusin = function( data, fn ) { +/// +/// Bind an event handler to the "focusin" JavaScript event. +/// 1 - focusin(handler(eventObject)) +/// 2 - focusin(eventData, handler(eventObject)) +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.focusout = function( data, fn ) { +/// +/// Bind an event handler to the "focusout" JavaScript event. +/// 1 - focusout(handler(eventObject)) +/// 2 - focusout(eventData, handler(eventObject)) +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.get = function( num ) { +/// +/// Retrieve the DOM elements matched by the jQuery object. +/// +/// +/// A zero-based integer indicating which element to retrieve. +/// +/// + + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }; +jQuery.prototype.has = function( target ) { +/// +/// Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. +/// 1 - has(selector) +/// 2 - has(contained) +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var targets = jQuery( target ); + return this.filter(function() { + for ( var i = 0, l = targets.length; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }; +jQuery.prototype.hasClass = function( selector ) { +/// +/// Determine whether any of the matched elements are assigned the given class. +/// +/// +/// The class name to search for. +/// +/// + + var className = " " + selector + " "; + for ( var i = 0, l = this.length; i < l; i++ ) { + if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } + + return false; + }; +jQuery.prototype.height = function( size ) { +/// +/// 1: Get the current computed height for the first element in the set of matched elements. +/// 1.1 - height() +/// 2: Set the CSS height of every matched element. +/// 2.1 - height(value) +/// 2.2 - height(function(index, height)) +/// +/// +/// An integer representing the number of pixels, or an integer with an optional unit of measure appended (as a string). +/// +/// + + // Get window width or height + var elem = this[0]; + if ( !elem ) { + return size == null ? null : this; + } + + if ( jQuery.isFunction( size ) ) { + return this.each(function( i ) { + var self = jQuery( this ); + self[ type ]( size.call( this, i, self[ type ]() ) ); + }); + } + + if ( jQuery.isWindow( elem ) ) { + // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode + // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat + var docElemProp = elem.document.documentElement[ "client" + name ]; + return elem.document.compatMode === "CSS1Compat" && docElemProp || + elem.document.body[ "client" + name ] || docElemProp; + + // Get document width or height + } else if ( elem.nodeType === 9 ) { + // Either scroll[Width/Height] or offset[Width/Height], whichever is greater + return Math.max( + elem.documentElement["client" + name], + elem.body["scroll" + name], elem.documentElement["scroll" + name], + elem.body["offset" + name], elem.documentElement["offset" + name] + ); + + // Get or set width or height on the element + } else if ( size === undefined ) { + var orig = jQuery.css( elem, type ), + ret = parseFloat( orig ); + + return jQuery.isNaN( ret ) ? orig : ret; + + // Set the width or height on the element (default to pixels if value is unitless) + } else { + return this.css( type, typeof size === "string" ? size : size + "px" ); + } + }; +jQuery.prototype.hide = function( speed, easing, callback ) { +/// +/// Hide the matched elements. +/// 1 - hide() +/// 2 - hide(duration, callback) +/// 3 - hide(duration, easing, callback) +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + if ( speed || speed === 0 ) { + return this.animate( genFx("hide", 3), speed, easing, callback); + + } else { + for ( var i = 0, j = this.length; i < j; i++ ) { + if ( this[i].style ) { + var display = jQuery.css( this[i], "display" ); + + if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) { + jQuery._data( this[i], "olddisplay", display ); + } + } + } + + // Set the display of the elements in a second loop + // to avoid the constant reflow + for ( i = 0; i < j; i++ ) { + if ( this[i].style ) { + this[i].style.display = "none"; + } + } + + return this; + } + }; +jQuery.prototype.hover = function( fnOver, fnOut ) { +/// +/// 1: Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements. +/// 1.1 - hover(handlerIn(eventObject), handlerOut(eventObject)) +/// 2: Bind a single handler to the matched elements, to be executed when the mouse pointer enters or leaves the elements. +/// 2.1 - hover(handlerInOut(eventObject)) +/// +/// +/// A function to execute when the mouse pointer enters the element. +/// +/// +/// A function to execute when the mouse pointer leaves the element. +/// +/// + + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + }; +jQuery.prototype.html = function( value ) { +/// +/// 1: Get the HTML contents of the first element in the set of matched elements. +/// 1.1 - html() +/// 2: Set the HTML contents of each element in the set of matched elements. +/// 2.1 - html(htmlString) +/// 2.2 - html(function(index, oldhtml)) +/// +/// +/// A string of HTML to set as the content of each matched element. +/// +/// + + if ( value === undefined ) { + return this[0] && this[0].nodeType === 1 ? + this[0].innerHTML.replace(rinlinejQuery, "") : + null; + + // See if we can take a shortcut and just use innerHTML + } else if ( typeof value === "string" && !rnocache.test( value ) && + (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) && + !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) { + + value = value.replace(rxhtmlTag, "<$1>"); + + try { + for ( var i = 0, l = this.length; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + if ( this[i].nodeType === 1 ) { + jQuery.cleanData( this[i].getElementsByTagName("*") ); + this[i].innerHTML = value; + } + } + + // If using innerHTML throws an exception, use the fallback method + } catch(e) { + this.empty().append( value ); + } + + } else if ( jQuery.isFunction( value ) ) { + this.each(function(i){ + var self = jQuery( this ); + + self.html( value.call(this, i, self.html()) ); + }); + + } else { + this.empty().append( value ); + } + + return this; + }; +jQuery.prototype.index = function( elem ) { +/// +/// Search for a given element from among the matched elements. +/// 1 - index() +/// 2 - index(selector) +/// 3 - index(element) +/// +/// +/// A selector representing a jQuery collection in which to look for an element. +/// +/// + + if ( !elem || typeof elem === "string" ) { + return jQuery.inArray( this[0], + // If it receives a string, the selector is used + // If it receives nothing, the siblings are used + elem ? jQuery( elem ) : this.parent().children() ); + } + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }; +jQuery.prototype.init = function( selector, context, rootjQuery ) { + + var match, elem, ret, doc; + + // Handle $(""), $(null), or $(undefined) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // The body element only exists once, optimize finding it + if ( selector === "body" && !context && document.body ) { + this.context = document; + this[0] = document.body; + this.selector = selector; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = quickExpr.exec( selector ); + } + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = (context ? context.ownerDocument || context : document); + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + ret = rsingleTag.exec( selector ); + + if ( ret ) { + if ( jQuery.isPlainObject( context ) ) { + selector = [ document.createElement( ret[1] ) ]; + jQuery.fn.attr.call( selector, context, true ); + + } else { + selector = [ doc.createElement( ret[1] ) ]; + } + + } else { + ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); + selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; + } + + return jQuery.merge( this, selector ); + + // HANDLE: $("#id") + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return (context || rootjQuery).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if (selector.selector !== undefined) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; +jQuery.prototype.innerHeight = function() { +/// +/// Get the current computed height for the first element in the set of matched elements, including padding but not border. +/// +/// + + return this[0] ? + parseFloat( jQuery.css( this[0], type, "padding" ) ) : + null; + }; +jQuery.prototype.innerWidth = function() { +/// +/// Get the current computed width for the first element in the set of matched elements, including padding but not border. +/// +/// + + return this[0] ? + parseFloat( jQuery.css( this[0], type, "padding" ) ) : + null; + }; +jQuery.prototype.insertAfter = function( selector ) { +/// +/// Insert every element in the set of matched elements after the target. +/// +/// +/// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted after the element(s) specified by this parameter. +/// +/// + + var ret = [], + insert = jQuery( selector ), + parent = this.length === 1 && this[0].parentNode; + + if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { + insert[ original ]( this[0] ); + return this; + + } else { + for ( var i = 0, l = insert.length; i < l; i++ ) { + var elems = (i > 0 ? this.clone(true) : this).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; +jQuery.prototype.insertBefore = function( selector ) { +/// +/// Insert every element in the set of matched elements before the target. +/// +/// +/// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted before the element(s) specified by this parameter. +/// +/// + + var ret = [], + insert = jQuery( selector ), + parent = this.length === 1 && this[0].parentNode; + + if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { + insert[ original ]( this[0] ); + return this; + + } else { + for ( var i = 0, l = insert.length; i < l; i++ ) { + var elems = (i > 0 ? this.clone(true) : this).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; +jQuery.prototype.is = function( selector ) { +/// +/// Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. +/// 1 - is(selector) +/// 2 - is(function(index)) +/// 3 - is(jQuery object) +/// 4 - is(element) +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + return !!selector && ( typeof selector === "string" ? + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }; +jQuery.prototype.keydown = function( data, fn ) { +/// +/// Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. +/// 1 - keydown(handler(eventObject)) +/// 2 - keydown(eventData, handler(eventObject)) +/// 3 - keydown() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.keypress = function( data, fn ) { +/// +/// Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. +/// 1 - keypress(handler(eventObject)) +/// 2 - keypress(eventData, handler(eventObject)) +/// 3 - keypress() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.keyup = function( data, fn ) { +/// +/// Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. +/// 1 - keyup(handler(eventObject)) +/// 2 - keyup(eventData, handler(eventObject)) +/// 3 - keyup() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.last = function() { +/// +/// Reduce the set of matched elements to the final one in the set. +/// +/// + + return this.eq( -1 ); + }; +jQuery.prototype.length = 0; +jQuery.prototype.live = function( types, data, fn, origSelector /* Internal Use Only */ ) { +/// +/// Attach a handler to the event for all elements which match the current selector, now and in the future. +/// 1 - live(eventType, handler) +/// 2 - live(eventType, eventData, handler) +/// 3 - live(events) +/// +/// +/// A string containing a JavaScript event type, such as "click" or "keydown." As of jQuery 1.4 the string can contain multiple, space-separated event types or custom event names, as well. +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute at the time the event is triggered. +/// +/// + + var type, i = 0, match, namespaces, preType, + selector = origSelector || this.selector, + context = origSelector ? this : jQuery( this.context ); + + if ( typeof types === "object" && !types.preventDefault ) { + for ( var key in types ) { + context[ name ]( key, data, types[key], selector ); + } + + return this; + } + + if ( name === "die" && !types && + origSelector && origSelector.charAt(0) === "." ) { + + context.unbind( origSelector ); + + return this; + } + + if ( data === false || jQuery.isFunction( data ) ) { + fn = data || returnFalse; + data = undefined; + } + + types = (types || "").split(" "); + + while ( (type = types[ i++ ]) != null ) { + match = rnamespaces.exec( type ); + namespaces = ""; + + if ( match ) { + namespaces = match[0]; + type = type.replace( rnamespaces, "" ); + } + + if ( type === "hover" ) { + types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); + continue; + } + + preType = type; + + if ( liveMap[ type ] ) { + types.push( liveMap[ type ] + namespaces ); + type = type + namespaces; + + } else { + type = (liveMap[ type ] || type) + namespaces; + } + + if ( name === "live" ) { + // bind live handler + for ( var j = 0, l = context.length; j < l; j++ ) { + jQuery.event.add( context[j], "live." + liveConvert( type, selector ), + { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); + } + + } else { + // unbind live handler + context.unbind( "live." + liveConvert( type, selector ), fn ); + } + } + + return this; + }; +jQuery.prototype.load = function( url, params, callback ) { +/// +/// 1: Bind an event handler to the "load" JavaScript event. +/// 1.1 - load(handler(eventObject)) +/// 1.2 - load(eventData, handler(eventObject)) +/// 2: Load data from the server and place the returned HTML into the matched element. +/// 2.1 - load(url, data, complete(responseText, textStatus, XMLHttpRequest)) +/// +/// +/// A string containing the URL to which the request is sent. +/// +/// +/// A map or string that is sent to the server with the request. +/// +/// +/// A callback function that is executed when the request completes. +/// +/// + + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + + // Don't do a request if no elements are being requested + } else if ( !this.length ) { + return this; + } + + var off = url.indexOf( " " ); + if ( off >= 0 ) { + var selector = url.slice( off, url.length ); + url = url.slice( 0, off ); + } + + // Default to a GET request + var type = "GET"; + + // If the second parameter was provided + if ( params ) { + // If it's a function + if ( jQuery.isFunction( params ) ) { + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( typeof params === "object" ) { + params = jQuery.param( params, jQuery.ajaxSettings.traditional ); + type = "POST"; + } + } + + var self = this; + + // Request the remote document + jQuery.ajax({ + url: url, + type: type, + dataType: "html", + data: params, + // Complete callback (responseText is used internally) + complete: function( jqXHR, status, responseText ) { + // Store the response as specified by the jqXHR object + responseText = jqXHR.responseText; + // If successful, inject the HTML into all the matched elements + if ( jqXHR.isResolved() ) { + // #4825: Get the actual response in case + // a dataFilter is present in ajaxSettings + jqXHR.done(function( r ) { + responseText = r; + }); + // See if a selector was specified + self.html( selector ? + // Create a dummy div to hold the results + jQuery("
") + // inject the contents of the document in, removing the scripts + // to avoid any 'Permission Denied' errors in IE + .append(responseText.replace(rscript, "")) + + // Locate the specified elements + .find(selector) : + + // If not, just inject the full result + responseText ); + } + + if ( callback ) { + self.each( callback, [ responseText, status, jqXHR ] ); + } + } + }); + + return this; + }; +jQuery.prototype.map = function( callback ) { +/// +/// Pass each element in the current matched set through a function, producing a new jQuery object containing the return values. +/// +/// +/// A function object that will be invoked for each element in the current set. +/// +/// + + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }; +jQuery.prototype.mousedown = function( data, fn ) { +/// +/// Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. +/// 1 - mousedown(handler(eventObject)) +/// 2 - mousedown(eventData, handler(eventObject)) +/// 3 - mousedown() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.mouseenter = function( data, fn ) { +/// +/// Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. +/// 1 - mouseenter(handler(eventObject)) +/// 2 - mouseenter(eventData, handler(eventObject)) +/// 3 - mouseenter() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.mouseleave = function( data, fn ) { +/// +/// Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. +/// 1 - mouseleave(handler(eventObject)) +/// 2 - mouseleave(eventData, handler(eventObject)) +/// 3 - mouseleave() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.mousemove = function( data, fn ) { +/// +/// Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. +/// 1 - mousemove(handler(eventObject)) +/// 2 - mousemove(eventData, handler(eventObject)) +/// 3 - mousemove() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.mouseout = function( data, fn ) { +/// +/// Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. +/// 1 - mouseout(handler(eventObject)) +/// 2 - mouseout(eventData, handler(eventObject)) +/// 3 - mouseout() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.mouseover = function( data, fn ) { +/// +/// Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. +/// 1 - mouseover(handler(eventObject)) +/// 2 - mouseover(eventData, handler(eventObject)) +/// 3 - mouseover() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.mouseup = function( data, fn ) { +/// +/// Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. +/// 1 - mouseup(handler(eventObject)) +/// 2 - mouseup(eventData, handler(eventObject)) +/// 3 - mouseup() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.next = function( until, selector ) { +/// +/// Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector. +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.nextAll = function( until, selector ) { +/// +/// Get all following siblings of each element in the set of matched elements, optionally filtered by a selector. +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.nextUntil = function( until, selector ) { +/// +/// Get all following siblings of each element up to but not including the element matched by the selector. +/// +/// +/// A string containing a selector expression to indicate where to stop matching following sibling elements. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.not = function( selector ) { +/// +/// Remove elements from the set of matched elements. +/// 1 - not(selector) +/// 2 - not(elements) +/// 3 - not(function(index)) +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + return this.pushStack( winnow(this, selector, false), "not", selector); + }; +jQuery.prototype.offset = function( options ) { +/// +/// 1: Get the current coordinates of the first element in the set of matched elements, relative to the document. +/// 1.1 - offset() +/// 2: Set the current coordinates of every element in the set of matched elements, relative to the document. +/// 2.1 - offset(coordinates) +/// 2.2 - offset(function(index, coords)) +/// +/// +/// An object containing the properties top and left, which are integers indicating the new top and left coordinates for the elements. +/// +/// + + var elem = this[0], box; + + if ( options ) { + return this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + if ( !elem || !elem.ownerDocument ) { + return null; + } + + if ( elem === elem.ownerDocument.body ) { + return jQuery.offset.bodyOffset( elem ); + } + + try { + box = elem.getBoundingClientRect(); + } catch(e) {} + + var doc = elem.ownerDocument, + docElem = doc.documentElement; + + // Make sure we're not dealing with a disconnected DOM node + if ( !box || !jQuery.contains( docElem, elem ) ) { + return box ? { top: box.top, left: box.left } : { top: 0, left: 0 }; + } + + var body = doc.body, + win = getWindow(doc), + clientTop = docElem.clientTop || body.clientTop || 0, + clientLeft = docElem.clientLeft || body.clientLeft || 0, + scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop, + scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft, + top = box.top + scrollTop - clientTop, + left = box.left + scrollLeft - clientLeft; + + return { top: top, left: left }; + }; +jQuery.prototype.offsetParent = function() { +/// +/// Get the closest ancestor element that is positioned. +/// +/// + + return this.map(function() { + var offsetParent = this.offsetParent || document.body; + while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { + offsetParent = offsetParent.offsetParent; + } + return offsetParent; + }); + }; +jQuery.prototype.one = function( type, data, fn ) { +/// +/// Attach a handler to an event for the elements. The handler is executed at most once per element. +/// +/// +/// A string containing one or more JavaScript event types, such as "click" or "submit," or custom event names. +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute at the time the event is triggered. +/// +/// + + var handler; + + // Handle object literals + if ( typeof type === "object" ) { + for ( var key in type ) { + this[ name ](key, data, type[key], fn); + } + return this; + } + + if ( arguments.length === 2 || data === false ) { + fn = data; + data = undefined; + } + + if ( name === "one" ) { + handler = function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }; + handler.guid = fn.guid || jQuery.guid++; + } else { + handler = fn; + } + + if ( type === "unload" && name !== "one" ) { + this.one( type, data, fn ); + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.add( this[i], type, handler, data ); + } + } + + return this; + }; +jQuery.prototype.outerHeight = function( margin ) { +/// +/// Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin. +/// +/// +/// A Boolean indicating whether to include the element's margin in the calculation. +/// +/// + + return this[0] ? + parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) ) : + null; + }; +jQuery.prototype.outerWidth = function( margin ) { +/// +/// Get the current computed width for the first element in the set of matched elements, including padding and border. +/// +/// +/// A Boolean indicating whether to include the element's margin in the calculation. +/// +/// + + return this[0] ? + parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) ) : + null; + }; +jQuery.prototype.parent = function( until, selector ) { +/// +/// Get the parent of each element in the current set of matched elements, optionally filtered by a selector. +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.parents = function( until, selector ) { +/// +/// Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector. +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.parentsUntil = function( until, selector ) { +/// +/// Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector. +/// +/// +/// A string containing a selector expression to indicate where to stop matching ancestor elements. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.position = function() { +/// +/// Get the current coordinates of the first element in the set of matched elements, relative to the offset parent. +/// +/// + + if ( !this[0] ) { + return null; + } + + var elem = this[0], + + // Get *real* offsetParent + offsetParent = this.offsetParent(), + + // Get correct offsets + offset = this.offset(), + parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); + + // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0; + offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0; + + // Add offsetParent borders + parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0; + parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0; + + // Subtract the two offsets + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + }; + }; +jQuery.prototype.prepend = function() { +/// +/// Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. +/// 1 - prepend(content, content) +/// 2 - prepend(function(index, html)) +/// +/// +/// DOM element, array of elements, HTML string, or jQuery object to insert at the beginning of each element in the set of matched elements. +/// +/// +/// One or more additional DOM elements, arrays of elements, HTML strings, or jQuery objects to insert at the beginning of each element in the set of matched elements. +/// +/// + + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }; +jQuery.prototype.prependTo = function( selector ) { +/// +/// Insert every element in the set of matched elements to the beginning of the target. +/// +/// +/// A selector, element, HTML string, or jQuery object; the matched set of elements will be inserted at the beginning of the element(s) specified by this parameter. +/// +/// + + var ret = [], + insert = jQuery( selector ), + parent = this.length === 1 && this[0].parentNode; + + if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { + insert[ original ]( this[0] ); + return this; + + } else { + for ( var i = 0, l = insert.length; i < l; i++ ) { + var elems = (i > 0 ? this.clone(true) : this).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; +jQuery.prototype.prev = function( until, selector ) { +/// +/// Get the immediately preceding sibling of each element in the set of matched elements, optionally filtered by a selector. +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.prevAll = function( until, selector ) { +/// +/// Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector. +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.prevUntil = function( until, selector ) { +/// +/// Get all preceding siblings of each element up to but not including the element matched by the selector. +/// +/// +/// A string containing a selector expression to indicate where to stop matching preceding sibling elements. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.promise = function( type, object ) { +/// +/// Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. +/// +/// +/// The type of queue that needs to be observed. +/// +/// +/// Object onto which the promise methods have to be attached +/// +/// + + if ( typeof type !== "string" ) { + object = type; + type = undefined; + } + type = type || "fx"; + var defer = jQuery.Deferred(), + elements = this, + i = elements.length, + count = 1, + deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + tmp; + function resolve() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + } + while( i-- ) { + if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || + ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || + jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && + jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { + count++; + tmp.done( resolve ); + } + } + resolve(); + return defer.promise(); + }; +jQuery.prototype.prop = function( name, value ) { +/// +/// 1: Get the value of a property for the first element in the set of matched elements. +/// 1.1 - prop(propertyName) +/// 2: Set one or more properties for the set of matched elements. +/// 2.1 - prop(propertyName, value) +/// 2.2 - prop(map) +/// 2.3 - prop(propertyName, function(index, oldPropertyValue)) +/// +/// +/// The name of the property to set. +/// +/// +/// A value to set for the property. +/// +/// + + return jQuery.access( this, name, value, true, jQuery.prop ); + }; +jQuery.prototype.pushStack = function( elems, name, selector ) { +/// +/// Add a collection of DOM elements onto the jQuery stack. +/// 1 - pushStack(elements) +/// 2 - pushStack(elements, name, arguments) +/// +/// +/// An array of elements to push onto the stack and make into a new jQuery object. +/// +/// +/// The name of a jQuery method that generated the array of elements. +/// +/// +/// The arguments that were passed in to the jQuery method (for serialization). +/// +/// + + // Build a new jQuery matched element set + var ret = this.constructor(); + + if ( jQuery.isArray( elems ) ) { + push.apply( ret, elems ); + + } else { + jQuery.merge( ret, elems ); + } + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + (this.selector ? " " : "") + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }; +jQuery.prototype.queue = function( type, data ) { +/// +/// 1: Show the queue of functions to be executed on the matched elements. +/// 1.1 - queue(queueName) +/// 2: Manipulate the queue of functions to be executed on the matched elements. +/// 2.1 - queue(queueName, newQueue) +/// 2.2 - queue(queueName, callback( next )) +/// +/// +/// A string containing the name of the queue. Defaults to fx, the standard effects queue. +/// +/// +/// An array of functions to replace the current queue contents. +/// +/// + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + } + + if ( data === undefined ) { + return jQuery.queue( this[0], type ); + } + return this.each(function() { + var queue = jQuery.queue( this, type, data ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }; +jQuery.prototype.ready = function( fn ) { +/// +/// Specify a function to execute when the DOM is fully loaded. +/// +/// +/// A function to execute after the DOM is ready. +/// +/// + + // Attach the listeners + jQuery.bindReady(); + + // Add the callback + readyList.done( fn ); + + return this; + }; +jQuery.prototype.remove = function( selector, keepData ) { +/// +/// Remove the set of matched elements from the DOM. +/// +/// +/// A selector expression that filters the set of matched elements to be removed. +/// +/// + + for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { + if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName("*") ); + jQuery.cleanData( [ elem ] ); + } + + if ( elem.parentNode ) { + elem.parentNode.removeChild( elem ); + } + } + } + + return this; + }; +jQuery.prototype.removeAttr = function( name ) { +/// +/// Remove an attribute from each element in the set of matched elements. +/// +/// +/// An attribute to remove. +/// +/// + + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }; +jQuery.prototype.removeClass = function( value ) { +/// +/// Remove a single class, multiple classes, or all classes from each element in the set of matched elements. +/// 1 - removeClass(className) +/// 2 - removeClass(function(index, class)) +/// +/// +/// One or more space-separated classes to be removed from the class attribute of each matched element. +/// +/// + + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.removeClass( value.call(this, i, self.attr("class")) ); + }); + } + + if ( (value && typeof value === "string") || value === undefined ) { + var classNames = (value || "").split( rspace ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 && elem.className ) { + if ( value ) { + var className = (" " + elem.className + " ").replace(rclass, " "); + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + className = className.replace(" " + classNames[c] + " ", " "); + } + elem.className = jQuery.trim( className ); + + } else { + elem.className = ""; + } + } + } + } + + return this; + }; +jQuery.prototype.removeData = function( key ) { +/// +/// Remove a previously-stored piece of data. +/// +/// +/// A string naming the piece of data to delete. +/// +/// + + return this.each(function() { + jQuery.removeData( this, key ); + }); + }; +jQuery.prototype.removeProp = function( name ) { +/// +/// Remove a property for the set of matched elements. +/// +/// +/// The name of the property to set. +/// +/// +/// A value to set for the property. +/// +/// + + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }; +jQuery.prototype.replaceAll = function( selector ) { +/// +/// Replace each target element with the set of matched elements. +/// +/// +/// A selector expression indicating which element(s) to replace. +/// +/// + + var ret = [], + insert = jQuery( selector ), + parent = this.length === 1 && this[0].parentNode; + + if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { + insert[ original ]( this[0] ); + return this; + + } else { + for ( var i = 0, l = insert.length; i < l; i++ ) { + var elems = (i > 0 ? this.clone(true) : this).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; +jQuery.prototype.replaceWith = function( value ) { +/// +/// Replace each element in the set of matched elements with the provided new content. +/// 1 - replaceWith(newContent) +/// 2 - replaceWith(function) +/// +/// +/// The content to insert. May be an HTML string, DOM element, or jQuery object. +/// +/// + + if ( this[0] && this[0].parentNode ) { + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this), old = self.html(); + self.replaceWith( value.call( this, i, old ) ); + }); + } + + if ( typeof value !== "string" ) { + value = jQuery( value ).detach(); + } + + return this.each(function() { + var next = this.nextSibling, + parent = this.parentNode; + + jQuery( this ).remove(); + + if ( next ) { + jQuery(next).before( value ); + } else { + jQuery(parent).append( value ); + } + }); + } else { + return this.length ? + this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : + this; + } + }; +jQuery.prototype.resize = function( data, fn ) { +/// +/// Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. +/// 1 - resize(handler(eventObject)) +/// 2 - resize(eventData, handler(eventObject)) +/// 3 - resize() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.scroll = function( data, fn ) { +/// +/// Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. +/// 1 - scroll(handler(eventObject)) +/// 2 - scroll(eventData, handler(eventObject)) +/// 3 - scroll() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.scrollLeft = function( val ) { +/// +/// 1: Get the current horizontal position of the scroll bar for the first element in the set of matched elements. +/// 1.1 - scrollLeft() +/// 2: Set the current horizontal position of the scroll bar for each of the set of matched elements. +/// 2.1 - scrollLeft(value) +/// +/// +/// An integer indicating the new position to set the scroll bar to. +/// +/// + + var elem, win; + + if ( val === undefined ) { + elem = this[ 0 ]; + + if ( !elem ) { + return null; + } + + win = getWindow( elem ); + + // Return the scroll offset + return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] : + jQuery.support.boxModel && win.document.documentElement[ method ] || + win.document.body[ method ] : + elem[ method ]; + } + + // Set the scroll offset + return this.each(function() { + win = getWindow( this ); + + if ( win ) { + win.scrollTo( + !i ? val : jQuery( win ).scrollLeft(), + i ? val : jQuery( win ).scrollTop() + ); + + } else { + this[ method ] = val; + } + }); + }; +jQuery.prototype.scrollTop = function( val ) { +/// +/// 1: Get the current vertical position of the scroll bar for the first element in the set of matched elements. +/// 1.1 - scrollTop() +/// 2: Set the current vertical position of the scroll bar for each of the set of matched elements. +/// 2.1 - scrollTop(value) +/// +/// +/// An integer indicating the new position to set the scroll bar to. +/// +/// + + var elem, win; + + if ( val === undefined ) { + elem = this[ 0 ]; + + if ( !elem ) { + return null; + } + + win = getWindow( elem ); + + // Return the scroll offset + return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] : + jQuery.support.boxModel && win.document.documentElement[ method ] || + win.document.body[ method ] : + elem[ method ]; + } + + // Set the scroll offset + return this.each(function() { + win = getWindow( this ); + + if ( win ) { + win.scrollTo( + !i ? val : jQuery( win ).scrollLeft(), + i ? val : jQuery( win ).scrollTop() + ); + + } else { + this[ method ] = val; + } + }); + }; +jQuery.prototype.select = function( data, fn ) { +/// +/// Bind an event handler to the "select" JavaScript event, or trigger that event on an element. +/// 1 - select(handler(eventObject)) +/// 2 - select(eventData, handler(eventObject)) +/// 3 - select() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.serialize = function() { +/// +/// Encode a set of form elements as a string for submission. +/// +/// + + return jQuery.param( this.serializeArray() ); + }; +jQuery.prototype.serializeArray = function() { +/// +/// Encode a set of form elements as an array of names and values. +/// +/// + + return this.map(function(){ + return this.elements ? jQuery.makeArray( this.elements ) : this; + }) + .filter(function(){ + return this.name && !this.disabled && + ( this.checked || rselectTextarea.test( this.nodeName ) || + rinput.test( this.type ) ); + }) + .map(function( i, elem ){ + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val, i ){ + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + }; +jQuery.prototype.show = function( speed, easing, callback ) { +/// +/// Display the matched elements. +/// 1 - show() +/// 2 - show(duration, callback) +/// 3 - show(duration, easing, callback) +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + var elem, display; + + if ( speed || speed === 0 ) { + return this.animate( genFx("show", 3), speed, easing, callback); + + } else { + for ( var i = 0, j = this.length; i < j; i++ ) { + elem = this[i]; + + if ( elem.style ) { + display = elem.style.display; + + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !jQuery._data(elem, "olddisplay") && display === "none" ) { + display = elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( display === "" && jQuery.css( elem, "display" ) === "none" ) { + jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName)); + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( i = 0; i < j; i++ ) { + elem = this[i]; + + if ( elem.style ) { + display = elem.style.display; + + if ( display === "" || display === "none" ) { + elem.style.display = jQuery._data(elem, "olddisplay") || ""; + } + } + } + + return this; + } + }; +jQuery.prototype.siblings = function( until, selector ) { +/// +/// Get the siblings of each element in the set of matched elements, optionally filtered by a selector. +/// +/// +/// A string containing a selector expression to match elements against. +/// +/// + + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +jQuery.prototype.size = function() { +/// +/// Return the number of elements in the jQuery object. +/// +/// + + return this.length; + }; +jQuery.prototype.slice = function() { +/// +/// Reduce the set of matched elements to a subset specified by a range of indices. +/// +/// +/// An integer indicating the 0-based position at which the elements begin to be selected. If negative, it indicates an offset from the end of the set. +/// +/// +/// An integer indicating the 0-based position at which the elements stop being selected. If negative, it indicates an offset from the end of the set. If omitted, the range continues until the end of the set. +/// +/// + + return this.pushStack( slice.apply( this, arguments ), + "slice", slice.call(arguments).join(",") ); + }; +jQuery.prototype.slideDown = function( speed, easing, callback ) { +/// +/// Display the matched elements with a sliding motion. +/// 1 - slideDown(duration, callback) +/// 2 - slideDown(duration, easing, callback) +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + return this.animate( props, speed, easing, callback ); + }; +jQuery.prototype.slideToggle = function( speed, easing, callback ) { +/// +/// Display or hide the matched elements with a sliding motion. +/// 1 - slideToggle(duration, callback) +/// 2 - slideToggle(duration, easing, callback) +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + return this.animate( props, speed, easing, callback ); + }; +jQuery.prototype.slideUp = function( speed, easing, callback ) { +/// +/// Hide the matched elements with a sliding motion. +/// 1 - slideUp(duration, callback) +/// 2 - slideUp(duration, easing, callback) +/// +/// +/// A string or number determining how long the animation will run. +/// +/// +/// A string indicating which easing function to use for the transition. +/// +/// +/// A function to call once the animation is complete. +/// +/// + + return this.animate( props, speed, easing, callback ); + }; +jQuery.prototype.stop = function( clearQueue, gotoEnd ) { +/// +/// Stop the currently-running animation on the matched elements. +/// +/// +/// A Boolean indicating whether to remove queued animation as well. Defaults to false. +/// +/// +/// A Boolean indicating whether to complete the current animation immediately. Defaults to false. +/// +/// + + if ( clearQueue ) { + this.queue([]); + } + + this.each(function() { + var timers = jQuery.timers, + i = timers.length; + // clear marker counters if we know they won't be + if ( !gotoEnd ) { + jQuery._unmark( true, this ); + } + while ( i-- ) { + if ( timers[i].elem === this ) { + if (gotoEnd) { + // force the next step to be the last + timers[i](true); + } + + timers.splice(i, 1); + } + } + }); + + // start the next in the queue if the last step wasn't forced + if ( !gotoEnd ) { + this.dequeue(); + } + + return this; + }; +jQuery.prototype.submit = function( data, fn ) { +/// +/// Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. +/// 1 - submit(handler(eventObject)) +/// 2 - submit(eventData, handler(eventObject)) +/// 3 - submit() +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.text = function( text ) { +/// +/// 1: Get the combined text contents of each element in the set of matched elements, including their descendants. +/// 1.1 - text() +/// 2: Set the content of each element in the set of matched elements to the specified text. +/// 2.1 - text(textString) +/// 2.2 - text(function(index, text)) +/// +/// +/// A string of text to set as the content of each matched element. +/// +/// + + if ( jQuery.isFunction(text) ) { + return this.each(function(i) { + var self = jQuery( this ); + + self.text( text.call(this, i, self.text()) ); + }); + } + + if ( typeof text !== "object" && text !== undefined ) { + return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); + } + + return jQuery.text( this ); + }; +jQuery.prototype.toArray = function() { +/// +/// Retrieve all the DOM elements contained in the jQuery set, as an array. +/// +/// + + return slice.call( this, 0 ); + }; +jQuery.prototype.toggle = function( fn, fn2, callback ) { +/// +/// 1: Bind two or more handlers to the matched elements, to be executed on alternate clicks. +/// 1.1 - toggle(handler(eventObject), handler(eventObject), handler(eventObject)) +/// 2: Display or hide the matched elements. +/// 2.1 - toggle(duration, callback) +/// 2.2 - toggle(duration, easing, callback) +/// 2.3 - toggle(showOrHide) +/// +/// +/// A function to execute every even time the element is clicked. +/// +/// +/// A function to execute every odd time the element is clicked. +/// +/// +/// Additional handlers to cycle through after clicks. +/// +/// + + var bool = typeof fn === "boolean"; + + if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) { + this._toggle.apply( this, arguments ); + + } else if ( fn == null || bool ) { + this.each(function() { + var state = bool ? fn : jQuery(this).is(":hidden"); + jQuery(this)[ state ? "show" : "hide" ](); + }); + + } else { + this.animate(genFx("toggle", 3), fn, fn2, callback); + } + + return this; + }; +jQuery.prototype.toggleClass = function( value, stateVal ) { +/// +/// Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the switch argument. +/// 1 - toggleClass(className) +/// 2 - toggleClass(className, switch) +/// 3 - toggleClass(function(index, class), switch) +/// +/// +/// One or more class names (separated by spaces) to be toggled for each element in the matched set. +/// +/// +/// A boolean value to determine whether the class should be added or removed. +/// +/// + + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this); + self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( rspace ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space seperated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }; +jQuery.prototype.trigger = function( type, data ) { +/// +/// Execute all handlers and behaviors attached to the matched elements for the given event type. +/// 1 - trigger(eventType, extraParameters) +/// 2 - trigger(event) +/// +/// +/// A string containing a JavaScript event type, such as click or submit. +/// +/// +/// An array of additional parameters to pass along to the event handler. +/// +/// + + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }; +jQuery.prototype.triggerHandler = function( type, data ) { +/// +/// Execute all handlers attached to an element for an event. +/// +/// +/// A string containing a JavaScript event type, such as click or submit. +/// +/// +/// An array of additional parameters to pass along to the event handler. +/// +/// + + if ( this[0] ) { + return jQuery.event.trigger( type, data, this[0], true ); + } + }; +jQuery.prototype.unbind = function( type, fn ) { +/// +/// Remove a previously-attached event handler from the elements. +/// 1 - unbind(eventType, handler(eventObject)) +/// 2 - unbind(eventType, false) +/// 3 - unbind(event) +/// +/// +/// A string containing a JavaScript event type, such as click or submit. +/// +/// +/// The function that is to be no longer executed. +/// +/// + + // Handle object literals + if ( typeof type === "object" && !type.preventDefault ) { + for ( var key in type ) { + this.unbind(key, type[key]); + } + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.remove( this[i], type, fn ); + } + } + + return this; + }; +jQuery.prototype.undelegate = function( selector, types, fn ) { +/// +/// Remove a handler from the event for all elements which match the current selector, now or in the future, based upon a specific set of root elements. +/// 1 - undelegate() +/// 2 - undelegate(selector, eventType) +/// 3 - undelegate(selector, eventType, handler) +/// 4 - undelegate(selector, events) +/// 5 - undelegate(namespace) +/// +/// +/// A selector which will be used to filter the event results. +/// +/// +/// A string containing a JavaScript event type, such as "click" or "keydown" +/// +/// +/// A function to execute at the time the event is triggered. +/// +/// + + if ( arguments.length === 0 ) { + return this.unbind( "live" ); + + } else { + return this.die( types, null, fn, selector ); + } + }; +jQuery.prototype.unload = function( data, fn ) { +/// +/// Bind an event handler to the "unload" JavaScript event. +/// 1 - unload(handler(eventObject)) +/// 2 - unload(eventData, handler(eventObject)) +/// +/// +/// A map of data that will be passed to the event handler. +/// +/// +/// A function to execute each time the event is triggered. +/// +/// + + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; +jQuery.prototype.unwrap = function() { +/// +/// Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place. +/// +/// + + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }; +jQuery.prototype.val = function( value ) { +/// +/// 1: Get the current value of the first element in the set of matched elements. +/// 1.1 - val() +/// 2: Set the value of each element in the set of matched elements. +/// 2.1 - val(value) +/// 2.2 - val(function(index, value)) +/// +/// +/// A string of text or an array of strings corresponding to the value of each matched element to set as selected/checked. +/// +/// + + var hooks, ret, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + return (elem.value || "").replace(rreturn, ""); + } + + return undefined; + } + + var isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var self = jQuery(this), val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + }; +jQuery.prototype.width = function( size ) { +/// +/// 1: Get the current computed width for the first element in the set of matched elements. +/// 1.1 - width() +/// 2: Set the CSS width of each element in the set of matched elements. +/// 2.1 - width(value) +/// 2.2 - width(function(index, width)) +/// +/// +/// An integer representing the number of pixels, or an integer along with an optional unit of measure appended (as a string). +/// +/// + + // Get window width or height + var elem = this[0]; + if ( !elem ) { + return size == null ? null : this; + } + + if ( jQuery.isFunction( size ) ) { + return this.each(function( i ) { + var self = jQuery( this ); + self[ type ]( size.call( this, i, self[ type ]() ) ); + }); + } + + if ( jQuery.isWindow( elem ) ) { + // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode + // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat + var docElemProp = elem.document.documentElement[ "client" + name ]; + return elem.document.compatMode === "CSS1Compat" && docElemProp || + elem.document.body[ "client" + name ] || docElemProp; + + // Get document width or height + } else if ( elem.nodeType === 9 ) { + // Either scroll[Width/Height] or offset[Width/Height], whichever is greater + return Math.max( + elem.documentElement["client" + name], + elem.body["scroll" + name], elem.documentElement["scroll" + name], + elem.body["offset" + name], elem.documentElement["offset" + name] + ); + + // Get or set width or height on the element + } else if ( size === undefined ) { + var orig = jQuery.css( elem, type ), + ret = parseFloat( orig ); + + return jQuery.isNaN( ret ) ? orig : ret; + + // Set the width or height on the element (default to pixels if value is unitless) + } else { + return this.css( type, typeof size === "string" ? size : size + "px" ); + } + }; +jQuery.prototype.wrap = function( html ) { +/// +/// Wrap an HTML structure around each element in the set of matched elements. +/// 1 - wrap(wrappingElement) +/// 2 - wrap(function(index)) +/// +/// +/// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. +/// +/// + + return this.each(function() { + jQuery( this ).wrapAll( html ); + }); + }; +jQuery.prototype.wrapAll = function( html ) { +/// +/// Wrap an HTML structure around all elements in the set of matched elements. +/// +/// +/// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the matched elements. +/// +/// + + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }; +jQuery.prototype.wrapInner = function( html ) { +/// +/// Wrap an HTML structure around the content of each element in the set of matched elements. +/// 1 - wrapInner(wrappingElement) +/// 2 - wrapInner(wrappingFunction) +/// +/// +/// An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap around the content of the matched elements. +/// +/// + + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }; +jQuery.fn = jQuery.prototype; +jQuery.fn.init.prototype = jQuery.fn; +window.jQuery = window.$ = jQuery; +})(window); \ No newline at end of file diff --git a/packages/jQuery.1.6.1/Content/Scripts/jquery-1.6.1.js b/packages/jQuery.1.6.1/Content/Scripts/jquery-1.6.1.js new file mode 100644 index 000000000..5d5a1d58e --- /dev/null +++ b/packages/jQuery.1.6.1/Content/Scripts/jquery-1.6.1.js @@ -0,0 +1,8936 @@ +/*! + * jQuery JavaScript Library v1.6.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu May 12 15:04:36 2011 -0400 + */ +(function( window, undefined ) { + +// Use the correct document accordingly with window argument (sandbox) +var document = window.document, + navigator = window.navigator, + location = window.location; +var jQuery = (function() { + +// Define a local copy of jQuery +var jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // A central reference to the root jQuery(document) + rootjQuery, + + // A simple way to check for HTML strings or ID strings + // (both of which we optimize for) + quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, + + // Check if a string has a non-whitespace character in it + rnotwhite = /\S/, + + // Used for trimming whitespace + trimLeft = /^\s+/, + trimRight = /\s+$/, + + // Check for digits + rdigit = /\d/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, + rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + + // Useragent RegExp + rwebkit = /(webkit)[ \/]([\w.]+)/, + ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, + rmsie = /(msie) ([\w.]+)/, + rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, + + // Keep a UserAgent string for use with jQuery.browser + userAgent = navigator.userAgent, + + // For matching the engine and version of the browser + browserMatch, + + // The deferred used on DOM ready + readyList, + + // The ready event handler + DOMContentLoaded, + + // Save a reference to some core methods + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + push = Array.prototype.push, + slice = Array.prototype.slice, + trim = String.prototype.trim, + indexOf = Array.prototype.indexOf, + + // [[Class]] -> type pairs + class2type = {}; + +jQuery.fn = jQuery.prototype = { + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem, ret, doc; + + // Handle $(""), $(null), or $(undefined) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // The body element only exists once, optimize finding it + if ( selector === "body" && !context && document.body ) { + this.context = document; + this[0] = document.body; + this.selector = selector; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = quickExpr.exec( selector ); + } + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = (context ? context.ownerDocument || context : document); + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + ret = rsingleTag.exec( selector ); + + if ( ret ) { + if ( jQuery.isPlainObject( context ) ) { + selector = [ document.createElement( ret[1] ) ]; + jQuery.fn.attr.call( selector, context, true ); + + } else { + selector = [ doc.createElement( ret[1] ) ]; + } + + } else { + ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); + selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; + } + + return jQuery.merge( this, selector ); + + // HANDLE: $("#id") + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return (context || rootjQuery).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if (selector.selector !== undefined) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.6.1", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return slice.call( this, 0 ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = this.constructor(); + + if ( jQuery.isArray( elems ) ) { + push.apply( ret, elems ); + + } else { + jQuery.merge( ret, elems ); + } + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + (this.selector ? " " : "") + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Attach the listeners + jQuery.bindReady(); + + // Add the callback + readyList.done( fn ); + + return this; + }, + + eq: function( i ) { + return i === -1 ? + this.slice( i ) : + this.slice( i, +i + 1 ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ), + "slice", slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + // Either a released hold or an DOMready/load event and not yet ready + if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger( "ready" ).unbind( "ready" ); + } + } + }, + + bindReady: function() { + if ( readyList ) { + return; + } + + readyList = jQuery._Deferred(); + + // Catch cases where $(document).ready() is called after the + // browser event has already occurred. + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + return setTimeout( jQuery.ready, 1 ); + } + + // Mozilla, Opera and webkit nightlies currently support this event + if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else if ( document.attachEvent ) { + // ensure firing before onload, + // maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", DOMContentLoaded ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var toplevel = false; + + try { + toplevel = window.frameElement == null; + } catch(e) {} + + if ( document.documentElement.doScroll && toplevel ) { + doScrollCheck(); + } + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + // A crude way of determining if an object is a window + isWindow: function( obj ) { + return obj && typeof obj === "object" && "setInterval" in obj; + }, + + isNaN: function( obj ) { + return obj == null || !rdigit.test( obj ) || isNaN( obj ); + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + class2type[ toString.call(obj) ] || "object"; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + for ( var name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw msg; + }, + + parseJSON: function( data ) { + if ( typeof data !== "string" || !data ) { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return (new Function( "return " + data ))(); + + } + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + // (xml & tmp used internally) + parseXML: function( data , xml , tmp ) { + + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + + tmp = xml.documentElement; + + if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { + jQuery.error( "Invalid XML: " + data ); + } + + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && rnotwhite.test( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, + length = object.length, + isObj = length === undefined || jQuery.isFunction( object ); + + if ( args ) { + if ( isObj ) { + for ( name in object ) { + if ( callback.apply( object[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( object[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in object ) { + if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { + break; + } + } + } + } + + return object; + }, + + // Use native String.trim function wherever possible + trim: trim ? + function( text ) { + return text == null ? + "" : + trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); + }, + + // results is for internal usage only + makeArray: function( array, results ) { + var ret = results || []; + + if ( array != null ) { + // The window, strings (and functions) also have 'length' + // The extra typeof function check is to prevent crashes + // in Safari 2 (See: #3039) + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + var type = jQuery.type( array ); + + if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { + push.call( ret, array ); + } else { + jQuery.merge( ret, array ); + } + } + + return ret; + }, + + inArray: function( elem, array ) { + + if ( indexOf ) { + return indexOf.call( array, elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; + }, + + merge: function( first, second ) { + var i = first.length, + j = 0; + + if ( typeof second.length === "number" ) { + for ( var l = second.length; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var ret = [], retVal; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( var i = 0, length = elems.length; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, key, ret = [], + i = 0, + length = elems.length, + // jquery objects are treated as arrays + isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( key in elems ) { + value = callback( elems[ key ], key, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + if ( typeof context === "string" ) { + var tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + var args = slice.call( arguments, 2 ), + proxy = function() { + return fn.apply( context, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + + return proxy; + }, + + // Mutifunctional method to get and set values to a collection + // The value/s can be optionally by executed if its a function + access: function( elems, key, value, exec, fn, pass ) { + var length = elems.length; + + // Setting many attributes + if ( typeof key === "object" ) { + for ( var k in key ) { + jQuery.access( elems, k, key[k], exec, fn, value ); + } + return elems; + } + + // Setting one attribute + if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = !pass && exec && jQuery.isFunction(value); + + for ( var i = 0; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + + return elems; + } + + // Getting an attribute + return length ? fn( elems[0], key ) : undefined; + }, + + now: function() { + return (new Date()).getTime(); + }, + + // Use of jQuery.browser is frowned upon. + // More details: http://docs.jquery.com/Utilities/jQuery.browser + uaMatch: function( ua ) { + ua = ua.toLowerCase(); + + var match = rwebkit.exec( ua ) || + ropera.exec( ua ) || + rmsie.exec( ua ) || + ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || + []; + + return { browser: match[1] || "", version: match[2] || "0" }; + }, + + sub: function() { + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); + }; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; + }, + + browser: {} +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +browserMatch = jQuery.uaMatch( userAgent ); +if ( browserMatch.browser ) { + jQuery.browser[ browserMatch.browser ] = true; + jQuery.browser.version = browserMatch.version; +} + +// Deprecated, use jQuery.browser.webkit instead +if ( jQuery.browser.webkit ) { + jQuery.browser.safari = true; +} + +// IE doesn't match non-breaking spaces with \s +if ( rnotwhite.test( "\xA0" ) ) { + trimLeft = /^[\s\xA0]+/; + trimRight = /[\s\xA0]+$/; +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); + +// Cleanup functions for the document ready method +if ( document.addEventListener ) { + DOMContentLoaded = function() { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + }; + +} else if ( document.attachEvent ) { + DOMContentLoaded = function() { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( document.readyState === "complete" ) { + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); + } + }; +} + +// The DOM ready check for Internet Explorer +function doScrollCheck() { + if ( jQuery.isReady ) { + return; + } + + try { + // If IE is used, use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + document.documentElement.doScroll("left"); + } catch(e) { + setTimeout( doScrollCheck, 1 ); + return; + } + + // and execute any waiting functions + jQuery.ready(); +} + +// Expose jQuery to the global object +return jQuery; + +})(); + + +var // Promise methods + promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ), + // Static reference to slice + sliceDeferred = [].slice; + +jQuery.extend({ + // Create a simple deferred (one callbacks list) + _Deferred: function() { + var // callbacks list + callbacks = [], + // stored [ context , args ] + fired, + // to avoid firing when already doing so + firing, + // flag to know if the deferred has been cancelled + cancelled, + // the deferred itself + deferred = { + + // done( f1, f2, ...) + done: function() { + if ( !cancelled ) { + var args = arguments, + i, + length, + elem, + type, + _fired; + if ( fired ) { + _fired = fired; + fired = 0; + } + for ( i = 0, length = args.length; i < length; i++ ) { + elem = args[ i ]; + type = jQuery.type( elem ); + if ( type === "array" ) { + deferred.done.apply( deferred, elem ); + } else if ( type === "function" ) { + callbacks.push( elem ); + } + } + if ( _fired ) { + deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); + } + } + return this; + }, + + // resolve with given context and args + resolveWith: function( context, args ) { + if ( !cancelled && !fired && !firing ) { + // make sure args are available (#8421) + args = args || []; + firing = 1; + try { + while( callbacks[ 0 ] ) { + callbacks.shift().apply( context, args ); + } + } + finally { + fired = [ context, args ]; + firing = 0; + } + } + return this; + }, + + // resolve with this as context and given arguments + resolve: function() { + deferred.resolveWith( this, arguments ); + return this; + }, + + // Has this deferred been resolved? + isResolved: function() { + return !!( firing || fired ); + }, + + // Cancel + cancel: function() { + cancelled = 1; + callbacks = []; + return this; + } + }; + + return deferred; + }, + + // Full fledged deferred (two callbacks list) + Deferred: function( func ) { + var deferred = jQuery._Deferred(), + failDeferred = jQuery._Deferred(), + promise; + // Add errorDeferred methods, then and promise + jQuery.extend( deferred, { + then: function( doneCallbacks, failCallbacks ) { + deferred.done( doneCallbacks ).fail( failCallbacks ); + return this; + }, + always: function() { + return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); + }, + fail: failDeferred.done, + rejectWith: failDeferred.resolveWith, + reject: failDeferred.resolve, + isRejected: failDeferred.isResolved, + pipe: function( fnDone, fnFail ) { + return jQuery.Deferred(function( newDefer ) { + jQuery.each( { + done: [ fnDone, "resolve" ], + fail: [ fnFail, "reject" ] + }, function( handler, data ) { + var fn = data[ 0 ], + action = data[ 1 ], + returned; + if ( jQuery.isFunction( fn ) ) { + deferred[ handler ](function() { + returned = fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise().then( newDefer.resolve, newDefer.reject ); + } else { + newDefer[ action ]( returned ); + } + }); + } else { + deferred[ handler ]( newDefer[ action ] ); + } + }); + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + if ( obj == null ) { + if ( promise ) { + return promise; + } + promise = obj = {}; + } + var i = promiseMethods.length; + while( i-- ) { + obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; + } + return obj; + } + }); + // Make sure only one callback list will be used + deferred.done( failDeferred.cancel ).fail( deferred.cancel ); + // Unexpose cancel + delete deferred.cancel; + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + return deferred; + }, + + // Deferred helper + when: function( firstParam ) { + var args = arguments, + i = 0, + length = args.length, + count = length, + deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? + firstParam : + jQuery.Deferred(); + function resolveFunc( i ) { + return function( value ) { + args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; + if ( !( --count ) ) { + // Strange bug in FF4: + // Values changed onto the arguments object sometimes end up as undefined values + // outside the $.when method. Cloning the object into a fresh array solves the issue + deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) ); + } + }; + } + if ( length > 1 ) { + for( ; i < length; i++ ) { + if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) { + args[ i ].promise().then( resolveFunc(i), deferred.reject ); + } else { + --count; + } + } + if ( !count ) { + deferred.resolveWith( deferred, args ); + } + } else if ( deferred !== firstParam ) { + deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); + } + return deferred.promise(); + } +}); + + + +jQuery.support = (function() { + + var div = document.createElement( "div" ), + documentElement = document.documentElement, + all, + a, + select, + opt, + input, + marginDiv, + support, + fragment, + body, + bodyStyle, + tds, + events, + eventName, + i, + isSupported; + + // Preliminary tests + div.setAttribute("className", "t"); + div.innerHTML = "
a"; + + all = div.getElementsByTagName( "*" ); + a = div.getElementsByTagName( "a" )[ 0 ]; + + // Can't get basic test support + if ( !all || !all.length || !a ) { + return {}; + } + + // First batch of supports tests + select = document.createElement( "select" ); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName( "input" )[ 0 ]; + + support = { + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: ( div.firstChild.nodeType === 3 ), + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName( "tbody" ).length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName( "link" ).length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: ( a.getAttribute( "href" ) === "/a" ), + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.55$/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Make sure that if no value is specified for a checkbox + // that it defaults to "on". + // (WebKit defaults to "" instead) + checkOn: ( input.value === "on" ), + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // Will be defined later + submitBubbles: true, + changeBubbles: true, + focusinBubbles: false, + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { + div.attachEvent( "onclick", function click() { + // Cloning a node shouldn't copy over any + // bound event handlers (IE does this) + support.noCloneEvent = false; + div.detachEvent( "onclick", click ); + }); + div.cloneNode( true ).fireEvent( "onclick" ); + } + + // Check if a radio maintains it's value + // after being appended to the DOM + input = document.createElement("input"); + input.value = "t"; + input.setAttribute("type", "radio"); + support.radioValue = input.value === "t"; + + input.setAttribute("checked", "checked"); + div.appendChild( input ); + fragment = document.createDocumentFragment(); + fragment.appendChild( div.firstChild ); + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + div.innerHTML = ""; + + // Figure out if the W3C box model works as expected + div.style.width = div.style.paddingLeft = "1px"; + + // We use our own, invisible, body + body = document.createElement( "body" ); + bodyStyle = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + // Set background to avoid IE crashes when removing (#9028) + background: "none" + }; + for ( i in bodyStyle ) { + body.style[ i ] = bodyStyle[ i ]; + } + body.appendChild( div ); + documentElement.insertBefore( body, documentElement.firstChild ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + support.boxModel = div.offsetWidth === 2; + + if ( "zoom" in div.style ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.style.display = "inline"; + div.style.zoom = 1; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); + + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = ""; + div.innerHTML = "
"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); + } + + div.innerHTML = "
t
"; + tds = div.getElementsByTagName( "td" ); + + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Check if empty table cells still have offsetWidth/Height + // (IE < 8 fail this test) + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + div.innerHTML = ""; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. For more + // info see bug #3333 + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + if ( document.defaultView && document.defaultView.getComputedStyle ) { + marginDiv = document.createElement( "div" ); + marginDiv.style.width = "0"; + marginDiv.style.marginRight = "0"; + div.appendChild( marginDiv ); + support.reliableMarginRight = + ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; + } + + // Remove the body element we added + body.innerHTML = ""; + documentElement.removeChild( body ); + + // Technique from Juriy Zaytsev + // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ + // We only care about the case where non-standard event systems + // are used, namely in IE. Short-circuiting here helps us to + // avoid an eval call (in setAttribute) which can cause CSP + // to go haywire. See: https://developer.mozilla.org/en/Security/CSP + if ( div.attachEvent ) { + for( i in { + submit: 1, + change: 1, + focusin: 1 + } ) { + eventName = "on" + i; + isSupported = ( eventName in div ); + if ( !isSupported ) { + div.setAttribute( eventName, "return;" ); + isSupported = ( typeof div[ eventName ] === "function" ); + } + support[ i + "Bubbles" ] = isSupported; + } + } + + return support; +})(); + +// Keep track of boxModel +jQuery.boxModel = jQuery.support.boxModel; + + + + +var rbrace = /^(?:\{.*\}|\[.*\])$/, + rmultiDash = /([a-z])([A-Z])/g; + +jQuery.extend({ + cache: {}, + + // Please use with caution + uuid: 0, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ jQuery.expando ] = id = ++jQuery.uuid; + } else { + id = jQuery.expando; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); + } else { + cache[ id ] = jQuery.extend(cache[ id ], name); + } + } + + thisCache = cache[ id ]; + + // Internal jQuery data is stored in a separate object inside the object's data + // cache in order to avoid key collisions between internal data and user-defined + // data + if ( pvt ) { + if ( !thisCache[ internalKey ] ) { + thisCache[ internalKey ] = {}; + } + + thisCache = thisCache[ internalKey ]; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should + // not attempt to inspect the internal events object using jQuery.data, as this + // internal data object is undocumented and subject to change. + if ( name === "events" && !thisCache[name] ) { + return thisCache[ internalKey ] && thisCache[ internalKey ].events; + } + + return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache; + }, + + removeData: function( elem, name, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var internalKey = jQuery.expando, isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + + // See jQuery.data for more information + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; + + if ( thisCache ) { + delete thisCache[ name ]; + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !isEmptyDataObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( pvt ) { + delete cache[ id ][ internalKey ]; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject(cache[ id ]) ) { + return; + } + } + + var internalCache = cache[ id ][ internalKey ]; + + // Browsers that fail expando deletion also refuse to delete expandos on + // the window, but it will allow it on all other JS objects; other browsers + // don't care + if ( jQuery.support.deleteExpando || cache != window ) { + delete cache[ id ]; + } else { + cache[ id ] = null; + } + + // We destroyed the entire user cache at once because it's faster than + // iterating through each key, but we need to continue to persist internal + // data if it existed + if ( internalCache ) { + cache[ id ] = {}; + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + + cache[ id ][ internalKey ] = internalCache; + + // Otherwise, we need to eliminate the expando on the node to avoid + // false lookups in the cache for entries that no longer exist + } else if ( isNode ) { + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( jQuery.support.deleteExpando ) { + delete elem[ jQuery.expando ]; + } else if ( elem.removeAttribute ) { + elem.removeAttribute( jQuery.expando ); + } else { + elem[ jQuery.expando ] = null; + } + } + }, + + // For internal use only. + _data: function( elem, name, data ) { + return jQuery.data( elem, name, data, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + if ( elem.nodeName ) { + var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; + + if ( match ) { + return !(match === true || elem.getAttribute("classid") !== match); + } + } + + return true; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var data = null; + + if ( typeof key === "undefined" ) { + if ( this.length ) { + data = jQuery.data( this[0] ); + + if ( this[0].nodeType === 1 ) { + var attr = this[0].attributes, name; + for ( var i = 0, l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.substring(5) ); + + dataAttr( this[0], name, data[ name ] ); + } + } + } + } + + return data; + + } else if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + var parts = key.split("."); + parts[1] = parts[1] ? "." + parts[1] : ""; + + if ( value === undefined ) { + data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + + // Try to fetch any internally stored data first + if ( data === undefined && this.length ) { + data = jQuery.data( this[0], key ); + data = dataAttr( this[0], key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + + } else { + return this.each(function() { + var $this = jQuery( this ), + args = [ parts[0], value ]; + + $this.triggerHandler( "setData" + parts[1] + "!", args ); + jQuery.data( this, key, value ); + $this.triggerHandler( "changeData" + parts[1] + "!", args ); + }); + } + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + !jQuery.isNaN( data ) ? parseFloat( data ) : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON +// property to be considered empty objects; this property always exists in +// order to make sure JSON.stringify does not expose internal metadata +function isEmptyDataObject( obj ) { + for ( var name in obj ) { + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} + + + + +function handleQueueMarkDefer( elem, type, src ) { + var deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + defer = jQuery.data( elem, deferDataKey, undefined, true ); + if ( defer && + ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && + ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { + // Give room for hard-coded callbacks to fire first + // and eventually mark/queue something else on the element + setTimeout( function() { + if ( !jQuery.data( elem, queueDataKey, undefined, true ) && + !jQuery.data( elem, markDataKey, undefined, true ) ) { + jQuery.removeData( elem, deferDataKey, true ); + defer.resolve(); + } + }, 0 ); + } +} + +jQuery.extend({ + + _mark: function( elem, type ) { + if ( elem ) { + type = (type || "fx") + "mark"; + jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); + } + }, + + _unmark: function( force, elem, type ) { + if ( force !== true ) { + type = elem; + elem = force; + force = false; + } + if ( elem ) { + type = type || "fx"; + var key = type + "mark", + count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); + if ( count ) { + jQuery.data( elem, key, count, true ); + } else { + jQuery.removeData( elem, key, true ); + handleQueueMarkDefer( elem, type, "mark" ); + } + } + }, + + queue: function( elem, type, data ) { + if ( elem ) { + type = (type || "fx") + "queue"; + var q = jQuery.data( elem, type, undefined, true ); + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !q || jQuery.isArray(data) ) { + q = jQuery.data( elem, type, jQuery.makeArray(data), true ); + } else { + q.push( data ); + } + } + return q || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + fn = queue.shift(), + defer; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } + + if ( fn ) { + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift("inprogress"); + } + + fn.call(elem, function() { + jQuery.dequeue(elem, type); + }); + } + + if ( !queue.length ) { + jQuery.removeData( elem, type + "queue", true ); + handleQueueMarkDefer( elem, type, "queue" ); + } + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + } + + if ( data === undefined ) { + return jQuery.queue( this[0], type ); + } + return this.each(function() { + var queue = jQuery.queue( this, type, data ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; + type = type || "fx"; + + return this.queue( type, function() { + var elem = this; + setTimeout(function() { + jQuery.dequeue( elem, type ); + }, time ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, object ) { + if ( typeof type !== "string" ) { + object = type; + type = undefined; + } + type = type || "fx"; + var defer = jQuery.Deferred(), + elements = this, + i = elements.length, + count = 1, + deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + tmp; + function resolve() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + } + while( i-- ) { + if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || + ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || + jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && + jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { + count++; + tmp.done( resolve ); + } + } + resolve(); + return defer.promise(); + } +}); + + + + +var rclass = /[\n\t\r]/g, + rspace = /\s+/, + rreturn = /\r/g, + rtype = /^(?:button|input)$/i, + rfocusable = /^(?:button|input|object|select|textarea)$/i, + rclickable = /^a(?:rea)?$/i, + rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, + rinvalidChar = /\:/, + formHook, boolHook; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.attr ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, name, value, true, jQuery.prop ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this); + self.addClass( value.call(this, i, self.attr("class") || "") ); + }); + } + + if ( value && typeof value === "string" ) { + var classNames = (value || "").split( rspace ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className ) { + elem.className = value; + + } else { + var className = " " + elem.className + " ", + setClass = elem.className; + + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { + setClass += " " + classNames[c]; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.removeClass( value.call(this, i, self.attr("class")) ); + }); + } + + if ( (value && typeof value === "string") || value === undefined ) { + var classNames = (value || "").split( rspace ); + + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; + + if ( elem.nodeType === 1 && elem.className ) { + if ( value ) { + var className = (" " + elem.className + " ").replace(rclass, " "); + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + className = className.replace(" " + classNames[c] + " ", " "); + } + elem.className = jQuery.trim( className ); + + } else { + elem.className = ""; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this); + self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( rspace ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space seperated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " "; + for ( var i = 0, l = this.length; i < l; i++ ) { + if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var hooks, ret, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + return (elem.value || "").replace(rreturn, ""); + } + + return undefined; + } + + var isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var self = jQuery(this), val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, + index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type === "select-one"; + + // Nothing was selected + if ( index < 0 ) { + return null; + } + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + // Don't return options that are disabled or in a disabled optgroup + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + // Fixes Bug #2551 -- select.val() broken in IE after form.reset() + if ( one && !values.length && options.length ) { + return jQuery( options[ index ] ).val(); + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attrFn: { + val: true, + css: true, + html: true, + text: true, + data: true, + width: true, + height: true, + offset: true + }, + + attrFix: { + // Always normalize to ensure hook usage + tabindex: "tabIndex" + }, + + attr: function( elem, name, value, pass ) { + var nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return undefined; + } + + if ( pass && name in jQuery.attrFn ) { + return jQuery( elem )[ name ]( value ); + } + + // Fallback to prop when attributes are not supported + if ( !("getAttribute" in elem) ) { + return jQuery.prop( elem, name, value ); + } + + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // Normalize the name if needed + name = notxml && jQuery.attrFix[ name ] || name; + + hooks = jQuery.attrHooks[ name ]; + + if ( !hooks ) { + // Use boolHook for boolean attributes + if ( rboolean.test( name ) && + (typeof value === "boolean" || value === undefined || value.toLowerCase() === name.toLowerCase()) ) { + + hooks = boolHook; + + // Use formHook for forms and if the name contains certain characters + } else if ( formHook && (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { + hooks = formHook; + } + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return undefined; + + } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, "" + value ); + return value; + } + + } else if ( hooks && "get" in hooks && notxml ) { + return hooks.get( elem, name ); + + } else { + + ret = elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return ret === null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, name ) { + var propName; + if ( elem.nodeType === 1 ) { + name = jQuery.attrFix[ name ] || name; + + if ( jQuery.support.getSetAttribute ) { + // Use removeAttribute in browsers that support it + elem.removeAttribute( name ); + } else { + jQuery.attr( elem, name, "" ); + elem.removeAttributeNode( elem.getAttributeNode( name ) ); + } + + // Set corresponding property to false for boolean attributes + if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { + elem[ propName ] = false; + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to it's default in case type is set after value + // This is for element creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + }, + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabIndex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return undefined; + } + + var ret, hooks, + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // Try to normalize/fix the name + name = notxml && jQuery.propFix[ name ] || name; + + hooks = jQuery.propHooks[ name ]; + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return (elem[ name ] = value); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: {} +}); + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + // Align boolean attributes with corresponding properties + return elem[ jQuery.propFix[ name ] || name ] ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + var propName; + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + // value is true since we know at this point it's type boolean and not false + // Set boolean attributes to the same name and set the DOM property + propName = jQuery.propFix[ name ] || name; + if ( propName in elem ) { + // Only set the IDL specifically if it already exists on the element + elem[ propName ] = value; + } + + elem.setAttribute( name, name.toLowerCase() ); + } + return name; + } +}; + +// Use the value property for back compat +// Use the formHook for button elements in IE6/7 (#1954) +jQuery.attrHooks.value = { + get: function( elem, name ) { + if ( formHook && jQuery.nodeName( elem, "button" ) ) { + return formHook.get( elem, name ); + } + return elem.value; + }, + set: function( elem, value, name ) { + if ( formHook && jQuery.nodeName( elem, "button" ) ) { + return formHook.set( elem, value, name ); + } + // Does not return so that setAttribute is also used + elem.value = value; + } +}; + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !jQuery.support.getSetAttribute ) { + + // propFix is more comprehensive and contains all fixes + jQuery.attrFix = jQuery.propFix; + + // Use this for any attribute on a form in IE6/7 + formHook = jQuery.attrHooks.name = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret; + ret = elem.getAttributeNode( name ); + // Return undefined if nodeValue is empty string + return ret && ret.nodeValue !== "" ? + ret.nodeValue : + undefined; + }, + set: function( elem, value, name ) { + // Check form objects in IE (multiple bugs related) + // Only use nodeValue if the attribute node exists on the form + var ret = elem.getAttributeNode( name ); + if ( ret ) { + ret.nodeValue = value; + return value; + } + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); +} + + +// Some attributes require a special call on IE +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret === null ? undefined : ret; + } + }); + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Normalize to lowercase since IE uppercases css property names + return elem.style.cssText.toLowerCase() || undefined; + }, + set: function( elem, value ) { + return (elem.style.cssText = "" + value); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }); +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0); + } + } + }); +}); + + + + +var hasOwn = Object.prototype.hasOwnProperty, + rnamespaces = /\.(.*)$/, + rformElems = /^(?:textarea|input|select)$/i, + rperiod = /\./g, + rspaces = / /g, + rescape = /[^\w\s.|`]/g, + fcleanup = function( nm ) { + return nm.replace(rescape, "\\$&"); + }; + +/* + * A number of helper functions used for managing events. + * Many of the ideas behind this code originated from + * Dean Edwards' addEvent library. + */ +jQuery.event = { + + // Bind an event to an element + // Original by Dean Edwards + add: function( elem, types, handler, data ) { + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + if ( handler === false ) { + handler = returnFalse; + } else if ( !handler ) { + // Fixes bug #7229. Fix recommended by jdalton + return; + } + + var handleObjIn, handleObj; + + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + } + + // Make sure that the function being executed has a unique ID + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure + var elemData = jQuery._data( elem ); + + // If no elemData is found then we must be trying to bind to one of the + // banned noData elements + if ( !elemData ) { + return; + } + + var events = elemData.events, + eventHandle = elemData.handle; + + if ( !events ) { + elemData.events = events = {}; + } + + if ( !eventHandle ) { + elemData.handle = eventHandle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.handle.apply( eventHandle.elem, arguments ) : + undefined; + }; + } + + // Add elem as a property of the handle function + // This is to prevent a memory leak with non-native events in IE. + eventHandle.elem = elem; + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = types.split(" "); + + var type, i = 0, namespaces; + + while ( (type = types[ i++ ]) ) { + handleObj = handleObjIn ? + jQuery.extend({}, handleObjIn) : + { handler: handler, data: data }; + + // Namespaced event handlers + if ( type.indexOf(".") > -1 ) { + namespaces = type.split("."); + type = namespaces.shift(); + handleObj.namespace = namespaces.slice(0).sort().join("."); + + } else { + namespaces = []; + handleObj.namespace = ""; + } + + handleObj.type = type; + if ( !handleObj.guid ) { + handleObj.guid = handler.guid; + } + + // Get the current list of functions bound to this event + var handlers = events[ type ], + special = jQuery.event.special[ type ] || {}; + + // Init the event handler queue + if ( !handlers ) { + handlers = events[ type ] = []; + + // Check for a special event handler + // Only use addEventListener/attachEvent if the special + // events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add the function to the element's handler list + handlers.push( handleObj ); + + // Keep track of which events have been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + global: {}, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, pos ) { + // don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + if ( handler === false ) { + handler = returnFalse; + } + + var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ), + events = elemData && elemData.events; + + if ( !elemData || !events ) { + return; + } + + // types is actually an event object here + if ( types && types.type ) { + handler = types.handler; + types = types.type; + } + + // Unbind all events for the element + if ( !types || typeof types === "string" && types.charAt(0) === "." ) { + types = types || ""; + + for ( type in events ) { + jQuery.event.remove( elem, type + types ); + } + + return; + } + + // Handle multiple events separated by a space + // jQuery(...).unbind("mouseover mouseout", fn); + types = types.split(" "); + + while ( (type = types[ i++ ]) ) { + origType = type; + handleObj = null; + all = type.indexOf(".") < 0; + namespaces = []; + + if ( !all ) { + // Namespaced event handlers + namespaces = type.split("."); + type = namespaces.shift(); + + namespace = new RegExp("(^|\\.)" + + jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + eventType = events[ type ]; + + if ( !eventType ) { + continue; + } + + if ( !handler ) { + for ( j = 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( all || namespace.test( handleObj.namespace ) ) { + jQuery.event.remove( elem, origType, handleObj.handler, j ); + eventType.splice( j--, 1 ); + } + } + + continue; + } + + special = jQuery.event.special[ type ] || {}; + + for ( j = pos || 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( handler.guid === handleObj.guid ) { + // remove the given handler for the given type + if ( all || namespace.test( handleObj.namespace ) ) { + if ( pos == null ) { + eventType.splice( j--, 1 ); + } + + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + + if ( pos != null ) { + break; + } + } + } + + // remove generic event handler if no more handlers exist + if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { + if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + ret = null; + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + var handle = elemData.handle; + if ( handle ) { + handle.elem = null; + } + + delete elemData.events; + delete elemData.handle; + + if ( jQuery.isEmptyObject( elemData ) ) { + jQuery.removeData( elem, undefined, true ); + } + } + }, + + // Events that are safe to short-circuit if no handlers are attached. + // Native DOM events should not be added, they may have inline handlers. + customEvent: { + "getData": true, + "setData": true, + "changeData": true + }, + + trigger: function( event, data, elem, onlyHandlers ) { + // Event object or event type + var type = event.type || event, + namespaces = [], + exclusive; + + if ( type.indexOf("!") >= 0 ) { + // Exclusive events trigger only for the exact event (no namespaces) + type = type.slice(0, -1); + exclusive = true; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + + if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { + // No jQuery handlers for this event type, and it can't have inline handlers + return; + } + + // Caller can pass in an Event, Object, or just an event type string + event = typeof event === "object" ? + // jQuery.Event object + event[ jQuery.expando ] ? event : + // Object literal + new jQuery.Event( type, event ) : + // Just the event type (string) + new jQuery.Event( type ); + + event.type = type; + event.exclusive = exclusive; + event.namespace = namespaces.join("."); + event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); + + // triggerHandler() and global events don't bubble or run the default action + if ( onlyHandlers || !elem ) { + event.preventDefault(); + event.stopPropagation(); + } + + // Handle a global trigger + if ( !elem ) { + // TODO: Stop taunting the data cache; remove global events and always attach to document + jQuery.each( jQuery.cache, function() { + // internalKey variable is just used to make it easier to find + // and potentially change this stuff later; currently it just + // points to jQuery.expando + var internalKey = jQuery.expando, + internalCache = this[ internalKey ]; + if ( internalCache && internalCache.events && internalCache.events[ type ] ) { + jQuery.event.trigger( event, data, internalCache.handle.elem ); + } + }); + return; + } + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // Clean up the event in case it is being reused + event.result = undefined; + event.target = elem; + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data ? jQuery.makeArray( data ) : []; + data.unshift( event ); + + var cur = elem, + // IE doesn't like method names with a colon (#3533, #8272) + ontype = type.indexOf(":") < 0 ? "on" + type : ""; + + // Fire event on the current element, then bubble up the DOM tree + do { + var handle = jQuery._data( cur, "handle" ); + + event.currentTarget = cur; + if ( handle ) { + handle.apply( cur, data ); + } + + // Trigger an inline bound script + if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { + event.result = false; + event.preventDefault(); + } + + // Bubble up to document, then to window + cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window; + } while ( cur && !event.isPropagationStopped() ); + + // If nobody prevented the default action, do it now + if ( !event.isDefaultPrevented() ) { + var old, + special = jQuery.event.special[ type ] || {}; + + if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction)() check here because IE6/7 fails that test. + // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch. + try { + if ( ontype && elem[ type ] ) { + // Don't re-trigger an onFOO event when we call its FOO() method + old = elem[ ontype ]; + + if ( old ) { + elem[ ontype ] = null; + } + + jQuery.event.triggered = type; + elem[ type ](); + } + } catch ( ieError ) {} + + if ( old ) { + elem[ ontype ] = old; + } + + jQuery.event.triggered = undefined; + } + } + + return event.result; + }, + + handle: function( event ) { + event = jQuery.event.fix( event || window.event ); + // Snapshot the handlers list since a called handler may add/remove events. + var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0), + run_all = !event.exclusive && !event.namespace, + args = Array.prototype.slice.call( arguments, 0 ); + + // Use the fix-ed Event rather than the (read-only) native event + args[0] = event; + event.currentTarget = this; + + for ( var j = 0, l = handlers.length; j < l; j++ ) { + var handleObj = handlers[ j ]; + + // Triggered event must 1) be non-exclusive and have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event. + if ( run_all || event.namespace_re.test( handleObj.namespace ) ) { + // Pass in a reference to the handler function itself + // So that we can later remove it + event.handler = handleObj.handler; + event.data = handleObj.data; + event.handleObj = handleObj; + + var ret = handleObj.handler.apply( this, args ); + + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + return event.result; + }, + + props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // store a copy of the original event object + // and "clone" to set read-only properties + var originalEvent = event; + event = jQuery.Event( originalEvent ); + + for ( var i = this.props.length, prop; i; ) { + prop = this.props[ --i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Fix target property, if necessary + if ( !event.target ) { + // Fixes #1925 where srcElement might not be defined either + event.target = event.srcElement || document; + } + + // check if target is a textnode (safari) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && event.fromElement ) { + event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; + } + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && event.clientX != null ) { + var eventDocument = event.target.ownerDocument || document, + doc = eventDocument.documentElement, + body = eventDocument.body; + + event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); + event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); + } + + // Add which for key events + if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { + event.which = event.charCode != null ? event.charCode : event.keyCode; + } + + // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) + if ( !event.metaKey && event.ctrlKey ) { + event.metaKey = event.ctrlKey; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && event.button !== undefined ) { + event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); + } + + return event; + }, + + // Deprecated, use jQuery.guid instead + guid: 1E8, + + // Deprecated, use jQuery.proxy instead + proxy: jQuery.proxy, + + special: { + ready: { + // Make sure the ready event is setup + setup: jQuery.bindReady, + teardown: jQuery.noop + }, + + live: { + add: function( handleObj ) { + jQuery.event.add( this, + liveConvert( handleObj.origType, handleObj.selector ), + jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); + }, + + remove: function( handleObj ) { + jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); + } + }, + + beforeunload: { + setup: function( data, namespaces, eventHandle ) { + // We only want to do this special case on windows + if ( jQuery.isWindow( this ) ) { + this.onbeforeunload = eventHandle; + } + }, + + teardown: function( namespaces, eventHandle ) { + if ( this.onbeforeunload === eventHandle ) { + this.onbeforeunload = null; + } + } + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + if ( elem.detachEvent ) { + elem.detachEvent( "on" + type, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !this.preventDefault ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // timeStamp is buggy for some events on Firefox(#3843) + // So we won't rely on the native value + this.timeStamp = jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +function returnFalse() { + return false; +} +function returnTrue() { + return true; +} + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse +}; + +// Checks if an event happened on an element within another element +// Used in jQuery.event.special.mouseenter and mouseleave handlers +var withinElement = function( event ) { + // Check if mouse(over|out) are still within the same parent element + var parent = event.relatedTarget; + + // set the correct event type + event.type = event.data; + + // Firefox sometimes assigns relatedTarget a XUL element + // which we cannot access the parentNode property of + try { + + // Chrome does something similar, the parentNode property + // can be accessed but is null. + if ( parent && parent !== document && !parent.parentNode ) { + return; + } + + // Traverse up the tree + while ( parent && parent !== this ) { + parent = parent.parentNode; + } + + if ( parent !== this ) { + // handle event if we actually just moused on to a non sub-element + jQuery.event.handle.apply( this, arguments ); + } + + // assuming we've left the element since we most likely mousedover a xul element + } catch(e) { } +}, + +// In case of event delegation, we only need to rename the event.type, +// liveHandler will take care of the rest. +delegate = function( event ) { + event.type = event.data; + jQuery.event.handle.apply( this, arguments ); +}; + +// Create mouseenter and mouseleave events +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + setup: function( data ) { + jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); + }, + teardown: function( data ) { + jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); + } + }; +}); + +// submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function( data, namespaces ) { + if ( !jQuery.nodeName( this, "form" ) ) { + jQuery.event.add(this, "click.specialSubmit", function( e ) { + var elem = e.target, + type = elem.type; + + if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { + trigger( "submit", this, arguments ); + } + }); + + jQuery.event.add(this, "keypress.specialSubmit", function( e ) { + var elem = e.target, + type = elem.type; + + if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { + trigger( "submit", this, arguments ); + } + }); + + } else { + return false; + } + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialSubmit" ); + } + }; + +} + +// change delegation, happens here so we have bind. +if ( !jQuery.support.changeBubbles ) { + + var changeFilters, + + getVal = function( elem ) { + var type = elem.type, val = elem.value; + + if ( type === "radio" || type === "checkbox" ) { + val = elem.checked; + + } else if ( type === "select-multiple" ) { + val = elem.selectedIndex > -1 ? + jQuery.map( elem.options, function( elem ) { + return elem.selected; + }).join("-") : + ""; + + } else if ( jQuery.nodeName( elem, "select" ) ) { + val = elem.selectedIndex; + } + + return val; + }, + + testChange = function testChange( e ) { + var elem = e.target, data, val; + + if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { + return; + } + + data = jQuery._data( elem, "_change_data" ); + val = getVal(elem); + + // the current data will be also retrieved by beforeactivate + if ( e.type !== "focusout" || elem.type !== "radio" ) { + jQuery._data( elem, "_change_data", val ); + } + + if ( data === undefined || val === data ) { + return; + } + + if ( data != null || val ) { + e.type = "change"; + e.liveFired = undefined; + jQuery.event.trigger( e, arguments[1], elem ); + } + }; + + jQuery.event.special.change = { + filters: { + focusout: testChange, + + beforedeactivate: testChange, + + click: function( e ) { + var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; + + if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) { + testChange.call( this, e ); + } + }, + + // Change has to be called before submit + // Keydown will be called before keypress, which is used in submit-event delegation + keydown: function( e ) { + var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; + + if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) || + (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || + type === "select-multiple" ) { + testChange.call( this, e ); + } + }, + + // Beforeactivate happens also before the previous element is blurred + // with this event you can't trigger a change event, but you can store + // information + beforeactivate: function( e ) { + var elem = e.target; + jQuery._data( elem, "_change_data", getVal(elem) ); + } + }, + + setup: function( data, namespaces ) { + if ( this.type === "file" ) { + return false; + } + + for ( var type in changeFilters ) { + jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); + } + + return rformElems.test( this.nodeName ); + }, + + teardown: function( namespaces ) { + jQuery.event.remove( this, ".specialChange" ); + + return rformElems.test( this.nodeName ); + } + }; + + changeFilters = jQuery.event.special.change.filters; + + // Handle when the input is .focus()'d + changeFilters.focus = changeFilters.beforeactivate; +} + +function trigger( type, elem, args ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + // Don't pass args or remember liveFired; they apply to the donor event. + var event = jQuery.extend( {}, args[ 0 ] ); + event.type = type; + event.originalEvent = {}; + event.liveFired = undefined; + jQuery.event.handle.call( elem, event ); + if ( event.isDefaultPrevented() ) { + args[ 0 ].preventDefault(); + } +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + + function handler( donor ) { + // Donor event is always a native one; fix it and switch its type. + // Let focusin/out handler cancel the donor focus/blur event. + var e = jQuery.event.fix( donor ); + e.type = fix; + e.originalEvent = {}; + jQuery.event.trigger( e, null, e.target ); + if ( e.isDefaultPrevented() ) { + donor.preventDefault(); + } + } + }); +} + +jQuery.each(["bind", "one"], function( i, name ) { + jQuery.fn[ name ] = function( type, data, fn ) { + var handler; + + // Handle object literals + if ( typeof type === "object" ) { + for ( var key in type ) { + this[ name ](key, data, type[key], fn); + } + return this; + } + + if ( arguments.length === 2 || data === false ) { + fn = data; + data = undefined; + } + + if ( name === "one" ) { + handler = function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }; + handler.guid = fn.guid || jQuery.guid++; + } else { + handler = fn; + } + + if ( type === "unload" && name !== "one" ) { + this.one( type, data, fn ); + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.add( this[i], type, handler, data ); + } + } + + return this; + }; +}); + +jQuery.fn.extend({ + unbind: function( type, fn ) { + // Handle object literals + if ( typeof type === "object" && !type.preventDefault ) { + for ( var key in type ) { + this.unbind(key, type[key]); + } + + } else { + for ( var i = 0, l = this.length; i < l; i++ ) { + jQuery.event.remove( this[i], type, fn ); + } + } + + return this; + }, + + delegate: function( selector, types, data, fn ) { + return this.live( types, data, fn, selector ); + }, + + undelegate: function( selector, types, fn ) { + if ( arguments.length === 0 ) { + return this.unbind( "live" ); + + } else { + return this.die( types, null, fn, selector ); + } + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + + triggerHandler: function( type, data ) { + if ( this[0] ) { + return jQuery.event.trigger( type, data, this[0], true ); + } + }, + + toggle: function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, + guid = fn.guid || jQuery.guid++, + i = 0, + toggler = function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + }; + + // link all the functions, so any of them can unbind this click handler + toggler.guid = guid; + while ( i < args.length ) { + args[ i++ ].guid = guid; + } + + return this.click( toggler ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +}); + +var liveMap = { + focus: "focusin", + blur: "focusout", + mouseenter: "mouseover", + mouseleave: "mouseout" +}; + +jQuery.each(["live", "die"], function( i, name ) { + jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { + var type, i = 0, match, namespaces, preType, + selector = origSelector || this.selector, + context = origSelector ? this : jQuery( this.context ); + + if ( typeof types === "object" && !types.preventDefault ) { + for ( var key in types ) { + context[ name ]( key, data, types[key], selector ); + } + + return this; + } + + if ( name === "die" && !types && + origSelector && origSelector.charAt(0) === "." ) { + + context.unbind( origSelector ); + + return this; + } + + if ( data === false || jQuery.isFunction( data ) ) { + fn = data || returnFalse; + data = undefined; + } + + types = (types || "").split(" "); + + while ( (type = types[ i++ ]) != null ) { + match = rnamespaces.exec( type ); + namespaces = ""; + + if ( match ) { + namespaces = match[0]; + type = type.replace( rnamespaces, "" ); + } + + if ( type === "hover" ) { + types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); + continue; + } + + preType = type; + + if ( liveMap[ type ] ) { + types.push( liveMap[ type ] + namespaces ); + type = type + namespaces; + + } else { + type = (liveMap[ type ] || type) + namespaces; + } + + if ( name === "live" ) { + // bind live handler + for ( var j = 0, l = context.length; j < l; j++ ) { + jQuery.event.add( context[j], "live." + liveConvert( type, selector ), + { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); + } + + } else { + // unbind live handler + context.unbind( "live." + liveConvert( type, selector ), fn ); + } + } + + return this; + }; +}); + +function liveHandler( event ) { + var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, + elems = [], + selectors = [], + events = jQuery._data( this, "events" ); + + // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) + if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { + return; + } + + if ( event.namespace ) { + namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); + } + + event.liveFired = this; + + var live = events.live.slice(0); + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { + selectors.push( handleObj.selector ); + + } else { + live.splice( j--, 1 ); + } + } + + match = jQuery( event.target ).closest( selectors, event.currentTarget ); + + for ( i = 0, l = match.length; i < l; i++ ) { + close = match[i]; + + for ( j = 0; j < live.length; j++ ) { + handleObj = live[j]; + + if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { + elem = close.elem; + related = null; + + // Those two events require additional checking + if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { + event.type = handleObj.preType; + related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; + + // Make sure not to accidentally match a child element with the same selector + if ( related && jQuery.contains( elem, related ) ) { + related = elem; + } + } + + if ( !related || related !== elem ) { + elems.push({ elem: elem, handleObj: handleObj, level: close.level }); + } + } + } + } + + for ( i = 0, l = elems.length; i < l; i++ ) { + match = elems[i]; + + if ( maxLevel && match.level > maxLevel ) { + break; + } + + event.currentTarget = match.elem; + event.data = match.handleObj.data; + event.handleObj = match.handleObj; + + ret = match.handleObj.origHandler.apply( match.elem, arguments ); + + if ( ret === false || event.isPropagationStopped() ) { + maxLevel = match.level; + + if ( ret === false ) { + stop = false; + } + if ( event.isImmediatePropagationStopped() ) { + break; + } + } + } + + return stop; +} + +function liveConvert( type, selector ) { + return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&"); +} + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); + }; + + if ( jQuery.attrFn ) { + jQuery.attrFn[ name ] = true; + } +}); + + + +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){ + +var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, + done = 0, + toString = Object.prototype.toString, + hasDuplicate = false, + baseHasDuplicate = true, + rBackslash = /\\/g, + rNonWord = /\W/; + +// Here we check if the JavaScript engine is using some sort of +// optimization where it does not always call our comparision +// function. If that is the case, discard the hasDuplicate value. +// Thus far that includes Google Chrome. +[0, 0].sort(function() { + baseHasDuplicate = false; + return 0; +}); + +var Sizzle = function( selector, context, results, seed ) { + results = results || []; + context = context || document; + + var origContext = context; + + if ( context.nodeType !== 1 && context.nodeType !== 9 ) { + return []; + } + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + var m, set, checkSet, extra, ret, cur, pop, i, + prune = true, + contextXML = Sizzle.isXML( context ), + parts = [], + soFar = selector; + + // Reset the position of the chunker regexp (start from head) + do { + chunker.exec( "" ); + m = chunker.exec( soFar ); + + if ( m ) { + soFar = m[3]; + + parts.push( m[1] ); + + if ( m[2] ) { + extra = m[3]; + break; + } + } + } while ( m ); + + if ( parts.length > 1 && origPOS.exec( selector ) ) { + + if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { + set = posProcess( parts[0] + parts[1], context ); + + } else { + set = Expr.relative[ parts[0] ] ? + [ context ] : + Sizzle( parts.shift(), context ); + + while ( parts.length ) { + selector = parts.shift(); + + if ( Expr.relative[ selector ] ) { + selector += parts.shift(); + } + + set = posProcess( selector, set ); + } + } + + } else { + // Take a shortcut and set the context if the root selector is an ID + // (but not if it'll be faster if the inner selector is an ID) + if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && + Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { + + ret = Sizzle.find( parts.shift(), context, contextXML ); + context = ret.expr ? + Sizzle.filter( ret.expr, ret.set )[0] : + ret.set[0]; + } + + if ( context ) { + ret = seed ? + { expr: parts.pop(), set: makeArray(seed) } : + Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); + + set = ret.expr ? + Sizzle.filter( ret.expr, ret.set ) : + ret.set; + + if ( parts.length > 0 ) { + checkSet = makeArray( set ); + + } else { + prune = false; + } + + while ( parts.length ) { + cur = parts.pop(); + pop = cur; + + if ( !Expr.relative[ cur ] ) { + cur = ""; + } else { + pop = parts.pop(); + } + + if ( pop == null ) { + pop = context; + } + + Expr.relative[ cur ]( checkSet, pop, contextXML ); + } + + } else { + checkSet = parts = []; + } + } + + if ( !checkSet ) { + checkSet = set; + } + + if ( !checkSet ) { + Sizzle.error( cur || selector ); + } + + if ( toString.call(checkSet) === "[object Array]" ) { + if ( !prune ) { + results.push.apply( results, checkSet ); + + } else if ( context && context.nodeType === 1 ) { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { + results.push( set[i] ); + } + } + + } else { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && checkSet[i].nodeType === 1 ) { + results.push( set[i] ); + } + } + } + + } else { + makeArray( checkSet, results ); + } + + if ( extra ) { + Sizzle( extra, origContext, results, seed ); + Sizzle.uniqueSort( results ); + } + + return results; +}; + +Sizzle.uniqueSort = function( results ) { + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( var i = 1; i < results.length; i++ ) { + if ( results[i] === results[ i - 1 ] ) { + results.splice( i--, 1 ); + } + } + } + } + + return results; +}; + +Sizzle.matches = function( expr, set ) { + return Sizzle( expr, null, null, set ); +}; + +Sizzle.matchesSelector = function( node, expr ) { + return Sizzle( expr, null, null, [node] ).length > 0; +}; + +Sizzle.find = function( expr, context, isXML ) { + var set; + + if ( !expr ) { + return []; + } + + for ( var i = 0, l = Expr.order.length; i < l; i++ ) { + var match, + type = Expr.order[i]; + + if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { + var left = match[1]; + match.splice( 1, 1 ); + + if ( left.substr( left.length - 1 ) !== "\\" ) { + match[1] = (match[1] || "").replace( rBackslash, "" ); + set = Expr.find[ type ]( match, context, isXML ); + + if ( set != null ) { + expr = expr.replace( Expr.match[ type ], "" ); + break; + } + } + } + } + + if ( !set ) { + set = typeof context.getElementsByTagName !== "undefined" ? + context.getElementsByTagName( "*" ) : + []; + } + + return { set: set, expr: expr }; +}; + +Sizzle.filter = function( expr, set, inplace, not ) { + var match, anyFound, + old = expr, + result = [], + curLoop = set, + isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); + + while ( expr && set.length ) { + for ( var type in Expr.filter ) { + if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { + var found, item, + filter = Expr.filter[ type ], + left = match[1]; + + anyFound = false; + + match.splice(1,1); + + if ( left.substr( left.length - 1 ) === "\\" ) { + continue; + } + + if ( curLoop === result ) { + result = []; + } + + if ( Expr.preFilter[ type ] ) { + match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); + + if ( !match ) { + anyFound = found = true; + + } else if ( match === true ) { + continue; + } + } + + if ( match ) { + for ( var i = 0; (item = curLoop[i]) != null; i++ ) { + if ( item ) { + found = filter( item, match, i, curLoop ); + var pass = not ^ !!found; + + if ( inplace && found != null ) { + if ( pass ) { + anyFound = true; + + } else { + curLoop[i] = false; + } + + } else if ( pass ) { + result.push( item ); + anyFound = true; + } + } + } + } + + if ( found !== undefined ) { + if ( !inplace ) { + curLoop = result; + } + + expr = expr.replace( Expr.match[ type ], "" ); + + if ( !anyFound ) { + return []; + } + + break; + } + } + } + + // Improper expression + if ( expr === old ) { + if ( anyFound == null ) { + Sizzle.error( expr ); + + } else { + break; + } + } + + old = expr; + } + + return curLoop; +}; + +Sizzle.error = function( msg ) { + throw "Syntax error, unrecognized expression: " + msg; +}; + +var Expr = Sizzle.selectors = { + order: [ "ID", "NAME", "TAG" ], + + match: { + ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, + ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, + TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, + CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, + POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, + PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ + }, + + leftMatch: {}, + + attrMap: { + "class": "className", + "for": "htmlFor" + }, + + attrHandle: { + href: function( elem ) { + return elem.getAttribute( "href" ); + }, + type: function( elem ) { + return elem.getAttribute( "type" ); + } + }, + + relative: { + "+": function(checkSet, part){ + var isPartStr = typeof part === "string", + isTag = isPartStr && !rNonWord.test( part ), + isPartStrNotTag = isPartStr && !isTag; + + if ( isTag ) { + part = part.toLowerCase(); + } + + for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { + if ( (elem = checkSet[i]) ) { + while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} + + checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? + elem || false : + elem === part; + } + } + + if ( isPartStrNotTag ) { + Sizzle.filter( part, checkSet, true ); + } + }, + + ">": function( checkSet, part ) { + var elem, + isPartStr = typeof part === "string", + i = 0, + l = checkSet.length; + + if ( isPartStr && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + var parent = elem.parentNode; + checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; + } + } + + } else { + for ( ; i < l; i++ ) { + elem = checkSet[i]; + + if ( elem ) { + checkSet[i] = isPartStr ? + elem.parentNode : + elem.parentNode === part; + } + } + + if ( isPartStr ) { + Sizzle.filter( part, checkSet, true ); + } + } + }, + + "": function(checkSet, part, isXML){ + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); + }, + + "~": function( checkSet, part, isXML ) { + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !rNonWord.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; + checkFn = dirNodeCheck; + } + + checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); + } + }, + + find: { + ID: function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }, + + NAME: function( match, context ) { + if ( typeof context.getElementsByName !== "undefined" ) { + var ret = [], + results = context.getElementsByName( match[1] ); + + for ( var i = 0, l = results.length; i < l; i++ ) { + if ( results[i].getAttribute("name") === match[1] ) { + ret.push( results[i] ); + } + } + + return ret.length === 0 ? null : ret; + } + }, + + TAG: function( match, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( match[1] ); + } + } + }, + preFilter: { + CLASS: function( match, curLoop, inplace, result, not, isXML ) { + match = " " + match[1].replace( rBackslash, "" ) + " "; + + if ( isXML ) { + return match; + } + + for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { + if ( elem ) { + if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { + if ( !inplace ) { + result.push( elem ); + } + + } else if ( inplace ) { + curLoop[i] = false; + } + } + } + + return false; + }, + + ID: function( match ) { + return match[1].replace( rBackslash, "" ); + }, + + TAG: function( match, curLoop ) { + return match[1].replace( rBackslash, "" ).toLowerCase(); + }, + + CHILD: function( match ) { + if ( match[1] === "nth" ) { + if ( !match[2] ) { + Sizzle.error( match[0] ); + } + + match[2] = match[2].replace(/^\+|\s*/g, ''); + + // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' + var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( + match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || + !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); + + // calculate the numbers (first)n+(last) including if they are negative + match[2] = (test[1] + (test[2] || 1)) - 0; + match[3] = test[3] - 0; + } + else if ( match[2] ) { + Sizzle.error( match[0] ); + } + + // TODO: Move to normal caching system + match[0] = done++; + + return match; + }, + + ATTR: function( match, curLoop, inplace, result, not, isXML ) { + var name = match[1] = match[1].replace( rBackslash, "" ); + + if ( !isXML && Expr.attrMap[name] ) { + match[1] = Expr.attrMap[name]; + } + + // Handle if an un-quoted value was used + match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); + + if ( match[2] === "~=" ) { + match[4] = " " + match[4] + " "; + } + + return match; + }, + + PSEUDO: function( match, curLoop, inplace, result, not ) { + if ( match[1] === "not" ) { + // If we're dealing with a complex expression, or a simple one + if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { + match[3] = Sizzle(match[3], null, null, curLoop); + + } else { + var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); + + if ( !inplace ) { + result.push.apply( result, ret ); + } + + return false; + } + + } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { + return true; + } + + return match; + }, + + POS: function( match ) { + match.unshift( true ); + + return match; + } + }, + + filters: { + enabled: function( elem ) { + return elem.disabled === false && elem.type !== "hidden"; + }, + + disabled: function( elem ) { + return elem.disabled === true; + }, + + checked: function( elem ) { + return elem.checked === true; + }, + + selected: function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + parent: function( elem ) { + return !!elem.firstChild; + }, + + empty: function( elem ) { + return !elem.firstChild; + }, + + has: function( elem, i, match ) { + return !!Sizzle( match[3], elem ).length; + }, + + header: function( elem ) { + return (/h\d/i).test( elem.nodeName ); + }, + + text: function( elem ) { + var attr = elem.getAttribute( "type" ), type = elem.type; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); + }, + + radio: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; + }, + + checkbox: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; + }, + + file: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; + }, + + password: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; + }, + + submit: function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && "submit" === elem.type; + }, + + image: function( elem ) { + return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; + }, + + reset: function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && "reset" === elem.type; + }, + + button: function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && "button" === elem.type || name === "button"; + }, + + input: function( elem ) { + return (/input|select|textarea|button/i).test( elem.nodeName ); + }, + + focus: function( elem ) { + return elem === elem.ownerDocument.activeElement; + } + }, + setFilters: { + first: function( elem, i ) { + return i === 0; + }, + + last: function( elem, i, match, array ) { + return i === array.length - 1; + }, + + even: function( elem, i ) { + return i % 2 === 0; + }, + + odd: function( elem, i ) { + return i % 2 === 1; + }, + + lt: function( elem, i, match ) { + return i < match[3] - 0; + }, + + gt: function( elem, i, match ) { + return i > match[3] - 0; + }, + + nth: function( elem, i, match ) { + return match[3] - 0 === i; + }, + + eq: function( elem, i, match ) { + return match[3] - 0 === i; + } + }, + filter: { + PSEUDO: function( elem, match, i, array ) { + var name = match[1], + filter = Expr.filters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + + } else if ( name === "contains" ) { + return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; + + } else if ( name === "not" ) { + var not = match[3]; + + for ( var j = 0, l = not.length; j < l; j++ ) { + if ( not[j] === elem ) { + return false; + } + } + + return true; + + } else { + Sizzle.error( name ); + } + }, + + CHILD: function( elem, match ) { + var type = match[1], + node = elem; + + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + if ( type === "first" ) { + return true; + } + + node = elem; + + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + return true; + + case "nth": + var first = match[2], + last = match[3]; + + if ( first === 1 && last === 0 ) { + return true; + } + + var doneName = match[0], + parent = elem.parentNode; + + if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { + var count = 0; + + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + node.nodeIndex = ++count; + } + } + + parent.sizcache = doneName; + } + + var diff = elem.nodeIndex - last; + + if ( first === 0 ) { + return diff === 0; + + } else { + return ( diff % first === 0 && diff / first >= 0 ); + } + } + }, + + ID: function( elem, match ) { + return elem.nodeType === 1 && elem.getAttribute("id") === match; + }, + + TAG: function( elem, match ) { + return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; + }, + + CLASS: function( elem, match ) { + return (" " + (elem.className || elem.getAttribute("class")) + " ") + .indexOf( match ) > -1; + }, + + ATTR: function( elem, match ) { + var name = match[1], + result = Expr.attrHandle[ name ] ? + Expr.attrHandle[ name ]( elem ) : + elem[ name ] != null ? + elem[ name ] : + elem.getAttribute( name ), + value = result + "", + type = match[2], + check = match[4]; + + return result == null ? + type === "!=" : + type === "=" ? + value === check : + type === "*=" ? + value.indexOf(check) >= 0 : + type === "~=" ? + (" " + value + " ").indexOf(check) >= 0 : + !check ? + value && result !== false : + type === "!=" ? + value !== check : + type === "^=" ? + value.indexOf(check) === 0 : + type === "$=" ? + value.substr(value.length - check.length) === check : + type === "|=" ? + value === check || value.substr(0, check.length + 1) === check + "-" : + false; + }, + + POS: function( elem, match, i, array ) { + var name = match[2], + filter = Expr.setFilters[ name ]; + + if ( filter ) { + return filter( elem, i, match, array ); + } + } + } +}; + +var origPOS = Expr.match.POS, + fescape = function(all, num){ + return "\\" + (num - 0 + 1); + }; + +for ( var type in Expr.match ) { + Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); + Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); +} + +var makeArray = function( array, results ) { + array = Array.prototype.slice.call( array, 0 ); + + if ( results ) { + results.push.apply( results, array ); + return results; + } + + return array; +}; + +// Perform a simple check to determine if the browser is capable of +// converting a NodeList to an array using builtin methods. +// Also verifies that the returned array holds DOM nodes +// (which is not the case in the Blackberry browser) +try { + Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; + +// Provide a fallback method if it does not work +} catch( e ) { + makeArray = function( array, results ) { + var i = 0, + ret = results || []; + + if ( toString.call(array) === "[object Array]" ) { + Array.prototype.push.apply( ret, array ); + + } else { + if ( typeof array.length === "number" ) { + for ( var l = array.length; i < l; i++ ) { + ret.push( array[i] ); + } + + } else { + for ( ; array[i]; i++ ) { + ret.push( array[i] ); + } + } + } + + return ret; + }; +} + +var sortOrder, siblingCheck; + +if ( document.documentElement.compareDocumentPosition ) { + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { + return a.compareDocumentPosition ? -1 : 1; + } + + return a.compareDocumentPosition(b) & 4 ? -1 : 1; + }; + +} else { + sortOrder = function( a, b ) { + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Fallback to using sourceIndex (in IE) if it's available on both nodes + } else if ( a.sourceIndex && b.sourceIndex ) { + return a.sourceIndex - b.sourceIndex; + } + + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // If the nodes are siblings (or identical) we can do a quick check + if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; + } + + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; + } + + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + + siblingCheck = function( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; + }; +} + +// Utility function for retreiving the text value of an array of DOM nodes +Sizzle.getText = function( elems ) { + var ret = "", elem; + + for ( var i = 0; elems[i]; i++ ) { + elem = elems[i]; + + // Get the text from text nodes and CDATA nodes + if ( elem.nodeType === 3 || elem.nodeType === 4 ) { + ret += elem.nodeValue; + + // Traverse everything else, except comment nodes + } else if ( elem.nodeType !== 8 ) { + ret += Sizzle.getText( elem.childNodes ); + } + } + + return ret; +}; + +// Check to see if the browser returns elements by name when +// querying by getElementById (and provide a workaround) +(function(){ + // We're going to inject a fake input element with a specified name + var form = document.createElement("div"), + id = "script" + (new Date()).getTime(), + root = document.documentElement; + + form.innerHTML = ""; + + // Inject it into the root element, check its status, and remove it quickly + root.insertBefore( form, root.firstChild ); + + // The workaround has to do additional checks after a getElementById + // Which slows things down for other browsers (hence the branching) + if ( document.getElementById( id ) ) { + Expr.find.ID = function( match, context, isXML ) { + if ( typeof context.getElementById !== "undefined" && !isXML ) { + var m = context.getElementById(match[1]); + + return m ? + m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? + [m] : + undefined : + []; + } + }; + + Expr.filter.ID = function( elem, match ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + + return elem.nodeType === 1 && node && node.nodeValue === match; + }; + } + + root.removeChild( form ); + + // release memory in IE + root = form = null; +})(); + +(function(){ + // Check to see if the browser returns only elements + // when doing getElementsByTagName("*") + + // Create a fake element + var div = document.createElement("div"); + div.appendChild( document.createComment("") ); + + // Make sure no comments are found + if ( div.getElementsByTagName("*").length > 0 ) { + Expr.find.TAG = function( match, context ) { + var results = context.getElementsByTagName( match[1] ); + + // Filter out possible comments + if ( match[1] === "*" ) { + var tmp = []; + + for ( var i = 0; results[i]; i++ ) { + if ( results[i].nodeType === 1 ) { + tmp.push( results[i] ); + } + } + + results = tmp; + } + + return results; + }; + } + + // Check to see if an attribute returns normalized href attributes + div.innerHTML = ""; + + if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && + div.firstChild.getAttribute("href") !== "#" ) { + + Expr.attrHandle.href = function( elem ) { + return elem.getAttribute( "href", 2 ); + }; + } + + // release memory in IE + div = null; +})(); + +if ( document.querySelectorAll ) { + (function(){ + var oldSizzle = Sizzle, + div = document.createElement("div"), + id = "__sizzle__"; + + div.innerHTML = "

"; + + // Safari can't handle uppercase or unicode characters when + // in quirks mode. + if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { + return; + } + + Sizzle = function( query, context, extra, seed ) { + context = context || document; + + // Only use querySelectorAll on non-XML documents + // (ID selectors don't work in non-HTML documents) + if ( !seed && !Sizzle.isXML(context) ) { + // See if we find a selector to speed up + var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); + + if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { + // Speed-up: Sizzle("TAG") + if ( match[1] ) { + return makeArray( context.getElementsByTagName( query ), extra ); + + // Speed-up: Sizzle(".CLASS") + } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { + return makeArray( context.getElementsByClassName( match[2] ), extra ); + } + } + + if ( context.nodeType === 9 ) { + // Speed-up: Sizzle("body") + // The body element only exists once, optimize finding it + if ( query === "body" && context.body ) { + return makeArray( [ context.body ], extra ); + + // Speed-up: Sizzle("#ID") + } else if ( match && match[3] ) { + var elem = context.getElementById( match[3] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id === match[3] ) { + return makeArray( [ elem ], extra ); + } + + } else { + return makeArray( [], extra ); + } + } + + try { + return makeArray( context.querySelectorAll(query), extra ); + } catch(qsaError) {} + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + var oldContext = context, + old = context.getAttribute( "id" ), + nid = old || id, + hasParent = context.parentNode, + relativeHierarchySelector = /^\s*[+~]/.test( query ); + + if ( !old ) { + context.setAttribute( "id", nid ); + } else { + nid = nid.replace( /'/g, "\\$&" ); + } + if ( relativeHierarchySelector && hasParent ) { + context = context.parentNode; + } + + try { + if ( !relativeHierarchySelector || hasParent ) { + return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); + } + + } catch(pseudoError) { + } finally { + if ( !old ) { + oldContext.removeAttribute( "id" ); + } + } + } + } + + return oldSizzle(query, context, extra, seed); + }; + + for ( var prop in oldSizzle ) { + Sizzle[ prop ] = oldSizzle[ prop ]; + } + + // release memory in IE + div = null; + })(); +} + +(function(){ + var html = document.documentElement, + matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; + + if ( matches ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9 fails this) + var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), + pseudoWorks = false; + + try { + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( document.documentElement, "[test!='']:sizzle" ); + + } catch( pseudoError ) { + pseudoWorks = true; + } + + Sizzle.matchesSelector = function( node, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + + if ( !Sizzle.isXML( node ) ) { + try { + if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { + var ret = matches.call( node, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || !disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9, so check for that + node.document && node.document.nodeType !== 11 ) { + return ret; + } + } + } catch(e) {} + } + + return Sizzle(expr, null, null, [node]).length > 0; + }; + } +})(); + +(function(){ + var div = document.createElement("div"); + + div.innerHTML = "
"; + + // Opera can't find a second classname (in 9.6) + // Also, make sure that getElementsByClassName actually exists + if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { + return; + } + + // Safari caches class attributes, doesn't catch changes (in 3.2) + div.lastChild.className = "e"; + + if ( div.getElementsByClassName("e").length === 1 ) { + return; + } + + Expr.order.splice(1, 0, "CLASS"); + Expr.find.CLASS = function( match, context, isXML ) { + if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { + return context.getElementsByClassName(match[1]); + } + }; + + // release memory in IE + div = null; +})(); + +function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 && !isXML ){ + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( elem.nodeName.toLowerCase() === cur ) { + match = elem; + break; + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + for ( var i = 0, l = checkSet.length; i < l; i++ ) { + var elem = checkSet[i]; + + if ( elem ) { + var match = false; + + elem = elem[dir]; + + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; + break; + } + + if ( elem.nodeType === 1 ) { + if ( !isXML ) { + elem.sizcache = doneName; + elem.sizset = i; + } + + if ( typeof cur !== "string" ) { + if ( elem === cur ) { + match = true; + break; + } + + } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { + match = elem; + break; + } + } + + elem = elem[dir]; + } + + checkSet[i] = match; + } + } +} + +if ( document.documentElement.contains ) { + Sizzle.contains = function( a, b ) { + return a !== b && (a.contains ? a.contains(b) : true); + }; + +} else if ( document.documentElement.compareDocumentPosition ) { + Sizzle.contains = function( a, b ) { + return !!(a.compareDocumentPosition(b) & 16); + }; + +} else { + Sizzle.contains = function() { + return false; + }; +} + +Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +var posProcess = function( selector, context ) { + var match, + tmpSet = [], + later = "", + root = context.nodeType ? [context] : context; + + // Position selectors must be done after the filter + // And so must :not(positional) so we move all PSEUDOs to the end + while ( (match = Expr.match.PSEUDO.exec( selector )) ) { + later += match[0]; + selector = selector.replace( Expr.match.PSEUDO, "" ); + } + + selector = Expr.relative[selector] ? selector + "*" : selector; + + for ( var i = 0, l = root.length; i < l; i++ ) { + Sizzle( selector, root[i], tmpSet ); + } + + return Sizzle.filter( later, tmpSet ); +}; + +// EXPOSE +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.filters; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})(); + + +var runtil = /Until$/, + rparentsprev = /^(?:parents|prevUntil|prevAll)/, + // Note: This RegExp should be improved, or likely pulled from Sizzle + rmultiselector = /,/, + isSimple = /^.[^:#\[\.,]*$/, + slice = Array.prototype.slice, + POS = jQuery.expr.match.POS, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var self = this, + i, l; + + if ( typeof selector !== "string" ) { + return jQuery( selector ).filter(function() { + for ( i = 0, l = self.length; i < l; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }); + } + + var ret = this.pushStack( "", "find", selector ), + length, n, r; + + for ( i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( n = length; n < ret.length; n++ ) { + for ( r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }, + + has: function( target ) { + var targets = jQuery( target ); + return this.filter(function() { + for ( var i = 0, l = targets.length; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false), "not", selector); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }, + + is: function( selector ) { + return !!selector && ( typeof selector === "string" ? + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var ret = [], i, l, cur = this[0]; + + // Array + if ( jQuery.isArray( selectors ) ) { + var match, selector, + matches = {}, + level = 1; + + if ( cur && selectors.length ) { + for ( i = 0, l = selectors.length; i < l; i++ ) { + selector = selectors[i]; + + if ( !matches[ selector ] ) { + matches[ selector ] = POS.test( selector ) ? + jQuery( selector, context || this.context ) : + selector; + } + } + + while ( cur && cur.ownerDocument && cur !== context ) { + for ( selector in matches ) { + match = matches[ selector ]; + + if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { + ret.push({ selector: selector, elem: cur, level: level }); + } + } + + cur = cur.parentNode; + level++; + } + } + + return ret; + } + + // String + var pos = POS.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( i = 0, l = this.length; i < l; i++ ) { + cur = this[i]; + + while ( cur ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + + } else { + cur = cur.parentNode; + if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { + break; + } + } + } + } + + ret = ret.length > 1 ? jQuery.unique( ret ) : ret; + + return this.pushStack( ret, "closest", selectors ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + if ( !elem || typeof elem === "string" ) { + return jQuery.inArray( this[0], + // If it receives a string, the selector is used + // If it receives nothing, the siblings are used + elem ? jQuery( elem ) : this.parent().children() ); + } + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }, + + andSelf: function() { + return this.add( this.prevObject ); + } +}); + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return jQuery.nth( elem, 2, "nextSibling" ); + }, + prev: function( elem ) { + return jQuery.nth( elem, 2, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( elem.parentNode.firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.makeArray( elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ), + // The variable 'args' was introduced in + // https://github.com/jquery/jquery/commit/52a0238 + // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. + // http://code.google.com/p/v8/issues/detail?id=1050 + args = slice.call(arguments); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, args.join(",") ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + nth: function( cur, result, dir, elem ) { + result = result || 1; + var num = 0; + + for ( ; cur; cur = cur[dir] ) { + if ( cur.nodeType === 1 && ++num === result ) { + break; + } + } + + return cur; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return (elem === qualifier) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem, i ) { + return (jQuery.inArray( elem, qualifier ) >= 0) === keep; + }); +} + + + + +var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rtagName = /<([\w:]+)/, + rtbody = /", "" ], + legend: [ 1, "
", "
" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + col: [ 2, "", "
" ], + area: [ 1, "", "" ], + _default: [ 0, "", "" ] + }; + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// IE can't serialize and