diff --git a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Debug/AzureStoreService.csx/roles/MVCAzureStore/bin/StorageClient.xml b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Debug/AzureStoreService.csx/roles/MVCAzureStore/bin/StorageClient.xml
index 8adfba6..05d64df 100644
--- a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Debug/AzureStoreService.csx/roles/MVCAzureStore/bin/StorageClient.xml
+++ b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Debug/AzureStoreService.csx/roles/MVCAzureStore/bin/StorageClient.xml
@@ -1,2002 +1,2002 @@
-
-
-
- StorageClient
-
-
-
-
- This type represents the different constituent parts that make up a resource Uri in the context of cloud services.
-
-
-
-
- Construct a ResourceUriComponents object.
-
- The account name that should become part of the URI.
- The container name (container, queue or table name) that should become part of the URI.
- Remaining part of the URI.
-
-
-
- Construct a ResourceUriComponents object.
-
- The account name that should become part of the URI.
- The container name (container, queue or table name) that should become part of the URI.
-
-
-
- Construct a ResourceUriComponents object.
-
- The account name that should become part of the URI.
-
-
-
- Construct a ResourceUriComponents object.
-
-
-
-
- The account name in the URI.
-
-
-
-
- This is really the first component (delimited by '/') after the account name. Since it happens to
- be a container name in the context of all our storage services (containers in blob storage,
- queues in the queue service and table names in table storage), it's named as ContainerName to make it more
- readable at the cost of slightly being incorrectly named.
-
-
-
-
- The remaining string in the URI.
-
-
-
-
- Create a canonicalized string out of HTTP request header contents for signing
- blob/queue requests with the Shared Authentication scheme.
-
- The uri address of the HTTP request.
- Components of the Uri extracted out of the request.
- The method of the HTTP request (GET/PUT, etc.).
- The content type of the HTTP request.
- The date of the HTTP request.
- Should contain other headers of the HTTP request.
- A canonicalized string of the HTTP request.
-
-
-
- Canonicalize HTTP header contents.
-
- An HttpWebRequest object.
- Components of the Uri extracted out of the request.
- The canonicalized string of the given HTTP request's header.
-
-
-
- Creates a standard datetime string for the shared key lite authentication scheme.
-
- DateTime value to convert to a string in the expected format.
-
-
-
-
- An internal class that stores the canonicalized string version of an HTTP request.
-
-
-
-
- Constructor for the class.
-
- The first canonicalized element to start the string with.
-
-
-
- Append additional canonicalized element to the string.
-
- An additional canonicalized element to append to the string.
-
-
-
- Property for the canonicalized string.
-
-
-
-
- Use this class to extract various header values from Http requests.
-
-
-
-
- A helper function for extracting HTTP header values from a NameValueCollection object.
-
- A NameValueCollection object that should contain HTTP header name-values pairs.
- Name of the header that we want to get values of.
- A array list of values for the header. The values are in the same order as they are stored in the NameValueCollection object.
-
-
-
- Constructs an URI given all its constituents
-
-
- This is the service endpoint in case of path-style URIs and a host suffix in case of host-style URIs
- IMPORTANT: This does NOT include the service name or account name
-
- Uri constituents
- Indicates whether to construct a path-style Uri (true) or host-style URI (false)
- Full uri
-
-
-
- Constructs a path-style resource URI given all its constituents
-
-
-
-
- Constructs a host-style resource URI given all its constituents
-
-
-
-
- Given the host suffix part, service name and account name, this method constructs the account Uri
-
-
-
-
- Objects of this class contain the credentials (name and key) of a storage account.
-
-
-
-
- Create a SharedKeyCredentials object given an account name and a shared key.
-
-
-
-
- Signs the request appropriately to make it an authenticated request.
- Note that this method takes the URI components as decoding the URI components requires the knowledge
- of whether the URI is in path-style or host-style and a host-suffix if it's host-style.
-
-
-
-
- Signs requests using the SharedKeyLite authentication scheme with is used for the table storage service.
-
-
-
-
- This is the default content-type xStore uses when no content type is specified
-
-
-
-
- When transmitting a blob that is larger than this constant, this library automatically
- transmits the blob as individual blocks. I.e., the blob is (1) partitioned
- into separate parts (these parts are called blocks) and then (2) each of the blocks is
- transmitted separately.
- The maximum size of this constant as supported by the real blob storage service is currently
- 64 MB; the development storage tool currently restricts this value to 2 MB.
- Setting this constant can have a significant impact on the performance for uploading or
- downloading blobs.
- As a general guideline: If you run in a reliable environment increase this constant to reduce
- the amount of roundtrips. In an unreliable environment keep this constant low to reduce the
- amount of data that needs to be retransmitted in case of connection failures.
-
-
-
-
- The size of a single block when transmitting a blob that is larger than the
- MaximumBlobSizeBeforeTransmittingAsBlocks constant (see above).
- The maximum size of this constant is currently 4 MB; the development storage
- tool currently restricts this value to 1 MB.
- Setting this constant can have a significant impact on the performance for uploading or
- downloading blobs.
- As a general guideline: If you run in a reliable environment increase this constant to reduce
- the amount of roundtrips. In an unreliable environment keep this constant low to reduce the
- amount of data that needs to be retransmitted in case of connection failures.
-
-
-
-
- Contains regular expressions for checking whether container and table names conform
- to the rules of the storage REST protocols.
-
-
-
-
- Container or queue names that match against this regular expression are valid.
-
-
-
-
- Table names that match against this regular expression are valid.
-
-
-
-
- Converts the date time to a valid string form as per HTTP standards
-
-
-
-
- Parse a string having the date time information in acceptable formats according to HTTP standards
-
-
-
-
- Copies from one stream to another
-
- The stream to copy from
- The stream to copy to
-
-
-
- Error codes that can be returned by the storage service or the client library.
- These are divided into server errors and client errors depending on which side
- the error can be attributed to.
-
-
-
-
- The base class for storage service exceptions
-
-
-
-
- Initializes a new instance of the class with
- serialized data.
-
- The object that contains serialized object
- data about the exception being thrown
- The object that contains contextual information
- about the source or destionation.
-
-
-
- Sets the object with additional exception information
-
- The object that holds the
- serialized object data.
- The object that contains contextual information
- about the source or destionation.
-
-
-
- The Http status code returned by the storage service
-
-
-
-
- The specific error code returned by the storage service
-
-
-
-
-
-
-
-
-
- Server exceptions are those due to server side problems.
- These may be transient and requests resulting in such exceptions
- can be retried with the same parameters.
-
-
-
-
- Initializes a new instance of the class with
- serialized data.
-
- The object that contains serialized object
- data about the exception being thrown
- The object that contains contextual information
- about the source or destionation.
-
-
-
- Client side exceptions are due to incorrect parameters to the request.
- These requests should not be retried with the same parameters
-
-
-
-
- Initializes a new instance of the class with
- serialized data.
-
- The object that contains serialized object
- data about the exception being thrown
- The object that contains contextual information
- about the source or destionation.
-
-
-
- Error code strings that are common to all storage services
-
-
-
-
- Error code strings that are specific to blob service
-
-
-
-
- Error code strings that are specific to queue service
-
-
-
-
- Error code strings that are specific to queue service
-
- public static class TableErrorCodeStrings
-
-
-
- The entry point of the blob storage API
-
-
-
-
- Factory method for BlobStorage
-
- The base URI of the blob storage service
- If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used.
- If false host-style URIs (http://accountname.baseuri/containername/objectname) are used,
- where baseuri is the URI of the service.
- If null, the choice is made automatically: path-style URIs if host name part of base URI is an
- IP addres, host-style otherwise.
- The name of the storage account
- Authentication key used for signing requests
- A newly created BlobStorage instance
-
-
-
- Factory method for BlobStorage
-
- Account information
- A newly created BlobStorage instance
-
-
-
- Get a reference to a newly created BlobContainer object.
- This method does not make any calls to the storage service.
-
- The name of the container
- A reference to a newly created BlobContainer object
-
-
-
- Lists the containers within the account.
-
- A list of containers
-
-
-
- The default timeout
-
-
-
-
- The default retry policy
-
-
-
-
- The time out for each request to the storage service.
-
-
-
-
- The retry policy used for retrying requests
-
-
-
-
- The base URI of the blob storage service
-
-
-
-
- The name of the storage account
-
-
-
-
- Indicates whether to use/generate path-style or host-style URIs
-
-
-
-
- Get a reference to a BlobContainer object with the given name.
- This method does not make any calls to the storage service.
-
- The name of the container
- A reference to a newly created BlobContainer object
-
-
-
- Lists the containers within the account.
-
- A list of containers
-
-
-
- The blob container class.
- Used to access and enumerate blobs in the container.
- Storage key credentials are needed to access private blobs but not for public blobs.
-
-
-
-
- Use this constructor to access private blobs.
-
- The base Uri for the storage endpoint
- Name of the storage account
- Name of the container
-
-
-
- Use this constructor to access private blobs.
-
- The base Uri for the storage endpoint
-
- If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used and if false
- host-style URIs (http://accountname.baseuri/containername/objectname) are used, where baseuri is the
- URI of the service
-
- Name of the storage account
- Name of the container
- Date of last modification
-
-
-
- Create the container if it does not exist.
- The container is created with private access control and no metadata.
-
- true if the container was created. false if the container already exists
-
-
-
- Create the container with the specified metadata and access control if it does not exist
-
- The metadata for the container. Can be null to indicate no metadata
- The access control (public or private) with which to create the container
- true if the container was created. false if the container already exists
-
-
-
- Check if the blob container exists
-
- true if the container exists, false otherwise.
-
-
-
- Get the properties for the container if it exists.
-
- The properties for the container if it exists, null otherwise
-
-
-
- Get the access control permissions associated with the container.
-
-
-
-
-
- Set the access control permissions associated with the container.
-
- The permission to set
-
-
-
- Deletes the current container.
-
-
-
-
- Check if the blob container exists
-
- Name of the BLOB.
- true if the blob exists, false otherwise.
-
-
-
- Create a new blob or overwrite an existing blob.
-
- The properties of the blob
- The contents of the blob
- Should this request overwrite an existing blob ?
- true if the blob was created. false if the blob already exists and was set to false
- The LastModifiedTime property of is set as a result of this call.
- This method also has an effect on the ETag values that are managed by the service.
-
-
-
- Updates an existing blob if it has not been modified since the specified time which is typically
- the last modified time of the blob when you retrieved it.
- Use this method to implement optimistic concurrency by avoiding clobbering changes to the blob
- made by another writer.
-
- The properties of the blob. This object should be one previously
- obtained from a call to GetBlob or GetBlobProperties and have its LastModifiedTime property set.
- The contents of the blob. The contents of the blob should be readable
- true if the blob was updated. false if the blob has changed since the last time
- The LastModifiedTime property of is set as a result of this call.
- This method also has an effect on the ETag values that are managed by the service if the update was
- successful.
-
-
-
- Get the blob contents and properties if the blob exists
-
- The name of the blob
- Object in which the contents are returned.
- This object should contain a writable stream or should be a default constructed object.
- Should the blob be gotten in pieces. This requires more round-trips, but will retry smaller pieces in case of failure.
- The properties of the blob if the blob exists.
-
-
-
- Gets the blob contents and properties if the blob has not been modified since the time specified.
- Use this method if you have cached the contents of a blob and want to avoid retrieving the blob
- if it has not changed since the last time you retrieved it.
-
- The properties of the blob obtained from an earlier call to GetBlob. This
- parameter is updated by the call if the blob has been modified
- Contains the stream to which the contents of the blob are written if it has been
- modified
- Should the blob be gotten in pieces. This requires more round-trips, but will retry smaller pieces in case of failure.
- true if the blob has been modified, false otherwise
-
-
-
- Get the properties of the blob if it exists.
- This method is also the simplest way to check if a blob exists.
-
- The name of the blob
- The properties of the blob if it exists. null otherwise.
- The properties for the contents of the blob are not set
-
-
-
- Set the metadata of an existing blob.
-
- The blob properties object whose metadata is to be updated
-
-
-
- Set the metadata of an existing blob if it has not been modified since it was last retrieved.
-
- The blob properties object whose metadata is to be updated.
- Typically obtained by a previous call to GetBlob or GetBlobProperties
- true if the blob metadata was updated. false if it was not updated because the blob
- has been modified
-
-
-
- Delete a blob with the given name
-
- The name of the blob
- true if the blob exists and was successfully deleted, false if the blob does not exist
-
-
-
- Delete a blob with the given name if the blob has not been modified since it was last obtained.
- Use this method for optimistic concurrency to avoid deleting a blob that has been modified since
- the last time you retrieved it
-
- A blob object (typically previously obtained from a GetBlob call)
- This out parameter is set to true if the blob was not deleted because
- it was modified
- true if the blob exists and was successfully deleted, false if the blob does not exist or was
- not deleted because the blob was modified.
-
-
-
- Enumerates all blobs with a given prefix.
-
-
- If true common prefixes with "/" as seperator
- The list of blob properties and common prefixes
-
-
-
- The time out for each request to the storage service.
-
-
-
-
- The retry policy used for retrying requests
-
-
-
-
- The base URI of the blob storage service
-
-
-
-
- The name of the storage account
-
-
-
-
- The name of the blob container.
-
-
-
-
- Indicates whether to use/generate path-style or host-style URIs
-
-
-
-
- The URI of the container
-
-
-
-
- The timestamp for last modification of container.
-
-
-
-
- Create the container with the specified access control if it does not exist
-
- The metadata for the container. Can be null to indicate no metadata
- The access control (public or private) with which to create the container
- true if the container was created. false if the container already exists
-
-
-
- Get the properties for the container if it exists.
-
- The metadata for the container if it exists, null otherwise
-
-
-
- Get the access control permissions associated with the container.
-
-
-
-
-
- Get the access control permissions associated with the container.
-
-
-
-
-
- Create a new blob or overwrite an existing blob.
-
-
- The properties of the blob
- The contents of the blob
- Should this request overwrite an existing blob ?
- true if the blob was created. false if the blob already exists and was set to false
- The LastModifiedTime property of is set as a result of this call
-
-
-
- Updates an existing blob if it has not been modified since the specified time which is typically
- the last modified time of the blob when you retrieved it.
- Use this method to implement optimistic concurrency by avoiding clobbering changes to the blob
- made by another writer.
-
- The properties of the blob. This object should be one previously
- obtained from a call to GetBlob or GetBlobProperties and have its LastModifiedTime property set.
- The contents of the blob. The contents of the blob should be readable
- true if the blob was updated. false if the blob has changed since the last time
- The LastModifiedTime property of is set as a result of this call
-
-
-
- Get the blob contents and properties if the blob exisits
-
- The name of the blob
- Object in which the contents are returned.
- This object should contain a writable stream or should be a default constructed object.
- Should the blob be gotten in pieces. This requires more round-trips, but will retry smaller piecs in case of failure.
- The properties of the blob if the blob exists.
-
-
-
- Gets the blob contents and properties if the blob has not been modified since the time specified.
- Use this method if you have cached the contents of a blob and want to avoid retrieving the blob
- if it has not changed since the last time you retrieved it.
-
- The properties of the blob obtained from an earlier call to GetBlob. This
- parameter is updated by the call if the blob has been modified
- Contains the stream to which the contents of the blob are written if it has been
- modified
- Should the blob be gotten in pieces. This requires more round-trips, but will retry smaller piecs in case of failure.
- true if the blob has been modified, false otherwise
-
-
-
- Get the properties of the blob if it exists.
- This method is also the simplest way to check if a blob exists.
-
- The name of the blob
- The properties of the blob if it exists. null otherwise.
- The properties for the contents of the blob are not set
-
-
-
- Set the metadata of an existing blob.
-
- The blob properties object whose metadata is to be updated
-
-
-
- Set the metadata of an existing blob if it has not been modified since it was last retrieved.
-
- The blob properties object whose metadata is to be updated.
- Typically obtained by a previous call to GetBlob or GetBlobProperties
-
-
-
- Delete a blob with the given name
-
- The name of the blob
- true if the blob exists and was successfully deleted, false if the blob does not exist
-
-
-
- Delete a blob with the given name if the blob has not been modified since it was last obtained.
- Use this method for optimistic concurrency to avoid deleting a blob that has been modified since
- the last time you retrieved it
-
- A blob object (typically previously obtained from a GetBlob call)
- This out parameter is set to true if the blob was not deleted because
- it was modified
- true if the blob exists and was successfully deleted, false if the blob does not exist or was
- not deleted because the blob was modified.
-
-
-
- Enumerates all blobs with a given prefix.
-
-
- If true common prefixes with "/" as seperator
- The list of blob properties and common prefixes
-
-
-
- Uploads a blob in chunks.
-
-
-
-
-
-
-
-
-
- Helper method used for getting blobs, ranges of blobs and blob properties.
-
- Name of the blob
- The output stream to write blob data to. Can be null if only retrieving blob properties
- The If-None-Match header. Used to avoid downloading blob data if the blob has not changed
- The If-Match header. Used to ensure that all chunks of the blob are of the same blob
- The offset of the blob data to begin downloading from. Set to 0 to download all data.
- The length of the blob data to download. Set to 0 to download all data
- Query paramters to add to the request.
- Whether the blob had been modfied with respect to the
-
-
-
-
- Helper class for loading values from an XML segment
-
-
-
-
- The entry point of the queue storage API
-
-
-
-
- Factory method for QueueStorage
-
- The base URI of the queue service
- If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used.
- If false host-style URIs (http://accountname.baseuri/containername/objectname) are used,
- where baseuri is the URI of the service.
- If null, the choice is made automatically: path-style URIs if host name part of base URI is an
- IP addres, host-style otherwise.
- The name of the storage account
- Authentication key used for signing requests
- A newly created QueueStorage instance
-
-
-
- Get a reference to a Queue object with a specified name. This method does not make a call to
- the queue service.
-
- The name of the queue
- A newly created queue object
-
-
-
- Lists the queues within the account.
-
- A list of queues
-
-
-
- Lists the queues within the account that start with the given prefix.
-
- If prefix is null returns all queues.
- A list of queues.
-
-
-
- The default timeout
-
-
-
-
- The default retry policy
-
-
-
-
- The time out for each request to the storage service.
-
-
-
-
- The retry policy used for retrying requests
-
-
-
-
- The base URI of the blob storage service
-
-
-
-
- The name of the storage account
-
-
-
-
- Indicates whether to use/generate path-style or host-style URIs
-
-
-
-
- Objects of this class represent a single message in the queue.
-
-
-
-
- The maximum message size in bytes.
-
-
-
-
- The maximum amount of time a message is kept in the queue. Max value is 7 days.
- Value is given in seconds.
-
-
-
-
- This constructor is not publicly exposed.
-
-
-
-
- Creates a message and initializes the content of the message to be the specified string.
-
- A string representing the contents of the message.
-
-
-
- Creates a message and given the specified byte contents.
- In this implementation, regardless of whether an XML or binary data is passed into this
- function, message contents are converted to base64 before passing the data to the queue service.
- When calculating the size of the message, the size of the base64 encoding is thus the important
- parameter.
-
-
-
-
-
- Returns the the contents of the message as a string.
-
-
-
-
- Returns the content of the message as a byte array
-
-
-
-
- When calling the Get() operation on a queue, the content of messages
- returned in the REST protocol are represented as Base64-encoded strings.
- This internal function transforms the Base64 representation into a byte array.
-
- The Base64-encoded string.
-
-
-
- Internal method used for creating the XML that becomes part of a REST request
-
-
-
-
- A unique ID of the message as returned from queue operations.
-
-
-
-
- When a message is retrieved from a queue, a PopReceipt is returned. The PopReceipt is used when
- deleting a message from the queue.
-
-
-
-
- The point in time when the message was put into the queue.
-
-
-
-
- A message's expiration time.
-
-
-
-
- The point in time when a message becomes visible again after a Get() operation was called
- that returned the message.
-
-
-
-
- Queues in the storage client library expose a functionality for listening for incoming messages.
- If a message is put into a queue, a corresponding event is issued and this delegate is called. This functionality
- is implemented internally in this library by periodically polling for incoming messages.
-
- The queue that has received a new event.
- The event argument containing the message.
-
-
-
- The argument class for the MessageReceived event.
-
-
-
-
- The message itself.
-
-
-
-
- Constructor for creating a message received argument.
-
-
-
-
-
- The message received by the queue.
-
-
-
-
- The approximated amount of messages in the queue.
-
-
-
-
- Metadata for the queue in the form of name-value pairs.
-
-
-
-
- Objects of this class represent a queue in a user's storage account.
-
-
-
-
- The name of the queue.
-
-
-
-
- The user account this queue lives in.
-
-
-
-
- This constructor is only called by subclasses.
-
-
-
-
- Creates a queue in the specified storage account.
-
- true if a queue with the same name already exists.
- true if the queue was successfully created.
-
-
-
- Creates a queue in the specified storage account.
-
- true if the queue was successfully created.
-
-
-
- Determines whether a queue with the same name already exists in an account.
-
- true if a queue with the same name already exists.
-
-
-
- Deletes the queue. The queue will be deleted regardless of whether there are messages in the
- queue or not.
-
- true if the queue was successfully deleted.
-
-
-
- Sets the properties of a queue.
-
- The queue's properties to set.
- true if the properties were successfully written to the queue.
-
-
-
- Retrieves the queue's properties.
-
- The queue's properties.
-
-
-
- Retrieves the approximate number of messages in a queue.
-
- The approximate number of messages in this queue.
-
-
-
- Puts a message in the queue.
-
- The message to store in the queue.
- true if the message has been successfully enqueued.
-
-
-
- Puts a message in the queue.
-
- The message to store in the queue.
- The time to live for the message in seconds.
- true if the message has been successfully enqueued.
-
-
-
- Retrieves a message from the queue.
-
- The message retrieved or null if the queue is empty.
-
-
-
- Retrieves a message and sets its visibility timeout to the specified number of seconds.
-
- Visibility timeout of the message retrieved in seconds.
-
-
-
-
- Tries to retrieve the given number of messages.
-
- Maximum number of messages to retrieve.
- The list of messages retrieved.
-
-
-
- Tries to retrieve the given number of messages.
-
- Maximum number of messages to retrieve.
- The visibility timeout of the retrieved messages in seconds.
- The list of messages retrieved.
-
-
-
- Get a message from the queue but do not actually dequeue it. The message will remain visible
- for other parties requesting messages.
-
- The message retrieved or null if there are no messages in the queue.
-
-
-
- Tries to get a copy of messages in the queue without actually dequeuing the messages.
- The messages will remain visible in the queue.
-
- Maximum number of message to retrieve.
- The list of messages retrieved.
-
-
-
- Deletes a message from the queue.
-
- The message to retrieve with a valid popreceipt.
- true if the operation was successful.
-
-
-
- Delete all messages in a queue.
-
- true if all messages were deleted successfully.
-
-
-
- The default time interval between polling the queue for messages.
- Polling is only enabled if the user has called StartReceiving().
-
-
-
-
- Starts the automatic reception of messages.
-
- true if the operation was successful.
-
-
-
- Stop the automatic reception of messages.
-
-
-
-
- The name of the queue exposed as a public property.
-
-
-
-
- The account info object this queue lives in -- exposed as an internal property.
-
-
-
-
- Indicates whether to use/generate path-style or host-style URIs
-
-
-
-
- The URI of the queue
-
-
-
-
- The retry policy used for retrying requests; this is the retry policy of the
- storage account where this queue was created
-
-
-
-
- The timeout of requests.
-
-
-
-
- The poll interval in milliseconds. If not explicitly set, this defaults to
- the DefaultPollInterval.
-
-
-
-
- The event users subscribe to in order to automatically receive messages
- from a queue.
-
-
-
-
- This delegate define the shape of a retry policy. A retry policy will invoke the given
- as many times as it wants to in the face of
- retriable StorageServerExceptions.
-
- The action to retry
-
-
-
-
- Provides definitions for some standard retry policies.
-
-
-
-
- Policy that does no retries i.e., it just invokes exactly once
-
- The action to retry
- The return value of
-
-
-
- Policy that retries a specified number of times with a specified fixed time interval between retries
-
- The number of times to retry. Should be a non-negative number
- The time interval between retries. Use TimeSpan.Zero to specify immediate
- retries
-
- When is 0 and is
- TimeSpan.Zero this policy is equivalent to the NoRetry policy
-
-
-
- Policy that retries a specified number of times with a randomized exponential backoff scheme
-
- The number of times to retry. Should be a non-negative number.
- The multiplier in the exponential backoff scheme
-
- For this retry policy, the minimum amount of milliseconds between retries is given by the
- StandardMinBackoff constant, and the maximum backoff is predefined by the StandardMaxBackoff constant.
- Otherwise, the backoff is calculated as random(2^currentRetry) * deltaBackoff.
-
-
-
- Policy that retries a specified number of times with a randomized exponential backoff scheme
-
- The number of times to retry. Should be a non-negative number
- The multiplier in the exponential backoff scheme
- The minimum backoff interval
- The maximum backoff interval
-
- For this retry policy, the minimum amount of milliseconds between retries is given by the
- minBackoff parameter, and the maximum backoff is predefined by the maxBackoff parameter.
- Otherwise, the backoff is calculated as random(2^currentRetry) * deltaBackoff.
-
-
-
- Access control for containers
-
-
-
-
- The properties of a blob.
- No member of this class makes a storage service request.
-
-
-
-
- Construct a new BlobProperties object
-
- The name of the blob
-
-
-
- Name of the blob
-
-
-
-
- URI of the blob
-
-
-
-
- Content encoding of the blob if it set, null otherwise.
-
-
-
-
- Content Type of the blob if it is set, null otherwise.
-
-
-
-
- Content Language of the blob if it is set, null otherwise.
-
-
-
-
- The length of the blob content, null otherwise.
-
-
-
-
- Metadata for the blob in the form of name-value pairs.
-
-
-
-
- The last modified time for the blob.
-
-
-
-
- The ETag of the blob. This is an identifier assigned to the blob by the storage service
- and is used to distinguish contents of two blobs (or versions of the same blob).
-
-
-
-
- The properties of a container.
- No member of this class makes a storage service request.
-
-
-
-
- The contents of the Blob in various forms.
-
-
-
-
- Construct a new BlobContents object from a stream.
-
- The stream to/from which blob contents are written/read. The
- stream should be seekable in order for requests to be retried.
-
-
-
- Construct a new BlobContents object from a byte array.
-
- The byte array to/from which contents are written/read.
-
-
-
- Get the contents of a blob as a byte array.
-
-
-
-
- Get the contents of a blob as a stream.
-
-
-
-
- Class representing some important table storage constants.
-
-
-
-
- Internal constant for querying tables.
-
-
-
-
- Internal constant for querying tables.
-
-
-
-
- The maximum size of strings per property/column is 64 kB (that is 32k characters.)
- Note: This constant is smaller for the development storage table service.
-
-
-
-
- One character in the standard UTF-16 character presentation is 2 bytes.
- Note: This constant is smaller for the development storage table service.
-
-
-
-
- We want to prevent users from the pitfall of mixing up Utc and local time.
- Because of this we add some time to the minimum supported datetime.
- As a result, there will be no error condition from the server even
- if a user converts the minimum supported date time to a local time and
- stores this in a DateTime field.
- The local development storage support the SQL range of dates which is narrower than the
- one for the table storage service and so we use that value here.
-
-
-
-
- API entry point for using structured storage. The underlying usage pattern is designed to be
- similar to the one used in blob and queue services in this library.
- Users create a TableStorage object by calling the static Create() method passing account credential
- information to this method. The TableStorage object can then be used to create, delete and list tables.
- There are two methods to get DataServiceContext objects that conform to the appropriate security scheme.
- The first way is to call the GetDataServiceContext() method on TableStorage objects. The naming is again
- chosen to conform to the convention in the other APIs for blob and queue services in this library.
- This class can also be used as an adapter pattern. I.e., DataServiceContext objects can be created
- independnt from a TableStorage object. Calling the Attach() method will make sure that the appropriate
- security signing is used on these objects. This design was chosen to support various usage patterns that
- might become necessary for autogenerated code.
-
-
-
-
- The default retry policy
-
-
-
-
- Creates a TableStorage service object. This object is the entry point into the table storage API.
-
- The base URI of the table storage service.
- Type of URI scheme used.
- The account name.
- Base64 encoded version of the key.
-
-
-
-
- Creates a TableStorage object.
-
-
-
-
- Infers a list of tables from a DataServiceContext-derived type and makes sure
- those tables exist in the given service. The table endpoint information is retrieved from the
- standard configuration settings.
-
-
- Tables are inferred by finding all the public properties of type IQueryable<T> in
- the provided type, where T is a type with an ID (in the case of table storage, this means it either
- has a [DataServiceKey("PartitionKey", "RowKey")] attribute in the class, or derives from
- the TableStorageEntity class included in this sample library (which in turn has that attribute).
-
-
-
-
- Infers a list of tables from a DataServiceContext-derived type and makes sure
- those tables exist in the given service.
-
- The DataServiceContext type from which the tables are inferred.
- A configuration string that is used to determine the table storage endpoint.
-
-
-
- Infers a list of tables from a DataServiceContext-derived type and makes sure
- those tables exist in the given service.
-
- The type of the DataServiceContext.
- An object containing information about the table storage endpoint to be used.
-
-
-
- Creates a DataServiceContext object that takes care of implementing the table storage signing process.
-
-
-
-
- If the adaptor pattern with Attach() shall be used, this function can be used to generate the
- table service base Uri depending on the path style syntax.
-
-
-
-
- If the adaptor pattern with Attach() shall be used, this function can be used to generate the
- table service base Uri depending on the path style syntax.
-
-
-
-
- If DataServiceContext objects are created at different places, this method can be called to configure the
- DataServiceContext object to implement the required security scheme.
-
-
-
-
- Lists all the tables under this service's URL
-
-
-
-
- Creates a new table in the service
-
- The name of the table to be created
-
-
-
- Tries to create a table with the given name.
- The main difference to the CreateTable method is that this function first queries the
- table storage service whether the table already exists, before it tries to actually create
- the table. The reason is that this
- is more lightweight for the table storage service than always trying to create a table that
- does already exist. Furthermore, as we expect that applications don't really randomly create
- tables, the additional roundtrip that is required for creating the table is necessary only very
- rarely.
-
- The name of the table.
- True if the operation was completed successfully. False if the table already exists.
-
-
-
- Checks whether a table with the same name already exists.
-
- The name of the table to check.
- True iff the table already exists.
-
-
-
- Deletes a table from the service.
-
- The name of the table to be deleted
-
-
-
- Tries to delete the table with the given name.
-
- The name of the table to delete.
- True if the table was successfully deleted. False if the table does not exists.
-
-
-
- The retry policy used for retrying requests
-
-
-
-
- The base URI of the table storage service
-
-
-
-
- The name of the storage account
-
-
-
-
- Indicates whether to use/generate path-style or host-style URIs
-
-
-
-
- The base64 encoded version of the key.
-
-
-
-
- Checks whether the exception is or contains a DataServiceClientException and extracts the
- returned http status code and extended error information.
-
- The exception from which to extract information
- The Http status code for the exception
- Extended error information including storage service specific
- error code and error message
- True if the exception is or contains a DataServiceClientException.
-
-
-
- Checks whether the exception is or contains a DataServiceClientException and extracts the
- returned http status code.
-
- The exception from which to extract information
- The Http status code for the exception
- True if the exception is or contains a DataServiceClientException.
-
-
-
- Checks whether the exception is either a DataServiceClientException, a DataServiceQueryException or a
- DataServiceRequestException.
-
-
-
-
- Only certain classes of errors should be retried. This method evaluates an exception
- and returns whether this class of exception can be retried.
-
- The exception to analyze.
- The HttpStatusCode retrieved from the exception.
-
-
-
- Overload that does not retrun the HttpStatusCode.
-
-
-
-
- Checks whether the string can be inserted in a table storage table. Throws an exception if
- this is not the case.
-
-
-
-
-
- Checks whether the string can be inserted into a table storage table.
-
-
-
-
- Creates a table with the specified name.
-
- The name of the table.
-
-
-
- The table name.
-
-
-
-
- This class represents an entity (row) in a table in table storage.
-
-
-
-
- Creates a TableStorageEntity object.
-
-
-
-
- Creates a TableStorageEntity object.
-
-
-
-
- Compares to entities.
-
-
-
-
- Computes a HashCode for this object.
-
-
-
-
- The partition key of a table entity. The concatenation of the partition key
- and row key must be unique per table.
-
-
-
-
- The row key of a table entity.
-
-
-
-
- This class can be used for handling continuation tokens in TableStorage.
-
-
-
-
-
- Objects of this class can be created using this constructor directly or by
- calling a factory method on the TableStorageDataServiceContext class
-
-
-
-
- Objects of this class can be created using this constructor directly or by
- calling a factory method on the TableStorageDataServiceContext class
-
-
-
-
- Normal Execute() on the query without retry. Just maps to _query.Execute().
-
-
-
-
-
- Calling Execute() on the query with the current retry policy.
-
- An IEnumerable respresenting the results of the query.
-
-
-
- Calling Execute() on the query with the current retry policy.
-
- The retry policy to be used for this request.
- An IEnumerable respresenting the results of the query.
-
-
-
- Returns all results of the query and hides the complexity of continuation if
- this is desired by a user. Users should be aware that this operation can return
- many objects. Uses no retries.
- Important: this function does not call Execute immediately. Instead, it calls Execute() on
- the query only when the result is enumerated. This is a difference to the normal
- Execute() and Execute() with retry method.
-
- An IEnumerable representing the results of the query.
-
-
-
- Returns all results of the query and hides the complexity of continuation if
- this is desired by a user. Users should be aware that this operation can return
- many objects. This operation also uses the current retry policy.
- Important: this function does not call Execute immediately. Instead, it calls Execute() on
- the query only when the result is enumerated. This is a difference to the normal
- Execute() and Execute() with retry method.
-
- An IEnumerable representing the results of the query.
-
-
-
- Returns all results of the query and hides the complexity of continuation if
- this is desired by a user. Users should be aware that this operation can return
- many objects.
- Important: this function does not call Execute immediately. Instead, it calls Execute() on
- the query only when the result is enumerated. This is a difference to the normal
- Execute() and Execute() with retry method.
-
- Determines whether to use retries or not.
- An IEnumerable representing the results of the query.
-
-
-
- Gets the underlying normal query object.
-
-
-
-
- The retry policy used for retrying requests
-
-
-
-
- The table storage-specific DataServiceContext class. It adds functionality for handling
- the authentication process required by the table storage service.
-
-
-
-
- Creates a DataServiceContext object and configures it so that it can be used with the table storage service.
-
- The root URI of the service.
- The account name.
- The shared key associated with this service.
-
-
-
- Creates a DataServiceContext object and configures it so that it can be used with the table storage service.
-
- A StorageAccountInfo object containing information about how to access the table storage service.
-
-
-
- Creates a DataServiceContext object and configures it so that it can be used with the table storage service.
- Information on the table storage endpoint is retrieved by accessing configuration settings in the app config section
- of a Web.config or app config file, or by accessing settings in cscfg files.
-
-
-
-
- Calls the SaveChanges() method and applies retry semantics.
-
-
-
-
- Calls the SaveChanges() method and applies retry semantics.
-
-
-
-
- Callback method called whenever a request is sent to the table service. This
- is where the signing of the request takes place.
-
-
-
-
- The retry policy used for retrying requests
-
-
-
-
- Helper class to avoid long-lived references to context objects
-
-
- Need to be careful not to maintain a reference to the context
- object from the auth adapter, since the adapter is probably
- long-lived and the context is not. This intermediate helper
- class is the one subscribing to context events, so when the
- context can be collected then this will be collectable as well.
-
-
-
-
- The retry policies for blobs and queues deal with special StorageClient and StorageServer exceptions.
- In case of tables, we don't want to return these exceptions but instead the normal data service
- exception. This class serves as a simple wrapper for these exceptions, and indicates that we
- need retries.
- Data service exceptions are stored as inner exceptions.
-
-
-
-
- Creates a TableRetryWrapperException object.
-
-
-
-
- Creates a TableRetryWrapperException object.
-
-
-
-
- Creates a TableRetryWrapperException object.
-
-
-
-
- Creates a TableRetryWrapperException object.
-
-
-
-
- Creates a TableRetryWrapperException object.
-
-
-
-
- Objects of this class encapsulate information about a storage account and endpoint configuration.
- Associated with a storage account is the account name, the base URI of the account and a shared key.
-
-
-
-
- The default configuration string in configuration files for setting the queue storage endpoint.
-
-
-
-
- The default configuration string in configuration files for setting the blob storage endpoint.
-
-
-
-
- The default configuration string in configuration files for setting the table storage endpoint.
-
-
-
-
- The default configuration string in configuration files for setting the storage account name.
-
-
-
-
- The default configuration string in configuration files for setting the shared key associated with a storage account.
-
-
-
-
- The default configuration string in configuration files for setting the UsePathStyleUris option.
-
-
-
-
- The default prefix string in application config and Web.config files to indicate that this setting should be looked up
- in the fabric's configuration system.
-
-
-
-
- Constructor for creating account info objects.
-
- The account's base URI.
- If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used.
- If false host-style URIs (http://accountname.baseuri/containername/objectname) are used,
- where baseuri is the URI of the service..
- If null, the choice is made automatically: path-style URIs if host name part of base URI is an
- IP addres, host-style otherwise.
- The account name.
- The account's shared key.
-
-
-
- Constructor for creating account info objects.
-
- The account's base URI.
- If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used.
- If false host-style URIs (http://accountname.baseuri/containername/objectname) are used,
- where baseuri is the URI of the service.
- If null, the choice is made automatically: path-style URIs if host name part of base URI is an
- IP addres, host-style otherwise.
- The account name.
- The account's shared key.
- true if it shall be allowed to only set parts of the StorageAccountInfo properties.
-
-
-
- Retrieves account settings for the queue service from the default settings.
-
-
-
-
- Retrieves account settings for the queue service from the default settings.
- Throws an exception in case of incomplete settings.
-
-
-
-
- Retrieves account settings for the table service from the default settings.
-
-
-
-
- Retrieves account settings for the table service from the default settings.
- Throws an exception in case of incomplete settings.
-
-
-
-
- Retrieves account settings for the blob service from the default settings.
-
-
-
-
- Retrieves account settings for the blob service from the default settings.
- Throws an exception in case of incomplete settings.
-
-
-
-
- Gets settings from default configuration names except for the endpoint configuration string.
-
-
-
-
- Gets settings from default configuration names except for the endpoint configuration string. Throws an exception
- in the case of incomplete settings.
-
-
-
-
- Gets a configuration setting from application settings in the Web.config or App.config file.
- When running in a hosted environment, configuration settings are read from .cscfg
- files.
-
-
-
-
- Retrieves account information settings from configuration settings. First, the implementation checks for
- settings in an application config section of an app.config or Web.config file. These values are overwritten
- if the same settings appear in a .csdef file.
- The implementation also supports indirect settings. In this case, indirect settings overwrite all other settings.
-
- Configuration string for the account name.
- Configuration string for the key.
- Configuration string for the endpoint.
- Configuration string for the path style.
- If false, an exception is thrown if not all settings are available.
- StorageAccountInfo object containing the retrieved settings.
-
-
-
- Checks whether all essential properties of this object are set. Only then, the account info object
- should be used in ohter APIs of this library.
-
-
-
-
-
- Checks whether this StorageAccountInfo object is complete in the sense that all properties are set.
-
-
-
-
- The base URI of the account.
-
-
-
-
- The account name.
-
-
-
-
- The account's key.
-
-
-
-
- If set, returns the UsePathStyleUris properties. If the property has not been explicitly set,
- the implementation tries to derive the correct value from the base URI.
-
-
-
-
- Get a reference to a Queue object with a specified name. This method does not make a call to
- the queue service.
-
- The name of the queue
- A newly created queue object
-
-
-
- Lists all queues with a given prefix within an account.
-
-
- The list of queue names.
-
-
-
- Lists the queues within the account.
-
- A list of queues
-
-
-
+
+
+
+ StorageClient
+
+
+
+
+ This type represents the different constituent parts that make up a resource Uri in the context of cloud services.
+
+
+
+
+ Construct a ResourceUriComponents object.
+
+ The account name that should become part of the URI.
+ The container name (container, queue or table name) that should become part of the URI.
+ Remaining part of the URI.
+
+
+
+ Construct a ResourceUriComponents object.
+
+ The account name that should become part of the URI.
+ The container name (container, queue or table name) that should become part of the URI.
+
+
+
+ Construct a ResourceUriComponents object.
+
+ The account name that should become part of the URI.
+
+
+
+ Construct a ResourceUriComponents object.
+
+
+
+
+ The account name in the URI.
+
+
+
+
+ This is really the first component (delimited by '/') after the account name. Since it happens to
+ be a container name in the context of all our storage services (containers in blob storage,
+ queues in the queue service and table names in table storage), it's named as ContainerName to make it more
+ readable at the cost of slightly being incorrectly named.
+
+
+
+
+ The remaining string in the URI.
+
+
+
+
+ Create a canonicalized string out of HTTP request header contents for signing
+ blob/queue requests with the Shared Authentication scheme.
+
+ The uri address of the HTTP request.
+ Components of the Uri extracted out of the request.
+ The method of the HTTP request (GET/PUT, etc.).
+ The content type of the HTTP request.
+ The date of the HTTP request.
+ Should contain other headers of the HTTP request.
+ A canonicalized string of the HTTP request.
+
+
+
+ Canonicalize HTTP header contents.
+
+ An HttpWebRequest object.
+ Components of the Uri extracted out of the request.
+ The canonicalized string of the given HTTP request's header.
+
+
+
+ Creates a standard datetime string for the shared key lite authentication scheme.
+
+ DateTime value to convert to a string in the expected format.
+
+
+
+
+ An internal class that stores the canonicalized string version of an HTTP request.
+
+
+
+
+ Constructor for the class.
+
+ The first canonicalized element to start the string with.
+
+
+
+ Append additional canonicalized element to the string.
+
+ An additional canonicalized element to append to the string.
+
+
+
+ Property for the canonicalized string.
+
+
+
+
+ Use this class to extract various header values from Http requests.
+
+
+
+
+ A helper function for extracting HTTP header values from a NameValueCollection object.
+
+ A NameValueCollection object that should contain HTTP header name-values pairs.
+ Name of the header that we want to get values of.
+ A array list of values for the header. The values are in the same order as they are stored in the NameValueCollection object.
+
+
+
+ Constructs an URI given all its constituents
+
+
+ This is the service endpoint in case of path-style URIs and a host suffix in case of host-style URIs
+ IMPORTANT: This does NOT include the service name or account name
+
+ Uri constituents
+ Indicates whether to construct a path-style Uri (true) or host-style URI (false)
+ Full uri
+
+
+
+ Constructs a path-style resource URI given all its constituents
+
+
+
+
+ Constructs a host-style resource URI given all its constituents
+
+
+
+
+ Given the host suffix part, service name and account name, this method constructs the account Uri
+
+
+
+
+ Objects of this class contain the credentials (name and key) of a storage account.
+
+
+
+
+ Create a SharedKeyCredentials object given an account name and a shared key.
+
+
+
+
+ Signs the request appropriately to make it an authenticated request.
+ Note that this method takes the URI components as decoding the URI components requires the knowledge
+ of whether the URI is in path-style or host-style and a host-suffix if it's host-style.
+
+
+
+
+ Signs requests using the SharedKeyLite authentication scheme with is used for the table storage service.
+
+
+
+
+ This is the default content-type xStore uses when no content type is specified
+
+
+
+
+ When transmitting a blob that is larger than this constant, this library automatically
+ transmits the blob as individual blocks. I.e., the blob is (1) partitioned
+ into separate parts (these parts are called blocks) and then (2) each of the blocks is
+ transmitted separately.
+ The maximum size of this constant as supported by the real blob storage service is currently
+ 64 MB; the development storage tool currently restricts this value to 2 MB.
+ Setting this constant can have a significant impact on the performance for uploading or
+ downloading blobs.
+ As a general guideline: If you run in a reliable environment increase this constant to reduce
+ the amount of roundtrips. In an unreliable environment keep this constant low to reduce the
+ amount of data that needs to be retransmitted in case of connection failures.
+
+
+
+
+ The size of a single block when transmitting a blob that is larger than the
+ MaximumBlobSizeBeforeTransmittingAsBlocks constant (see above).
+ The maximum size of this constant is currently 4 MB; the development storage
+ tool currently restricts this value to 1 MB.
+ Setting this constant can have a significant impact on the performance for uploading or
+ downloading blobs.
+ As a general guideline: If you run in a reliable environment increase this constant to reduce
+ the amount of roundtrips. In an unreliable environment keep this constant low to reduce the
+ amount of data that needs to be retransmitted in case of connection failures.
+
+
+
+
+ Contains regular expressions for checking whether container and table names conform
+ to the rules of the storage REST protocols.
+
+
+
+
+ Container or queue names that match against this regular expression are valid.
+
+
+
+
+ Table names that match against this regular expression are valid.
+
+
+
+
+ Converts the date time to a valid string form as per HTTP standards
+
+
+
+
+ Parse a string having the date time information in acceptable formats according to HTTP standards
+
+
+
+
+ Copies from one stream to another
+
+ The stream to copy from
+ The stream to copy to
+
+
+
+ Error codes that can be returned by the storage service or the client library.
+ These are divided into server errors and client errors depending on which side
+ the error can be attributed to.
+
+
+
+
+ The base class for storage service exceptions
+
+
+
+
+ Initializes a new instance of the class with
+ serialized data.
+
+ The object that contains serialized object
+ data about the exception being thrown
+ The object that contains contextual information
+ about the source or destionation.
+
+
+
+ Sets the object with additional exception information
+
+ The object that holds the
+ serialized object data.
+ The object that contains contextual information
+ about the source or destionation.
+
+
+
+ The Http status code returned by the storage service
+
+
+
+
+ The specific error code returned by the storage service
+
+
+
+
+
+
+
+
+
+ Server exceptions are those due to server side problems.
+ These may be transient and requests resulting in such exceptions
+ can be retried with the same parameters.
+
+
+
+
+ Initializes a new instance of the class with
+ serialized data.
+
+ The object that contains serialized object
+ data about the exception being thrown
+ The object that contains contextual information
+ about the source or destionation.
+
+
+
+ Client side exceptions are due to incorrect parameters to the request.
+ These requests should not be retried with the same parameters
+
+
+
+
+ Initializes a new instance of the class with
+ serialized data.
+
+ The object that contains serialized object
+ data about the exception being thrown
+ The object that contains contextual information
+ about the source or destionation.
+
+
+
+ Error code strings that are common to all storage services
+
+
+
+
+ Error code strings that are specific to blob service
+
+
+
+
+ Error code strings that are specific to queue service
+
+
+
+
+ Error code strings that are specific to queue service
+
+ public static class TableErrorCodeStrings
+
+
+
+ The entry point of the blob storage API
+
+
+
+
+ Factory method for BlobStorage
+
+ The base URI of the blob storage service
+ If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used.
+ If false host-style URIs (http://accountname.baseuri/containername/objectname) are used,
+ where baseuri is the URI of the service.
+ If null, the choice is made automatically: path-style URIs if host name part of base URI is an
+ IP addres, host-style otherwise.
+ The name of the storage account
+ Authentication key used for signing requests
+ A newly created BlobStorage instance
+
+
+
+ Factory method for BlobStorage
+
+ Account information
+ A newly created BlobStorage instance
+
+
+
+ Get a reference to a newly created BlobContainer object.
+ This method does not make any calls to the storage service.
+
+ The name of the container
+ A reference to a newly created BlobContainer object
+
+
+
+ Lists the containers within the account.
+
+ A list of containers
+
+
+
+ The default timeout
+
+
+
+
+ The default retry policy
+
+
+
+
+ The time out for each request to the storage service.
+
+
+
+
+ The retry policy used for retrying requests
+
+
+
+
+ The base URI of the blob storage service
+
+
+
+
+ The name of the storage account
+
+
+
+
+ Indicates whether to use/generate path-style or host-style URIs
+
+
+
+
+ Get a reference to a BlobContainer object with the given name.
+ This method does not make any calls to the storage service.
+
+ The name of the container
+ A reference to a newly created BlobContainer object
+
+
+
+ Lists the containers within the account.
+
+ A list of containers
+
+
+
+ The blob container class.
+ Used to access and enumerate blobs in the container.
+ Storage key credentials are needed to access private blobs but not for public blobs.
+
+
+
+
+ Use this constructor to access private blobs.
+
+ The base Uri for the storage endpoint
+ Name of the storage account
+ Name of the container
+
+
+
+ Use this constructor to access private blobs.
+
+ The base Uri for the storage endpoint
+
+ If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used and if false
+ host-style URIs (http://accountname.baseuri/containername/objectname) are used, where baseuri is the
+ URI of the service
+
+ Name of the storage account
+ Name of the container
+ Date of last modification
+
+
+
+ Create the container if it does not exist.
+ The container is created with private access control and no metadata.
+
+ true if the container was created. false if the container already exists
+
+
+
+ Create the container with the specified metadata and access control if it does not exist
+
+ The metadata for the container. Can be null to indicate no metadata
+ The access control (public or private) with which to create the container
+ true if the container was created. false if the container already exists
+
+
+
+ Check if the blob container exists
+
+ true if the container exists, false otherwise.
+
+
+
+ Get the properties for the container if it exists.
+
+ The properties for the container if it exists, null otherwise
+
+
+
+ Get the access control permissions associated with the container.
+
+
+
+
+
+ Set the access control permissions associated with the container.
+
+ The permission to set
+
+
+
+ Deletes the current container.
+
+
+
+
+ Check if the blob container exists
+
+ Name of the BLOB.
+ true if the blob exists, false otherwise.
+
+
+
+ Create a new blob or overwrite an existing blob.
+
+ The properties of the blob
+ The contents of the blob
+ Should this request overwrite an existing blob ?
+ true if the blob was created. false if the blob already exists and was set to false
+ The LastModifiedTime property of is set as a result of this call.
+ This method also has an effect on the ETag values that are managed by the service.
+
+
+
+ Updates an existing blob if it has not been modified since the specified time which is typically
+ the last modified time of the blob when you retrieved it.
+ Use this method to implement optimistic concurrency by avoiding clobbering changes to the blob
+ made by another writer.
+
+ The properties of the blob. This object should be one previously
+ obtained from a call to GetBlob or GetBlobProperties and have its LastModifiedTime property set.
+ The contents of the blob. The contents of the blob should be readable
+ true if the blob was updated. false if the blob has changed since the last time
+ The LastModifiedTime property of is set as a result of this call.
+ This method also has an effect on the ETag values that are managed by the service if the update was
+ successful.
+
+
+
+ Get the blob contents and properties if the blob exists
+
+ The name of the blob
+ Object in which the contents are returned.
+ This object should contain a writable stream or should be a default constructed object.
+ Should the blob be gotten in pieces. This requires more round-trips, but will retry smaller pieces in case of failure.
+ The properties of the blob if the blob exists.
+
+
+
+ Gets the blob contents and properties if the blob has not been modified since the time specified.
+ Use this method if you have cached the contents of a blob and want to avoid retrieving the blob
+ if it has not changed since the last time you retrieved it.
+
+ The properties of the blob obtained from an earlier call to GetBlob. This
+ parameter is updated by the call if the blob has been modified
+ Contains the stream to which the contents of the blob are written if it has been
+ modified
+ Should the blob be gotten in pieces. This requires more round-trips, but will retry smaller pieces in case of failure.
+ true if the blob has been modified, false otherwise
+
+
+
+ Get the properties of the blob if it exists.
+ This method is also the simplest way to check if a blob exists.
+
+ The name of the blob
+ The properties of the blob if it exists. null otherwise.
+ The properties for the contents of the blob are not set
+
+
+
+ Set the metadata of an existing blob.
+
+ The blob properties object whose metadata is to be updated
+
+
+
+ Set the metadata of an existing blob if it has not been modified since it was last retrieved.
+
+ The blob properties object whose metadata is to be updated.
+ Typically obtained by a previous call to GetBlob or GetBlobProperties
+ true if the blob metadata was updated. false if it was not updated because the blob
+ has been modified
+
+
+
+ Delete a blob with the given name
+
+ The name of the blob
+ true if the blob exists and was successfully deleted, false if the blob does not exist
+
+
+
+ Delete a blob with the given name if the blob has not been modified since it was last obtained.
+ Use this method for optimistic concurrency to avoid deleting a blob that has been modified since
+ the last time you retrieved it
+
+ A blob object (typically previously obtained from a GetBlob call)
+ This out parameter is set to true if the blob was not deleted because
+ it was modified
+ true if the blob exists and was successfully deleted, false if the blob does not exist or was
+ not deleted because the blob was modified.
+
+
+
+ Enumerates all blobs with a given prefix.
+
+
+ If true common prefixes with "/" as seperator
+ The list of blob properties and common prefixes
+
+
+
+ The time out for each request to the storage service.
+
+
+
+
+ The retry policy used for retrying requests
+
+
+
+
+ The base URI of the blob storage service
+
+
+
+
+ The name of the storage account
+
+
+
+
+ The name of the blob container.
+
+
+
+
+ Indicates whether to use/generate path-style or host-style URIs
+
+
+
+
+ The URI of the container
+
+
+
+
+ The timestamp for last modification of container.
+
+
+
+
+ Create the container with the specified access control if it does not exist
+
+ The metadata for the container. Can be null to indicate no metadata
+ The access control (public or private) with which to create the container
+ true if the container was created. false if the container already exists
+
+
+
+ Get the properties for the container if it exists.
+
+ The metadata for the container if it exists, null otherwise
+
+
+
+ Get the access control permissions associated with the container.
+
+
+
+
+
+ Get the access control permissions associated with the container.
+
+
+
+
+
+ Create a new blob or overwrite an existing blob.
+
+
+ The properties of the blob
+ The contents of the blob
+ Should this request overwrite an existing blob ?
+ true if the blob was created. false if the blob already exists and was set to false
+ The LastModifiedTime property of is set as a result of this call
+
+
+
+ Updates an existing blob if it has not been modified since the specified time which is typically
+ the last modified time of the blob when you retrieved it.
+ Use this method to implement optimistic concurrency by avoiding clobbering changes to the blob
+ made by another writer.
+
+ The properties of the blob. This object should be one previously
+ obtained from a call to GetBlob or GetBlobProperties and have its LastModifiedTime property set.
+ The contents of the blob. The contents of the blob should be readable
+ true if the blob was updated. false if the blob has changed since the last time
+ The LastModifiedTime property of is set as a result of this call
+
+
+
+ Get the blob contents and properties if the blob exisits
+
+ The name of the blob
+ Object in which the contents are returned.
+ This object should contain a writable stream or should be a default constructed object.
+ Should the blob be gotten in pieces. This requires more round-trips, but will retry smaller piecs in case of failure.
+ The properties of the blob if the blob exists.
+
+
+
+ Gets the blob contents and properties if the blob has not been modified since the time specified.
+ Use this method if you have cached the contents of a blob and want to avoid retrieving the blob
+ if it has not changed since the last time you retrieved it.
+
+ The properties of the blob obtained from an earlier call to GetBlob. This
+ parameter is updated by the call if the blob has been modified
+ Contains the stream to which the contents of the blob are written if it has been
+ modified
+ Should the blob be gotten in pieces. This requires more round-trips, but will retry smaller piecs in case of failure.
+ true if the blob has been modified, false otherwise
+
+
+
+ Get the properties of the blob if it exists.
+ This method is also the simplest way to check if a blob exists.
+
+ The name of the blob
+ The properties of the blob if it exists. null otherwise.
+ The properties for the contents of the blob are not set
+
+
+
+ Set the metadata of an existing blob.
+
+ The blob properties object whose metadata is to be updated
+
+
+
+ Set the metadata of an existing blob if it has not been modified since it was last retrieved.
+
+ The blob properties object whose metadata is to be updated.
+ Typically obtained by a previous call to GetBlob or GetBlobProperties
+
+
+
+ Delete a blob with the given name
+
+ The name of the blob
+ true if the blob exists and was successfully deleted, false if the blob does not exist
+
+
+
+ Delete a blob with the given name if the blob has not been modified since it was last obtained.
+ Use this method for optimistic concurrency to avoid deleting a blob that has been modified since
+ the last time you retrieved it
+
+ A blob object (typically previously obtained from a GetBlob call)
+ This out parameter is set to true if the blob was not deleted because
+ it was modified
+ true if the blob exists and was successfully deleted, false if the blob does not exist or was
+ not deleted because the blob was modified.
+
+
+
+ Enumerates all blobs with a given prefix.
+
+
+ If true common prefixes with "/" as seperator
+ The list of blob properties and common prefixes
+
+
+
+ Uploads a blob in chunks.
+
+
+
+
+
+
+
+
+
+ Helper method used for getting blobs, ranges of blobs and blob properties.
+
+ Name of the blob
+ The output stream to write blob data to. Can be null if only retrieving blob properties
+ The If-None-Match header. Used to avoid downloading blob data if the blob has not changed
+ The If-Match header. Used to ensure that all chunks of the blob are of the same blob
+ The offset of the blob data to begin downloading from. Set to 0 to download all data.
+ The length of the blob data to download. Set to 0 to download all data
+ Query paramters to add to the request.
+ Whether the blob had been modfied with respect to the
+
+
+
+
+ Helper class for loading values from an XML segment
+
+
+
+
+ The entry point of the queue storage API
+
+
+
+
+ Factory method for QueueStorage
+
+ The base URI of the queue service
+ If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used.
+ If false host-style URIs (http://accountname.baseuri/containername/objectname) are used,
+ where baseuri is the URI of the service.
+ If null, the choice is made automatically: path-style URIs if host name part of base URI is an
+ IP addres, host-style otherwise.
+ The name of the storage account
+ Authentication key used for signing requests
+ A newly created QueueStorage instance
+
+
+
+ Get a reference to a Queue object with a specified name. This method does not make a call to
+ the queue service.
+
+ The name of the queue
+ A newly created queue object
+
+
+
+ Lists the queues within the account.
+
+ A list of queues
+
+
+
+ Lists the queues within the account that start with the given prefix.
+
+ If prefix is null returns all queues.
+ A list of queues.
+
+
+
+ The default timeout
+
+
+
+
+ The default retry policy
+
+
+
+
+ The time out for each request to the storage service.
+
+
+
+
+ The retry policy used for retrying requests
+
+
+
+
+ The base URI of the blob storage service
+
+
+
+
+ The name of the storage account
+
+
+
+
+ Indicates whether to use/generate path-style or host-style URIs
+
+
+
+
+ Objects of this class represent a single message in the queue.
+
+
+
+
+ The maximum message size in bytes.
+
+
+
+
+ The maximum amount of time a message is kept in the queue. Max value is 7 days.
+ Value is given in seconds.
+
+
+
+
+ This constructor is not publicly exposed.
+
+
+
+
+ Creates a message and initializes the content of the message to be the specified string.
+
+ A string representing the contents of the message.
+
+
+
+ Creates a message and given the specified byte contents.
+ In this implementation, regardless of whether an XML or binary data is passed into this
+ function, message contents are converted to base64 before passing the data to the queue service.
+ When calculating the size of the message, the size of the base64 encoding is thus the important
+ parameter.
+
+
+
+
+
+ Returns the the contents of the message as a string.
+
+
+
+
+ Returns the content of the message as a byte array
+
+
+
+
+ When calling the Get() operation on a queue, the content of messages
+ returned in the REST protocol are represented as Base64-encoded strings.
+ This internal function transforms the Base64 representation into a byte array.
+
+ The Base64-encoded string.
+
+
+
+ Internal method used for creating the XML that becomes part of a REST request
+
+
+
+
+ A unique ID of the message as returned from queue operations.
+
+
+
+
+ When a message is retrieved from a queue, a PopReceipt is returned. The PopReceipt is used when
+ deleting a message from the queue.
+
+
+
+
+ The point in time when the message was put into the queue.
+
+
+
+
+ A message's expiration time.
+
+
+
+
+ The point in time when a message becomes visible again after a Get() operation was called
+ that returned the message.
+
+
+
+
+ Queues in the storage client library expose a functionality for listening for incoming messages.
+ If a message is put into a queue, a corresponding event is issued and this delegate is called. This functionality
+ is implemented internally in this library by periodically polling for incoming messages.
+
+ The queue that has received a new event.
+ The event argument containing the message.
+
+
+
+ The argument class for the MessageReceived event.
+
+
+
+
+ The message itself.
+
+
+
+
+ Constructor for creating a message received argument.
+
+
+
+
+
+ The message received by the queue.
+
+
+
+
+ The approximated amount of messages in the queue.
+
+
+
+
+ Metadata for the queue in the form of name-value pairs.
+
+
+
+
+ Objects of this class represent a queue in a user's storage account.
+
+
+
+
+ The name of the queue.
+
+
+
+
+ The user account this queue lives in.
+
+
+
+
+ This constructor is only called by subclasses.
+
+
+
+
+ Creates a queue in the specified storage account.
+
+ true if a queue with the same name already exists.
+ true if the queue was successfully created.
+
+
+
+ Creates a queue in the specified storage account.
+
+ true if the queue was successfully created.
+
+
+
+ Determines whether a queue with the same name already exists in an account.
+
+ true if a queue with the same name already exists.
+
+
+
+ Deletes the queue. The queue will be deleted regardless of whether there are messages in the
+ queue or not.
+
+ true if the queue was successfully deleted.
+
+
+
+ Sets the properties of a queue.
+
+ The queue's properties to set.
+ true if the properties were successfully written to the queue.
+
+
+
+ Retrieves the queue's properties.
+
+ The queue's properties.
+
+
+
+ Retrieves the approximate number of messages in a queue.
+
+ The approximate number of messages in this queue.
+
+
+
+ Puts a message in the queue.
+
+ The message to store in the queue.
+ true if the message has been successfully enqueued.
+
+
+
+ Puts a message in the queue.
+
+ The message to store in the queue.
+ The time to live for the message in seconds.
+ true if the message has been successfully enqueued.
+
+
+
+ Retrieves a message from the queue.
+
+ The message retrieved or null if the queue is empty.
+
+
+
+ Retrieves a message and sets its visibility timeout to the specified number of seconds.
+
+ Visibility timeout of the message retrieved in seconds.
+
+
+
+
+ Tries to retrieve the given number of messages.
+
+ Maximum number of messages to retrieve.
+ The list of messages retrieved.
+
+
+
+ Tries to retrieve the given number of messages.
+
+ Maximum number of messages to retrieve.
+ The visibility timeout of the retrieved messages in seconds.
+ The list of messages retrieved.
+
+
+
+ Get a message from the queue but do not actually dequeue it. The message will remain visible
+ for other parties requesting messages.
+
+ The message retrieved or null if there are no messages in the queue.
+
+
+
+ Tries to get a copy of messages in the queue without actually dequeuing the messages.
+ The messages will remain visible in the queue.
+
+ Maximum number of message to retrieve.
+ The list of messages retrieved.
+
+
+
+ Deletes a message from the queue.
+
+ The message to retrieve with a valid popreceipt.
+ true if the operation was successful.
+
+
+
+ Delete all messages in a queue.
+
+ true if all messages were deleted successfully.
+
+
+
+ The default time interval between polling the queue for messages.
+ Polling is only enabled if the user has called StartReceiving().
+
+
+
+
+ Starts the automatic reception of messages.
+
+ true if the operation was successful.
+
+
+
+ Stop the automatic reception of messages.
+
+
+
+
+ The name of the queue exposed as a public property.
+
+
+
+
+ The account info object this queue lives in -- exposed as an internal property.
+
+
+
+
+ Indicates whether to use/generate path-style or host-style URIs
+
+
+
+
+ The URI of the queue
+
+
+
+
+ The retry policy used for retrying requests; this is the retry policy of the
+ storage account where this queue was created
+
+
+
+
+ The timeout of requests.
+
+
+
+
+ The poll interval in milliseconds. If not explicitly set, this defaults to
+ the DefaultPollInterval.
+
+
+
+
+ The event users subscribe to in order to automatically receive messages
+ from a queue.
+
+
+
+
+ This delegate define the shape of a retry policy. A retry policy will invoke the given
+ as many times as it wants to in the face of
+ retriable StorageServerExceptions.
+
+ The action to retry
+
+
+
+
+ Provides definitions for some standard retry policies.
+
+
+
+
+ Policy that does no retries i.e., it just invokes exactly once
+
+ The action to retry
+ The return value of
+
+
+
+ Policy that retries a specified number of times with a specified fixed time interval between retries
+
+ The number of times to retry. Should be a non-negative number
+ The time interval between retries. Use TimeSpan.Zero to specify immediate
+ retries
+
+ When is 0 and is
+ TimeSpan.Zero this policy is equivalent to the NoRetry policy
+
+
+
+ Policy that retries a specified number of times with a randomized exponential backoff scheme
+
+ The number of times to retry. Should be a non-negative number.
+ The multiplier in the exponential backoff scheme
+
+ For this retry policy, the minimum amount of milliseconds between retries is given by the
+ StandardMinBackoff constant, and the maximum backoff is predefined by the StandardMaxBackoff constant.
+ Otherwise, the backoff is calculated as random(2^currentRetry) * deltaBackoff.
+
+
+
+ Policy that retries a specified number of times with a randomized exponential backoff scheme
+
+ The number of times to retry. Should be a non-negative number
+ The multiplier in the exponential backoff scheme
+ The minimum backoff interval
+ The maximum backoff interval
+
+ For this retry policy, the minimum amount of milliseconds between retries is given by the
+ minBackoff parameter, and the maximum backoff is predefined by the maxBackoff parameter.
+ Otherwise, the backoff is calculated as random(2^currentRetry) * deltaBackoff.
+
+
+
+ Access control for containers
+
+
+
+
+ The properties of a blob.
+ No member of this class makes a storage service request.
+
+
+
+
+ Construct a new BlobProperties object
+
+ The name of the blob
+
+
+
+ Name of the blob
+
+
+
+
+ URI of the blob
+
+
+
+
+ Content encoding of the blob if it set, null otherwise.
+
+
+
+
+ Content Type of the blob if it is set, null otherwise.
+
+
+
+
+ Content Language of the blob if it is set, null otherwise.
+
+
+
+
+ The length of the blob content, null otherwise.
+
+
+
+
+ Metadata for the blob in the form of name-value pairs.
+
+
+
+
+ The last modified time for the blob.
+
+
+
+
+ The ETag of the blob. This is an identifier assigned to the blob by the storage service
+ and is used to distinguish contents of two blobs (or versions of the same blob).
+
+
+
+
+ The properties of a container.
+ No member of this class makes a storage service request.
+
+
+
+
+ The contents of the Blob in various forms.
+
+
+
+
+ Construct a new BlobContents object from a stream.
+
+ The stream to/from which blob contents are written/read. The
+ stream should be seekable in order for requests to be retried.
+
+
+
+ Construct a new BlobContents object from a byte array.
+
+ The byte array to/from which contents are written/read.
+
+
+
+ Get the contents of a blob as a byte array.
+
+
+
+
+ Get the contents of a blob as a stream.
+
+
+
+
+ Class representing some important table storage constants.
+
+
+
+
+ Internal constant for querying tables.
+
+
+
+
+ Internal constant for querying tables.
+
+
+
+
+ The maximum size of strings per property/column is 64 kB (that is 32k characters.)
+ Note: This constant is smaller for the development storage table service.
+
+
+
+
+ One character in the standard UTF-16 character presentation is 2 bytes.
+ Note: This constant is smaller for the development storage table service.
+
+
+
+
+ We want to prevent users from the pitfall of mixing up Utc and local time.
+ Because of this we add some time to the minimum supported datetime.
+ As a result, there will be no error condition from the server even
+ if a user converts the minimum supported date time to a local time and
+ stores this in a DateTime field.
+ The local development storage support the SQL range of dates which is narrower than the
+ one for the table storage service and so we use that value here.
+
+
+
+
+ API entry point for using structured storage. The underlying usage pattern is designed to be
+ similar to the one used in blob and queue services in this library.
+ Users create a TableStorage object by calling the static Create() method passing account credential
+ information to this method. The TableStorage object can then be used to create, delete and list tables.
+ There are two methods to get DataServiceContext objects that conform to the appropriate security scheme.
+ The first way is to call the GetDataServiceContext() method on TableStorage objects. The naming is again
+ chosen to conform to the convention in the other APIs for blob and queue services in this library.
+ This class can also be used as an adapter pattern. I.e., DataServiceContext objects can be created
+ independnt from a TableStorage object. Calling the Attach() method will make sure that the appropriate
+ security signing is used on these objects. This design was chosen to support various usage patterns that
+ might become necessary for autogenerated code.
+
+
+
+
+ The default retry policy
+
+
+
+
+ Creates a TableStorage service object. This object is the entry point into the table storage API.
+
+ The base URI of the table storage service.
+ Type of URI scheme used.
+ The account name.
+ Base64 encoded version of the key.
+
+
+
+
+ Creates a TableStorage object.
+
+
+
+
+ Infers a list of tables from a DataServiceContext-derived type and makes sure
+ those tables exist in the given service. The table endpoint information is retrieved from the
+ standard configuration settings.
+
+
+ Tables are inferred by finding all the public properties of type IQueryable<T> in
+ the provided type, where T is a type with an ID (in the case of table storage, this means it either
+ has a [DataServiceKey("PartitionKey", "RowKey")] attribute in the class, or derives from
+ the TableStorageEntity class included in this sample library (which in turn has that attribute).
+
+
+
+
+ Infers a list of tables from a DataServiceContext-derived type and makes sure
+ those tables exist in the given service.
+
+ The DataServiceContext type from which the tables are inferred.
+ A configuration string that is used to determine the table storage endpoint.
+
+
+
+ Infers a list of tables from a DataServiceContext-derived type and makes sure
+ those tables exist in the given service.
+
+ The type of the DataServiceContext.
+ An object containing information about the table storage endpoint to be used.
+
+
+
+ Creates a DataServiceContext object that takes care of implementing the table storage signing process.
+
+
+
+
+ If the adaptor pattern with Attach() shall be used, this function can be used to generate the
+ table service base Uri depending on the path style syntax.
+
+
+
+
+ If the adaptor pattern with Attach() shall be used, this function can be used to generate the
+ table service base Uri depending on the path style syntax.
+
+
+
+
+ If DataServiceContext objects are created at different places, this method can be called to configure the
+ DataServiceContext object to implement the required security scheme.
+
+
+
+
+ Lists all the tables under this service's URL
+
+
+
+
+ Creates a new table in the service
+
+ The name of the table to be created
+
+
+
+ Tries to create a table with the given name.
+ The main difference to the CreateTable method is that this function first queries the
+ table storage service whether the table already exists, before it tries to actually create
+ the table. The reason is that this
+ is more lightweight for the table storage service than always trying to create a table that
+ does already exist. Furthermore, as we expect that applications don't really randomly create
+ tables, the additional roundtrip that is required for creating the table is necessary only very
+ rarely.
+
+ The name of the table.
+ True if the operation was completed successfully. False if the table already exists.
+
+
+
+ Checks whether a table with the same name already exists.
+
+ The name of the table to check.
+ True iff the table already exists.
+
+
+
+ Deletes a table from the service.
+
+ The name of the table to be deleted
+
+
+
+ Tries to delete the table with the given name.
+
+ The name of the table to delete.
+ True if the table was successfully deleted. False if the table does not exists.
+
+
+
+ The retry policy used for retrying requests
+
+
+
+
+ The base URI of the table storage service
+
+
+
+
+ The name of the storage account
+
+
+
+
+ Indicates whether to use/generate path-style or host-style URIs
+
+
+
+
+ The base64 encoded version of the key.
+
+
+
+
+ Checks whether the exception is or contains a DataServiceClientException and extracts the
+ returned http status code and extended error information.
+
+ The exception from which to extract information
+ The Http status code for the exception
+ Extended error information including storage service specific
+ error code and error message
+ True if the exception is or contains a DataServiceClientException.
+
+
+
+ Checks whether the exception is or contains a DataServiceClientException and extracts the
+ returned http status code.
+
+ The exception from which to extract information
+ The Http status code for the exception
+ True if the exception is or contains a DataServiceClientException.
+
+
+
+ Checks whether the exception is either a DataServiceClientException, a DataServiceQueryException or a
+ DataServiceRequestException.
+
+
+
+
+ Only certain classes of errors should be retried. This method evaluates an exception
+ and returns whether this class of exception can be retried.
+
+ The exception to analyze.
+ The HttpStatusCode retrieved from the exception.
+
+
+
+ Overload that does not retrun the HttpStatusCode.
+
+
+
+
+ Checks whether the string can be inserted in a table storage table. Throws an exception if
+ this is not the case.
+
+
+
+
+
+ Checks whether the string can be inserted into a table storage table.
+
+
+
+
+ Creates a table with the specified name.
+
+ The name of the table.
+
+
+
+ The table name.
+
+
+
+
+ This class represents an entity (row) in a table in table storage.
+
+
+
+
+ Creates a TableStorageEntity object.
+
+
+
+
+ Creates a TableStorageEntity object.
+
+
+
+
+ Compares to entities.
+
+
+
+
+ Computes a HashCode for this object.
+
+
+
+
+ The partition key of a table entity. The concatenation of the partition key
+ and row key must be unique per table.
+
+
+
+
+ The row key of a table entity.
+
+
+
+
+ This class can be used for handling continuation tokens in TableStorage.
+
+
+
+
+
+ Objects of this class can be created using this constructor directly or by
+ calling a factory method on the TableStorageDataServiceContext class
+
+
+
+
+ Objects of this class can be created using this constructor directly or by
+ calling a factory method on the TableStorageDataServiceContext class
+
+
+
+
+ Normal Execute() on the query without retry. Just maps to _query.Execute().
+
+
+
+
+
+ Calling Execute() on the query with the current retry policy.
+
+ An IEnumerable respresenting the results of the query.
+
+
+
+ Calling Execute() on the query with the current retry policy.
+
+ The retry policy to be used for this request.
+ An IEnumerable respresenting the results of the query.
+
+
+
+ Returns all results of the query and hides the complexity of continuation if
+ this is desired by a user. Users should be aware that this operation can return
+ many objects. Uses no retries.
+ Important: this function does not call Execute immediately. Instead, it calls Execute() on
+ the query only when the result is enumerated. This is a difference to the normal
+ Execute() and Execute() with retry method.
+
+ An IEnumerable representing the results of the query.
+
+
+
+ Returns all results of the query and hides the complexity of continuation if
+ this is desired by a user. Users should be aware that this operation can return
+ many objects. This operation also uses the current retry policy.
+ Important: this function does not call Execute immediately. Instead, it calls Execute() on
+ the query only when the result is enumerated. This is a difference to the normal
+ Execute() and Execute() with retry method.
+
+ An IEnumerable representing the results of the query.
+
+
+
+ Returns all results of the query and hides the complexity of continuation if
+ this is desired by a user. Users should be aware that this operation can return
+ many objects.
+ Important: this function does not call Execute immediately. Instead, it calls Execute() on
+ the query only when the result is enumerated. This is a difference to the normal
+ Execute() and Execute() with retry method.
+
+ Determines whether to use retries or not.
+ An IEnumerable representing the results of the query.
+
+
+
+ Gets the underlying normal query object.
+
+
+
+
+ The retry policy used for retrying requests
+
+
+
+
+ The table storage-specific DataServiceContext class. It adds functionality for handling
+ the authentication process required by the table storage service.
+
+
+
+
+ Creates a DataServiceContext object and configures it so that it can be used with the table storage service.
+
+ The root URI of the service.
+ The account name.
+ The shared key associated with this service.
+
+
+
+ Creates a DataServiceContext object and configures it so that it can be used with the table storage service.
+
+ A StorageAccountInfo object containing information about how to access the table storage service.
+
+
+
+ Creates a DataServiceContext object and configures it so that it can be used with the table storage service.
+ Information on the table storage endpoint is retrieved by accessing configuration settings in the app config section
+ of a Web.config or app config file, or by accessing settings in cscfg files.
+
+
+
+
+ Calls the SaveChanges() method and applies retry semantics.
+
+
+
+
+ Calls the SaveChanges() method and applies retry semantics.
+
+
+
+
+ Callback method called whenever a request is sent to the table service. This
+ is where the signing of the request takes place.
+
+
+
+
+ The retry policy used for retrying requests
+
+
+
+
+ Helper class to avoid long-lived references to context objects
+
+
+ Need to be careful not to maintain a reference to the context
+ object from the auth adapter, since the adapter is probably
+ long-lived and the context is not. This intermediate helper
+ class is the one subscribing to context events, so when the
+ context can be collected then this will be collectable as well.
+
+
+
+
+ The retry policies for blobs and queues deal with special StorageClient and StorageServer exceptions.
+ In case of tables, we don't want to return these exceptions but instead the normal data service
+ exception. This class serves as a simple wrapper for these exceptions, and indicates that we
+ need retries.
+ Data service exceptions are stored as inner exceptions.
+
+
+
+
+ Creates a TableRetryWrapperException object.
+
+
+
+
+ Creates a TableRetryWrapperException object.
+
+
+
+
+ Creates a TableRetryWrapperException object.
+
+
+
+
+ Creates a TableRetryWrapperException object.
+
+
+
+
+ Creates a TableRetryWrapperException object.
+
+
+
+
+ Objects of this class encapsulate information about a storage account and endpoint configuration.
+ Associated with a storage account is the account name, the base URI of the account and a shared key.
+
+
+
+
+ The default configuration string in configuration files for setting the queue storage endpoint.
+
+
+
+
+ The default configuration string in configuration files for setting the blob storage endpoint.
+
+
+
+
+ The default configuration string in configuration files for setting the table storage endpoint.
+
+
+
+
+ The default configuration string in configuration files for setting the storage account name.
+
+
+
+
+ The default configuration string in configuration files for setting the shared key associated with a storage account.
+
+
+
+
+ The default configuration string in configuration files for setting the UsePathStyleUris option.
+
+
+
+
+ The default prefix string in application config and Web.config files to indicate that this setting should be looked up
+ in the fabric's configuration system.
+
+
+
+
+ Constructor for creating account info objects.
+
+ The account's base URI.
+ If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used.
+ If false host-style URIs (http://accountname.baseuri/containername/objectname) are used,
+ where baseuri is the URI of the service..
+ If null, the choice is made automatically: path-style URIs if host name part of base URI is an
+ IP addres, host-style otherwise.
+ The account name.
+ The account's shared key.
+
+
+
+ Constructor for creating account info objects.
+
+ The account's base URI.
+ If true, path-style URIs (http://baseuri/accountname/containername/objectname) are used.
+ If false host-style URIs (http://accountname.baseuri/containername/objectname) are used,
+ where baseuri is the URI of the service.
+ If null, the choice is made automatically: path-style URIs if host name part of base URI is an
+ IP addres, host-style otherwise.
+ The account name.
+ The account's shared key.
+ true if it shall be allowed to only set parts of the StorageAccountInfo properties.
+
+
+
+ Retrieves account settings for the queue service from the default settings.
+
+
+
+
+ Retrieves account settings for the queue service from the default settings.
+ Throws an exception in case of incomplete settings.
+
+
+
+
+ Retrieves account settings for the table service from the default settings.
+
+
+
+
+ Retrieves account settings for the table service from the default settings.
+ Throws an exception in case of incomplete settings.
+
+
+
+
+ Retrieves account settings for the blob service from the default settings.
+
+
+
+
+ Retrieves account settings for the blob service from the default settings.
+ Throws an exception in case of incomplete settings.
+
+
+
+
+ Gets settings from default configuration names except for the endpoint configuration string.
+
+
+
+
+ Gets settings from default configuration names except for the endpoint configuration string. Throws an exception
+ in the case of incomplete settings.
+
+
+
+
+ Gets a configuration setting from application settings in the Web.config or App.config file.
+ When running in a hosted environment, configuration settings are read from .cscfg
+ files.
+
+
+
+
+ Retrieves account information settings from configuration settings. First, the implementation checks for
+ settings in an application config section of an app.config or Web.config file. These values are overwritten
+ if the same settings appear in a .csdef file.
+ The implementation also supports indirect settings. In this case, indirect settings overwrite all other settings.
+
+ Configuration string for the account name.
+ Configuration string for the key.
+ Configuration string for the endpoint.
+ Configuration string for the path style.
+ If false, an exception is thrown if not all settings are available.
+ StorageAccountInfo object containing the retrieved settings.
+
+
+
+ Checks whether all essential properties of this object are set. Only then, the account info object
+ should be used in ohter APIs of this library.
+
+
+
+
+
+ Checks whether this StorageAccountInfo object is complete in the sense that all properties are set.
+
+
+
+
+ The base URI of the account.
+
+
+
+
+ The account name.
+
+
+
+
+ The account's key.
+
+
+
+
+ If set, returns the UsePathStyleUris properties. If the property has not been explicitly set,
+ the implementation tries to derive the correct value from the base URI.
+
+
+
+
+ Get a reference to a Queue object with a specified name. This method does not make a call to
+ the queue service.
+
+ The name of the queue
+ A newly created queue object
+
+
+
+ Lists all queues with a given prefix within an account.
+
+
+ The list of queue names.
+
+
+
+ Lists the queues within the account.
+
+ A list of queues
+
+
+
diff --git a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Content/Site.css b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Content/Site.css
index c2fd074..076f15d 100644
--- a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Content/Site.css
+++ b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Content/Site.css
@@ -1,755 +1,755 @@
-
-/* 9 of 12 Microsoft Internet Explorer Design Templates
-
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- HTML TAGS
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-body {
- font-family:Arial, Tahoma, Helvetica, sans-serif;
- margin:0;
- padding:0;
- }
-
-p, li {
- font-size:.75em;
- line-height:160%;
- }
-
-a img {
- border:none;
- }
-
-/* HEADINGS */
-
-h1,h2,h3,h4,h5,h6 {
- margin:15px 0;
- font-family:"trebuchet MS", verdana, sans-serif;
- color:#e99400;
- }
-
-.content-left h1, .content-right h1,
-.content-left h2, .content-right h2,
-.content-left h3, .content-right h3,
-.content-left h4, .content-right h4,
-.content-left h5, .content-right h5,
-.content-left h6, .content-right h6 {
- color:#000;
- margin:5px 0;
- }
-
-h1.first,
-h2.first,
-h3.first,
-h4.first,
-h5.first,
-h6.first {
- margin-top:0;
- }
-
-h1 {
- font-size:1.2em;
- }
-
-h2 {
- font-size:1em;
- }
-
-h3 {
- font-size:.9em;
- background:url(images/bg-line.png) repeat-x bottom;
- }
-
-h4 {
- font-size:.8em;
- }
-
-h5 {
- font-size:.8em;
- }
-
-h6 {
- font-size:.8em;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- FORMS
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-fieldset {
- padding:10px 20px;
- margin:15px 0;
- position:relative;
- }
-
-fieldset fieldset {
- margin:10px 0;
- width:90%;
- }
-
-legend {
- font-weight:bold;
- font-size:1em;
- padding:10px;
- color:#000;
- margin:0 0 10px 30px;
- font-family:"trebuchet MS", verdana, sans-serif;
- }
-
-fieldset fieldset legend {
- font-size:.8em;
- }
-
-.input-box {
- display:block;
- margin-bottom:5px;
- vertical-align:top;
- padding:2px;
- color:#666666;
- font-size:.8em;
- border:1px solid #82b26e;
- background:url(images/bg-input.png) no-repeat;
- }
-
-label {
- font-weight:bold;
- font-size:.7em;
- font-weight:bold;
- display:block;
- font-family:Arial, Helvetica, sans-serif;
- }
-
-.checkbox {
- margin:12px 0;
- padding:4px 0 2px 3px;
- border:1px dotted #585858;
- width:95%;
- }
-
-.checkbox input {
- margin-right:6px;
- margin-bottom:2px;
- }
-
-.forgot-password {
- margin:2px 0;
- font-size:.65em;
- }
-
-input.button {
- color:#FFF;
- background:#317f0c url(images/bg-button.png) repeat-x;
- border:2px groove #FFF;
- font-size:.7em;
- font-weight:bold;
- padding:0 5px 2px 5px;
- cursor:pointer;
- }
-
-input.button-big {
- padding:6px 20px;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- LINKS
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-a:link {
- color:#33840c;
- text-decoration:underline;
- }
-
-a:visited {
- color:#72840c;
- text-decoration:underline;
- }
-
-a:hover {
- text-decoration:none;
- }
-
-a:active {
- text-decoration:underline;
- color:#86c400;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- HEADER
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.header-container {
- position:relative;
- padding:6px 0 0 0;
- background:#373737;
- color:#FFF;
- border-bottom:1px dotted #585858;
- min-height:1px;
- _height:1px;
- }
-
-/* LOGO */
-
-.logo {
- font-size:1.5em;
- width:60%;
- float:left;
- font-family:"trebuchet MS", verdana, sans-serif;
- padding:5px 0 10px 15px;
- letter-spacing:.2em;
- }
-
-/* LOGO LINK */
-
-.logo a:link,
-.logo a:visited {
- text-decoration:none;
- color:#FFF;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- LOGIN
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.nav-login {
- font-size:.9em;
- text-align:right;
- margin:10px 15px 3px 0;
- float:right;
- width:20%;
- }
-
-/* LOGIN LISTS */
-
-.nav-login ul {
- margin:0;
- padding:0;
- }
-
-.nav-login li {
- list-style:none;
- padding:3px 0 3px 17px;
- display:inline;
- margin-left:15px;
- background:url(images/bullet.png) no-repeat 0 4px;
- }
-
-.nav-login li.first {
- list-style:none;
- margin-left:0;
- }
-
-/* LOGIN LINKS */
-
-.nav-login a:link,
-.nav-login a:visited{
- color:#FFF;
- text-decoration:none;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- MAIN NAV
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.nav-main {
- margin:-41px 0 0 199px;
- padding:12px 15px 0 15px;
- background:#f6f6f6;
- min-height:28px;
- _height:28px;
- border-top:1px dotted #7a7a7a;
- border-bottom:1px dotted #7a7a7a;
- border-left:1px dotted #7a7a7a;
- }
-
-/* MAIN NAV LISTS */
-
-.nav-main ul {
- margin:0;
- padding:0;
- }
-
-.nav-main li {
- list-style:none;
- float:left;
- background:none;
- padding:0;
- }
-
-.nav-main li a {
- display:block;
- padding:0 10px;
- border-right:1px dotted #d2d2d2;
- }
-
-.nav-main li.first a {
- padding-left:0;
- }
-
-/* NAV MAIN LINKS */
-
-.nav-main a:link,
-.nav-main a:visited {
- color:#33840c;
- text-decoration:none;
- }
-
-.nav-main .active a:link,
-.nav-main .active a:visited {
- color:#000;
- }
-
-.nav-main a:hover {
- text-decoration:underline;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- FOOTER
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.footer {
- padding:10px 0;
- _height:1px;
- background:#373737;
- clear:both;
- }
-
-.nav-footer {
- position:relative;
- _height:1px;
- margin:0 200px;
- text-align:center;
- clear:both;
- }
-
-.nav-footer ul{
- padding:0;
- margin:0;
- text-align:center;
- }
-
-.nav-footer li{
- background:none;
- display:inline;
- border-right:1px dotted #686868;
- padding:0 10px;
- }
-
-.nav-footer li.first {
- border-left:1px dotted #686868;
- }
-
-.copyright {
- color:#999;
- font-size:.7em;
- clear:both;
- margin:5px 0 0 0;
- }
-
-.nav-footer a:link,
-.nav-footer a:visited {
- color:#CCC;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- POSTER
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.poster-container {
- background:url(images/bg-poster-tile.jpg) repeat-x;
- min-height:200px;
- _height:200px;
- margin-top:-1px;
- }
-
-.poster-container-no-image {
- background:url(images/bg-poster-tile.jpg) repeat-x;
- min-height:70px;
- _height:70px;
- margin-top:-1px;
- }
-
-.poster-inner {
- background:url(images/bg-poster.jpg) no-repeat left top;
- font-family:"trebuchet MS", verdana, sans-serif;
- min-height:70px;
- _height:70px;
- }
-
-.poster-photo {
- background:url(images/bg-poster-photo.jpg) no-repeat left;
- min-height:170px;
- _height:170px;
- padding:30px 30% 0 200px;
- font-style:italic;
- }
-
-.poster-container h1 {
- margin:0;
- font-size:1.2em;
- color:#000;
- }
-
-.poster-container p {
- margin:10px 0 0 0;
- line-height:normal;
- font-size:1em;
- }
-
-/* POSTER LINKS */
-
-.poster-links {
- font-weight:bold;
- }
-
-.poster-container a:link,
-.poster-container a:visited {
- color:#33840c;
- }
-
-.poster-container a:hover {
- text-decoration:none;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- BREADCRUMB
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.breadcrumb {
- min-height:1px;
- _height:1px;
- padding:0 0 15px 0;
- margin:0 0 15px 0;
- font-size:.7em;
- border-bottom:1px dotted #686868;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- PRIMARY LAYOUT STYLES
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.content-container {
- position:relative;
- _height:1px;
- min-height:1px;
- background:url(images/bg-column-left.png) repeat-y;
- }
-
-.content-container-inner {
- background:url(images/bg-column-right.png) repeat-y right;
- _height:1px;
- min-height:1px;
- padding:0 200px;
- position:relative;
- }
-
-.content-main {
- padding:15px 2% 20px 2%;
- position:relative;
- min-height:1px;
- _height:1px;
- float:left;
- width:96%;
- }
-
-.content-left {
- padding:20px 10px;
- float:left;
- width:180px;
- margin-top:-1px;
- position:relative;
- margin-left:-100%;
- right:200px;
- _left:200px;
- border-top:1px dotted #797979;
- }
-
-.content-right {
- padding:15px 10px 20px 10px;
- float:left;
- width:180px;
- position:relative;
- margin-right:-200px;
- }
-
-.ads {
- text-align:center;
- margin:20px 0;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- SIDE BUCKET
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.side-bucket {
- margin-bottom:20px;
- line-height:normal;
- }
-
-/* SIDE BUCKET LISTS */
-
-.side-bucket ul {
- margin:0;
- padding:0;
- _height:1px;
- }
-
-.side-bucket li {
- list-style:none;
- border-bottom:1px dotted #7a7a7a;
- background-position:0 4px;
- }
-
-.side-bucket li.first {
- border-top:1px dotted #7a7a7a;
- }
-
-/* SIDE BUCKET LINKS */
-
-.side-bucket a:link,
-.side-bucket a:visited {
- text-decoration:none;
- display:block;
- _display:inline;
- }
-
-.side-bucket a:hover {
- text-decoration:underline;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- PHOTOS & CAPTIONS
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.photo-container {
- padding:10px;
- border:1px dotted #7a7a7a;
- }
-
-.photo-container img {
- display:block;
- border:1px solid #666;
- }
-
-.photo-caption {
- font-size:.7em;
- padding:10px 10px 0 10px;
- text-align:center;
- color:#999;
- font-style:italic
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- THREE-COLUMN SECTION
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.three-column-container {
- margin:10px 0px;
- }
-
-.three-column-left,
-.three-column-right,
-.three-column-middle {
- float:left;
- width:30%;
- margin-right:5%;
- }
-
-.three-column-right {
- margin-right:0;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- DATA TABLES
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-table.data-table {
- background:#f6f6f6;
- font-size:.7em;
- border-top:1px dotted #7a7a7a;
- border-left:1px dotted #7a7a7a;
- }
-
-table.data-table caption{
- background:#b6b6b6;
- padding:10px;
- text-align:center;
- font-weight:bold;
- font-family:Arial, Helvetica, sans-serif;
- border:1px dotted #7a7a7a;
- border-bottom:none;
- }
-
-table.data-table td,
-table.data-table th{
- padding:8px;
- border-right:1px dotted #7a7a7a;
- border-bottom:1px dotted #7a7a7a;
- }
-
-table.data-table th{
- text-align:left;
- font-family:Arial, Helvetica, sans-serif;
- background:#ececec;
- }
-
-table.data-table td{
- }
-
-table.data-table tr.row-alternating td{
- background:#e0e0e0;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- LISTS
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-li {
- list-style:none;
- background:url(images/bullet.png) no-repeat 0 5px;
- padding:3px 0 3px 17px;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- MISC STYLES
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.none {
- display:none;
- }
-
-.clear {
- clear:both;
- font-size:1px;
- margin:0;
- padding:0;
- }
-
-.align-left {
- float:left;
- margin:0 20px 15px 0;
- }
-
-.align-right {
- float:right;
- margin:0 0 15px 20px;
- }
-
-.align-middle {
- vertical-align:middle;
- }
-
-.inline {
- display:inline;
- }
-
-.no-margin {
- margin:0;
- }
-
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- MODIFIED
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
-
-.login
-{
- margin:auto auto;
-}
-
-.login input[type=text], .login input[type=password]
-{
- width: 10em;
- margin: 0.5em;
-}
-
-.content-main
-{
- _height:400px;
- min-height:400px;
-}
-
-.product-category
-{
- color: #666666;
-}
-
-.product-list
-{
- padding:0.25em;
- border: solid 1px #999;
- font-size:10pt;
- width:100%;
- margin-top:0.5em;
- margin-bottom: 0.5em;
- height:150px;
-}
-
-.identity
-{
- margin-left:0.25em;
- max-width:6.5em;
- display:inline-block;
- overflow:hidden;
- vertical-align:middle;
-}
-
-.login label
-{
- display: inline;
-}
-
-label
-{
- font-size:1em;
-}
-
-.role label
-{
- margin:1em;
-}
-
-.role input
-{
- margin:1em 0 0.5em 0;
- vertical-align:middle;
-}
-
-.login-status, .login-status iframe
-{
- height: 2em !important;
- width: 5em !important;
-}
+
+/* 9 of 12 Microsoft Internet Explorer Design Templates
+
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ HTML TAGS
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+body {
+ font-family:Arial, Tahoma, Helvetica, sans-serif;
+ margin:0;
+ padding:0;
+ }
+
+p, li {
+ font-size:.75em;
+ line-height:160%;
+ }
+
+a img {
+ border:none;
+ }
+
+/* HEADINGS */
+
+h1,h2,h3,h4,h5,h6 {
+ margin:15px 0;
+ font-family:"trebuchet MS", verdana, sans-serif;
+ color:#e99400;
+ }
+
+.content-left h1, .content-right h1,
+.content-left h2, .content-right h2,
+.content-left h3, .content-right h3,
+.content-left h4, .content-right h4,
+.content-left h5, .content-right h5,
+.content-left h6, .content-right h6 {
+ color:#000;
+ margin:5px 0;
+ }
+
+h1.first,
+h2.first,
+h3.first,
+h4.first,
+h5.first,
+h6.first {
+ margin-top:0;
+ }
+
+h1 {
+ font-size:1.2em;
+ }
+
+h2 {
+ font-size:1em;
+ }
+
+h3 {
+ font-size:.9em;
+ background:url(images/bg-line.png) repeat-x bottom;
+ }
+
+h4 {
+ font-size:.8em;
+ }
+
+h5 {
+ font-size:.8em;
+ }
+
+h6 {
+ font-size:.8em;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ FORMS
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+fieldset {
+ padding:10px 20px;
+ margin:15px 0;
+ position:relative;
+ }
+
+fieldset fieldset {
+ margin:10px 0;
+ width:90%;
+ }
+
+legend {
+ font-weight:bold;
+ font-size:1em;
+ padding:10px;
+ color:#000;
+ margin:0 0 10px 30px;
+ font-family:"trebuchet MS", verdana, sans-serif;
+ }
+
+fieldset fieldset legend {
+ font-size:.8em;
+ }
+
+.input-box {
+ display:block;
+ margin-bottom:5px;
+ vertical-align:top;
+ padding:2px;
+ color:#666666;
+ font-size:.8em;
+ border:1px solid #82b26e;
+ background:url(images/bg-input.png) no-repeat;
+ }
+
+label {
+ font-weight:bold;
+ font-size:.7em;
+ font-weight:bold;
+ display:block;
+ font-family:Arial, Helvetica, sans-serif;
+ }
+
+.checkbox {
+ margin:12px 0;
+ padding:4px 0 2px 3px;
+ border:1px dotted #585858;
+ width:95%;
+ }
+
+.checkbox input {
+ margin-right:6px;
+ margin-bottom:2px;
+ }
+
+.forgot-password {
+ margin:2px 0;
+ font-size:.65em;
+ }
+
+input.button {
+ color:#FFF;
+ background:#317f0c url(images/bg-button.png) repeat-x;
+ border:2px groove #FFF;
+ font-size:.7em;
+ font-weight:bold;
+ padding:0 5px 2px 5px;
+ cursor:pointer;
+ }
+
+input.button-big {
+ padding:6px 20px;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ LINKS
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+a:link {
+ color:#33840c;
+ text-decoration:underline;
+ }
+
+a:visited {
+ color:#72840c;
+ text-decoration:underline;
+ }
+
+a:hover {
+ text-decoration:none;
+ }
+
+a:active {
+ text-decoration:underline;
+ color:#86c400;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ HEADER
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.header-container {
+ position:relative;
+ padding:6px 0 0 0;
+ background:#373737;
+ color:#FFF;
+ border-bottom:1px dotted #585858;
+ min-height:1px;
+ _height:1px;
+ }
+
+/* LOGO */
+
+.logo {
+ font-size:1.5em;
+ width:60%;
+ float:left;
+ font-family:"trebuchet MS", verdana, sans-serif;
+ padding:5px 0 10px 15px;
+ letter-spacing:.2em;
+ }
+
+/* LOGO LINK */
+
+.logo a:link,
+.logo a:visited {
+ text-decoration:none;
+ color:#FFF;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ LOGIN
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.nav-login {
+ font-size:.9em;
+ text-align:right;
+ margin:10px 15px 3px 0;
+ float:right;
+ width:20%;
+ }
+
+/* LOGIN LISTS */
+
+.nav-login ul {
+ margin:0;
+ padding:0;
+ }
+
+.nav-login li {
+ list-style:none;
+ padding:3px 0 3px 17px;
+ display:inline;
+ margin-left:15px;
+ background:url(images/bullet.png) no-repeat 0 4px;
+ }
+
+.nav-login li.first {
+ list-style:none;
+ margin-left:0;
+ }
+
+/* LOGIN LINKS */
+
+.nav-login a:link,
+.nav-login a:visited{
+ color:#FFF;
+ text-decoration:none;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ MAIN NAV
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.nav-main {
+ margin:-41px 0 0 199px;
+ padding:12px 15px 0 15px;
+ background:#f6f6f6;
+ min-height:28px;
+ _height:28px;
+ border-top:1px dotted #7a7a7a;
+ border-bottom:1px dotted #7a7a7a;
+ border-left:1px dotted #7a7a7a;
+ }
+
+/* MAIN NAV LISTS */
+
+.nav-main ul {
+ margin:0;
+ padding:0;
+ }
+
+.nav-main li {
+ list-style:none;
+ float:left;
+ background:none;
+ padding:0;
+ }
+
+.nav-main li a {
+ display:block;
+ padding:0 10px;
+ border-right:1px dotted #d2d2d2;
+ }
+
+.nav-main li.first a {
+ padding-left:0;
+ }
+
+/* NAV MAIN LINKS */
+
+.nav-main a:link,
+.nav-main a:visited {
+ color:#33840c;
+ text-decoration:none;
+ }
+
+.nav-main .active a:link,
+.nav-main .active a:visited {
+ color:#000;
+ }
+
+.nav-main a:hover {
+ text-decoration:underline;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ FOOTER
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.footer {
+ padding:10px 0;
+ _height:1px;
+ background:#373737;
+ clear:both;
+ }
+
+.nav-footer {
+ position:relative;
+ _height:1px;
+ margin:0 200px;
+ text-align:center;
+ clear:both;
+ }
+
+.nav-footer ul{
+ padding:0;
+ margin:0;
+ text-align:center;
+ }
+
+.nav-footer li{
+ background:none;
+ display:inline;
+ border-right:1px dotted #686868;
+ padding:0 10px;
+ }
+
+.nav-footer li.first {
+ border-left:1px dotted #686868;
+ }
+
+.copyright {
+ color:#999;
+ font-size:.7em;
+ clear:both;
+ margin:5px 0 0 0;
+ }
+
+.nav-footer a:link,
+.nav-footer a:visited {
+ color:#CCC;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ POSTER
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.poster-container {
+ background:url(images/bg-poster-tile.jpg) repeat-x;
+ min-height:200px;
+ _height:200px;
+ margin-top:-1px;
+ }
+
+.poster-container-no-image {
+ background:url(images/bg-poster-tile.jpg) repeat-x;
+ min-height:70px;
+ _height:70px;
+ margin-top:-1px;
+ }
+
+.poster-inner {
+ background:url(images/bg-poster.jpg) no-repeat left top;
+ font-family:"trebuchet MS", verdana, sans-serif;
+ min-height:70px;
+ _height:70px;
+ }
+
+.poster-photo {
+ background:url(images/bg-poster-photo.jpg) no-repeat left;
+ min-height:170px;
+ _height:170px;
+ padding:30px 30% 0 200px;
+ font-style:italic;
+ }
+
+.poster-container h1 {
+ margin:0;
+ font-size:1.2em;
+ color:#000;
+ }
+
+.poster-container p {
+ margin:10px 0 0 0;
+ line-height:normal;
+ font-size:1em;
+ }
+
+/* POSTER LINKS */
+
+.poster-links {
+ font-weight:bold;
+ }
+
+.poster-container a:link,
+.poster-container a:visited {
+ color:#33840c;
+ }
+
+.poster-container a:hover {
+ text-decoration:none;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ BREADCRUMB
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.breadcrumb {
+ min-height:1px;
+ _height:1px;
+ padding:0 0 15px 0;
+ margin:0 0 15px 0;
+ font-size:.7em;
+ border-bottom:1px dotted #686868;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ PRIMARY LAYOUT STYLES
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.content-container {
+ position:relative;
+ _height:1px;
+ min-height:1px;
+ background:url(images/bg-column-left.png) repeat-y;
+ }
+
+.content-container-inner {
+ background:url(images/bg-column-right.png) repeat-y right;
+ _height:1px;
+ min-height:1px;
+ padding:0 200px;
+ position:relative;
+ }
+
+.content-main {
+ padding:15px 2% 20px 2%;
+ position:relative;
+ min-height:1px;
+ _height:1px;
+ float:left;
+ width:96%;
+ }
+
+.content-left {
+ padding:20px 10px;
+ float:left;
+ width:180px;
+ margin-top:-1px;
+ position:relative;
+ margin-left:-100%;
+ right:200px;
+ _left:200px;
+ border-top:1px dotted #797979;
+ }
+
+.content-right {
+ padding:15px 10px 20px 10px;
+ float:left;
+ width:180px;
+ position:relative;
+ margin-right:-200px;
+ }
+
+.ads {
+ text-align:center;
+ margin:20px 0;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ SIDE BUCKET
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.side-bucket {
+ margin-bottom:20px;
+ line-height:normal;
+ }
+
+/* SIDE BUCKET LISTS */
+
+.side-bucket ul {
+ margin:0;
+ padding:0;
+ _height:1px;
+ }
+
+.side-bucket li {
+ list-style:none;
+ border-bottom:1px dotted #7a7a7a;
+ background-position:0 4px;
+ }
+
+.side-bucket li.first {
+ border-top:1px dotted #7a7a7a;
+ }
+
+/* SIDE BUCKET LINKS */
+
+.side-bucket a:link,
+.side-bucket a:visited {
+ text-decoration:none;
+ display:block;
+ _display:inline;
+ }
+
+.side-bucket a:hover {
+ text-decoration:underline;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ PHOTOS & CAPTIONS
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.photo-container {
+ padding:10px;
+ border:1px dotted #7a7a7a;
+ }
+
+.photo-container img {
+ display:block;
+ border:1px solid #666;
+ }
+
+.photo-caption {
+ font-size:.7em;
+ padding:10px 10px 0 10px;
+ text-align:center;
+ color:#999;
+ font-style:italic
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ THREE-COLUMN SECTION
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.three-column-container {
+ margin:10px 0px;
+ }
+
+.three-column-left,
+.three-column-right,
+.three-column-middle {
+ float:left;
+ width:30%;
+ margin-right:5%;
+ }
+
+.three-column-right {
+ margin-right:0;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ DATA TABLES
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+table.data-table {
+ background:#f6f6f6;
+ font-size:.7em;
+ border-top:1px dotted #7a7a7a;
+ border-left:1px dotted #7a7a7a;
+ }
+
+table.data-table caption{
+ background:#b6b6b6;
+ padding:10px;
+ text-align:center;
+ font-weight:bold;
+ font-family:Arial, Helvetica, sans-serif;
+ border:1px dotted #7a7a7a;
+ border-bottom:none;
+ }
+
+table.data-table td,
+table.data-table th{
+ padding:8px;
+ border-right:1px dotted #7a7a7a;
+ border-bottom:1px dotted #7a7a7a;
+ }
+
+table.data-table th{
+ text-align:left;
+ font-family:Arial, Helvetica, sans-serif;
+ background:#ececec;
+ }
+
+table.data-table td{
+ }
+
+table.data-table tr.row-alternating td{
+ background:#e0e0e0;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ LISTS
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+li {
+ list-style:none;
+ background:url(images/bullet.png) no-repeat 0 5px;
+ padding:3px 0 3px 17px;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ MISC STYLES
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.none {
+ display:none;
+ }
+
+.clear {
+ clear:both;
+ font-size:1px;
+ margin:0;
+ padding:0;
+ }
+
+.align-left {
+ float:left;
+ margin:0 20px 15px 0;
+ }
+
+.align-right {
+ float:right;
+ margin:0 0 15px 20px;
+ }
+
+.align-middle {
+ vertical-align:middle;
+ }
+
+.inline {
+ display:inline;
+ }
+
+.no-margin {
+ margin:0;
+ }
+
+/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ MODIFIED
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
+
+.login
+{
+ margin:auto auto;
+}
+
+.login input[type=text], .login input[type=password]
+{
+ width: 10em;
+ margin: 0.5em;
+}
+
+.content-main
+{
+ _height:400px;
+ min-height:400px;
+}
+
+.product-category
+{
+ color: #666666;
+}
+
+.product-list
+{
+ padding:0.25em;
+ border: solid 1px #999;
+ font-size:10pt;
+ width:100%;
+ margin-top:0.5em;
+ margin-bottom: 0.5em;
+ height:150px;
+}
+
+.identity
+{
+ margin-left:0.25em;
+ max-width:6.5em;
+ display:inline-block;
+ overflow:hidden;
+ vertical-align:middle;
+}
+
+.login label
+{
+ display: inline;
+}
+
+label
+{
+ font-size:1em;
+}
+
+.role label
+{
+ margin:1em;
+}
+
+.role input
+{
+ margin:1em 0 0.5em 0;
+ vertical-align:middle;
+}
+
+.login-status, .login-status iframe
+{
+ height: 2em !important;
+ width: 5em !important;
+}
diff --git a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftAjax.debug.js b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftAjax.debug.js
index 054b46d..7b7de62 100644
--- a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftAjax.debug.js
+++ b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftAjax.debug.js
@@ -1,6850 +1,6850 @@
-// Name: MicrosoftAjax.debug.js
-// Assembly: System.Web.Extensions
-// Version: 3.5.0.0
-// FileVersion: 3.5.30729.1
-//-----------------------------------------------------------------------
-// Copyright (C) Microsoft Corporation. All rights reserved.
-//-----------------------------------------------------------------------
-// MicrosoftAjax.js
-// Microsoft AJAX Framework.
-
-Function.__typeName = 'Function';
-Function.__class = true;
-Function.createCallback = function Function$createCallback(method, context) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "method", type: Function},
- {name: "context", mayBeNull: true}
- ]);
- if (e) throw e;
- return function() {
- var l = arguments.length;
- if (l > 0) {
- var args = [];
- for (var i = 0; i < l; i++) {
- args[i] = arguments[i];
- }
- args[l] = context;
- return method.apply(this, args);
- }
- return method.call(this, context);
- }
-}
-Function.createDelegate = function Function$createDelegate(instance, method) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "instance", mayBeNull: true},
- {name: "method", type: Function}
- ]);
- if (e) throw e;
- return function() {
- return method.apply(instance, arguments);
- }
-}
-Function.emptyFunction = Function.emptyMethod = function Function$emptyMethod() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
-}
-Function._validateParams = function Function$_validateParams(params, expectedParams) {
- var e;
- e = Function._validateParameterCount(params, expectedParams);
- if (e) {
- e.popStackFrame();
- return e;
- }
- for (var i=0; i < params.length; i++) {
- var expectedParam = expectedParams[Math.min(i, expectedParams.length - 1)];
- var paramName = expectedParam.name;
- if (expectedParam.parameterArray) {
- paramName += "[" + (i - expectedParams.length + 1) + "]";
- }
- e = Function._validateParameter(params[i], expectedParam, paramName);
- if (e) {
- e.popStackFrame();
- return e;
- }
- }
- return null;
-}
-Function._validateParameterCount = function Function$_validateParameterCount(params, expectedParams) {
- var maxParams = expectedParams.length;
- var minParams = 0;
- for (var i=0; i < expectedParams.length; i++) {
- if (expectedParams[i].parameterArray) {
- maxParams = Number.MAX_VALUE;
- }
- else if (!expectedParams[i].optional) {
- minParams++;
- }
- }
- if (params.length < minParams || params.length > maxParams) {
- var e = Error.parameterCount();
- e.popStackFrame();
- return e;
- }
- return null;
-}
-Function._validateParameter = function Function$_validateParameter(param, expectedParam, paramName) {
- var e;
- var expectedType = expectedParam.type;
- var expectedInteger = !!expectedParam.integer;
- var expectedDomElement = !!expectedParam.domElement;
- var mayBeNull = !!expectedParam.mayBeNull;
- e = Function._validateParameterType(param, expectedType, expectedInteger, expectedDomElement, mayBeNull, paramName);
- if (e) {
- e.popStackFrame();
- return e;
- }
- var expectedElementType = expectedParam.elementType;
- var elementMayBeNull = !!expectedParam.elementMayBeNull;
- if (expectedType === Array && typeof(param) !== "undefined" && param !== null &&
- (expectedElementType || !elementMayBeNull)) {
- var expectedElementInteger = !!expectedParam.elementInteger;
- var expectedElementDomElement = !!expectedParam.elementDomElement;
- for (var i=0; i < param.length; i++) {
- var elem = param[i];
- e = Function._validateParameterType(elem, expectedElementType,
- expectedElementInteger, expectedElementDomElement, elementMayBeNull,
- paramName + "[" + i + "]");
- if (e) {
- e.popStackFrame();
- return e;
- }
- }
- }
- return null;
-}
-Function._validateParameterType = function Function$_validateParameterType(param, expectedType, expectedInteger, expectedDomElement, mayBeNull, paramName) {
- var e;
- if (typeof(param) === "undefined") {
- if (mayBeNull) {
- return null;
- }
- else {
- e = Error.argumentUndefined(paramName);
- e.popStackFrame();
- return e;
- }
- }
- if (param === null) {
- if (mayBeNull) {
- return null;
- }
- else {
- e = Error.argumentNull(paramName);
- e.popStackFrame();
- return e;
- }
- }
- if (expectedType && expectedType.__enum) {
- if (typeof(param) !== 'number') {
- e = Error.argumentType(paramName, Object.getType(param), expectedType);
- e.popStackFrame();
- return e;
- }
- if ((param % 1) === 0) {
- var values = expectedType.prototype;
- if (!expectedType.__flags || (param === 0)) {
- for (var i in values) {
- if (values[i] === param) return null;
- }
- }
- else {
- var v = param;
- for (var i in values) {
- var vali = values[i];
- if (vali === 0) continue;
- if ((vali & param) === vali) {
- v -= vali;
- }
- if (v === 0) return null;
- }
- }
- }
- e = Error.argumentOutOfRange(paramName, param, String.format(Sys.Res.enumInvalidValue, param, expectedType.getName()));
- e.popStackFrame();
- return e;
- }
- if (expectedDomElement) {
- var val;
- if (typeof(param.nodeType) !== 'number') {
- var doc = param.ownerDocument || param.document || param;
- if (doc != param) {
- var w = doc.defaultView || doc.parentWindow;
- val = (w != param) && !(w.document && param.document && (w.document === param.document));
- }
- else {
- val = (typeof(doc.body) === 'undefined');
- }
- }
- else {
- val = (param.nodeType === 3);
- }
- if (val) {
- e = Error.argument(paramName, Sys.Res.argumentDomElement);
- e.popStackFrame();
- return e;
- }
- }
- if (expectedType && !expectedType.isInstanceOfType(param)) {
- e = Error.argumentType(paramName, Object.getType(param), expectedType);
- e.popStackFrame();
- return e;
- }
- if (expectedType === Number && expectedInteger) {
- if ((param % 1) !== 0) {
- e = Error.argumentOutOfRange(paramName, param, Sys.Res.argumentInteger);
- e.popStackFrame();
- return e;
- }
- }
- return null;
-}
-
-Error.__typeName = 'Error';
-Error.__class = true;
-Error.create = function Error$create(message, errorInfo) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "message", type: String, mayBeNull: true, optional: true},
- {name: "errorInfo", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var e = new Error(message);
- e.message = message;
- if (errorInfo) {
- for (var v in errorInfo) {
- e[v] = errorInfo[v];
- }
- }
- e.popStackFrame();
- return e;
-}
-Error.argument = function Error$argument(paramName, message) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "paramName", type: String, mayBeNull: true, optional: true},
- {name: "message", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var displayMessage = "Sys.ArgumentException: " + (message ? message : Sys.Res.argument);
- if (paramName) {
- displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
- }
- var e = Error.create(displayMessage, { name: "Sys.ArgumentException", paramName: paramName });
- e.popStackFrame();
- return e;
-}
-Error.argumentNull = function Error$argumentNull(paramName, message) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "paramName", type: String, mayBeNull: true, optional: true},
- {name: "message", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var displayMessage = "Sys.ArgumentNullException: " + (message ? message : Sys.Res.argumentNull);
- if (paramName) {
- displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
- }
- var e = Error.create(displayMessage, { name: "Sys.ArgumentNullException", paramName: paramName });
- e.popStackFrame();
- return e;
-}
-Error.argumentOutOfRange = function Error$argumentOutOfRange(paramName, actualValue, message) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "paramName", type: String, mayBeNull: true, optional: true},
- {name: "actualValue", mayBeNull: true, optional: true},
- {name: "message", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var displayMessage = "Sys.ArgumentOutOfRangeException: " + (message ? message : Sys.Res.argumentOutOfRange);
- if (paramName) {
- displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
- }
- if (typeof(actualValue) !== "undefined" && actualValue !== null) {
- displayMessage += "\n" + String.format(Sys.Res.actualValue, actualValue);
- }
- var e = Error.create(displayMessage, {
- name: "Sys.ArgumentOutOfRangeException",
- paramName: paramName,
- actualValue: actualValue
- });
- e.popStackFrame();
- return e;
-}
-Error.argumentType = function Error$argumentType(paramName, actualType, expectedType, message) {
- ///
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "paramName", type: String, mayBeNull: true, optional: true},
- {name: "actualType", type: Type, mayBeNull: true, optional: true},
- {name: "expectedType", type: Type, mayBeNull: true, optional: true},
- {name: "message", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var displayMessage = "Sys.ArgumentTypeException: ";
- if (message) {
- displayMessage += message;
- }
- else if (actualType && expectedType) {
- displayMessage +=
- String.format(Sys.Res.argumentTypeWithTypes, actualType.getName(), expectedType.getName());
- }
- else {
- displayMessage += Sys.Res.argumentType;
- }
- if (paramName) {
- displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
- }
- var e = Error.create(displayMessage, {
- name: "Sys.ArgumentTypeException",
- paramName: paramName,
- actualType: actualType,
- expectedType: expectedType
- });
- e.popStackFrame();
- return e;
-}
-Error.argumentUndefined = function Error$argumentUndefined(paramName, message) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "paramName", type: String, mayBeNull: true, optional: true},
- {name: "message", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var displayMessage = "Sys.ArgumentUndefinedException: " + (message ? message : Sys.Res.argumentUndefined);
- if (paramName) {
- displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
- }
- var e = Error.create(displayMessage, { name: "Sys.ArgumentUndefinedException", paramName: paramName });
- e.popStackFrame();
- return e;
-}
-Error.format = function Error$format(message) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "message", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var displayMessage = "Sys.FormatException: " + (message ? message : Sys.Res.format);
- var e = Error.create(displayMessage, {name: 'Sys.FormatException'});
- e.popStackFrame();
- return e;
-}
-Error.invalidOperation = function Error$invalidOperation(message) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "message", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var displayMessage = "Sys.InvalidOperationException: " + (message ? message : Sys.Res.invalidOperation);
- var e = Error.create(displayMessage, {name: 'Sys.InvalidOperationException'});
- e.popStackFrame();
- return e;
-}
-Error.notImplemented = function Error$notImplemented(message) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "message", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var displayMessage = "Sys.NotImplementedException: " + (message ? message : Sys.Res.notImplemented);
- var e = Error.create(displayMessage, {name: 'Sys.NotImplementedException'});
- e.popStackFrame();
- return e;
-}
-Error.parameterCount = function Error$parameterCount(message) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "message", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var displayMessage = "Sys.ParameterCountException: " + (message ? message : Sys.Res.parameterCount);
- var e = Error.create(displayMessage, {name: 'Sys.ParameterCountException'});
- e.popStackFrame();
- return e;
-}
-Error.prototype.popStackFrame = function Error$popStackFrame() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (typeof(this.stack) === "undefined" || this.stack === null ||
- typeof(this.fileName) === "undefined" || this.fileName === null ||
- typeof(this.lineNumber) === "undefined" || this.lineNumber === null) {
- return;
- }
- var stackFrames = this.stack.split("\n");
- var currentFrame = stackFrames[0];
- var pattern = this.fileName + ":" + this.lineNumber;
- while(typeof(currentFrame) !== "undefined" &&
- currentFrame !== null &&
- currentFrame.indexOf(pattern) === -1) {
- stackFrames.shift();
- currentFrame = stackFrames[0];
- }
- var nextFrame = stackFrames[1];
- if (typeof(nextFrame) === "undefined" || nextFrame === null) {
- return;
- }
- var nextFrameParts = nextFrame.match(/@(.*):(\d+)$/);
- if (typeof(nextFrameParts) === "undefined" || nextFrameParts === null) {
- return;
- }
- this.fileName = nextFrameParts[1];
- this.lineNumber = parseInt(nextFrameParts[2]);
- stackFrames.shift();
- this.stack = stackFrames.join("\n");
-}
-
-Object.__typeName = 'Object';
-Object.__class = true;
-Object.getType = function Object$getType(instance) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "instance"}
- ]);
- if (e) throw e;
- var ctor = instance.constructor;
- if (!ctor || (typeof(ctor) !== "function") || !ctor.__typeName || (ctor.__typeName === 'Object')) {
- return Object;
- }
- return ctor;
-}
-Object.getTypeName = function Object$getTypeName(instance) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "instance"}
- ]);
- if (e) throw e;
- return Object.getType(instance).getName();
-}
-
-String.__typeName = 'String';
-String.__class = true;
-String.prototype.endsWith = function String$endsWith(suffix) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "suffix", type: String}
- ]);
- if (e) throw e;
- return (this.substr(this.length - suffix.length) === suffix);
-}
-String.prototype.startsWith = function String$startsWith(prefix) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "prefix", type: String}
- ]);
- if (e) throw e;
- return (this.substr(0, prefix.length) === prefix);
-}
-String.prototype.trim = function String$trim() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this.replace(/^\s+|\s+$/g, '');
-}
-String.prototype.trimEnd = function String$trimEnd() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this.replace(/\s+$/, '');
-}
-String.prototype.trimStart = function String$trimStart() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this.replace(/^\s+/, '');
-}
-String.format = function String$format(format, args) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "format", type: String},
- {name: "args", mayBeNull: true, parameterArray: true}
- ]);
- if (e) throw e;
- return String._toFormattedString(false, arguments);
-}
-String.localeFormat = function String$localeFormat(format, args) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "format", type: String},
- {name: "args", mayBeNull: true, parameterArray: true}
- ]);
- if (e) throw e;
- return String._toFormattedString(true, arguments);
-}
-String._toFormattedString = function String$_toFormattedString(useLocale, args) {
- var result = '';
- var format = args[0];
- for (var i=0;;) {
- var open = format.indexOf('{', i);
- var close = format.indexOf('}', i);
- if ((open < 0) && (close < 0)) {
- result += format.slice(i);
- break;
- }
- if ((close > 0) && ((close < open) || (open < 0))) {
- if (format.charAt(close + 1) !== '}') {
- throw Error.argument('format', Sys.Res.stringFormatBraceMismatch);
- }
- result += format.slice(i, close + 1);
- i = close + 2;
- continue;
- }
- result += format.slice(i, open);
- i = open + 1;
- if (format.charAt(i) === '{') {
- result += '{';
- i++;
- continue;
- }
- if (close < 0) throw Error.argument('format', Sys.Res.stringFormatBraceMismatch);
- var brace = format.substring(i, close);
- var colonIndex = brace.indexOf(':');
- var argNumber = parseInt((colonIndex < 0)? brace : brace.substring(0, colonIndex), 10) + 1;
- if (isNaN(argNumber)) throw Error.argument('format', Sys.Res.stringFormatInvalid);
- var argFormat = (colonIndex < 0)? '' : brace.substring(colonIndex + 1);
- var arg = args[argNumber];
- if (typeof(arg) === "undefined" || arg === null) {
- arg = '';
- }
- if (arg.toFormattedString) {
- result += arg.toFormattedString(argFormat);
- }
- else if (useLocale && arg.localeFormat) {
- result += arg.localeFormat(argFormat);
- }
- else if (arg.format) {
- result += arg.format(argFormat);
- }
- else
- result += arg.toString();
- i = close + 1;
- }
- return result;
-}
-
-Boolean.__typeName = 'Boolean';
-Boolean.__class = true;
-Boolean.parse = function Boolean$parse(value) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "value", type: String}
- ]);
- if (e) throw e;
- var v = value.trim().toLowerCase();
- if (v === 'false') return false;
- if (v === 'true') return true;
- throw Error.argumentOutOfRange('value', value, Sys.Res.boolTrueOrFalse);
-}
-
-Date.__typeName = 'Date';
-Date.__class = true;
-Date._appendPreOrPostMatch = function Date$_appendPreOrPostMatch(preMatch, strBuilder) {
- var quoteCount = 0;
- var escaped = false;
- for (var i = 0, il = preMatch.length; i < il; i++) {
- var c = preMatch.charAt(i);
- switch (c) {
- case '\'':
- if (escaped) strBuilder.append("'");
- else quoteCount++;
- escaped = false;
- break;
- case '\\':
- if (escaped) strBuilder.append("\\");
- escaped = !escaped;
- break;
- default:
- strBuilder.append(c);
- escaped = false;
- break;
- }
- }
- return quoteCount;
-}
-Date._expandFormat = function Date$_expandFormat(dtf, format) {
- if (!format) {
- format = "F";
- }
- if (format.length === 1) {
- switch (format) {
- case "d":
- return dtf.ShortDatePattern;
- case "D":
- return dtf.LongDatePattern;
- case "t":
- return dtf.ShortTimePattern;
- case "T":
- return dtf.LongTimePattern;
- case "F":
- return dtf.FullDateTimePattern;
- case "M": case "m":
- return dtf.MonthDayPattern;
- case "s":
- return dtf.SortableDateTimePattern;
- case "Y": case "y":
- return dtf.YearMonthPattern;
- default:
- throw Error.format(Sys.Res.formatInvalidString);
- }
- }
- return format;
-}
-Date._expandYear = function Date$_expandYear(dtf, year) {
- if (year < 100) {
- var curr = new Date().getFullYear();
- year += curr - (curr % 100);
- if (year > dtf.Calendar.TwoDigitYearMax) {
- return year - 100;
- }
- }
- return year;
-}
-Date._getParseRegExp = function Date$_getParseRegExp(dtf, format) {
- if (!dtf._parseRegExp) {
- dtf._parseRegExp = {};
- }
- else if (dtf._parseRegExp[format]) {
- return dtf._parseRegExp[format];
- }
- var expFormat = Date._expandFormat(dtf, format);
- expFormat = expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, "\\\\$1");
- var regexp = new Sys.StringBuilder("^");
- var groups = [];
- var index = 0;
- var quoteCount = 0;
- var tokenRegExp = Date._getTokenRegExp();
- var match;
- while ((match = tokenRegExp.exec(expFormat)) !== null) {
- var preMatch = expFormat.slice(index, match.index);
- index = tokenRegExp.lastIndex;
- quoteCount += Date._appendPreOrPostMatch(preMatch, regexp);
- if ((quoteCount%2) === 1) {
- regexp.append(match[0]);
- continue;
- }
- switch (match[0]) {
- case 'dddd': case 'ddd':
- case 'MMMM': case 'MMM':
- regexp.append("(\\D+)");
- break;
- case 'tt': case 't':
- regexp.append("(\\D*)");
- break;
- case 'yyyy':
- regexp.append("(\\d{4})");
- break;
- case 'fff':
- regexp.append("(\\d{3})");
- break;
- case 'ff':
- regexp.append("(\\d{2})");
- break;
- case 'f':
- regexp.append("(\\d)");
- break;
- case 'dd': case 'd':
- case 'MM': case 'M':
- case 'yy': case 'y':
- case 'HH': case 'H':
- case 'hh': case 'h':
- case 'mm': case 'm':
- case 'ss': case 's':
- regexp.append("(\\d\\d?)");
- break;
- case 'zzz':
- regexp.append("([+-]?\\d\\d?:\\d{2})");
- break;
- case 'zz': case 'z':
- regexp.append("([+-]?\\d\\d?)");
- break;
- }
- Array.add(groups, match[0]);
- }
- Date._appendPreOrPostMatch(expFormat.slice(index), regexp);
- regexp.append("$");
- var regexpStr = regexp.toString().replace(/\s+/g, "\\s+");
- var parseRegExp = {'regExp': regexpStr, 'groups': groups};
- dtf._parseRegExp[format] = parseRegExp;
- return parseRegExp;
-}
-Date._getTokenRegExp = function Date$_getTokenRegExp() {
- return /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z/g;
-}
-Date.parseLocale = function Date$parseLocale(value, formats) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "value", type: String},
- {name: "formats", mayBeNull: true, optional: true, parameterArray: true}
- ]);
- if (e) throw e;
- return Date._parse(value, Sys.CultureInfo.CurrentCulture, arguments);
-}
-Date.parseInvariant = function Date$parseInvariant(value, formats) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "value", type: String},
- {name: "formats", mayBeNull: true, optional: true, parameterArray: true}
- ]);
- if (e) throw e;
- return Date._parse(value, Sys.CultureInfo.InvariantCulture, arguments);
-}
-Date._parse = function Date$_parse(value, cultureInfo, args) {
- var custom = false;
- for (var i = 1, il = args.length; i < il; i++) {
- var format = args[i];
- if (format) {
- custom = true;
- var date = Date._parseExact(value, format, cultureInfo);
- if (date) return date;
- }
- }
- if (! custom) {
- var formats = cultureInfo._getDateTimeFormats();
- for (var i = 0, il = formats.length; i < il; i++) {
- var date = Date._parseExact(value, formats[i], cultureInfo);
- if (date) return date;
- }
- }
- return null;
-}
-Date._parseExact = function Date$_parseExact(value, format, cultureInfo) {
- value = value.trim();
- var dtf = cultureInfo.dateTimeFormat;
- var parseInfo = Date._getParseRegExp(dtf, format);
- var match = new RegExp(parseInfo.regExp).exec(value);
- if (match === null) return null;
-
- var groups = parseInfo.groups;
- var year = null, month = null, date = null, weekDay = null;
- var hour = 0, min = 0, sec = 0, msec = 0, tzMinOffset = null;
- var pmHour = false;
- for (var j = 0, jl = groups.length; j < jl; j++) {
- var matchGroup = match[j+1];
- if (matchGroup) {
- switch (groups[j]) {
- case 'dd': case 'd':
- date = parseInt(matchGroup, 10);
- if ((date < 1) || (date > 31)) return null;
- break;
- case 'MMMM':
- month = cultureInfo._getMonthIndex(matchGroup);
- if ((month < 0) || (month > 11)) return null;
- break;
- case 'MMM':
- month = cultureInfo._getAbbrMonthIndex(matchGroup);
- if ((month < 0) || (month > 11)) return null;
- break;
- case 'M': case 'MM':
- var month = parseInt(matchGroup, 10) - 1;
- if ((month < 0) || (month > 11)) return null;
- break;
- case 'y': case 'yy':
- year = Date._expandYear(dtf,parseInt(matchGroup, 10));
- if ((year < 0) || (year > 9999)) return null;
- break;
- case 'yyyy':
- year = parseInt(matchGroup, 10);
- if ((year < 0) || (year > 9999)) return null;
- break;
- case 'h': case 'hh':
- hour = parseInt(matchGroup, 10);
- if (hour === 12) hour = 0;
- if ((hour < 0) || (hour > 11)) return null;
- break;
- case 'H': case 'HH':
- hour = parseInt(matchGroup, 10);
- if ((hour < 0) || (hour > 23)) return null;
- break;
- case 'm': case 'mm':
- min = parseInt(matchGroup, 10);
- if ((min < 0) || (min > 59)) return null;
- break;
- case 's': case 'ss':
- sec = parseInt(matchGroup, 10);
- if ((sec < 0) || (sec > 59)) return null;
- break;
- case 'tt': case 't':
- var upperToken = matchGroup.toUpperCase();
- pmHour = (upperToken === dtf.PMDesignator.toUpperCase());
- if (!pmHour && (upperToken !== dtf.AMDesignator.toUpperCase())) return null;
- break;
- case 'f':
- msec = parseInt(matchGroup, 10) * 100;
- if ((msec < 0) || (msec > 999)) return null;
- break;
- case 'ff':
- msec = parseInt(matchGroup, 10) * 10;
- if ((msec < 0) || (msec > 999)) return null;
- break;
- case 'fff':
- msec = parseInt(matchGroup, 10);
- if ((msec < 0) || (msec > 999)) return null;
- break;
- case 'dddd':
- weekDay = cultureInfo._getDayIndex(matchGroup);
- if ((weekDay < 0) || (weekDay > 6)) return null;
- break;
- case 'ddd':
- weekDay = cultureInfo._getAbbrDayIndex(matchGroup);
- if ((weekDay < 0) || (weekDay > 6)) return null;
- break;
- case 'zzz':
- var offsets = matchGroup.split(/:/);
- if (offsets.length !== 2) return null;
- var hourOffset = parseInt(offsets[0], 10);
- if ((hourOffset < -12) || (hourOffset > 13)) return null;
- var minOffset = parseInt(offsets[1], 10);
- if ((minOffset < 0) || (minOffset > 59)) return null;
- tzMinOffset = (hourOffset * 60) + (matchGroup.startsWith('-')? -minOffset : minOffset);
- break;
- case 'z': case 'zz':
- var hourOffset = parseInt(matchGroup, 10);
- if ((hourOffset < -12) || (hourOffset > 13)) return null;
- tzMinOffset = hourOffset * 60;
- break;
- }
- }
- }
- var result = new Date();
- if (year === null) {
- year = result.getFullYear();
- }
- if (month === null) {
- month = result.getMonth();
- }
- if (date === null) {
- date = result.getDate();
- }
- result.setFullYear(year, month, date);
- if (result.getDate() !== date) return null;
- if ((weekDay !== null) && (result.getDay() !== weekDay)) {
- return null;
- }
- if (pmHour && (hour < 12)) {
- hour += 12;
- }
- result.setHours(hour, min, sec, msec);
- if (tzMinOffset !== null) {
- var adjustedMin = result.getMinutes() - (tzMinOffset + result.getTimezoneOffset());
- result.setHours(result.getHours() + parseInt(adjustedMin/60, 10), adjustedMin%60);
- }
- return result;
-}
-Date.prototype.format = function Date$format(format) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "format", type: String}
- ]);
- if (e) throw e;
- return this._toFormattedString(format, Sys.CultureInfo.InvariantCulture);
-}
-Date.prototype.localeFormat = function Date$localeFormat(format) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "format", type: String}
- ]);
- if (e) throw e;
- return this._toFormattedString(format, Sys.CultureInfo.CurrentCulture);
-}
-Date.prototype._toFormattedString = function Date$_toFormattedString(format, cultureInfo) {
- if (!format || (format.length === 0) || (format === 'i')) {
- if (cultureInfo && (cultureInfo.name.length > 0)) {
- return this.toLocaleString();
- }
- else {
- return this.toString();
- }
- }
- var dtf = cultureInfo.dateTimeFormat;
- format = Date._expandFormat(dtf, format);
- var ret = new Sys.StringBuilder();
- var hour;
- function addLeadingZero(num) {
- if (num < 10) {
- return '0' + num;
- }
- return num.toString();
- }
- function addLeadingZeros(num) {
- if (num < 10) {
- return '00' + num;
- }
- if (num < 100) {
- return '0' + num;
- }
- return num.toString();
- }
- var quoteCount = 0;
- var tokenRegExp = Date._getTokenRegExp();
- for (;;) {
- var index = tokenRegExp.lastIndex;
- var ar = tokenRegExp.exec(format);
- var preMatch = format.slice(index, ar ? ar.index : format.length);
- quoteCount += Date._appendPreOrPostMatch(preMatch, ret);
- if (!ar) break;
- if ((quoteCount%2) === 1) {
- ret.append(ar[0]);
- continue;
- }
- switch (ar[0]) {
- case "dddd":
- ret.append(dtf.DayNames[this.getDay()]);
- break;
- case "ddd":
- ret.append(dtf.AbbreviatedDayNames[this.getDay()]);
- break;
- case "dd":
- ret.append(addLeadingZero(this.getDate()));
- break;
- case "d":
- ret.append(this.getDate());
- break;
- case "MMMM":
- ret.append(dtf.MonthNames[this.getMonth()]);
- break;
- case "MMM":
- ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]);
- break;
- case "MM":
- ret.append(addLeadingZero(this.getMonth() + 1));
- break;
- case "M":
- ret.append(this.getMonth() + 1);
- break;
- case "yyyy":
- ret.append(this.getFullYear());
- break;
- case "yy":
- ret.append(addLeadingZero(this.getFullYear() % 100));
- break;
- case "y":
- ret.append(this.getFullYear() % 100);
- break;
- case "hh":
- hour = this.getHours() % 12;
- if (hour === 0) hour = 12;
- ret.append(addLeadingZero(hour));
- break;
- case "h":
- hour = this.getHours() % 12;
- if (hour === 0) hour = 12;
- ret.append(hour);
- break;
- case "HH":
- ret.append(addLeadingZero(this.getHours()));
- break;
- case "H":
- ret.append(this.getHours());
- break;
- case "mm":
- ret.append(addLeadingZero(this.getMinutes()));
- break;
- case "m":
- ret.append(this.getMinutes());
- break;
- case "ss":
- ret.append(addLeadingZero(this.getSeconds()));
- break;
- case "s":
- ret.append(this.getSeconds());
- break;
- case "tt":
- ret.append((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator);
- break;
- case "t":
- ret.append(((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator).charAt(0));
- break;
- case "f":
- ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
- break;
- case "ff":
- ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, 2));
- break;
- case "fff":
- ret.append(addLeadingZeros(this.getMilliseconds()));
- break;
- case "z":
- hour = this.getTimezoneOffset() / 60;
- ret.append(((hour <= 0) ? '+' : '-') + Math.floor(Math.abs(hour)));
- break;
- case "zz":
- hour = this.getTimezoneOffset() / 60;
- ret.append(((hour <= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))));
- break;
- case "zzz":
- hour = this.getTimezoneOffset() / 60;
- ret.append(((hour <= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))) +
- dtf.TimeSeparator + addLeadingZero(Math.abs(this.getTimezoneOffset() % 60)));
- break;
- }
- }
- return ret.toString();
-}
-
-Number.__typeName = 'Number';
-Number.__class = true;
-Number.parseLocale = function Number$parseLocale(value) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "value", type: String}
- ]);
- if (e) throw e;
- return Number._parse(value, Sys.CultureInfo.CurrentCulture);
-}
-Number.parseInvariant = function Number$parseInvariant(value) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "value", type: String}
- ]);
- if (e) throw e;
- return Number._parse(value, Sys.CultureInfo.InvariantCulture);
-}
-Number._parse = function Number$_parse(value, cultureInfo) {
- value = value.trim();
-
- if (value.match(/^[+-]?infinity$/i)) {
- return parseFloat(value);
- }
- if (value.match(/^0x[a-f0-9]+$/i)) {
- return parseInt(value);
- }
- var numFormat = cultureInfo.numberFormat;
- var signInfo = Number._parseNumberNegativePattern(value, numFormat, numFormat.NumberNegativePattern);
- var sign = signInfo[0];
- var num = signInfo[1];
-
- if ((sign === '') && (numFormat.NumberNegativePattern !== 1)) {
- signInfo = Number._parseNumberNegativePattern(value, numFormat, 1);
- sign = signInfo[0];
- num = signInfo[1];
- }
- if (sign === '') sign = '+';
-
- var exponent;
- var intAndFraction;
- var exponentPos = num.indexOf('e');
- if (exponentPos < 0) exponentPos = num.indexOf('E');
- if (exponentPos < 0) {
- intAndFraction = num;
- exponent = null;
- }
- else {
- intAndFraction = num.substr(0, exponentPos);
- exponent = num.substr(exponentPos + 1);
- }
-
- var integer;
- var fraction;
- var decimalPos = intAndFraction.indexOf(numFormat.NumberDecimalSeparator);
- if (decimalPos < 0) {
- integer = intAndFraction;
- fraction = null;
- }
- else {
- integer = intAndFraction.substr(0, decimalPos);
- fraction = intAndFraction.substr(decimalPos + numFormat.NumberDecimalSeparator.length);
- }
-
- integer = integer.split(numFormat.NumberGroupSeparator).join('');
- var altNumGroupSeparator = numFormat.NumberGroupSeparator.replace(/\u00A0/g, " ");
- if (numFormat.NumberGroupSeparator !== altNumGroupSeparator) {
- integer = integer.split(altNumGroupSeparator).join('');
- }
-
- var p = sign + integer;
- if (fraction !== null) {
- p += '.' + fraction;
- }
- if (exponent !== null) {
- var expSignInfo = Number._parseNumberNegativePattern(exponent, numFormat, 1);
- if (expSignInfo[0] === '') {
- expSignInfo[0] = '+';
- }
- p += 'e' + expSignInfo[0] + expSignInfo[1];
- }
- if (p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)) {
- return parseFloat(p);
- }
- return Number.NaN;
-}
-Number._parseNumberNegativePattern = function Number$_parseNumberNegativePattern(value, numFormat, numberNegativePattern) {
- var neg = numFormat.NegativeSign;
- var pos = numFormat.PositiveSign;
- switch (numberNegativePattern) {
- case 4:
- neg = ' ' + neg;
- pos = ' ' + pos;
- case 3:
- if (value.endsWith(neg)) {
- return ['-', value.substr(0, value.length - neg.length)];
- }
- else if (value.endsWith(pos)) {
- return ['+', value.substr(0, value.length - pos.length)];
- }
- break;
- case 2:
- neg += ' ';
- pos += ' ';
- case 1:
- if (value.startsWith(neg)) {
- return ['-', value.substr(neg.length)];
- }
- else if (value.startsWith(pos)) {
- return ['+', value.substr(pos.length)];
- }
- break;
- case 0:
- if (value.startsWith('(') && value.endsWith(')')) {
- return ['-', value.substr(1, value.length - 2)];
- }
- break;
- }
- return ['', value];
-}
-Number.prototype.format = function Number$format(format) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "format", type: String}
- ]);
- if (e) throw e;
- return this._toFormattedString(format, Sys.CultureInfo.InvariantCulture);
-}
-Number.prototype.localeFormat = function Number$localeFormat(format) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "format", type: String}
- ]);
- if (e) throw e;
- return this._toFormattedString(format, Sys.CultureInfo.CurrentCulture);
-}
-Number.prototype._toFormattedString = function Number$_toFormattedString(format, cultureInfo) {
- if (!format || (format.length === 0) || (format === 'i')) {
- if (cultureInfo && (cultureInfo.name.length > 0)) {
- return this.toLocaleString();
- }
- else {
- return this.toString();
- }
- }
-
- var _percentPositivePattern = ["n %", "n%", "%n" ];
- var _percentNegativePattern = ["-n %", "-n%", "-%n"];
- var _numberNegativePattern = ["(n)","-n","- n","n-","n -"];
- var _currencyPositivePattern = ["$n","n$","$ n","n $"];
- var _currencyNegativePattern = ["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];
- function zeroPad(str, count, left) {
- for (var l=str.length; l < count; l++) {
- str = (left ? ('0' + str) : (str + '0'));
- }
- return str;
- }
-
- function expandNumber(number, precision, groupSizes, sep, decimalChar) {
-
- var curSize = groupSizes[0];
- var curGroupIndex = 1;
- var factor = Math.pow(10, precision);
- var rounded = (Math.round(number * factor) / factor);
- if (!isFinite(rounded)) {
- rounded = number;
- }
- number = rounded;
-
- var numberString = number.toString();
- var right = "";
- var exponent;
-
-
- var split = numberString.split(/e/i);
- numberString = split[0];
- exponent = (split.length > 1 ? parseInt(split[1]) : 0);
- split = numberString.split('.');
- numberString = split[0];
- right = split.length > 1 ? split[1] : "";
-
- var l;
- if (exponent > 0) {
- right = zeroPad(right, exponent, false);
- numberString += right.slice(0, exponent);
- right = right.substr(exponent);
- }
- else if (exponent < 0) {
- exponent = -exponent;
- numberString = zeroPad(numberString, exponent+1, true);
- right = numberString.slice(-exponent, numberString.length) + right;
- numberString = numberString.slice(0, -exponent);
- }
- if (precision > 0) {
- if (right.length > precision) {
- right = right.slice(0, precision);
- }
- else {
- right = zeroPad(right, precision, false);
- }
- right = decimalChar + right;
- }
- else {
- right = "";
- }
- var stringIndex = numberString.length-1;
- var ret = "";
- while (stringIndex >= 0) {
- if (curSize === 0 || curSize > stringIndex) {
- if (ret.length > 0)
- return numberString.slice(0, stringIndex + 1) + sep + ret + right;
- else
- return numberString.slice(0, stringIndex + 1) + right;
- }
- if (ret.length > 0)
- ret = numberString.slice(stringIndex - curSize + 1, stringIndex+1) + sep + ret;
- else
- ret = numberString.slice(stringIndex - curSize + 1, stringIndex+1);
- stringIndex -= curSize;
- if (curGroupIndex < groupSizes.length) {
- curSize = groupSizes[curGroupIndex];
- curGroupIndex++;
- }
- }
- return numberString.slice(0, stringIndex + 1) + sep + ret + right;
- }
- var nf = cultureInfo.numberFormat;
- var number = Math.abs(this);
- if (!format)
- format = "D";
- var precision = -1;
- if (format.length > 1) precision = parseInt(format.slice(1), 10);
- var pattern;
- switch (format.charAt(0)) {
- case "d":
- case "D":
- pattern = 'n';
- if (precision !== -1) {
- number = zeroPad(""+number, precision, true);
- }
- if (this < 0) number = -number;
- break;
- case "c":
- case "C":
- if (this < 0) pattern = _currencyNegativePattern[nf.CurrencyNegativePattern];
- else pattern = _currencyPositivePattern[nf.CurrencyPositivePattern];
- if (precision === -1) precision = nf.CurrencyDecimalDigits;
- number = expandNumber(Math.abs(this), precision, nf.CurrencyGroupSizes, nf.CurrencyGroupSeparator, nf.CurrencyDecimalSeparator);
- break;
- case "n":
- case "N":
- if (this < 0) pattern = _numberNegativePattern[nf.NumberNegativePattern];
- else pattern = 'n';
- if (precision === -1) precision = nf.NumberDecimalDigits;
- number = expandNumber(Math.abs(this), precision, nf.NumberGroupSizes, nf.NumberGroupSeparator, nf.NumberDecimalSeparator);
- break;
- case "p":
- case "P":
- if (this < 0) pattern = _percentNegativePattern[nf.PercentNegativePattern];
- else pattern = _percentPositivePattern[nf.PercentPositivePattern];
- if (precision === -1) precision = nf.PercentDecimalDigits;
- number = expandNumber(Math.abs(this) * 100, precision, nf.PercentGroupSizes, nf.PercentGroupSeparator, nf.PercentDecimalSeparator);
- break;
- default:
- throw Error.format(Sys.Res.formatBadFormatSpecifier);
- }
- var regex = /n|\$|-|%/g;
- var ret = "";
- for (;;) {
- var index = regex.lastIndex;
- var ar = regex.exec(pattern);
- ret += pattern.slice(index, ar ? ar.index : pattern.length);
- if (!ar)
- break;
- switch (ar[0]) {
- case "n":
- ret += number;
- break;
- case "$":
- ret += nf.CurrencySymbol;
- break;
- case "-":
- ret += nf.NegativeSign;
- break;
- case "%":
- ret += nf.PercentSymbol;
- break;
- }
- }
- return ret;
-}
-
-RegExp.__typeName = 'RegExp';
-RegExp.__class = true;
-
-Array.__typeName = 'Array';
-Array.__class = true;
-Array.add = Array.enqueue = function Array$enqueue(array, item) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true},
- {name: "item", mayBeNull: true}
- ]);
- if (e) throw e;
- array[array.length] = item;
-}
-Array.addRange = function Array$addRange(array, items) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true},
- {name: "items", type: Array, elementMayBeNull: true}
- ]);
- if (e) throw e;
- array.push.apply(array, items);
-}
-Array.clear = function Array$clear(array) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true}
- ]);
- if (e) throw e;
- array.length = 0;
-}
-Array.clone = function Array$clone(array) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true}
- ]);
- if (e) throw e;
- if (array.length === 1) {
- return [array[0]];
- }
- else {
- return Array.apply(null, array);
- }
-}
-Array.contains = function Array$contains(array, item) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true},
- {name: "item", mayBeNull: true}
- ]);
- if (e) throw e;
- return (Array.indexOf(array, item) >= 0);
-}
-Array.dequeue = function Array$dequeue(array) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true}
- ]);
- if (e) throw e;
- return array.shift();
-}
-Array.forEach = function Array$forEach(array, method, instance) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true},
- {name: "method", type: Function},
- {name: "instance", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- for (var i = 0, l = array.length; i < l; i++) {
- var elt = array[i];
- if (typeof(elt) !== 'undefined') method.call(instance, elt, i, array);
- }
-}
-Array.indexOf = function Array$indexOf(array, item, start) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true},
- {name: "item", mayBeNull: true, optional: true},
- {name: "start", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- if (typeof(item) === "undefined") return -1;
- var length = array.length;
- if (length !== 0) {
- start = start - 0;
- if (isNaN(start)) {
- start = 0;
- }
- else {
- if (isFinite(start)) {
- start = start - (start % 1);
- }
- if (start < 0) {
- start = Math.max(0, length + start);
- }
- }
- for (var i = start; i < length; i++) {
- if ((typeof(array[i]) !== "undefined") && (array[i] === item)) {
- return i;
- }
- }
- }
- return -1;
-}
-Array.insert = function Array$insert(array, index, item) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true},
- {name: "index", mayBeNull: true},
- {name: "item", mayBeNull: true}
- ]);
- if (e) throw e;
- array.splice(index, 0, item);
-}
-Array.parse = function Array$parse(value) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "value", type: String, mayBeNull: true}
- ]);
- if (e) throw e;
- if (!value) return [];
- var v = eval(value);
- if (!Array.isInstanceOfType(v)) throw Error.argument('value', Sys.Res.arrayParseBadFormat);
- return v;
-}
-Array.remove = function Array$remove(array, item) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true},
- {name: "item", mayBeNull: true}
- ]);
- if (e) throw e;
- var index = Array.indexOf(array, item);
- if (index >= 0) {
- array.splice(index, 1);
- }
- return (index >= 0);
-}
-Array.removeAt = function Array$removeAt(array, index) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "array", type: Array, elementMayBeNull: true},
- {name: "index", mayBeNull: true}
- ]);
- if (e) throw e;
- array.splice(index, 1);
-}
-
-if (!window) this.window = this;
-window.Type = Function;
-Type.__fullyQualifiedIdentifierRegExp = new RegExp("^[^.0-9 \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]([^ \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*[^. \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\])?$", "i");
-Type.__identifierRegExp = new RegExp("^[^.0-9 \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\][^. \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*$", "i");
-Type.prototype.callBaseMethod = function Type$callBaseMethod(instance, name, baseArguments) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "instance"},
- {name: "name", type: String},
- {name: "baseArguments", type: Array, mayBeNull: true, optional: true, elementMayBeNull: true}
- ]);
- if (e) throw e;
- var baseMethod = this.getBaseMethod(instance, name);
- if (!baseMethod) throw Error.invalidOperation(String.format(Sys.Res.methodNotFound, name));
- if (!baseArguments) {
- return baseMethod.apply(instance);
- }
- else {
- return baseMethod.apply(instance, baseArguments);
- }
-}
-Type.prototype.getBaseMethod = function Type$getBaseMethod(instance, name) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "instance"},
- {name: "name", type: String}
- ]);
- if (e) throw e;
- if (!this.isInstanceOfType(instance)) throw Error.argumentType('instance', Object.getType(instance), this);
- var baseType = this.getBaseType();
- if (baseType) {
- var baseMethod = baseType.prototype[name];
- return (baseMethod instanceof Function) ? baseMethod : null;
- }
- return null;
-}
-Type.prototype.getBaseType = function Type$getBaseType() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return (typeof(this.__baseType) === "undefined") ? null : this.__baseType;
-}
-Type.prototype.getInterfaces = function Type$getInterfaces() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- var result = [];
- var type = this;
- while(type) {
- var interfaces = type.__interfaces;
- if (interfaces) {
- for (var i = 0, l = interfaces.length; i < l; i++) {
- var interfaceType = interfaces[i];
- if (!Array.contains(result, interfaceType)) {
- result[result.length] = interfaceType;
- }
- }
- }
- type = type.__baseType;
- }
- return result;
-}
-Type.prototype.getName = function Type$getName() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return (typeof(this.__typeName) === "undefined") ? "" : this.__typeName;
-}
-Type.prototype.implementsInterface = function Type$implementsInterface(interfaceType) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "interfaceType", type: Type}
- ]);
- if (e) throw e;
- this.resolveInheritance();
- var interfaceName = interfaceType.getName();
- var cache = this.__interfaceCache;
- if (cache) {
- var cacheEntry = cache[interfaceName];
- if (typeof(cacheEntry) !== 'undefined') return cacheEntry;
- }
- else {
- cache = this.__interfaceCache = {};
- }
- var baseType = this;
- while (baseType) {
- var interfaces = baseType.__interfaces;
- if (interfaces) {
- if (Array.indexOf(interfaces, interfaceType) !== -1) {
- return cache[interfaceName] = true;
- }
- }
- baseType = baseType.__baseType;
- }
- return cache[interfaceName] = false;
-}
-Type.prototype.inheritsFrom = function Type$inheritsFrom(parentType) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "parentType", type: Type}
- ]);
- if (e) throw e;
- this.resolveInheritance();
- var baseType = this.__baseType;
- while (baseType) {
- if (baseType === parentType) {
- return true;
- }
- baseType = baseType.__baseType;
- }
- return false;
-}
-Type.prototype.initializeBase = function Type$initializeBase(instance, baseArguments) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "instance"},
- {name: "baseArguments", type: Array, mayBeNull: true, optional: true, elementMayBeNull: true}
- ]);
- if (e) throw e;
- if (!this.isInstanceOfType(instance)) throw Error.argumentType('instance', Object.getType(instance), this);
- this.resolveInheritance();
- if (this.__baseType) {
- if (!baseArguments) {
- this.__baseType.apply(instance);
- }
- else {
- this.__baseType.apply(instance, baseArguments);
- }
- }
- return instance;
-}
-Type.prototype.isImplementedBy = function Type$isImplementedBy(instance) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "instance", mayBeNull: true}
- ]);
- if (e) throw e;
- if (typeof(instance) === "undefined" || instance === null) return false;
- var instanceType = Object.getType(instance);
- return !!(instanceType.implementsInterface && instanceType.implementsInterface(this));
-}
-Type.prototype.isInstanceOfType = function Type$isInstanceOfType(instance) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "instance", mayBeNull: true}
- ]);
- if (e) throw e;
- if (typeof(instance) === "undefined" || instance === null) return false;
- if (instance instanceof this) return true;
- var instanceType = Object.getType(instance);
- return !!(instanceType === this) ||
- (instanceType.inheritsFrom && instanceType.inheritsFrom(this)) ||
- (instanceType.implementsInterface && instanceType.implementsInterface(this));
-}
-Type.prototype.registerClass = function Type$registerClass(typeName, baseType, interfaceTypes) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "typeName", type: String},
- {name: "baseType", type: Type, mayBeNull: true, optional: true},
- {name: "interfaceTypes", type: Type, parameterArray: true}
- ]);
- if (e) throw e;
- if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw Error.argument('typeName', Sys.Res.notATypeName);
- var parsedName;
- try {
- parsedName = eval(typeName);
- }
- catch(e) {
- throw Error.argument('typeName', Sys.Res.argumentTypeName);
- }
- if (parsedName !== this) throw Error.argument('typeName', Sys.Res.badTypeName);
- if (Sys.__registeredTypes[typeName]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, typeName));
- if ((arguments.length > 1) && (typeof(baseType) === 'undefined')) throw Error.argumentUndefined('baseType');
- if (baseType && !baseType.__class) throw Error.argument('baseType', Sys.Res.baseNotAClass);
- this.prototype.constructor = this;
- this.__typeName = typeName;
- this.__class = true;
- if (baseType) {
- this.__baseType = baseType;
- this.__basePrototypePending = true;
- }
- Sys.__upperCaseTypes[typeName.toUpperCase()] = this;
- if (interfaceTypes) {
- this.__interfaces = [];
- this.resolveInheritance();
- for (var i = 2, l = arguments.length; i < l; i++) {
- var interfaceType = arguments[i];
- if (!interfaceType.__interface) throw Error.argument('interfaceTypes[' + (i - 2) + ']', Sys.Res.notAnInterface);
- for (var methodName in interfaceType.prototype) {
- var method = interfaceType.prototype[methodName];
- if (!this.prototype[methodName]) {
- this.prototype[methodName] = method;
- }
- }
- this.__interfaces.push(interfaceType);
- }
- }
- Sys.__registeredTypes[typeName] = true;
- return this;
-}
-Type.prototype.registerInterface = function Type$registerInterface(typeName) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "typeName", type: String}
- ]);
- if (e) throw e;
- if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw Error.argument('typeName', Sys.Res.notATypeName);
- var parsedName;
- try {
- parsedName = eval(typeName);
- }
- catch(e) {
- throw Error.argument('typeName', Sys.Res.argumentTypeName);
- }
- if (parsedName !== this) throw Error.argument('typeName', Sys.Res.badTypeName);
- if (Sys.__registeredTypes[typeName]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, typeName));
- Sys.__upperCaseTypes[typeName.toUpperCase()] = this;
- this.prototype.constructor = this;
- this.__typeName = typeName;
- this.__interface = true;
- Sys.__registeredTypes[typeName] = true;
- return this;
-}
-Type.prototype.resolveInheritance = function Type$resolveInheritance() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (this.__basePrototypePending) {
- var baseType = this.__baseType;
- baseType.resolveInheritance();
- for (var memberName in baseType.prototype) {
- var memberValue = baseType.prototype[memberName];
- if (!this.prototype[memberName]) {
- this.prototype[memberName] = memberValue;
- }
- }
- delete this.__basePrototypePending;
- }
-}
-Type.getRootNamespaces = function Type$getRootNamespaces() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return Array.clone(Sys.__rootNamespaces);
-}
-Type.isClass = function Type$isClass(type) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "type", mayBeNull: true}
- ]);
- if (e) throw e;
- if ((typeof(type) === 'undefined') || (type === null)) return false;
- return !!type.__class;
-}
-Type.isInterface = function Type$isInterface(type) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "type", mayBeNull: true}
- ]);
- if (e) throw e;
- if ((typeof(type) === 'undefined') || (type === null)) return false;
- return !!type.__interface;
-}
-Type.isNamespace = function Type$isNamespace(object) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "object", mayBeNull: true}
- ]);
- if (e) throw e;
- if ((typeof(object) === 'undefined') || (object === null)) return false;
- return !!object.__namespace;
-}
-Type.parse = function Type$parse(typeName, ns) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "typeName", type: String, mayBeNull: true},
- {name: "ns", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var fn;
- if (ns) {
- fn = Sys.__upperCaseTypes[ns.getName().toUpperCase() + '.' + typeName.toUpperCase()];
- return fn || null;
- }
- if (!typeName) return null;
- if (!Type.__htClasses) {
- Type.__htClasses = {};
- }
- fn = Type.__htClasses[typeName];
- if (!fn) {
- fn = eval(typeName);
- if (typeof(fn) !== 'function') throw Error.argument('typeName', Sys.Res.notATypeName);
- Type.__htClasses[typeName] = fn;
- }
- return fn;
-}
-Type.registerNamespace = function Type$registerNamespace(namespacePath) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "namespacePath", type: String}
- ]);
- if (e) throw e;
- if (!Type.__fullyQualifiedIdentifierRegExp.test(namespacePath)) throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
- var rootObject = window;
- var namespaceParts = namespacePath.split('.');
- for (var i = 0; i < namespaceParts.length; i++) {
- var currentPart = namespaceParts[i];
- var ns = rootObject[currentPart];
- if (ns && !ns.__namespace) {
- throw Error.invalidOperation(String.format(Sys.Res.namespaceContainsObject, namespaceParts.splice(0, i + 1).join('.')));
- }
- if (!ns) {
- ns = rootObject[currentPart] = {
- __namespace: true,
- __typeName: namespaceParts.slice(0, i + 1).join('.')
- };
- if (i === 0) {
- Sys.__rootNamespaces[Sys.__rootNamespaces.length] = ns;
- }
- var parsedName;
- try {
- parsedName = eval(ns.__typeName);
- }
- catch(e) {
- parsedName = null;
- }
- if (parsedName !== ns) {
- delete rootObject[currentPart];
- throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
- }
- ns.getName = function ns$getName() {return this.__typeName;}
- }
- rootObject = ns;
- }
-}
-window.Sys = {
- __namespace: true,
- __typeName: "Sys",
- getName: function() {return "Sys";},
- __upperCaseTypes: {}
-};
-Sys.__rootNamespaces = [Sys];
-Sys.__registeredTypes = {};
-
-Sys.IDisposable = function Sys$IDisposable() {
- throw Error.notImplemented();
-}
- function Sys$IDisposable$dispose() {
- throw Error.notImplemented();
- }
-Sys.IDisposable.prototype = {
- dispose: Sys$IDisposable$dispose
-}
-Sys.IDisposable.registerInterface('Sys.IDisposable');
-
-Sys.StringBuilder = function Sys$StringBuilder(initialText) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "initialText", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- this._parts = (typeof(initialText) !== 'undefined' && initialText !== null && initialText !== '') ?
- [initialText.toString()] : [];
- this._value = {};
- this._len = 0;
-}
- function Sys$StringBuilder$append(text) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "text", mayBeNull: true}
- ]);
- if (e) throw e;
- this._parts[this._parts.length] = text;
- }
- function Sys$StringBuilder$appendLine(text) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "text", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- this._parts[this._parts.length] =
- ((typeof(text) === 'undefined') || (text === null) || (text === '')) ?
- '\r\n' : text + '\r\n';
- }
- function Sys$StringBuilder$clear() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- this._parts = [];
- this._value = {};
- this._len = 0;
- }
- function Sys$StringBuilder$isEmpty() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (this._parts.length === 0) return true;
- return this.toString() === '';
- }
- function Sys$StringBuilder$toString(separator) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "separator", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- separator = separator || '';
- var parts = this._parts;
- if (this._len !== parts.length) {
- this._value = {};
- this._len = parts.length;
- }
- var val = this._value;
- if (typeof(val[separator]) === 'undefined') {
- if (separator !== '') {
- for (var i = 0; i < parts.length;) {
- if ((typeof(parts[i]) === 'undefined') || (parts[i] === '') || (parts[i] === null)) {
- parts.splice(i, 1);
- }
- else {
- i++;
- }
- }
- }
- val[separator] = this._parts.join(separator);
- }
- return val[separator];
- }
-Sys.StringBuilder.prototype = {
- append: Sys$StringBuilder$append,
- appendLine: Sys$StringBuilder$appendLine,
- clear: Sys$StringBuilder$clear,
- isEmpty: Sys$StringBuilder$isEmpty,
- toString: Sys$StringBuilder$toString
-}
-Sys.StringBuilder.registerClass('Sys.StringBuilder');
-
-if (!window.XMLHttpRequest) {
- window.XMLHttpRequest = function window$XMLHttpRequest() {
- var progIDs = [ 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP' ];
- for (var i = 0, l = progIDs.length; i < l; i++) {
- try {
- return new ActiveXObject(progIDs[i]);
- }
- catch (ex) {
- }
- }
- return null;
- }
-}
-
-Sys.Browser = {};
-Sys.Browser.InternetExplorer = {};
-Sys.Browser.Firefox = {};
-Sys.Browser.Safari = {};
-Sys.Browser.Opera = {};
-Sys.Browser.agent = null;
-Sys.Browser.hasDebuggerStatement = false;
-Sys.Browser.name = navigator.appName;
-Sys.Browser.version = parseFloat(navigator.appVersion);
-Sys.Browser.documentMode = 0;
-if (navigator.userAgent.indexOf(' MSIE ') > -1) {
- Sys.Browser.agent = Sys.Browser.InternetExplorer;
- Sys.Browser.version = parseFloat(navigator.userAgent.match(/MSIE (\d+\.\d+)/)[1]);
- if (Sys.Browser.version >= 8) {
- if (document.documentMode >= 7) {
- Sys.Browser.documentMode = document.documentMode;
- }
- }
- Sys.Browser.hasDebuggerStatement = true;
-}
-else if (navigator.userAgent.indexOf(' Firefox/') > -1) {
- Sys.Browser.agent = Sys.Browser.Firefox;
- Sys.Browser.version = parseFloat(navigator.userAgent.match(/ Firefox\/(\d+\.\d+)/)[1]);
- Sys.Browser.name = 'Firefox';
- Sys.Browser.hasDebuggerStatement = true;
-}
-else if (navigator.userAgent.indexOf(' AppleWebKit/') > -1) {
- Sys.Browser.agent = Sys.Browser.Safari;
- Sys.Browser.version = parseFloat(navigator.userAgent.match(/ AppleWebKit\/(\d+(\.\d+)?)/)[1]);
- Sys.Browser.name = 'Safari';
-}
-else if (navigator.userAgent.indexOf('Opera/') > -1) {
- Sys.Browser.agent = Sys.Browser.Opera;
-}
-Type.registerNamespace('Sys.UI');
-
-Sys._Debug = function Sys$_Debug() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
-}
- function Sys$_Debug$_appendConsole(text) {
- if ((typeof(Debug) !== 'undefined') && Debug.writeln) {
- Debug.writeln(text);
- }
- if (window.console && window.console.log) {
- window.console.log(text);
- }
- if (window.opera) {
- window.opera.postError(text);
- }
- if (window.debugService) {
- window.debugService.trace(text);
- }
- }
- function Sys$_Debug$_appendTrace(text) {
- var traceElement = document.getElementById('TraceConsole');
- if (traceElement && (traceElement.tagName.toUpperCase() === 'TEXTAREA')) {
- traceElement.value += text + '\n';
- }
- }
- function Sys$_Debug$assert(condition, message, displayCaller) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "condition", type: Boolean},
- {name: "message", type: String, mayBeNull: true, optional: true},
- {name: "displayCaller", type: Boolean, optional: true}
- ]);
- if (e) throw e;
- if (!condition) {
- message = (displayCaller && this.assert.caller) ?
- String.format(Sys.Res.assertFailedCaller, message, this.assert.caller) :
- String.format(Sys.Res.assertFailed, message);
- if (confirm(String.format(Sys.Res.breakIntoDebugger, message))) {
- this.fail(message);
- }
- }
- }
- function Sys$_Debug$clearTrace() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- var traceElement = document.getElementById('TraceConsole');
- if (traceElement && (traceElement.tagName.toUpperCase() === 'TEXTAREA')) {
- traceElement.value = '';
- }
- }
- function Sys$_Debug$fail(message) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "message", type: String, mayBeNull: true}
- ]);
- if (e) throw e;
- this._appendConsole(message);
- if (Sys.Browser.hasDebuggerStatement) {
- eval('debugger');
- }
- }
- function Sys$_Debug$trace(text) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "text"}
- ]);
- if (e) throw e;
- this._appendConsole(text);
- this._appendTrace(text);
- }
- function Sys$_Debug$traceDump(object, name) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "object", mayBeNull: true},
- {name: "name", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var text = this._traceDump(object, name, true);
- }
- function Sys$_Debug$_traceDump(object, name, recursive, indentationPadding, loopArray) {
- name = name? name : 'traceDump';
- indentationPadding = indentationPadding? indentationPadding : '';
- if (object === null) {
- this.trace(indentationPadding + name + ': null');
- return;
- }
- switch(typeof(object)) {
- case 'undefined':
- this.trace(indentationPadding + name + ': Undefined');
- break;
- case 'number': case 'string': case 'boolean':
- this.trace(indentationPadding + name + ': ' + object);
- break;
- default:
- if (Date.isInstanceOfType(object) || RegExp.isInstanceOfType(object)) {
- this.trace(indentationPadding + name + ': ' + object.toString());
- break;
- }
- if (!loopArray) {
- loopArray = [];
- }
- else if (Array.contains(loopArray, object)) {
- this.trace(indentationPadding + name + ': ...');
- return;
- }
- Array.add(loopArray, object);
- if ((object == window) || (object === document) ||
- (window.HTMLElement && (object instanceof HTMLElement)) ||
- (typeof(object.nodeName) === 'string')) {
- var tag = object.tagName? object.tagName : 'DomElement';
- if (object.id) {
- tag += ' - ' + object.id;
- }
- this.trace(indentationPadding + name + ' {' + tag + '}');
- }
- else {
- var typeName = Object.getTypeName(object);
- this.trace(indentationPadding + name + (typeof(typeName) === 'string' ? ' {' + typeName + '}' : ''));
- if ((indentationPadding === '') || recursive) {
- indentationPadding += " ";
- var i, length, properties, p, v;
- if (Array.isInstanceOfType(object)) {
- length = object.length;
- for (i = 0; i < length; i++) {
- this._traceDump(object[i], '[' + i + ']', recursive, indentationPadding, loopArray);
- }
- }
- else {
- for (p in object) {
- v = object[p];
- if (!Function.isInstanceOfType(v)) {
- this._traceDump(v, p, recursive, indentationPadding, loopArray);
- }
- }
- }
- }
- }
- Array.remove(loopArray, object);
- }
- }
-Sys._Debug.prototype = {
- _appendConsole: Sys$_Debug$_appendConsole,
- _appendTrace: Sys$_Debug$_appendTrace,
- assert: Sys$_Debug$assert,
- clearTrace: Sys$_Debug$clearTrace,
- fail: Sys$_Debug$fail,
- trace: Sys$_Debug$trace,
- traceDump: Sys$_Debug$traceDump,
- _traceDump: Sys$_Debug$_traceDump
-}
-Sys._Debug.registerClass('Sys._Debug');
-Sys.Debug = new Sys._Debug();
- Sys.Debug.isDebug = true;
-
-function Sys$Enum$parse(value, ignoreCase) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "value", type: String},
- {name: "ignoreCase", type: Boolean, optional: true}
- ]);
- if (e) throw e;
- var values, parsed, val;
- if (ignoreCase) {
- values = this.__lowerCaseValues;
- if (!values) {
- this.__lowerCaseValues = values = {};
- var prototype = this.prototype;
- for (var name in prototype) {
- values[name.toLowerCase()] = prototype[name];
- }
- }
- }
- else {
- values = this.prototype;
- }
- if (!this.__flags) {
- val = (ignoreCase ? value.toLowerCase() : value);
- parsed = values[val.trim()];
- if (typeof(parsed) !== 'number') throw Error.argument('value', String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
- return parsed;
- }
- else {
- var parts = (ignoreCase ? value.toLowerCase() : value).split(',');
- var v = 0;
- for (var i = parts.length - 1; i >= 0; i--) {
- var part = parts[i].trim();
- parsed = values[part];
- if (typeof(parsed) !== 'number') throw Error.argument('value', String.format(Sys.Res.enumInvalidValue, value.split(',')[i].trim(), this.__typeName));
- v |= parsed;
- }
- return v;
- }
-}
-function Sys$Enum$toString(value) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "value", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- if ((typeof(value) === 'undefined') || (value === null)) return this.__string;
- if ((typeof(value) != 'number') || ((value % 1) !== 0)) throw Error.argumentType('value', Object.getType(value), this);
- var values = this.prototype;
- var i;
- if (!this.__flags || (value === 0)) {
- for (i in values) {
- if (values[i] === value) {
- return i;
- }
- }
- }
- else {
- var sorted = this.__sortedValues;
- if (!sorted) {
- sorted = [];
- for (i in values) {
- sorted[sorted.length] = {key: i, value: values[i]};
- }
- sorted.sort(function(a, b) {
- return a.value - b.value;
- });
- this.__sortedValues = sorted;
- }
- var parts = [];
- var v = value;
- for (i = sorted.length - 1; i >= 0; i--) {
- var kvp = sorted[i];
- var vali = kvp.value;
- if (vali === 0) continue;
- if ((vali & value) === vali) {
- parts[parts.length] = kvp.key;
- v -= vali;
- if (v === 0) break;
- }
- }
- if (parts.length && v === 0) return parts.reverse().join(', ');
- }
- throw Error.argumentOutOfRange('value', value, String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
-}
-Type.prototype.registerEnum = function Type$registerEnum(name, flags) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "name", type: String},
- {name: "flags", type: Boolean, optional: true}
- ]);
- if (e) throw e;
- if (!Type.__fullyQualifiedIdentifierRegExp.test(name)) throw Error.argument('name', Sys.Res.notATypeName);
- var parsedName;
- try {
- parsedName = eval(name);
- }
- catch(e) {
- throw Error.argument('name', Sys.Res.argumentTypeName);
- }
- if (parsedName !== this) throw Error.argument('name', Sys.Res.badTypeName);
- if (Sys.__registeredTypes[name]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, name));
- for (var i in this.prototype) {
- var val = this.prototype[i];
- if (!Type.__identifierRegExp.test(i)) throw Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, i));
- if (typeof(val) !== 'number' || (val % 1) !== 0) throw Error.invalidOperation(Sys.Res.enumValueNotInteger);
- if (typeof(this[i]) !== 'undefined') throw Error.invalidOperation(String.format(Sys.Res.enumReservedName, i));
- }
- Sys.__upperCaseTypes[name.toUpperCase()] = this;
- for (var i in this.prototype) {
- this[i] = this.prototype[i];
- }
- this.__typeName = name;
- this.parse = Sys$Enum$parse;
- this.__string = this.toString();
- this.toString = Sys$Enum$toString;
- this.__flags = flags;
- this.__enum = true;
- Sys.__registeredTypes[name] = true;
-}
-Type.isEnum = function Type$isEnum(type) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "type", mayBeNull: true}
- ]);
- if (e) throw e;
- if ((typeof(type) === 'undefined') || (type === null)) return false;
- return !!type.__enum;
-}
-Type.isFlags = function Type$isFlags(type) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "type", mayBeNull: true}
- ]);
- if (e) throw e;
- if ((typeof(type) === 'undefined') || (type === null)) return false;
- return !!type.__flags;
-}
-
-Sys.EventHandlerList = function Sys$EventHandlerList() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- this._list = {};
-}
- function Sys$EventHandlerList$addHandler(id, handler) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "id", type: String},
- {name: "handler", type: Function}
- ]);
- if (e) throw e;
- Array.add(this._getEvent(id, true), handler);
- }
- function Sys$EventHandlerList$removeHandler(id, handler) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "id", type: String},
- {name: "handler", type: Function}
- ]);
- if (e) throw e;
- var evt = this._getEvent(id);
- if (!evt) return;
- Array.remove(evt, handler);
- }
- function Sys$EventHandlerList$getHandler(id) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "id", type: String}
- ]);
- if (e) throw e;
- var evt = this._getEvent(id);
- if (!evt || (evt.length === 0)) return null;
- evt = Array.clone(evt);
- return function(source, args) {
- for (var i = 0, l = evt.length; i < l; i++) {
- evt[i](source, args);
- }
- };
- }
- function Sys$EventHandlerList$_getEvent(id, create) {
- if (!this._list[id]) {
- if (!create) return null;
- this._list[id] = [];
- }
- return this._list[id];
- }
-Sys.EventHandlerList.prototype = {
- addHandler: Sys$EventHandlerList$addHandler,
- removeHandler: Sys$EventHandlerList$removeHandler,
- getHandler: Sys$EventHandlerList$getHandler,
- _getEvent: Sys$EventHandlerList$_getEvent
-}
-Sys.EventHandlerList.registerClass('Sys.EventHandlerList');
-
-Sys.EventArgs = function Sys$EventArgs() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
-}
-Sys.EventArgs.registerClass('Sys.EventArgs');
-Sys.EventArgs.Empty = new Sys.EventArgs();
-
-Sys.CancelEventArgs = function Sys$CancelEventArgs() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- Sys.CancelEventArgs.initializeBase(this);
- this._cancel = false;
-}
- function Sys$CancelEventArgs$get_cancel() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._cancel;
- }
- function Sys$CancelEventArgs$set_cancel(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
- if (e) throw e;
- this._cancel = value;
- }
-Sys.CancelEventArgs.prototype = {
- get_cancel: Sys$CancelEventArgs$get_cancel,
- set_cancel: Sys$CancelEventArgs$set_cancel
-}
-Sys.CancelEventArgs.registerClass('Sys.CancelEventArgs', Sys.EventArgs);
-
-Sys.INotifyPropertyChange = function Sys$INotifyPropertyChange() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
-}
- function Sys$INotifyPropertyChange$add_propertyChanged(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- throw Error.notImplemented();
- }
- function Sys$INotifyPropertyChange$remove_propertyChanged(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- throw Error.notImplemented();
- }
-Sys.INotifyPropertyChange.prototype = {
- add_propertyChanged: Sys$INotifyPropertyChange$add_propertyChanged,
- remove_propertyChanged: Sys$INotifyPropertyChange$remove_propertyChanged
-}
-Sys.INotifyPropertyChange.registerInterface('Sys.INotifyPropertyChange');
-
-Sys.PropertyChangedEventArgs = function Sys$PropertyChangedEventArgs(propertyName) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "propertyName", type: String}
- ]);
- if (e) throw e;
- Sys.PropertyChangedEventArgs.initializeBase(this);
- this._propertyName = propertyName;
-}
-
- function Sys$PropertyChangedEventArgs$get_propertyName() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._propertyName;
- }
-Sys.PropertyChangedEventArgs.prototype = {
- get_propertyName: Sys$PropertyChangedEventArgs$get_propertyName
-}
-Sys.PropertyChangedEventArgs.registerClass('Sys.PropertyChangedEventArgs', Sys.EventArgs);
-
-Sys.INotifyDisposing = function Sys$INotifyDisposing() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
-}
- function Sys$INotifyDisposing$add_disposing(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- throw Error.notImplemented();
- }
- function Sys$INotifyDisposing$remove_disposing(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- throw Error.notImplemented();
- }
-Sys.INotifyDisposing.prototype = {
- add_disposing: Sys$INotifyDisposing$add_disposing,
- remove_disposing: Sys$INotifyDisposing$remove_disposing
-}
-Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing");
-
-Sys.Component = function Sys$Component() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (Sys.Application) Sys.Application.registerDisposableObject(this);
-}
- function Sys$Component$get_events() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._events) {
- this._events = new Sys.EventHandlerList();
- }
- return this._events;
- }
- function Sys$Component$get_id() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._id;
- }
- function Sys$Component$set_id(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: String}]);
- if (e) throw e;
- if (this._idSet) throw Error.invalidOperation(Sys.Res.componentCantSetIdTwice);
- this._idSet = true;
- var oldId = this.get_id();
- if (oldId && Sys.Application.findComponent(oldId)) throw Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp);
- this._id = value;
- }
- function Sys$Component$get_isInitialized() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._initialized;
- }
- function Sys$Component$get_isUpdating() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._updating;
- }
- function Sys$Component$add_disposing(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().addHandler("disposing", handler);
- }
- function Sys$Component$remove_disposing(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().removeHandler("disposing", handler);
- }
- function Sys$Component$add_propertyChanged(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().addHandler("propertyChanged", handler);
- }
- function Sys$Component$remove_propertyChanged(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().removeHandler("propertyChanged", handler);
- }
- function Sys$Component$beginUpdate() {
- this._updating = true;
- }
- function Sys$Component$dispose() {
- if (this._events) {
- var handler = this._events.getHandler("disposing");
- if (handler) {
- handler(this, Sys.EventArgs.Empty);
- }
- }
- delete this._events;
- Sys.Application.unregisterDisposableObject(this);
- Sys.Application.removeComponent(this);
- }
- function Sys$Component$endUpdate() {
- this._updating = false;
- if (!this._initialized) this.initialize();
- this.updated();
- }
- function Sys$Component$initialize() {
- this._initialized = true;
- }
- function Sys$Component$raisePropertyChanged(propertyName) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "propertyName", type: String}
- ]);
- if (e) throw e;
- if (!this._events) return;
- var handler = this._events.getHandler("propertyChanged");
- if (handler) {
- handler(this, new Sys.PropertyChangedEventArgs(propertyName));
- }
- }
- function Sys$Component$updated() {
- }
-Sys.Component.prototype = {
- _id: null,
- _idSet: false,
- _initialized: false,
- _updating: false,
- get_events: Sys$Component$get_events,
- get_id: Sys$Component$get_id,
- set_id: Sys$Component$set_id,
- get_isInitialized: Sys$Component$get_isInitialized,
- get_isUpdating: Sys$Component$get_isUpdating,
- add_disposing: Sys$Component$add_disposing,
- remove_disposing: Sys$Component$remove_disposing,
- add_propertyChanged: Sys$Component$add_propertyChanged,
- remove_propertyChanged: Sys$Component$remove_propertyChanged,
- beginUpdate: Sys$Component$beginUpdate,
- dispose: Sys$Component$dispose,
- endUpdate: Sys$Component$endUpdate,
- initialize: Sys$Component$initialize,
- raisePropertyChanged: Sys$Component$raisePropertyChanged,
- updated: Sys$Component$updated
-}
-Sys.Component.registerClass('Sys.Component', null, Sys.IDisposable, Sys.INotifyPropertyChange, Sys.INotifyDisposing);
-function Sys$Component$_setProperties(target, properties) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "target"},
- {name: "properties"}
- ]);
- if (e) throw e;
- var current;
- var targetType = Object.getType(target);
- var isObject = (targetType === Object) || (targetType === Sys.UI.DomElement);
- var isComponent = Sys.Component.isInstanceOfType(target) && !target.get_isUpdating();
- if (isComponent) target.beginUpdate();
- for (var name in properties) {
- var val = properties[name];
- var getter = isObject ? null : target["get_" + name];
- if (isObject || typeof(getter) !== 'function') {
- var targetVal = target[name];
- if (!isObject && typeof(targetVal) === 'undefined') throw Error.invalidOperation(String.format(Sys.Res.propertyUndefined, name));
- if (!val || (typeof(val) !== 'object') || (isObject && !targetVal)) {
- target[name] = val;
- }
- else {
- Sys$Component$_setProperties(targetVal, val);
- }
- }
- else {
- var setter = target["set_" + name];
- if (typeof(setter) === 'function') {
- setter.apply(target, [val]);
- }
- else if (val instanceof Array) {
- current = getter.apply(target);
- if (!(current instanceof Array)) throw new Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name));
- for (var i = 0, j = current.length, l= val.length; i < l; i++, j++) {
- current[j] = val[i];
- }
- }
- else if ((typeof(val) === 'object') && (Object.getType(val) === Object)) {
- current = getter.apply(target);
- if ((typeof(current) === 'undefined') || (current === null)) throw new Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, name));
- Sys$Component$_setProperties(current, val);
- }
- else {
- throw new Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, name));
- }
- }
- }
- if (isComponent) target.endUpdate();
-}
-function Sys$Component$_setReferences(component, references) {
- for (var name in references) {
- var setter = component["set_" + name];
- var reference = $find(references[name]);
- if (typeof(setter) !== 'function') throw new Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, name));
- if (!reference) throw Error.invalidOperation(String.format(Sys.Res.referenceNotFound, references[name]));
- setter.apply(component, [reference]);
- }
-}
-var $create = Sys.Component.create = function Sys$Component$create(type, properties, events, references, element) {
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "type", type: Type},
- {name: "properties", mayBeNull: true, optional: true},
- {name: "events", mayBeNull: true, optional: true},
- {name: "references", mayBeNull: true, optional: true},
- {name: "element", mayBeNull: true, domElement: true, optional: true}
- ]);
- if (e) throw e;
- if (!type.inheritsFrom(Sys.Component)) {
- throw Error.argument('type', String.format(Sys.Res.createNotComponent, type.getName()));
- }
- if (type.inheritsFrom(Sys.UI.Behavior) || type.inheritsFrom(Sys.UI.Control)) {
- if (!element) throw Error.argument('element', Sys.Res.createNoDom);
- }
- else if (element) throw Error.argument('element', Sys.Res.createComponentOnDom);
- var component = (element ? new type(element): new type());
- var app = Sys.Application;
- var creatingComponents = app.get_isCreatingComponents();
- component.beginUpdate();
- if (properties) {
- Sys$Component$_setProperties(component, properties);
- }
- if (events) {
- for (var name in events) {
- if (!(component["add_" + name] instanceof Function)) throw new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name));
- if (!(events[name] instanceof Function)) throw new Error.invalidOperation(Sys.Res.eventHandlerNotFunction);
- component["add_" + name](events[name]);
- }
- }
- if (component.get_id()) {
- app.addComponent(component);
- }
- if (creatingComponents) {
- app._createdComponents[app._createdComponents.length] = component;
- if (references) {
- app._addComponentToSecondPass(component, references);
- }
- else {
- component.endUpdate();
- }
- }
- else {
- if (references) {
- Sys$Component$_setReferences(component, references);
- }
- component.endUpdate();
- }
- return component;
-}
-
-Sys.UI.MouseButton = function Sys$UI$MouseButton() {
- ///
- ///
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
-}
-Sys.UI.MouseButton.prototype = {
- leftButton: 0,
- middleButton: 1,
- rightButton: 2
-}
-Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton");
-
-Sys.UI.Key = function Sys$UI$Key() {
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
-}
-Sys.UI.Key.prototype = {
- backspace: 8,
- tab: 9,
- enter: 13,
- esc: 27,
- space: 32,
- pageUp: 33,
- pageDown: 34,
- end: 35,
- home: 36,
- left: 37,
- up: 38,
- right: 39,
- down: 40,
- del: 127
-}
-Sys.UI.Key.registerEnum("Sys.UI.Key");
-
-Sys.UI.Point = function Sys$UI$Point(x, y) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "x", type: Number, integer: true},
- {name: "y", type: Number, integer: true}
- ]);
- if (e) throw e;
- this.x = x;
- this.y = y;
-}
-Sys.UI.Point.registerClass('Sys.UI.Point');
-
-Sys.UI.Bounds = function Sys$UI$Bounds(x, y, width, height) {
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "x", type: Number, integer: true},
- {name: "y", type: Number, integer: true},
- {name: "height", type: Number, integer: true},
- {name: "width", type: Number, integer: true}
- ]);
- if (e) throw e;
- this.x = x;
- this.y = y;
- this.height = height;
- this.width = width;
-}
-Sys.UI.Bounds.registerClass('Sys.UI.Bounds');
-
-Sys.UI.DomEvent = function Sys$UI$DomEvent(eventObject) {
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "eventObject"}
- ]);
- if (e) throw e;
- var e = eventObject;
- var etype = this.type = e.type.toLowerCase();
- this.rawEvent = e;
- this.altKey = e.altKey;
- if (typeof(e.button) !== 'undefined') {
- this.button = (typeof(e.which) !== 'undefined') ? e.button :
- (e.button === 4) ? Sys.UI.MouseButton.middleButton :
- (e.button === 2) ? Sys.UI.MouseButton.rightButton :
- Sys.UI.MouseButton.leftButton;
- }
- if (etype === 'keypress') {
- this.charCode = e.charCode || e.keyCode;
- }
- else if (e.keyCode && (e.keyCode === 46)) {
- this.keyCode = 127;
- }
- else {
- this.keyCode = e.keyCode;
- }
- this.clientX = e.clientX;
- this.clientY = e.clientY;
- this.ctrlKey = e.ctrlKey;
- this.target = e.target ? e.target : e.srcElement;
- if (!etype.startsWith('key')) {
- if ((typeof(e.offsetX) !== 'undefined') && (typeof(e.offsetY) !== 'undefined')) {
- this.offsetX = e.offsetX;
- this.offsetY = e.offsetY;
- }
- else if (this.target && (this.target.nodeType !== 3) && (typeof(e.clientX) === 'number')) {
- var loc = Sys.UI.DomElement.getLocation(this.target);
- var w = Sys.UI.DomElement._getWindow(this.target);
- this.offsetX = (w.pageXOffset || 0) + e.clientX - loc.x;
- this.offsetY = (w.pageYOffset || 0) + e.clientY - loc.y;
- }
- }
- this.screenX = e.screenX;
- this.screenY = e.screenY;
- this.shiftKey = e.shiftKey;
-}
- function Sys$UI$DomEvent$preventDefault() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (this.rawEvent.preventDefault) {
- this.rawEvent.preventDefault();
- }
- else if (window.event) {
- this.rawEvent.returnValue = false;
- }
- }
- function Sys$UI$DomEvent$stopPropagation() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (this.rawEvent.stopPropagation) {
- this.rawEvent.stopPropagation();
- }
- else if (window.event) {
- this.rawEvent.cancelBubble = true;
- }
- }
-Sys.UI.DomEvent.prototype = {
- preventDefault: Sys$UI$DomEvent$preventDefault,
- stopPropagation: Sys$UI$DomEvent$stopPropagation
-}
-Sys.UI.DomEvent.registerClass('Sys.UI.DomEvent');
-var $addHandler = Sys.UI.DomEvent.addHandler = function Sys$UI$DomEvent$addHandler(element, eventName, handler) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element"},
- {name: "eventName", type: String},
- {name: "handler", type: Function}
- ]);
- if (e) throw e;
- Sys.UI.DomEvent._ensureDomNode(element);
- if (eventName === "error") throw Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError);
- if (!element._events) {
- element._events = {};
- }
- var eventCache = element._events[eventName];
- if (!eventCache) {
- element._events[eventName] = eventCache = [];
- }
- var browserHandler;
- if (element.addEventListener) {
- browserHandler = function(e) {
- return handler.call(element, new Sys.UI.DomEvent(e));
- }
- element.addEventListener(eventName, browserHandler, false);
- }
- else if (element.attachEvent) {
- browserHandler = function() {
- var e = {};
- try {e = Sys.UI.DomElement._getWindow(element).event} catch(ex) {}
- return handler.call(element, new Sys.UI.DomEvent(e));
- }
- element.attachEvent('on' + eventName, browserHandler);
- }
- eventCache[eventCache.length] = {handler: handler, browserHandler: browserHandler};
-}
-var $addHandlers = Sys.UI.DomEvent.addHandlers = function Sys$UI$DomEvent$addHandlers(element, events, handlerOwner) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element"},
- {name: "events", type: Object},
- {name: "handlerOwner", optional: true}
- ]);
- if (e) throw e;
- Sys.UI.DomEvent._ensureDomNode(element);
- for (var name in events) {
- var handler = events[name];
- if (typeof(handler) !== 'function') throw Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler);
- if (handlerOwner) {
- handler = Function.createDelegate(handlerOwner, handler);
- }
- $addHandler(element, name, handler);
- }
-}
-var $clearHandlers = Sys.UI.DomEvent.clearHandlers = function Sys$UI$DomEvent$clearHandlers(element) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element"}
- ]);
- if (e) throw e;
- Sys.UI.DomEvent._ensureDomNode(element);
- if (element._events) {
- var cache = element._events;
- for (var name in cache) {
- var handlers = cache[name];
- for (var i = handlers.length - 1; i >= 0; i--) {
- $removeHandler(element, name, handlers[i].handler);
- }
- }
- element._events = null;
- }
-}
-var $removeHandler = Sys.UI.DomEvent.removeHandler = function Sys$UI$DomEvent$removeHandler(element, eventName, handler) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element"},
- {name: "eventName", type: String},
- {name: "handler", type: Function}
- ]);
- if (e) throw e;
- Sys.UI.DomEvent._ensureDomNode(element);
- var browserHandler = null;
- if ((typeof(element._events) !== 'object') || (element._events == null)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
- var cache = element._events[eventName];
- if (!(cache instanceof Array)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
- for (var i = 0, l = cache.length; i < l; i++) {
- if (cache[i].handler === handler) {
- browserHandler = cache[i].browserHandler;
- break;
- }
- }
- if (typeof(browserHandler) !== 'function') throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
- if (element.removeEventListener) {
- element.removeEventListener(eventName, browserHandler, false);
- }
- else if (element.detachEvent) {
- element.detachEvent('on' + eventName, browserHandler);
- }
- cache.splice(i, 1);
-}
-Sys.UI.DomEvent._ensureDomNode = function Sys$UI$DomEvent$_ensureDomNode(element) {
- if (element.tagName && (element.tagName.toUpperCase() === "SCRIPT")) return;
-
- var doc = element.ownerDocument || element.document || element;
- if ((typeof(element.document) !== 'object') && (element != doc) && (typeof(element.nodeType) !== 'number')) {
- throw Error.argument("element", Sys.Res.argumentDomNode);
- }
-}
-
-Sys.UI.DomElement = function Sys$UI$DomElement() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
-}
-Sys.UI.DomElement.registerClass('Sys.UI.DomElement');
-Sys.UI.DomElement.addCssClass = function Sys$UI$DomElement$addCssClass(element, className) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true},
- {name: "className", type: String}
- ]);
- if (e) throw e;
- if (!Sys.UI.DomElement.containsCssClass(element, className)) {
- if (element.className === '') {
- element.className = className;
- }
- else {
- element.className += ' ' + className;
- }
- }
-}
-Sys.UI.DomElement.containsCssClass = function Sys$UI$DomElement$containsCssClass(element, className) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true},
- {name: "className", type: String}
- ]);
- if (e) throw e;
- return Array.contains(element.className.split(' '), className);
-}
-Sys.UI.DomElement.getBounds = function Sys$UI$DomElement$getBounds(element) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- var offset = Sys.UI.DomElement.getLocation(element);
- return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || 0, element.offsetHeight || 0);
-}
-var $get = Sys.UI.DomElement.getElementById = function Sys$UI$DomElement$getElementById(id, element) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "id", type: String},
- {name: "element", mayBeNull: true, domElement: true, optional: true}
- ]);
- if (e) throw e;
- if (!element) return document.getElementById(id);
- if (element.getElementById) return element.getElementById(id);
- var nodeQueue = [];
- var childNodes = element.childNodes;
- for (var i = 0; i < childNodes.length; i++) {
- var node = childNodes[i];
- if (node.nodeType == 1) {
- nodeQueue[nodeQueue.length] = node;
- }
- }
- while (nodeQueue.length) {
- node = nodeQueue.shift();
- if (node.id == id) {
- return node;
- }
- childNodes = node.childNodes;
- for (i = 0; i < childNodes.length; i++) {
- node = childNodes[i];
- if (node.nodeType == 1) {
- nodeQueue[nodeQueue.length] = node;
- }
- }
- }
- return null;
-}
-switch(Sys.Browser.agent) {
- case Sys.Browser.InternetExplorer:
- Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- if (element.self || element.nodeType === 9) return new Sys.UI.Point(0,0);
- var clientRect = element.getBoundingClientRect();
- if (!clientRect) {
- return new Sys.UI.Point(0,0);
- }
- var documentElement = element.ownerDocument.documentElement;
- var offsetX = clientRect.left - 2 + documentElement.scrollLeft,
- offsetY = clientRect.top - 2 + documentElement.scrollTop;
-
- try {
- var f = element.ownerDocument.parentWindow.frameElement || null;
- if (f) {
- var offset = (f.frameBorder === "0" || f.frameBorder === "no") ? 2 : 0;
- offsetX += offset;
- offsetY += offset;
- }
- }
- catch(ex) {
- }
-
- return new Sys.UI.Point(offsetX, offsetY);
- }
- break;
- case Sys.Browser.Safari:
- Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0);
- var offsetX = 0;
- var offsetY = 0;
- var previous = null;
- var previousStyle = null;
- var currentStyle;
- for (var parent = element; parent; previous = parent, previousStyle = currentStyle, parent = parent.offsetParent) {
- currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
- var tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
- if ((parent.offsetLeft || parent.offsetTop) &&
- ((tagName !== "BODY") || (!previousStyle || previousStyle.position !== "absolute"))) {
- offsetX += parent.offsetLeft;
- offsetY += parent.offsetTop;
- }
- }
- currentStyle = Sys.UI.DomElement._getCurrentStyle(element);
- var elementPosition = currentStyle ? currentStyle.position : null;
- if (!elementPosition || (elementPosition !== "absolute")) {
- for (var parent = element.parentNode; parent; parent = parent.parentNode) {
- tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
- if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop)) {
- offsetX -= (parent.scrollLeft || 0);
- offsetY -= (parent.scrollTop || 0);
- }
- currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
- var parentPosition = currentStyle ? currentStyle.position : null;
- if (parentPosition && (parentPosition === "absolute")) break;
- }
- }
- return new Sys.UI.Point(offsetX, offsetY);
- }
- break;
- case Sys.Browser.Opera:
- Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0);
- var offsetX = 0;
- var offsetY = 0;
- var previous = null;
- for (var parent = element; parent; previous = parent, parent = parent.offsetParent) {
- var tagName = parent.tagName;
- offsetX += parent.offsetLeft || 0;
- offsetY += parent.offsetTop || 0;
- }
- var elementPosition = element.style.position;
- var elementPositioned = elementPosition && (elementPosition !== "static");
- for (var parent = element.parentNode; parent; parent = parent.parentNode) {
- tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
- if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop) &&
- ((elementPositioned &&
- ((parent.style.overflow === "scroll") || (parent.style.overflow === "auto"))))) {
- offsetX -= (parent.scrollLeft || 0);
- offsetY -= (parent.scrollTop || 0);
- }
- var parentPosition = (parent && parent.style) ? parent.style.position : null;
- elementPositioned = elementPositioned || (parentPosition && (parentPosition !== "static"));
- }
- return new Sys.UI.Point(offsetX, offsetY);
- }
- break;
- default:
- Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0);
- var offsetX = 0;
- var offsetY = 0;
- var previous = null;
- var previousStyle = null;
- var currentStyle = null;
- for (var parent = element; parent; previous = parent, previousStyle = currentStyle, parent = parent.offsetParent) {
- var tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
- currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
- if ((parent.offsetLeft || parent.offsetTop) &&
- !((tagName === "BODY") &&
- (!previousStyle || previousStyle.position !== "absolute"))) {
- offsetX += parent.offsetLeft;
- offsetY += parent.offsetTop;
- }
- if (previous !== null && currentStyle) {
- if ((tagName !== "TABLE") && (tagName !== "TD") && (tagName !== "HTML")) {
- offsetX += parseInt(currentStyle.borderLeftWidth) || 0;
- offsetY += parseInt(currentStyle.borderTopWidth) || 0;
- }
- if (tagName === "TABLE" &&
- (currentStyle.position === "relative" || currentStyle.position === "absolute")) {
- offsetX += parseInt(currentStyle.marginLeft) || 0;
- offsetY += parseInt(currentStyle.marginTop) || 0;
- }
- }
- }
- currentStyle = Sys.UI.DomElement._getCurrentStyle(element);
- var elementPosition = currentStyle ? currentStyle.position : null;
- if (!elementPosition || (elementPosition !== "absolute")) {
- for (var parent = element.parentNode; parent; parent = parent.parentNode) {
- tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
- if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop)) {
- offsetX -= (parent.scrollLeft || 0);
- offsetY -= (parent.scrollTop || 0);
- currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
- if (currentStyle) {
- offsetX += parseInt(currentStyle.borderLeftWidth) || 0;
- offsetY += parseInt(currentStyle.borderTopWidth) || 0;
- }
- }
- }
- }
- return new Sys.UI.Point(offsetX, offsetY);
- }
- break;
-}
-Sys.UI.DomElement.removeCssClass = function Sys$UI$DomElement$removeCssClass(element, className) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true},
- {name: "className", type: String}
- ]);
- if (e) throw e;
- var currentClassName = ' ' + element.className + ' ';
- var index = currentClassName.indexOf(' ' + className + ' ');
- if (index >= 0) {
- element.className = (currentClassName.substr(0, index) + ' ' +
- currentClassName.substring(index + className.length + 1, currentClassName.length)).trim();
- }
-}
-Sys.UI.DomElement.setLocation = function Sys$UI$DomElement$setLocation(element, x, y) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true},
- {name: "x", type: Number, integer: true},
- {name: "y", type: Number, integer: true}
- ]);
- if (e) throw e;
- var style = element.style;
- style.position = 'absolute';
- style.left = x + "px";
- style.top = y + "px";
-}
-Sys.UI.DomElement.toggleCssClass = function Sys$UI$DomElement$toggleCssClass(element, className) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true},
- {name: "className", type: String}
- ]);
- if (e) throw e;
- if (Sys.UI.DomElement.containsCssClass(element, className)) {
- Sys.UI.DomElement.removeCssClass(element, className);
- }
- else {
- Sys.UI.DomElement.addCssClass(element, className);
- }
-}
-Sys.UI.DomElement.getVisibilityMode = function Sys$UI$DomElement$getVisibilityMode(element) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- return (element._visibilityMode === Sys.UI.VisibilityMode.hide) ?
- Sys.UI.VisibilityMode.hide :
- Sys.UI.VisibilityMode.collapse;
-}
-Sys.UI.DomElement.setVisibilityMode = function Sys$UI$DomElement$setVisibilityMode(element, value) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true},
- {name: "value", type: Sys.UI.VisibilityMode}
- ]);
- if (e) throw e;
- Sys.UI.DomElement._ensureOldDisplayMode(element);
- if (element._visibilityMode !== value) {
- element._visibilityMode = value;
- if (Sys.UI.DomElement.getVisible(element) === false) {
- if (element._visibilityMode === Sys.UI.VisibilityMode.hide) {
- element.style.display = element._oldDisplayMode;
- }
- else {
- element.style.display = 'none';
- }
- }
- element._visibilityMode = value;
- }
-}
-Sys.UI.DomElement.getVisible = function Sys$UI$DomElement$getVisible(element) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- var style = element.currentStyle || Sys.UI.DomElement._getCurrentStyle(element);
- if (!style) return true;
- return (style.visibility !== 'hidden') && (style.display !== 'none');
-}
-Sys.UI.DomElement.setVisible = function Sys$UI$DomElement$setVisible(element, value) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true},
- {name: "value", type: Boolean}
- ]);
- if (e) throw e;
- if (value !== Sys.UI.DomElement.getVisible(element)) {
- Sys.UI.DomElement._ensureOldDisplayMode(element);
- element.style.visibility = value ? 'visible' : 'hidden';
- if (value || (element._visibilityMode === Sys.UI.VisibilityMode.hide)) {
- element.style.display = element._oldDisplayMode;
- }
- else {
- element.style.display = 'none';
- }
- }
-}
-Sys.UI.DomElement._ensureOldDisplayMode = function Sys$UI$DomElement$_ensureOldDisplayMode(element) {
- if (!element._oldDisplayMode) {
- var style = element.currentStyle || Sys.UI.DomElement._getCurrentStyle(element);
- element._oldDisplayMode = style ? style.display : null;
- if (!element._oldDisplayMode || element._oldDisplayMode === 'none') {
- switch(element.tagName.toUpperCase()) {
- case 'DIV': case 'P': case 'ADDRESS': case 'BLOCKQUOTE': case 'BODY': case 'COL':
- case 'COLGROUP': case 'DD': case 'DL': case 'DT': case 'FIELDSET': case 'FORM':
- case 'H1': case 'H2': case 'H3': case 'H4': case 'H5': case 'H6': case 'HR':
- case 'IFRAME': case 'LEGEND': case 'OL': case 'PRE': case 'TABLE': case 'TD':
- case 'TH': case 'TR': case 'UL':
- element._oldDisplayMode = 'block';
- break;
- case 'LI':
- element._oldDisplayMode = 'list-item';
- break;
- default:
- element._oldDisplayMode = 'inline';
- }
- }
- }
-}
-Sys.UI.DomElement._getWindow = function Sys$UI$DomElement$_getWindow(element) {
- var doc = element.ownerDocument || element.document || element;
- return doc.defaultView || doc.parentWindow;
-}
-Sys.UI.DomElement._getCurrentStyle = function Sys$UI$DomElement$_getCurrentStyle(element) {
- if (element.nodeType === 3) return null;
- var w = Sys.UI.DomElement._getWindow(element);
- if (element.documentElement) element = element.documentElement;
- var computedStyle = (w && (element !== w) && w.getComputedStyle) ?
- w.getComputedStyle(element, null) :
- element.currentStyle || element.style;
- if (!computedStyle && (Sys.Browser.agent === Sys.Browser.Safari) && element.style) {
- var oldDisplay = element.style.display;
- var oldPosition = element.style.position;
- element.style.position = 'absolute';
- element.style.display = 'block';
- var style = w.getComputedStyle(element, null);
- element.style.display = oldDisplay;
- element.style.position = oldPosition;
- computedStyle = {};
- for (var n in style) {
- computedStyle[n] = style[n];
- }
- computedStyle.display = 'none';
- }
- return computedStyle;
-}
-
-Sys.IContainer = function Sys$IContainer() {
- throw Error.notImplemented();
-}
- function Sys$IContainer$addComponent(component) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "component", type: Sys.Component}
- ]);
- if (e) throw e;
- throw Error.notImplemented();
- }
- function Sys$IContainer$removeComponent(component) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "component", type: Sys.Component}
- ]);
- if (e) throw e;
- throw Error.notImplemented();
- }
- function Sys$IContainer$findComponent(id) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "id", type: String}
- ]);
- if (e) throw e;
- throw Error.notImplemented();
- }
- function Sys$IContainer$getComponents() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
-Sys.IContainer.prototype = {
- addComponent: Sys$IContainer$addComponent,
- removeComponent: Sys$IContainer$removeComponent,
- findComponent: Sys$IContainer$findComponent,
- getComponents: Sys$IContainer$getComponents
-}
-Sys.IContainer.registerInterface("Sys.IContainer");
-
-Sys._ScriptLoader = function Sys$_ScriptLoader() {
- this._scriptsToLoad = null;
- this._sessions = [];
- this._scriptLoadedDelegate = Function.createDelegate(this, this._scriptLoadedHandler);
-}
- function Sys$_ScriptLoader$dispose() {
- this._stopSession();
- this._loading = false;
- if(this._events) {
- delete this._events;
- }
- this._sessions = null;
- this._currentSession = null;
- this._scriptLoadedDelegate = null;
- }
- function Sys$_ScriptLoader$loadScripts(scriptTimeout, allScriptsLoadedCallback, scriptLoadFailedCallback, scriptLoadTimeoutCallback) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "scriptTimeout", type: Number, integer: true},
- {name: "allScriptsLoadedCallback", type: Function, mayBeNull: true},
- {name: "scriptLoadFailedCallback", type: Function, mayBeNull: true},
- {name: "scriptLoadTimeoutCallback", type: Function, mayBeNull: true}
- ]);
- if (e) throw e;
- var session = {
- allScriptsLoadedCallback: allScriptsLoadedCallback,
- scriptLoadFailedCallback: scriptLoadFailedCallback,
- scriptLoadTimeoutCallback: scriptLoadTimeoutCallback,
- scriptsToLoad: this._scriptsToLoad,
- scriptTimeout: scriptTimeout };
- this._scriptsToLoad = null;
- this._sessions[this._sessions.length] = session;
-
- if (!this._loading) {
- this._nextSession();
- }
- }
- function Sys$_ScriptLoader$notifyScriptLoaded() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
-
- if(!this._loading) {
- return;
- }
- this._currentTask._notified++;
-
- if(Sys.Browser.agent === Sys.Browser.Safari) {
- if(this._currentTask._notified === 1) {
- window.setTimeout(Function.createDelegate(this, function() {
- this._scriptLoadedHandler(this._currentTask.get_scriptElement(), true);
- }), 0);
- }
- }
- }
- function Sys$_ScriptLoader$queueCustomScriptTag(scriptAttributes) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "scriptAttributes"}
- ]);
- if (e) throw e;
- if(!this._scriptsToLoad) {
- this._scriptsToLoad = [];
- }
- Array.add(this._scriptsToLoad, scriptAttributes);
- }
- function Sys$_ScriptLoader$queueScriptBlock(scriptContent) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "scriptContent", type: String}
- ]);
- if (e) throw e;
- if(!this._scriptsToLoad) {
- this._scriptsToLoad = [];
- }
- Array.add(this._scriptsToLoad, {text: scriptContent});
- }
- function Sys$_ScriptLoader$queueScriptReference(scriptUrl) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "scriptUrl", type: String}
- ]);
- if (e) throw e;
- if(!this._scriptsToLoad) {
- this._scriptsToLoad = [];
- }
- Array.add(this._scriptsToLoad, {src: scriptUrl});
- }
- function Sys$_ScriptLoader$_createScriptElement(queuedScript) {
- var scriptElement = document.createElement('script');
- scriptElement.type = 'text/javascript';
- for (var attr in queuedScript) {
- scriptElement[attr] = queuedScript[attr];
- }
-
- return scriptElement;
- }
- function Sys$_ScriptLoader$_loadScriptsInternal() {
- var session = this._currentSession;
- if (session.scriptsToLoad && session.scriptsToLoad.length > 0) {
- var nextScript = Array.dequeue(session.scriptsToLoad);
- var scriptElement = this._createScriptElement(nextScript);
-
- if (scriptElement.text && Sys.Browser.agent === Sys.Browser.Safari) {
- scriptElement.innerHTML = scriptElement.text;
- delete scriptElement.text;
- }
- if (typeof(nextScript.src) === "string") {
- this._currentTask = new Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate);
- this._currentTask.execute();
- }
- else {
- var headElements = document.getElementsByTagName('head');
- if (headElements.length === 0) {
- throw new Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
- }
- else {
- headElements[0].appendChild(scriptElement);
- }
-
-
- Sys._ScriptLoader._clearScript(scriptElement);
- this._loadScriptsInternal();
- }
- }
- else {
- this._stopSession();
- var callback = session.allScriptsLoadedCallback;
- if(callback) {
- callback(this);
- }
- this._nextSession();
- }
- }
- function Sys$_ScriptLoader$_nextSession() {
- if (this._sessions.length === 0) {
- this._loading = false;
- this._currentSession = null;
- return;
- }
- this._loading = true;
-
- var session = Array.dequeue(this._sessions);
- this._currentSession = session;
- this._loadScriptsInternal();
- }
- function Sys$_ScriptLoader$_raiseError(multipleCallbacks) {
- var callback = this._currentSession.scriptLoadFailedCallback;
- var scriptElement = this._currentTask.get_scriptElement();
- this._stopSession();
-
- if(callback) {
- callback(this, scriptElement, multipleCallbacks);
- this._nextSession();
- }
- else {
- this._loading = false;
- throw Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src, multipleCallbacks);
- }
- }
- function Sys$_ScriptLoader$_scriptLoadedHandler(scriptElement, loaded) {
- if(loaded && this._currentTask._notified) {
- if(this._currentTask._notified > 1) {
- this._raiseError(true);
- }
- else {
- Array.add(Sys._ScriptLoader._getLoadedScripts(), scriptElement.src);
- this._currentTask.dispose();
- this._currentTask = null;
- this._loadScriptsInternal();
- }
- }
- else {
- this._raiseError(false);
- }
- }
- function Sys$_ScriptLoader$_scriptLoadTimeoutHandler() {
- var callback = this._currentSession.scriptLoadTimeoutCallback;
- this._stopSession();
- if(callback) {
- callback(this);
- }
- this._nextSession();
- }
- function Sys$_ScriptLoader$_stopSession() {
- if(this._currentTask) {
- this._currentTask.dispose();
- this._currentTask = null;
- }
- }
-Sys._ScriptLoader.prototype = {
- dispose: Sys$_ScriptLoader$dispose,
- loadScripts: Sys$_ScriptLoader$loadScripts,
- notifyScriptLoaded: Sys$_ScriptLoader$notifyScriptLoaded,
- queueCustomScriptTag: Sys$_ScriptLoader$queueCustomScriptTag,
- queueScriptBlock: Sys$_ScriptLoader$queueScriptBlock,
- queueScriptReference: Sys$_ScriptLoader$queueScriptReference,
- _createScriptElement: Sys$_ScriptLoader$_createScriptElement,
- _loadScriptsInternal: Sys$_ScriptLoader$_loadScriptsInternal,
- _nextSession: Sys$_ScriptLoader$_nextSession,
- _raiseError: Sys$_ScriptLoader$_raiseError,
- _scriptLoadedHandler: Sys$_ScriptLoader$_scriptLoadedHandler,
- _scriptLoadTimeoutHandler: Sys$_ScriptLoader$_scriptLoadTimeoutHandler,
- _stopSession: Sys$_ScriptLoader$_stopSession
-}
-Sys._ScriptLoader.registerClass('Sys._ScriptLoader', null, Sys.IDisposable);
-Sys._ScriptLoader.getInstance = function Sys$_ScriptLoader$getInstance() {
- var sl = Sys._ScriptLoader._activeInstance;
- if(!sl) {
- sl = Sys._ScriptLoader._activeInstance = new Sys._ScriptLoader();
- }
- return sl;
-}
-Sys._ScriptLoader.isScriptLoaded = function Sys$_ScriptLoader$isScriptLoaded(scriptSrc) {
- var dummyScript = document.createElement('script');
- dummyScript.src = scriptSrc;
- return Array.contains(Sys._ScriptLoader._getLoadedScripts(), dummyScript.src);
-}
-Sys._ScriptLoader.readLoadedScripts = function Sys$_ScriptLoader$readLoadedScripts() {
- if(!Sys._ScriptLoader._referencedScripts) {
- var referencedScripts = Sys._ScriptLoader._referencedScripts = [];
- var existingScripts = document.getElementsByTagName('script');
- for (i = existingScripts.length - 1; i >= 0; i--) {
- var scriptNode = existingScripts[i];
- var scriptSrc = scriptNode.src;
- if (scriptSrc.length) {
- if (!Array.contains(referencedScripts, scriptSrc)) {
- Array.add(referencedScripts, scriptSrc);
- }
- }
- }
- }
-}
-Sys._ScriptLoader._clearScript = function Sys$_ScriptLoader$_clearScript(scriptElement) {
- if (!Sys.Debug.isDebug) {
- scriptElement.parentNode.removeChild(scriptElement);
- }
-}
-Sys._ScriptLoader._errorScriptLoadFailed = function Sys$_ScriptLoader$_errorScriptLoadFailed(scriptUrl, multipleCallbacks) {
- var errorMessage;
- if(multipleCallbacks) {
- errorMessage = Sys.Res.scriptLoadMultipleCallbacks;
- }
- else {
- errorMessage = Sys.Res.scriptLoadFailedDebug;
- }
- var displayMessage = "Sys.ScriptLoadFailedException: " + String.format(errorMessage, scriptUrl);
- var e = Error.create(displayMessage, {name: 'Sys.ScriptLoadFailedException', 'scriptUrl': scriptUrl });
- e.popStackFrame();
- return e;
-}
-Sys._ScriptLoader._getLoadedScripts = function Sys$_ScriptLoader$_getLoadedScripts() {
- if(!Sys._ScriptLoader._referencedScripts) {
- Sys._ScriptLoader._referencedScripts = [];
- Sys._ScriptLoader.readLoadedScripts();
- }
- return Sys._ScriptLoader._referencedScripts;
-}
-
-Sys._ScriptLoaderTask = function Sys$_ScriptLoaderTask(scriptElement, completedCallback) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "scriptElement", domElement: true},
- {name: "completedCallback", type: Function}
- ]);
- if (e) throw e;
- this._scriptElement = scriptElement;
- this._completedCallback = completedCallback;
- this._notified = 0;
-}
- function Sys$_ScriptLoaderTask$get_scriptElement() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._scriptElement;
- }
- function Sys$_ScriptLoaderTask$dispose() {
- if(this._disposed) {
- return;
- }
- this._disposed = true;
- this._removeScriptElementHandlers();
- Sys._ScriptLoader._clearScript(this._scriptElement);
- this._scriptElement = null;
- }
- function Sys$_ScriptLoaderTask$execute() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- this._addScriptElementHandlers();
- var headElements = document.getElementsByTagName('head');
- if (headElements.length === 0) {
- throw new Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
- }
- else {
- headElements[0].appendChild(this._scriptElement);
- }
- }
- function Sys$_ScriptLoaderTask$_addScriptElementHandlers() {
- this._scriptLoadDelegate = Function.createDelegate(this, this._scriptLoadHandler);
-
- if (Sys.Browser.agent !== Sys.Browser.InternetExplorer) {
- this._scriptElement.readyState = 'loaded';
- $addHandler(this._scriptElement, 'load', this._scriptLoadDelegate);
- }
- else {
- $addHandler(this._scriptElement, 'readystatechange', this._scriptLoadDelegate);
- }
- if (this._scriptElement.addEventListener) {
- this._scriptErrorDelegate = Function.createDelegate(this, this._scriptErrorHandler);
- this._scriptElement.addEventListener('error', this._scriptErrorDelegate, false);
- }
- }
- function Sys$_ScriptLoaderTask$_removeScriptElementHandlers() {
- if(this._scriptLoadDelegate) {
- var scriptElement = this.get_scriptElement();
- if (Sys.Browser.agent !== Sys.Browser.InternetExplorer) {
- $removeHandler(scriptElement, 'load', this._scriptLoadDelegate);
- }
- else {
- $removeHandler(scriptElement, 'readystatechange', this._scriptLoadDelegate);
- }
- if (this._scriptErrorDelegate) {
- this._scriptElement.removeEventListener('error', this._scriptErrorDelegate, false);
- this._scriptErrorDelegate = null;
- }
- this._scriptLoadDelegate = null;
- }
- }
- function Sys$_ScriptLoaderTask$_scriptErrorHandler() {
- if(this._disposed) {
- return;
- }
-
- this._completedCallback(this.get_scriptElement(), false);
- }
- function Sys$_ScriptLoaderTask$_scriptLoadHandler() {
- if(this._disposed) {
- return;
- }
- var scriptElement = this.get_scriptElement();
- if ((scriptElement.readyState !== 'loaded') &&
- (scriptElement.readyState !== 'complete')) {
- return;
- }
-
- var _this = this;
- window.setTimeout(function() {
- _this._completedCallback(scriptElement, true);
- }, 0);
- }
-Sys._ScriptLoaderTask.prototype = {
- get_scriptElement: Sys$_ScriptLoaderTask$get_scriptElement,
- dispose: Sys$_ScriptLoaderTask$dispose,
- execute: Sys$_ScriptLoaderTask$execute,
- _addScriptElementHandlers: Sys$_ScriptLoaderTask$_addScriptElementHandlers,
- _removeScriptElementHandlers: Sys$_ScriptLoaderTask$_removeScriptElementHandlers,
- _scriptErrorHandler: Sys$_ScriptLoaderTask$_scriptErrorHandler,
- _scriptLoadHandler: Sys$_ScriptLoaderTask$_scriptLoadHandler
-}
-Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask", null, Sys.IDisposable);
-
-Sys.ApplicationLoadEventArgs = function Sys$ApplicationLoadEventArgs(components, isPartialLoad) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "components", type: Array, elementType: Sys.Component},
- {name: "isPartialLoad", type: Boolean}
- ]);
- if (e) throw e;
- Sys.ApplicationLoadEventArgs.initializeBase(this);
- this._components = components;
- this._isPartialLoad = isPartialLoad;
-}
-
- function Sys$ApplicationLoadEventArgs$get_components() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._components;
- }
- function Sys$ApplicationLoadEventArgs$get_isPartialLoad() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._isPartialLoad;
- }
-Sys.ApplicationLoadEventArgs.prototype = {
- get_components: Sys$ApplicationLoadEventArgs$get_components,
- get_isPartialLoad: Sys$ApplicationLoadEventArgs$get_isPartialLoad
-}
-Sys.ApplicationLoadEventArgs.registerClass('Sys.ApplicationLoadEventArgs', Sys.EventArgs);
-Sys.HistoryEventArgs = function Sys$HistoryEventArgs(state) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "state", type: Object}
- ]);
- if (e) throw e;
- Sys.HistoryEventArgs.initializeBase(this);
- this._state = state;
-}
- function Sys$HistoryEventArgs$get_state() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._state;
- }
-Sys.HistoryEventArgs.prototype = {
- get_state: Sys$HistoryEventArgs$get_state
-}
-Sys.HistoryEventArgs.registerClass('Sys.HistoryEventArgs', Sys.EventArgs);
-
-Sys._Application = function Sys$_Application() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- Sys._Application.initializeBase(this);
- this._disposableObjects = [];
- this._components = {};
- this._createdComponents = [];
- this._secondPassComponents = [];
- this._appLoadHandler = null;
- this._beginRequestHandler = null;
- this._clientId = null;
- this._currentEntry = '';
- this._endRequestHandler = null;
- this._history = null;
- this._enableHistory = false;
- this._historyEnabledInScriptManager = false;
- this._historyFrame = null;
- this._historyInitialized = false;
- this._historyInitialLength = 0;
- this._historyLength = 0;
- this._historyPointIsNew = false;
- this._ignoreTimer = false;
- this._initialState = null;
- this._state = {};
- this._timerCookie = 0;
- this._timerHandler = null;
- this._uniqueId = null;
- this._unloadHandlerDelegate = Function.createDelegate(this, this._unloadHandler);
- this._loadHandlerDelegate = Function.createDelegate(this, this._loadHandler);
- Sys.UI.DomEvent.addHandler(window, "unload", this._unloadHandlerDelegate);
- Sys.UI.DomEvent.addHandler(window, "load", this._loadHandlerDelegate);
-}
- function Sys$_Application$get_isCreatingComponents() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._creatingComponents;
- }
- function Sys$_Application$get_stateString() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- var hash = window.location.hash;
- if (this._isSafari2()) {
- var history = this._getHistory();
- if (history) {
- hash = history[window.history.length - this._historyInitialLength];
- }
- }
- if ((hash.length > 0) && (hash.charAt(0) === '#')) {
- hash = hash.substring(1);
- }
- if (Sys.Browser.agent === Sys.Browser.Firefox) {
- hash = this._serializeState(this._deserializeState(hash, true));
- }
- return hash;
- }
- function Sys$_Application$get_enableHistory() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._enableHistory;
- }
- function Sys$_Application$set_enableHistory(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
- if (e) throw e;
- if (this._initialized && !this._initializing) {
- throw Error.invalidOperation(Sys.Res.historyCannotEnableHistory);
- }
- else if (this._historyEnabledInScriptManager && !value) {
- throw Error.invalidOperation(Sys.Res.invalidHistorySettingCombination);
- }
- this._enableHistory = value;
- }
- function Sys$_Application$add_init(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- if (this._initialized) {
- handler(this, Sys.EventArgs.Empty);
- }
- else {
- this.get_events().addHandler("init", handler);
- }
- }
- function Sys$_Application$remove_init(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().removeHandler("init", handler);
- }
- function Sys$_Application$add_load(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().addHandler("load", handler);
- }
- function Sys$_Application$remove_load(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().removeHandler("load", handler);
- }
- function Sys$_Application$add_navigate(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().addHandler("navigate", handler);
- }
- function Sys$_Application$remove_navigate(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().removeHandler("navigate", handler);
- }
- function Sys$_Application$add_unload(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().addHandler("unload", handler);
- }
- function Sys$_Application$remove_unload(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this.get_events().removeHandler("unload", handler);
- }
- function Sys$_Application$addComponent(component) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "component", type: Sys.Component}
- ]);
- if (e) throw e;
- var id = component.get_id();
- if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId);
- if (typeof(this._components[id]) !== 'undefined') throw Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, id));
- this._components[id] = component;
- }
- function Sys$_Application$addHistoryPoint(state, title) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "state", type: Object},
- {name: "title", type: String, mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- if (!this._enableHistory) throw Error.invalidOperation(Sys.Res.historyCannotAddHistoryPointWithHistoryDisabled);
- for (var n in state) {
- var v = state[n];
- var t = typeof(v);
- if ((v !== null) && ((t === 'object') || (t === 'function') || (t === 'undefined'))) {
- throw Error.argument('state', Sys.Res.stateMustBeStringDictionary);
- }
- }
- this._ensureHistory();
- var initialState = this._state;
- for (var key in state) {
- var value = state[key];
- if (value === null) {
- if (typeof(initialState[key]) !== 'undefined') {
- delete initialState[key];
- }
- }
- else {
- initialState[key] = value;
- }
- }
- var entry = this._serializeState(initialState);
- this._historyPointIsNew = true;
- this._setState(entry, title);
- this._raiseNavigate();
- }
- function Sys$_Application$beginCreateComponents() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- this._creatingComponents = true;
- }
- function Sys$_Application$dispose() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._disposing) {
- this._disposing = true;
- if (this._timerCookie) {
- window.clearTimeout(this._timerCookie);
- delete this._timerCookie;
- }
- if (this._endRequestHandler) {
- Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);
- delete this._endRequestHandler;
- }
- if (this._beginRequestHandler) {
- Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._beginRequestHandler);
- delete this._beginRequestHandler;
- }
- if (window.pageUnload) {
- window.pageUnload(this, Sys.EventArgs.Empty);
- }
- var unloadHandler = this.get_events().getHandler("unload");
- if (unloadHandler) {
- unloadHandler(this, Sys.EventArgs.Empty);
- }
- var disposableObjects = Array.clone(this._disposableObjects);
- for (var i = 0, l = disposableObjects.length; i < l; i++) {
- disposableObjects[i].dispose();
- }
- Array.clear(this._disposableObjects);
- Sys.UI.DomEvent.removeHandler(window, "unload", this._unloadHandlerDelegate);
- if(this._loadHandlerDelegate) {
- Sys.UI.DomEvent.removeHandler(window, "load", this._loadHandlerDelegate);
- this._loadHandlerDelegate = null;
- }
- var sl = Sys._ScriptLoader.getInstance();
- if(sl) {
- sl.dispose();
- }
- Sys._Application.callBaseMethod(this, 'dispose');
- }
- }
- function Sys$_Application$endCreateComponents() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- var components = this._secondPassComponents;
- for (var i = 0, l = components.length; i < l; i++) {
- var component = components[i].component;
- Sys$Component$_setReferences(component, components[i].references);
- component.endUpdate();
- }
- this._secondPassComponents = [];
- this._creatingComponents = false;
- }
- function Sys$_Application$findComponent(id, parent) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "id", type: String},
- {name: "parent", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- return (parent ?
- ((Sys.IContainer.isInstanceOfType(parent)) ?
- parent.findComponent(id) :
- parent[id] || null) :
- Sys.Application._components[id] || null);
- }
- function Sys$_Application$getComponents() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- var res = [];
- var components = this._components;
- for (var name in components) {
- res[res.length] = components[name];
- }
- return res;
- }
- function Sys$_Application$initialize() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if(!this._initialized && !this._initializing) {
- this._initializing = true;
- window.setTimeout(Function.createDelegate(this, this._doInitialize), 0);
- }
- }
- function Sys$_Application$notifyScriptLoaded() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- var sl = Sys._ScriptLoader.getInstance();
- if(sl) {
- sl.notifyScriptLoaded();
- }
- }
- function Sys$_Application$registerDisposableObject(object) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "object", type: Sys.IDisposable}
- ]);
- if (e) throw e;
- if (!this._disposing) {
- this._disposableObjects[this._disposableObjects.length] = object;
- }
- }
- function Sys$_Application$raiseLoad() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- var h = this.get_events().getHandler("load");
- var args = new Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), !this._initializing);
- if (h) {
- h(this, args);
- }
- if (window.pageLoad) {
- window.pageLoad(this, args);
- }
- this._createdComponents = [];
- }
- function Sys$_Application$removeComponent(component) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "component", type: Sys.Component}
- ]);
- if (e) throw e;
- var id = component.get_id();
- if (id) delete this._components[id];
- }
- function Sys$_Application$setServerId(clientId, uniqueId) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "clientId", type: String},
- {name: "uniqueId", type: String}
- ]);
- if (e) throw e;
- this._clientId = clientId;
- this._uniqueId = uniqueId;
- }
- function Sys$_Application$setServerState(value) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "value", type: String}
- ]);
- if (e) throw e;
- this._ensureHistory();
- this._state.__s = value;
- this._updateHiddenField(value);
- }
- function Sys$_Application$unregisterDisposableObject(object) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "object", type: Sys.IDisposable}
- ]);
- if (e) throw e;
- if (!this._disposing) {
- Array.remove(this._disposableObjects, object);
- }
- }
- function Sys$_Application$_addComponentToSecondPass(component, references) {
- this._secondPassComponents[this._secondPassComponents.length] = {component: component, references: references};
- }
- function Sys$_Application$_deserializeState(entry, skipDecodeUri) {
- var result = {};
- entry = entry || '';
- var serverSeparator = entry.indexOf('&&');
- if ((serverSeparator !== -1) && (serverSeparator + 2 < entry.length)) {
- result.__s = entry.substr(serverSeparator + 2);
- entry = entry.substr(0, serverSeparator);
- }
- var tokens = entry.split('&');
- for (var i = 0, l = tokens.length; i < l; i++) {
- var token = tokens[i];
- var equal = token.indexOf('=');
- if ((equal !== -1) && (equal + 1 < token.length)) {
- var name = token.substr(0, equal);
- var value = token.substr(equal + 1);
- result[name] = skipDecodeUri ? value : decodeURIComponent(value);
- }
- }
- return result;
- }
- function Sys$_Application$_doInitialize() {
- Sys._Application.callBaseMethod(this, 'initialize');
-
- var handler = this.get_events().getHandler("init");
- if (handler) {
- this.beginCreateComponents();
- handler(this, Sys.EventArgs.Empty);
- this.endCreateComponents();
- }
- if (Sys.WebForms) {
- this._beginRequestHandler = Function.createDelegate(this, this._onPageRequestManagerBeginRequest);
- Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this._beginRequestHandler);
- this._endRequestHandler = Function.createDelegate(this, this._onPageRequestManagerEndRequest);
- Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endRequestHandler);
- }
-
- var loadedEntry = this.get_stateString();
- if (loadedEntry !== this._currentEntry) {
- this._navigate(loadedEntry);
- }
-
- this.raiseLoad();
- this._initializing = false;
- }
- function Sys$_Application$_enableHistoryInScriptManager() {
- this._enableHistory = true;
- this._historyEnabledInScriptManager = true;
- }
- function Sys$_Application$_ensureHistory() {
- if (!this._historyInitialized && this._enableHistory) {
- if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.documentMode < 8)) {
- this._historyFrame = document.getElementById('__historyFrame');
- if (!this._historyFrame) throw Error.invalidOperation(Sys.Res.historyMissingFrame);
- this._ignoreIFrame = true;
- }
- if (this._isSafari2()) {
- var historyElement = document.getElementById('__history');
- if (!historyElement) throw Error.invalidOperation(Sys.Res.historyMissingHiddenInput);
- this._setHistory([window.location.hash]);
- this._historyInitialLength = window.history.length;
- }
-
- this._timerHandler = Function.createDelegate(this, this._onIdle);
- this._timerCookie = window.setTimeout(this._timerHandler, 100);
-
- try {
- this._initialState = this._deserializeState(this.get_stateString());
- } catch(e) {}
-
- this._historyInitialized = true;
- }
- }
- function Sys$_Application$_getHistory() {
- var historyElement = document.getElementById('__history');
- if (!historyElement) return '';
- var v = historyElement.value;
- return v ? Sys.Serialization.JavaScriptSerializer.deserialize(v, true) : '';
- }
- function Sys$_Application$_isSafari2() {
- return (Sys.Browser.agent === Sys.Browser.Safari) &&
- (Sys.Browser.version <= 419.3);
- }
- function Sys$_Application$_loadHandler() {
- if(this._loadHandlerDelegate) {
- Sys.UI.DomEvent.removeHandler(window, "load", this._loadHandlerDelegate);
- this._loadHandlerDelegate = null;
- }
- this.initialize();
- }
- function Sys$_Application$_navigate(entry) {
- this._ensureHistory();
- var state = this._deserializeState(entry);
-
- if (this._uniqueId) {
- var oldServerEntry = this._state.__s || '';
- var newServerEntry = state.__s || '';
- if (newServerEntry !== oldServerEntry) {
- this._updateHiddenField(newServerEntry);
- __doPostBack(this._uniqueId, newServerEntry);
- this._state = state;
- return;
- }
- }
- this._setState(entry);
- this._state = state;
- this._raiseNavigate();
- }
- function Sys$_Application$_onIdle() {
- delete this._timerCookie;
-
- var entry = this.get_stateString();
- if (entry !== this._currentEntry) {
- if (!this._ignoreTimer) {
- this._historyPointIsNew = false;
- this._navigate(entry);
- this._historyLength = window.history.length;
- }
- }
- else {
- this._ignoreTimer = false;
- }
- this._timerCookie = window.setTimeout(this._timerHandler, 100);
- }
- function Sys$_Application$_onIFrameLoad(entry) {
- this._ensureHistory();
- if (!this._ignoreIFrame) {
- this._historyPointIsNew = false;
- this._navigate(entry);
- }
- this._ignoreIFrame = false;
- }
- function Sys$_Application$_onPageRequestManagerBeginRequest(sender, args) {
- this._ignoreTimer = true;
- }
- function Sys$_Application$_onPageRequestManagerEndRequest(sender, args) {
- var dataItem = args.get_dataItems()[this._clientId];
- var eventTarget = document.getElementById("__EVENTTARGET");
- if (eventTarget && eventTarget.value === this._uniqueId) {
- eventTarget.value = '';
- }
- if (typeof(dataItem) !== 'undefined') {
- this.setServerState(dataItem);
- this._historyPointIsNew = true;
- }
- else {
- this._ignoreTimer = false;
- }
- var entry = this._serializeState(this._state);
- if (entry !== this._currentEntry) {
- this._ignoreTimer = true;
- this._setState(entry);
- this._raiseNavigate();
- }
- }
- function Sys$_Application$_raiseNavigate() {
- var h = this.get_events().getHandler("navigate");
- var stateClone = {};
- for (var key in this._state) {
- if (key !== '__s') {
- stateClone[key] = this._state[key];
- }
- }
- var args = new Sys.HistoryEventArgs(stateClone);
- if (h) {
- h(this, args);
- }
- }
- function Sys$_Application$_serializeState(state) {
- var serialized = [];
- for (var key in state) {
- var value = state[key];
- if (key === '__s') {
- var serverState = value;
- }
- else {
- if (key.indexOf('=') !== -1) throw Error.argument('state', Sys.Res.stateFieldNameInvalid);
- serialized[serialized.length] = key + '=' + encodeURIComponent(value);
- }
- }
- return serialized.join('&') + (serverState ? '&&' + serverState : '');
- }
- function Sys$_Application$_setHistory(historyArray) {
- var historyElement = document.getElementById('__history');
- if (historyElement) {
- historyElement.value = Sys.Serialization.JavaScriptSerializer.serialize(historyArray);
- }
- }
- function Sys$_Application$_setState(entry, title) {
- entry = entry || '';
- if (entry !== this._currentEntry) {
- if (window.theForm) {
- var action = window.theForm.action;
- var hashIndex = action.indexOf('#');
- window.theForm.action = ((hashIndex !== -1) ? action.substring(0, hashIndex) : action) + '#' + entry;
- }
-
- if (this._historyFrame && this._historyPointIsNew) {
- this._ignoreIFrame = true;
- this._historyPointIsNew = false;
- var frameDoc = this._historyFrame.contentWindow.document;
- frameDoc.open("javascript:''");
- frameDoc.write("
" + (title || document.title) +
- "parent.Sys.Application._onIFrameLoad('" +
- entry + "');");
- frameDoc.close();
- }
- this._ignoreTimer = false;
- var currentHash = this.get_stateString();
- this._currentEntry = entry;
- if (entry !== currentHash) {
- var loc = document.location;
- if (loc.href.length - loc.hash.length + entry.length > 1024) {
- throw Error.invalidOperation(Sys.Res.urlMustBeLessThan1024chars);
- }
- if (this._isSafari2()) {
- var history = this._getHistory();
- history[window.history.length - this._historyInitialLength + 1] = entry;
- this._setHistory(history);
- this._historyLength = window.history.length + 1;
- var form = document.createElement('form');
- form.method = 'get';
- form.action = '#' + entry;
- document.appendChild(form);
- form.submit();
- document.removeChild(form);
- }
- else {
- window.location.hash = entry;
- }
- if ((typeof(title) !== 'undefined') && (title !== null)) {
- document.title = title;
- }
- }
- }
- }
- function Sys$_Application$_unloadHandler(event) {
- this.dispose();
- }
- function Sys$_Application$_updateHiddenField(value) {
- if (this._clientId) {
- var serverStateField = document.getElementById(this._clientId);
- if (serverStateField) {
- serverStateField.value = value;
- }
- }
- }
-Sys._Application.prototype = {
- _creatingComponents: false,
- _disposing: false,
- get_isCreatingComponents: Sys$_Application$get_isCreatingComponents,
- get_stateString: Sys$_Application$get_stateString,
- get_enableHistory: Sys$_Application$get_enableHistory,
- set_enableHistory: Sys$_Application$set_enableHistory,
- add_init: Sys$_Application$add_init,
- remove_init: Sys$_Application$remove_init,
- add_load: Sys$_Application$add_load,
- remove_load: Sys$_Application$remove_load,
- add_navigate: Sys$_Application$add_navigate,
- remove_navigate: Sys$_Application$remove_navigate,
- add_unload: Sys$_Application$add_unload,
- remove_unload: Sys$_Application$remove_unload,
- addComponent: Sys$_Application$addComponent,
- addHistoryPoint: Sys$_Application$addHistoryPoint,
- beginCreateComponents: Sys$_Application$beginCreateComponents,
- dispose: Sys$_Application$dispose,
- endCreateComponents: Sys$_Application$endCreateComponents,
- findComponent: Sys$_Application$findComponent,
- getComponents: Sys$_Application$getComponents,
- initialize: Sys$_Application$initialize,
- notifyScriptLoaded: Sys$_Application$notifyScriptLoaded,
- registerDisposableObject: Sys$_Application$registerDisposableObject,
- raiseLoad: Sys$_Application$raiseLoad,
- removeComponent: Sys$_Application$removeComponent,
- setServerId: Sys$_Application$setServerId,
- setServerState: Sys$_Application$setServerState,
- unregisterDisposableObject: Sys$_Application$unregisterDisposableObject,
- _addComponentToSecondPass: Sys$_Application$_addComponentToSecondPass,
- _deserializeState: Sys$_Application$_deserializeState,
- _doInitialize: Sys$_Application$_doInitialize,
- _enableHistoryInScriptManager: Sys$_Application$_enableHistoryInScriptManager,
- _ensureHistory: Sys$_Application$_ensureHistory,
- _getHistory: Sys$_Application$_getHistory,
- _isSafari2: Sys$_Application$_isSafari2,
- _loadHandler: Sys$_Application$_loadHandler,
- _navigate: Sys$_Application$_navigate,
- _onIdle: Sys$_Application$_onIdle,
- _onIFrameLoad: Sys$_Application$_onIFrameLoad,
- _onPageRequestManagerBeginRequest: Sys$_Application$_onPageRequestManagerBeginRequest,
- _onPageRequestManagerEndRequest: Sys$_Application$_onPageRequestManagerEndRequest,
- _raiseNavigate: Sys$_Application$_raiseNavigate,
- _serializeState: Sys$_Application$_serializeState,
- _setHistory: Sys$_Application$_setHistory,
- _setState: Sys$_Application$_setState,
- _unloadHandler: Sys$_Application$_unloadHandler,
- _updateHiddenField: Sys$_Application$_updateHiddenField
-}
-Sys._Application.registerClass('Sys._Application', Sys.Component, Sys.IContainer);
-Sys.Application = new Sys._Application();
-var $find = Sys.Application.findComponent;
-Type.registerNamespace('Sys.Net');
-
-Sys.Net.WebRequestExecutor = function Sys$Net$WebRequestExecutor() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- this._webRequest = null;
- this._resultObject = null;
-}
- function Sys$Net$WebRequestExecutor$get_webRequest() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._webRequest;
- }
- function Sys$Net$WebRequestExecutor$_set_webRequest(value) {
- if (this.get_started()) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, 'set_webRequest'));
- }
- this._webRequest = value;
- }
- function Sys$Net$WebRequestExecutor$get_started() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$get_responseAvailable() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$get_timedOut() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$get_aborted() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$get_responseData() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$get_statusCode() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$get_statusText() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$get_xml() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$get_object() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._resultObject) {
- this._resultObject = Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData());
- }
- return this._resultObject;
- }
- function Sys$Net$WebRequestExecutor$executeRequest() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$abort() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$getResponseHeader(header) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "header", type: String}
- ]);
- if (e) throw e;
- throw Error.notImplemented();
- }
- function Sys$Net$WebRequestExecutor$getAllResponseHeaders() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
- }
-Sys.Net.WebRequestExecutor.prototype = {
- get_webRequest: Sys$Net$WebRequestExecutor$get_webRequest,
- _set_webRequest: Sys$Net$WebRequestExecutor$_set_webRequest,
- get_started: Sys$Net$WebRequestExecutor$get_started,
- get_responseAvailable: Sys$Net$WebRequestExecutor$get_responseAvailable,
- get_timedOut: Sys$Net$WebRequestExecutor$get_timedOut,
- get_aborted: Sys$Net$WebRequestExecutor$get_aborted,
- get_responseData: Sys$Net$WebRequestExecutor$get_responseData,
- get_statusCode: Sys$Net$WebRequestExecutor$get_statusCode,
- get_statusText: Sys$Net$WebRequestExecutor$get_statusText,
- get_xml: Sys$Net$WebRequestExecutor$get_xml,
- get_object: Sys$Net$WebRequestExecutor$get_object,
- executeRequest: Sys$Net$WebRequestExecutor$executeRequest,
- abort: Sys$Net$WebRequestExecutor$abort,
- getResponseHeader: Sys$Net$WebRequestExecutor$getResponseHeader,
- getAllResponseHeaders: Sys$Net$WebRequestExecutor$getAllResponseHeaders
-}
-Sys.Net.WebRequestExecutor.registerClass('Sys.Net.WebRequestExecutor');
-
-Sys.Net.XMLDOM = function Sys$Net$XMLDOM(markup) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "markup", type: String}
- ]);
- if (e) throw e;
- if (!window.DOMParser) {
- var progIDs = [ 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' ];
- for (var i = 0, l = progIDs.length; i < l; i++) {
- try {
- var xmlDOM = new ActiveXObject(progIDs[i]);
- xmlDOM.async = false;
- xmlDOM.loadXML(markup);
- xmlDOM.setProperty('SelectionLanguage', 'XPath');
- return xmlDOM;
- }
- catch (ex) {
- }
- }
- }
- else {
- try {
- var domParser = new window.DOMParser();
- return domParser.parseFromString(markup, 'text/xml');
- }
- catch (ex) {
- }
- }
- return null;
-}
-Sys.Net.XMLHttpExecutor = function Sys$Net$XMLHttpExecutor() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- Sys.Net.XMLHttpExecutor.initializeBase(this);
- var _this = this;
- this._xmlHttpRequest = null;
- this._webRequest = null;
- this._responseAvailable = false;
- this._timedOut = false;
- this._timer = null;
- this._aborted = false;
- this._started = false;
- this._onReadyStateChange = (function () {
-
- if (_this._xmlHttpRequest.readyState === 4 ) {
- try {
- if (typeof(_this._xmlHttpRequest.status) === "undefined") {
- return;
- }
- }
- catch(ex) {
- return;
- }
-
- _this._clearTimer();
- _this._responseAvailable = true;
- try {
- _this._webRequest.completed(Sys.EventArgs.Empty);
- }
- finally {
- if (_this._xmlHttpRequest != null) {
- _this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
- _this._xmlHttpRequest = null;
- }
- }
- }
- });
- this._clearTimer = (function() {
- if (_this._timer != null) {
- window.clearTimeout(_this._timer);
- _this._timer = null;
- }
- });
- this._onTimeout = (function() {
- if (!_this._responseAvailable) {
- _this._clearTimer();
- _this._timedOut = true;
- _this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
- _this._xmlHttpRequest.abort();
- _this._webRequest.completed(Sys.EventArgs.Empty);
- _this._xmlHttpRequest = null;
- }
- });
-}
- function Sys$Net$XMLHttpExecutor$get_timedOut() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._timedOut;
- }
- function Sys$Net$XMLHttpExecutor$get_started() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._started;
- }
- function Sys$Net$XMLHttpExecutor$get_responseAvailable() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._responseAvailable;
- }
- function Sys$Net$XMLHttpExecutor$get_aborted() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._aborted;
- }
- function Sys$Net$XMLHttpExecutor$executeRequest() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- this._webRequest = this.get_webRequest();
- if (this._started) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, 'executeRequest'));
- }
- if (this._webRequest === null) {
- throw Error.invalidOperation(Sys.Res.nullWebRequest);
- }
- var body = this._webRequest.get_body();
- var headers = this._webRequest.get_headers();
- this._xmlHttpRequest = new XMLHttpRequest();
- this._xmlHttpRequest.onreadystatechange = this._onReadyStateChange;
- var verb = this._webRequest.get_httpVerb();
- this._xmlHttpRequest.open(verb, this._webRequest.getResolvedUrl(), true );
- if (headers) {
- for (var header in headers) {
- var val = headers[header];
- if (typeof(val) !== "function")
- this._xmlHttpRequest.setRequestHeader(header, val);
- }
- }
- if (verb.toLowerCase() === "post") {
- if ((headers === null) || !headers['Content-Type']) {
- this._xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
- }
- if (!body) {
- body = "";
- }
- }
- var timeout = this._webRequest.get_timeout();
- if (timeout > 0) {
- this._timer = window.setTimeout(Function.createDelegate(this, this._onTimeout), timeout);
- }
- this._xmlHttpRequest.send(body);
- this._started = true;
- }
- function Sys$Net$XMLHttpExecutor$getResponseHeader(header) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "header", type: String}
- ]);
- if (e) throw e;
- if (!this._responseAvailable) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'getResponseHeader'));
- }
- if (!this._xmlHttpRequest) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'getResponseHeader'));
- }
- var result;
- try {
- result = this._xmlHttpRequest.getResponseHeader(header);
- } catch (e) {
- }
- if (!result) result = "";
- return result;
- }
- function Sys$Net$XMLHttpExecutor$getAllResponseHeaders() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._responseAvailable) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'getAllResponseHeaders'));
- }
- if (!this._xmlHttpRequest) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'getAllResponseHeaders'));
- }
- return this._xmlHttpRequest.getAllResponseHeaders();
- }
- function Sys$Net$XMLHttpExecutor$get_responseData() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._responseAvailable) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_responseData'));
- }
- if (!this._xmlHttpRequest) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_responseData'));
- }
- return this._xmlHttpRequest.responseText;
- }
- function Sys$Net$XMLHttpExecutor$get_statusCode() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._responseAvailable) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_statusCode'));
- }
- if (!this._xmlHttpRequest) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_statusCode'));
- }
- var result = 0;
- try {
- result = this._xmlHttpRequest.status;
- }
- catch(ex) {
- }
- return result;
- }
- function Sys$Net$XMLHttpExecutor$get_statusText() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._responseAvailable) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_statusText'));
- }
- if (!this._xmlHttpRequest) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_statusText'));
- }
- return this._xmlHttpRequest.statusText;
- }
- function Sys$Net$XMLHttpExecutor$get_xml() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._responseAvailable) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_xml'));
- }
- if (!this._xmlHttpRequest) {
- throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_xml'));
- }
- var xml = this._xmlHttpRequest.responseXML;
- if (!xml || !xml.documentElement) {
- xml = Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);
- if (!xml || !xml.documentElement)
- return null;
- }
- else if (navigator.userAgent.indexOf('MSIE') !== -1) {
- xml.setProperty('SelectionLanguage', 'XPath');
- }
- if (xml.documentElement.namespaceURI === "http://www.mozilla.org/newlayout/xml/parsererror.xml" &&
- xml.documentElement.tagName === "parsererror") {
- return null;
- }
-
- if (xml.documentElement.firstChild && xml.documentElement.firstChild.tagName === "parsererror") {
- return null;
- }
-
- return xml;
- }
- function Sys$Net$XMLHttpExecutor$abort() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._started) {
- throw Error.invalidOperation(Sys.Res.cannotAbortBeforeStart);
- }
- if (this._aborted || this._responseAvailable || this._timedOut)
- return;
- this._aborted = true;
- this._clearTimer();
- if (this._xmlHttpRequest && !this._responseAvailable) {
- this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
- this._xmlHttpRequest.abort();
-
- this._xmlHttpRequest = null;
- this._webRequest.completed(Sys.EventArgs.Empty);
- }
- }
-Sys.Net.XMLHttpExecutor.prototype = {
- get_timedOut: Sys$Net$XMLHttpExecutor$get_timedOut,
- get_started: Sys$Net$XMLHttpExecutor$get_started,
- get_responseAvailable: Sys$Net$XMLHttpExecutor$get_responseAvailable,
- get_aborted: Sys$Net$XMLHttpExecutor$get_aborted,
- executeRequest: Sys$Net$XMLHttpExecutor$executeRequest,
- getResponseHeader: Sys$Net$XMLHttpExecutor$getResponseHeader,
- getAllResponseHeaders: Sys$Net$XMLHttpExecutor$getAllResponseHeaders,
- get_responseData: Sys$Net$XMLHttpExecutor$get_responseData,
- get_statusCode: Sys$Net$XMLHttpExecutor$get_statusCode,
- get_statusText: Sys$Net$XMLHttpExecutor$get_statusText,
- get_xml: Sys$Net$XMLHttpExecutor$get_xml,
- abort: Sys$Net$XMLHttpExecutor$abort
-}
-Sys.Net.XMLHttpExecutor.registerClass('Sys.Net.XMLHttpExecutor', Sys.Net.WebRequestExecutor);
-
-Sys.Net._WebRequestManager = function Sys$Net$_WebRequestManager() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- this._defaultTimeout = 0;
- this._defaultExecutorType = "Sys.Net.XMLHttpExecutor";
-}
- function Sys$Net$_WebRequestManager$add_invokingRequest(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this._get_eventHandlerList().addHandler("invokingRequest", handler);
- }
- function Sys$Net$_WebRequestManager$remove_invokingRequest(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this._get_eventHandlerList().removeHandler("invokingRequest", handler);
- }
- function Sys$Net$_WebRequestManager$add_completedRequest(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this._get_eventHandlerList().addHandler("completedRequest", handler);
- }
- function Sys$Net$_WebRequestManager$remove_completedRequest(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this._get_eventHandlerList().removeHandler("completedRequest", handler);
- }
- function Sys$Net$_WebRequestManager$_get_eventHandlerList() {
- if (!this._events) {
- this._events = new Sys.EventHandlerList();
- }
- return this._events;
- }
- function Sys$Net$_WebRequestManager$get_defaultTimeout() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._defaultTimeout;
- }
- function Sys$Net$_WebRequestManager$set_defaultTimeout(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
- if (e) throw e;
- if (value < 0) {
- throw Error.argumentOutOfRange("value", value, Sys.Res.invalidTimeout);
- }
- this._defaultTimeout = value;
- }
- function Sys$Net$_WebRequestManager$get_defaultExecutorType() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._defaultExecutorType;
- }
- function Sys$Net$_WebRequestManager$set_defaultExecutorType(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: String}]);
- if (e) throw e;
- this._defaultExecutorType = value;
- }
- function Sys$Net$_WebRequestManager$executeRequest(webRequest) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "webRequest", type: Sys.Net.WebRequest}
- ]);
- if (e) throw e;
- var executor = webRequest.get_executor();
- if (!executor) {
- var failed = false;
- try {
- var executorType = eval(this._defaultExecutorType);
- executor = new executorType();
- } catch (e) {
- failed = true;
- }
- if (failed || !Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) {
- throw Error.argument("defaultExecutorType", String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType));
- }
- webRequest.set_executor(executor);
- }
- if (executor.get_aborted()) {
- return;
- }
- var evArgs = new Sys.Net.NetworkRequestEventArgs(webRequest);
- var handler = this._get_eventHandlerList().getHandler("invokingRequest");
- if (handler) {
- handler(this, evArgs);
- }
- if (!evArgs.get_cancel()) {
- executor.executeRequest();
- }
- }
-Sys.Net._WebRequestManager.prototype = {
- add_invokingRequest: Sys$Net$_WebRequestManager$add_invokingRequest,
- remove_invokingRequest: Sys$Net$_WebRequestManager$remove_invokingRequest,
- add_completedRequest: Sys$Net$_WebRequestManager$add_completedRequest,
- remove_completedRequest: Sys$Net$_WebRequestManager$remove_completedRequest,
- _get_eventHandlerList: Sys$Net$_WebRequestManager$_get_eventHandlerList,
- get_defaultTimeout: Sys$Net$_WebRequestManager$get_defaultTimeout,
- set_defaultTimeout: Sys$Net$_WebRequestManager$set_defaultTimeout,
- get_defaultExecutorType: Sys$Net$_WebRequestManager$get_defaultExecutorType,
- set_defaultExecutorType: Sys$Net$_WebRequestManager$set_defaultExecutorType,
- executeRequest: Sys$Net$_WebRequestManager$executeRequest
-}
-Sys.Net._WebRequestManager.registerClass('Sys.Net._WebRequestManager');
-Sys.Net.WebRequestManager = new Sys.Net._WebRequestManager();
-
-Sys.Net.NetworkRequestEventArgs = function Sys$Net$NetworkRequestEventArgs(webRequest) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "webRequest", type: Sys.Net.WebRequest}
- ]);
- if (e) throw e;
- Sys.Net.NetworkRequestEventArgs.initializeBase(this);
- this._webRequest = webRequest;
-}
- function Sys$Net$NetworkRequestEventArgs$get_webRequest() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._webRequest;
- }
-Sys.Net.NetworkRequestEventArgs.prototype = {
- get_webRequest: Sys$Net$NetworkRequestEventArgs$get_webRequest
-}
-Sys.Net.NetworkRequestEventArgs.registerClass('Sys.Net.NetworkRequestEventArgs', Sys.CancelEventArgs);
-
-Sys.Net.WebRequest = function Sys$Net$WebRequest() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- this._url = "";
- this._headers = { };
- this._body = null;
- this._userContext = null;
- this._httpVerb = null;
- this._executor = null;
- this._invokeCalled = false;
- this._timeout = 0;
-}
- function Sys$Net$WebRequest$add_completed(handler) {
- ///
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this._get_eventHandlerList().addHandler("completed", handler);
- }
- function Sys$Net$WebRequest$remove_completed(handler) {
- var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
- if (e) throw e;
- this._get_eventHandlerList().removeHandler("completed", handler);
- }
- function Sys$Net$WebRequest$completed(eventArgs) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "eventArgs", type: Sys.EventArgs}
- ]);
- if (e) throw e;
- var handler = Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRequest");
- if (handler) {
- handler(this._executor, eventArgs);
- }
- handler = this._get_eventHandlerList().getHandler("completed");
- if (handler) {
- handler(this._executor, eventArgs);
- }
- }
- function Sys$Net$WebRequest$_get_eventHandlerList() {
- if (!this._events) {
- this._events = new Sys.EventHandlerList();
- }
- return this._events;
- }
- function Sys$Net$WebRequest$get_url() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._url;
- }
- function Sys$Net$WebRequest$set_url(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: String}]);
- if (e) throw e;
- this._url = value;
- }
- function Sys$Net$WebRequest$get_headers() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._headers;
- }
- function Sys$Net$WebRequest$get_httpVerb() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (this._httpVerb === null) {
- if (this._body === null) {
- return "GET";
- }
- return "POST";
- }
- return this._httpVerb;
- }
- function Sys$Net$WebRequest$set_httpVerb(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: String}]);
- if (e) throw e;
- if (value.length === 0) {
- throw Error.argument('value', Sys.Res.invalidHttpVerb);
- }
- this._httpVerb = value;
- }
- function Sys$Net$WebRequest$get_body() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._body;
- }
- function Sys$Net$WebRequest$set_body(value) {
- var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]);
- if (e) throw e;
- this._body = value;
- }
- function Sys$Net$WebRequest$get_userContext() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._userContext;
- }
- function Sys$Net$WebRequest$set_userContext(value) {
- var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]);
- if (e) throw e;
- this._userContext = value;
- }
- function Sys$Net$WebRequest$get_executor() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._executor;
- }
- function Sys$Net$WebRequest$set_executor(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Sys.Net.WebRequestExecutor}]);
- if (e) throw e;
- if (this._executor !== null && this._executor.get_started()) {
- throw Error.invalidOperation(Sys.Res.setExecutorAfterActive);
- }
- this._executor = value;
- this._executor._set_webRequest(this);
- }
- function Sys$Net$WebRequest$get_timeout() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (this._timeout === 0) {
- return Sys.Net.WebRequestManager.get_defaultTimeout();
- }
- return this._timeout;
- }
- function Sys$Net$WebRequest$set_timeout(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
- if (e) throw e;
- if (value < 0) {
- throw Error.argumentOutOfRange("value", value, Sys.Res.invalidTimeout);
- }
- this._timeout = value;
- }
- function Sys$Net$WebRequest$getResolvedUrl() {
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return Sys.Net.WebRequest._resolveUrl(this._url);
- }
- function Sys$Net$WebRequest$invoke() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (this._invokeCalled) {
- throw Error.invalidOperation(Sys.Res.invokeCalledTwice);
- }
- Sys.Net.WebRequestManager.executeRequest(this);
- this._invokeCalled = true;
- }
-Sys.Net.WebRequest.prototype = {
- add_completed: Sys$Net$WebRequest$add_completed,
- remove_completed: Sys$Net$WebRequest$remove_completed,
- completed: Sys$Net$WebRequest$completed,
- _get_eventHandlerList: Sys$Net$WebRequest$_get_eventHandlerList,
- get_url: Sys$Net$WebRequest$get_url,
- set_url: Sys$Net$WebRequest$set_url,
- get_headers: Sys$Net$WebRequest$get_headers,
- get_httpVerb: Sys$Net$WebRequest$get_httpVerb,
- set_httpVerb: Sys$Net$WebRequest$set_httpVerb,
- get_body: Sys$Net$WebRequest$get_body,
- set_body: Sys$Net$WebRequest$set_body,
- get_userContext: Sys$Net$WebRequest$get_userContext,
- set_userContext: Sys$Net$WebRequest$set_userContext,
- get_executor: Sys$Net$WebRequest$get_executor,
- set_executor: Sys$Net$WebRequest$set_executor,
- get_timeout: Sys$Net$WebRequest$get_timeout,
- set_timeout: Sys$Net$WebRequest$set_timeout,
- getResolvedUrl: Sys$Net$WebRequest$getResolvedUrl,
- invoke: Sys$Net$WebRequest$invoke
-}
-Sys.Net.WebRequest._resolveUrl = function Sys$Net$WebRequest$_resolveUrl(url, baseUrl) {
- if (url && url.indexOf('://') !== -1) {
- return url;
- }
- if (!baseUrl || baseUrl.length === 0) {
- var baseElement = document.getElementsByTagName('base')[0];
- if (baseElement && baseElement.href && baseElement.href.length > 0) {
- baseUrl = baseElement.href;
- }
- else {
- baseUrl = document.URL;
- }
- }
- var qsStart = baseUrl.indexOf('?');
- if (qsStart !== -1) {
- baseUrl = baseUrl.substr(0, qsStart);
- }
- qsStart = baseUrl.indexOf('#');
- if (qsStart !== -1) {
- baseUrl = baseUrl.substr(0, qsStart);
- }
- baseUrl = baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);
- if (!url || url.length === 0) {
- return baseUrl;
- }
- if (url.charAt(0) === '/') {
- var slashslash = baseUrl.indexOf('://');
- if (slashslash === -1) {
- throw Error.argument("baseUrl", Sys.Res.badBaseUrl1);
- }
- var nextSlash = baseUrl.indexOf('/', slashslash + 3);
- if (nextSlash === -1) {
- throw Error.argument("baseUrl", Sys.Res.badBaseUrl2);
- }
- return baseUrl.substr(0, nextSlash) + url;
- }
- else {
- var lastSlash = baseUrl.lastIndexOf('/');
- if (lastSlash === -1) {
- throw Error.argument("baseUrl", Sys.Res.badBaseUrl3);
- }
- return baseUrl.substr(0, lastSlash+1) + url;
- }
-}
-Sys.Net.WebRequest._createQueryString = function Sys$Net$WebRequest$_createQueryString(queryString, encodeMethod) {
- if (!encodeMethod)
- encodeMethod = encodeURIComponent;
- var sb = new Sys.StringBuilder();
- var i = 0;
- for (var arg in queryString) {
- var obj = queryString[arg];
- if (typeof(obj) === "function") continue;
- var val = Sys.Serialization.JavaScriptSerializer.serialize(obj);
- if (i !== 0) {
- sb.append('&');
- }
- sb.append(arg);
- sb.append('=');
- sb.append(encodeMethod(val));
- i++;
- }
- return sb.toString();
-}
-Sys.Net.WebRequest._createUrl = function Sys$Net$WebRequest$_createUrl(url, queryString) {
- if (!queryString) {
- return url;
- }
- var qs = Sys.Net.WebRequest._createQueryString(queryString);
- if (qs.length > 0) {
- var sep = '?';
- if (url && url.indexOf('?') !== -1)
- sep = '&';
- return url + sep + qs;
- } else {
- return url;
- }
-}
-Sys.Net.WebRequest.registerClass('Sys.Net.WebRequest');
-
-Sys.Net.WebServiceProxy = function Sys$Net$WebServiceProxy() {
-}
- function Sys$Net$WebServiceProxy$get_timeout() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._timeout;
- }
- function Sys$Net$WebServiceProxy$set_timeout(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
- if (e) throw e;
- if (value < 0) { throw Error.argumentOutOfRange('value', value, Sys.Res.invalidTimeout); }
- this._timeout = value;
- }
- function Sys$Net$WebServiceProxy$get_defaultUserContext() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._userContext;
- }
- function Sys$Net$WebServiceProxy$set_defaultUserContext(value) {
- var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]);
- if (e) throw e;
- this._userContext = value;
- }
- function Sys$Net$WebServiceProxy$get_defaultSucceededCallback() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._succeeded;
- }
- function Sys$Net$WebServiceProxy$set_defaultSucceededCallback(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
- if (e) throw e;
- this._succeeded = value;
- }
- function Sys$Net$WebServiceProxy$get_defaultFailedCallback() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._failed;
- }
- function Sys$Net$WebServiceProxy$set_defaultFailedCallback(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
- if (e) throw e;
- this._failed = value;
- }
- function Sys$Net$WebServiceProxy$get_path() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._path;
- }
- function Sys$Net$WebServiceProxy$set_path(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: String}]);
- if (e) throw e;
- this._path = value;
- }
- function Sys$Net$WebServiceProxy$_invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext) {
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "servicePath", type: String},
- {name: "methodName", type: String},
- {name: "useGet", type: Boolean},
- {name: "params"},
- {name: "onSuccess", type: Function, mayBeNull: true, optional: true},
- {name: "onFailure", type: Function, mayBeNull: true, optional: true},
- {name: "userContext", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- if (onSuccess === null || typeof onSuccess === 'undefined') onSuccess = this.get_defaultSucceededCallback();
- if (onFailure === null || typeof onFailure === 'undefined') onFailure = this.get_defaultFailedCallback();
- if (userContext === null || typeof userContext === 'undefined') userContext = this.get_defaultUserContext();
-
- return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext, this.get_timeout());
- }
-Sys.Net.WebServiceProxy.prototype = {
- get_timeout: Sys$Net$WebServiceProxy$get_timeout,
- set_timeout: Sys$Net$WebServiceProxy$set_timeout,
- get_defaultUserContext: Sys$Net$WebServiceProxy$get_defaultUserContext,
- set_defaultUserContext: Sys$Net$WebServiceProxy$set_defaultUserContext,
- get_defaultSucceededCallback: Sys$Net$WebServiceProxy$get_defaultSucceededCallback,
- set_defaultSucceededCallback: Sys$Net$WebServiceProxy$set_defaultSucceededCallback,
- get_defaultFailedCallback: Sys$Net$WebServiceProxy$get_defaultFailedCallback,
- set_defaultFailedCallback: Sys$Net$WebServiceProxy$set_defaultFailedCallback,
- get_path: Sys$Net$WebServiceProxy$get_path,
- set_path: Sys$Net$WebServiceProxy$set_path,
- _invoke: Sys$Net$WebServiceProxy$_invoke
-}
-Sys.Net.WebServiceProxy.registerClass('Sys.Net.WebServiceProxy');
-Sys.Net.WebServiceProxy.invoke = function Sys$Net$WebServiceProxy$invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext, timeout) {
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "servicePath", type: String},
- {name: "methodName", type: String},
- {name: "useGet", type: Boolean, optional: true},
- {name: "params", mayBeNull: true, optional: true},
- {name: "onSuccess", type: Function, mayBeNull: true, optional: true},
- {name: "onFailure", type: Function, mayBeNull: true, optional: true},
- {name: "userContext", mayBeNull: true, optional: true},
- {name: "timeout", type: Number, optional: true}
- ]);
- if (e) throw e;
- var request = new Sys.Net.WebRequest();
- request.get_headers()['Content-Type'] = 'application/json; charset=utf-8';
- if (!params) params = {};
- var urlParams = params;
- if (!useGet || !urlParams) urlParams = {};
- request.set_url(Sys.Net.WebRequest._createUrl(servicePath+"/"+encodeURIComponent(methodName), urlParams));
- var body = null;
- if (!useGet) {
- body = Sys.Serialization.JavaScriptSerializer.serialize(params);
- if (body === "{}") body = "";
- }
- request.set_body(body);
- request.add_completed(onComplete);
- if (timeout && timeout > 0) request.set_timeout(timeout);
- request.invoke();
- function onComplete(response, eventArgs) {
- if (response.get_responseAvailable()) {
- var statusCode = response.get_statusCode();
- var result = null;
-
- try {
- var contentType = response.getResponseHeader("Content-Type");
- if (contentType.startsWith("application/json")) {
- result = response.get_object();
- }
- else if (contentType.startsWith("text/xml")) {
- result = response.get_xml();
- }
- else {
- result = response.get_responseData();
- }
- } catch (ex) {
- }
- var error = response.getResponseHeader("jsonerror");
- var errorObj = (error === "true");
- if (errorObj) {
- if (result) {
- result = new Sys.Net.WebServiceError(false, result.Message, result.StackTrace, result.ExceptionType);
- }
- }
- else if (contentType.startsWith("application/json")) {
- if (!result || typeof(result.d) === "undefined") {
- throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceInvalidJsonWrapper, methodName));
- }
- result = result.d;
- }
- if (((statusCode < 200) || (statusCode >= 300)) || errorObj) {
- if (onFailure) {
- if (!result || !errorObj) {
- result = new Sys.Net.WebServiceError(false , String.format(Sys.Res.webServiceFailedNoMsg, methodName), "", "");
- }
- result._statusCode = statusCode;
- onFailure(result, userContext, methodName);
- }
- else {
- var error;
- if (result && errorObj) {
- error = result.get_exceptionType() + "-- " + result.get_message();
- }
- else {
- error = response.get_responseData();
- }
- throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceFailed, methodName, error));
- }
- }
- else if (onSuccess) {
- onSuccess(result, userContext, methodName);
- }
- }
- else {
- var msg;
- if (response.get_timedOut()) {
- msg = String.format(Sys.Res.webServiceTimedOut, methodName);
- }
- else {
- msg = String.format(Sys.Res.webServiceFailedNoMsg, methodName)
- }
- if (onFailure) {
- onFailure(new Sys.Net.WebServiceError(response.get_timedOut(), msg, "", ""), userContext, methodName);
- }
- else {
- throw Sys.Net.WebServiceProxy._createFailedError(methodName, msg);
- }
- }
- }
- return request;
-}
-Sys.Net.WebServiceProxy._createFailedError = function Sys$Net$WebServiceProxy$_createFailedError(methodName, errorMessage) {
- var displayMessage = "Sys.Net.WebServiceFailedException: " + errorMessage;
- var e = Error.create(displayMessage, { 'name': 'Sys.Net.WebServiceFailedException', 'methodName': methodName });
- e.popStackFrame();
- return e;
-}
-Sys.Net.WebServiceProxy._defaultFailedCallback = function Sys$Net$WebServiceProxy$_defaultFailedCallback(err, methodName) {
- var error = err.get_exceptionType() + "-- " + err.get_message();
- throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceFailed, methodName, error));
-}
-Sys.Net.WebServiceProxy._generateTypedConstructor = function Sys$Net$WebServiceProxy$_generateTypedConstructor(type) {
- return function(properties) {
- if (properties) {
- for (var name in properties) {
- this[name] = properties[name];
- }
- }
- this.__type = type;
- }
-}
-
-Sys.Net.WebServiceError = function Sys$Net$WebServiceError(timedOut, message, stackTrace, exceptionType) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "timedOut", type: Boolean},
- {name: "message", type: String, mayBeNull: true},
- {name: "stackTrace", type: String, mayBeNull: true},
- {name: "exceptionType", type: String, mayBeNull: true}
- ]);
- if (e) throw e;
- this._timedOut = timedOut;
- this._message = message;
- this._stackTrace = stackTrace;
- this._exceptionType = exceptionType;
- this._statusCode = -1;
-}
- function Sys$Net$WebServiceError$get_timedOut() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._timedOut;
- }
- function Sys$Net$WebServiceError$get_statusCode() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._statusCode;
- }
- function Sys$Net$WebServiceError$get_message() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._message;
- }
- function Sys$Net$WebServiceError$get_stackTrace() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._stackTrace;
- }
- function Sys$Net$WebServiceError$get_exceptionType() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._exceptionType;
- }
-Sys.Net.WebServiceError.prototype = {
- get_timedOut: Sys$Net$WebServiceError$get_timedOut,
- get_statusCode: Sys$Net$WebServiceError$get_statusCode,
- get_message: Sys$Net$WebServiceError$get_message,
- get_stackTrace: Sys$Net$WebServiceError$get_stackTrace,
- get_exceptionType: Sys$Net$WebServiceError$get_exceptionType
-}
-Sys.Net.WebServiceError.registerClass('Sys.Net.WebServiceError');
-Type.registerNamespace('Sys.Services');
-Sys.Services._ProfileService = function Sys$Services$_ProfileService() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- Sys.Services._ProfileService.initializeBase(this);
- this.properties = {};
-}
-Sys.Services._ProfileService.DefaultWebServicePath = '';
- function Sys$Services$_ProfileService$get_defaultLoadCompletedCallback() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._defaultLoadCompletedCallback;
- }
- function Sys$Services$_ProfileService$set_defaultLoadCompletedCallback(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
- if (e) throw e;
- this._defaultLoadCompletedCallback = value;
- }
- function Sys$Services$_ProfileService$get_defaultSaveCompletedCallback() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._defaultSaveCompletedCallback;
- }
- function Sys$Services$_ProfileService$set_defaultSaveCompletedCallback(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
- if (e) throw e;
- this._defaultSaveCompletedCallback = value;
- }
- function Sys$Services$_ProfileService$get_path() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._path || '';
- }
- function Sys$Services$_ProfileService$load(propertyNames, loadCompletedCallback, failedCallback, userContext) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "propertyNames", type: Array, mayBeNull: true, optional: true, elementType: String},
- {name: "loadCompletedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "userContext", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var parameters;
- var methodName;
- if (!propertyNames) {
- methodName = "GetAllPropertiesForCurrentUser";
- parameters = { authenticatedUserOnly: false };
- }
- else {
- methodName = "GetPropertiesForCurrentUser";
- parameters = { properties: this._clonePropertyNames(propertyNames), authenticatedUserOnly: false };
- }
- this._invoke(this._get_path(),
- methodName,
- false,
- parameters,
- Function.createDelegate(this, this._onLoadComplete),
- Function.createDelegate(this, this._onLoadFailed),
- [loadCompletedCallback, failedCallback, userContext]);
- }
- function Sys$Services$_ProfileService$save(propertyNames, saveCompletedCallback, failedCallback, userContext) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "propertyNames", type: Array, mayBeNull: true, optional: true, elementType: String},
- {name: "saveCompletedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "userContext", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- var flattenedProperties = this._flattenProperties(propertyNames, this.properties);
- this._invoke(this._get_path(),
- "SetPropertiesForCurrentUser",
- false,
- { values: flattenedProperties.value, authenticatedUserOnly: false },
- Function.createDelegate(this, this._onSaveComplete),
- Function.createDelegate(this, this._onSaveFailed),
- [saveCompletedCallback, failedCallback, userContext, flattenedProperties.count]);
- }
- function Sys$Services$_ProfileService$_clonePropertyNames(arr) {
- var nodups = [];
- var seen = {};
- for (var i=0; i < arr.length; i++) {
- var prop = arr[i];
- if(!seen[prop]) { Array.add(nodups, prop); seen[prop]=true; };
- }
- return nodups;
- }
- function Sys$Services$_ProfileService$_flattenProperties(propertyNames, properties, groupName) {
- var flattenedProperties = {};
- var val;
- var key;
- var count = 0;
- if (propertyNames && propertyNames.length === 0) {
- return { value: flattenedProperties, count: 0 };
- }
- for (var property in properties) {
- val = properties[property];
- key = groupName ? groupName + "." + property : property;
- if(Sys.Services.ProfileGroup.isInstanceOfType(val)) {
- var obj = this._flattenProperties(propertyNames, val, key);
- var groupProperties = obj.value;
- count += obj.count;
- for(var subKey in groupProperties) {
- var subVal = groupProperties[subKey];
- flattenedProperties[subKey] = subVal;
- }
- }
- else {
- if(!propertyNames || Array.indexOf(propertyNames, key) !== -1) {
- flattenedProperties[key] = val;
- count++;
- }
- }
- }
- return { value: flattenedProperties, count: count };
- }
- function Sys$Services$_ProfileService$_get_path() {
- var path = this.get_path();
- if (!path.length) {
- path = Sys.Services._ProfileService.DefaultWebServicePath;
- }
- if (!path || !path.length) {
- throw Error.invalidOperation(Sys.Res.servicePathNotSet);
- }
- return path;
- }
- function Sys$Services$_ProfileService$_onLoadComplete(result, context, methodName) {
- if (typeof(result) !== "object") {
- throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Object"));
- }
- var unflattened = this._unflattenProperties(result);
- for (var name in unflattened) {
- this.properties[name] = unflattened[name];
- }
-
- var callback = context[0] || this.get_defaultLoadCompletedCallback() || this.get_defaultSucceededCallback();
- if (callback) {
- var userContext = context[2] || this.get_defaultUserContext();
- callback(result.length, userContext, "Sys.Services.ProfileService.load");
- }
- }
- function Sys$Services$_ProfileService$_onLoadFailed(err, context, methodName) {
- var callback = context[1] || this.get_defaultFailedCallback();
- if (callback) {
- var userContext = context[2] || this.get_defaultUserContext();
- callback(err, userContext, "Sys.Services.ProfileService.load");
- }
- else {
- Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
- }
- }
- function Sys$Services$_ProfileService$_onSaveComplete(result, context, methodName) {
- var count = context[3];
- if (result !== null) {
- if (result instanceof Array) {
- count -= result.length;
- }
- else if (typeof(result) === 'number') {
- count = result;
- }
- else {
- throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Array"));
- }
- }
-
- var callback = context[0] || this.get_defaultSaveCompletedCallback() || this.get_defaultSucceededCallback();
- if (callback) {
- var userContext = context[2] || this.get_defaultUserContext();
- callback(count, userContext, "Sys.Services.ProfileService.save");
- }
- }
- function Sys$Services$_ProfileService$_onSaveFailed(err, context, methodName) {
- var callback = context[1] || this.get_defaultFailedCallback();
- if (callback) {
- var userContext = context[2] || this.get_defaultUserContext();
- callback(err, userContext, "Sys.Services.ProfileService.save");
- }
- else {
- Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
- }
- }
- function Sys$Services$_ProfileService$_unflattenProperties(properties) {
- var unflattenedProperties = {};
- var dotIndex;
- var val;
- var count = 0;
- for (var key in properties) {
- count++;
- val = properties[key];
- dotIndex = key.indexOf('.');
- if (dotIndex !== -1) {
- var groupName = key.substr(0, dotIndex);
- key = key.substr(dotIndex+1);
- var group = unflattenedProperties[groupName];
- if (!group || !Sys.Services.ProfileGroup.isInstanceOfType(group)) {
- group = new Sys.Services.ProfileGroup();
- unflattenedProperties[groupName] = group;
- }
- group[key] = val;
- }
- else {
- unflattenedProperties[key] = val;
- }
- }
- properties.length = count;
- return unflattenedProperties;
- }
-Sys.Services._ProfileService.prototype = {
- _defaultLoadCompletedCallback: null,
- _defaultSaveCompletedCallback: null,
- _path: '',
- _timeout: 0,
- get_defaultLoadCompletedCallback: Sys$Services$_ProfileService$get_defaultLoadCompletedCallback,
- set_defaultLoadCompletedCallback: Sys$Services$_ProfileService$set_defaultLoadCompletedCallback,
- get_defaultSaveCompletedCallback: Sys$Services$_ProfileService$get_defaultSaveCompletedCallback,
- set_defaultSaveCompletedCallback: Sys$Services$_ProfileService$set_defaultSaveCompletedCallback,
- get_path: Sys$Services$_ProfileService$get_path,
- load: Sys$Services$_ProfileService$load,
- save: Sys$Services$_ProfileService$save,
- _clonePropertyNames: Sys$Services$_ProfileService$_clonePropertyNames,
- _flattenProperties: Sys$Services$_ProfileService$_flattenProperties,
- _get_path: Sys$Services$_ProfileService$_get_path,
- _onLoadComplete: Sys$Services$_ProfileService$_onLoadComplete,
- _onLoadFailed: Sys$Services$_ProfileService$_onLoadFailed,
- _onSaveComplete: Sys$Services$_ProfileService$_onSaveComplete,
- _onSaveFailed: Sys$Services$_ProfileService$_onSaveFailed,
- _unflattenProperties: Sys$Services$_ProfileService$_unflattenProperties
-}
-Sys.Services._ProfileService.registerClass('Sys.Services._ProfileService', Sys.Net.WebServiceProxy);
-Sys.Services.ProfileService = new Sys.Services._ProfileService();
-Sys.Services.ProfileGroup = function Sys$Services$ProfileGroup(properties) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "properties", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- if (properties) {
- for (var property in properties) {
- this[property] = properties[property];
- }
- }
-}
-Sys.Services.ProfileGroup.registerClass('Sys.Services.ProfileGroup');
-Sys.Services._AuthenticationService = function Sys$Services$_AuthenticationService() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- Sys.Services._AuthenticationService.initializeBase(this);
-}
-Sys.Services._AuthenticationService.DefaultWebServicePath = '';
- function Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._defaultLoginCompletedCallback;
- }
- function Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
- if (e) throw e;
- this._defaultLoginCompletedCallback = value;
- }
- function Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._defaultLogoutCompletedCallback;
- }
- function Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
- if (e) throw e;
- this._defaultLogoutCompletedCallback = value;
- }
- function Sys$Services$_AuthenticationService$get_isLoggedIn() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._authenticated;
- }
- function Sys$Services$_AuthenticationService$get_path() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._path || '';
- }
- function Sys$Services$_AuthenticationService$login(username, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext) {
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "username", type: String},
- {name: "password", type: String, mayBeNull: true},
- {name: "isPersistent", type: Boolean, mayBeNull: true, optional: true},
- {name: "customInfo", type: String, mayBeNull: true, optional: true},
- {name: "redirectUrl", type: String, mayBeNull: true, optional: true},
- {name: "loginCompletedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "userContext", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- this._invoke(this._get_path(), "Login", false,
- { userName: username, password: password, createPersistentCookie: isPersistent },
- Function.createDelegate(this, this._onLoginComplete),
- Function.createDelegate(this, this._onLoginFailed),
- [username, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext]);
- }
- function Sys$Services$_AuthenticationService$logout(redirectUrl, logoutCompletedCallback, failedCallback, userContext) {
- ///
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "redirectUrl", type: String, mayBeNull: true, optional: true},
- {name: "logoutCompletedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "userContext", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- this._invoke(this._get_path(), "Logout", false, {},
- Function.createDelegate(this, this._onLogoutComplete),
- Function.createDelegate(this, this._onLogoutFailed),
- [redirectUrl, logoutCompletedCallback, failedCallback, userContext]);
- }
- function Sys$Services$_AuthenticationService$_get_path() {
- var path = this.get_path();
- if(!path.length) {
- path = Sys.Services._AuthenticationService.DefaultWebServicePath;
- }
- if(!path || !path.length) {
- throw Error.invalidOperation(Sys.Res.servicePathNotSet);
- }
- return path;
- }
- function Sys$Services$_AuthenticationService$_onLoginComplete(result, context, methodName) {
- if(typeof(result) !== "boolean") {
- throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Boolean"));
- }
-
- var redirectUrl = context[4];
- var userContext = context[7] || this.get_defaultUserContext();
- var callback = context[5] || this.get_defaultLoginCompletedCallback() || this.get_defaultSucceededCallback();
-
- if(result) {
- this._authenticated = true;
- if (callback) {
- callback(true, userContext, "Sys.Services.AuthenticationService.login");
- }
-
- if (typeof(redirectUrl) !== "undefined" && redirectUrl !== null) {
- window.location.href = redirectUrl;
- }
- }
- else if (callback) {
- callback(false, userContext, "Sys.Services.AuthenticationService.login");
- }
- }
- function Sys$Services$_AuthenticationService$_onLoginFailed(err, context, methodName) {
- var callback = context[6] || this.get_defaultFailedCallback();
- if (callback) {
- var userContext = context[7] || this.get_defaultUserContext();
- callback(err, userContext, "Sys.Services.AuthenticationService.login");
- }
- else {
- Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
- }
- }
- function Sys$Services$_AuthenticationService$_onLogoutComplete(result, context, methodName) {
- if(result !== null) {
- throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "null"));
- }
-
- var redirectUrl = context[0];
- var userContext = context[3] || this.get_defaultUserContext();
- var callback = context[1] || this.get_defaultLogoutCompletedCallback() || this.get_defaultSucceededCallback();
- this._authenticated = false;
-
- if (callback) {
- callback(null, userContext, "Sys.Services.AuthenticationService.logout");
- }
-
- if(!redirectUrl) {
- window.location.reload();
- }
- else {
- window.location.href = redirectUrl;
- }
- }
- function Sys$Services$_AuthenticationService$_onLogoutFailed(err, context, methodName) {
- var callback = context[2] || this.get_defaultFailedCallback();
- if (callback) {
- callback(err, context[3], "Sys.Services.AuthenticationService.logout");
- }
- else {
- Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
- }
- }
- function Sys$Services$_AuthenticationService$_setAuthenticated(authenticated) {
- this._authenticated = authenticated;
- }
-Sys.Services._AuthenticationService.prototype = {
- _defaultLoginCompletedCallback: null,
- _defaultLogoutCompletedCallback: null,
- _path: '',
- _timeout: 0,
- _authenticated: false,
- get_defaultLoginCompletedCallback: Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback,
- set_defaultLoginCompletedCallback: Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback,
- get_defaultLogoutCompletedCallback: Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback,
- set_defaultLogoutCompletedCallback: Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback,
- get_isLoggedIn: Sys$Services$_AuthenticationService$get_isLoggedIn,
- get_path: Sys$Services$_AuthenticationService$get_path,
- login: Sys$Services$_AuthenticationService$login,
- logout: Sys$Services$_AuthenticationService$logout,
- _get_path: Sys$Services$_AuthenticationService$_get_path,
- _onLoginComplete: Sys$Services$_AuthenticationService$_onLoginComplete,
- _onLoginFailed: Sys$Services$_AuthenticationService$_onLoginFailed,
- _onLogoutComplete: Sys$Services$_AuthenticationService$_onLogoutComplete,
- _onLogoutFailed: Sys$Services$_AuthenticationService$_onLogoutFailed,
- _setAuthenticated: Sys$Services$_AuthenticationService$_setAuthenticated
-}
-Sys.Services._AuthenticationService.registerClass('Sys.Services._AuthenticationService', Sys.Net.WebServiceProxy);
-Sys.Services.AuthenticationService = new Sys.Services._AuthenticationService();
-Sys.Services._RoleService = function Sys$Services$_RoleService() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- Sys.Services._RoleService.initializeBase(this);
- this._roles = [];
-}
-Sys.Services._RoleService.DefaultWebServicePath = '';
- function Sys$Services$_RoleService$get_defaultLoadCompletedCallback() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._defaultLoadCompletedCallback;
- }
- function Sys$Services$_RoleService$set_defaultLoadCompletedCallback(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
- if (e) throw e;
- this._defaultLoadCompletedCallback = value;
- }
- function Sys$Services$_RoleService$get_path() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._path || '';
- }
- function Sys$Services$_RoleService$get_roles() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return Array.clone(this._roles);
- }
- function Sys$Services$_RoleService$isUserInRole(role) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "role", type: String}
- ]);
- if (e) throw e;
- var v = this._get_rolesIndex()[role.trim().toLowerCase()];
- return !!v;
- }
- function Sys$Services$_RoleService$load(loadCompletedCallback, failedCallback, userContext) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "loadCompletedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
- {name: "userContext", mayBeNull: true, optional: true}
- ]);
- if (e) throw e;
- Sys.Net.WebServiceProxy.invoke(
- this._get_path(),
- "GetRolesForCurrentUser",
- false,
- {} ,
- Function.createDelegate(this, this._onLoadComplete),
- Function.createDelegate(this, this._onLoadFailed),
- [loadCompletedCallback, failedCallback, userContext],
- this.get_timeout());
- }
- function Sys$Services$_RoleService$_get_path() {
- var path = this.get_path();
- if(!path || !path.length) {
- path = Sys.Services._RoleService.DefaultWebServicePath;
- }
- if(!path || !path.length) {
- throw Error.invalidOperation(Sys.Res.servicePathNotSet);
- }
- return path;
- }
- function Sys$Services$_RoleService$_get_rolesIndex() {
- if (!this._rolesIndex) {
- var index = {};
- for(var i=0; i < this._roles.length; i++) {
- index[this._roles[i].toLowerCase()] = true;
- }
- this._rolesIndex = index;
- }
- return this._rolesIndex;
- }
- function Sys$Services$_RoleService$_onLoadComplete(result, context, methodName) {
- if(result && !(result instanceof Array)) {
- throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Array"));
- }
- this._roles = result;
- this._rolesIndex = null;
- var callback = context[0] || this.get_defaultLoadCompletedCallback() || this.get_defaultSucceededCallback();
- if (callback) {
- var userContext = context[2] || this.get_defaultUserContext();
- var clonedResult = Array.clone(result);
- callback(clonedResult, userContext, "Sys.Services.RoleService.load");
- }
- }
- function Sys$Services$_RoleService$_onLoadFailed(err, context, methodName) {
- var callback = context[1] || this.get_defaultFailedCallback();
- if (callback) {
- var userContext = context[2] || this.get_defaultUserContext();
- callback(err, userContext, "Sys.Services.RoleService.load");
- }
- else {
- Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
- }
- }
-Sys.Services._RoleService.prototype = {
- _defaultLoadCompletedCallback: null,
- _rolesIndex: null,
- _timeout: 0,
- _path: '',
- get_defaultLoadCompletedCallback: Sys$Services$_RoleService$get_defaultLoadCompletedCallback,
- set_defaultLoadCompletedCallback: Sys$Services$_RoleService$set_defaultLoadCompletedCallback,
- get_path: Sys$Services$_RoleService$get_path,
- get_roles: Sys$Services$_RoleService$get_roles,
- isUserInRole: Sys$Services$_RoleService$isUserInRole,
- load: Sys$Services$_RoleService$load,
- _get_path: Sys$Services$_RoleService$_get_path,
- _get_rolesIndex: Sys$Services$_RoleService$_get_rolesIndex,
- _onLoadComplete: Sys$Services$_RoleService$_onLoadComplete,
- _onLoadFailed: Sys$Services$_RoleService$_onLoadFailed
-}
-Sys.Services._RoleService.registerClass('Sys.Services._RoleService', Sys.Net.WebServiceProxy);
-Sys.Services.RoleService = new Sys.Services._RoleService();
-Type.registerNamespace('Sys.Serialization');
-Sys.Serialization.JavaScriptSerializer = function Sys$Serialization$JavaScriptSerializer() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
-}
-Sys.Serialization.JavaScriptSerializer.registerClass('Sys.Serialization.JavaScriptSerializer');
-Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs = [];
-Sys.Serialization.JavaScriptSerializer._charsToEscape = [];
-Sys.Serialization.JavaScriptSerializer._dateRegEx = new RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\\/\\"', 'g');
-Sys.Serialization.JavaScriptSerializer._escapeChars = {};
-Sys.Serialization.JavaScriptSerializer._escapeRegEx = new RegExp('["\\\\\\x00-\\x1F]', 'i');
-Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal = new RegExp('["\\\\\\x00-\\x1F]', 'g');
-Sys.Serialization.JavaScriptSerializer._jsonRegEx = new RegExp('[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]', 'g');
-Sys.Serialization.JavaScriptSerializer._jsonStringRegEx = new RegExp('"(\\\\.|[^"\\\\])*"', 'g');
-Sys.Serialization.JavaScriptSerializer._serverTypeFieldName = '__type';
-Sys.Serialization.JavaScriptSerializer._init = function Sys$Serialization$JavaScriptSerializer$_init() {
- var replaceChars = ['\\u0000','\\u0001','\\u0002','\\u0003','\\u0004','\\u0005','\\u0006','\\u0007',
- '\\b','\\t','\\n','\\u000b','\\f','\\r','\\u000e','\\u000f','\\u0010','\\u0011',
- '\\u0012','\\u0013','\\u0014','\\u0015','\\u0016','\\u0017','\\u0018','\\u0019',
- '\\u001a','\\u001b','\\u001c','\\u001d','\\u001e','\\u001f'];
- Sys.Serialization.JavaScriptSerializer._charsToEscape[0] = '\\';
- Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['\\'] = new RegExp('\\\\', 'g');
- Sys.Serialization.JavaScriptSerializer._escapeChars['\\'] = '\\\\';
- Sys.Serialization.JavaScriptSerializer._charsToEscape[1] = '"';
- Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['"'] = new RegExp('"', 'g');
- Sys.Serialization.JavaScriptSerializer._escapeChars['"'] = '\\"';
- for (var i = 0; i < 32; i++) {
- var c = String.fromCharCode(i);
- Sys.Serialization.JavaScriptSerializer._charsToEscape[i+2] = c;
- Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c] = new RegExp(c, 'g');
- Sys.Serialization.JavaScriptSerializer._escapeChars[c] = replaceChars[i];
- }
-}
-Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeBooleanWithBuilder(object, stringBuilder) {
- stringBuilder.append(object.toString());
-}
-Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeNumberWithBuilder(object, stringBuilder) {
- if (isFinite(object)) {
- stringBuilder.append(String(object));
- }
- else {
- throw Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);
- }
-}
-Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeStringWithBuilder(string, stringBuilder) {
- stringBuilder.append('"');
- if (Sys.Serialization.JavaScriptSerializer._escapeRegEx.test(string)) {
- if (Sys.Serialization.JavaScriptSerializer._charsToEscape.length === 0) {
- Sys.Serialization.JavaScriptSerializer._init();
- }
- if (string.length < 128) {
- string = string.replace(Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal,
- function(x) { return Sys.Serialization.JavaScriptSerializer._escapeChars[x]; });
- }
- else {
- for (var i = 0; i < 34; i++) {
- var c = Sys.Serialization.JavaScriptSerializer._charsToEscape[i];
- if (string.indexOf(c) !== -1) {
- if (Sys.Browser.agent === Sys.Browser.Opera || Sys.Browser.agent === Sys.Browser.FireFox) {
- string = string.split(c).join(Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
- }
- else {
- string = string.replace(Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c],
- Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
- }
- }
- }
- }
- }
- stringBuilder.append(string);
- stringBuilder.append('"');
-}
-Sys.Serialization.JavaScriptSerializer._serializeWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeWithBuilder(object, stringBuilder, sort, prevObjects) {
- var i;
- switch (typeof object) {
- case 'object':
- if (object) {
- if (prevObjects){
- for( var j = 0; j < prevObjects.length; j++) {
- if (prevObjects[j] === object) {
- throw Error.invalidOperation(Sys.Res.cannotSerializeObjectWithCycle);
- }
- }
- }
- else {
- prevObjects = new Array();
- }
- try {
- Array.add(prevObjects, object);
-
- if (Number.isInstanceOfType(object)){
- Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object, stringBuilder);
- }
- else if (Boolean.isInstanceOfType(object)){
- Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(object, stringBuilder);
- }
- else if (String.isInstanceOfType(object)){
- Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object, stringBuilder);
- }
-
- else if (Array.isInstanceOfType(object)) {
- stringBuilder.append('[');
-
- for (i = 0; i < object.length; ++i) {
- if (i > 0) {
- stringBuilder.append(',');
- }
- Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object[i], stringBuilder,false,prevObjects);
- }
- stringBuilder.append(']');
- }
- else {
- if (Date.isInstanceOfType(object)) {
- stringBuilder.append('"\\/Date(');
- stringBuilder.append(object.getTime());
- stringBuilder.append(')\\/"');
- break;
- }
- var properties = [];
- var propertyCount = 0;
- for (var name in object) {
- if (name.startsWith('$')) {
- continue;
- }
- if (name === Sys.Serialization.JavaScriptSerializer._serverTypeFieldName && propertyCount !== 0){
- properties[propertyCount++] = properties[0];
- properties[0] = name;
- }
- else{
- properties[propertyCount++] = name;
- }
- }
- if (sort) properties.sort();
- stringBuilder.append('{');
- var needComma = false;
-
- for (i=0; i
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "object", mayBeNull: true}
- ]);
- if (e) throw e;
- var stringBuilder = new Sys.StringBuilder();
- Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object, stringBuilder, false);
- return stringBuilder.toString();
-}
-Sys.Serialization.JavaScriptSerializer.deserialize = function Sys$Serialization$JavaScriptSerializer$deserialize(data, secure) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "data", type: String},
- {name: "secure", type: Boolean, optional: true}
- ]);
- if (e) throw e;
-
- if (data.length === 0) throw Error.argument('data', Sys.Res.cannotDeserializeEmptyString);
- try {
- var exp = data.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx, "$1new Date($2)");
-
- if (secure && Sys.Serialization.JavaScriptSerializer._jsonRegEx.test(
- exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx, ''))) throw null;
- return eval('(' + exp + ')');
- }
- catch (e) {
- throw Error.argument('data', Sys.Res.cannotDeserializeInvalidJson);
- }
-}
-
-Sys.CultureInfo = function Sys$CultureInfo(name, numberFormat, dateTimeFormat) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "name", type: String},
- {name: "numberFormat", type: Object},
- {name: "dateTimeFormat", type: Object}
- ]);
- if (e) throw e;
- this.name = name;
- this.numberFormat = numberFormat;
- this.dateTimeFormat = dateTimeFormat;
-}
- function Sys$CultureInfo$_getDateTimeFormats() {
- if (! this._dateTimeFormats) {
- var dtf = this.dateTimeFormat;
- this._dateTimeFormats =
- [ dtf.MonthDayPattern,
- dtf.YearMonthPattern,
- dtf.ShortDatePattern,
- dtf.ShortTimePattern,
- dtf.LongDatePattern,
- dtf.LongTimePattern,
- dtf.FullDateTimePattern,
- dtf.RFC1123Pattern,
- dtf.SortableDateTimePattern,
- dtf.UniversalSortableDateTimePattern ];
- }
- return this._dateTimeFormats;
- }
- function Sys$CultureInfo$_getMonthIndex(value) {
- if (!this._upperMonths) {
- this._upperMonths = this._toUpperArray(this.dateTimeFormat.MonthNames);
- }
- return Array.indexOf(this._upperMonths, this._toUpper(value));
- }
- function Sys$CultureInfo$_getAbbrMonthIndex(value) {
- if (!this._upperAbbrMonths) {
- this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
- }
- return Array.indexOf(this._upperAbbrMonths, this._toUpper(value));
- }
- function Sys$CultureInfo$_getDayIndex(value) {
- if (!this._upperDays) {
- this._upperDays = this._toUpperArray(this.dateTimeFormat.DayNames);
- }
- return Array.indexOf(this._upperDays, this._toUpper(value));
- }
- function Sys$CultureInfo$_getAbbrDayIndex(value) {
- if (!this._upperAbbrDays) {
- this._upperAbbrDays = this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);
- }
- return Array.indexOf(this._upperAbbrDays, this._toUpper(value));
- }
- function Sys$CultureInfo$_toUpperArray(arr) {
- var result = [];
- for (var i = 0, il = arr.length; i < il; i++) {
- result[i] = this._toUpper(arr[i]);
- }
- return result;
- }
- function Sys$CultureInfo$_toUpper(value) {
- return value.split("\u00A0").join(' ').toUpperCase();
- }
-Sys.CultureInfo.prototype = {
- _getDateTimeFormats: Sys$CultureInfo$_getDateTimeFormats,
- _getMonthIndex: Sys$CultureInfo$_getMonthIndex,
- _getAbbrMonthIndex: Sys$CultureInfo$_getAbbrMonthIndex,
- _getDayIndex: Sys$CultureInfo$_getDayIndex,
- _getAbbrDayIndex: Sys$CultureInfo$_getAbbrDayIndex,
- _toUpperArray: Sys$CultureInfo$_toUpperArray,
- _toUpper: Sys$CultureInfo$_toUpper
-}
-Sys.CultureInfo._parse = function Sys$CultureInfo$_parse(value) {
- var cultureInfo = Sys.Serialization.JavaScriptSerializer.deserialize(value);
- return new Sys.CultureInfo(cultureInfo.name, cultureInfo.numberFormat, cultureInfo.dateTimeFormat);
-}
-Sys.CultureInfo.registerClass('Sys.CultureInfo');
-Sys.CultureInfo.InvariantCulture = Sys.CultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":true,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]}}');
-if (typeof(__cultureInfo) === 'undefined') {
- var __cultureInfo = '{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":false},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM dd, yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm tt","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"MMMM, yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":false,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]}}';
-}
-Sys.CultureInfo.CurrentCulture = Sys.CultureInfo._parse(__cultureInfo);
-delete __cultureInfo;
-
-Sys.UI.Behavior = function Sys$UI$Behavior(element) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- Sys.UI.Behavior.initializeBase(this);
- this._element = element;
- var behaviors = element._behaviors;
- if (!behaviors) {
- element._behaviors = [this];
- }
- else {
- behaviors[behaviors.length] = this;
- }
-}
- function Sys$UI$Behavior$get_element() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._element;
- }
- function Sys$UI$Behavior$get_id() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- var baseId = Sys.UI.Behavior.callBaseMethod(this, 'get_id');
- if (baseId) return baseId;
- if (!this._element || !this._element.id) return '';
- return this._element.id + '$' + this.get_name();
- }
- function Sys$UI$Behavior$get_name() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (this._name) return this._name;
- var name = Object.getTypeName(this);
- var i = name.lastIndexOf('.');
- if (i != -1) name = name.substr(i + 1);
- if (!this.get_isInitialized()) this._name = name;
- return name;
- }
- function Sys$UI$Behavior$set_name(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: String}]);
- if (e) throw e;
- if ((value === '') || (value.charAt(0) === ' ') || (value.charAt(value.length - 1) === ' '))
- throw Error.argument('value', Sys.Res.invalidId);
- if (typeof(this._element[value]) !== 'undefined')
- throw Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, value));
- if (this.get_isInitialized()) throw Error.invalidOperation(Sys.Res.cantSetNameAfterInit);
- this._name = value;
- }
- function Sys$UI$Behavior$initialize() {
- Sys.UI.Behavior.callBaseMethod(this, 'initialize');
- var name = this.get_name();
- if (name) this._element[name] = this;
- }
- function Sys$UI$Behavior$dispose() {
- Sys.UI.Behavior.callBaseMethod(this, 'dispose');
- if (this._element) {
- var name = this.get_name();
- if (name) {
- this._element[name] = null;
- }
- Array.remove(this._element._behaviors, this);
- delete this._element;
- }
- }
-Sys.UI.Behavior.prototype = {
- _name: null,
- get_element: Sys$UI$Behavior$get_element,
- get_id: Sys$UI$Behavior$get_id,
- get_name: Sys$UI$Behavior$get_name,
- set_name: Sys$UI$Behavior$set_name,
- initialize: Sys$UI$Behavior$initialize,
- dispose: Sys$UI$Behavior$dispose
-}
-Sys.UI.Behavior.registerClass('Sys.UI.Behavior', Sys.Component);
-Sys.UI.Behavior.getBehaviorByName = function Sys$UI$Behavior$getBehaviorByName(element, name) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true},
- {name: "name", type: String}
- ]);
- if (e) throw e;
- var b = element[name];
- return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null;
-}
-Sys.UI.Behavior.getBehaviors = function Sys$UI$Behavior$getBehaviors(element) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- if (!element._behaviors) return [];
- return Array.clone(element._behaviors);
-}
-Sys.UI.Behavior.getBehaviorsByType = function Sys$UI$Behavior$getBehaviorsByType(element, type) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true},
- {name: "type", type: Type}
- ]);
- if (e) throw e;
- var behaviors = element._behaviors;
- var results = [];
- if (behaviors) {
- for (var i = 0, l = behaviors.length; i < l; i++) {
- if (type.isInstanceOfType(behaviors[i])) {
- results[results.length] = behaviors[i];
- }
- }
- }
- return results;
-}
-
-Sys.UI.VisibilityMode = function Sys$UI$VisibilityMode() {
- ///
- ///
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- throw Error.notImplemented();
-}
-Sys.UI.VisibilityMode.prototype = {
- hide: 0,
- collapse: 1
-}
-Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");
-
-Sys.UI.Control = function Sys$UI$Control(element) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "element", domElement: true}
- ]);
- if (e) throw e;
- if (typeof(element.control) != 'undefined') throw Error.invalidOperation(Sys.Res.controlAlreadyDefined);
- Sys.UI.Control.initializeBase(this);
- this._element = element;
- element.control = this;
-}
- function Sys$UI$Control$get_element() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- return this._element;
- }
- function Sys$UI$Control$get_id() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._element) return '';
- return this._element.id;
- }
- function Sys$UI$Control$set_id(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: String}]);
- if (e) throw e;
- throw Error.invalidOperation(Sys.Res.cantSetId);
- }
- function Sys$UI$Control$get_parent() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (this._parent) return this._parent;
- if (!this._element) return null;
-
- var parentElement = this._element.parentNode;
- while (parentElement) {
- if (parentElement.control) {
- return parentElement.control;
- }
- parentElement = parentElement.parentNode;
- }
- return null;
- }
- function Sys$UI$Control$set_parent(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Sys.UI.Control}]);
- if (e) throw e;
- if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
- var parents = [this];
- var current = value;
- while (current) {
- if (Array.contains(parents, current)) throw Error.invalidOperation(Sys.Res.circularParentChain);
- parents[parents.length] = current;
- current = current.get_parent();
- }
- this._parent = value;
- }
- function Sys$UI$Control$get_visibilityMode() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
- return Sys.UI.DomElement.getVisibilityMode(this._element);
- }
- function Sys$UI$Control$set_visibilityMode(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Sys.UI.VisibilityMode}]);
- if (e) throw e;
- if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
- Sys.UI.DomElement.setVisibilityMode(this._element, value);
- }
- function Sys$UI$Control$get_visible() {
- ///
- if (arguments.length !== 0) throw Error.parameterCount();
- if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
- return Sys.UI.DomElement.getVisible(this._element);
- }
- function Sys$UI$Control$set_visible(value) {
- var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
- if (e) throw e;
- if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
- Sys.UI.DomElement.setVisible(this._element, value)
- }
- function Sys$UI$Control$addCssClass(className) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "className", type: String}
- ]);
- if (e) throw e;
- if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
- Sys.UI.DomElement.addCssClass(this._element, className);
- }
- function Sys$UI$Control$dispose() {
- Sys.UI.Control.callBaseMethod(this, 'dispose');
- if (this._element) {
- this._element.control = undefined;
- delete this._element;
- }
- if (this._parent) delete this._parent;
- }
- function Sys$UI$Control$onBubbleEvent(source, args) {
- ///
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "source"},
- {name: "args", type: Sys.EventArgs}
- ]);
- if (e) throw e;
- return false;
- }
- function Sys$UI$Control$raiseBubbleEvent(source, args) {
- ///
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "source"},
- {name: "args", type: Sys.EventArgs}
- ]);
- if (e) throw e;
- var currentTarget = this.get_parent();
- while (currentTarget) {
- if (currentTarget.onBubbleEvent(source, args)) {
- return;
- }
- currentTarget = currentTarget.get_parent();
- }
- }
- function Sys$UI$Control$removeCssClass(className) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "className", type: String}
- ]);
- if (e) throw e;
- if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
- Sys.UI.DomElement.removeCssClass(this._element, className);
- }
- function Sys$UI$Control$toggleCssClass(className) {
- ///
- ///
- var e = Function._validateParams(arguments, [
- {name: "className", type: String}
- ]);
- if (e) throw e;
- if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
- Sys.UI.DomElement.toggleCssClass(this._element, className);
- }
-Sys.UI.Control.prototype = {
- _parent: null,
- _visibilityMode: Sys.UI.VisibilityMode.hide,
- get_element: Sys$UI$Control$get_element,
- get_id: Sys$UI$Control$get_id,
- set_id: Sys$UI$Control$set_id,
- get_parent: Sys$UI$Control$get_parent,
- set_parent: Sys$UI$Control$set_parent,
- get_visibilityMode: Sys$UI$Control$get_visibilityMode,
- set_visibilityMode: Sys$UI$Control$set_visibilityMode,
- get_visible: Sys$UI$Control$get_visible,
- set_visible: Sys$UI$Control$set_visible,
- addCssClass: Sys$UI$Control$addCssClass,
- dispose: Sys$UI$Control$dispose,
- onBubbleEvent: Sys$UI$Control$onBubbleEvent,
- raiseBubbleEvent: Sys$UI$Control$raiseBubbleEvent,
- removeCssClass: Sys$UI$Control$removeCssClass,
- toggleCssClass: Sys$UI$Control$toggleCssClass
-}
-Sys.UI.Control.registerClass('Sys.UI.Control', Sys.Component);
-
-
-Type.registerNamespace('Sys');
-
-Sys.Res={
-'urlMustBeLessThan1024chars':'The history state must be small enough to not make the url larger than 1024 characters.',
-'argumentTypeName':'Value is not the name of an existing type.',
-'methodRegisteredTwice':'Method {0} has already been registered.',
-'cantSetIdAfterInit':'The id property can\'t be set on this object after initialization.',
-'cantBeCalledAfterDispose':'Can\'t be called after dispose.',
-'componentCantSetIdAfterAddedToApp':'The id property of a component can\'t be set after it\'s been added to the Application object.',
-'behaviorDuplicateName':'A behavior with name \'{0}\' already exists or it is the name of an existing property on the target element.',
-'notATypeName':'Value is not a valid type name.',
-'typeShouldBeTypeOrString':'Value is not a valid type or a valid type name.',
-'historyInvalidHistorySettingCombination':'Cannot set enableHistory to false when ScriptManager.EnableHistory is true.',
-'stateMustBeStringDictionary':'The state object can only have null and string fields.',
-'boolTrueOrFalse':'Value must be \'true\' or \'false\'.',
-'scriptLoadFailedNoHead':'ScriptLoader requires pages to contain a element.',
-'stringFormatInvalid':'The format string is invalid.',
-'referenceNotFound':'Component \'{0}\' was not found.',
-'enumReservedName':'\'{0}\' is a reserved name that can\'t be used as an enum value name.',
-'eventHandlerNotFound':'Handler not found.',
-'circularParentChain':'The chain of control parents can\'t have circular references.',
-'undefinedEvent':'\'{0}\' is not an event.',
-'notAMethod':'{0} is not a method.',
-'propertyUndefined':'\'{0}\' is not a property or an existing field.',
-'historyCannotEnableHistory':'Cannot set enableHistory after initialization.',
-'eventHandlerInvalid':'Handler was not added through the Sys.UI.DomEvent.addHandler method.',
-'scriptLoadFailedDebug':'The script \'{0}\' failed to load. Check for:\r\n Inaccessible path.\r\n Script errors. (IE) Enable \'Display a notification about every script error\' under advanced settings.\r\n Missing call to Sys.Application.notifyScriptLoaded().',
-'propertyNotWritable':'\'{0}\' is not a writable property.',
-'enumInvalidValueName':'\'{0}\' is not a valid name for an enum value.',
-'controlAlreadyDefined':'A control is already associated with the element.',
-'addHandlerCantBeUsedForError':'Can\'t add a handler for the error event using this method. Please set the window.onerror property instead.',
-'namespaceContainsObject':'Object {0} already exists and is not a namespace.',
-'cantAddNonFunctionhandler':'Can\'t add a handler that is not a function.',
-'invalidNameSpace':'Value is not a valid namespace identifier.',
-'notAnInterface':'Value is not a valid interface.',
-'eventHandlerNotFunction':'Handler must be a function.',
-'propertyNotAnArray':'\'{0}\' is not an Array property.',
-'typeRegisteredTwice':'Type {0} has already been registered. The type may be defined multiple times or the script file that defines it may have already been loaded. A possible cause is a change of settings during a partial update.',
-'cantSetNameAfterInit':'The name property can\'t be set on this object after initialization.',
-'historyMissingFrame':'For the history feature to work in IE, the page must have an iFrame element with id \'__historyFrame\' pointed to a page that gets its title from the \'title\' query string parameter and calls Sys.Application._onIFrameLoad() on the parent window. This can be done by setting EnableHistory to true on ScriptManager.',
-'appDuplicateComponent':'Two components with the same id \'{0}\' can\'t be added to the application.',
-'historyCannotAddHistoryPointWithHistoryDisabled':'A history point can only be added if enableHistory is set to true.',
-'appComponentMustBeInitialized':'Components must be initialized before they are added to the Application object.',
-'baseNotAClass':'Value is not a class.',
-'methodNotFound':'No method found with name \'{0}\'.',
-'arrayParseBadFormat':'Value must be a valid string representation for an array. It must start with a \'[\' and end with a \']\'.',
-'stateFieldNameInvalid':'State field names must not contain any \'=\' characters.',
-'cantSetId':'The id property can\'t be set on this object.',
-'historyMissingHiddenInput':'For the history feature to work in Safari 2, the page must have a hidden input element with id \'__history\'.',
-'stringFormatBraceMismatch':'The format string contains an unmatched opening or closing brace.',
-'enumValueNotInteger':'An enumeration definition can only contain integer values.',
-'propertyNullOrUndefined':'Cannot set the properties of \'{0}\' because it returned a null value.',
-'argumentDomNode':'Value must be a DOM element or a text node.',
-'componentCantSetIdTwice':'The id property of a component can\'t be set more than once.',
-'createComponentOnDom':'Value must be null for Components that are not Controls or Behaviors.',
-'createNotComponent':'{0} does not derive from Sys.Component.',
-'createNoDom':'Value must not be null for Controls and Behaviors.',
-'cantAddWithoutId':'Can\'t add a component that doesn\'t have an id.',
-'badTypeName':'Value is not the name of the type being registered or the name is a reserved word.',
-'argumentInteger':'Value must be an integer.',
-'scriptLoadMultipleCallbacks':'The script \'{0}\' contains multiple calls to Sys.Application.notifyScriptLoaded(). Only one is allowed.',
-'invokeCalledTwice':'Cannot call invoke more than once.',
-'webServiceFailed':'The server method \'{0}\' failed with the following error: {1}',
-'webServiceInvalidJsonWrapper':'The server method \'{0}\' returned invalid data. The \'d\' property is missing from the JSON wrapper.',
-'argumentType':'Object cannot be converted to the required type.',
-'argumentNull':'Value cannot be null.',
-'controlCantSetId':'The id property can\'t be set on a control.',
-'formatBadFormatSpecifier':'Format specifier was invalid.',
-'webServiceFailedNoMsg':'The server method \'{0}\' failed.',
-'argumentDomElement':'Value must be a DOM element.',
-'invalidExecutorType':'Could not create a valid Sys.Net.WebRequestExecutor from: {0}.',
-'cannotCallBeforeResponse':'Cannot call {0} when responseAvailable is false.',
-'actualValue':'Actual value was {0}.',
-'enumInvalidValue':'\'{0}\' is not a valid value for enum {1}.',
-'scriptLoadFailed':'The script \'{0}\' could not be loaded.',
-'parameterCount':'Parameter count mismatch.',
-'cannotDeserializeEmptyString':'Cannot deserialize empty string.',
-'formatInvalidString':'Input string was not in a correct format.',
-'invalidTimeout':'Value must be greater than or equal to zero.',
-'cannotAbortBeforeStart':'Cannot abort when executor has not started.',
-'argument':'Value does not fall within the expected range.',
-'cannotDeserializeInvalidJson':'Cannot deserialize. The data does not correspond to valid JSON.',
-'invalidHttpVerb':'httpVerb cannot be set to an empty or null string.',
-'nullWebRequest':'Cannot call executeRequest with a null webRequest.',
-'eventHandlerInvalid':'Handler was not added through the Sys.UI.DomEvent.addHandler method.',
-'cannotSerializeNonFiniteNumbers':'Cannot serialize non finite numbers.',
-'argumentUndefined':'Value cannot be undefined.',
-'webServiceInvalidReturnType':'The server method \'{0}\' returned an invalid type. Expected type: {1}',
-'servicePathNotSet':'The path to the web service has not been set.',
-'argumentTypeWithTypes':'Object of type \'{0}\' cannot be converted to type \'{1}\'.',
-'cannotCallOnceStarted':'Cannot call {0} once started.',
-'badBaseUrl1':'Base URL does not contain ://.',
-'badBaseUrl2':'Base URL does not contain another /.',
-'badBaseUrl3':'Cannot find last / in base URL.',
-'setExecutorAfterActive':'Cannot set executor after it has become active.',
-'paramName':'Parameter name: {0}',
-'cannotCallOutsideHandler':'Cannot call {0} outside of a completed event handler.',
-'cannotSerializeObjectWithCycle':'Cannot serialize object with cyclic reference within child properties.',
-'format':'One of the identified items was in an invalid format.',
-'assertFailedCaller':'Assertion Failed: {0}\r\nat {1}',
-'argumentOutOfRange':'Specified argument was out of the range of valid values.',
-'webServiceTimedOut':'The server method \'{0}\' timed out.',
-'notImplemented':'The method or operation is not implemented.',
-'assertFailed':'Assertion Failed: {0}',
-'invalidOperation':'Operation is not valid due to the current state of the object.',
-'breakIntoDebugger':'{0}\r\n\r\nBreak into debugger?'
-};
-
-if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
+// Name: MicrosoftAjax.debug.js
+// Assembly: System.Web.Extensions
+// Version: 3.5.0.0
+// FileVersion: 3.5.30729.1
+//-----------------------------------------------------------------------
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//-----------------------------------------------------------------------
+// MicrosoftAjax.js
+// Microsoft AJAX Framework.
+
+Function.__typeName = 'Function';
+Function.__class = true;
+Function.createCallback = function Function$createCallback(method, context) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "method", type: Function},
+ {name: "context", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ return function() {
+ var l = arguments.length;
+ if (l > 0) {
+ var args = [];
+ for (var i = 0; i < l; i++) {
+ args[i] = arguments[i];
+ }
+ args[l] = context;
+ return method.apply(this, args);
+ }
+ return method.call(this, context);
+ }
+}
+Function.createDelegate = function Function$createDelegate(instance, method) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "instance", mayBeNull: true},
+ {name: "method", type: Function}
+ ]);
+ if (e) throw e;
+ return function() {
+ return method.apply(instance, arguments);
+ }
+}
+Function.emptyFunction = Function.emptyMethod = function Function$emptyMethod() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+}
+Function._validateParams = function Function$_validateParams(params, expectedParams) {
+ var e;
+ e = Function._validateParameterCount(params, expectedParams);
+ if (e) {
+ e.popStackFrame();
+ return e;
+ }
+ for (var i=0; i < params.length; i++) {
+ var expectedParam = expectedParams[Math.min(i, expectedParams.length - 1)];
+ var paramName = expectedParam.name;
+ if (expectedParam.parameterArray) {
+ paramName += "[" + (i - expectedParams.length + 1) + "]";
+ }
+ e = Function._validateParameter(params[i], expectedParam, paramName);
+ if (e) {
+ e.popStackFrame();
+ return e;
+ }
+ }
+ return null;
+}
+Function._validateParameterCount = function Function$_validateParameterCount(params, expectedParams) {
+ var maxParams = expectedParams.length;
+ var minParams = 0;
+ for (var i=0; i < expectedParams.length; i++) {
+ if (expectedParams[i].parameterArray) {
+ maxParams = Number.MAX_VALUE;
+ }
+ else if (!expectedParams[i].optional) {
+ minParams++;
+ }
+ }
+ if (params.length < minParams || params.length > maxParams) {
+ var e = Error.parameterCount();
+ e.popStackFrame();
+ return e;
+ }
+ return null;
+}
+Function._validateParameter = function Function$_validateParameter(param, expectedParam, paramName) {
+ var e;
+ var expectedType = expectedParam.type;
+ var expectedInteger = !!expectedParam.integer;
+ var expectedDomElement = !!expectedParam.domElement;
+ var mayBeNull = !!expectedParam.mayBeNull;
+ e = Function._validateParameterType(param, expectedType, expectedInteger, expectedDomElement, mayBeNull, paramName);
+ if (e) {
+ e.popStackFrame();
+ return e;
+ }
+ var expectedElementType = expectedParam.elementType;
+ var elementMayBeNull = !!expectedParam.elementMayBeNull;
+ if (expectedType === Array && typeof(param) !== "undefined" && param !== null &&
+ (expectedElementType || !elementMayBeNull)) {
+ var expectedElementInteger = !!expectedParam.elementInteger;
+ var expectedElementDomElement = !!expectedParam.elementDomElement;
+ for (var i=0; i < param.length; i++) {
+ var elem = param[i];
+ e = Function._validateParameterType(elem, expectedElementType,
+ expectedElementInteger, expectedElementDomElement, elementMayBeNull,
+ paramName + "[" + i + "]");
+ if (e) {
+ e.popStackFrame();
+ return e;
+ }
+ }
+ }
+ return null;
+}
+Function._validateParameterType = function Function$_validateParameterType(param, expectedType, expectedInteger, expectedDomElement, mayBeNull, paramName) {
+ var e;
+ if (typeof(param) === "undefined") {
+ if (mayBeNull) {
+ return null;
+ }
+ else {
+ e = Error.argumentUndefined(paramName);
+ e.popStackFrame();
+ return e;
+ }
+ }
+ if (param === null) {
+ if (mayBeNull) {
+ return null;
+ }
+ else {
+ e = Error.argumentNull(paramName);
+ e.popStackFrame();
+ return e;
+ }
+ }
+ if (expectedType && expectedType.__enum) {
+ if (typeof(param) !== 'number') {
+ e = Error.argumentType(paramName, Object.getType(param), expectedType);
+ e.popStackFrame();
+ return e;
+ }
+ if ((param % 1) === 0) {
+ var values = expectedType.prototype;
+ if (!expectedType.__flags || (param === 0)) {
+ for (var i in values) {
+ if (values[i] === param) return null;
+ }
+ }
+ else {
+ var v = param;
+ for (var i in values) {
+ var vali = values[i];
+ if (vali === 0) continue;
+ if ((vali & param) === vali) {
+ v -= vali;
+ }
+ if (v === 0) return null;
+ }
+ }
+ }
+ e = Error.argumentOutOfRange(paramName, param, String.format(Sys.Res.enumInvalidValue, param, expectedType.getName()));
+ e.popStackFrame();
+ return e;
+ }
+ if (expectedDomElement) {
+ var val;
+ if (typeof(param.nodeType) !== 'number') {
+ var doc = param.ownerDocument || param.document || param;
+ if (doc != param) {
+ var w = doc.defaultView || doc.parentWindow;
+ val = (w != param) && !(w.document && param.document && (w.document === param.document));
+ }
+ else {
+ val = (typeof(doc.body) === 'undefined');
+ }
+ }
+ else {
+ val = (param.nodeType === 3);
+ }
+ if (val) {
+ e = Error.argument(paramName, Sys.Res.argumentDomElement);
+ e.popStackFrame();
+ return e;
+ }
+ }
+ if (expectedType && !expectedType.isInstanceOfType(param)) {
+ e = Error.argumentType(paramName, Object.getType(param), expectedType);
+ e.popStackFrame();
+ return e;
+ }
+ if (expectedType === Number && expectedInteger) {
+ if ((param % 1) !== 0) {
+ e = Error.argumentOutOfRange(paramName, param, Sys.Res.argumentInteger);
+ e.popStackFrame();
+ return e;
+ }
+ }
+ return null;
+}
+
+Error.__typeName = 'Error';
+Error.__class = true;
+Error.create = function Error$create(message, errorInfo) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "message", type: String, mayBeNull: true, optional: true},
+ {name: "errorInfo", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var e = new Error(message);
+ e.message = message;
+ if (errorInfo) {
+ for (var v in errorInfo) {
+ e[v] = errorInfo[v];
+ }
+ }
+ e.popStackFrame();
+ return e;
+}
+Error.argument = function Error$argument(paramName, message) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "paramName", type: String, mayBeNull: true, optional: true},
+ {name: "message", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var displayMessage = "Sys.ArgumentException: " + (message ? message : Sys.Res.argument);
+ if (paramName) {
+ displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
+ }
+ var e = Error.create(displayMessage, { name: "Sys.ArgumentException", paramName: paramName });
+ e.popStackFrame();
+ return e;
+}
+Error.argumentNull = function Error$argumentNull(paramName, message) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "paramName", type: String, mayBeNull: true, optional: true},
+ {name: "message", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var displayMessage = "Sys.ArgumentNullException: " + (message ? message : Sys.Res.argumentNull);
+ if (paramName) {
+ displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
+ }
+ var e = Error.create(displayMessage, { name: "Sys.ArgumentNullException", paramName: paramName });
+ e.popStackFrame();
+ return e;
+}
+Error.argumentOutOfRange = function Error$argumentOutOfRange(paramName, actualValue, message) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "paramName", type: String, mayBeNull: true, optional: true},
+ {name: "actualValue", mayBeNull: true, optional: true},
+ {name: "message", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var displayMessage = "Sys.ArgumentOutOfRangeException: " + (message ? message : Sys.Res.argumentOutOfRange);
+ if (paramName) {
+ displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
+ }
+ if (typeof(actualValue) !== "undefined" && actualValue !== null) {
+ displayMessage += "\n" + String.format(Sys.Res.actualValue, actualValue);
+ }
+ var e = Error.create(displayMessage, {
+ name: "Sys.ArgumentOutOfRangeException",
+ paramName: paramName,
+ actualValue: actualValue
+ });
+ e.popStackFrame();
+ return e;
+}
+Error.argumentType = function Error$argumentType(paramName, actualType, expectedType, message) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "paramName", type: String, mayBeNull: true, optional: true},
+ {name: "actualType", type: Type, mayBeNull: true, optional: true},
+ {name: "expectedType", type: Type, mayBeNull: true, optional: true},
+ {name: "message", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var displayMessage = "Sys.ArgumentTypeException: ";
+ if (message) {
+ displayMessage += message;
+ }
+ else if (actualType && expectedType) {
+ displayMessage +=
+ String.format(Sys.Res.argumentTypeWithTypes, actualType.getName(), expectedType.getName());
+ }
+ else {
+ displayMessage += Sys.Res.argumentType;
+ }
+ if (paramName) {
+ displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
+ }
+ var e = Error.create(displayMessage, {
+ name: "Sys.ArgumentTypeException",
+ paramName: paramName,
+ actualType: actualType,
+ expectedType: expectedType
+ });
+ e.popStackFrame();
+ return e;
+}
+Error.argumentUndefined = function Error$argumentUndefined(paramName, message) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "paramName", type: String, mayBeNull: true, optional: true},
+ {name: "message", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var displayMessage = "Sys.ArgumentUndefinedException: " + (message ? message : Sys.Res.argumentUndefined);
+ if (paramName) {
+ displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
+ }
+ var e = Error.create(displayMessage, { name: "Sys.ArgumentUndefinedException", paramName: paramName });
+ e.popStackFrame();
+ return e;
+}
+Error.format = function Error$format(message) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "message", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var displayMessage = "Sys.FormatException: " + (message ? message : Sys.Res.format);
+ var e = Error.create(displayMessage, {name: 'Sys.FormatException'});
+ e.popStackFrame();
+ return e;
+}
+Error.invalidOperation = function Error$invalidOperation(message) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "message", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var displayMessage = "Sys.InvalidOperationException: " + (message ? message : Sys.Res.invalidOperation);
+ var e = Error.create(displayMessage, {name: 'Sys.InvalidOperationException'});
+ e.popStackFrame();
+ return e;
+}
+Error.notImplemented = function Error$notImplemented(message) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "message", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var displayMessage = "Sys.NotImplementedException: " + (message ? message : Sys.Res.notImplemented);
+ var e = Error.create(displayMessage, {name: 'Sys.NotImplementedException'});
+ e.popStackFrame();
+ return e;
+}
+Error.parameterCount = function Error$parameterCount(message) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "message", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var displayMessage = "Sys.ParameterCountException: " + (message ? message : Sys.Res.parameterCount);
+ var e = Error.create(displayMessage, {name: 'Sys.ParameterCountException'});
+ e.popStackFrame();
+ return e;
+}
+Error.prototype.popStackFrame = function Error$popStackFrame() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (typeof(this.stack) === "undefined" || this.stack === null ||
+ typeof(this.fileName) === "undefined" || this.fileName === null ||
+ typeof(this.lineNumber) === "undefined" || this.lineNumber === null) {
+ return;
+ }
+ var stackFrames = this.stack.split("\n");
+ var currentFrame = stackFrames[0];
+ var pattern = this.fileName + ":" + this.lineNumber;
+ while(typeof(currentFrame) !== "undefined" &&
+ currentFrame !== null &&
+ currentFrame.indexOf(pattern) === -1) {
+ stackFrames.shift();
+ currentFrame = stackFrames[0];
+ }
+ var nextFrame = stackFrames[1];
+ if (typeof(nextFrame) === "undefined" || nextFrame === null) {
+ return;
+ }
+ var nextFrameParts = nextFrame.match(/@(.*):(\d+)$/);
+ if (typeof(nextFrameParts) === "undefined" || nextFrameParts === null) {
+ return;
+ }
+ this.fileName = nextFrameParts[1];
+ this.lineNumber = parseInt(nextFrameParts[2]);
+ stackFrames.shift();
+ this.stack = stackFrames.join("\n");
+}
+
+Object.__typeName = 'Object';
+Object.__class = true;
+Object.getType = function Object$getType(instance) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "instance"}
+ ]);
+ if (e) throw e;
+ var ctor = instance.constructor;
+ if (!ctor || (typeof(ctor) !== "function") || !ctor.__typeName || (ctor.__typeName === 'Object')) {
+ return Object;
+ }
+ return ctor;
+}
+Object.getTypeName = function Object$getTypeName(instance) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "instance"}
+ ]);
+ if (e) throw e;
+ return Object.getType(instance).getName();
+}
+
+String.__typeName = 'String';
+String.__class = true;
+String.prototype.endsWith = function String$endsWith(suffix) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "suffix", type: String}
+ ]);
+ if (e) throw e;
+ return (this.substr(this.length - suffix.length) === suffix);
+}
+String.prototype.startsWith = function String$startsWith(prefix) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "prefix", type: String}
+ ]);
+ if (e) throw e;
+ return (this.substr(0, prefix.length) === prefix);
+}
+String.prototype.trim = function String$trim() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this.replace(/^\s+|\s+$/g, '');
+}
+String.prototype.trimEnd = function String$trimEnd() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this.replace(/\s+$/, '');
+}
+String.prototype.trimStart = function String$trimStart() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this.replace(/^\s+/, '');
+}
+String.format = function String$format(format, args) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "format", type: String},
+ {name: "args", mayBeNull: true, parameterArray: true}
+ ]);
+ if (e) throw e;
+ return String._toFormattedString(false, arguments);
+}
+String.localeFormat = function String$localeFormat(format, args) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "format", type: String},
+ {name: "args", mayBeNull: true, parameterArray: true}
+ ]);
+ if (e) throw e;
+ return String._toFormattedString(true, arguments);
+}
+String._toFormattedString = function String$_toFormattedString(useLocale, args) {
+ var result = '';
+ var format = args[0];
+ for (var i=0;;) {
+ var open = format.indexOf('{', i);
+ var close = format.indexOf('}', i);
+ if ((open < 0) && (close < 0)) {
+ result += format.slice(i);
+ break;
+ }
+ if ((close > 0) && ((close < open) || (open < 0))) {
+ if (format.charAt(close + 1) !== '}') {
+ throw Error.argument('format', Sys.Res.stringFormatBraceMismatch);
+ }
+ result += format.slice(i, close + 1);
+ i = close + 2;
+ continue;
+ }
+ result += format.slice(i, open);
+ i = open + 1;
+ if (format.charAt(i) === '{') {
+ result += '{';
+ i++;
+ continue;
+ }
+ if (close < 0) throw Error.argument('format', Sys.Res.stringFormatBraceMismatch);
+ var brace = format.substring(i, close);
+ var colonIndex = brace.indexOf(':');
+ var argNumber = parseInt((colonIndex < 0)? brace : brace.substring(0, colonIndex), 10) + 1;
+ if (isNaN(argNumber)) throw Error.argument('format', Sys.Res.stringFormatInvalid);
+ var argFormat = (colonIndex < 0)? '' : brace.substring(colonIndex + 1);
+ var arg = args[argNumber];
+ if (typeof(arg) === "undefined" || arg === null) {
+ arg = '';
+ }
+ if (arg.toFormattedString) {
+ result += arg.toFormattedString(argFormat);
+ }
+ else if (useLocale && arg.localeFormat) {
+ result += arg.localeFormat(argFormat);
+ }
+ else if (arg.format) {
+ result += arg.format(argFormat);
+ }
+ else
+ result += arg.toString();
+ i = close + 1;
+ }
+ return result;
+}
+
+Boolean.__typeName = 'Boolean';
+Boolean.__class = true;
+Boolean.parse = function Boolean$parse(value) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "value", type: String}
+ ]);
+ if (e) throw e;
+ var v = value.trim().toLowerCase();
+ if (v === 'false') return false;
+ if (v === 'true') return true;
+ throw Error.argumentOutOfRange('value', value, Sys.Res.boolTrueOrFalse);
+}
+
+Date.__typeName = 'Date';
+Date.__class = true;
+Date._appendPreOrPostMatch = function Date$_appendPreOrPostMatch(preMatch, strBuilder) {
+ var quoteCount = 0;
+ var escaped = false;
+ for (var i = 0, il = preMatch.length; i < il; i++) {
+ var c = preMatch.charAt(i);
+ switch (c) {
+ case '\'':
+ if (escaped) strBuilder.append("'");
+ else quoteCount++;
+ escaped = false;
+ break;
+ case '\\':
+ if (escaped) strBuilder.append("\\");
+ escaped = !escaped;
+ break;
+ default:
+ strBuilder.append(c);
+ escaped = false;
+ break;
+ }
+ }
+ return quoteCount;
+}
+Date._expandFormat = function Date$_expandFormat(dtf, format) {
+ if (!format) {
+ format = "F";
+ }
+ if (format.length === 1) {
+ switch (format) {
+ case "d":
+ return dtf.ShortDatePattern;
+ case "D":
+ return dtf.LongDatePattern;
+ case "t":
+ return dtf.ShortTimePattern;
+ case "T":
+ return dtf.LongTimePattern;
+ case "F":
+ return dtf.FullDateTimePattern;
+ case "M": case "m":
+ return dtf.MonthDayPattern;
+ case "s":
+ return dtf.SortableDateTimePattern;
+ case "Y": case "y":
+ return dtf.YearMonthPattern;
+ default:
+ throw Error.format(Sys.Res.formatInvalidString);
+ }
+ }
+ return format;
+}
+Date._expandYear = function Date$_expandYear(dtf, year) {
+ if (year < 100) {
+ var curr = new Date().getFullYear();
+ year += curr - (curr % 100);
+ if (year > dtf.Calendar.TwoDigitYearMax) {
+ return year - 100;
+ }
+ }
+ return year;
+}
+Date._getParseRegExp = function Date$_getParseRegExp(dtf, format) {
+ if (!dtf._parseRegExp) {
+ dtf._parseRegExp = {};
+ }
+ else if (dtf._parseRegExp[format]) {
+ return dtf._parseRegExp[format];
+ }
+ var expFormat = Date._expandFormat(dtf, format);
+ expFormat = expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, "\\\\$1");
+ var regexp = new Sys.StringBuilder("^");
+ var groups = [];
+ var index = 0;
+ var quoteCount = 0;
+ var tokenRegExp = Date._getTokenRegExp();
+ var match;
+ while ((match = tokenRegExp.exec(expFormat)) !== null) {
+ var preMatch = expFormat.slice(index, match.index);
+ index = tokenRegExp.lastIndex;
+ quoteCount += Date._appendPreOrPostMatch(preMatch, regexp);
+ if ((quoteCount%2) === 1) {
+ regexp.append(match[0]);
+ continue;
+ }
+ switch (match[0]) {
+ case 'dddd': case 'ddd':
+ case 'MMMM': case 'MMM':
+ regexp.append("(\\D+)");
+ break;
+ case 'tt': case 't':
+ regexp.append("(\\D*)");
+ break;
+ case 'yyyy':
+ regexp.append("(\\d{4})");
+ break;
+ case 'fff':
+ regexp.append("(\\d{3})");
+ break;
+ case 'ff':
+ regexp.append("(\\d{2})");
+ break;
+ case 'f':
+ regexp.append("(\\d)");
+ break;
+ case 'dd': case 'd':
+ case 'MM': case 'M':
+ case 'yy': case 'y':
+ case 'HH': case 'H':
+ case 'hh': case 'h':
+ case 'mm': case 'm':
+ case 'ss': case 's':
+ regexp.append("(\\d\\d?)");
+ break;
+ case 'zzz':
+ regexp.append("([+-]?\\d\\d?:\\d{2})");
+ break;
+ case 'zz': case 'z':
+ regexp.append("([+-]?\\d\\d?)");
+ break;
+ }
+ Array.add(groups, match[0]);
+ }
+ Date._appendPreOrPostMatch(expFormat.slice(index), regexp);
+ regexp.append("$");
+ var regexpStr = regexp.toString().replace(/\s+/g, "\\s+");
+ var parseRegExp = {'regExp': regexpStr, 'groups': groups};
+ dtf._parseRegExp[format] = parseRegExp;
+ return parseRegExp;
+}
+Date._getTokenRegExp = function Date$_getTokenRegExp() {
+ return /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z/g;
+}
+Date.parseLocale = function Date$parseLocale(value, formats) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "value", type: String},
+ {name: "formats", mayBeNull: true, optional: true, parameterArray: true}
+ ]);
+ if (e) throw e;
+ return Date._parse(value, Sys.CultureInfo.CurrentCulture, arguments);
+}
+Date.parseInvariant = function Date$parseInvariant(value, formats) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "value", type: String},
+ {name: "formats", mayBeNull: true, optional: true, parameterArray: true}
+ ]);
+ if (e) throw e;
+ return Date._parse(value, Sys.CultureInfo.InvariantCulture, arguments);
+}
+Date._parse = function Date$_parse(value, cultureInfo, args) {
+ var custom = false;
+ for (var i = 1, il = args.length; i < il; i++) {
+ var format = args[i];
+ if (format) {
+ custom = true;
+ var date = Date._parseExact(value, format, cultureInfo);
+ if (date) return date;
+ }
+ }
+ if (! custom) {
+ var formats = cultureInfo._getDateTimeFormats();
+ for (var i = 0, il = formats.length; i < il; i++) {
+ var date = Date._parseExact(value, formats[i], cultureInfo);
+ if (date) return date;
+ }
+ }
+ return null;
+}
+Date._parseExact = function Date$_parseExact(value, format, cultureInfo) {
+ value = value.trim();
+ var dtf = cultureInfo.dateTimeFormat;
+ var parseInfo = Date._getParseRegExp(dtf, format);
+ var match = new RegExp(parseInfo.regExp).exec(value);
+ if (match === null) return null;
+
+ var groups = parseInfo.groups;
+ var year = null, month = null, date = null, weekDay = null;
+ var hour = 0, min = 0, sec = 0, msec = 0, tzMinOffset = null;
+ var pmHour = false;
+ for (var j = 0, jl = groups.length; j < jl; j++) {
+ var matchGroup = match[j+1];
+ if (matchGroup) {
+ switch (groups[j]) {
+ case 'dd': case 'd':
+ date = parseInt(matchGroup, 10);
+ if ((date < 1) || (date > 31)) return null;
+ break;
+ case 'MMMM':
+ month = cultureInfo._getMonthIndex(matchGroup);
+ if ((month < 0) || (month > 11)) return null;
+ break;
+ case 'MMM':
+ month = cultureInfo._getAbbrMonthIndex(matchGroup);
+ if ((month < 0) || (month > 11)) return null;
+ break;
+ case 'M': case 'MM':
+ var month = parseInt(matchGroup, 10) - 1;
+ if ((month < 0) || (month > 11)) return null;
+ break;
+ case 'y': case 'yy':
+ year = Date._expandYear(dtf,parseInt(matchGroup, 10));
+ if ((year < 0) || (year > 9999)) return null;
+ break;
+ case 'yyyy':
+ year = parseInt(matchGroup, 10);
+ if ((year < 0) || (year > 9999)) return null;
+ break;
+ case 'h': case 'hh':
+ hour = parseInt(matchGroup, 10);
+ if (hour === 12) hour = 0;
+ if ((hour < 0) || (hour > 11)) return null;
+ break;
+ case 'H': case 'HH':
+ hour = parseInt(matchGroup, 10);
+ if ((hour < 0) || (hour > 23)) return null;
+ break;
+ case 'm': case 'mm':
+ min = parseInt(matchGroup, 10);
+ if ((min < 0) || (min > 59)) return null;
+ break;
+ case 's': case 'ss':
+ sec = parseInt(matchGroup, 10);
+ if ((sec < 0) || (sec > 59)) return null;
+ break;
+ case 'tt': case 't':
+ var upperToken = matchGroup.toUpperCase();
+ pmHour = (upperToken === dtf.PMDesignator.toUpperCase());
+ if (!pmHour && (upperToken !== dtf.AMDesignator.toUpperCase())) return null;
+ break;
+ case 'f':
+ msec = parseInt(matchGroup, 10) * 100;
+ if ((msec < 0) || (msec > 999)) return null;
+ break;
+ case 'ff':
+ msec = parseInt(matchGroup, 10) * 10;
+ if ((msec < 0) || (msec > 999)) return null;
+ break;
+ case 'fff':
+ msec = parseInt(matchGroup, 10);
+ if ((msec < 0) || (msec > 999)) return null;
+ break;
+ case 'dddd':
+ weekDay = cultureInfo._getDayIndex(matchGroup);
+ if ((weekDay < 0) || (weekDay > 6)) return null;
+ break;
+ case 'ddd':
+ weekDay = cultureInfo._getAbbrDayIndex(matchGroup);
+ if ((weekDay < 0) || (weekDay > 6)) return null;
+ break;
+ case 'zzz':
+ var offsets = matchGroup.split(/:/);
+ if (offsets.length !== 2) return null;
+ var hourOffset = parseInt(offsets[0], 10);
+ if ((hourOffset < -12) || (hourOffset > 13)) return null;
+ var minOffset = parseInt(offsets[1], 10);
+ if ((minOffset < 0) || (minOffset > 59)) return null;
+ tzMinOffset = (hourOffset * 60) + (matchGroup.startsWith('-')? -minOffset : minOffset);
+ break;
+ case 'z': case 'zz':
+ var hourOffset = parseInt(matchGroup, 10);
+ if ((hourOffset < -12) || (hourOffset > 13)) return null;
+ tzMinOffset = hourOffset * 60;
+ break;
+ }
+ }
+ }
+ var result = new Date();
+ if (year === null) {
+ year = result.getFullYear();
+ }
+ if (month === null) {
+ month = result.getMonth();
+ }
+ if (date === null) {
+ date = result.getDate();
+ }
+ result.setFullYear(year, month, date);
+ if (result.getDate() !== date) return null;
+ if ((weekDay !== null) && (result.getDay() !== weekDay)) {
+ return null;
+ }
+ if (pmHour && (hour < 12)) {
+ hour += 12;
+ }
+ result.setHours(hour, min, sec, msec);
+ if (tzMinOffset !== null) {
+ var adjustedMin = result.getMinutes() - (tzMinOffset + result.getTimezoneOffset());
+ result.setHours(result.getHours() + parseInt(adjustedMin/60, 10), adjustedMin%60);
+ }
+ return result;
+}
+Date.prototype.format = function Date$format(format) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "format", type: String}
+ ]);
+ if (e) throw e;
+ return this._toFormattedString(format, Sys.CultureInfo.InvariantCulture);
+}
+Date.prototype.localeFormat = function Date$localeFormat(format) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "format", type: String}
+ ]);
+ if (e) throw e;
+ return this._toFormattedString(format, Sys.CultureInfo.CurrentCulture);
+}
+Date.prototype._toFormattedString = function Date$_toFormattedString(format, cultureInfo) {
+ if (!format || (format.length === 0) || (format === 'i')) {
+ if (cultureInfo && (cultureInfo.name.length > 0)) {
+ return this.toLocaleString();
+ }
+ else {
+ return this.toString();
+ }
+ }
+ var dtf = cultureInfo.dateTimeFormat;
+ format = Date._expandFormat(dtf, format);
+ var ret = new Sys.StringBuilder();
+ var hour;
+ function addLeadingZero(num) {
+ if (num < 10) {
+ return '0' + num;
+ }
+ return num.toString();
+ }
+ function addLeadingZeros(num) {
+ if (num < 10) {
+ return '00' + num;
+ }
+ if (num < 100) {
+ return '0' + num;
+ }
+ return num.toString();
+ }
+ var quoteCount = 0;
+ var tokenRegExp = Date._getTokenRegExp();
+ for (;;) {
+ var index = tokenRegExp.lastIndex;
+ var ar = tokenRegExp.exec(format);
+ var preMatch = format.slice(index, ar ? ar.index : format.length);
+ quoteCount += Date._appendPreOrPostMatch(preMatch, ret);
+ if (!ar) break;
+ if ((quoteCount%2) === 1) {
+ ret.append(ar[0]);
+ continue;
+ }
+ switch (ar[0]) {
+ case "dddd":
+ ret.append(dtf.DayNames[this.getDay()]);
+ break;
+ case "ddd":
+ ret.append(dtf.AbbreviatedDayNames[this.getDay()]);
+ break;
+ case "dd":
+ ret.append(addLeadingZero(this.getDate()));
+ break;
+ case "d":
+ ret.append(this.getDate());
+ break;
+ case "MMMM":
+ ret.append(dtf.MonthNames[this.getMonth()]);
+ break;
+ case "MMM":
+ ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]);
+ break;
+ case "MM":
+ ret.append(addLeadingZero(this.getMonth() + 1));
+ break;
+ case "M":
+ ret.append(this.getMonth() + 1);
+ break;
+ case "yyyy":
+ ret.append(this.getFullYear());
+ break;
+ case "yy":
+ ret.append(addLeadingZero(this.getFullYear() % 100));
+ break;
+ case "y":
+ ret.append(this.getFullYear() % 100);
+ break;
+ case "hh":
+ hour = this.getHours() % 12;
+ if (hour === 0) hour = 12;
+ ret.append(addLeadingZero(hour));
+ break;
+ case "h":
+ hour = this.getHours() % 12;
+ if (hour === 0) hour = 12;
+ ret.append(hour);
+ break;
+ case "HH":
+ ret.append(addLeadingZero(this.getHours()));
+ break;
+ case "H":
+ ret.append(this.getHours());
+ break;
+ case "mm":
+ ret.append(addLeadingZero(this.getMinutes()));
+ break;
+ case "m":
+ ret.append(this.getMinutes());
+ break;
+ case "ss":
+ ret.append(addLeadingZero(this.getSeconds()));
+ break;
+ case "s":
+ ret.append(this.getSeconds());
+ break;
+ case "tt":
+ ret.append((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator);
+ break;
+ case "t":
+ ret.append(((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator).charAt(0));
+ break;
+ case "f":
+ ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
+ break;
+ case "ff":
+ ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, 2));
+ break;
+ case "fff":
+ ret.append(addLeadingZeros(this.getMilliseconds()));
+ break;
+ case "z":
+ hour = this.getTimezoneOffset() / 60;
+ ret.append(((hour <= 0) ? '+' : '-') + Math.floor(Math.abs(hour)));
+ break;
+ case "zz":
+ hour = this.getTimezoneOffset() / 60;
+ ret.append(((hour <= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))));
+ break;
+ case "zzz":
+ hour = this.getTimezoneOffset() / 60;
+ ret.append(((hour <= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))) +
+ dtf.TimeSeparator + addLeadingZero(Math.abs(this.getTimezoneOffset() % 60)));
+ break;
+ }
+ }
+ return ret.toString();
+}
+
+Number.__typeName = 'Number';
+Number.__class = true;
+Number.parseLocale = function Number$parseLocale(value) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "value", type: String}
+ ]);
+ if (e) throw e;
+ return Number._parse(value, Sys.CultureInfo.CurrentCulture);
+}
+Number.parseInvariant = function Number$parseInvariant(value) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "value", type: String}
+ ]);
+ if (e) throw e;
+ return Number._parse(value, Sys.CultureInfo.InvariantCulture);
+}
+Number._parse = function Number$_parse(value, cultureInfo) {
+ value = value.trim();
+
+ if (value.match(/^[+-]?infinity$/i)) {
+ return parseFloat(value);
+ }
+ if (value.match(/^0x[a-f0-9]+$/i)) {
+ return parseInt(value);
+ }
+ var numFormat = cultureInfo.numberFormat;
+ var signInfo = Number._parseNumberNegativePattern(value, numFormat, numFormat.NumberNegativePattern);
+ var sign = signInfo[0];
+ var num = signInfo[1];
+
+ if ((sign === '') && (numFormat.NumberNegativePattern !== 1)) {
+ signInfo = Number._parseNumberNegativePattern(value, numFormat, 1);
+ sign = signInfo[0];
+ num = signInfo[1];
+ }
+ if (sign === '') sign = '+';
+
+ var exponent;
+ var intAndFraction;
+ var exponentPos = num.indexOf('e');
+ if (exponentPos < 0) exponentPos = num.indexOf('E');
+ if (exponentPos < 0) {
+ intAndFraction = num;
+ exponent = null;
+ }
+ else {
+ intAndFraction = num.substr(0, exponentPos);
+ exponent = num.substr(exponentPos + 1);
+ }
+
+ var integer;
+ var fraction;
+ var decimalPos = intAndFraction.indexOf(numFormat.NumberDecimalSeparator);
+ if (decimalPos < 0) {
+ integer = intAndFraction;
+ fraction = null;
+ }
+ else {
+ integer = intAndFraction.substr(0, decimalPos);
+ fraction = intAndFraction.substr(decimalPos + numFormat.NumberDecimalSeparator.length);
+ }
+
+ integer = integer.split(numFormat.NumberGroupSeparator).join('');
+ var altNumGroupSeparator = numFormat.NumberGroupSeparator.replace(/\u00A0/g, " ");
+ if (numFormat.NumberGroupSeparator !== altNumGroupSeparator) {
+ integer = integer.split(altNumGroupSeparator).join('');
+ }
+
+ var p = sign + integer;
+ if (fraction !== null) {
+ p += '.' + fraction;
+ }
+ if (exponent !== null) {
+ var expSignInfo = Number._parseNumberNegativePattern(exponent, numFormat, 1);
+ if (expSignInfo[0] === '') {
+ expSignInfo[0] = '+';
+ }
+ p += 'e' + expSignInfo[0] + expSignInfo[1];
+ }
+ if (p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)) {
+ return parseFloat(p);
+ }
+ return Number.NaN;
+}
+Number._parseNumberNegativePattern = function Number$_parseNumberNegativePattern(value, numFormat, numberNegativePattern) {
+ var neg = numFormat.NegativeSign;
+ var pos = numFormat.PositiveSign;
+ switch (numberNegativePattern) {
+ case 4:
+ neg = ' ' + neg;
+ pos = ' ' + pos;
+ case 3:
+ if (value.endsWith(neg)) {
+ return ['-', value.substr(0, value.length - neg.length)];
+ }
+ else if (value.endsWith(pos)) {
+ return ['+', value.substr(0, value.length - pos.length)];
+ }
+ break;
+ case 2:
+ neg += ' ';
+ pos += ' ';
+ case 1:
+ if (value.startsWith(neg)) {
+ return ['-', value.substr(neg.length)];
+ }
+ else if (value.startsWith(pos)) {
+ return ['+', value.substr(pos.length)];
+ }
+ break;
+ case 0:
+ if (value.startsWith('(') && value.endsWith(')')) {
+ return ['-', value.substr(1, value.length - 2)];
+ }
+ break;
+ }
+ return ['', value];
+}
+Number.prototype.format = function Number$format(format) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "format", type: String}
+ ]);
+ if (e) throw e;
+ return this._toFormattedString(format, Sys.CultureInfo.InvariantCulture);
+}
+Number.prototype.localeFormat = function Number$localeFormat(format) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "format", type: String}
+ ]);
+ if (e) throw e;
+ return this._toFormattedString(format, Sys.CultureInfo.CurrentCulture);
+}
+Number.prototype._toFormattedString = function Number$_toFormattedString(format, cultureInfo) {
+ if (!format || (format.length === 0) || (format === 'i')) {
+ if (cultureInfo && (cultureInfo.name.length > 0)) {
+ return this.toLocaleString();
+ }
+ else {
+ return this.toString();
+ }
+ }
+
+ var _percentPositivePattern = ["n %", "n%", "%n" ];
+ var _percentNegativePattern = ["-n %", "-n%", "-%n"];
+ var _numberNegativePattern = ["(n)","-n","- n","n-","n -"];
+ var _currencyPositivePattern = ["$n","n$","$ n","n $"];
+ var _currencyNegativePattern = ["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];
+ function zeroPad(str, count, left) {
+ for (var l=str.length; l < count; l++) {
+ str = (left ? ('0' + str) : (str + '0'));
+ }
+ return str;
+ }
+
+ function expandNumber(number, precision, groupSizes, sep, decimalChar) {
+
+ var curSize = groupSizes[0];
+ var curGroupIndex = 1;
+ var factor = Math.pow(10, precision);
+ var rounded = (Math.round(number * factor) / factor);
+ if (!isFinite(rounded)) {
+ rounded = number;
+ }
+ number = rounded;
+
+ var numberString = number.toString();
+ var right = "";
+ var exponent;
+
+
+ var split = numberString.split(/e/i);
+ numberString = split[0];
+ exponent = (split.length > 1 ? parseInt(split[1]) : 0);
+ split = numberString.split('.');
+ numberString = split[0];
+ right = split.length > 1 ? split[1] : "";
+
+ var l;
+ if (exponent > 0) {
+ right = zeroPad(right, exponent, false);
+ numberString += right.slice(0, exponent);
+ right = right.substr(exponent);
+ }
+ else if (exponent < 0) {
+ exponent = -exponent;
+ numberString = zeroPad(numberString, exponent+1, true);
+ right = numberString.slice(-exponent, numberString.length) + right;
+ numberString = numberString.slice(0, -exponent);
+ }
+ if (precision > 0) {
+ if (right.length > precision) {
+ right = right.slice(0, precision);
+ }
+ else {
+ right = zeroPad(right, precision, false);
+ }
+ right = decimalChar + right;
+ }
+ else {
+ right = "";
+ }
+ var stringIndex = numberString.length-1;
+ var ret = "";
+ while (stringIndex >= 0) {
+ if (curSize === 0 || curSize > stringIndex) {
+ if (ret.length > 0)
+ return numberString.slice(0, stringIndex + 1) + sep + ret + right;
+ else
+ return numberString.slice(0, stringIndex + 1) + right;
+ }
+ if (ret.length > 0)
+ ret = numberString.slice(stringIndex - curSize + 1, stringIndex+1) + sep + ret;
+ else
+ ret = numberString.slice(stringIndex - curSize + 1, stringIndex+1);
+ stringIndex -= curSize;
+ if (curGroupIndex < groupSizes.length) {
+ curSize = groupSizes[curGroupIndex];
+ curGroupIndex++;
+ }
+ }
+ return numberString.slice(0, stringIndex + 1) + sep + ret + right;
+ }
+ var nf = cultureInfo.numberFormat;
+ var number = Math.abs(this);
+ if (!format)
+ format = "D";
+ var precision = -1;
+ if (format.length > 1) precision = parseInt(format.slice(1), 10);
+ var pattern;
+ switch (format.charAt(0)) {
+ case "d":
+ case "D":
+ pattern = 'n';
+ if (precision !== -1) {
+ number = zeroPad(""+number, precision, true);
+ }
+ if (this < 0) number = -number;
+ break;
+ case "c":
+ case "C":
+ if (this < 0) pattern = _currencyNegativePattern[nf.CurrencyNegativePattern];
+ else pattern = _currencyPositivePattern[nf.CurrencyPositivePattern];
+ if (precision === -1) precision = nf.CurrencyDecimalDigits;
+ number = expandNumber(Math.abs(this), precision, nf.CurrencyGroupSizes, nf.CurrencyGroupSeparator, nf.CurrencyDecimalSeparator);
+ break;
+ case "n":
+ case "N":
+ if (this < 0) pattern = _numberNegativePattern[nf.NumberNegativePattern];
+ else pattern = 'n';
+ if (precision === -1) precision = nf.NumberDecimalDigits;
+ number = expandNumber(Math.abs(this), precision, nf.NumberGroupSizes, nf.NumberGroupSeparator, nf.NumberDecimalSeparator);
+ break;
+ case "p":
+ case "P":
+ if (this < 0) pattern = _percentNegativePattern[nf.PercentNegativePattern];
+ else pattern = _percentPositivePattern[nf.PercentPositivePattern];
+ if (precision === -1) precision = nf.PercentDecimalDigits;
+ number = expandNumber(Math.abs(this) * 100, precision, nf.PercentGroupSizes, nf.PercentGroupSeparator, nf.PercentDecimalSeparator);
+ break;
+ default:
+ throw Error.format(Sys.Res.formatBadFormatSpecifier);
+ }
+ var regex = /n|\$|-|%/g;
+ var ret = "";
+ for (;;) {
+ var index = regex.lastIndex;
+ var ar = regex.exec(pattern);
+ ret += pattern.slice(index, ar ? ar.index : pattern.length);
+ if (!ar)
+ break;
+ switch (ar[0]) {
+ case "n":
+ ret += number;
+ break;
+ case "$":
+ ret += nf.CurrencySymbol;
+ break;
+ case "-":
+ ret += nf.NegativeSign;
+ break;
+ case "%":
+ ret += nf.PercentSymbol;
+ break;
+ }
+ }
+ return ret;
+}
+
+RegExp.__typeName = 'RegExp';
+RegExp.__class = true;
+
+Array.__typeName = 'Array';
+Array.__class = true;
+Array.add = Array.enqueue = function Array$enqueue(array, item) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true},
+ {name: "item", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ array[array.length] = item;
+}
+Array.addRange = function Array$addRange(array, items) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true},
+ {name: "items", type: Array, elementMayBeNull: true}
+ ]);
+ if (e) throw e;
+ array.push.apply(array, items);
+}
+Array.clear = function Array$clear(array) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true}
+ ]);
+ if (e) throw e;
+ array.length = 0;
+}
+Array.clone = function Array$clone(array) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true}
+ ]);
+ if (e) throw e;
+ if (array.length === 1) {
+ return [array[0]];
+ }
+ else {
+ return Array.apply(null, array);
+ }
+}
+Array.contains = function Array$contains(array, item) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true},
+ {name: "item", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ return (Array.indexOf(array, item) >= 0);
+}
+Array.dequeue = function Array$dequeue(array) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true}
+ ]);
+ if (e) throw e;
+ return array.shift();
+}
+Array.forEach = function Array$forEach(array, method, instance) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true},
+ {name: "method", type: Function},
+ {name: "instance", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ for (var i = 0, l = array.length; i < l; i++) {
+ var elt = array[i];
+ if (typeof(elt) !== 'undefined') method.call(instance, elt, i, array);
+ }
+}
+Array.indexOf = function Array$indexOf(array, item, start) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true},
+ {name: "item", mayBeNull: true, optional: true},
+ {name: "start", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ if (typeof(item) === "undefined") return -1;
+ var length = array.length;
+ if (length !== 0) {
+ start = start - 0;
+ if (isNaN(start)) {
+ start = 0;
+ }
+ else {
+ if (isFinite(start)) {
+ start = start - (start % 1);
+ }
+ if (start < 0) {
+ start = Math.max(0, length + start);
+ }
+ }
+ for (var i = start; i < length; i++) {
+ if ((typeof(array[i]) !== "undefined") && (array[i] === item)) {
+ return i;
+ }
+ }
+ }
+ return -1;
+}
+Array.insert = function Array$insert(array, index, item) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true},
+ {name: "index", mayBeNull: true},
+ {name: "item", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ array.splice(index, 0, item);
+}
+Array.parse = function Array$parse(value) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "value", type: String, mayBeNull: true}
+ ]);
+ if (e) throw e;
+ if (!value) return [];
+ var v = eval(value);
+ if (!Array.isInstanceOfType(v)) throw Error.argument('value', Sys.Res.arrayParseBadFormat);
+ return v;
+}
+Array.remove = function Array$remove(array, item) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true},
+ {name: "item", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ var index = Array.indexOf(array, item);
+ if (index >= 0) {
+ array.splice(index, 1);
+ }
+ return (index >= 0);
+}
+Array.removeAt = function Array$removeAt(array, index) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "array", type: Array, elementMayBeNull: true},
+ {name: "index", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ array.splice(index, 1);
+}
+
+if (!window) this.window = this;
+window.Type = Function;
+Type.__fullyQualifiedIdentifierRegExp = new RegExp("^[^.0-9 \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]([^ \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*[^. \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\])?$", "i");
+Type.__identifierRegExp = new RegExp("^[^.0-9 \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\][^. \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*$", "i");
+Type.prototype.callBaseMethod = function Type$callBaseMethod(instance, name, baseArguments) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "instance"},
+ {name: "name", type: String},
+ {name: "baseArguments", type: Array, mayBeNull: true, optional: true, elementMayBeNull: true}
+ ]);
+ if (e) throw e;
+ var baseMethod = this.getBaseMethod(instance, name);
+ if (!baseMethod) throw Error.invalidOperation(String.format(Sys.Res.methodNotFound, name));
+ if (!baseArguments) {
+ return baseMethod.apply(instance);
+ }
+ else {
+ return baseMethod.apply(instance, baseArguments);
+ }
+}
+Type.prototype.getBaseMethod = function Type$getBaseMethod(instance, name) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "instance"},
+ {name: "name", type: String}
+ ]);
+ if (e) throw e;
+ if (!this.isInstanceOfType(instance)) throw Error.argumentType('instance', Object.getType(instance), this);
+ var baseType = this.getBaseType();
+ if (baseType) {
+ var baseMethod = baseType.prototype[name];
+ return (baseMethod instanceof Function) ? baseMethod : null;
+ }
+ return null;
+}
+Type.prototype.getBaseType = function Type$getBaseType() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return (typeof(this.__baseType) === "undefined") ? null : this.__baseType;
+}
+Type.prototype.getInterfaces = function Type$getInterfaces() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ var result = [];
+ var type = this;
+ while(type) {
+ var interfaces = type.__interfaces;
+ if (interfaces) {
+ for (var i = 0, l = interfaces.length; i < l; i++) {
+ var interfaceType = interfaces[i];
+ if (!Array.contains(result, interfaceType)) {
+ result[result.length] = interfaceType;
+ }
+ }
+ }
+ type = type.__baseType;
+ }
+ return result;
+}
+Type.prototype.getName = function Type$getName() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return (typeof(this.__typeName) === "undefined") ? "" : this.__typeName;
+}
+Type.prototype.implementsInterface = function Type$implementsInterface(interfaceType) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "interfaceType", type: Type}
+ ]);
+ if (e) throw e;
+ this.resolveInheritance();
+ var interfaceName = interfaceType.getName();
+ var cache = this.__interfaceCache;
+ if (cache) {
+ var cacheEntry = cache[interfaceName];
+ if (typeof(cacheEntry) !== 'undefined') return cacheEntry;
+ }
+ else {
+ cache = this.__interfaceCache = {};
+ }
+ var baseType = this;
+ while (baseType) {
+ var interfaces = baseType.__interfaces;
+ if (interfaces) {
+ if (Array.indexOf(interfaces, interfaceType) !== -1) {
+ return cache[interfaceName] = true;
+ }
+ }
+ baseType = baseType.__baseType;
+ }
+ return cache[interfaceName] = false;
+}
+Type.prototype.inheritsFrom = function Type$inheritsFrom(parentType) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "parentType", type: Type}
+ ]);
+ if (e) throw e;
+ this.resolveInheritance();
+ var baseType = this.__baseType;
+ while (baseType) {
+ if (baseType === parentType) {
+ return true;
+ }
+ baseType = baseType.__baseType;
+ }
+ return false;
+}
+Type.prototype.initializeBase = function Type$initializeBase(instance, baseArguments) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "instance"},
+ {name: "baseArguments", type: Array, mayBeNull: true, optional: true, elementMayBeNull: true}
+ ]);
+ if (e) throw e;
+ if (!this.isInstanceOfType(instance)) throw Error.argumentType('instance', Object.getType(instance), this);
+ this.resolveInheritance();
+ if (this.__baseType) {
+ if (!baseArguments) {
+ this.__baseType.apply(instance);
+ }
+ else {
+ this.__baseType.apply(instance, baseArguments);
+ }
+ }
+ return instance;
+}
+Type.prototype.isImplementedBy = function Type$isImplementedBy(instance) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "instance", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ if (typeof(instance) === "undefined" || instance === null) return false;
+ var instanceType = Object.getType(instance);
+ return !!(instanceType.implementsInterface && instanceType.implementsInterface(this));
+}
+Type.prototype.isInstanceOfType = function Type$isInstanceOfType(instance) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "instance", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ if (typeof(instance) === "undefined" || instance === null) return false;
+ if (instance instanceof this) return true;
+ var instanceType = Object.getType(instance);
+ return !!(instanceType === this) ||
+ (instanceType.inheritsFrom && instanceType.inheritsFrom(this)) ||
+ (instanceType.implementsInterface && instanceType.implementsInterface(this));
+}
+Type.prototype.registerClass = function Type$registerClass(typeName, baseType, interfaceTypes) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "typeName", type: String},
+ {name: "baseType", type: Type, mayBeNull: true, optional: true},
+ {name: "interfaceTypes", type: Type, parameterArray: true}
+ ]);
+ if (e) throw e;
+ if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw Error.argument('typeName', Sys.Res.notATypeName);
+ var parsedName;
+ try {
+ parsedName = eval(typeName);
+ }
+ catch(e) {
+ throw Error.argument('typeName', Sys.Res.argumentTypeName);
+ }
+ if (parsedName !== this) throw Error.argument('typeName', Sys.Res.badTypeName);
+ if (Sys.__registeredTypes[typeName]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, typeName));
+ if ((arguments.length > 1) && (typeof(baseType) === 'undefined')) throw Error.argumentUndefined('baseType');
+ if (baseType && !baseType.__class) throw Error.argument('baseType', Sys.Res.baseNotAClass);
+ this.prototype.constructor = this;
+ this.__typeName = typeName;
+ this.__class = true;
+ if (baseType) {
+ this.__baseType = baseType;
+ this.__basePrototypePending = true;
+ }
+ Sys.__upperCaseTypes[typeName.toUpperCase()] = this;
+ if (interfaceTypes) {
+ this.__interfaces = [];
+ this.resolveInheritance();
+ for (var i = 2, l = arguments.length; i < l; i++) {
+ var interfaceType = arguments[i];
+ if (!interfaceType.__interface) throw Error.argument('interfaceTypes[' + (i - 2) + ']', Sys.Res.notAnInterface);
+ for (var methodName in interfaceType.prototype) {
+ var method = interfaceType.prototype[methodName];
+ if (!this.prototype[methodName]) {
+ this.prototype[methodName] = method;
+ }
+ }
+ this.__interfaces.push(interfaceType);
+ }
+ }
+ Sys.__registeredTypes[typeName] = true;
+ return this;
+}
+Type.prototype.registerInterface = function Type$registerInterface(typeName) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "typeName", type: String}
+ ]);
+ if (e) throw e;
+ if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw Error.argument('typeName', Sys.Res.notATypeName);
+ var parsedName;
+ try {
+ parsedName = eval(typeName);
+ }
+ catch(e) {
+ throw Error.argument('typeName', Sys.Res.argumentTypeName);
+ }
+ if (parsedName !== this) throw Error.argument('typeName', Sys.Res.badTypeName);
+ if (Sys.__registeredTypes[typeName]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, typeName));
+ Sys.__upperCaseTypes[typeName.toUpperCase()] = this;
+ this.prototype.constructor = this;
+ this.__typeName = typeName;
+ this.__interface = true;
+ Sys.__registeredTypes[typeName] = true;
+ return this;
+}
+Type.prototype.resolveInheritance = function Type$resolveInheritance() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (this.__basePrototypePending) {
+ var baseType = this.__baseType;
+ baseType.resolveInheritance();
+ for (var memberName in baseType.prototype) {
+ var memberValue = baseType.prototype[memberName];
+ if (!this.prototype[memberName]) {
+ this.prototype[memberName] = memberValue;
+ }
+ }
+ delete this.__basePrototypePending;
+ }
+}
+Type.getRootNamespaces = function Type$getRootNamespaces() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return Array.clone(Sys.__rootNamespaces);
+}
+Type.isClass = function Type$isClass(type) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "type", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ if ((typeof(type) === 'undefined') || (type === null)) return false;
+ return !!type.__class;
+}
+Type.isInterface = function Type$isInterface(type) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "type", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ if ((typeof(type) === 'undefined') || (type === null)) return false;
+ return !!type.__interface;
+}
+Type.isNamespace = function Type$isNamespace(object) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "object", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ if ((typeof(object) === 'undefined') || (object === null)) return false;
+ return !!object.__namespace;
+}
+Type.parse = function Type$parse(typeName, ns) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "typeName", type: String, mayBeNull: true},
+ {name: "ns", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var fn;
+ if (ns) {
+ fn = Sys.__upperCaseTypes[ns.getName().toUpperCase() + '.' + typeName.toUpperCase()];
+ return fn || null;
+ }
+ if (!typeName) return null;
+ if (!Type.__htClasses) {
+ Type.__htClasses = {};
+ }
+ fn = Type.__htClasses[typeName];
+ if (!fn) {
+ fn = eval(typeName);
+ if (typeof(fn) !== 'function') throw Error.argument('typeName', Sys.Res.notATypeName);
+ Type.__htClasses[typeName] = fn;
+ }
+ return fn;
+}
+Type.registerNamespace = function Type$registerNamespace(namespacePath) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "namespacePath", type: String}
+ ]);
+ if (e) throw e;
+ if (!Type.__fullyQualifiedIdentifierRegExp.test(namespacePath)) throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
+ var rootObject = window;
+ var namespaceParts = namespacePath.split('.');
+ for (var i = 0; i < namespaceParts.length; i++) {
+ var currentPart = namespaceParts[i];
+ var ns = rootObject[currentPart];
+ if (ns && !ns.__namespace) {
+ throw Error.invalidOperation(String.format(Sys.Res.namespaceContainsObject, namespaceParts.splice(0, i + 1).join('.')));
+ }
+ if (!ns) {
+ ns = rootObject[currentPart] = {
+ __namespace: true,
+ __typeName: namespaceParts.slice(0, i + 1).join('.')
+ };
+ if (i === 0) {
+ Sys.__rootNamespaces[Sys.__rootNamespaces.length] = ns;
+ }
+ var parsedName;
+ try {
+ parsedName = eval(ns.__typeName);
+ }
+ catch(e) {
+ parsedName = null;
+ }
+ if (parsedName !== ns) {
+ delete rootObject[currentPart];
+ throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
+ }
+ ns.getName = function ns$getName() {return this.__typeName;}
+ }
+ rootObject = ns;
+ }
+}
+window.Sys = {
+ __namespace: true,
+ __typeName: "Sys",
+ getName: function() {return "Sys";},
+ __upperCaseTypes: {}
+};
+Sys.__rootNamespaces = [Sys];
+Sys.__registeredTypes = {};
+
+Sys.IDisposable = function Sys$IDisposable() {
+ throw Error.notImplemented();
+}
+ function Sys$IDisposable$dispose() {
+ throw Error.notImplemented();
+ }
+Sys.IDisposable.prototype = {
+ dispose: Sys$IDisposable$dispose
+}
+Sys.IDisposable.registerInterface('Sys.IDisposable');
+
+Sys.StringBuilder = function Sys$StringBuilder(initialText) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "initialText", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ this._parts = (typeof(initialText) !== 'undefined' && initialText !== null && initialText !== '') ?
+ [initialText.toString()] : [];
+ this._value = {};
+ this._len = 0;
+}
+ function Sys$StringBuilder$append(text) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "text", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ this._parts[this._parts.length] = text;
+ }
+ function Sys$StringBuilder$appendLine(text) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "text", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ this._parts[this._parts.length] =
+ ((typeof(text) === 'undefined') || (text === null) || (text === '')) ?
+ '\r\n' : text + '\r\n';
+ }
+ function Sys$StringBuilder$clear() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ this._parts = [];
+ this._value = {};
+ this._len = 0;
+ }
+ function Sys$StringBuilder$isEmpty() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (this._parts.length === 0) return true;
+ return this.toString() === '';
+ }
+ function Sys$StringBuilder$toString(separator) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "separator", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ separator = separator || '';
+ var parts = this._parts;
+ if (this._len !== parts.length) {
+ this._value = {};
+ this._len = parts.length;
+ }
+ var val = this._value;
+ if (typeof(val[separator]) === 'undefined') {
+ if (separator !== '') {
+ for (var i = 0; i < parts.length;) {
+ if ((typeof(parts[i]) === 'undefined') || (parts[i] === '') || (parts[i] === null)) {
+ parts.splice(i, 1);
+ }
+ else {
+ i++;
+ }
+ }
+ }
+ val[separator] = this._parts.join(separator);
+ }
+ return val[separator];
+ }
+Sys.StringBuilder.prototype = {
+ append: Sys$StringBuilder$append,
+ appendLine: Sys$StringBuilder$appendLine,
+ clear: Sys$StringBuilder$clear,
+ isEmpty: Sys$StringBuilder$isEmpty,
+ toString: Sys$StringBuilder$toString
+}
+Sys.StringBuilder.registerClass('Sys.StringBuilder');
+
+if (!window.XMLHttpRequest) {
+ window.XMLHttpRequest = function window$XMLHttpRequest() {
+ var progIDs = [ 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP' ];
+ for (var i = 0, l = progIDs.length; i < l; i++) {
+ try {
+ return new ActiveXObject(progIDs[i]);
+ }
+ catch (ex) {
+ }
+ }
+ return null;
+ }
+}
+
+Sys.Browser = {};
+Sys.Browser.InternetExplorer = {};
+Sys.Browser.Firefox = {};
+Sys.Browser.Safari = {};
+Sys.Browser.Opera = {};
+Sys.Browser.agent = null;
+Sys.Browser.hasDebuggerStatement = false;
+Sys.Browser.name = navigator.appName;
+Sys.Browser.version = parseFloat(navigator.appVersion);
+Sys.Browser.documentMode = 0;
+if (navigator.userAgent.indexOf(' MSIE ') > -1) {
+ Sys.Browser.agent = Sys.Browser.InternetExplorer;
+ Sys.Browser.version = parseFloat(navigator.userAgent.match(/MSIE (\d+\.\d+)/)[1]);
+ if (Sys.Browser.version >= 8) {
+ if (document.documentMode >= 7) {
+ Sys.Browser.documentMode = document.documentMode;
+ }
+ }
+ Sys.Browser.hasDebuggerStatement = true;
+}
+else if (navigator.userAgent.indexOf(' Firefox/') > -1) {
+ Sys.Browser.agent = Sys.Browser.Firefox;
+ Sys.Browser.version = parseFloat(navigator.userAgent.match(/ Firefox\/(\d+\.\d+)/)[1]);
+ Sys.Browser.name = 'Firefox';
+ Sys.Browser.hasDebuggerStatement = true;
+}
+else if (navigator.userAgent.indexOf(' AppleWebKit/') > -1) {
+ Sys.Browser.agent = Sys.Browser.Safari;
+ Sys.Browser.version = parseFloat(navigator.userAgent.match(/ AppleWebKit\/(\d+(\.\d+)?)/)[1]);
+ Sys.Browser.name = 'Safari';
+}
+else if (navigator.userAgent.indexOf('Opera/') > -1) {
+ Sys.Browser.agent = Sys.Browser.Opera;
+}
+Type.registerNamespace('Sys.UI');
+
+Sys._Debug = function Sys$_Debug() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+}
+ function Sys$_Debug$_appendConsole(text) {
+ if ((typeof(Debug) !== 'undefined') && Debug.writeln) {
+ Debug.writeln(text);
+ }
+ if (window.console && window.console.log) {
+ window.console.log(text);
+ }
+ if (window.opera) {
+ window.opera.postError(text);
+ }
+ if (window.debugService) {
+ window.debugService.trace(text);
+ }
+ }
+ function Sys$_Debug$_appendTrace(text) {
+ var traceElement = document.getElementById('TraceConsole');
+ if (traceElement && (traceElement.tagName.toUpperCase() === 'TEXTAREA')) {
+ traceElement.value += text + '\n';
+ }
+ }
+ function Sys$_Debug$assert(condition, message, displayCaller) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "condition", type: Boolean},
+ {name: "message", type: String, mayBeNull: true, optional: true},
+ {name: "displayCaller", type: Boolean, optional: true}
+ ]);
+ if (e) throw e;
+ if (!condition) {
+ message = (displayCaller && this.assert.caller) ?
+ String.format(Sys.Res.assertFailedCaller, message, this.assert.caller) :
+ String.format(Sys.Res.assertFailed, message);
+ if (confirm(String.format(Sys.Res.breakIntoDebugger, message))) {
+ this.fail(message);
+ }
+ }
+ }
+ function Sys$_Debug$clearTrace() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ var traceElement = document.getElementById('TraceConsole');
+ if (traceElement && (traceElement.tagName.toUpperCase() === 'TEXTAREA')) {
+ traceElement.value = '';
+ }
+ }
+ function Sys$_Debug$fail(message) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "message", type: String, mayBeNull: true}
+ ]);
+ if (e) throw e;
+ this._appendConsole(message);
+ if (Sys.Browser.hasDebuggerStatement) {
+ eval('debugger');
+ }
+ }
+ function Sys$_Debug$trace(text) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "text"}
+ ]);
+ if (e) throw e;
+ this._appendConsole(text);
+ this._appendTrace(text);
+ }
+ function Sys$_Debug$traceDump(object, name) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "object", mayBeNull: true},
+ {name: "name", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var text = this._traceDump(object, name, true);
+ }
+ function Sys$_Debug$_traceDump(object, name, recursive, indentationPadding, loopArray) {
+ name = name? name : 'traceDump';
+ indentationPadding = indentationPadding? indentationPadding : '';
+ if (object === null) {
+ this.trace(indentationPadding + name + ': null');
+ return;
+ }
+ switch(typeof(object)) {
+ case 'undefined':
+ this.trace(indentationPadding + name + ': Undefined');
+ break;
+ case 'number': case 'string': case 'boolean':
+ this.trace(indentationPadding + name + ': ' + object);
+ break;
+ default:
+ if (Date.isInstanceOfType(object) || RegExp.isInstanceOfType(object)) {
+ this.trace(indentationPadding + name + ': ' + object.toString());
+ break;
+ }
+ if (!loopArray) {
+ loopArray = [];
+ }
+ else if (Array.contains(loopArray, object)) {
+ this.trace(indentationPadding + name + ': ...');
+ return;
+ }
+ Array.add(loopArray, object);
+ if ((object == window) || (object === document) ||
+ (window.HTMLElement && (object instanceof HTMLElement)) ||
+ (typeof(object.nodeName) === 'string')) {
+ var tag = object.tagName? object.tagName : 'DomElement';
+ if (object.id) {
+ tag += ' - ' + object.id;
+ }
+ this.trace(indentationPadding + name + ' {' + tag + '}');
+ }
+ else {
+ var typeName = Object.getTypeName(object);
+ this.trace(indentationPadding + name + (typeof(typeName) === 'string' ? ' {' + typeName + '}' : ''));
+ if ((indentationPadding === '') || recursive) {
+ indentationPadding += " ";
+ var i, length, properties, p, v;
+ if (Array.isInstanceOfType(object)) {
+ length = object.length;
+ for (i = 0; i < length; i++) {
+ this._traceDump(object[i], '[' + i + ']', recursive, indentationPadding, loopArray);
+ }
+ }
+ else {
+ for (p in object) {
+ v = object[p];
+ if (!Function.isInstanceOfType(v)) {
+ this._traceDump(v, p, recursive, indentationPadding, loopArray);
+ }
+ }
+ }
+ }
+ }
+ Array.remove(loopArray, object);
+ }
+ }
+Sys._Debug.prototype = {
+ _appendConsole: Sys$_Debug$_appendConsole,
+ _appendTrace: Sys$_Debug$_appendTrace,
+ assert: Sys$_Debug$assert,
+ clearTrace: Sys$_Debug$clearTrace,
+ fail: Sys$_Debug$fail,
+ trace: Sys$_Debug$trace,
+ traceDump: Sys$_Debug$traceDump,
+ _traceDump: Sys$_Debug$_traceDump
+}
+Sys._Debug.registerClass('Sys._Debug');
+Sys.Debug = new Sys._Debug();
+ Sys.Debug.isDebug = true;
+
+function Sys$Enum$parse(value, ignoreCase) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "value", type: String},
+ {name: "ignoreCase", type: Boolean, optional: true}
+ ]);
+ if (e) throw e;
+ var values, parsed, val;
+ if (ignoreCase) {
+ values = this.__lowerCaseValues;
+ if (!values) {
+ this.__lowerCaseValues = values = {};
+ var prototype = this.prototype;
+ for (var name in prototype) {
+ values[name.toLowerCase()] = prototype[name];
+ }
+ }
+ }
+ else {
+ values = this.prototype;
+ }
+ if (!this.__flags) {
+ val = (ignoreCase ? value.toLowerCase() : value);
+ parsed = values[val.trim()];
+ if (typeof(parsed) !== 'number') throw Error.argument('value', String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
+ return parsed;
+ }
+ else {
+ var parts = (ignoreCase ? value.toLowerCase() : value).split(',');
+ var v = 0;
+ for (var i = parts.length - 1; i >= 0; i--) {
+ var part = parts[i].trim();
+ parsed = values[part];
+ if (typeof(parsed) !== 'number') throw Error.argument('value', String.format(Sys.Res.enumInvalidValue, value.split(',')[i].trim(), this.__typeName));
+ v |= parsed;
+ }
+ return v;
+ }
+}
+function Sys$Enum$toString(value) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "value", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ if ((typeof(value) === 'undefined') || (value === null)) return this.__string;
+ if ((typeof(value) != 'number') || ((value % 1) !== 0)) throw Error.argumentType('value', Object.getType(value), this);
+ var values = this.prototype;
+ var i;
+ if (!this.__flags || (value === 0)) {
+ for (i in values) {
+ if (values[i] === value) {
+ return i;
+ }
+ }
+ }
+ else {
+ var sorted = this.__sortedValues;
+ if (!sorted) {
+ sorted = [];
+ for (i in values) {
+ sorted[sorted.length] = {key: i, value: values[i]};
+ }
+ sorted.sort(function(a, b) {
+ return a.value - b.value;
+ });
+ this.__sortedValues = sorted;
+ }
+ var parts = [];
+ var v = value;
+ for (i = sorted.length - 1; i >= 0; i--) {
+ var kvp = sorted[i];
+ var vali = kvp.value;
+ if (vali === 0) continue;
+ if ((vali & value) === vali) {
+ parts[parts.length] = kvp.key;
+ v -= vali;
+ if (v === 0) break;
+ }
+ }
+ if (parts.length && v === 0) return parts.reverse().join(', ');
+ }
+ throw Error.argumentOutOfRange('value', value, String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
+}
+Type.prototype.registerEnum = function Type$registerEnum(name, flags) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "name", type: String},
+ {name: "flags", type: Boolean, optional: true}
+ ]);
+ if (e) throw e;
+ if (!Type.__fullyQualifiedIdentifierRegExp.test(name)) throw Error.argument('name', Sys.Res.notATypeName);
+ var parsedName;
+ try {
+ parsedName = eval(name);
+ }
+ catch(e) {
+ throw Error.argument('name', Sys.Res.argumentTypeName);
+ }
+ if (parsedName !== this) throw Error.argument('name', Sys.Res.badTypeName);
+ if (Sys.__registeredTypes[name]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, name));
+ for (var i in this.prototype) {
+ var val = this.prototype[i];
+ if (!Type.__identifierRegExp.test(i)) throw Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, i));
+ if (typeof(val) !== 'number' || (val % 1) !== 0) throw Error.invalidOperation(Sys.Res.enumValueNotInteger);
+ if (typeof(this[i]) !== 'undefined') throw Error.invalidOperation(String.format(Sys.Res.enumReservedName, i));
+ }
+ Sys.__upperCaseTypes[name.toUpperCase()] = this;
+ for (var i in this.prototype) {
+ this[i] = this.prototype[i];
+ }
+ this.__typeName = name;
+ this.parse = Sys$Enum$parse;
+ this.__string = this.toString();
+ this.toString = Sys$Enum$toString;
+ this.__flags = flags;
+ this.__enum = true;
+ Sys.__registeredTypes[name] = true;
+}
+Type.isEnum = function Type$isEnum(type) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "type", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ if ((typeof(type) === 'undefined') || (type === null)) return false;
+ return !!type.__enum;
+}
+Type.isFlags = function Type$isFlags(type) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "type", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ if ((typeof(type) === 'undefined') || (type === null)) return false;
+ return !!type.__flags;
+}
+
+Sys.EventHandlerList = function Sys$EventHandlerList() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ this._list = {};
+}
+ function Sys$EventHandlerList$addHandler(id, handler) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "id", type: String},
+ {name: "handler", type: Function}
+ ]);
+ if (e) throw e;
+ Array.add(this._getEvent(id, true), handler);
+ }
+ function Sys$EventHandlerList$removeHandler(id, handler) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "id", type: String},
+ {name: "handler", type: Function}
+ ]);
+ if (e) throw e;
+ var evt = this._getEvent(id);
+ if (!evt) return;
+ Array.remove(evt, handler);
+ }
+ function Sys$EventHandlerList$getHandler(id) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "id", type: String}
+ ]);
+ if (e) throw e;
+ var evt = this._getEvent(id);
+ if (!evt || (evt.length === 0)) return null;
+ evt = Array.clone(evt);
+ return function(source, args) {
+ for (var i = 0, l = evt.length; i < l; i++) {
+ evt[i](source, args);
+ }
+ };
+ }
+ function Sys$EventHandlerList$_getEvent(id, create) {
+ if (!this._list[id]) {
+ if (!create) return null;
+ this._list[id] = [];
+ }
+ return this._list[id];
+ }
+Sys.EventHandlerList.prototype = {
+ addHandler: Sys$EventHandlerList$addHandler,
+ removeHandler: Sys$EventHandlerList$removeHandler,
+ getHandler: Sys$EventHandlerList$getHandler,
+ _getEvent: Sys$EventHandlerList$_getEvent
+}
+Sys.EventHandlerList.registerClass('Sys.EventHandlerList');
+
+Sys.EventArgs = function Sys$EventArgs() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+}
+Sys.EventArgs.registerClass('Sys.EventArgs');
+Sys.EventArgs.Empty = new Sys.EventArgs();
+
+Sys.CancelEventArgs = function Sys$CancelEventArgs() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ Sys.CancelEventArgs.initializeBase(this);
+ this._cancel = false;
+}
+ function Sys$CancelEventArgs$get_cancel() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._cancel;
+ }
+ function Sys$CancelEventArgs$set_cancel(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
+ if (e) throw e;
+ this._cancel = value;
+ }
+Sys.CancelEventArgs.prototype = {
+ get_cancel: Sys$CancelEventArgs$get_cancel,
+ set_cancel: Sys$CancelEventArgs$set_cancel
+}
+Sys.CancelEventArgs.registerClass('Sys.CancelEventArgs', Sys.EventArgs);
+
+Sys.INotifyPropertyChange = function Sys$INotifyPropertyChange() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+}
+ function Sys$INotifyPropertyChange$add_propertyChanged(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ throw Error.notImplemented();
+ }
+ function Sys$INotifyPropertyChange$remove_propertyChanged(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ throw Error.notImplemented();
+ }
+Sys.INotifyPropertyChange.prototype = {
+ add_propertyChanged: Sys$INotifyPropertyChange$add_propertyChanged,
+ remove_propertyChanged: Sys$INotifyPropertyChange$remove_propertyChanged
+}
+Sys.INotifyPropertyChange.registerInterface('Sys.INotifyPropertyChange');
+
+Sys.PropertyChangedEventArgs = function Sys$PropertyChangedEventArgs(propertyName) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "propertyName", type: String}
+ ]);
+ if (e) throw e;
+ Sys.PropertyChangedEventArgs.initializeBase(this);
+ this._propertyName = propertyName;
+}
+
+ function Sys$PropertyChangedEventArgs$get_propertyName() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._propertyName;
+ }
+Sys.PropertyChangedEventArgs.prototype = {
+ get_propertyName: Sys$PropertyChangedEventArgs$get_propertyName
+}
+Sys.PropertyChangedEventArgs.registerClass('Sys.PropertyChangedEventArgs', Sys.EventArgs);
+
+Sys.INotifyDisposing = function Sys$INotifyDisposing() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+}
+ function Sys$INotifyDisposing$add_disposing(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ throw Error.notImplemented();
+ }
+ function Sys$INotifyDisposing$remove_disposing(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ throw Error.notImplemented();
+ }
+Sys.INotifyDisposing.prototype = {
+ add_disposing: Sys$INotifyDisposing$add_disposing,
+ remove_disposing: Sys$INotifyDisposing$remove_disposing
+}
+Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing");
+
+Sys.Component = function Sys$Component() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (Sys.Application) Sys.Application.registerDisposableObject(this);
+}
+ function Sys$Component$get_events() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._events) {
+ this._events = new Sys.EventHandlerList();
+ }
+ return this._events;
+ }
+ function Sys$Component$get_id() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._id;
+ }
+ function Sys$Component$set_id(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: String}]);
+ if (e) throw e;
+ if (this._idSet) throw Error.invalidOperation(Sys.Res.componentCantSetIdTwice);
+ this._idSet = true;
+ var oldId = this.get_id();
+ if (oldId && Sys.Application.findComponent(oldId)) throw Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp);
+ this._id = value;
+ }
+ function Sys$Component$get_isInitialized() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._initialized;
+ }
+ function Sys$Component$get_isUpdating() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._updating;
+ }
+ function Sys$Component$add_disposing(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().addHandler("disposing", handler);
+ }
+ function Sys$Component$remove_disposing(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().removeHandler("disposing", handler);
+ }
+ function Sys$Component$add_propertyChanged(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().addHandler("propertyChanged", handler);
+ }
+ function Sys$Component$remove_propertyChanged(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().removeHandler("propertyChanged", handler);
+ }
+ function Sys$Component$beginUpdate() {
+ this._updating = true;
+ }
+ function Sys$Component$dispose() {
+ if (this._events) {
+ var handler = this._events.getHandler("disposing");
+ if (handler) {
+ handler(this, Sys.EventArgs.Empty);
+ }
+ }
+ delete this._events;
+ Sys.Application.unregisterDisposableObject(this);
+ Sys.Application.removeComponent(this);
+ }
+ function Sys$Component$endUpdate() {
+ this._updating = false;
+ if (!this._initialized) this.initialize();
+ this.updated();
+ }
+ function Sys$Component$initialize() {
+ this._initialized = true;
+ }
+ function Sys$Component$raisePropertyChanged(propertyName) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "propertyName", type: String}
+ ]);
+ if (e) throw e;
+ if (!this._events) return;
+ var handler = this._events.getHandler("propertyChanged");
+ if (handler) {
+ handler(this, new Sys.PropertyChangedEventArgs(propertyName));
+ }
+ }
+ function Sys$Component$updated() {
+ }
+Sys.Component.prototype = {
+ _id: null,
+ _idSet: false,
+ _initialized: false,
+ _updating: false,
+ get_events: Sys$Component$get_events,
+ get_id: Sys$Component$get_id,
+ set_id: Sys$Component$set_id,
+ get_isInitialized: Sys$Component$get_isInitialized,
+ get_isUpdating: Sys$Component$get_isUpdating,
+ add_disposing: Sys$Component$add_disposing,
+ remove_disposing: Sys$Component$remove_disposing,
+ add_propertyChanged: Sys$Component$add_propertyChanged,
+ remove_propertyChanged: Sys$Component$remove_propertyChanged,
+ beginUpdate: Sys$Component$beginUpdate,
+ dispose: Sys$Component$dispose,
+ endUpdate: Sys$Component$endUpdate,
+ initialize: Sys$Component$initialize,
+ raisePropertyChanged: Sys$Component$raisePropertyChanged,
+ updated: Sys$Component$updated
+}
+Sys.Component.registerClass('Sys.Component', null, Sys.IDisposable, Sys.INotifyPropertyChange, Sys.INotifyDisposing);
+function Sys$Component$_setProperties(target, properties) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "target"},
+ {name: "properties"}
+ ]);
+ if (e) throw e;
+ var current;
+ var targetType = Object.getType(target);
+ var isObject = (targetType === Object) || (targetType === Sys.UI.DomElement);
+ var isComponent = Sys.Component.isInstanceOfType(target) && !target.get_isUpdating();
+ if (isComponent) target.beginUpdate();
+ for (var name in properties) {
+ var val = properties[name];
+ var getter = isObject ? null : target["get_" + name];
+ if (isObject || typeof(getter) !== 'function') {
+ var targetVal = target[name];
+ if (!isObject && typeof(targetVal) === 'undefined') throw Error.invalidOperation(String.format(Sys.Res.propertyUndefined, name));
+ if (!val || (typeof(val) !== 'object') || (isObject && !targetVal)) {
+ target[name] = val;
+ }
+ else {
+ Sys$Component$_setProperties(targetVal, val);
+ }
+ }
+ else {
+ var setter = target["set_" + name];
+ if (typeof(setter) === 'function') {
+ setter.apply(target, [val]);
+ }
+ else if (val instanceof Array) {
+ current = getter.apply(target);
+ if (!(current instanceof Array)) throw new Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name));
+ for (var i = 0, j = current.length, l= val.length; i < l; i++, j++) {
+ current[j] = val[i];
+ }
+ }
+ else if ((typeof(val) === 'object') && (Object.getType(val) === Object)) {
+ current = getter.apply(target);
+ if ((typeof(current) === 'undefined') || (current === null)) throw new Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, name));
+ Sys$Component$_setProperties(current, val);
+ }
+ else {
+ throw new Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, name));
+ }
+ }
+ }
+ if (isComponent) target.endUpdate();
+}
+function Sys$Component$_setReferences(component, references) {
+ for (var name in references) {
+ var setter = component["set_" + name];
+ var reference = $find(references[name]);
+ if (typeof(setter) !== 'function') throw new Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, name));
+ if (!reference) throw Error.invalidOperation(String.format(Sys.Res.referenceNotFound, references[name]));
+ setter.apply(component, [reference]);
+ }
+}
+var $create = Sys.Component.create = function Sys$Component$create(type, properties, events, references, element) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "type", type: Type},
+ {name: "properties", mayBeNull: true, optional: true},
+ {name: "events", mayBeNull: true, optional: true},
+ {name: "references", mayBeNull: true, optional: true},
+ {name: "element", mayBeNull: true, domElement: true, optional: true}
+ ]);
+ if (e) throw e;
+ if (!type.inheritsFrom(Sys.Component)) {
+ throw Error.argument('type', String.format(Sys.Res.createNotComponent, type.getName()));
+ }
+ if (type.inheritsFrom(Sys.UI.Behavior) || type.inheritsFrom(Sys.UI.Control)) {
+ if (!element) throw Error.argument('element', Sys.Res.createNoDom);
+ }
+ else if (element) throw Error.argument('element', Sys.Res.createComponentOnDom);
+ var component = (element ? new type(element): new type());
+ var app = Sys.Application;
+ var creatingComponents = app.get_isCreatingComponents();
+ component.beginUpdate();
+ if (properties) {
+ Sys$Component$_setProperties(component, properties);
+ }
+ if (events) {
+ for (var name in events) {
+ if (!(component["add_" + name] instanceof Function)) throw new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name));
+ if (!(events[name] instanceof Function)) throw new Error.invalidOperation(Sys.Res.eventHandlerNotFunction);
+ component["add_" + name](events[name]);
+ }
+ }
+ if (component.get_id()) {
+ app.addComponent(component);
+ }
+ if (creatingComponents) {
+ app._createdComponents[app._createdComponents.length] = component;
+ if (references) {
+ app._addComponentToSecondPass(component, references);
+ }
+ else {
+ component.endUpdate();
+ }
+ }
+ else {
+ if (references) {
+ Sys$Component$_setReferences(component, references);
+ }
+ component.endUpdate();
+ }
+ return component;
+}
+
+Sys.UI.MouseButton = function Sys$UI$MouseButton() {
+ ///
+ ///
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+}
+Sys.UI.MouseButton.prototype = {
+ leftButton: 0,
+ middleButton: 1,
+ rightButton: 2
+}
+Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton");
+
+Sys.UI.Key = function Sys$UI$Key() {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+}
+Sys.UI.Key.prototype = {
+ backspace: 8,
+ tab: 9,
+ enter: 13,
+ esc: 27,
+ space: 32,
+ pageUp: 33,
+ pageDown: 34,
+ end: 35,
+ home: 36,
+ left: 37,
+ up: 38,
+ right: 39,
+ down: 40,
+ del: 127
+}
+Sys.UI.Key.registerEnum("Sys.UI.Key");
+
+Sys.UI.Point = function Sys$UI$Point(x, y) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "x", type: Number, integer: true},
+ {name: "y", type: Number, integer: true}
+ ]);
+ if (e) throw e;
+ this.x = x;
+ this.y = y;
+}
+Sys.UI.Point.registerClass('Sys.UI.Point');
+
+Sys.UI.Bounds = function Sys$UI$Bounds(x, y, width, height) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "x", type: Number, integer: true},
+ {name: "y", type: Number, integer: true},
+ {name: "height", type: Number, integer: true},
+ {name: "width", type: Number, integer: true}
+ ]);
+ if (e) throw e;
+ this.x = x;
+ this.y = y;
+ this.height = height;
+ this.width = width;
+}
+Sys.UI.Bounds.registerClass('Sys.UI.Bounds');
+
+Sys.UI.DomEvent = function Sys$UI$DomEvent(eventObject) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "eventObject"}
+ ]);
+ if (e) throw e;
+ var e = eventObject;
+ var etype = this.type = e.type.toLowerCase();
+ this.rawEvent = e;
+ this.altKey = e.altKey;
+ if (typeof(e.button) !== 'undefined') {
+ this.button = (typeof(e.which) !== 'undefined') ? e.button :
+ (e.button === 4) ? Sys.UI.MouseButton.middleButton :
+ (e.button === 2) ? Sys.UI.MouseButton.rightButton :
+ Sys.UI.MouseButton.leftButton;
+ }
+ if (etype === 'keypress') {
+ this.charCode = e.charCode || e.keyCode;
+ }
+ else if (e.keyCode && (e.keyCode === 46)) {
+ this.keyCode = 127;
+ }
+ else {
+ this.keyCode = e.keyCode;
+ }
+ this.clientX = e.clientX;
+ this.clientY = e.clientY;
+ this.ctrlKey = e.ctrlKey;
+ this.target = e.target ? e.target : e.srcElement;
+ if (!etype.startsWith('key')) {
+ if ((typeof(e.offsetX) !== 'undefined') && (typeof(e.offsetY) !== 'undefined')) {
+ this.offsetX = e.offsetX;
+ this.offsetY = e.offsetY;
+ }
+ else if (this.target && (this.target.nodeType !== 3) && (typeof(e.clientX) === 'number')) {
+ var loc = Sys.UI.DomElement.getLocation(this.target);
+ var w = Sys.UI.DomElement._getWindow(this.target);
+ this.offsetX = (w.pageXOffset || 0) + e.clientX - loc.x;
+ this.offsetY = (w.pageYOffset || 0) + e.clientY - loc.y;
+ }
+ }
+ this.screenX = e.screenX;
+ this.screenY = e.screenY;
+ this.shiftKey = e.shiftKey;
+}
+ function Sys$UI$DomEvent$preventDefault() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (this.rawEvent.preventDefault) {
+ this.rawEvent.preventDefault();
+ }
+ else if (window.event) {
+ this.rawEvent.returnValue = false;
+ }
+ }
+ function Sys$UI$DomEvent$stopPropagation() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (this.rawEvent.stopPropagation) {
+ this.rawEvent.stopPropagation();
+ }
+ else if (window.event) {
+ this.rawEvent.cancelBubble = true;
+ }
+ }
+Sys.UI.DomEvent.prototype = {
+ preventDefault: Sys$UI$DomEvent$preventDefault,
+ stopPropagation: Sys$UI$DomEvent$stopPropagation
+}
+Sys.UI.DomEvent.registerClass('Sys.UI.DomEvent');
+var $addHandler = Sys.UI.DomEvent.addHandler = function Sys$UI$DomEvent$addHandler(element, eventName, handler) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element"},
+ {name: "eventName", type: String},
+ {name: "handler", type: Function}
+ ]);
+ if (e) throw e;
+ Sys.UI.DomEvent._ensureDomNode(element);
+ if (eventName === "error") throw Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError);
+ if (!element._events) {
+ element._events = {};
+ }
+ var eventCache = element._events[eventName];
+ if (!eventCache) {
+ element._events[eventName] = eventCache = [];
+ }
+ var browserHandler;
+ if (element.addEventListener) {
+ browserHandler = function(e) {
+ return handler.call(element, new Sys.UI.DomEvent(e));
+ }
+ element.addEventListener(eventName, browserHandler, false);
+ }
+ else if (element.attachEvent) {
+ browserHandler = function() {
+ var e = {};
+ try {e = Sys.UI.DomElement._getWindow(element).event} catch(ex) {}
+ return handler.call(element, new Sys.UI.DomEvent(e));
+ }
+ element.attachEvent('on' + eventName, browserHandler);
+ }
+ eventCache[eventCache.length] = {handler: handler, browserHandler: browserHandler};
+}
+var $addHandlers = Sys.UI.DomEvent.addHandlers = function Sys$UI$DomEvent$addHandlers(element, events, handlerOwner) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element"},
+ {name: "events", type: Object},
+ {name: "handlerOwner", optional: true}
+ ]);
+ if (e) throw e;
+ Sys.UI.DomEvent._ensureDomNode(element);
+ for (var name in events) {
+ var handler = events[name];
+ if (typeof(handler) !== 'function') throw Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler);
+ if (handlerOwner) {
+ handler = Function.createDelegate(handlerOwner, handler);
+ }
+ $addHandler(element, name, handler);
+ }
+}
+var $clearHandlers = Sys.UI.DomEvent.clearHandlers = function Sys$UI$DomEvent$clearHandlers(element) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element"}
+ ]);
+ if (e) throw e;
+ Sys.UI.DomEvent._ensureDomNode(element);
+ if (element._events) {
+ var cache = element._events;
+ for (var name in cache) {
+ var handlers = cache[name];
+ for (var i = handlers.length - 1; i >= 0; i--) {
+ $removeHandler(element, name, handlers[i].handler);
+ }
+ }
+ element._events = null;
+ }
+}
+var $removeHandler = Sys.UI.DomEvent.removeHandler = function Sys$UI$DomEvent$removeHandler(element, eventName, handler) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element"},
+ {name: "eventName", type: String},
+ {name: "handler", type: Function}
+ ]);
+ if (e) throw e;
+ Sys.UI.DomEvent._ensureDomNode(element);
+ var browserHandler = null;
+ if ((typeof(element._events) !== 'object') || (element._events == null)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
+ var cache = element._events[eventName];
+ if (!(cache instanceof Array)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
+ for (var i = 0, l = cache.length; i < l; i++) {
+ if (cache[i].handler === handler) {
+ browserHandler = cache[i].browserHandler;
+ break;
+ }
+ }
+ if (typeof(browserHandler) !== 'function') throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
+ if (element.removeEventListener) {
+ element.removeEventListener(eventName, browserHandler, false);
+ }
+ else if (element.detachEvent) {
+ element.detachEvent('on' + eventName, browserHandler);
+ }
+ cache.splice(i, 1);
+}
+Sys.UI.DomEvent._ensureDomNode = function Sys$UI$DomEvent$_ensureDomNode(element) {
+ if (element.tagName && (element.tagName.toUpperCase() === "SCRIPT")) return;
+
+ var doc = element.ownerDocument || element.document || element;
+ if ((typeof(element.document) !== 'object') && (element != doc) && (typeof(element.nodeType) !== 'number')) {
+ throw Error.argument("element", Sys.Res.argumentDomNode);
+ }
+}
+
+Sys.UI.DomElement = function Sys$UI$DomElement() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+}
+Sys.UI.DomElement.registerClass('Sys.UI.DomElement');
+Sys.UI.DomElement.addCssClass = function Sys$UI$DomElement$addCssClass(element, className) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true},
+ {name: "className", type: String}
+ ]);
+ if (e) throw e;
+ if (!Sys.UI.DomElement.containsCssClass(element, className)) {
+ if (element.className === '') {
+ element.className = className;
+ }
+ else {
+ element.className += ' ' + className;
+ }
+ }
+}
+Sys.UI.DomElement.containsCssClass = function Sys$UI$DomElement$containsCssClass(element, className) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true},
+ {name: "className", type: String}
+ ]);
+ if (e) throw e;
+ return Array.contains(element.className.split(' '), className);
+}
+Sys.UI.DomElement.getBounds = function Sys$UI$DomElement$getBounds(element) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ var offset = Sys.UI.DomElement.getLocation(element);
+ return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || 0, element.offsetHeight || 0);
+}
+var $get = Sys.UI.DomElement.getElementById = function Sys$UI$DomElement$getElementById(id, element) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "id", type: String},
+ {name: "element", mayBeNull: true, domElement: true, optional: true}
+ ]);
+ if (e) throw e;
+ if (!element) return document.getElementById(id);
+ if (element.getElementById) return element.getElementById(id);
+ var nodeQueue = [];
+ var childNodes = element.childNodes;
+ for (var i = 0; i < childNodes.length; i++) {
+ var node = childNodes[i];
+ if (node.nodeType == 1) {
+ nodeQueue[nodeQueue.length] = node;
+ }
+ }
+ while (nodeQueue.length) {
+ node = nodeQueue.shift();
+ if (node.id == id) {
+ return node;
+ }
+ childNodes = node.childNodes;
+ for (i = 0; i < childNodes.length; i++) {
+ node = childNodes[i];
+ if (node.nodeType == 1) {
+ nodeQueue[nodeQueue.length] = node;
+ }
+ }
+ }
+ return null;
+}
+switch(Sys.Browser.agent) {
+ case Sys.Browser.InternetExplorer:
+ Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ if (element.self || element.nodeType === 9) return new Sys.UI.Point(0,0);
+ var clientRect = element.getBoundingClientRect();
+ if (!clientRect) {
+ return new Sys.UI.Point(0,0);
+ }
+ var documentElement = element.ownerDocument.documentElement;
+ var offsetX = clientRect.left - 2 + documentElement.scrollLeft,
+ offsetY = clientRect.top - 2 + documentElement.scrollTop;
+
+ try {
+ var f = element.ownerDocument.parentWindow.frameElement || null;
+ if (f) {
+ var offset = (f.frameBorder === "0" || f.frameBorder === "no") ? 2 : 0;
+ offsetX += offset;
+ offsetY += offset;
+ }
+ }
+ catch(ex) {
+ }
+
+ return new Sys.UI.Point(offsetX, offsetY);
+ }
+ break;
+ case Sys.Browser.Safari:
+ Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0);
+ var offsetX = 0;
+ var offsetY = 0;
+ var previous = null;
+ var previousStyle = null;
+ var currentStyle;
+ for (var parent = element; parent; previous = parent, previousStyle = currentStyle, parent = parent.offsetParent) {
+ currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
+ var tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
+ if ((parent.offsetLeft || parent.offsetTop) &&
+ ((tagName !== "BODY") || (!previousStyle || previousStyle.position !== "absolute"))) {
+ offsetX += parent.offsetLeft;
+ offsetY += parent.offsetTop;
+ }
+ }
+ currentStyle = Sys.UI.DomElement._getCurrentStyle(element);
+ var elementPosition = currentStyle ? currentStyle.position : null;
+ if (!elementPosition || (elementPosition !== "absolute")) {
+ for (var parent = element.parentNode; parent; parent = parent.parentNode) {
+ tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
+ if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop)) {
+ offsetX -= (parent.scrollLeft || 0);
+ offsetY -= (parent.scrollTop || 0);
+ }
+ currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
+ var parentPosition = currentStyle ? currentStyle.position : null;
+ if (parentPosition && (parentPosition === "absolute")) break;
+ }
+ }
+ return new Sys.UI.Point(offsetX, offsetY);
+ }
+ break;
+ case Sys.Browser.Opera:
+ Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0);
+ var offsetX = 0;
+ var offsetY = 0;
+ var previous = null;
+ for (var parent = element; parent; previous = parent, parent = parent.offsetParent) {
+ var tagName = parent.tagName;
+ offsetX += parent.offsetLeft || 0;
+ offsetY += parent.offsetTop || 0;
+ }
+ var elementPosition = element.style.position;
+ var elementPositioned = elementPosition && (elementPosition !== "static");
+ for (var parent = element.parentNode; parent; parent = parent.parentNode) {
+ tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
+ if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop) &&
+ ((elementPositioned &&
+ ((parent.style.overflow === "scroll") || (parent.style.overflow === "auto"))))) {
+ offsetX -= (parent.scrollLeft || 0);
+ offsetY -= (parent.scrollTop || 0);
+ }
+ var parentPosition = (parent && parent.style) ? parent.style.position : null;
+ elementPositioned = elementPositioned || (parentPosition && (parentPosition !== "static"));
+ }
+ return new Sys.UI.Point(offsetX, offsetY);
+ }
+ break;
+ default:
+ Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0);
+ var offsetX = 0;
+ var offsetY = 0;
+ var previous = null;
+ var previousStyle = null;
+ var currentStyle = null;
+ for (var parent = element; parent; previous = parent, previousStyle = currentStyle, parent = parent.offsetParent) {
+ var tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
+ currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
+ if ((parent.offsetLeft || parent.offsetTop) &&
+ !((tagName === "BODY") &&
+ (!previousStyle || previousStyle.position !== "absolute"))) {
+ offsetX += parent.offsetLeft;
+ offsetY += parent.offsetTop;
+ }
+ if (previous !== null && currentStyle) {
+ if ((tagName !== "TABLE") && (tagName !== "TD") && (tagName !== "HTML")) {
+ offsetX += parseInt(currentStyle.borderLeftWidth) || 0;
+ offsetY += parseInt(currentStyle.borderTopWidth) || 0;
+ }
+ if (tagName === "TABLE" &&
+ (currentStyle.position === "relative" || currentStyle.position === "absolute")) {
+ offsetX += parseInt(currentStyle.marginLeft) || 0;
+ offsetY += parseInt(currentStyle.marginTop) || 0;
+ }
+ }
+ }
+ currentStyle = Sys.UI.DomElement._getCurrentStyle(element);
+ var elementPosition = currentStyle ? currentStyle.position : null;
+ if (!elementPosition || (elementPosition !== "absolute")) {
+ for (var parent = element.parentNode; parent; parent = parent.parentNode) {
+ tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
+ if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop)) {
+ offsetX -= (parent.scrollLeft || 0);
+ offsetY -= (parent.scrollTop || 0);
+ currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
+ if (currentStyle) {
+ offsetX += parseInt(currentStyle.borderLeftWidth) || 0;
+ offsetY += parseInt(currentStyle.borderTopWidth) || 0;
+ }
+ }
+ }
+ }
+ return new Sys.UI.Point(offsetX, offsetY);
+ }
+ break;
+}
+Sys.UI.DomElement.removeCssClass = function Sys$UI$DomElement$removeCssClass(element, className) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true},
+ {name: "className", type: String}
+ ]);
+ if (e) throw e;
+ var currentClassName = ' ' + element.className + ' ';
+ var index = currentClassName.indexOf(' ' + className + ' ');
+ if (index >= 0) {
+ element.className = (currentClassName.substr(0, index) + ' ' +
+ currentClassName.substring(index + className.length + 1, currentClassName.length)).trim();
+ }
+}
+Sys.UI.DomElement.setLocation = function Sys$UI$DomElement$setLocation(element, x, y) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true},
+ {name: "x", type: Number, integer: true},
+ {name: "y", type: Number, integer: true}
+ ]);
+ if (e) throw e;
+ var style = element.style;
+ style.position = 'absolute';
+ style.left = x + "px";
+ style.top = y + "px";
+}
+Sys.UI.DomElement.toggleCssClass = function Sys$UI$DomElement$toggleCssClass(element, className) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true},
+ {name: "className", type: String}
+ ]);
+ if (e) throw e;
+ if (Sys.UI.DomElement.containsCssClass(element, className)) {
+ Sys.UI.DomElement.removeCssClass(element, className);
+ }
+ else {
+ Sys.UI.DomElement.addCssClass(element, className);
+ }
+}
+Sys.UI.DomElement.getVisibilityMode = function Sys$UI$DomElement$getVisibilityMode(element) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ return (element._visibilityMode === Sys.UI.VisibilityMode.hide) ?
+ Sys.UI.VisibilityMode.hide :
+ Sys.UI.VisibilityMode.collapse;
+}
+Sys.UI.DomElement.setVisibilityMode = function Sys$UI$DomElement$setVisibilityMode(element, value) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true},
+ {name: "value", type: Sys.UI.VisibilityMode}
+ ]);
+ if (e) throw e;
+ Sys.UI.DomElement._ensureOldDisplayMode(element);
+ if (element._visibilityMode !== value) {
+ element._visibilityMode = value;
+ if (Sys.UI.DomElement.getVisible(element) === false) {
+ if (element._visibilityMode === Sys.UI.VisibilityMode.hide) {
+ element.style.display = element._oldDisplayMode;
+ }
+ else {
+ element.style.display = 'none';
+ }
+ }
+ element._visibilityMode = value;
+ }
+}
+Sys.UI.DomElement.getVisible = function Sys$UI$DomElement$getVisible(element) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ var style = element.currentStyle || Sys.UI.DomElement._getCurrentStyle(element);
+ if (!style) return true;
+ return (style.visibility !== 'hidden') && (style.display !== 'none');
+}
+Sys.UI.DomElement.setVisible = function Sys$UI$DomElement$setVisible(element, value) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true},
+ {name: "value", type: Boolean}
+ ]);
+ if (e) throw e;
+ if (value !== Sys.UI.DomElement.getVisible(element)) {
+ Sys.UI.DomElement._ensureOldDisplayMode(element);
+ element.style.visibility = value ? 'visible' : 'hidden';
+ if (value || (element._visibilityMode === Sys.UI.VisibilityMode.hide)) {
+ element.style.display = element._oldDisplayMode;
+ }
+ else {
+ element.style.display = 'none';
+ }
+ }
+}
+Sys.UI.DomElement._ensureOldDisplayMode = function Sys$UI$DomElement$_ensureOldDisplayMode(element) {
+ if (!element._oldDisplayMode) {
+ var style = element.currentStyle || Sys.UI.DomElement._getCurrentStyle(element);
+ element._oldDisplayMode = style ? style.display : null;
+ if (!element._oldDisplayMode || element._oldDisplayMode === 'none') {
+ switch(element.tagName.toUpperCase()) {
+ case 'DIV': case 'P': case 'ADDRESS': case 'BLOCKQUOTE': case 'BODY': case 'COL':
+ case 'COLGROUP': case 'DD': case 'DL': case 'DT': case 'FIELDSET': case 'FORM':
+ case 'H1': case 'H2': case 'H3': case 'H4': case 'H5': case 'H6': case 'HR':
+ case 'IFRAME': case 'LEGEND': case 'OL': case 'PRE': case 'TABLE': case 'TD':
+ case 'TH': case 'TR': case 'UL':
+ element._oldDisplayMode = 'block';
+ break;
+ case 'LI':
+ element._oldDisplayMode = 'list-item';
+ break;
+ default:
+ element._oldDisplayMode = 'inline';
+ }
+ }
+ }
+}
+Sys.UI.DomElement._getWindow = function Sys$UI$DomElement$_getWindow(element) {
+ var doc = element.ownerDocument || element.document || element;
+ return doc.defaultView || doc.parentWindow;
+}
+Sys.UI.DomElement._getCurrentStyle = function Sys$UI$DomElement$_getCurrentStyle(element) {
+ if (element.nodeType === 3) return null;
+ var w = Sys.UI.DomElement._getWindow(element);
+ if (element.documentElement) element = element.documentElement;
+ var computedStyle = (w && (element !== w) && w.getComputedStyle) ?
+ w.getComputedStyle(element, null) :
+ element.currentStyle || element.style;
+ if (!computedStyle && (Sys.Browser.agent === Sys.Browser.Safari) && element.style) {
+ var oldDisplay = element.style.display;
+ var oldPosition = element.style.position;
+ element.style.position = 'absolute';
+ element.style.display = 'block';
+ var style = w.getComputedStyle(element, null);
+ element.style.display = oldDisplay;
+ element.style.position = oldPosition;
+ computedStyle = {};
+ for (var n in style) {
+ computedStyle[n] = style[n];
+ }
+ computedStyle.display = 'none';
+ }
+ return computedStyle;
+}
+
+Sys.IContainer = function Sys$IContainer() {
+ throw Error.notImplemented();
+}
+ function Sys$IContainer$addComponent(component) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "component", type: Sys.Component}
+ ]);
+ if (e) throw e;
+ throw Error.notImplemented();
+ }
+ function Sys$IContainer$removeComponent(component) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "component", type: Sys.Component}
+ ]);
+ if (e) throw e;
+ throw Error.notImplemented();
+ }
+ function Sys$IContainer$findComponent(id) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "id", type: String}
+ ]);
+ if (e) throw e;
+ throw Error.notImplemented();
+ }
+ function Sys$IContainer$getComponents() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+Sys.IContainer.prototype = {
+ addComponent: Sys$IContainer$addComponent,
+ removeComponent: Sys$IContainer$removeComponent,
+ findComponent: Sys$IContainer$findComponent,
+ getComponents: Sys$IContainer$getComponents
+}
+Sys.IContainer.registerInterface("Sys.IContainer");
+
+Sys._ScriptLoader = function Sys$_ScriptLoader() {
+ this._scriptsToLoad = null;
+ this._sessions = [];
+ this._scriptLoadedDelegate = Function.createDelegate(this, this._scriptLoadedHandler);
+}
+ function Sys$_ScriptLoader$dispose() {
+ this._stopSession();
+ this._loading = false;
+ if(this._events) {
+ delete this._events;
+ }
+ this._sessions = null;
+ this._currentSession = null;
+ this._scriptLoadedDelegate = null;
+ }
+ function Sys$_ScriptLoader$loadScripts(scriptTimeout, allScriptsLoadedCallback, scriptLoadFailedCallback, scriptLoadTimeoutCallback) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "scriptTimeout", type: Number, integer: true},
+ {name: "allScriptsLoadedCallback", type: Function, mayBeNull: true},
+ {name: "scriptLoadFailedCallback", type: Function, mayBeNull: true},
+ {name: "scriptLoadTimeoutCallback", type: Function, mayBeNull: true}
+ ]);
+ if (e) throw e;
+ var session = {
+ allScriptsLoadedCallback: allScriptsLoadedCallback,
+ scriptLoadFailedCallback: scriptLoadFailedCallback,
+ scriptLoadTimeoutCallback: scriptLoadTimeoutCallback,
+ scriptsToLoad: this._scriptsToLoad,
+ scriptTimeout: scriptTimeout };
+ this._scriptsToLoad = null;
+ this._sessions[this._sessions.length] = session;
+
+ if (!this._loading) {
+ this._nextSession();
+ }
+ }
+ function Sys$_ScriptLoader$notifyScriptLoaded() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+
+ if(!this._loading) {
+ return;
+ }
+ this._currentTask._notified++;
+
+ if(Sys.Browser.agent === Sys.Browser.Safari) {
+ if(this._currentTask._notified === 1) {
+ window.setTimeout(Function.createDelegate(this, function() {
+ this._scriptLoadedHandler(this._currentTask.get_scriptElement(), true);
+ }), 0);
+ }
+ }
+ }
+ function Sys$_ScriptLoader$queueCustomScriptTag(scriptAttributes) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "scriptAttributes"}
+ ]);
+ if (e) throw e;
+ if(!this._scriptsToLoad) {
+ this._scriptsToLoad = [];
+ }
+ Array.add(this._scriptsToLoad, scriptAttributes);
+ }
+ function Sys$_ScriptLoader$queueScriptBlock(scriptContent) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "scriptContent", type: String}
+ ]);
+ if (e) throw e;
+ if(!this._scriptsToLoad) {
+ this._scriptsToLoad = [];
+ }
+ Array.add(this._scriptsToLoad, {text: scriptContent});
+ }
+ function Sys$_ScriptLoader$queueScriptReference(scriptUrl) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "scriptUrl", type: String}
+ ]);
+ if (e) throw e;
+ if(!this._scriptsToLoad) {
+ this._scriptsToLoad = [];
+ }
+ Array.add(this._scriptsToLoad, {src: scriptUrl});
+ }
+ function Sys$_ScriptLoader$_createScriptElement(queuedScript) {
+ var scriptElement = document.createElement('script');
+ scriptElement.type = 'text/javascript';
+ for (var attr in queuedScript) {
+ scriptElement[attr] = queuedScript[attr];
+ }
+
+ return scriptElement;
+ }
+ function Sys$_ScriptLoader$_loadScriptsInternal() {
+ var session = this._currentSession;
+ if (session.scriptsToLoad && session.scriptsToLoad.length > 0) {
+ var nextScript = Array.dequeue(session.scriptsToLoad);
+ var scriptElement = this._createScriptElement(nextScript);
+
+ if (scriptElement.text && Sys.Browser.agent === Sys.Browser.Safari) {
+ scriptElement.innerHTML = scriptElement.text;
+ delete scriptElement.text;
+ }
+ if (typeof(nextScript.src) === "string") {
+ this._currentTask = new Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate);
+ this._currentTask.execute();
+ }
+ else {
+ var headElements = document.getElementsByTagName('head');
+ if (headElements.length === 0) {
+ throw new Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
+ }
+ else {
+ headElements[0].appendChild(scriptElement);
+ }
+
+
+ Sys._ScriptLoader._clearScript(scriptElement);
+ this._loadScriptsInternal();
+ }
+ }
+ else {
+ this._stopSession();
+ var callback = session.allScriptsLoadedCallback;
+ if(callback) {
+ callback(this);
+ }
+ this._nextSession();
+ }
+ }
+ function Sys$_ScriptLoader$_nextSession() {
+ if (this._sessions.length === 0) {
+ this._loading = false;
+ this._currentSession = null;
+ return;
+ }
+ this._loading = true;
+
+ var session = Array.dequeue(this._sessions);
+ this._currentSession = session;
+ this._loadScriptsInternal();
+ }
+ function Sys$_ScriptLoader$_raiseError(multipleCallbacks) {
+ var callback = this._currentSession.scriptLoadFailedCallback;
+ var scriptElement = this._currentTask.get_scriptElement();
+ this._stopSession();
+
+ if(callback) {
+ callback(this, scriptElement, multipleCallbacks);
+ this._nextSession();
+ }
+ else {
+ this._loading = false;
+ throw Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src, multipleCallbacks);
+ }
+ }
+ function Sys$_ScriptLoader$_scriptLoadedHandler(scriptElement, loaded) {
+ if(loaded && this._currentTask._notified) {
+ if(this._currentTask._notified > 1) {
+ this._raiseError(true);
+ }
+ else {
+ Array.add(Sys._ScriptLoader._getLoadedScripts(), scriptElement.src);
+ this._currentTask.dispose();
+ this._currentTask = null;
+ this._loadScriptsInternal();
+ }
+ }
+ else {
+ this._raiseError(false);
+ }
+ }
+ function Sys$_ScriptLoader$_scriptLoadTimeoutHandler() {
+ var callback = this._currentSession.scriptLoadTimeoutCallback;
+ this._stopSession();
+ if(callback) {
+ callback(this);
+ }
+ this._nextSession();
+ }
+ function Sys$_ScriptLoader$_stopSession() {
+ if(this._currentTask) {
+ this._currentTask.dispose();
+ this._currentTask = null;
+ }
+ }
+Sys._ScriptLoader.prototype = {
+ dispose: Sys$_ScriptLoader$dispose,
+ loadScripts: Sys$_ScriptLoader$loadScripts,
+ notifyScriptLoaded: Sys$_ScriptLoader$notifyScriptLoaded,
+ queueCustomScriptTag: Sys$_ScriptLoader$queueCustomScriptTag,
+ queueScriptBlock: Sys$_ScriptLoader$queueScriptBlock,
+ queueScriptReference: Sys$_ScriptLoader$queueScriptReference,
+ _createScriptElement: Sys$_ScriptLoader$_createScriptElement,
+ _loadScriptsInternal: Sys$_ScriptLoader$_loadScriptsInternal,
+ _nextSession: Sys$_ScriptLoader$_nextSession,
+ _raiseError: Sys$_ScriptLoader$_raiseError,
+ _scriptLoadedHandler: Sys$_ScriptLoader$_scriptLoadedHandler,
+ _scriptLoadTimeoutHandler: Sys$_ScriptLoader$_scriptLoadTimeoutHandler,
+ _stopSession: Sys$_ScriptLoader$_stopSession
+}
+Sys._ScriptLoader.registerClass('Sys._ScriptLoader', null, Sys.IDisposable);
+Sys._ScriptLoader.getInstance = function Sys$_ScriptLoader$getInstance() {
+ var sl = Sys._ScriptLoader._activeInstance;
+ if(!sl) {
+ sl = Sys._ScriptLoader._activeInstance = new Sys._ScriptLoader();
+ }
+ return sl;
+}
+Sys._ScriptLoader.isScriptLoaded = function Sys$_ScriptLoader$isScriptLoaded(scriptSrc) {
+ var dummyScript = document.createElement('script');
+ dummyScript.src = scriptSrc;
+ return Array.contains(Sys._ScriptLoader._getLoadedScripts(), dummyScript.src);
+}
+Sys._ScriptLoader.readLoadedScripts = function Sys$_ScriptLoader$readLoadedScripts() {
+ if(!Sys._ScriptLoader._referencedScripts) {
+ var referencedScripts = Sys._ScriptLoader._referencedScripts = [];
+ var existingScripts = document.getElementsByTagName('script');
+ for (i = existingScripts.length - 1; i >= 0; i--) {
+ var scriptNode = existingScripts[i];
+ var scriptSrc = scriptNode.src;
+ if (scriptSrc.length) {
+ if (!Array.contains(referencedScripts, scriptSrc)) {
+ Array.add(referencedScripts, scriptSrc);
+ }
+ }
+ }
+ }
+}
+Sys._ScriptLoader._clearScript = function Sys$_ScriptLoader$_clearScript(scriptElement) {
+ if (!Sys.Debug.isDebug) {
+ scriptElement.parentNode.removeChild(scriptElement);
+ }
+}
+Sys._ScriptLoader._errorScriptLoadFailed = function Sys$_ScriptLoader$_errorScriptLoadFailed(scriptUrl, multipleCallbacks) {
+ var errorMessage;
+ if(multipleCallbacks) {
+ errorMessage = Sys.Res.scriptLoadMultipleCallbacks;
+ }
+ else {
+ errorMessage = Sys.Res.scriptLoadFailedDebug;
+ }
+ var displayMessage = "Sys.ScriptLoadFailedException: " + String.format(errorMessage, scriptUrl);
+ var e = Error.create(displayMessage, {name: 'Sys.ScriptLoadFailedException', 'scriptUrl': scriptUrl });
+ e.popStackFrame();
+ return e;
+}
+Sys._ScriptLoader._getLoadedScripts = function Sys$_ScriptLoader$_getLoadedScripts() {
+ if(!Sys._ScriptLoader._referencedScripts) {
+ Sys._ScriptLoader._referencedScripts = [];
+ Sys._ScriptLoader.readLoadedScripts();
+ }
+ return Sys._ScriptLoader._referencedScripts;
+}
+
+Sys._ScriptLoaderTask = function Sys$_ScriptLoaderTask(scriptElement, completedCallback) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "scriptElement", domElement: true},
+ {name: "completedCallback", type: Function}
+ ]);
+ if (e) throw e;
+ this._scriptElement = scriptElement;
+ this._completedCallback = completedCallback;
+ this._notified = 0;
+}
+ function Sys$_ScriptLoaderTask$get_scriptElement() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._scriptElement;
+ }
+ function Sys$_ScriptLoaderTask$dispose() {
+ if(this._disposed) {
+ return;
+ }
+ this._disposed = true;
+ this._removeScriptElementHandlers();
+ Sys._ScriptLoader._clearScript(this._scriptElement);
+ this._scriptElement = null;
+ }
+ function Sys$_ScriptLoaderTask$execute() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ this._addScriptElementHandlers();
+ var headElements = document.getElementsByTagName('head');
+ if (headElements.length === 0) {
+ throw new Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
+ }
+ else {
+ headElements[0].appendChild(this._scriptElement);
+ }
+ }
+ function Sys$_ScriptLoaderTask$_addScriptElementHandlers() {
+ this._scriptLoadDelegate = Function.createDelegate(this, this._scriptLoadHandler);
+
+ if (Sys.Browser.agent !== Sys.Browser.InternetExplorer) {
+ this._scriptElement.readyState = 'loaded';
+ $addHandler(this._scriptElement, 'load', this._scriptLoadDelegate);
+ }
+ else {
+ $addHandler(this._scriptElement, 'readystatechange', this._scriptLoadDelegate);
+ }
+ if (this._scriptElement.addEventListener) {
+ this._scriptErrorDelegate = Function.createDelegate(this, this._scriptErrorHandler);
+ this._scriptElement.addEventListener('error', this._scriptErrorDelegate, false);
+ }
+ }
+ function Sys$_ScriptLoaderTask$_removeScriptElementHandlers() {
+ if(this._scriptLoadDelegate) {
+ var scriptElement = this.get_scriptElement();
+ if (Sys.Browser.agent !== Sys.Browser.InternetExplorer) {
+ $removeHandler(scriptElement, 'load', this._scriptLoadDelegate);
+ }
+ else {
+ $removeHandler(scriptElement, 'readystatechange', this._scriptLoadDelegate);
+ }
+ if (this._scriptErrorDelegate) {
+ this._scriptElement.removeEventListener('error', this._scriptErrorDelegate, false);
+ this._scriptErrorDelegate = null;
+ }
+ this._scriptLoadDelegate = null;
+ }
+ }
+ function Sys$_ScriptLoaderTask$_scriptErrorHandler() {
+ if(this._disposed) {
+ return;
+ }
+
+ this._completedCallback(this.get_scriptElement(), false);
+ }
+ function Sys$_ScriptLoaderTask$_scriptLoadHandler() {
+ if(this._disposed) {
+ return;
+ }
+ var scriptElement = this.get_scriptElement();
+ if ((scriptElement.readyState !== 'loaded') &&
+ (scriptElement.readyState !== 'complete')) {
+ return;
+ }
+
+ var _this = this;
+ window.setTimeout(function() {
+ _this._completedCallback(scriptElement, true);
+ }, 0);
+ }
+Sys._ScriptLoaderTask.prototype = {
+ get_scriptElement: Sys$_ScriptLoaderTask$get_scriptElement,
+ dispose: Sys$_ScriptLoaderTask$dispose,
+ execute: Sys$_ScriptLoaderTask$execute,
+ _addScriptElementHandlers: Sys$_ScriptLoaderTask$_addScriptElementHandlers,
+ _removeScriptElementHandlers: Sys$_ScriptLoaderTask$_removeScriptElementHandlers,
+ _scriptErrorHandler: Sys$_ScriptLoaderTask$_scriptErrorHandler,
+ _scriptLoadHandler: Sys$_ScriptLoaderTask$_scriptLoadHandler
+}
+Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask", null, Sys.IDisposable);
+
+Sys.ApplicationLoadEventArgs = function Sys$ApplicationLoadEventArgs(components, isPartialLoad) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "components", type: Array, elementType: Sys.Component},
+ {name: "isPartialLoad", type: Boolean}
+ ]);
+ if (e) throw e;
+ Sys.ApplicationLoadEventArgs.initializeBase(this);
+ this._components = components;
+ this._isPartialLoad = isPartialLoad;
+}
+
+ function Sys$ApplicationLoadEventArgs$get_components() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._components;
+ }
+ function Sys$ApplicationLoadEventArgs$get_isPartialLoad() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._isPartialLoad;
+ }
+Sys.ApplicationLoadEventArgs.prototype = {
+ get_components: Sys$ApplicationLoadEventArgs$get_components,
+ get_isPartialLoad: Sys$ApplicationLoadEventArgs$get_isPartialLoad
+}
+Sys.ApplicationLoadEventArgs.registerClass('Sys.ApplicationLoadEventArgs', Sys.EventArgs);
+Sys.HistoryEventArgs = function Sys$HistoryEventArgs(state) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "state", type: Object}
+ ]);
+ if (e) throw e;
+ Sys.HistoryEventArgs.initializeBase(this);
+ this._state = state;
+}
+ function Sys$HistoryEventArgs$get_state() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._state;
+ }
+Sys.HistoryEventArgs.prototype = {
+ get_state: Sys$HistoryEventArgs$get_state
+}
+Sys.HistoryEventArgs.registerClass('Sys.HistoryEventArgs', Sys.EventArgs);
+
+Sys._Application = function Sys$_Application() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ Sys._Application.initializeBase(this);
+ this._disposableObjects = [];
+ this._components = {};
+ this._createdComponents = [];
+ this._secondPassComponents = [];
+ this._appLoadHandler = null;
+ this._beginRequestHandler = null;
+ this._clientId = null;
+ this._currentEntry = '';
+ this._endRequestHandler = null;
+ this._history = null;
+ this._enableHistory = false;
+ this._historyEnabledInScriptManager = false;
+ this._historyFrame = null;
+ this._historyInitialized = false;
+ this._historyInitialLength = 0;
+ this._historyLength = 0;
+ this._historyPointIsNew = false;
+ this._ignoreTimer = false;
+ this._initialState = null;
+ this._state = {};
+ this._timerCookie = 0;
+ this._timerHandler = null;
+ this._uniqueId = null;
+ this._unloadHandlerDelegate = Function.createDelegate(this, this._unloadHandler);
+ this._loadHandlerDelegate = Function.createDelegate(this, this._loadHandler);
+ Sys.UI.DomEvent.addHandler(window, "unload", this._unloadHandlerDelegate);
+ Sys.UI.DomEvent.addHandler(window, "load", this._loadHandlerDelegate);
+}
+ function Sys$_Application$get_isCreatingComponents() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._creatingComponents;
+ }
+ function Sys$_Application$get_stateString() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ var hash = window.location.hash;
+ if (this._isSafari2()) {
+ var history = this._getHistory();
+ if (history) {
+ hash = history[window.history.length - this._historyInitialLength];
+ }
+ }
+ if ((hash.length > 0) && (hash.charAt(0) === '#')) {
+ hash = hash.substring(1);
+ }
+ if (Sys.Browser.agent === Sys.Browser.Firefox) {
+ hash = this._serializeState(this._deserializeState(hash, true));
+ }
+ return hash;
+ }
+ function Sys$_Application$get_enableHistory() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._enableHistory;
+ }
+ function Sys$_Application$set_enableHistory(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
+ if (e) throw e;
+ if (this._initialized && !this._initializing) {
+ throw Error.invalidOperation(Sys.Res.historyCannotEnableHistory);
+ }
+ else if (this._historyEnabledInScriptManager && !value) {
+ throw Error.invalidOperation(Sys.Res.invalidHistorySettingCombination);
+ }
+ this._enableHistory = value;
+ }
+ function Sys$_Application$add_init(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ if (this._initialized) {
+ handler(this, Sys.EventArgs.Empty);
+ }
+ else {
+ this.get_events().addHandler("init", handler);
+ }
+ }
+ function Sys$_Application$remove_init(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().removeHandler("init", handler);
+ }
+ function Sys$_Application$add_load(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().addHandler("load", handler);
+ }
+ function Sys$_Application$remove_load(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().removeHandler("load", handler);
+ }
+ function Sys$_Application$add_navigate(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().addHandler("navigate", handler);
+ }
+ function Sys$_Application$remove_navigate(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().removeHandler("navigate", handler);
+ }
+ function Sys$_Application$add_unload(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().addHandler("unload", handler);
+ }
+ function Sys$_Application$remove_unload(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this.get_events().removeHandler("unload", handler);
+ }
+ function Sys$_Application$addComponent(component) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "component", type: Sys.Component}
+ ]);
+ if (e) throw e;
+ var id = component.get_id();
+ if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId);
+ if (typeof(this._components[id]) !== 'undefined') throw Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, id));
+ this._components[id] = component;
+ }
+ function Sys$_Application$addHistoryPoint(state, title) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "state", type: Object},
+ {name: "title", type: String, mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ if (!this._enableHistory) throw Error.invalidOperation(Sys.Res.historyCannotAddHistoryPointWithHistoryDisabled);
+ for (var n in state) {
+ var v = state[n];
+ var t = typeof(v);
+ if ((v !== null) && ((t === 'object') || (t === 'function') || (t === 'undefined'))) {
+ throw Error.argument('state', Sys.Res.stateMustBeStringDictionary);
+ }
+ }
+ this._ensureHistory();
+ var initialState = this._state;
+ for (var key in state) {
+ var value = state[key];
+ if (value === null) {
+ if (typeof(initialState[key]) !== 'undefined') {
+ delete initialState[key];
+ }
+ }
+ else {
+ initialState[key] = value;
+ }
+ }
+ var entry = this._serializeState(initialState);
+ this._historyPointIsNew = true;
+ this._setState(entry, title);
+ this._raiseNavigate();
+ }
+ function Sys$_Application$beginCreateComponents() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ this._creatingComponents = true;
+ }
+ function Sys$_Application$dispose() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._disposing) {
+ this._disposing = true;
+ if (this._timerCookie) {
+ window.clearTimeout(this._timerCookie);
+ delete this._timerCookie;
+ }
+ if (this._endRequestHandler) {
+ Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);
+ delete this._endRequestHandler;
+ }
+ if (this._beginRequestHandler) {
+ Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._beginRequestHandler);
+ delete this._beginRequestHandler;
+ }
+ if (window.pageUnload) {
+ window.pageUnload(this, Sys.EventArgs.Empty);
+ }
+ var unloadHandler = this.get_events().getHandler("unload");
+ if (unloadHandler) {
+ unloadHandler(this, Sys.EventArgs.Empty);
+ }
+ var disposableObjects = Array.clone(this._disposableObjects);
+ for (var i = 0, l = disposableObjects.length; i < l; i++) {
+ disposableObjects[i].dispose();
+ }
+ Array.clear(this._disposableObjects);
+ Sys.UI.DomEvent.removeHandler(window, "unload", this._unloadHandlerDelegate);
+ if(this._loadHandlerDelegate) {
+ Sys.UI.DomEvent.removeHandler(window, "load", this._loadHandlerDelegate);
+ this._loadHandlerDelegate = null;
+ }
+ var sl = Sys._ScriptLoader.getInstance();
+ if(sl) {
+ sl.dispose();
+ }
+ Sys._Application.callBaseMethod(this, 'dispose');
+ }
+ }
+ function Sys$_Application$endCreateComponents() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ var components = this._secondPassComponents;
+ for (var i = 0, l = components.length; i < l; i++) {
+ var component = components[i].component;
+ Sys$Component$_setReferences(component, components[i].references);
+ component.endUpdate();
+ }
+ this._secondPassComponents = [];
+ this._creatingComponents = false;
+ }
+ function Sys$_Application$findComponent(id, parent) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "id", type: String},
+ {name: "parent", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ return (parent ?
+ ((Sys.IContainer.isInstanceOfType(parent)) ?
+ parent.findComponent(id) :
+ parent[id] || null) :
+ Sys.Application._components[id] || null);
+ }
+ function Sys$_Application$getComponents() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ var res = [];
+ var components = this._components;
+ for (var name in components) {
+ res[res.length] = components[name];
+ }
+ return res;
+ }
+ function Sys$_Application$initialize() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if(!this._initialized && !this._initializing) {
+ this._initializing = true;
+ window.setTimeout(Function.createDelegate(this, this._doInitialize), 0);
+ }
+ }
+ function Sys$_Application$notifyScriptLoaded() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ var sl = Sys._ScriptLoader.getInstance();
+ if(sl) {
+ sl.notifyScriptLoaded();
+ }
+ }
+ function Sys$_Application$registerDisposableObject(object) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "object", type: Sys.IDisposable}
+ ]);
+ if (e) throw e;
+ if (!this._disposing) {
+ this._disposableObjects[this._disposableObjects.length] = object;
+ }
+ }
+ function Sys$_Application$raiseLoad() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ var h = this.get_events().getHandler("load");
+ var args = new Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), !this._initializing);
+ if (h) {
+ h(this, args);
+ }
+ if (window.pageLoad) {
+ window.pageLoad(this, args);
+ }
+ this._createdComponents = [];
+ }
+ function Sys$_Application$removeComponent(component) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "component", type: Sys.Component}
+ ]);
+ if (e) throw e;
+ var id = component.get_id();
+ if (id) delete this._components[id];
+ }
+ function Sys$_Application$setServerId(clientId, uniqueId) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "clientId", type: String},
+ {name: "uniqueId", type: String}
+ ]);
+ if (e) throw e;
+ this._clientId = clientId;
+ this._uniqueId = uniqueId;
+ }
+ function Sys$_Application$setServerState(value) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "value", type: String}
+ ]);
+ if (e) throw e;
+ this._ensureHistory();
+ this._state.__s = value;
+ this._updateHiddenField(value);
+ }
+ function Sys$_Application$unregisterDisposableObject(object) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "object", type: Sys.IDisposable}
+ ]);
+ if (e) throw e;
+ if (!this._disposing) {
+ Array.remove(this._disposableObjects, object);
+ }
+ }
+ function Sys$_Application$_addComponentToSecondPass(component, references) {
+ this._secondPassComponents[this._secondPassComponents.length] = {component: component, references: references};
+ }
+ function Sys$_Application$_deserializeState(entry, skipDecodeUri) {
+ var result = {};
+ entry = entry || '';
+ var serverSeparator = entry.indexOf('&&');
+ if ((serverSeparator !== -1) && (serverSeparator + 2 < entry.length)) {
+ result.__s = entry.substr(serverSeparator + 2);
+ entry = entry.substr(0, serverSeparator);
+ }
+ var tokens = entry.split('&');
+ for (var i = 0, l = tokens.length; i < l; i++) {
+ var token = tokens[i];
+ var equal = token.indexOf('=');
+ if ((equal !== -1) && (equal + 1 < token.length)) {
+ var name = token.substr(0, equal);
+ var value = token.substr(equal + 1);
+ result[name] = skipDecodeUri ? value : decodeURIComponent(value);
+ }
+ }
+ return result;
+ }
+ function Sys$_Application$_doInitialize() {
+ Sys._Application.callBaseMethod(this, 'initialize');
+
+ var handler = this.get_events().getHandler("init");
+ if (handler) {
+ this.beginCreateComponents();
+ handler(this, Sys.EventArgs.Empty);
+ this.endCreateComponents();
+ }
+ if (Sys.WebForms) {
+ this._beginRequestHandler = Function.createDelegate(this, this._onPageRequestManagerBeginRequest);
+ Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this._beginRequestHandler);
+ this._endRequestHandler = Function.createDelegate(this, this._onPageRequestManagerEndRequest);
+ Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endRequestHandler);
+ }
+
+ var loadedEntry = this.get_stateString();
+ if (loadedEntry !== this._currentEntry) {
+ this._navigate(loadedEntry);
+ }
+
+ this.raiseLoad();
+ this._initializing = false;
+ }
+ function Sys$_Application$_enableHistoryInScriptManager() {
+ this._enableHistory = true;
+ this._historyEnabledInScriptManager = true;
+ }
+ function Sys$_Application$_ensureHistory() {
+ if (!this._historyInitialized && this._enableHistory) {
+ if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.documentMode < 8)) {
+ this._historyFrame = document.getElementById('__historyFrame');
+ if (!this._historyFrame) throw Error.invalidOperation(Sys.Res.historyMissingFrame);
+ this._ignoreIFrame = true;
+ }
+ if (this._isSafari2()) {
+ var historyElement = document.getElementById('__history');
+ if (!historyElement) throw Error.invalidOperation(Sys.Res.historyMissingHiddenInput);
+ this._setHistory([window.location.hash]);
+ this._historyInitialLength = window.history.length;
+ }
+
+ this._timerHandler = Function.createDelegate(this, this._onIdle);
+ this._timerCookie = window.setTimeout(this._timerHandler, 100);
+
+ try {
+ this._initialState = this._deserializeState(this.get_stateString());
+ } catch(e) {}
+
+ this._historyInitialized = true;
+ }
+ }
+ function Sys$_Application$_getHistory() {
+ var historyElement = document.getElementById('__history');
+ if (!historyElement) return '';
+ var v = historyElement.value;
+ return v ? Sys.Serialization.JavaScriptSerializer.deserialize(v, true) : '';
+ }
+ function Sys$_Application$_isSafari2() {
+ return (Sys.Browser.agent === Sys.Browser.Safari) &&
+ (Sys.Browser.version <= 419.3);
+ }
+ function Sys$_Application$_loadHandler() {
+ if(this._loadHandlerDelegate) {
+ Sys.UI.DomEvent.removeHandler(window, "load", this._loadHandlerDelegate);
+ this._loadHandlerDelegate = null;
+ }
+ this.initialize();
+ }
+ function Sys$_Application$_navigate(entry) {
+ this._ensureHistory();
+ var state = this._deserializeState(entry);
+
+ if (this._uniqueId) {
+ var oldServerEntry = this._state.__s || '';
+ var newServerEntry = state.__s || '';
+ if (newServerEntry !== oldServerEntry) {
+ this._updateHiddenField(newServerEntry);
+ __doPostBack(this._uniqueId, newServerEntry);
+ this._state = state;
+ return;
+ }
+ }
+ this._setState(entry);
+ this._state = state;
+ this._raiseNavigate();
+ }
+ function Sys$_Application$_onIdle() {
+ delete this._timerCookie;
+
+ var entry = this.get_stateString();
+ if (entry !== this._currentEntry) {
+ if (!this._ignoreTimer) {
+ this._historyPointIsNew = false;
+ this._navigate(entry);
+ this._historyLength = window.history.length;
+ }
+ }
+ else {
+ this._ignoreTimer = false;
+ }
+ this._timerCookie = window.setTimeout(this._timerHandler, 100);
+ }
+ function Sys$_Application$_onIFrameLoad(entry) {
+ this._ensureHistory();
+ if (!this._ignoreIFrame) {
+ this._historyPointIsNew = false;
+ this._navigate(entry);
+ }
+ this._ignoreIFrame = false;
+ }
+ function Sys$_Application$_onPageRequestManagerBeginRequest(sender, args) {
+ this._ignoreTimer = true;
+ }
+ function Sys$_Application$_onPageRequestManagerEndRequest(sender, args) {
+ var dataItem = args.get_dataItems()[this._clientId];
+ var eventTarget = document.getElementById("__EVENTTARGET");
+ if (eventTarget && eventTarget.value === this._uniqueId) {
+ eventTarget.value = '';
+ }
+ if (typeof(dataItem) !== 'undefined') {
+ this.setServerState(dataItem);
+ this._historyPointIsNew = true;
+ }
+ else {
+ this._ignoreTimer = false;
+ }
+ var entry = this._serializeState(this._state);
+ if (entry !== this._currentEntry) {
+ this._ignoreTimer = true;
+ this._setState(entry);
+ this._raiseNavigate();
+ }
+ }
+ function Sys$_Application$_raiseNavigate() {
+ var h = this.get_events().getHandler("navigate");
+ var stateClone = {};
+ for (var key in this._state) {
+ if (key !== '__s') {
+ stateClone[key] = this._state[key];
+ }
+ }
+ var args = new Sys.HistoryEventArgs(stateClone);
+ if (h) {
+ h(this, args);
+ }
+ }
+ function Sys$_Application$_serializeState(state) {
+ var serialized = [];
+ for (var key in state) {
+ var value = state[key];
+ if (key === '__s') {
+ var serverState = value;
+ }
+ else {
+ if (key.indexOf('=') !== -1) throw Error.argument('state', Sys.Res.stateFieldNameInvalid);
+ serialized[serialized.length] = key + '=' + encodeURIComponent(value);
+ }
+ }
+ return serialized.join('&') + (serverState ? '&&' + serverState : '');
+ }
+ function Sys$_Application$_setHistory(historyArray) {
+ var historyElement = document.getElementById('__history');
+ if (historyElement) {
+ historyElement.value = Sys.Serialization.JavaScriptSerializer.serialize(historyArray);
+ }
+ }
+ function Sys$_Application$_setState(entry, title) {
+ entry = entry || '';
+ if (entry !== this._currentEntry) {
+ if (window.theForm) {
+ var action = window.theForm.action;
+ var hashIndex = action.indexOf('#');
+ window.theForm.action = ((hashIndex !== -1) ? action.substring(0, hashIndex) : action) + '#' + entry;
+ }
+
+ if (this._historyFrame && this._historyPointIsNew) {
+ this._ignoreIFrame = true;
+ this._historyPointIsNew = false;
+ var frameDoc = this._historyFrame.contentWindow.document;
+ frameDoc.open("javascript:''");
+ frameDoc.write("" + (title || document.title) +
+ "parent.Sys.Application._onIFrameLoad('" +
+ entry + "');");
+ frameDoc.close();
+ }
+ this._ignoreTimer = false;
+ var currentHash = this.get_stateString();
+ this._currentEntry = entry;
+ if (entry !== currentHash) {
+ var loc = document.location;
+ if (loc.href.length - loc.hash.length + entry.length > 1024) {
+ throw Error.invalidOperation(Sys.Res.urlMustBeLessThan1024chars);
+ }
+ if (this._isSafari2()) {
+ var history = this._getHistory();
+ history[window.history.length - this._historyInitialLength + 1] = entry;
+ this._setHistory(history);
+ this._historyLength = window.history.length + 1;
+ var form = document.createElement('form');
+ form.method = 'get';
+ form.action = '#' + entry;
+ document.appendChild(form);
+ form.submit();
+ document.removeChild(form);
+ }
+ else {
+ window.location.hash = entry;
+ }
+ if ((typeof(title) !== 'undefined') && (title !== null)) {
+ document.title = title;
+ }
+ }
+ }
+ }
+ function Sys$_Application$_unloadHandler(event) {
+ this.dispose();
+ }
+ function Sys$_Application$_updateHiddenField(value) {
+ if (this._clientId) {
+ var serverStateField = document.getElementById(this._clientId);
+ if (serverStateField) {
+ serverStateField.value = value;
+ }
+ }
+ }
+Sys._Application.prototype = {
+ _creatingComponents: false,
+ _disposing: false,
+ get_isCreatingComponents: Sys$_Application$get_isCreatingComponents,
+ get_stateString: Sys$_Application$get_stateString,
+ get_enableHistory: Sys$_Application$get_enableHistory,
+ set_enableHistory: Sys$_Application$set_enableHistory,
+ add_init: Sys$_Application$add_init,
+ remove_init: Sys$_Application$remove_init,
+ add_load: Sys$_Application$add_load,
+ remove_load: Sys$_Application$remove_load,
+ add_navigate: Sys$_Application$add_navigate,
+ remove_navigate: Sys$_Application$remove_navigate,
+ add_unload: Sys$_Application$add_unload,
+ remove_unload: Sys$_Application$remove_unload,
+ addComponent: Sys$_Application$addComponent,
+ addHistoryPoint: Sys$_Application$addHistoryPoint,
+ beginCreateComponents: Sys$_Application$beginCreateComponents,
+ dispose: Sys$_Application$dispose,
+ endCreateComponents: Sys$_Application$endCreateComponents,
+ findComponent: Sys$_Application$findComponent,
+ getComponents: Sys$_Application$getComponents,
+ initialize: Sys$_Application$initialize,
+ notifyScriptLoaded: Sys$_Application$notifyScriptLoaded,
+ registerDisposableObject: Sys$_Application$registerDisposableObject,
+ raiseLoad: Sys$_Application$raiseLoad,
+ removeComponent: Sys$_Application$removeComponent,
+ setServerId: Sys$_Application$setServerId,
+ setServerState: Sys$_Application$setServerState,
+ unregisterDisposableObject: Sys$_Application$unregisterDisposableObject,
+ _addComponentToSecondPass: Sys$_Application$_addComponentToSecondPass,
+ _deserializeState: Sys$_Application$_deserializeState,
+ _doInitialize: Sys$_Application$_doInitialize,
+ _enableHistoryInScriptManager: Sys$_Application$_enableHistoryInScriptManager,
+ _ensureHistory: Sys$_Application$_ensureHistory,
+ _getHistory: Sys$_Application$_getHistory,
+ _isSafari2: Sys$_Application$_isSafari2,
+ _loadHandler: Sys$_Application$_loadHandler,
+ _navigate: Sys$_Application$_navigate,
+ _onIdle: Sys$_Application$_onIdle,
+ _onIFrameLoad: Sys$_Application$_onIFrameLoad,
+ _onPageRequestManagerBeginRequest: Sys$_Application$_onPageRequestManagerBeginRequest,
+ _onPageRequestManagerEndRequest: Sys$_Application$_onPageRequestManagerEndRequest,
+ _raiseNavigate: Sys$_Application$_raiseNavigate,
+ _serializeState: Sys$_Application$_serializeState,
+ _setHistory: Sys$_Application$_setHistory,
+ _setState: Sys$_Application$_setState,
+ _unloadHandler: Sys$_Application$_unloadHandler,
+ _updateHiddenField: Sys$_Application$_updateHiddenField
+}
+Sys._Application.registerClass('Sys._Application', Sys.Component, Sys.IContainer);
+Sys.Application = new Sys._Application();
+var $find = Sys.Application.findComponent;
+Type.registerNamespace('Sys.Net');
+
+Sys.Net.WebRequestExecutor = function Sys$Net$WebRequestExecutor() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ this._webRequest = null;
+ this._resultObject = null;
+}
+ function Sys$Net$WebRequestExecutor$get_webRequest() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._webRequest;
+ }
+ function Sys$Net$WebRequestExecutor$_set_webRequest(value) {
+ if (this.get_started()) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, 'set_webRequest'));
+ }
+ this._webRequest = value;
+ }
+ function Sys$Net$WebRequestExecutor$get_started() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$get_responseAvailable() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$get_timedOut() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$get_aborted() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$get_responseData() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$get_statusCode() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$get_statusText() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$get_xml() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$get_object() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._resultObject) {
+ this._resultObject = Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData());
+ }
+ return this._resultObject;
+ }
+ function Sys$Net$WebRequestExecutor$executeRequest() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$abort() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$getResponseHeader(header) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "header", type: String}
+ ]);
+ if (e) throw e;
+ throw Error.notImplemented();
+ }
+ function Sys$Net$WebRequestExecutor$getAllResponseHeaders() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+ }
+Sys.Net.WebRequestExecutor.prototype = {
+ get_webRequest: Sys$Net$WebRequestExecutor$get_webRequest,
+ _set_webRequest: Sys$Net$WebRequestExecutor$_set_webRequest,
+ get_started: Sys$Net$WebRequestExecutor$get_started,
+ get_responseAvailable: Sys$Net$WebRequestExecutor$get_responseAvailable,
+ get_timedOut: Sys$Net$WebRequestExecutor$get_timedOut,
+ get_aborted: Sys$Net$WebRequestExecutor$get_aborted,
+ get_responseData: Sys$Net$WebRequestExecutor$get_responseData,
+ get_statusCode: Sys$Net$WebRequestExecutor$get_statusCode,
+ get_statusText: Sys$Net$WebRequestExecutor$get_statusText,
+ get_xml: Sys$Net$WebRequestExecutor$get_xml,
+ get_object: Sys$Net$WebRequestExecutor$get_object,
+ executeRequest: Sys$Net$WebRequestExecutor$executeRequest,
+ abort: Sys$Net$WebRequestExecutor$abort,
+ getResponseHeader: Sys$Net$WebRequestExecutor$getResponseHeader,
+ getAllResponseHeaders: Sys$Net$WebRequestExecutor$getAllResponseHeaders
+}
+Sys.Net.WebRequestExecutor.registerClass('Sys.Net.WebRequestExecutor');
+
+Sys.Net.XMLDOM = function Sys$Net$XMLDOM(markup) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "markup", type: String}
+ ]);
+ if (e) throw e;
+ if (!window.DOMParser) {
+ var progIDs = [ 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' ];
+ for (var i = 0, l = progIDs.length; i < l; i++) {
+ try {
+ var xmlDOM = new ActiveXObject(progIDs[i]);
+ xmlDOM.async = false;
+ xmlDOM.loadXML(markup);
+ xmlDOM.setProperty('SelectionLanguage', 'XPath');
+ return xmlDOM;
+ }
+ catch (ex) {
+ }
+ }
+ }
+ else {
+ try {
+ var domParser = new window.DOMParser();
+ return domParser.parseFromString(markup, 'text/xml');
+ }
+ catch (ex) {
+ }
+ }
+ return null;
+}
+Sys.Net.XMLHttpExecutor = function Sys$Net$XMLHttpExecutor() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ Sys.Net.XMLHttpExecutor.initializeBase(this);
+ var _this = this;
+ this._xmlHttpRequest = null;
+ this._webRequest = null;
+ this._responseAvailable = false;
+ this._timedOut = false;
+ this._timer = null;
+ this._aborted = false;
+ this._started = false;
+ this._onReadyStateChange = (function () {
+
+ if (_this._xmlHttpRequest.readyState === 4 ) {
+ try {
+ if (typeof(_this._xmlHttpRequest.status) === "undefined") {
+ return;
+ }
+ }
+ catch(ex) {
+ return;
+ }
+
+ _this._clearTimer();
+ _this._responseAvailable = true;
+ try {
+ _this._webRequest.completed(Sys.EventArgs.Empty);
+ }
+ finally {
+ if (_this._xmlHttpRequest != null) {
+ _this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
+ _this._xmlHttpRequest = null;
+ }
+ }
+ }
+ });
+ this._clearTimer = (function() {
+ if (_this._timer != null) {
+ window.clearTimeout(_this._timer);
+ _this._timer = null;
+ }
+ });
+ this._onTimeout = (function() {
+ if (!_this._responseAvailable) {
+ _this._clearTimer();
+ _this._timedOut = true;
+ _this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
+ _this._xmlHttpRequest.abort();
+ _this._webRequest.completed(Sys.EventArgs.Empty);
+ _this._xmlHttpRequest = null;
+ }
+ });
+}
+ function Sys$Net$XMLHttpExecutor$get_timedOut() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._timedOut;
+ }
+ function Sys$Net$XMLHttpExecutor$get_started() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._started;
+ }
+ function Sys$Net$XMLHttpExecutor$get_responseAvailable() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._responseAvailable;
+ }
+ function Sys$Net$XMLHttpExecutor$get_aborted() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._aborted;
+ }
+ function Sys$Net$XMLHttpExecutor$executeRequest() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ this._webRequest = this.get_webRequest();
+ if (this._started) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, 'executeRequest'));
+ }
+ if (this._webRequest === null) {
+ throw Error.invalidOperation(Sys.Res.nullWebRequest);
+ }
+ var body = this._webRequest.get_body();
+ var headers = this._webRequest.get_headers();
+ this._xmlHttpRequest = new XMLHttpRequest();
+ this._xmlHttpRequest.onreadystatechange = this._onReadyStateChange;
+ var verb = this._webRequest.get_httpVerb();
+ this._xmlHttpRequest.open(verb, this._webRequest.getResolvedUrl(), true );
+ if (headers) {
+ for (var header in headers) {
+ var val = headers[header];
+ if (typeof(val) !== "function")
+ this._xmlHttpRequest.setRequestHeader(header, val);
+ }
+ }
+ if (verb.toLowerCase() === "post") {
+ if ((headers === null) || !headers['Content-Type']) {
+ this._xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
+ }
+ if (!body) {
+ body = "";
+ }
+ }
+ var timeout = this._webRequest.get_timeout();
+ if (timeout > 0) {
+ this._timer = window.setTimeout(Function.createDelegate(this, this._onTimeout), timeout);
+ }
+ this._xmlHttpRequest.send(body);
+ this._started = true;
+ }
+ function Sys$Net$XMLHttpExecutor$getResponseHeader(header) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "header", type: String}
+ ]);
+ if (e) throw e;
+ if (!this._responseAvailable) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'getResponseHeader'));
+ }
+ if (!this._xmlHttpRequest) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'getResponseHeader'));
+ }
+ var result;
+ try {
+ result = this._xmlHttpRequest.getResponseHeader(header);
+ } catch (e) {
+ }
+ if (!result) result = "";
+ return result;
+ }
+ function Sys$Net$XMLHttpExecutor$getAllResponseHeaders() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._responseAvailable) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'getAllResponseHeaders'));
+ }
+ if (!this._xmlHttpRequest) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'getAllResponseHeaders'));
+ }
+ return this._xmlHttpRequest.getAllResponseHeaders();
+ }
+ function Sys$Net$XMLHttpExecutor$get_responseData() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._responseAvailable) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_responseData'));
+ }
+ if (!this._xmlHttpRequest) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_responseData'));
+ }
+ return this._xmlHttpRequest.responseText;
+ }
+ function Sys$Net$XMLHttpExecutor$get_statusCode() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._responseAvailable) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_statusCode'));
+ }
+ if (!this._xmlHttpRequest) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_statusCode'));
+ }
+ var result = 0;
+ try {
+ result = this._xmlHttpRequest.status;
+ }
+ catch(ex) {
+ }
+ return result;
+ }
+ function Sys$Net$XMLHttpExecutor$get_statusText() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._responseAvailable) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_statusText'));
+ }
+ if (!this._xmlHttpRequest) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_statusText'));
+ }
+ return this._xmlHttpRequest.statusText;
+ }
+ function Sys$Net$XMLHttpExecutor$get_xml() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._responseAvailable) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_xml'));
+ }
+ if (!this._xmlHttpRequest) {
+ throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_xml'));
+ }
+ var xml = this._xmlHttpRequest.responseXML;
+ if (!xml || !xml.documentElement) {
+ xml = Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);
+ if (!xml || !xml.documentElement)
+ return null;
+ }
+ else if (navigator.userAgent.indexOf('MSIE') !== -1) {
+ xml.setProperty('SelectionLanguage', 'XPath');
+ }
+ if (xml.documentElement.namespaceURI === "http://www.mozilla.org/newlayout/xml/parsererror.xml" &&
+ xml.documentElement.tagName === "parsererror") {
+ return null;
+ }
+
+ if (xml.documentElement.firstChild && xml.documentElement.firstChild.tagName === "parsererror") {
+ return null;
+ }
+
+ return xml;
+ }
+ function Sys$Net$XMLHttpExecutor$abort() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._started) {
+ throw Error.invalidOperation(Sys.Res.cannotAbortBeforeStart);
+ }
+ if (this._aborted || this._responseAvailable || this._timedOut)
+ return;
+ this._aborted = true;
+ this._clearTimer();
+ if (this._xmlHttpRequest && !this._responseAvailable) {
+ this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
+ this._xmlHttpRequest.abort();
+
+ this._xmlHttpRequest = null;
+ this._webRequest.completed(Sys.EventArgs.Empty);
+ }
+ }
+Sys.Net.XMLHttpExecutor.prototype = {
+ get_timedOut: Sys$Net$XMLHttpExecutor$get_timedOut,
+ get_started: Sys$Net$XMLHttpExecutor$get_started,
+ get_responseAvailable: Sys$Net$XMLHttpExecutor$get_responseAvailable,
+ get_aborted: Sys$Net$XMLHttpExecutor$get_aborted,
+ executeRequest: Sys$Net$XMLHttpExecutor$executeRequest,
+ getResponseHeader: Sys$Net$XMLHttpExecutor$getResponseHeader,
+ getAllResponseHeaders: Sys$Net$XMLHttpExecutor$getAllResponseHeaders,
+ get_responseData: Sys$Net$XMLHttpExecutor$get_responseData,
+ get_statusCode: Sys$Net$XMLHttpExecutor$get_statusCode,
+ get_statusText: Sys$Net$XMLHttpExecutor$get_statusText,
+ get_xml: Sys$Net$XMLHttpExecutor$get_xml,
+ abort: Sys$Net$XMLHttpExecutor$abort
+}
+Sys.Net.XMLHttpExecutor.registerClass('Sys.Net.XMLHttpExecutor', Sys.Net.WebRequestExecutor);
+
+Sys.Net._WebRequestManager = function Sys$Net$_WebRequestManager() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ this._defaultTimeout = 0;
+ this._defaultExecutorType = "Sys.Net.XMLHttpExecutor";
+}
+ function Sys$Net$_WebRequestManager$add_invokingRequest(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this._get_eventHandlerList().addHandler("invokingRequest", handler);
+ }
+ function Sys$Net$_WebRequestManager$remove_invokingRequest(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this._get_eventHandlerList().removeHandler("invokingRequest", handler);
+ }
+ function Sys$Net$_WebRequestManager$add_completedRequest(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this._get_eventHandlerList().addHandler("completedRequest", handler);
+ }
+ function Sys$Net$_WebRequestManager$remove_completedRequest(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this._get_eventHandlerList().removeHandler("completedRequest", handler);
+ }
+ function Sys$Net$_WebRequestManager$_get_eventHandlerList() {
+ if (!this._events) {
+ this._events = new Sys.EventHandlerList();
+ }
+ return this._events;
+ }
+ function Sys$Net$_WebRequestManager$get_defaultTimeout() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._defaultTimeout;
+ }
+ function Sys$Net$_WebRequestManager$set_defaultTimeout(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
+ if (e) throw e;
+ if (value < 0) {
+ throw Error.argumentOutOfRange("value", value, Sys.Res.invalidTimeout);
+ }
+ this._defaultTimeout = value;
+ }
+ function Sys$Net$_WebRequestManager$get_defaultExecutorType() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._defaultExecutorType;
+ }
+ function Sys$Net$_WebRequestManager$set_defaultExecutorType(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: String}]);
+ if (e) throw e;
+ this._defaultExecutorType = value;
+ }
+ function Sys$Net$_WebRequestManager$executeRequest(webRequest) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "webRequest", type: Sys.Net.WebRequest}
+ ]);
+ if (e) throw e;
+ var executor = webRequest.get_executor();
+ if (!executor) {
+ var failed = false;
+ try {
+ var executorType = eval(this._defaultExecutorType);
+ executor = new executorType();
+ } catch (e) {
+ failed = true;
+ }
+ if (failed || !Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) {
+ throw Error.argument("defaultExecutorType", String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType));
+ }
+ webRequest.set_executor(executor);
+ }
+ if (executor.get_aborted()) {
+ return;
+ }
+ var evArgs = new Sys.Net.NetworkRequestEventArgs(webRequest);
+ var handler = this._get_eventHandlerList().getHandler("invokingRequest");
+ if (handler) {
+ handler(this, evArgs);
+ }
+ if (!evArgs.get_cancel()) {
+ executor.executeRequest();
+ }
+ }
+Sys.Net._WebRequestManager.prototype = {
+ add_invokingRequest: Sys$Net$_WebRequestManager$add_invokingRequest,
+ remove_invokingRequest: Sys$Net$_WebRequestManager$remove_invokingRequest,
+ add_completedRequest: Sys$Net$_WebRequestManager$add_completedRequest,
+ remove_completedRequest: Sys$Net$_WebRequestManager$remove_completedRequest,
+ _get_eventHandlerList: Sys$Net$_WebRequestManager$_get_eventHandlerList,
+ get_defaultTimeout: Sys$Net$_WebRequestManager$get_defaultTimeout,
+ set_defaultTimeout: Sys$Net$_WebRequestManager$set_defaultTimeout,
+ get_defaultExecutorType: Sys$Net$_WebRequestManager$get_defaultExecutorType,
+ set_defaultExecutorType: Sys$Net$_WebRequestManager$set_defaultExecutorType,
+ executeRequest: Sys$Net$_WebRequestManager$executeRequest
+}
+Sys.Net._WebRequestManager.registerClass('Sys.Net._WebRequestManager');
+Sys.Net.WebRequestManager = new Sys.Net._WebRequestManager();
+
+Sys.Net.NetworkRequestEventArgs = function Sys$Net$NetworkRequestEventArgs(webRequest) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "webRequest", type: Sys.Net.WebRequest}
+ ]);
+ if (e) throw e;
+ Sys.Net.NetworkRequestEventArgs.initializeBase(this);
+ this._webRequest = webRequest;
+}
+ function Sys$Net$NetworkRequestEventArgs$get_webRequest() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._webRequest;
+ }
+Sys.Net.NetworkRequestEventArgs.prototype = {
+ get_webRequest: Sys$Net$NetworkRequestEventArgs$get_webRequest
+}
+Sys.Net.NetworkRequestEventArgs.registerClass('Sys.Net.NetworkRequestEventArgs', Sys.CancelEventArgs);
+
+Sys.Net.WebRequest = function Sys$Net$WebRequest() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ this._url = "";
+ this._headers = { };
+ this._body = null;
+ this._userContext = null;
+ this._httpVerb = null;
+ this._executor = null;
+ this._invokeCalled = false;
+ this._timeout = 0;
+}
+ function Sys$Net$WebRequest$add_completed(handler) {
+ ///
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this._get_eventHandlerList().addHandler("completed", handler);
+ }
+ function Sys$Net$WebRequest$remove_completed(handler) {
+ var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
+ if (e) throw e;
+ this._get_eventHandlerList().removeHandler("completed", handler);
+ }
+ function Sys$Net$WebRequest$completed(eventArgs) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "eventArgs", type: Sys.EventArgs}
+ ]);
+ if (e) throw e;
+ var handler = Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRequest");
+ if (handler) {
+ handler(this._executor, eventArgs);
+ }
+ handler = this._get_eventHandlerList().getHandler("completed");
+ if (handler) {
+ handler(this._executor, eventArgs);
+ }
+ }
+ function Sys$Net$WebRequest$_get_eventHandlerList() {
+ if (!this._events) {
+ this._events = new Sys.EventHandlerList();
+ }
+ return this._events;
+ }
+ function Sys$Net$WebRequest$get_url() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._url;
+ }
+ function Sys$Net$WebRequest$set_url(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: String}]);
+ if (e) throw e;
+ this._url = value;
+ }
+ function Sys$Net$WebRequest$get_headers() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._headers;
+ }
+ function Sys$Net$WebRequest$get_httpVerb() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (this._httpVerb === null) {
+ if (this._body === null) {
+ return "GET";
+ }
+ return "POST";
+ }
+ return this._httpVerb;
+ }
+ function Sys$Net$WebRequest$set_httpVerb(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: String}]);
+ if (e) throw e;
+ if (value.length === 0) {
+ throw Error.argument('value', Sys.Res.invalidHttpVerb);
+ }
+ this._httpVerb = value;
+ }
+ function Sys$Net$WebRequest$get_body() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._body;
+ }
+ function Sys$Net$WebRequest$set_body(value) {
+ var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]);
+ if (e) throw e;
+ this._body = value;
+ }
+ function Sys$Net$WebRequest$get_userContext() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._userContext;
+ }
+ function Sys$Net$WebRequest$set_userContext(value) {
+ var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]);
+ if (e) throw e;
+ this._userContext = value;
+ }
+ function Sys$Net$WebRequest$get_executor() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._executor;
+ }
+ function Sys$Net$WebRequest$set_executor(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Sys.Net.WebRequestExecutor}]);
+ if (e) throw e;
+ if (this._executor !== null && this._executor.get_started()) {
+ throw Error.invalidOperation(Sys.Res.setExecutorAfterActive);
+ }
+ this._executor = value;
+ this._executor._set_webRequest(this);
+ }
+ function Sys$Net$WebRequest$get_timeout() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (this._timeout === 0) {
+ return Sys.Net.WebRequestManager.get_defaultTimeout();
+ }
+ return this._timeout;
+ }
+ function Sys$Net$WebRequest$set_timeout(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
+ if (e) throw e;
+ if (value < 0) {
+ throw Error.argumentOutOfRange("value", value, Sys.Res.invalidTimeout);
+ }
+ this._timeout = value;
+ }
+ function Sys$Net$WebRequest$getResolvedUrl() {
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return Sys.Net.WebRequest._resolveUrl(this._url);
+ }
+ function Sys$Net$WebRequest$invoke() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (this._invokeCalled) {
+ throw Error.invalidOperation(Sys.Res.invokeCalledTwice);
+ }
+ Sys.Net.WebRequestManager.executeRequest(this);
+ this._invokeCalled = true;
+ }
+Sys.Net.WebRequest.prototype = {
+ add_completed: Sys$Net$WebRequest$add_completed,
+ remove_completed: Sys$Net$WebRequest$remove_completed,
+ completed: Sys$Net$WebRequest$completed,
+ _get_eventHandlerList: Sys$Net$WebRequest$_get_eventHandlerList,
+ get_url: Sys$Net$WebRequest$get_url,
+ set_url: Sys$Net$WebRequest$set_url,
+ get_headers: Sys$Net$WebRequest$get_headers,
+ get_httpVerb: Sys$Net$WebRequest$get_httpVerb,
+ set_httpVerb: Sys$Net$WebRequest$set_httpVerb,
+ get_body: Sys$Net$WebRequest$get_body,
+ set_body: Sys$Net$WebRequest$set_body,
+ get_userContext: Sys$Net$WebRequest$get_userContext,
+ set_userContext: Sys$Net$WebRequest$set_userContext,
+ get_executor: Sys$Net$WebRequest$get_executor,
+ set_executor: Sys$Net$WebRequest$set_executor,
+ get_timeout: Sys$Net$WebRequest$get_timeout,
+ set_timeout: Sys$Net$WebRequest$set_timeout,
+ getResolvedUrl: Sys$Net$WebRequest$getResolvedUrl,
+ invoke: Sys$Net$WebRequest$invoke
+}
+Sys.Net.WebRequest._resolveUrl = function Sys$Net$WebRequest$_resolveUrl(url, baseUrl) {
+ if (url && url.indexOf('://') !== -1) {
+ return url;
+ }
+ if (!baseUrl || baseUrl.length === 0) {
+ var baseElement = document.getElementsByTagName('base')[0];
+ if (baseElement && baseElement.href && baseElement.href.length > 0) {
+ baseUrl = baseElement.href;
+ }
+ else {
+ baseUrl = document.URL;
+ }
+ }
+ var qsStart = baseUrl.indexOf('?');
+ if (qsStart !== -1) {
+ baseUrl = baseUrl.substr(0, qsStart);
+ }
+ qsStart = baseUrl.indexOf('#');
+ if (qsStart !== -1) {
+ baseUrl = baseUrl.substr(0, qsStart);
+ }
+ baseUrl = baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);
+ if (!url || url.length === 0) {
+ return baseUrl;
+ }
+ if (url.charAt(0) === '/') {
+ var slashslash = baseUrl.indexOf('://');
+ if (slashslash === -1) {
+ throw Error.argument("baseUrl", Sys.Res.badBaseUrl1);
+ }
+ var nextSlash = baseUrl.indexOf('/', slashslash + 3);
+ if (nextSlash === -1) {
+ throw Error.argument("baseUrl", Sys.Res.badBaseUrl2);
+ }
+ return baseUrl.substr(0, nextSlash) + url;
+ }
+ else {
+ var lastSlash = baseUrl.lastIndexOf('/');
+ if (lastSlash === -1) {
+ throw Error.argument("baseUrl", Sys.Res.badBaseUrl3);
+ }
+ return baseUrl.substr(0, lastSlash+1) + url;
+ }
+}
+Sys.Net.WebRequest._createQueryString = function Sys$Net$WebRequest$_createQueryString(queryString, encodeMethod) {
+ if (!encodeMethod)
+ encodeMethod = encodeURIComponent;
+ var sb = new Sys.StringBuilder();
+ var i = 0;
+ for (var arg in queryString) {
+ var obj = queryString[arg];
+ if (typeof(obj) === "function") continue;
+ var val = Sys.Serialization.JavaScriptSerializer.serialize(obj);
+ if (i !== 0) {
+ sb.append('&');
+ }
+ sb.append(arg);
+ sb.append('=');
+ sb.append(encodeMethod(val));
+ i++;
+ }
+ return sb.toString();
+}
+Sys.Net.WebRequest._createUrl = function Sys$Net$WebRequest$_createUrl(url, queryString) {
+ if (!queryString) {
+ return url;
+ }
+ var qs = Sys.Net.WebRequest._createQueryString(queryString);
+ if (qs.length > 0) {
+ var sep = '?';
+ if (url && url.indexOf('?') !== -1)
+ sep = '&';
+ return url + sep + qs;
+ } else {
+ return url;
+ }
+}
+Sys.Net.WebRequest.registerClass('Sys.Net.WebRequest');
+
+Sys.Net.WebServiceProxy = function Sys$Net$WebServiceProxy() {
+}
+ function Sys$Net$WebServiceProxy$get_timeout() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._timeout;
+ }
+ function Sys$Net$WebServiceProxy$set_timeout(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
+ if (e) throw e;
+ if (value < 0) { throw Error.argumentOutOfRange('value', value, Sys.Res.invalidTimeout); }
+ this._timeout = value;
+ }
+ function Sys$Net$WebServiceProxy$get_defaultUserContext() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._userContext;
+ }
+ function Sys$Net$WebServiceProxy$set_defaultUserContext(value) {
+ var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]);
+ if (e) throw e;
+ this._userContext = value;
+ }
+ function Sys$Net$WebServiceProxy$get_defaultSucceededCallback() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._succeeded;
+ }
+ function Sys$Net$WebServiceProxy$set_defaultSucceededCallback(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
+ if (e) throw e;
+ this._succeeded = value;
+ }
+ function Sys$Net$WebServiceProxy$get_defaultFailedCallback() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._failed;
+ }
+ function Sys$Net$WebServiceProxy$set_defaultFailedCallback(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
+ if (e) throw e;
+ this._failed = value;
+ }
+ function Sys$Net$WebServiceProxy$get_path() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._path;
+ }
+ function Sys$Net$WebServiceProxy$set_path(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: String}]);
+ if (e) throw e;
+ this._path = value;
+ }
+ function Sys$Net$WebServiceProxy$_invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "servicePath", type: String},
+ {name: "methodName", type: String},
+ {name: "useGet", type: Boolean},
+ {name: "params"},
+ {name: "onSuccess", type: Function, mayBeNull: true, optional: true},
+ {name: "onFailure", type: Function, mayBeNull: true, optional: true},
+ {name: "userContext", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ if (onSuccess === null || typeof onSuccess === 'undefined') onSuccess = this.get_defaultSucceededCallback();
+ if (onFailure === null || typeof onFailure === 'undefined') onFailure = this.get_defaultFailedCallback();
+ if (userContext === null || typeof userContext === 'undefined') userContext = this.get_defaultUserContext();
+
+ return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext, this.get_timeout());
+ }
+Sys.Net.WebServiceProxy.prototype = {
+ get_timeout: Sys$Net$WebServiceProxy$get_timeout,
+ set_timeout: Sys$Net$WebServiceProxy$set_timeout,
+ get_defaultUserContext: Sys$Net$WebServiceProxy$get_defaultUserContext,
+ set_defaultUserContext: Sys$Net$WebServiceProxy$set_defaultUserContext,
+ get_defaultSucceededCallback: Sys$Net$WebServiceProxy$get_defaultSucceededCallback,
+ set_defaultSucceededCallback: Sys$Net$WebServiceProxy$set_defaultSucceededCallback,
+ get_defaultFailedCallback: Sys$Net$WebServiceProxy$get_defaultFailedCallback,
+ set_defaultFailedCallback: Sys$Net$WebServiceProxy$set_defaultFailedCallback,
+ get_path: Sys$Net$WebServiceProxy$get_path,
+ set_path: Sys$Net$WebServiceProxy$set_path,
+ _invoke: Sys$Net$WebServiceProxy$_invoke
+}
+Sys.Net.WebServiceProxy.registerClass('Sys.Net.WebServiceProxy');
+Sys.Net.WebServiceProxy.invoke = function Sys$Net$WebServiceProxy$invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext, timeout) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "servicePath", type: String},
+ {name: "methodName", type: String},
+ {name: "useGet", type: Boolean, optional: true},
+ {name: "params", mayBeNull: true, optional: true},
+ {name: "onSuccess", type: Function, mayBeNull: true, optional: true},
+ {name: "onFailure", type: Function, mayBeNull: true, optional: true},
+ {name: "userContext", mayBeNull: true, optional: true},
+ {name: "timeout", type: Number, optional: true}
+ ]);
+ if (e) throw e;
+ var request = new Sys.Net.WebRequest();
+ request.get_headers()['Content-Type'] = 'application/json; charset=utf-8';
+ if (!params) params = {};
+ var urlParams = params;
+ if (!useGet || !urlParams) urlParams = {};
+ request.set_url(Sys.Net.WebRequest._createUrl(servicePath+"/"+encodeURIComponent(methodName), urlParams));
+ var body = null;
+ if (!useGet) {
+ body = Sys.Serialization.JavaScriptSerializer.serialize(params);
+ if (body === "{}") body = "";
+ }
+ request.set_body(body);
+ request.add_completed(onComplete);
+ if (timeout && timeout > 0) request.set_timeout(timeout);
+ request.invoke();
+ function onComplete(response, eventArgs) {
+ if (response.get_responseAvailable()) {
+ var statusCode = response.get_statusCode();
+ var result = null;
+
+ try {
+ var contentType = response.getResponseHeader("Content-Type");
+ if (contentType.startsWith("application/json")) {
+ result = response.get_object();
+ }
+ else if (contentType.startsWith("text/xml")) {
+ result = response.get_xml();
+ }
+ else {
+ result = response.get_responseData();
+ }
+ } catch (ex) {
+ }
+ var error = response.getResponseHeader("jsonerror");
+ var errorObj = (error === "true");
+ if (errorObj) {
+ if (result) {
+ result = new Sys.Net.WebServiceError(false, result.Message, result.StackTrace, result.ExceptionType);
+ }
+ }
+ else if (contentType.startsWith("application/json")) {
+ if (!result || typeof(result.d) === "undefined") {
+ throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceInvalidJsonWrapper, methodName));
+ }
+ result = result.d;
+ }
+ if (((statusCode < 200) || (statusCode >= 300)) || errorObj) {
+ if (onFailure) {
+ if (!result || !errorObj) {
+ result = new Sys.Net.WebServiceError(false , String.format(Sys.Res.webServiceFailedNoMsg, methodName), "", "");
+ }
+ result._statusCode = statusCode;
+ onFailure(result, userContext, methodName);
+ }
+ else {
+ var error;
+ if (result && errorObj) {
+ error = result.get_exceptionType() + "-- " + result.get_message();
+ }
+ else {
+ error = response.get_responseData();
+ }
+ throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceFailed, methodName, error));
+ }
+ }
+ else if (onSuccess) {
+ onSuccess(result, userContext, methodName);
+ }
+ }
+ else {
+ var msg;
+ if (response.get_timedOut()) {
+ msg = String.format(Sys.Res.webServiceTimedOut, methodName);
+ }
+ else {
+ msg = String.format(Sys.Res.webServiceFailedNoMsg, methodName)
+ }
+ if (onFailure) {
+ onFailure(new Sys.Net.WebServiceError(response.get_timedOut(), msg, "", ""), userContext, methodName);
+ }
+ else {
+ throw Sys.Net.WebServiceProxy._createFailedError(methodName, msg);
+ }
+ }
+ }
+ return request;
+}
+Sys.Net.WebServiceProxy._createFailedError = function Sys$Net$WebServiceProxy$_createFailedError(methodName, errorMessage) {
+ var displayMessage = "Sys.Net.WebServiceFailedException: " + errorMessage;
+ var e = Error.create(displayMessage, { 'name': 'Sys.Net.WebServiceFailedException', 'methodName': methodName });
+ e.popStackFrame();
+ return e;
+}
+Sys.Net.WebServiceProxy._defaultFailedCallback = function Sys$Net$WebServiceProxy$_defaultFailedCallback(err, methodName) {
+ var error = err.get_exceptionType() + "-- " + err.get_message();
+ throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceFailed, methodName, error));
+}
+Sys.Net.WebServiceProxy._generateTypedConstructor = function Sys$Net$WebServiceProxy$_generateTypedConstructor(type) {
+ return function(properties) {
+ if (properties) {
+ for (var name in properties) {
+ this[name] = properties[name];
+ }
+ }
+ this.__type = type;
+ }
+}
+
+Sys.Net.WebServiceError = function Sys$Net$WebServiceError(timedOut, message, stackTrace, exceptionType) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "timedOut", type: Boolean},
+ {name: "message", type: String, mayBeNull: true},
+ {name: "stackTrace", type: String, mayBeNull: true},
+ {name: "exceptionType", type: String, mayBeNull: true}
+ ]);
+ if (e) throw e;
+ this._timedOut = timedOut;
+ this._message = message;
+ this._stackTrace = stackTrace;
+ this._exceptionType = exceptionType;
+ this._statusCode = -1;
+}
+ function Sys$Net$WebServiceError$get_timedOut() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._timedOut;
+ }
+ function Sys$Net$WebServiceError$get_statusCode() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._statusCode;
+ }
+ function Sys$Net$WebServiceError$get_message() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._message;
+ }
+ function Sys$Net$WebServiceError$get_stackTrace() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._stackTrace;
+ }
+ function Sys$Net$WebServiceError$get_exceptionType() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._exceptionType;
+ }
+Sys.Net.WebServiceError.prototype = {
+ get_timedOut: Sys$Net$WebServiceError$get_timedOut,
+ get_statusCode: Sys$Net$WebServiceError$get_statusCode,
+ get_message: Sys$Net$WebServiceError$get_message,
+ get_stackTrace: Sys$Net$WebServiceError$get_stackTrace,
+ get_exceptionType: Sys$Net$WebServiceError$get_exceptionType
+}
+Sys.Net.WebServiceError.registerClass('Sys.Net.WebServiceError');
+Type.registerNamespace('Sys.Services');
+Sys.Services._ProfileService = function Sys$Services$_ProfileService() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ Sys.Services._ProfileService.initializeBase(this);
+ this.properties = {};
+}
+Sys.Services._ProfileService.DefaultWebServicePath = '';
+ function Sys$Services$_ProfileService$get_defaultLoadCompletedCallback() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._defaultLoadCompletedCallback;
+ }
+ function Sys$Services$_ProfileService$set_defaultLoadCompletedCallback(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
+ if (e) throw e;
+ this._defaultLoadCompletedCallback = value;
+ }
+ function Sys$Services$_ProfileService$get_defaultSaveCompletedCallback() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._defaultSaveCompletedCallback;
+ }
+ function Sys$Services$_ProfileService$set_defaultSaveCompletedCallback(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
+ if (e) throw e;
+ this._defaultSaveCompletedCallback = value;
+ }
+ function Sys$Services$_ProfileService$get_path() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._path || '';
+ }
+ function Sys$Services$_ProfileService$load(propertyNames, loadCompletedCallback, failedCallback, userContext) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "propertyNames", type: Array, mayBeNull: true, optional: true, elementType: String},
+ {name: "loadCompletedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "userContext", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var parameters;
+ var methodName;
+ if (!propertyNames) {
+ methodName = "GetAllPropertiesForCurrentUser";
+ parameters = { authenticatedUserOnly: false };
+ }
+ else {
+ methodName = "GetPropertiesForCurrentUser";
+ parameters = { properties: this._clonePropertyNames(propertyNames), authenticatedUserOnly: false };
+ }
+ this._invoke(this._get_path(),
+ methodName,
+ false,
+ parameters,
+ Function.createDelegate(this, this._onLoadComplete),
+ Function.createDelegate(this, this._onLoadFailed),
+ [loadCompletedCallback, failedCallback, userContext]);
+ }
+ function Sys$Services$_ProfileService$save(propertyNames, saveCompletedCallback, failedCallback, userContext) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "propertyNames", type: Array, mayBeNull: true, optional: true, elementType: String},
+ {name: "saveCompletedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "userContext", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ var flattenedProperties = this._flattenProperties(propertyNames, this.properties);
+ this._invoke(this._get_path(),
+ "SetPropertiesForCurrentUser",
+ false,
+ { values: flattenedProperties.value, authenticatedUserOnly: false },
+ Function.createDelegate(this, this._onSaveComplete),
+ Function.createDelegate(this, this._onSaveFailed),
+ [saveCompletedCallback, failedCallback, userContext, flattenedProperties.count]);
+ }
+ function Sys$Services$_ProfileService$_clonePropertyNames(arr) {
+ var nodups = [];
+ var seen = {};
+ for (var i=0; i < arr.length; i++) {
+ var prop = arr[i];
+ if(!seen[prop]) { Array.add(nodups, prop); seen[prop]=true; };
+ }
+ return nodups;
+ }
+ function Sys$Services$_ProfileService$_flattenProperties(propertyNames, properties, groupName) {
+ var flattenedProperties = {};
+ var val;
+ var key;
+ var count = 0;
+ if (propertyNames && propertyNames.length === 0) {
+ return { value: flattenedProperties, count: 0 };
+ }
+ for (var property in properties) {
+ val = properties[property];
+ key = groupName ? groupName + "." + property : property;
+ if(Sys.Services.ProfileGroup.isInstanceOfType(val)) {
+ var obj = this._flattenProperties(propertyNames, val, key);
+ var groupProperties = obj.value;
+ count += obj.count;
+ for(var subKey in groupProperties) {
+ var subVal = groupProperties[subKey];
+ flattenedProperties[subKey] = subVal;
+ }
+ }
+ else {
+ if(!propertyNames || Array.indexOf(propertyNames, key) !== -1) {
+ flattenedProperties[key] = val;
+ count++;
+ }
+ }
+ }
+ return { value: flattenedProperties, count: count };
+ }
+ function Sys$Services$_ProfileService$_get_path() {
+ var path = this.get_path();
+ if (!path.length) {
+ path = Sys.Services._ProfileService.DefaultWebServicePath;
+ }
+ if (!path || !path.length) {
+ throw Error.invalidOperation(Sys.Res.servicePathNotSet);
+ }
+ return path;
+ }
+ function Sys$Services$_ProfileService$_onLoadComplete(result, context, methodName) {
+ if (typeof(result) !== "object") {
+ throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Object"));
+ }
+ var unflattened = this._unflattenProperties(result);
+ for (var name in unflattened) {
+ this.properties[name] = unflattened[name];
+ }
+
+ var callback = context[0] || this.get_defaultLoadCompletedCallback() || this.get_defaultSucceededCallback();
+ if (callback) {
+ var userContext = context[2] || this.get_defaultUserContext();
+ callback(result.length, userContext, "Sys.Services.ProfileService.load");
+ }
+ }
+ function Sys$Services$_ProfileService$_onLoadFailed(err, context, methodName) {
+ var callback = context[1] || this.get_defaultFailedCallback();
+ if (callback) {
+ var userContext = context[2] || this.get_defaultUserContext();
+ callback(err, userContext, "Sys.Services.ProfileService.load");
+ }
+ else {
+ Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
+ }
+ }
+ function Sys$Services$_ProfileService$_onSaveComplete(result, context, methodName) {
+ var count = context[3];
+ if (result !== null) {
+ if (result instanceof Array) {
+ count -= result.length;
+ }
+ else if (typeof(result) === 'number') {
+ count = result;
+ }
+ else {
+ throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Array"));
+ }
+ }
+
+ var callback = context[0] || this.get_defaultSaveCompletedCallback() || this.get_defaultSucceededCallback();
+ if (callback) {
+ var userContext = context[2] || this.get_defaultUserContext();
+ callback(count, userContext, "Sys.Services.ProfileService.save");
+ }
+ }
+ function Sys$Services$_ProfileService$_onSaveFailed(err, context, methodName) {
+ var callback = context[1] || this.get_defaultFailedCallback();
+ if (callback) {
+ var userContext = context[2] || this.get_defaultUserContext();
+ callback(err, userContext, "Sys.Services.ProfileService.save");
+ }
+ else {
+ Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
+ }
+ }
+ function Sys$Services$_ProfileService$_unflattenProperties(properties) {
+ var unflattenedProperties = {};
+ var dotIndex;
+ var val;
+ var count = 0;
+ for (var key in properties) {
+ count++;
+ val = properties[key];
+ dotIndex = key.indexOf('.');
+ if (dotIndex !== -1) {
+ var groupName = key.substr(0, dotIndex);
+ key = key.substr(dotIndex+1);
+ var group = unflattenedProperties[groupName];
+ if (!group || !Sys.Services.ProfileGroup.isInstanceOfType(group)) {
+ group = new Sys.Services.ProfileGroup();
+ unflattenedProperties[groupName] = group;
+ }
+ group[key] = val;
+ }
+ else {
+ unflattenedProperties[key] = val;
+ }
+ }
+ properties.length = count;
+ return unflattenedProperties;
+ }
+Sys.Services._ProfileService.prototype = {
+ _defaultLoadCompletedCallback: null,
+ _defaultSaveCompletedCallback: null,
+ _path: '',
+ _timeout: 0,
+ get_defaultLoadCompletedCallback: Sys$Services$_ProfileService$get_defaultLoadCompletedCallback,
+ set_defaultLoadCompletedCallback: Sys$Services$_ProfileService$set_defaultLoadCompletedCallback,
+ get_defaultSaveCompletedCallback: Sys$Services$_ProfileService$get_defaultSaveCompletedCallback,
+ set_defaultSaveCompletedCallback: Sys$Services$_ProfileService$set_defaultSaveCompletedCallback,
+ get_path: Sys$Services$_ProfileService$get_path,
+ load: Sys$Services$_ProfileService$load,
+ save: Sys$Services$_ProfileService$save,
+ _clonePropertyNames: Sys$Services$_ProfileService$_clonePropertyNames,
+ _flattenProperties: Sys$Services$_ProfileService$_flattenProperties,
+ _get_path: Sys$Services$_ProfileService$_get_path,
+ _onLoadComplete: Sys$Services$_ProfileService$_onLoadComplete,
+ _onLoadFailed: Sys$Services$_ProfileService$_onLoadFailed,
+ _onSaveComplete: Sys$Services$_ProfileService$_onSaveComplete,
+ _onSaveFailed: Sys$Services$_ProfileService$_onSaveFailed,
+ _unflattenProperties: Sys$Services$_ProfileService$_unflattenProperties
+}
+Sys.Services._ProfileService.registerClass('Sys.Services._ProfileService', Sys.Net.WebServiceProxy);
+Sys.Services.ProfileService = new Sys.Services._ProfileService();
+Sys.Services.ProfileGroup = function Sys$Services$ProfileGroup(properties) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "properties", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ if (properties) {
+ for (var property in properties) {
+ this[property] = properties[property];
+ }
+ }
+}
+Sys.Services.ProfileGroup.registerClass('Sys.Services.ProfileGroup');
+Sys.Services._AuthenticationService = function Sys$Services$_AuthenticationService() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ Sys.Services._AuthenticationService.initializeBase(this);
+}
+Sys.Services._AuthenticationService.DefaultWebServicePath = '';
+ function Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._defaultLoginCompletedCallback;
+ }
+ function Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
+ if (e) throw e;
+ this._defaultLoginCompletedCallback = value;
+ }
+ function Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._defaultLogoutCompletedCallback;
+ }
+ function Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
+ if (e) throw e;
+ this._defaultLogoutCompletedCallback = value;
+ }
+ function Sys$Services$_AuthenticationService$get_isLoggedIn() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._authenticated;
+ }
+ function Sys$Services$_AuthenticationService$get_path() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._path || '';
+ }
+ function Sys$Services$_AuthenticationService$login(username, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "username", type: String},
+ {name: "password", type: String, mayBeNull: true},
+ {name: "isPersistent", type: Boolean, mayBeNull: true, optional: true},
+ {name: "customInfo", type: String, mayBeNull: true, optional: true},
+ {name: "redirectUrl", type: String, mayBeNull: true, optional: true},
+ {name: "loginCompletedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "userContext", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ this._invoke(this._get_path(), "Login", false,
+ { userName: username, password: password, createPersistentCookie: isPersistent },
+ Function.createDelegate(this, this._onLoginComplete),
+ Function.createDelegate(this, this._onLoginFailed),
+ [username, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext]);
+ }
+ function Sys$Services$_AuthenticationService$logout(redirectUrl, logoutCompletedCallback, failedCallback, userContext) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "redirectUrl", type: String, mayBeNull: true, optional: true},
+ {name: "logoutCompletedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "userContext", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ this._invoke(this._get_path(), "Logout", false, {},
+ Function.createDelegate(this, this._onLogoutComplete),
+ Function.createDelegate(this, this._onLogoutFailed),
+ [redirectUrl, logoutCompletedCallback, failedCallback, userContext]);
+ }
+ function Sys$Services$_AuthenticationService$_get_path() {
+ var path = this.get_path();
+ if(!path.length) {
+ path = Sys.Services._AuthenticationService.DefaultWebServicePath;
+ }
+ if(!path || !path.length) {
+ throw Error.invalidOperation(Sys.Res.servicePathNotSet);
+ }
+ return path;
+ }
+ function Sys$Services$_AuthenticationService$_onLoginComplete(result, context, methodName) {
+ if(typeof(result) !== "boolean") {
+ throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Boolean"));
+ }
+
+ var redirectUrl = context[4];
+ var userContext = context[7] || this.get_defaultUserContext();
+ var callback = context[5] || this.get_defaultLoginCompletedCallback() || this.get_defaultSucceededCallback();
+
+ if(result) {
+ this._authenticated = true;
+ if (callback) {
+ callback(true, userContext, "Sys.Services.AuthenticationService.login");
+ }
+
+ if (typeof(redirectUrl) !== "undefined" && redirectUrl !== null) {
+ window.location.href = redirectUrl;
+ }
+ }
+ else if (callback) {
+ callback(false, userContext, "Sys.Services.AuthenticationService.login");
+ }
+ }
+ function Sys$Services$_AuthenticationService$_onLoginFailed(err, context, methodName) {
+ var callback = context[6] || this.get_defaultFailedCallback();
+ if (callback) {
+ var userContext = context[7] || this.get_defaultUserContext();
+ callback(err, userContext, "Sys.Services.AuthenticationService.login");
+ }
+ else {
+ Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
+ }
+ }
+ function Sys$Services$_AuthenticationService$_onLogoutComplete(result, context, methodName) {
+ if(result !== null) {
+ throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "null"));
+ }
+
+ var redirectUrl = context[0];
+ var userContext = context[3] || this.get_defaultUserContext();
+ var callback = context[1] || this.get_defaultLogoutCompletedCallback() || this.get_defaultSucceededCallback();
+ this._authenticated = false;
+
+ if (callback) {
+ callback(null, userContext, "Sys.Services.AuthenticationService.logout");
+ }
+
+ if(!redirectUrl) {
+ window.location.reload();
+ }
+ else {
+ window.location.href = redirectUrl;
+ }
+ }
+ function Sys$Services$_AuthenticationService$_onLogoutFailed(err, context, methodName) {
+ var callback = context[2] || this.get_defaultFailedCallback();
+ if (callback) {
+ callback(err, context[3], "Sys.Services.AuthenticationService.logout");
+ }
+ else {
+ Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
+ }
+ }
+ function Sys$Services$_AuthenticationService$_setAuthenticated(authenticated) {
+ this._authenticated = authenticated;
+ }
+Sys.Services._AuthenticationService.prototype = {
+ _defaultLoginCompletedCallback: null,
+ _defaultLogoutCompletedCallback: null,
+ _path: '',
+ _timeout: 0,
+ _authenticated: false,
+ get_defaultLoginCompletedCallback: Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback,
+ set_defaultLoginCompletedCallback: Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback,
+ get_defaultLogoutCompletedCallback: Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback,
+ set_defaultLogoutCompletedCallback: Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback,
+ get_isLoggedIn: Sys$Services$_AuthenticationService$get_isLoggedIn,
+ get_path: Sys$Services$_AuthenticationService$get_path,
+ login: Sys$Services$_AuthenticationService$login,
+ logout: Sys$Services$_AuthenticationService$logout,
+ _get_path: Sys$Services$_AuthenticationService$_get_path,
+ _onLoginComplete: Sys$Services$_AuthenticationService$_onLoginComplete,
+ _onLoginFailed: Sys$Services$_AuthenticationService$_onLoginFailed,
+ _onLogoutComplete: Sys$Services$_AuthenticationService$_onLogoutComplete,
+ _onLogoutFailed: Sys$Services$_AuthenticationService$_onLogoutFailed,
+ _setAuthenticated: Sys$Services$_AuthenticationService$_setAuthenticated
+}
+Sys.Services._AuthenticationService.registerClass('Sys.Services._AuthenticationService', Sys.Net.WebServiceProxy);
+Sys.Services.AuthenticationService = new Sys.Services._AuthenticationService();
+Sys.Services._RoleService = function Sys$Services$_RoleService() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ Sys.Services._RoleService.initializeBase(this);
+ this._roles = [];
+}
+Sys.Services._RoleService.DefaultWebServicePath = '';
+ function Sys$Services$_RoleService$get_defaultLoadCompletedCallback() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._defaultLoadCompletedCallback;
+ }
+ function Sys$Services$_RoleService$set_defaultLoadCompletedCallback(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
+ if (e) throw e;
+ this._defaultLoadCompletedCallback = value;
+ }
+ function Sys$Services$_RoleService$get_path() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._path || '';
+ }
+ function Sys$Services$_RoleService$get_roles() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return Array.clone(this._roles);
+ }
+ function Sys$Services$_RoleService$isUserInRole(role) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "role", type: String}
+ ]);
+ if (e) throw e;
+ var v = this._get_rolesIndex()[role.trim().toLowerCase()];
+ return !!v;
+ }
+ function Sys$Services$_RoleService$load(loadCompletedCallback, failedCallback, userContext) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "loadCompletedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
+ {name: "userContext", mayBeNull: true, optional: true}
+ ]);
+ if (e) throw e;
+ Sys.Net.WebServiceProxy.invoke(
+ this._get_path(),
+ "GetRolesForCurrentUser",
+ false,
+ {} ,
+ Function.createDelegate(this, this._onLoadComplete),
+ Function.createDelegate(this, this._onLoadFailed),
+ [loadCompletedCallback, failedCallback, userContext],
+ this.get_timeout());
+ }
+ function Sys$Services$_RoleService$_get_path() {
+ var path = this.get_path();
+ if(!path || !path.length) {
+ path = Sys.Services._RoleService.DefaultWebServicePath;
+ }
+ if(!path || !path.length) {
+ throw Error.invalidOperation(Sys.Res.servicePathNotSet);
+ }
+ return path;
+ }
+ function Sys$Services$_RoleService$_get_rolesIndex() {
+ if (!this._rolesIndex) {
+ var index = {};
+ for(var i=0; i < this._roles.length; i++) {
+ index[this._roles[i].toLowerCase()] = true;
+ }
+ this._rolesIndex = index;
+ }
+ return this._rolesIndex;
+ }
+ function Sys$Services$_RoleService$_onLoadComplete(result, context, methodName) {
+ if(result && !(result instanceof Array)) {
+ throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Array"));
+ }
+ this._roles = result;
+ this._rolesIndex = null;
+ var callback = context[0] || this.get_defaultLoadCompletedCallback() || this.get_defaultSucceededCallback();
+ if (callback) {
+ var userContext = context[2] || this.get_defaultUserContext();
+ var clonedResult = Array.clone(result);
+ callback(clonedResult, userContext, "Sys.Services.RoleService.load");
+ }
+ }
+ function Sys$Services$_RoleService$_onLoadFailed(err, context, methodName) {
+ var callback = context[1] || this.get_defaultFailedCallback();
+ if (callback) {
+ var userContext = context[2] || this.get_defaultUserContext();
+ callback(err, userContext, "Sys.Services.RoleService.load");
+ }
+ else {
+ Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
+ }
+ }
+Sys.Services._RoleService.prototype = {
+ _defaultLoadCompletedCallback: null,
+ _rolesIndex: null,
+ _timeout: 0,
+ _path: '',
+ get_defaultLoadCompletedCallback: Sys$Services$_RoleService$get_defaultLoadCompletedCallback,
+ set_defaultLoadCompletedCallback: Sys$Services$_RoleService$set_defaultLoadCompletedCallback,
+ get_path: Sys$Services$_RoleService$get_path,
+ get_roles: Sys$Services$_RoleService$get_roles,
+ isUserInRole: Sys$Services$_RoleService$isUserInRole,
+ load: Sys$Services$_RoleService$load,
+ _get_path: Sys$Services$_RoleService$_get_path,
+ _get_rolesIndex: Sys$Services$_RoleService$_get_rolesIndex,
+ _onLoadComplete: Sys$Services$_RoleService$_onLoadComplete,
+ _onLoadFailed: Sys$Services$_RoleService$_onLoadFailed
+}
+Sys.Services._RoleService.registerClass('Sys.Services._RoleService', Sys.Net.WebServiceProxy);
+Sys.Services.RoleService = new Sys.Services._RoleService();
+Type.registerNamespace('Sys.Serialization');
+Sys.Serialization.JavaScriptSerializer = function Sys$Serialization$JavaScriptSerializer() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+}
+Sys.Serialization.JavaScriptSerializer.registerClass('Sys.Serialization.JavaScriptSerializer');
+Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs = [];
+Sys.Serialization.JavaScriptSerializer._charsToEscape = [];
+Sys.Serialization.JavaScriptSerializer._dateRegEx = new RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\\/\\"', 'g');
+Sys.Serialization.JavaScriptSerializer._escapeChars = {};
+Sys.Serialization.JavaScriptSerializer._escapeRegEx = new RegExp('["\\\\\\x00-\\x1F]', 'i');
+Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal = new RegExp('["\\\\\\x00-\\x1F]', 'g');
+Sys.Serialization.JavaScriptSerializer._jsonRegEx = new RegExp('[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]', 'g');
+Sys.Serialization.JavaScriptSerializer._jsonStringRegEx = new RegExp('"(\\\\.|[^"\\\\])*"', 'g');
+Sys.Serialization.JavaScriptSerializer._serverTypeFieldName = '__type';
+Sys.Serialization.JavaScriptSerializer._init = function Sys$Serialization$JavaScriptSerializer$_init() {
+ var replaceChars = ['\\u0000','\\u0001','\\u0002','\\u0003','\\u0004','\\u0005','\\u0006','\\u0007',
+ '\\b','\\t','\\n','\\u000b','\\f','\\r','\\u000e','\\u000f','\\u0010','\\u0011',
+ '\\u0012','\\u0013','\\u0014','\\u0015','\\u0016','\\u0017','\\u0018','\\u0019',
+ '\\u001a','\\u001b','\\u001c','\\u001d','\\u001e','\\u001f'];
+ Sys.Serialization.JavaScriptSerializer._charsToEscape[0] = '\\';
+ Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['\\'] = new RegExp('\\\\', 'g');
+ Sys.Serialization.JavaScriptSerializer._escapeChars['\\'] = '\\\\';
+ Sys.Serialization.JavaScriptSerializer._charsToEscape[1] = '"';
+ Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['"'] = new RegExp('"', 'g');
+ Sys.Serialization.JavaScriptSerializer._escapeChars['"'] = '\\"';
+ for (var i = 0; i < 32; i++) {
+ var c = String.fromCharCode(i);
+ Sys.Serialization.JavaScriptSerializer._charsToEscape[i+2] = c;
+ Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c] = new RegExp(c, 'g');
+ Sys.Serialization.JavaScriptSerializer._escapeChars[c] = replaceChars[i];
+ }
+}
+Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeBooleanWithBuilder(object, stringBuilder) {
+ stringBuilder.append(object.toString());
+}
+Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeNumberWithBuilder(object, stringBuilder) {
+ if (isFinite(object)) {
+ stringBuilder.append(String(object));
+ }
+ else {
+ throw Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);
+ }
+}
+Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeStringWithBuilder(string, stringBuilder) {
+ stringBuilder.append('"');
+ if (Sys.Serialization.JavaScriptSerializer._escapeRegEx.test(string)) {
+ if (Sys.Serialization.JavaScriptSerializer._charsToEscape.length === 0) {
+ Sys.Serialization.JavaScriptSerializer._init();
+ }
+ if (string.length < 128) {
+ string = string.replace(Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal,
+ function(x) { return Sys.Serialization.JavaScriptSerializer._escapeChars[x]; });
+ }
+ else {
+ for (var i = 0; i < 34; i++) {
+ var c = Sys.Serialization.JavaScriptSerializer._charsToEscape[i];
+ if (string.indexOf(c) !== -1) {
+ if (Sys.Browser.agent === Sys.Browser.Opera || Sys.Browser.agent === Sys.Browser.FireFox) {
+ string = string.split(c).join(Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
+ }
+ else {
+ string = string.replace(Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c],
+ Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
+ }
+ }
+ }
+ }
+ }
+ stringBuilder.append(string);
+ stringBuilder.append('"');
+}
+Sys.Serialization.JavaScriptSerializer._serializeWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeWithBuilder(object, stringBuilder, sort, prevObjects) {
+ var i;
+ switch (typeof object) {
+ case 'object':
+ if (object) {
+ if (prevObjects){
+ for( var j = 0; j < prevObjects.length; j++) {
+ if (prevObjects[j] === object) {
+ throw Error.invalidOperation(Sys.Res.cannotSerializeObjectWithCycle);
+ }
+ }
+ }
+ else {
+ prevObjects = new Array();
+ }
+ try {
+ Array.add(prevObjects, object);
+
+ if (Number.isInstanceOfType(object)){
+ Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object, stringBuilder);
+ }
+ else if (Boolean.isInstanceOfType(object)){
+ Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(object, stringBuilder);
+ }
+ else if (String.isInstanceOfType(object)){
+ Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object, stringBuilder);
+ }
+
+ else if (Array.isInstanceOfType(object)) {
+ stringBuilder.append('[');
+
+ for (i = 0; i < object.length; ++i) {
+ if (i > 0) {
+ stringBuilder.append(',');
+ }
+ Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object[i], stringBuilder,false,prevObjects);
+ }
+ stringBuilder.append(']');
+ }
+ else {
+ if (Date.isInstanceOfType(object)) {
+ stringBuilder.append('"\\/Date(');
+ stringBuilder.append(object.getTime());
+ stringBuilder.append(')\\/"');
+ break;
+ }
+ var properties = [];
+ var propertyCount = 0;
+ for (var name in object) {
+ if (name.startsWith('$')) {
+ continue;
+ }
+ if (name === Sys.Serialization.JavaScriptSerializer._serverTypeFieldName && propertyCount !== 0){
+ properties[propertyCount++] = properties[0];
+ properties[0] = name;
+ }
+ else{
+ properties[propertyCount++] = name;
+ }
+ }
+ if (sort) properties.sort();
+ stringBuilder.append('{');
+ var needComma = false;
+
+ for (i=0; i
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "object", mayBeNull: true}
+ ]);
+ if (e) throw e;
+ var stringBuilder = new Sys.StringBuilder();
+ Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object, stringBuilder, false);
+ return stringBuilder.toString();
+}
+Sys.Serialization.JavaScriptSerializer.deserialize = function Sys$Serialization$JavaScriptSerializer$deserialize(data, secure) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "data", type: String},
+ {name: "secure", type: Boolean, optional: true}
+ ]);
+ if (e) throw e;
+
+ if (data.length === 0) throw Error.argument('data', Sys.Res.cannotDeserializeEmptyString);
+ try {
+ var exp = data.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx, "$1new Date($2)");
+
+ if (secure && Sys.Serialization.JavaScriptSerializer._jsonRegEx.test(
+ exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx, ''))) throw null;
+ return eval('(' + exp + ')');
+ }
+ catch (e) {
+ throw Error.argument('data', Sys.Res.cannotDeserializeInvalidJson);
+ }
+}
+
+Sys.CultureInfo = function Sys$CultureInfo(name, numberFormat, dateTimeFormat) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "name", type: String},
+ {name: "numberFormat", type: Object},
+ {name: "dateTimeFormat", type: Object}
+ ]);
+ if (e) throw e;
+ this.name = name;
+ this.numberFormat = numberFormat;
+ this.dateTimeFormat = dateTimeFormat;
+}
+ function Sys$CultureInfo$_getDateTimeFormats() {
+ if (! this._dateTimeFormats) {
+ var dtf = this.dateTimeFormat;
+ this._dateTimeFormats =
+ [ dtf.MonthDayPattern,
+ dtf.YearMonthPattern,
+ dtf.ShortDatePattern,
+ dtf.ShortTimePattern,
+ dtf.LongDatePattern,
+ dtf.LongTimePattern,
+ dtf.FullDateTimePattern,
+ dtf.RFC1123Pattern,
+ dtf.SortableDateTimePattern,
+ dtf.UniversalSortableDateTimePattern ];
+ }
+ return this._dateTimeFormats;
+ }
+ function Sys$CultureInfo$_getMonthIndex(value) {
+ if (!this._upperMonths) {
+ this._upperMonths = this._toUpperArray(this.dateTimeFormat.MonthNames);
+ }
+ return Array.indexOf(this._upperMonths, this._toUpper(value));
+ }
+ function Sys$CultureInfo$_getAbbrMonthIndex(value) {
+ if (!this._upperAbbrMonths) {
+ this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
+ }
+ return Array.indexOf(this._upperAbbrMonths, this._toUpper(value));
+ }
+ function Sys$CultureInfo$_getDayIndex(value) {
+ if (!this._upperDays) {
+ this._upperDays = this._toUpperArray(this.dateTimeFormat.DayNames);
+ }
+ return Array.indexOf(this._upperDays, this._toUpper(value));
+ }
+ function Sys$CultureInfo$_getAbbrDayIndex(value) {
+ if (!this._upperAbbrDays) {
+ this._upperAbbrDays = this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);
+ }
+ return Array.indexOf(this._upperAbbrDays, this._toUpper(value));
+ }
+ function Sys$CultureInfo$_toUpperArray(arr) {
+ var result = [];
+ for (var i = 0, il = arr.length; i < il; i++) {
+ result[i] = this._toUpper(arr[i]);
+ }
+ return result;
+ }
+ function Sys$CultureInfo$_toUpper(value) {
+ return value.split("\u00A0").join(' ').toUpperCase();
+ }
+Sys.CultureInfo.prototype = {
+ _getDateTimeFormats: Sys$CultureInfo$_getDateTimeFormats,
+ _getMonthIndex: Sys$CultureInfo$_getMonthIndex,
+ _getAbbrMonthIndex: Sys$CultureInfo$_getAbbrMonthIndex,
+ _getDayIndex: Sys$CultureInfo$_getDayIndex,
+ _getAbbrDayIndex: Sys$CultureInfo$_getAbbrDayIndex,
+ _toUpperArray: Sys$CultureInfo$_toUpperArray,
+ _toUpper: Sys$CultureInfo$_toUpper
+}
+Sys.CultureInfo._parse = function Sys$CultureInfo$_parse(value) {
+ var cultureInfo = Sys.Serialization.JavaScriptSerializer.deserialize(value);
+ return new Sys.CultureInfo(cultureInfo.name, cultureInfo.numberFormat, cultureInfo.dateTimeFormat);
+}
+Sys.CultureInfo.registerClass('Sys.CultureInfo');
+Sys.CultureInfo.InvariantCulture = Sys.CultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":true,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]}}');
+if (typeof(__cultureInfo) === 'undefined') {
+ var __cultureInfo = '{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":false},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM dd, yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm tt","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"MMMM, yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":false,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]}}';
+}
+Sys.CultureInfo.CurrentCulture = Sys.CultureInfo._parse(__cultureInfo);
+delete __cultureInfo;
+
+Sys.UI.Behavior = function Sys$UI$Behavior(element) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ Sys.UI.Behavior.initializeBase(this);
+ this._element = element;
+ var behaviors = element._behaviors;
+ if (!behaviors) {
+ element._behaviors = [this];
+ }
+ else {
+ behaviors[behaviors.length] = this;
+ }
+}
+ function Sys$UI$Behavior$get_element() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._element;
+ }
+ function Sys$UI$Behavior$get_id() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ var baseId = Sys.UI.Behavior.callBaseMethod(this, 'get_id');
+ if (baseId) return baseId;
+ if (!this._element || !this._element.id) return '';
+ return this._element.id + '$' + this.get_name();
+ }
+ function Sys$UI$Behavior$get_name() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (this._name) return this._name;
+ var name = Object.getTypeName(this);
+ var i = name.lastIndexOf('.');
+ if (i != -1) name = name.substr(i + 1);
+ if (!this.get_isInitialized()) this._name = name;
+ return name;
+ }
+ function Sys$UI$Behavior$set_name(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: String}]);
+ if (e) throw e;
+ if ((value === '') || (value.charAt(0) === ' ') || (value.charAt(value.length - 1) === ' '))
+ throw Error.argument('value', Sys.Res.invalidId);
+ if (typeof(this._element[value]) !== 'undefined')
+ throw Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, value));
+ if (this.get_isInitialized()) throw Error.invalidOperation(Sys.Res.cantSetNameAfterInit);
+ this._name = value;
+ }
+ function Sys$UI$Behavior$initialize() {
+ Sys.UI.Behavior.callBaseMethod(this, 'initialize');
+ var name = this.get_name();
+ if (name) this._element[name] = this;
+ }
+ function Sys$UI$Behavior$dispose() {
+ Sys.UI.Behavior.callBaseMethod(this, 'dispose');
+ if (this._element) {
+ var name = this.get_name();
+ if (name) {
+ this._element[name] = null;
+ }
+ Array.remove(this._element._behaviors, this);
+ delete this._element;
+ }
+ }
+Sys.UI.Behavior.prototype = {
+ _name: null,
+ get_element: Sys$UI$Behavior$get_element,
+ get_id: Sys$UI$Behavior$get_id,
+ get_name: Sys$UI$Behavior$get_name,
+ set_name: Sys$UI$Behavior$set_name,
+ initialize: Sys$UI$Behavior$initialize,
+ dispose: Sys$UI$Behavior$dispose
+}
+Sys.UI.Behavior.registerClass('Sys.UI.Behavior', Sys.Component);
+Sys.UI.Behavior.getBehaviorByName = function Sys$UI$Behavior$getBehaviorByName(element, name) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true},
+ {name: "name", type: String}
+ ]);
+ if (e) throw e;
+ var b = element[name];
+ return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null;
+}
+Sys.UI.Behavior.getBehaviors = function Sys$UI$Behavior$getBehaviors(element) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ if (!element._behaviors) return [];
+ return Array.clone(element._behaviors);
+}
+Sys.UI.Behavior.getBehaviorsByType = function Sys$UI$Behavior$getBehaviorsByType(element, type) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true},
+ {name: "type", type: Type}
+ ]);
+ if (e) throw e;
+ var behaviors = element._behaviors;
+ var results = [];
+ if (behaviors) {
+ for (var i = 0, l = behaviors.length; i < l; i++) {
+ if (type.isInstanceOfType(behaviors[i])) {
+ results[results.length] = behaviors[i];
+ }
+ }
+ }
+ return results;
+}
+
+Sys.UI.VisibilityMode = function Sys$UI$VisibilityMode() {
+ ///
+ ///
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ throw Error.notImplemented();
+}
+Sys.UI.VisibilityMode.prototype = {
+ hide: 0,
+ collapse: 1
+}
+Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");
+
+Sys.UI.Control = function Sys$UI$Control(element) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "element", domElement: true}
+ ]);
+ if (e) throw e;
+ if (typeof(element.control) != 'undefined') throw Error.invalidOperation(Sys.Res.controlAlreadyDefined);
+ Sys.UI.Control.initializeBase(this);
+ this._element = element;
+ element.control = this;
+}
+ function Sys$UI$Control$get_element() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ return this._element;
+ }
+ function Sys$UI$Control$get_id() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._element) return '';
+ return this._element.id;
+ }
+ function Sys$UI$Control$set_id(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: String}]);
+ if (e) throw e;
+ throw Error.invalidOperation(Sys.Res.cantSetId);
+ }
+ function Sys$UI$Control$get_parent() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (this._parent) return this._parent;
+ if (!this._element) return null;
+
+ var parentElement = this._element.parentNode;
+ while (parentElement) {
+ if (parentElement.control) {
+ return parentElement.control;
+ }
+ parentElement = parentElement.parentNode;
+ }
+ return null;
+ }
+ function Sys$UI$Control$set_parent(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Sys.UI.Control}]);
+ if (e) throw e;
+ if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
+ var parents = [this];
+ var current = value;
+ while (current) {
+ if (Array.contains(parents, current)) throw Error.invalidOperation(Sys.Res.circularParentChain);
+ parents[parents.length] = current;
+ current = current.get_parent();
+ }
+ this._parent = value;
+ }
+ function Sys$UI$Control$get_visibilityMode() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
+ return Sys.UI.DomElement.getVisibilityMode(this._element);
+ }
+ function Sys$UI$Control$set_visibilityMode(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Sys.UI.VisibilityMode}]);
+ if (e) throw e;
+ if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
+ Sys.UI.DomElement.setVisibilityMode(this._element, value);
+ }
+ function Sys$UI$Control$get_visible() {
+ ///
+ if (arguments.length !== 0) throw Error.parameterCount();
+ if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
+ return Sys.UI.DomElement.getVisible(this._element);
+ }
+ function Sys$UI$Control$set_visible(value) {
+ var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
+ if (e) throw e;
+ if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
+ Sys.UI.DomElement.setVisible(this._element, value)
+ }
+ function Sys$UI$Control$addCssClass(className) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "className", type: String}
+ ]);
+ if (e) throw e;
+ if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
+ Sys.UI.DomElement.addCssClass(this._element, className);
+ }
+ function Sys$UI$Control$dispose() {
+ Sys.UI.Control.callBaseMethod(this, 'dispose');
+ if (this._element) {
+ this._element.control = undefined;
+ delete this._element;
+ }
+ if (this._parent) delete this._parent;
+ }
+ function Sys$UI$Control$onBubbleEvent(source, args) {
+ ///
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "source"},
+ {name: "args", type: Sys.EventArgs}
+ ]);
+ if (e) throw e;
+ return false;
+ }
+ function Sys$UI$Control$raiseBubbleEvent(source, args) {
+ ///
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "source"},
+ {name: "args", type: Sys.EventArgs}
+ ]);
+ if (e) throw e;
+ var currentTarget = this.get_parent();
+ while (currentTarget) {
+ if (currentTarget.onBubbleEvent(source, args)) {
+ return;
+ }
+ currentTarget = currentTarget.get_parent();
+ }
+ }
+ function Sys$UI$Control$removeCssClass(className) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "className", type: String}
+ ]);
+ if (e) throw e;
+ if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
+ Sys.UI.DomElement.removeCssClass(this._element, className);
+ }
+ function Sys$UI$Control$toggleCssClass(className) {
+ ///
+ ///
+ var e = Function._validateParams(arguments, [
+ {name: "className", type: String}
+ ]);
+ if (e) throw e;
+ if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
+ Sys.UI.DomElement.toggleCssClass(this._element, className);
+ }
+Sys.UI.Control.prototype = {
+ _parent: null,
+ _visibilityMode: Sys.UI.VisibilityMode.hide,
+ get_element: Sys$UI$Control$get_element,
+ get_id: Sys$UI$Control$get_id,
+ set_id: Sys$UI$Control$set_id,
+ get_parent: Sys$UI$Control$get_parent,
+ set_parent: Sys$UI$Control$set_parent,
+ get_visibilityMode: Sys$UI$Control$get_visibilityMode,
+ set_visibilityMode: Sys$UI$Control$set_visibilityMode,
+ get_visible: Sys$UI$Control$get_visible,
+ set_visible: Sys$UI$Control$set_visible,
+ addCssClass: Sys$UI$Control$addCssClass,
+ dispose: Sys$UI$Control$dispose,
+ onBubbleEvent: Sys$UI$Control$onBubbleEvent,
+ raiseBubbleEvent: Sys$UI$Control$raiseBubbleEvent,
+ removeCssClass: Sys$UI$Control$removeCssClass,
+ toggleCssClass: Sys$UI$Control$toggleCssClass
+}
+Sys.UI.Control.registerClass('Sys.UI.Control', Sys.Component);
+
+
+Type.registerNamespace('Sys');
+
+Sys.Res={
+'urlMustBeLessThan1024chars':'The history state must be small enough to not make the url larger than 1024 characters.',
+'argumentTypeName':'Value is not the name of an existing type.',
+'methodRegisteredTwice':'Method {0} has already been registered.',
+'cantSetIdAfterInit':'The id property can\'t be set on this object after initialization.',
+'cantBeCalledAfterDispose':'Can\'t be called after dispose.',
+'componentCantSetIdAfterAddedToApp':'The id property of a component can\'t be set after it\'s been added to the Application object.',
+'behaviorDuplicateName':'A behavior with name \'{0}\' already exists or it is the name of an existing property on the target element.',
+'notATypeName':'Value is not a valid type name.',
+'typeShouldBeTypeOrString':'Value is not a valid type or a valid type name.',
+'historyInvalidHistorySettingCombination':'Cannot set enableHistory to false when ScriptManager.EnableHistory is true.',
+'stateMustBeStringDictionary':'The state object can only have null and string fields.',
+'boolTrueOrFalse':'Value must be \'true\' or \'false\'.',
+'scriptLoadFailedNoHead':'ScriptLoader requires pages to contain a element.',
+'stringFormatInvalid':'The format string is invalid.',
+'referenceNotFound':'Component \'{0}\' was not found.',
+'enumReservedName':'\'{0}\' is a reserved name that can\'t be used as an enum value name.',
+'eventHandlerNotFound':'Handler not found.',
+'circularParentChain':'The chain of control parents can\'t have circular references.',
+'undefinedEvent':'\'{0}\' is not an event.',
+'notAMethod':'{0} is not a method.',
+'propertyUndefined':'\'{0}\' is not a property or an existing field.',
+'historyCannotEnableHistory':'Cannot set enableHistory after initialization.',
+'eventHandlerInvalid':'Handler was not added through the Sys.UI.DomEvent.addHandler method.',
+'scriptLoadFailedDebug':'The script \'{0}\' failed to load. Check for:\r\n Inaccessible path.\r\n Script errors. (IE) Enable \'Display a notification about every script error\' under advanced settings.\r\n Missing call to Sys.Application.notifyScriptLoaded().',
+'propertyNotWritable':'\'{0}\' is not a writable property.',
+'enumInvalidValueName':'\'{0}\' is not a valid name for an enum value.',
+'controlAlreadyDefined':'A control is already associated with the element.',
+'addHandlerCantBeUsedForError':'Can\'t add a handler for the error event using this method. Please set the window.onerror property instead.',
+'namespaceContainsObject':'Object {0} already exists and is not a namespace.',
+'cantAddNonFunctionhandler':'Can\'t add a handler that is not a function.',
+'invalidNameSpace':'Value is not a valid namespace identifier.',
+'notAnInterface':'Value is not a valid interface.',
+'eventHandlerNotFunction':'Handler must be a function.',
+'propertyNotAnArray':'\'{0}\' is not an Array property.',
+'typeRegisteredTwice':'Type {0} has already been registered. The type may be defined multiple times or the script file that defines it may have already been loaded. A possible cause is a change of settings during a partial update.',
+'cantSetNameAfterInit':'The name property can\'t be set on this object after initialization.',
+'historyMissingFrame':'For the history feature to work in IE, the page must have an iFrame element with id \'__historyFrame\' pointed to a page that gets its title from the \'title\' query string parameter and calls Sys.Application._onIFrameLoad() on the parent window. This can be done by setting EnableHistory to true on ScriptManager.',
+'appDuplicateComponent':'Two components with the same id \'{0}\' can\'t be added to the application.',
+'historyCannotAddHistoryPointWithHistoryDisabled':'A history point can only be added if enableHistory is set to true.',
+'appComponentMustBeInitialized':'Components must be initialized before they are added to the Application object.',
+'baseNotAClass':'Value is not a class.',
+'methodNotFound':'No method found with name \'{0}\'.',
+'arrayParseBadFormat':'Value must be a valid string representation for an array. It must start with a \'[\' and end with a \']\'.',
+'stateFieldNameInvalid':'State field names must not contain any \'=\' characters.',
+'cantSetId':'The id property can\'t be set on this object.',
+'historyMissingHiddenInput':'For the history feature to work in Safari 2, the page must have a hidden input element with id \'__history\'.',
+'stringFormatBraceMismatch':'The format string contains an unmatched opening or closing brace.',
+'enumValueNotInteger':'An enumeration definition can only contain integer values.',
+'propertyNullOrUndefined':'Cannot set the properties of \'{0}\' because it returned a null value.',
+'argumentDomNode':'Value must be a DOM element or a text node.',
+'componentCantSetIdTwice':'The id property of a component can\'t be set more than once.',
+'createComponentOnDom':'Value must be null for Components that are not Controls or Behaviors.',
+'createNotComponent':'{0} does not derive from Sys.Component.',
+'createNoDom':'Value must not be null for Controls and Behaviors.',
+'cantAddWithoutId':'Can\'t add a component that doesn\'t have an id.',
+'badTypeName':'Value is not the name of the type being registered or the name is a reserved word.',
+'argumentInteger':'Value must be an integer.',
+'scriptLoadMultipleCallbacks':'The script \'{0}\' contains multiple calls to Sys.Application.notifyScriptLoaded(). Only one is allowed.',
+'invokeCalledTwice':'Cannot call invoke more than once.',
+'webServiceFailed':'The server method \'{0}\' failed with the following error: {1}',
+'webServiceInvalidJsonWrapper':'The server method \'{0}\' returned invalid data. The \'d\' property is missing from the JSON wrapper.',
+'argumentType':'Object cannot be converted to the required type.',
+'argumentNull':'Value cannot be null.',
+'controlCantSetId':'The id property can\'t be set on a control.',
+'formatBadFormatSpecifier':'Format specifier was invalid.',
+'webServiceFailedNoMsg':'The server method \'{0}\' failed.',
+'argumentDomElement':'Value must be a DOM element.',
+'invalidExecutorType':'Could not create a valid Sys.Net.WebRequestExecutor from: {0}.',
+'cannotCallBeforeResponse':'Cannot call {0} when responseAvailable is false.',
+'actualValue':'Actual value was {0}.',
+'enumInvalidValue':'\'{0}\' is not a valid value for enum {1}.',
+'scriptLoadFailed':'The script \'{0}\' could not be loaded.',
+'parameterCount':'Parameter count mismatch.',
+'cannotDeserializeEmptyString':'Cannot deserialize empty string.',
+'formatInvalidString':'Input string was not in a correct format.',
+'invalidTimeout':'Value must be greater than or equal to zero.',
+'cannotAbortBeforeStart':'Cannot abort when executor has not started.',
+'argument':'Value does not fall within the expected range.',
+'cannotDeserializeInvalidJson':'Cannot deserialize. The data does not correspond to valid JSON.',
+'invalidHttpVerb':'httpVerb cannot be set to an empty or null string.',
+'nullWebRequest':'Cannot call executeRequest with a null webRequest.',
+'eventHandlerInvalid':'Handler was not added through the Sys.UI.DomEvent.addHandler method.',
+'cannotSerializeNonFiniteNumbers':'Cannot serialize non finite numbers.',
+'argumentUndefined':'Value cannot be undefined.',
+'webServiceInvalidReturnType':'The server method \'{0}\' returned an invalid type. Expected type: {1}',
+'servicePathNotSet':'The path to the web service has not been set.',
+'argumentTypeWithTypes':'Object of type \'{0}\' cannot be converted to type \'{1}\'.',
+'cannotCallOnceStarted':'Cannot call {0} once started.',
+'badBaseUrl1':'Base URL does not contain ://.',
+'badBaseUrl2':'Base URL does not contain another /.',
+'badBaseUrl3':'Cannot find last / in base URL.',
+'setExecutorAfterActive':'Cannot set executor after it has become active.',
+'paramName':'Parameter name: {0}',
+'cannotCallOutsideHandler':'Cannot call {0} outside of a completed event handler.',
+'cannotSerializeObjectWithCycle':'Cannot serialize object with cyclic reference within child properties.',
+'format':'One of the identified items was in an invalid format.',
+'assertFailedCaller':'Assertion Failed: {0}\r\nat {1}',
+'argumentOutOfRange':'Specified argument was out of the range of valid values.',
+'webServiceTimedOut':'The server method \'{0}\' timed out.',
+'notImplemented':'The method or operation is not implemented.',
+'assertFailed':'Assertion Failed: {0}',
+'invalidOperation':'Operation is not valid due to the current state of the object.',
+'breakIntoDebugger':'{0}\r\n\r\nBreak into debugger?'
+};
+
+if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
diff --git a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftAjax.js b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftAjax.js
index 646f633..db85c14 100644
--- a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftAjax.js
+++ b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftAjax.js
@@ -1,7 +1,7 @@
-//----------------------------------------------------------
-// Copyright (C) Microsoft Corporation. All rights reserved.
-//----------------------------------------------------------
-// MicrosoftAjax.js
-Function.__typeName="Function";Function.__class=true;Function.createCallback=function(b,a){return function(){var e=arguments.length;if(e>0){var d=[];for(var c=0;cc){var f=Error.parameterCount();f.popStackFrame();return f}return null};Function._validateParameter=function(c,a,h){var b,g=a.type,l=!!a.integer,k=!!a.domElement,m=!!a.mayBeNull;b=Function._validateParameterType(c,g,l,k,m,h);if(b){b.popStackFrame();return b}var e=a.elementType,f=!!a.elementMayBeNull;if(g===Array&&typeof c!=="undefined"&&c!==null&&(e||!f)){var j=!!a.elementInteger,i=!!a.elementDomElement;for(var d=0;d0&&(dc.Calendar.TwoDigitYearMax)return a-100}return a};Date._getParseRegExp=function(b,e){if(!b._parseRegExp)b._parseRegExp={};else if(b._parseRegExp[e])return b._parseRegExp[e];var c=Date._expandFormat(b,e);c=c.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g,"\\\\$1");var a=new Sys.StringBuilder("^"),j=[],f=0,i=0,h=Date._getTokenRegExp(),d;while((d=h.exec(c))!==null){var l=c.slice(f,d.index);f=h.lastIndex;i+=Date._appendPreOrPostMatch(l,a);if(i%2===1){a.append(d[0]);continue}switch(d[0]){case "dddd":case "ddd":case "MMMM":case "MMM":a.append("(\\D+)");break;case "tt":case "t":a.append("(\\D*)");break;case "yyyy":a.append("(\\d{4})");break;case "fff":a.append("(\\d{3})");break;case "ff":a.append("(\\d{2})");break;case "f":a.append("(\\d)");break;case "dd":case "d":case "MM":case "M":case "yy":case "y":case "HH":case "H":case "hh":case "h":case "mm":case "m":case "ss":case "s":a.append("(\\d\\d?)");break;case "zzz":a.append("([+-]?\\d\\d?:\\d{2})");break;case "zz":case "z":a.append("([+-]?\\d\\d?)")}Array.add(j,d[0])}Date._appendPreOrPostMatch(c.slice(f),a);a.append("$");var k=a.toString().replace(/\s+/g,"\\s+"),g={"regExp":k,"groups":j};b._parseRegExp[e]=g;return g};Date._getTokenRegExp=function(){return /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z/g};Date.parseLocale=function(a){return Date._parse(a,Sys.CultureInfo.CurrentCulture,arguments)};Date.parseInvariant=function(a){return Date._parse(a,Sys.CultureInfo.InvariantCulture,arguments)};Date._parse=function(g,c,h){var e=false;for(var a=1,i=h.length;a31)return null;break;case "MMMM":c=j._getMonthIndex(a);if(c<0||c>11)return null;break;case "MMM":c=j._getAbbrMonthIndex(a);if(c<0||c>11)return null;break;case "M":case "MM":var c=parseInt(a,10)-1;if(c<0||c>11)return null;break;case "y":case "yy":f=Date._expandYear(m,parseInt(a,10));if(f<0||f>9999)return null;break;case "yyyy":f=parseInt(a,10);if(f<0||f>9999)return null;break;case "h":case "hh":d=parseInt(a,10);if(d===12)d=0;if(d<0||d>11)return null;break;case "H":case "HH":d=parseInt(a,10);if(d<0||d>23)return null;break;case "m":case "mm":n=parseInt(a,10);if(n<0||n>59)return null;break;case "s":case "ss":o=parseInt(a,10);if(o<0||o>59)return null;break;case "tt":case "t":var u=a.toUpperCase();r=u===m.PMDesignator.toUpperCase();if(!r&&u!==m.AMDesignator.toUpperCase())return null;break;case "f":e=parseInt(a,10)*100;if(e<0||e>999)return null;break;case "ff":e=parseInt(a,10)*10;if(e<0||e>999)return null;break;case "fff":e=parseInt(a,10);if(e<0||e>999)return null;break;case "dddd":g=j._getDayIndex(a);if(g<0||g>6)return null;break;case "ddd":g=j._getAbbrDayIndex(a);if(g<0||g>6)return null;break;case "zzz":var q=a.split(/:/);if(q.length!==2)return null;var i=parseInt(q[0],10);if(i<-12||i>13)return null;var l=parseInt(q[1],10);if(l<0||l>59)return null;k=i*60+(a.startsWith("-")?-l:l);break;case "z":case "zz":var i=parseInt(a,10);if(i<-12||i>13)return null;k=i*60}}var b=new Date;if(f===null)f=b.getFullYear();if(c===null)c=b.getMonth();if(h===null)h=b.getDate();b.setFullYear(f,c,h);if(b.getDate()!==h)return null;if(g!==null&&b.getDay()!==g)return null;if(r&&d<12)d+=12;b.setHours(d,n,o,e);if(k!==null){var t=b.getMinutes()-(k+b.getTimezoneOffset());b.setHours(b.getHours()+parseInt(t/60,10),t%60)}return b};Date.prototype.format=function(a){return this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Date.prototype.localeFormat=function(a){return this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Date.prototype._toFormattedString=function(e,h){if(!e||e.length===0||e==="i")if(h&&h.name.length>0)return this.toLocaleString();else return this.toString();var d=h.dateTimeFormat;e=Date._expandFormat(d,e);var a=new Sys.StringBuilder,b;function c(a){if(a<10)return "0"+a;return a.toString()}function g(a){if(a<10)return "00"+a;if(a<100)return "0"+a;return a.toString()}var j=0,i=Date._getTokenRegExp();for(;true;){var l=i.lastIndex,f=i.exec(e),k=e.slice(l,f?f.index:e.length);j+=Date._appendPreOrPostMatch(k,a);if(!f)break;if(j%2===1){a.append(f[0]);continue}switch(f[0]){case "dddd":a.append(d.DayNames[this.getDay()]);break;case "ddd":a.append(d.AbbreviatedDayNames[this.getDay()]);break;case "dd":a.append(c(this.getDate()));break;case "d":a.append(this.getDate());break;case "MMMM":a.append(d.MonthNames[this.getMonth()]);break;case "MMM":a.append(d.AbbreviatedMonthNames[this.getMonth()]);break;case "MM":a.append(c(this.getMonth()+1));break;case "M":a.append(this.getMonth()+1);break;case "yyyy":a.append(this.getFullYear());break;case "yy":a.append(c(this.getFullYear()%100));break;case "y":a.append(this.getFullYear()%100);break;case "hh":b=this.getHours()%12;if(b===0)b=12;a.append(c(b));break;case "h":b=this.getHours()%12;if(b===0)b=12;a.append(b);break;case "HH":a.append(c(this.getHours()));break;case "H":a.append(this.getHours());break;case "mm":a.append(c(this.getMinutes()));break;case "m":a.append(this.getMinutes());break;case "ss":a.append(c(this.getSeconds()));break;case "s":a.append(this.getSeconds());break;case "tt":a.append(this.getHours()<12?d.AMDesignator:d.PMDesignator);break;case "t":a.append((this.getHours()<12?d.AMDesignator:d.PMDesignator).charAt(0));break;case "f":a.append(g(this.getMilliseconds()).charAt(0));break;case "ff":a.append(g(this.getMilliseconds()).substr(0,2));break;case "fff":a.append(g(this.getMilliseconds()));break;case "z":b=this.getTimezoneOffset()/60;a.append((b<=0?"+":"-")+Math.floor(Math.abs(b)));break;case "zz":b=this.getTimezoneOffset()/60;a.append((b<=0?"+":"-")+c(Math.floor(Math.abs(b))));break;case "zzz":b=this.getTimezoneOffset()/60;a.append((b<=0?"+":"-")+c(Math.floor(Math.abs(b)))+d.TimeSeparator+c(Math.abs(this.getTimezoneOffset()%60)))}}return a.toString()};Number.__typeName="Number";Number.__class=true;Number.parseLocale=function(a){return Number._parse(a,Sys.CultureInfo.CurrentCulture)};Number.parseInvariant=function(a){return Number._parse(a,Sys.CultureInfo.InvariantCulture)};Number._parse=function(b,o){b=b.trim();if(b.match(/^[+-]?infinity$/i))return parseFloat(b);if(b.match(/^0x[a-f0-9]+$/i))return parseInt(b);var a=o.numberFormat,g=Number._parseNumberNegativePattern(b,a,a.NumberNegativePattern),h=g[0],e=g[1];if(h===""&&a.NumberNegativePattern!==1){g=Number._parseNumberNegativePattern(b,a,1);h=g[0];e=g[1]}if(h==="")h="+";var j,d,f=e.indexOf("e");if(f<0)f=e.indexOf("E");if(f<0){d=e;j=null}else{d=e.substr(0,f);j=e.substr(f+1)}var c,k,m=d.indexOf(a.NumberDecimalSeparator);if(m<0){c=d;k=null}else{c=d.substr(0,m);k=d.substr(m+a.NumberDecimalSeparator.length)}c=c.split(a.NumberGroupSeparator).join("");var n=a.NumberGroupSeparator.replace(/\u00A0/g," ");if(a.NumberGroupSeparator!==n)c=c.split(n).join("");var l=h+c;if(k!==null)l+="."+k;if(j!==null){var i=Number._parseNumberNegativePattern(j,a,1);if(i[0]==="")i[0]="+";l+="e"+i[0]+i[1]}if(l.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/))return parseFloat(l);return Number.NaN};Number._parseNumberNegativePattern=function(a,d,e){var b=d.NegativeSign,c=d.PositiveSign;switch(e){case 4:b=" "+b;c=" "+c;case 3:if(a.endsWith(b))return ["-",a.substr(0,a.length-b.length)];else if(a.endsWith(c))return ["+",a.substr(0,a.length-c.length)];break;case 2:b+=" ";c+=" ";case 1:if(a.startsWith(b))return ["-",a.substr(b.length)];else if(a.startsWith(c))return ["+",a.substr(c.length)];break;case 0:if(a.startsWith("(")&&a.endsWith(")"))return ["-",a.substr(1,a.length-2)]}return ["",a]};Number.prototype.format=function(a){return this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Number.prototype.localeFormat=function(a){return this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Number.prototype._toFormattedString=function(d,j){if(!d||d.length===0||d==="i")if(j&&j.name.length>0)return this.toLocaleString();else return this.toString();var o=["n %","n%","%n"],n=["-n %","-n%","-%n"],p=["(n)","-n","- n","n-","n -"],m=["$n","n$","$ n","n $"],l=["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];function g(a,c,d){for(var b=a.length;b1?parseInt(e[1]):0;e=b.split(".");b=e[0];a=e.length>1?e[1]:"";var q;if(c>0){a=g(a,c,false);b+=a.slice(0,c);a=a.substr(c)}else if(c<0){c=-c;b=g(b,c+1,true);a=b.slice(-c,b.length)+a;b=b.slice(0,-c)}if(i>0){if(a.length>i)a=a.slice(0,i);else a=g(a,i,false);a=p+a}else a="";var d=b.length-1,f="";while(d>=0){if(h===0||h>d)if(f.length>0)return b.slice(0,d+1)+n+f+a;else return b.slice(0,d+1)+a;if(f.length>0)f=b.slice(d-h+1,d+1)+n+f;else f=b.slice(d-h+1,d+1);d-=h;if(k1)b=parseInt(d.slice(1),10);var c;switch(d.charAt(0)){case "d":case "D":c="n";if(b!==-1)e=g(""+e,b,true);if(this<0)e=-e;break;case "c":case "C":if(this<0)c=l[a.CurrencyNegativePattern];else c=m[a.CurrencyPositivePattern];if(b===-1)b=a.CurrencyDecimalDigits;e=i(Math.abs(this),b,a.CurrencyGroupSizes,a.CurrencyGroupSeparator,a.CurrencyDecimalSeparator);break;case "n":case "N":if(this<0)c=p[a.NumberNegativePattern];else c="n";if(b===-1)b=a.NumberDecimalDigits;e=i(Math.abs(this),b,a.NumberGroupSizes,a.NumberGroupSeparator,a.NumberDecimalSeparator);break;case "p":case "P":if(this<0)c=n[a.PercentNegativePattern];else c=o[a.PercentPositivePattern];if(b===-1)b=a.PercentDecimalDigits;e=i(Math.abs(this)*100,b,a.PercentGroupSizes,a.PercentGroupSeparator,a.PercentDecimalSeparator);break;default:throw Error.format(Sys.Res.formatBadFormatSpecifier)}var k=/n|\$|-|%/g,f="";for(;true;){var q=k.lastIndex,h=k.exec(c);f+=c.slice(q,h?h.index:c.length);if(!h)break;switch(h[0]){case "n":f+=e;break;case "$":f+=a.CurrencySymbol;break;case "-":f+=a.NegativeSign;break;case "%":f+=a.PercentSymbol}}return f};RegExp.__typeName="RegExp";RegExp.__class=true;Array.__typeName="Array";Array.__class=true;Array.add=Array.enqueue=function(a,b){a[a.length]=b};Array.addRange=function(a,b){a.push.apply(a,b)};Array.clear=function(a){a.length=0};Array.clone=function(a){if(a.length===1)return [a[0]];else return Array.apply(null,a)};Array.contains=function(a,b){return Array.indexOf(a,b)>=0};Array.dequeue=function(a){return a.shift()};Array.forEach=function(b,e,d){for(var a=0,f=b.length;a=0)b.splice(a,1);return a>=0};Array.removeAt=function(a,b){a.splice(b,1)};if(!window)this.window=this;window.Type=Function;Type.prototype.callBaseMethod=function(a,d,b){var c=this.getBaseMethod(a,d);if(!b)return c.apply(a);else return c.apply(a,b)};Type.prototype.getBaseMethod=function(d,c){var b=this.getBaseType();if(b){var a=b.prototype[c];return a instanceof Function?a:null}return null};Type.prototype.getBaseType=function(){return typeof this.__baseType==="undefined"?null:this.__baseType};Type.prototype.getInterfaces=function(){var a=[],b=this;while(b){var c=b.__interfaces;if(c)for(var d=0,f=c.length;d-1){Sys.Browser.agent=Sys.Browser.InternetExplorer;Sys.Browser.version=parseFloat(navigator.userAgent.match(/MSIE (\d+\.\d+)/)[1]);if(Sys.Browser.version>=8)if(document.documentMode>=7)Sys.Browser.documentMode=document.documentMode;Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(" Firefox/")>-1){Sys.Browser.agent=Sys.Browser.Firefox;Sys.Browser.version=parseFloat(navigator.userAgent.match(/Firefox\/(\d+\.\d+)/)[1]);Sys.Browser.name="Firefox";Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(" AppleWebKit/")>-1){Sys.Browser.agent=Sys.Browser.Safari;Sys.Browser.version=parseFloat(navigator.userAgent.match(/AppleWebKit\/(\d+(\.\d+)?)/)[1]);Sys.Browser.name="Safari"}else if(navigator.userAgent.indexOf("Opera/")>-1)Sys.Browser.agent=Sys.Browser.Opera;Type.registerNamespace("Sys.UI");Sys._Debug=function(){};Sys._Debug.prototype={_appendConsole:function(a){if(typeof Debug!=="undefined"&&Debug.writeln)Debug.writeln(a);if(window.console&&window.console.log)window.console.log(a);if(window.opera)window.opera.postError(a);if(window.debugService)window.debugService.trace(a)},_appendTrace:function(b){var a=document.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()==="TEXTAREA")a.value+=b+"\n"},assert:function(c,a,b){if(!c){a=b&&this.assert.caller?String.format(Sys.Res.assertFailedCaller,a,this.assert.caller):String.format(Sys.Res.assertFailed,a);if(confirm(String.format(Sys.Res.breakIntoDebugger,a)))this.fail(a)}},clearTrace:function(){var a=document.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()==="TEXTAREA")a.value=""},fail:function(message){this._appendConsole(message);if(Sys.Browser.hasDebuggerStatement)eval("debugger")},trace:function(a){this._appendConsole(a);this._appendTrace(a)},traceDump:function(a,b){var c=this._traceDump(a,b,true)},_traceDump:function(a,c,f,b,d){c=c?c:"traceDump";b=b?b:"";if(a===null){this.trace(b+c+": null");return}switch(typeof a){case "undefined":this.trace(b+c+": Undefined");break;case "number":case "string":case "boolean":this.trace(b+c+": "+a);break;default:if(Date.isInstanceOfType(a)||RegExp.isInstanceOfType(a)){this.trace(b+c+": "+a.toString());break}if(!d)d=[];else if(Array.contains(d,a)){this.trace(b+c+": ...");return}Array.add(d,a);if(a==window||a===document||window.HTMLElement&&a instanceof HTMLElement||typeof a.nodeName==="string"){var k=a.tagName?a.tagName:"DomElement";if(a.id)k+=" - "+a.id;this.trace(b+c+" {"+k+"}")}else{var i=Object.getTypeName(a);this.trace(b+c+(typeof i==="string"?" {"+i+"}":""));if(b===""||f){b+=" ";var e,j,l,g,h;if(Array.isInstanceOfType(a)){j=a.length;for(e=0;e=0;d--){var k=h[d].trim();b=a[k];if(typeof b!=="number")throw Error.argument("value",String.format(Sys.Res.enumInvalidValue,c.split(",")[d].trim(),this.__typeName));j|=b}return j}}function Sys$Enum$toString(c){if(typeof c==="undefined"||c===null)return this.__string;var d=this.prototype,a;if(!this.__flags||c===0){for(a in d)if(d[a]===c)return a}else{var b=this.__sortedValues;if(!b){b=[];for(a in d)b[b.length]={key:a,value:d[a]};b.sort(function(a,b){return a.value-b.value});this.__sortedValues=b}var e=[],g=c;for(a=b.length-1;a>=0;a--){var h=b[a],f=h.value;if(f===0)continue;if((f&c)===f){e[e.length]=h.key;g-=f;if(g===0)break}}if(e.length&&g===0)return e.reverse().join(", ")}return ""}Type.prototype.registerEnum=function(b,c){Sys.__upperCaseTypes[b.toUpperCase()]=this;for(var a in this.prototype)this[a]=this.prototype[a];this.__typeName=b;this.parse=Sys$Enum$parse;this.__string=this.toString();this.toString=Sys$Enum$toString;this.__flags=c;this.__enum=true};Type.isEnum=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__enum};Type.isFlags=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__flags};Sys.EventHandlerList=function(){this._list={}};Sys.EventHandlerList.prototype={addHandler:function(b,a){Array.add(this._getEvent(b,true),a)},removeHandler:function(c,b){var a=this._getEvent(c);if(!a)return;Array.remove(a,b)},getHandler:function(b){var a=this._getEvent(b);if(!a||a.length===0)return null;a=Array.clone(a);return function(c,d){for(var b=0,e=a.length;b=0;c--)$removeHandler(a,b,d[c].handler)}a._events=null}},$removeHandler=Sys.UI.DomEvent.removeHandler=function(a,e,f){var d=null,c=a._events[e];for(var b=0,g=c.length;b=0)d.className=(a.substr(0,b)+" "+a.substring(b+c.length+1,a.length)).trim()};Sys.UI.DomElement.setLocation=function(b,c,d){var a=b.style;a.position="absolute";a.left=c+"px";a.top=d+"px"};Sys.UI.DomElement.toggleCssClass=function(b,a){if(Sys.UI.DomElement.containsCssClass(b,a))Sys.UI.DomElement.removeCssClass(b,a);else Sys.UI.DomElement.addCssClass(b,a)};Sys.UI.DomElement.getVisibilityMode=function(a){return a._visibilityMode===Sys.UI.VisibilityMode.hide?Sys.UI.VisibilityMode.hide:Sys.UI.VisibilityMode.collapse};Sys.UI.DomElement.setVisibilityMode=function(a,b){Sys.UI.DomElement._ensureOldDisplayMode(a);if(a._visibilityMode!==b){a._visibilityMode=b;if(Sys.UI.DomElement.getVisible(a)===false)if(a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display="none";a._visibilityMode=b}};Sys.UI.DomElement.getVisible=function(b){var a=b.currentStyle||Sys.UI.DomElement._getCurrentStyle(b);if(!a)return true;return a.visibility!=="hidden"&&a.display!=="none"};Sys.UI.DomElement.setVisible=function(a,b){if(b!==Sys.UI.DomElement.getVisible(a)){Sys.UI.DomElement._ensureOldDisplayMode(a);a.style.visibility=b?"visible":"hidden";if(b||a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display="none"}};Sys.UI.DomElement._ensureOldDisplayMode=function(a){if(!a._oldDisplayMode){var b=a.currentStyle||Sys.UI.DomElement._getCurrentStyle(a);a._oldDisplayMode=b?b.display:null;if(!a._oldDisplayMode||a._oldDisplayMode==="none")switch(a.tagName.toUpperCase()){case "DIV":case "P":case "ADDRESS":case "BLOCKQUOTE":case "BODY":case "COL":case "COLGROUP":case "DD":case "DL":case "DT":case "FIELDSET":case "FORM":case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":case "HR":case "IFRAME":case "LEGEND":case "OL":case "PRE":case "TABLE":case "TD":case "TH":case "TR":case "UL":a._oldDisplayMode="block";break;case "LI":a._oldDisplayMode="list-item";break;default:a._oldDisplayMode="inline"}}};Sys.UI.DomElement._getWindow=function(a){var b=a.ownerDocument||a.document||a;return b.defaultView||b.parentWindow};Sys.UI.DomElement._getCurrentStyle=function(a){if(a.nodeType===3)return null;var c=Sys.UI.DomElement._getWindow(a);if(a.documentElement)a=a.documentElement;var b=c&&a!==c&&c.getComputedStyle?c.getComputedStyle(a,null):a.currentStyle||a.style;if(!b&&Sys.Browser.agent===Sys.Browser.Safari&&a.style){var g=a.style.display,f=a.style.position;a.style.position="absolute";a.style.display="block";var e=c.getComputedStyle(a,null);a.style.display=g;a.style.position=f;b={};for(var d in e)b[d]=e[d];b.display="none"}return b};Sys.IContainer=function(){};Sys.IContainer.prototype={};Sys.IContainer.registerInterface("Sys.IContainer");Sys._ScriptLoader=function(){this._scriptsToLoad=null;this._sessions=[];this._scriptLoadedDelegate=Function.createDelegate(this,this._scriptLoadedHandler)};Sys._ScriptLoader.prototype={dispose:function(){this._stopSession();this._loading=false;if(this._events)delete this._events;this._sessions=null;this._currentSession=null;this._scriptLoadedDelegate=null},loadScripts:function(d,b,c,a){var e={allScriptsLoadedCallback:b,scriptLoadFailedCallback:c,scriptLoadTimeoutCallback:a,scriptsToLoad:this._scriptsToLoad,scriptTimeout:d};this._scriptsToLoad=null;this._sessions[this._sessions.length]=e;if(!this._loading)this._nextSession()},notifyScriptLoaded:function(){if(!this._loading)return;this._currentTask._notified++;if(Sys.Browser.agent===Sys.Browser.Safari)if(this._currentTask._notified===1)window.setTimeout(Function.createDelegate(this,function(){this._scriptLoadedHandler(this._currentTask.get_scriptElement(),true)}),0)},queueCustomScriptTag:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,a)},queueScriptBlock:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,{text:a})},queueScriptReference:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,{src:a})},_createScriptElement:function(c){var a=document.createElement("script");a.type="text/javascript";for(var b in c)a[b]=c[b];return a},_loadScriptsInternal:function(){var b=this._currentSession;if(b.scriptsToLoad&&b.scriptsToLoad.length>0){var c=Array.dequeue(b.scriptsToLoad),a=this._createScriptElement(c);if(a.text&&Sys.Browser.agent===Sys.Browser.Safari){a.innerHTML=a.text;delete a.text}if(typeof c.src==="string"){this._currentTask=new Sys._ScriptLoaderTask(a,this._scriptLoadedDelegate);this._currentTask.execute()}else{document.getElementsByTagName("head")[0].appendChild(a);Sys._ScriptLoader._clearScript(a);this._loadScriptsInternal()}}else{this._stopSession();var d=b.allScriptsLoadedCallback;if(d)d(this);this._nextSession()}},_nextSession:function(){if(this._sessions.length===0){this._loading=false;this._currentSession=null;return}this._loading=true;var a=Array.dequeue(this._sessions);this._currentSession=a;if(a.scriptTimeout>0)this._timeoutCookie=window.setTimeout(Function.createDelegate(this,this._scriptLoadTimeoutHandler),a.scriptTimeout*1000);this._loadScriptsInternal()},_raiseError:function(a){var c=this._currentSession.scriptLoadFailedCallback,b=this._currentTask.get_scriptElement();this._stopSession();if(c){c(this,b,a);this._nextSession()}else{this._loading=false;throw Sys._ScriptLoader._errorScriptLoadFailed(b.src,a)}},_scriptLoadedHandler:function(a,b){if(b&&this._currentTask._notified)if(this._currentTask._notified>1)this._raiseError(true);else{Array.add(Sys._ScriptLoader._getLoadedScripts(),a.src);this._currentTask.dispose();this._currentTask=null;this._loadScriptsInternal()}else this._raiseError(false)},_scriptLoadTimeoutHandler:function(){var a=this._currentSession.scriptLoadTimeoutCallback;this._stopSession();if(a)a(this);this._nextSession()},_stopSession:function(){if(this._timeoutCookie){window.clearTimeout(this._timeoutCookie);this._timeoutCookie=null}if(this._currentTask){this._currentTask.dispose();this._currentTask=null}}};Sys._ScriptLoader.registerClass("Sys._ScriptLoader",null,Sys.IDisposable);Sys._ScriptLoader.getInstance=function(){var a=Sys._ScriptLoader._activeInstance;if(!a)a=Sys._ScriptLoader._activeInstance=new Sys._ScriptLoader;return a};Sys._ScriptLoader.isScriptLoaded=function(b){var a=document.createElement("script");a.src=b;return Array.contains(Sys._ScriptLoader._getLoadedScripts(),a.src)};Sys._ScriptLoader.readLoadedScripts=function(){if(!Sys._ScriptLoader._referencedScripts){var b=Sys._ScriptLoader._referencedScripts=[],c=document.getElementsByTagName("script");for(i=c.length-1;i>=0;i--){var d=c[i],a=d.src;if(a.length)if(!Array.contains(b,a))Array.add(b,a)}}};Sys._ScriptLoader._clearScript=function(a){if(!Sys.Debug.isDebug)a.parentNode.removeChild(a)};Sys._ScriptLoader._errorScriptLoadFailed=function(b,d){var a;if(d)a=Sys.Res.scriptLoadMultipleCallbacks;else a=Sys.Res.scriptLoadFailed;var e="Sys.ScriptLoadFailedException: "+String.format(a,b),c=Error.create(e,{name:"Sys.ScriptLoadFailedException","scriptUrl":b});c.popStackFrame();return c};Sys._ScriptLoader._getLoadedScripts=function(){if(!Sys._ScriptLoader._referencedScripts){Sys._ScriptLoader._referencedScripts=[];Sys._ScriptLoader.readLoadedScripts()}return Sys._ScriptLoader._referencedScripts};Sys._ScriptLoaderTask=function(b,a){this._scriptElement=b;this._completedCallback=a;this._notified=0};Sys._ScriptLoaderTask.prototype={get_scriptElement:function(){return this._scriptElement},dispose:function(){if(this._disposed)return;this._disposed=true;this._removeScriptElementHandlers();Sys._ScriptLoader._clearScript(this._scriptElement);this._scriptElement=null},execute:function(){this._addScriptElementHandlers();document.getElementsByTagName("head")[0].appendChild(this._scriptElement)},_addScriptElementHandlers:function(){this._scriptLoadDelegate=Function.createDelegate(this,this._scriptLoadHandler);if(Sys.Browser.agent!==Sys.Browser.InternetExplorer){this._scriptElement.readyState="loaded";$addHandler(this._scriptElement,"load",this._scriptLoadDelegate)}else $addHandler(this._scriptElement,"readystatechange",this._scriptLoadDelegate);if(this._scriptElement.addEventListener){this._scriptErrorDelegate=Function.createDelegate(this,this._scriptErrorHandler);this._scriptElement.addEventListener("error",this._scriptErrorDelegate,false)}},_removeScriptElementHandlers:function(){if(this._scriptLoadDelegate){var a=this.get_scriptElement();if(Sys.Browser.agent!==Sys.Browser.InternetExplorer)$removeHandler(a,"load",this._scriptLoadDelegate);else $removeHandler(a,"readystatechange",this._scriptLoadDelegate);if(this._scriptErrorDelegate){this._scriptElement.removeEventListener("error",this._scriptErrorDelegate,false);this._scriptErrorDelegate=null}this._scriptLoadDelegate=null}},_scriptErrorHandler:function(){if(this._disposed)return;this._completedCallback(this.get_scriptElement(),false)},_scriptLoadHandler:function(){if(this._disposed)return;var a=this.get_scriptElement();if(a.readyState!=="loaded"&&a.readyState!=="complete")return;var b=this;window.setTimeout(function(){b._completedCallback(a,true)},0)}};Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask",null,Sys.IDisposable);Sys.ApplicationLoadEventArgs=function(b,a){Sys.ApplicationLoadEventArgs.initializeBase(this);this._components=b;this._isPartialLoad=a};Sys.ApplicationLoadEventArgs.prototype={get_components:function(){return this._components},get_isPartialLoad:function(){return this._isPartialLoad}};Sys.ApplicationLoadEventArgs.registerClass("Sys.ApplicationLoadEventArgs",Sys.EventArgs);Sys.HistoryEventArgs=function(a){Sys.HistoryEventArgs.initializeBase(this);this._state=a};Sys.HistoryEventArgs.prototype={get_state:function(){return this._state}};Sys.HistoryEventArgs.registerClass("Sys.HistoryEventArgs",Sys.EventArgs);Sys._Application=function(){Sys._Application.initializeBase(this);this._disposableObjects=[];this._components={};this._createdComponents=[];this._secondPassComponents=[];this._appLoadHandler=null;this._beginRequestHandler=null;this._clientId=null;this._currentEntry="";this._endRequestHandler=null;this._history=null;this._enableHistory=false;this._historyFrame=null;this._historyInitialized=false;this._historyInitialLength=0;this._historyLength=0;this._historyPointIsNew=false;this._ignoreTimer=false;this._initialState=null;this._state={};this._timerCookie=0;this._timerHandler=null;this._uniqueId=null;this._unloadHandlerDelegate=Function.createDelegate(this,this._unloadHandler);this._loadHandlerDelegate=Function.createDelegate(this,this._loadHandler);Sys.UI.DomEvent.addHandler(window,"unload",this._unloadHandlerDelegate);Sys.UI.DomEvent.addHandler(window,"load",this._loadHandlerDelegate)};Sys._Application.prototype={_creatingComponents:false,_disposing:false,get_isCreatingComponents:function(){return this._creatingComponents},get_stateString:function(){var a=window.location.hash;if(this._isSafari2()){var b=this._getHistory();if(b)a=b[window.history.length-this._historyInitialLength]}if(a.length>0&&a.charAt(0)==="#")a=a.substring(1);if(Sys.Browser.agent===Sys.Browser.Firefox)a=this._serializeState(this._deserializeState(a,true));return a},get_enableHistory:function(){return this._enableHistory},set_enableHistory:function(a){this._enableHistory=a},add_init:function(a){if(this._initialized)a(this,Sys.EventArgs.Empty);else this.get_events().addHandler("init",a)},remove_init:function(a){this.get_events().removeHandler("init",a)},add_load:function(a){this.get_events().addHandler("load",a)},remove_load:function(a){this.get_events().removeHandler("load",a)},add_navigate:function(a){this.get_events().addHandler("navigate",a)},remove_navigate:function(a){this.get_events().removeHandler("navigate",a)},add_unload:function(a){this.get_events().addHandler("unload",a)},remove_unload:function(a){this.get_events().removeHandler("unload",a)},addComponent:function(a){this._components[a.get_id()]=a},addHistoryPoint:function(c,f){this._ensureHistory();var b=this._state;for(var a in c){var d=c[a];if(d===null){if(typeof b[a]!=="undefined")delete b[a]}else b[a]=d}var e=this._serializeState(b);this._historyPointIsNew=true;this._setState(e,f);this._raiseNavigate()},beginCreateComponents:function(){this._creatingComponents=true},dispose:function(){if(!this._disposing){this._disposing=true;if(this._timerCookie){window.clearTimeout(this._timerCookie);delete this._timerCookie}if(this._endRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);delete this._endRequestHandler}if(this._beginRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._beginRequestHandler);delete this._beginRequestHandler}if(window.pageUnload)window.pageUnload(this,Sys.EventArgs.Empty);var c=this.get_events().getHandler("unload");if(c)c(this,Sys.EventArgs.Empty);var b=Array.clone(this._disposableObjects);for(var a=0,e=b.length;a'");d.write(""+(c||document.title)+"parent.Sys.Application._onIFrameLoad(\''+a+"');");d.close()}this._ignoreTimer=false;var h=this.get_stateString();this._currentEntry=a;if(a!==h){if(this._isSafari2()){var g=this._getHistory();g[window.history.length-this._historyInitialLength+1]=a;this._setHistory(g);this._historyLength=window.history.length+1;var b=document.createElement("form");b.method="get";b.action="#"+a;document.appendChild(b);b.submit();document.removeChild(b)}else window.location.hash=a;if(typeof c!=="undefined"&&c!==null)document.title=c}}},_unloadHandler:function(){this.dispose()},_updateHiddenField:function(b){if(this._clientId){var a=document.getElementById(this._clientId);if(a)a.value=b}}};Sys._Application.registerClass("Sys._Application",Sys.Component,Sys.IContainer);Sys.Application=new Sys._Application;var $find=Sys.Application.findComponent;Type.registerNamespace("Sys.Net");Sys.Net.WebRequestExecutor=function(){this._webRequest=null;this._resultObject=null};Sys.Net.WebRequestExecutor.prototype={get_webRequest:function(){return this._webRequest},_set_webRequest:function(a){this._webRequest=a},get_started:function(){throw Error.notImplemented()},get_responseAvailable:function(){throw Error.notImplemented()},get_timedOut:function(){throw Error.notImplemented()},get_aborted:function(){throw Error.notImplemented()},get_responseData:function(){throw Error.notImplemented()},get_statusCode:function(){throw Error.notImplemented()},get_statusText:function(){throw Error.notImplemented()},get_xml:function(){throw Error.notImplemented()},get_object:function(){if(!this._resultObject)this._resultObject=Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData());return this._resultObject},executeRequest:function(){throw Error.notImplemented()},abort:function(){throw Error.notImplemented()},getResponseHeader:function(){throw Error.notImplemented()},getAllResponseHeaders:function(){throw Error.notImplemented()}};Sys.Net.WebRequestExecutor.registerClass("Sys.Net.WebRequestExecutor");Sys.Net.XMLDOM=function(d){if(!window.DOMParser){var c=["Msxml2.DOMDocument.3.0","Msxml2.DOMDocument"];for(var b=0,f=c.length;b0)this._timer=window.setTimeout(Function.createDelegate(this,this._onTimeout),d);this._xmlHttpRequest.send(c);this._started=true},getResponseHeader:function(b){var a;try{a=this._xmlHttpRequest.getResponseHeader(b)}catch(c){}if(!a)a="";return a},getAllResponseHeaders:function(){return this._xmlHttpRequest.getAllResponseHeaders()},get_responseData:function(){return this._xmlHttpRequest.responseText},get_statusCode:function(){var a=0;try{a=this._xmlHttpRequest.status}catch(b){}return a},get_statusText:function(){return this._xmlHttpRequest.statusText},get_xml:function(){var a=this._xmlHttpRequest.responseXML;if(!a||!a.documentElement){a=Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);if(!a||!a.documentElement)return null}else if(navigator.userAgent.indexOf("MSIE")!==-1)a.setProperty("SelectionLanguage","XPath");if(a.documentElement.namespaceURI==="http://www.mozilla.org/newlayout/xml/parsererror.xml"&&a.documentElement.tagName==="parsererror")return null;if(a.documentElement.firstChild&&a.documentElement.firstChild.tagName==="parsererror")return null;return a},abort:function(){if(this._aborted||this._responseAvailable||this._timedOut)return;this._aborted=true;this._clearTimer();if(this._xmlHttpRequest&&!this._responseAvailable){this._xmlHttpRequest.onreadystatechange=Function.emptyMethod;this._xmlHttpRequest.abort();this._xmlHttpRequest=null;this._webRequest.completed(Sys.EventArgs.Empty)}}};Sys.Net.XMLHttpExecutor.registerClass("Sys.Net.XMLHttpExecutor",Sys.Net.WebRequestExecutor);Sys.Net._WebRequestManager=function(){this._defaultTimeout=0;this._defaultExecutorType="Sys.Net.XMLHttpExecutor"};Sys.Net._WebRequestManager.prototype={add_invokingRequest:function(a){this._get_eventHandlerList().addHandler("invokingRequest",a)},remove_invokingRequest:function(a){this._get_eventHandlerList().removeHandler("invokingRequest",a)},add_completedRequest:function(a){this._get_eventHandlerList().addHandler("completedRequest",a)},remove_completedRequest:function(a){this._get_eventHandlerList().removeHandler("completedRequest",a)},_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_defaultTimeout:function(){return this._defaultTimeout},set_defaultTimeout:function(a){this._defaultTimeout=a},get_defaultExecutorType:function(){return this._defaultExecutorType},set_defaultExecutorType:function(a){this._defaultExecutorType=a},executeRequest:function(webRequest){var executor=webRequest.get_executor();if(!executor){var failed=false;try{var executorType=eval(this._defaultExecutorType);executor=new executorType}catch(a){failed=true}webRequest.set_executor(executor)}if(executor.get_aborted())return;var evArgs=new Sys.Net.NetworkRequestEventArgs(webRequest),handler=this._get_eventHandlerList().getHandler("invokingRequest");if(handler)handler(this,evArgs);if(!evArgs.get_cancel())executor.executeRequest()}};Sys.Net._WebRequestManager.registerClass("Sys.Net._WebRequestManager");Sys.Net.WebRequestManager=new Sys.Net._WebRequestManager;Sys.Net.NetworkRequestEventArgs=function(a){Sys.Net.NetworkRequestEventArgs.initializeBase(this);this._webRequest=a};Sys.Net.NetworkRequestEventArgs.prototype={get_webRequest:function(){return this._webRequest}};Sys.Net.NetworkRequestEventArgs.registerClass("Sys.Net.NetworkRequestEventArgs",Sys.CancelEventArgs);Sys.Net.WebRequest=function(){this._url="";this._headers={};this._body=null;this._userContext=null;this._httpVerb=null;this._executor=null;this._invokeCalled=false;this._timeout=0};Sys.Net.WebRequest.prototype={add_completed:function(a){this._get_eventHandlerList().addHandler("completed",a)},remove_completed:function(a){this._get_eventHandlerList().removeHandler("completed",a)},completed:function(b){var a=Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRequest");if(a)a(this._executor,b);a=this._get_eventHandlerList().getHandler("completed");if(a)a(this._executor,b)},_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_url:function(){return this._url},set_url:function(a){this._url=a},get_headers:function(){return this._headers},get_httpVerb:function(){if(this._httpVerb===null){if(this._body===null)return "GET";return "POST"}return this._httpVerb},set_httpVerb:function(a){this._httpVerb=a},get_body:function(){return this._body},set_body:function(a){this._body=a},get_userContext:function(){return this._userContext},set_userContext:function(a){this._userContext=a},get_executor:function(){return this._executor},set_executor:function(a){this._executor=a;this._executor._set_webRequest(this)},get_timeout:function(){if(this._timeout===0)return Sys.Net.WebRequestManager.get_defaultTimeout();return this._timeout},set_timeout:function(a){this._timeout=a},getResolvedUrl:function(){return Sys.Net.WebRequest._resolveUrl(this._url)},invoke:function(){Sys.Net.WebRequestManager.executeRequest(this);this._invokeCalled=true}};Sys.Net.WebRequest._resolveUrl=function(b,a){if(b&&b.indexOf("://")!==-1)return b;if(!a||a.length===0){var d=document.getElementsByTagName("base")[0];if(d&&d.href&&d.href.length>0)a=d.href;else a=document.URL}var c=a.indexOf("?");if(c!==-1)a=a.substr(0,c);c=a.indexOf("#");if(c!==-1)a=a.substr(0,c);a=a.substr(0,a.lastIndexOf("/")+1);if(!b||b.length===0)return a;if(b.charAt(0)==="/"){var e=a.indexOf("://"),g=a.indexOf("/",e+3);return a.substr(0,g)+b}else{var f=a.lastIndexOf("/");return a.substr(0,f+1)+b}};Sys.Net.WebRequest._createQueryString=function(d,b){if(!b)b=encodeURIComponent;var a=new Sys.StringBuilder,f=0;for(var c in d){var e=d[c];if(typeof e==="function")continue;var g=Sys.Serialization.JavaScriptSerializer.serialize(e);if(f!==0)a.append("&");a.append(c);a.append("=");a.append(b(g));f++}return a.toString()};Sys.Net.WebRequest._createUrl=function(a,b){if(!b)return a;var d=Sys.Net.WebRequest._createQueryString(b);if(d.length>0){var c="?";if(a&&a.indexOf("?")!==-1)c="&";return a+c+d}else return a};Sys.Net.WebRequest.registerClass("Sys.Net.WebRequest");Sys.Net.WebServiceProxy=function(){};Sys.Net.WebServiceProxy.prototype={get_timeout:function(){return this._timeout},set_timeout:function(a){if(a<0)throw Error.argumentOutOfRange("value",a,Sys.Res.invalidTimeout);this._timeout=a},get_defaultUserContext:function(){return this._userContext},set_defaultUserContext:function(a){this._userContext=a},get_defaultSucceededCallback:function(){return this._succeeded},set_defaultSucceededCallback:function(a){this._succeeded=a},get_defaultFailedCallback:function(){return this._failed},set_defaultFailedCallback:function(a){this._failed=a},get_path:function(){return this._path},set_path:function(a){this._path=a},_invoke:function(d,e,g,f,c,b,a){if(c===null||typeof c==="undefined")c=this.get_defaultSucceededCallback();if(b===null||typeof b==="undefined")b=this.get_defaultFailedCallback();if(a===null||typeof a==="undefined")a=this.get_defaultUserContext();return Sys.Net.WebServiceProxy.invoke(d,e,g,f,c,b,a,this.get_timeout())}};Sys.Net.WebServiceProxy.registerClass("Sys.Net.WebServiceProxy");Sys.Net.WebServiceProxy.invoke=function(k,a,j,d,i,c,f,h){var b=new Sys.Net.WebRequest;b.get_headers()["Content-Type"]="application/json; charset=utf-8";if(!d)d={};var g=d;if(!j||!g)g={};b.set_url(Sys.Net.WebRequest._createUrl(k+"/"+encodeURIComponent(a),g));var e=null;if(!j){e=Sys.Serialization.JavaScriptSerializer.serialize(d);if(e==="{}")e=""}b.set_body(e);b.add_completed(l);if(h&&h>0)b.set_timeout(h);b.invoke();function l(d){if(d.get_responseAvailable()){var g=d.get_statusCode(),b=null;try{var e=d.getResponseHeader("Content-Type");if(e.startsWith("application/json"))b=d.get_object();else if(e.startsWith("text/xml"))b=d.get_xml();else b=d.get_responseData()}catch(m){}var k=d.getResponseHeader("jsonerror"),h=k==="true";if(h){if(b)b=new Sys.Net.WebServiceError(false,b.Message,b.StackTrace,b.ExceptionType)}else if(e.startsWith("application/json"))b=b.d;if(g<200||g>=300||h){if(c){if(!b||!h)b=new Sys.Net.WebServiceError(false,String.format(Sys.Res.webServiceFailedNoMsg,a),"","");b._statusCode=g;c(b,f,a)}}else if(i)i(b,f,a)}else{var j;if(d.get_timedOut())j=String.format(Sys.Res.webServiceTimedOut,a);else j=String.format(Sys.Res.webServiceFailedNoMsg,a);if(c)c(new Sys.Net.WebServiceError(d.get_timedOut(),j,"",""),f,a)}}return b};Sys.Net.WebServiceProxy._generateTypedConstructor=function(a){return function(b){if(b)for(var c in b)this[c]=b[c];this.__type=a}};Sys.Net.WebServiceError=function(c,d,b,a){this._timedOut=c;this._message=d;this._stackTrace=b;this._exceptionType=a;this._statusCode=-1};Sys.Net.WebServiceError.prototype={get_timedOut:function(){return this._timedOut},get_statusCode:function(){return this._statusCode},get_message:function(){return this._message},get_stackTrace:function(){return this._stackTrace},get_exceptionType:function(){return this._exceptionType}};Sys.Net.WebServiceError.registerClass("Sys.Net.WebServiceError");Type.registerNamespace("Sys.Services");Sys.Services._ProfileService=function(){Sys.Services._ProfileService.initializeBase(this);this.properties={}};Sys.Services._ProfileService.DefaultWebServicePath="";Sys.Services._ProfileService.prototype={_defaultLoadCompletedCallback:null,_defaultSaveCompletedCallback:null,_path:"",_timeout:0,get_defaultLoadCompletedCallback:function(){return this._defaultLoadCompletedCallback},set_defaultLoadCompletedCallback:function(a){this._defaultLoadCompletedCallback=a},get_defaultSaveCompletedCallback:function(){return this._defaultSaveCompletedCallback},set_defaultSaveCompletedCallback:function(a){this._defaultSaveCompletedCallback=a},get_path:function(){return this._path||""},load:function(c,d,e,f){var b,a;if(!c){a="GetAllPropertiesForCurrentUser";b={authenticatedUserOnly:false}}else{a="GetPropertiesForCurrentUser";b={properties:this._clonePropertyNames(c),authenticatedUserOnly:false}}this._invoke(this._get_path(),a,false,b,Function.createDelegate(this,this._onLoadComplete),Function.createDelegate(this,this._onLoadFailed),[d,e,f])},save:function(d,b,c,e){var a=this._flattenProperties(d,this.properties);this._invoke(this._get_path(),"SetPropertiesForCurrentUser",false,{values:a.value,authenticatedUserOnly:false},Function.createDelegate(this,this._onSaveComplete),Function.createDelegate(this,this._onSaveFailed),[b,c,e,a.count])},_clonePropertyNames:function(e){var c=[],d={};for(var b=0;b0)a.append(",");Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(b[c],a,false,g)}a.append("]")}else{if(Date.isInstanceOfType(b)){a.append('"\\/Date(');a.append(b.getTime());a.append(')\\/"');break}var d=[],f=0;for(var e in b){if(e.startsWith("$"))continue;if(e===Sys.Serialization.JavaScriptSerializer._serverTypeFieldName&&f!==0){d[f++]=d[0];d[0]=e}else d[f++]=e}if(i)d.sort();a.append("{");var j=false;for(c=0;c0){var d=[];for(var c=0;cc){var f=Error.parameterCount();f.popStackFrame();return f}return null};Function._validateParameter=function(c,a,h){var b,g=a.type,l=!!a.integer,k=!!a.domElement,m=!!a.mayBeNull;b=Function._validateParameterType(c,g,l,k,m,h);if(b){b.popStackFrame();return b}var e=a.elementType,f=!!a.elementMayBeNull;if(g===Array&&typeof c!=="undefined"&&c!==null&&(e||!f)){var j=!!a.elementInteger,i=!!a.elementDomElement;for(var d=0;d0&&(dc.Calendar.TwoDigitYearMax)return a-100}return a};Date._getParseRegExp=function(b,e){if(!b._parseRegExp)b._parseRegExp={};else if(b._parseRegExp[e])return b._parseRegExp[e];var c=Date._expandFormat(b,e);c=c.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g,"\\\\$1");var a=new Sys.StringBuilder("^"),j=[],f=0,i=0,h=Date._getTokenRegExp(),d;while((d=h.exec(c))!==null){var l=c.slice(f,d.index);f=h.lastIndex;i+=Date._appendPreOrPostMatch(l,a);if(i%2===1){a.append(d[0]);continue}switch(d[0]){case "dddd":case "ddd":case "MMMM":case "MMM":a.append("(\\D+)");break;case "tt":case "t":a.append("(\\D*)");break;case "yyyy":a.append("(\\d{4})");break;case "fff":a.append("(\\d{3})");break;case "ff":a.append("(\\d{2})");break;case "f":a.append("(\\d)");break;case "dd":case "d":case "MM":case "M":case "yy":case "y":case "HH":case "H":case "hh":case "h":case "mm":case "m":case "ss":case "s":a.append("(\\d\\d?)");break;case "zzz":a.append("([+-]?\\d\\d?:\\d{2})");break;case "zz":case "z":a.append("([+-]?\\d\\d?)")}Array.add(j,d[0])}Date._appendPreOrPostMatch(c.slice(f),a);a.append("$");var k=a.toString().replace(/\s+/g,"\\s+"),g={"regExp":k,"groups":j};b._parseRegExp[e]=g;return g};Date._getTokenRegExp=function(){return /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z/g};Date.parseLocale=function(a){return Date._parse(a,Sys.CultureInfo.CurrentCulture,arguments)};Date.parseInvariant=function(a){return Date._parse(a,Sys.CultureInfo.InvariantCulture,arguments)};Date._parse=function(g,c,h){var e=false;for(var a=1,i=h.length;a31)return null;break;case "MMMM":c=j._getMonthIndex(a);if(c<0||c>11)return null;break;case "MMM":c=j._getAbbrMonthIndex(a);if(c<0||c>11)return null;break;case "M":case "MM":var c=parseInt(a,10)-1;if(c<0||c>11)return null;break;case "y":case "yy":f=Date._expandYear(m,parseInt(a,10));if(f<0||f>9999)return null;break;case "yyyy":f=parseInt(a,10);if(f<0||f>9999)return null;break;case "h":case "hh":d=parseInt(a,10);if(d===12)d=0;if(d<0||d>11)return null;break;case "H":case "HH":d=parseInt(a,10);if(d<0||d>23)return null;break;case "m":case "mm":n=parseInt(a,10);if(n<0||n>59)return null;break;case "s":case "ss":o=parseInt(a,10);if(o<0||o>59)return null;break;case "tt":case "t":var u=a.toUpperCase();r=u===m.PMDesignator.toUpperCase();if(!r&&u!==m.AMDesignator.toUpperCase())return null;break;case "f":e=parseInt(a,10)*100;if(e<0||e>999)return null;break;case "ff":e=parseInt(a,10)*10;if(e<0||e>999)return null;break;case "fff":e=parseInt(a,10);if(e<0||e>999)return null;break;case "dddd":g=j._getDayIndex(a);if(g<0||g>6)return null;break;case "ddd":g=j._getAbbrDayIndex(a);if(g<0||g>6)return null;break;case "zzz":var q=a.split(/:/);if(q.length!==2)return null;var i=parseInt(q[0],10);if(i<-12||i>13)return null;var l=parseInt(q[1],10);if(l<0||l>59)return null;k=i*60+(a.startsWith("-")?-l:l);break;case "z":case "zz":var i=parseInt(a,10);if(i<-12||i>13)return null;k=i*60}}var b=new Date;if(f===null)f=b.getFullYear();if(c===null)c=b.getMonth();if(h===null)h=b.getDate();b.setFullYear(f,c,h);if(b.getDate()!==h)return null;if(g!==null&&b.getDay()!==g)return null;if(r&&d<12)d+=12;b.setHours(d,n,o,e);if(k!==null){var t=b.getMinutes()-(k+b.getTimezoneOffset());b.setHours(b.getHours()+parseInt(t/60,10),t%60)}return b};Date.prototype.format=function(a){return this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Date.prototype.localeFormat=function(a){return this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Date.prototype._toFormattedString=function(e,h){if(!e||e.length===0||e==="i")if(h&&h.name.length>0)return this.toLocaleString();else return this.toString();var d=h.dateTimeFormat;e=Date._expandFormat(d,e);var a=new Sys.StringBuilder,b;function c(a){if(a<10)return "0"+a;return a.toString()}function g(a){if(a<10)return "00"+a;if(a<100)return "0"+a;return a.toString()}var j=0,i=Date._getTokenRegExp();for(;true;){var l=i.lastIndex,f=i.exec(e),k=e.slice(l,f?f.index:e.length);j+=Date._appendPreOrPostMatch(k,a);if(!f)break;if(j%2===1){a.append(f[0]);continue}switch(f[0]){case "dddd":a.append(d.DayNames[this.getDay()]);break;case "ddd":a.append(d.AbbreviatedDayNames[this.getDay()]);break;case "dd":a.append(c(this.getDate()));break;case "d":a.append(this.getDate());break;case "MMMM":a.append(d.MonthNames[this.getMonth()]);break;case "MMM":a.append(d.AbbreviatedMonthNames[this.getMonth()]);break;case "MM":a.append(c(this.getMonth()+1));break;case "M":a.append(this.getMonth()+1);break;case "yyyy":a.append(this.getFullYear());break;case "yy":a.append(c(this.getFullYear()%100));break;case "y":a.append(this.getFullYear()%100);break;case "hh":b=this.getHours()%12;if(b===0)b=12;a.append(c(b));break;case "h":b=this.getHours()%12;if(b===0)b=12;a.append(b);break;case "HH":a.append(c(this.getHours()));break;case "H":a.append(this.getHours());break;case "mm":a.append(c(this.getMinutes()));break;case "m":a.append(this.getMinutes());break;case "ss":a.append(c(this.getSeconds()));break;case "s":a.append(this.getSeconds());break;case "tt":a.append(this.getHours()<12?d.AMDesignator:d.PMDesignator);break;case "t":a.append((this.getHours()<12?d.AMDesignator:d.PMDesignator).charAt(0));break;case "f":a.append(g(this.getMilliseconds()).charAt(0));break;case "ff":a.append(g(this.getMilliseconds()).substr(0,2));break;case "fff":a.append(g(this.getMilliseconds()));break;case "z":b=this.getTimezoneOffset()/60;a.append((b<=0?"+":"-")+Math.floor(Math.abs(b)));break;case "zz":b=this.getTimezoneOffset()/60;a.append((b<=0?"+":"-")+c(Math.floor(Math.abs(b))));break;case "zzz":b=this.getTimezoneOffset()/60;a.append((b<=0?"+":"-")+c(Math.floor(Math.abs(b)))+d.TimeSeparator+c(Math.abs(this.getTimezoneOffset()%60)))}}return a.toString()};Number.__typeName="Number";Number.__class=true;Number.parseLocale=function(a){return Number._parse(a,Sys.CultureInfo.CurrentCulture)};Number.parseInvariant=function(a){return Number._parse(a,Sys.CultureInfo.InvariantCulture)};Number._parse=function(b,o){b=b.trim();if(b.match(/^[+-]?infinity$/i))return parseFloat(b);if(b.match(/^0x[a-f0-9]+$/i))return parseInt(b);var a=o.numberFormat,g=Number._parseNumberNegativePattern(b,a,a.NumberNegativePattern),h=g[0],e=g[1];if(h===""&&a.NumberNegativePattern!==1){g=Number._parseNumberNegativePattern(b,a,1);h=g[0];e=g[1]}if(h==="")h="+";var j,d,f=e.indexOf("e");if(f<0)f=e.indexOf("E");if(f<0){d=e;j=null}else{d=e.substr(0,f);j=e.substr(f+1)}var c,k,m=d.indexOf(a.NumberDecimalSeparator);if(m<0){c=d;k=null}else{c=d.substr(0,m);k=d.substr(m+a.NumberDecimalSeparator.length)}c=c.split(a.NumberGroupSeparator).join("");var n=a.NumberGroupSeparator.replace(/\u00A0/g," ");if(a.NumberGroupSeparator!==n)c=c.split(n).join("");var l=h+c;if(k!==null)l+="."+k;if(j!==null){var i=Number._parseNumberNegativePattern(j,a,1);if(i[0]==="")i[0]="+";l+="e"+i[0]+i[1]}if(l.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/))return parseFloat(l);return Number.NaN};Number._parseNumberNegativePattern=function(a,d,e){var b=d.NegativeSign,c=d.PositiveSign;switch(e){case 4:b=" "+b;c=" "+c;case 3:if(a.endsWith(b))return ["-",a.substr(0,a.length-b.length)];else if(a.endsWith(c))return ["+",a.substr(0,a.length-c.length)];break;case 2:b+=" ";c+=" ";case 1:if(a.startsWith(b))return ["-",a.substr(b.length)];else if(a.startsWith(c))return ["+",a.substr(c.length)];break;case 0:if(a.startsWith("(")&&a.endsWith(")"))return ["-",a.substr(1,a.length-2)]}return ["",a]};Number.prototype.format=function(a){return this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Number.prototype.localeFormat=function(a){return this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Number.prototype._toFormattedString=function(d,j){if(!d||d.length===0||d==="i")if(j&&j.name.length>0)return this.toLocaleString();else return this.toString();var o=["n %","n%","%n"],n=["-n %","-n%","-%n"],p=["(n)","-n","- n","n-","n -"],m=["$n","n$","$ n","n $"],l=["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];function g(a,c,d){for(var b=a.length;b1?parseInt(e[1]):0;e=b.split(".");b=e[0];a=e.length>1?e[1]:"";var q;if(c>0){a=g(a,c,false);b+=a.slice(0,c);a=a.substr(c)}else if(c<0){c=-c;b=g(b,c+1,true);a=b.slice(-c,b.length)+a;b=b.slice(0,-c)}if(i>0){if(a.length>i)a=a.slice(0,i);else a=g(a,i,false);a=p+a}else a="";var d=b.length-1,f="";while(d>=0){if(h===0||h>d)if(f.length>0)return b.slice(0,d+1)+n+f+a;else return b.slice(0,d+1)+a;if(f.length>0)f=b.slice(d-h+1,d+1)+n+f;else f=b.slice(d-h+1,d+1);d-=h;if(k1)b=parseInt(d.slice(1),10);var c;switch(d.charAt(0)){case "d":case "D":c="n";if(b!==-1)e=g(""+e,b,true);if(this<0)e=-e;break;case "c":case "C":if(this<0)c=l[a.CurrencyNegativePattern];else c=m[a.CurrencyPositivePattern];if(b===-1)b=a.CurrencyDecimalDigits;e=i(Math.abs(this),b,a.CurrencyGroupSizes,a.CurrencyGroupSeparator,a.CurrencyDecimalSeparator);break;case "n":case "N":if(this<0)c=p[a.NumberNegativePattern];else c="n";if(b===-1)b=a.NumberDecimalDigits;e=i(Math.abs(this),b,a.NumberGroupSizes,a.NumberGroupSeparator,a.NumberDecimalSeparator);break;case "p":case "P":if(this<0)c=n[a.PercentNegativePattern];else c=o[a.PercentPositivePattern];if(b===-1)b=a.PercentDecimalDigits;e=i(Math.abs(this)*100,b,a.PercentGroupSizes,a.PercentGroupSeparator,a.PercentDecimalSeparator);break;default:throw Error.format(Sys.Res.formatBadFormatSpecifier)}var k=/n|\$|-|%/g,f="";for(;true;){var q=k.lastIndex,h=k.exec(c);f+=c.slice(q,h?h.index:c.length);if(!h)break;switch(h[0]){case "n":f+=e;break;case "$":f+=a.CurrencySymbol;break;case "-":f+=a.NegativeSign;break;case "%":f+=a.PercentSymbol}}return f};RegExp.__typeName="RegExp";RegExp.__class=true;Array.__typeName="Array";Array.__class=true;Array.add=Array.enqueue=function(a,b){a[a.length]=b};Array.addRange=function(a,b){a.push.apply(a,b)};Array.clear=function(a){a.length=0};Array.clone=function(a){if(a.length===1)return [a[0]];else return Array.apply(null,a)};Array.contains=function(a,b){return Array.indexOf(a,b)>=0};Array.dequeue=function(a){return a.shift()};Array.forEach=function(b,e,d){for(var a=0,f=b.length;a=0)b.splice(a,1);return a>=0};Array.removeAt=function(a,b){a.splice(b,1)};if(!window)this.window=this;window.Type=Function;Type.prototype.callBaseMethod=function(a,d,b){var c=this.getBaseMethod(a,d);if(!b)return c.apply(a);else return c.apply(a,b)};Type.prototype.getBaseMethod=function(d,c){var b=this.getBaseType();if(b){var a=b.prototype[c];return a instanceof Function?a:null}return null};Type.prototype.getBaseType=function(){return typeof this.__baseType==="undefined"?null:this.__baseType};Type.prototype.getInterfaces=function(){var a=[],b=this;while(b){var c=b.__interfaces;if(c)for(var d=0,f=c.length;d-1){Sys.Browser.agent=Sys.Browser.InternetExplorer;Sys.Browser.version=parseFloat(navigator.userAgent.match(/MSIE (\d+\.\d+)/)[1]);if(Sys.Browser.version>=8)if(document.documentMode>=7)Sys.Browser.documentMode=document.documentMode;Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(" Firefox/")>-1){Sys.Browser.agent=Sys.Browser.Firefox;Sys.Browser.version=parseFloat(navigator.userAgent.match(/Firefox\/(\d+\.\d+)/)[1]);Sys.Browser.name="Firefox";Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(" AppleWebKit/")>-1){Sys.Browser.agent=Sys.Browser.Safari;Sys.Browser.version=parseFloat(navigator.userAgent.match(/AppleWebKit\/(\d+(\.\d+)?)/)[1]);Sys.Browser.name="Safari"}else if(navigator.userAgent.indexOf("Opera/")>-1)Sys.Browser.agent=Sys.Browser.Opera;Type.registerNamespace("Sys.UI");Sys._Debug=function(){};Sys._Debug.prototype={_appendConsole:function(a){if(typeof Debug!=="undefined"&&Debug.writeln)Debug.writeln(a);if(window.console&&window.console.log)window.console.log(a);if(window.opera)window.opera.postError(a);if(window.debugService)window.debugService.trace(a)},_appendTrace:function(b){var a=document.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()==="TEXTAREA")a.value+=b+"\n"},assert:function(c,a,b){if(!c){a=b&&this.assert.caller?String.format(Sys.Res.assertFailedCaller,a,this.assert.caller):String.format(Sys.Res.assertFailed,a);if(confirm(String.format(Sys.Res.breakIntoDebugger,a)))this.fail(a)}},clearTrace:function(){var a=document.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()==="TEXTAREA")a.value=""},fail:function(message){this._appendConsole(message);if(Sys.Browser.hasDebuggerStatement)eval("debugger")},trace:function(a){this._appendConsole(a);this._appendTrace(a)},traceDump:function(a,b){var c=this._traceDump(a,b,true)},_traceDump:function(a,c,f,b,d){c=c?c:"traceDump";b=b?b:"";if(a===null){this.trace(b+c+": null");return}switch(typeof a){case "undefined":this.trace(b+c+": Undefined");break;case "number":case "string":case "boolean":this.trace(b+c+": "+a);break;default:if(Date.isInstanceOfType(a)||RegExp.isInstanceOfType(a)){this.trace(b+c+": "+a.toString());break}if(!d)d=[];else if(Array.contains(d,a)){this.trace(b+c+": ...");return}Array.add(d,a);if(a==window||a===document||window.HTMLElement&&a instanceof HTMLElement||typeof a.nodeName==="string"){var k=a.tagName?a.tagName:"DomElement";if(a.id)k+=" - "+a.id;this.trace(b+c+" {"+k+"}")}else{var i=Object.getTypeName(a);this.trace(b+c+(typeof i==="string"?" {"+i+"}":""));if(b===""||f){b+=" ";var e,j,l,g,h;if(Array.isInstanceOfType(a)){j=a.length;for(e=0;e=0;d--){var k=h[d].trim();b=a[k];if(typeof b!=="number")throw Error.argument("value",String.format(Sys.Res.enumInvalidValue,c.split(",")[d].trim(),this.__typeName));j|=b}return j}}function Sys$Enum$toString(c){if(typeof c==="undefined"||c===null)return this.__string;var d=this.prototype,a;if(!this.__flags||c===0){for(a in d)if(d[a]===c)return a}else{var b=this.__sortedValues;if(!b){b=[];for(a in d)b[b.length]={key:a,value:d[a]};b.sort(function(a,b){return a.value-b.value});this.__sortedValues=b}var e=[],g=c;for(a=b.length-1;a>=0;a--){var h=b[a],f=h.value;if(f===0)continue;if((f&c)===f){e[e.length]=h.key;g-=f;if(g===0)break}}if(e.length&&g===0)return e.reverse().join(", ")}return ""}Type.prototype.registerEnum=function(b,c){Sys.__upperCaseTypes[b.toUpperCase()]=this;for(var a in this.prototype)this[a]=this.prototype[a];this.__typeName=b;this.parse=Sys$Enum$parse;this.__string=this.toString();this.toString=Sys$Enum$toString;this.__flags=c;this.__enum=true};Type.isEnum=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__enum};Type.isFlags=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__flags};Sys.EventHandlerList=function(){this._list={}};Sys.EventHandlerList.prototype={addHandler:function(b,a){Array.add(this._getEvent(b,true),a)},removeHandler:function(c,b){var a=this._getEvent(c);if(!a)return;Array.remove(a,b)},getHandler:function(b){var a=this._getEvent(b);if(!a||a.length===0)return null;a=Array.clone(a);return function(c,d){for(var b=0,e=a.length;b=0;c--)$removeHandler(a,b,d[c].handler)}a._events=null}},$removeHandler=Sys.UI.DomEvent.removeHandler=function(a,e,f){var d=null,c=a._events[e];for(var b=0,g=c.length;b=0)d.className=(a.substr(0,b)+" "+a.substring(b+c.length+1,a.length)).trim()};Sys.UI.DomElement.setLocation=function(b,c,d){var a=b.style;a.position="absolute";a.left=c+"px";a.top=d+"px"};Sys.UI.DomElement.toggleCssClass=function(b,a){if(Sys.UI.DomElement.containsCssClass(b,a))Sys.UI.DomElement.removeCssClass(b,a);else Sys.UI.DomElement.addCssClass(b,a)};Sys.UI.DomElement.getVisibilityMode=function(a){return a._visibilityMode===Sys.UI.VisibilityMode.hide?Sys.UI.VisibilityMode.hide:Sys.UI.VisibilityMode.collapse};Sys.UI.DomElement.setVisibilityMode=function(a,b){Sys.UI.DomElement._ensureOldDisplayMode(a);if(a._visibilityMode!==b){a._visibilityMode=b;if(Sys.UI.DomElement.getVisible(a)===false)if(a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display="none";a._visibilityMode=b}};Sys.UI.DomElement.getVisible=function(b){var a=b.currentStyle||Sys.UI.DomElement._getCurrentStyle(b);if(!a)return true;return a.visibility!=="hidden"&&a.display!=="none"};Sys.UI.DomElement.setVisible=function(a,b){if(b!==Sys.UI.DomElement.getVisible(a)){Sys.UI.DomElement._ensureOldDisplayMode(a);a.style.visibility=b?"visible":"hidden";if(b||a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display="none"}};Sys.UI.DomElement._ensureOldDisplayMode=function(a){if(!a._oldDisplayMode){var b=a.currentStyle||Sys.UI.DomElement._getCurrentStyle(a);a._oldDisplayMode=b?b.display:null;if(!a._oldDisplayMode||a._oldDisplayMode==="none")switch(a.tagName.toUpperCase()){case "DIV":case "P":case "ADDRESS":case "BLOCKQUOTE":case "BODY":case "COL":case "COLGROUP":case "DD":case "DL":case "DT":case "FIELDSET":case "FORM":case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":case "HR":case "IFRAME":case "LEGEND":case "OL":case "PRE":case "TABLE":case "TD":case "TH":case "TR":case "UL":a._oldDisplayMode="block";break;case "LI":a._oldDisplayMode="list-item";break;default:a._oldDisplayMode="inline"}}};Sys.UI.DomElement._getWindow=function(a){var b=a.ownerDocument||a.document||a;return b.defaultView||b.parentWindow};Sys.UI.DomElement._getCurrentStyle=function(a){if(a.nodeType===3)return null;var c=Sys.UI.DomElement._getWindow(a);if(a.documentElement)a=a.documentElement;var b=c&&a!==c&&c.getComputedStyle?c.getComputedStyle(a,null):a.currentStyle||a.style;if(!b&&Sys.Browser.agent===Sys.Browser.Safari&&a.style){var g=a.style.display,f=a.style.position;a.style.position="absolute";a.style.display="block";var e=c.getComputedStyle(a,null);a.style.display=g;a.style.position=f;b={};for(var d in e)b[d]=e[d];b.display="none"}return b};Sys.IContainer=function(){};Sys.IContainer.prototype={};Sys.IContainer.registerInterface("Sys.IContainer");Sys._ScriptLoader=function(){this._scriptsToLoad=null;this._sessions=[];this._scriptLoadedDelegate=Function.createDelegate(this,this._scriptLoadedHandler)};Sys._ScriptLoader.prototype={dispose:function(){this._stopSession();this._loading=false;if(this._events)delete this._events;this._sessions=null;this._currentSession=null;this._scriptLoadedDelegate=null},loadScripts:function(d,b,c,a){var e={allScriptsLoadedCallback:b,scriptLoadFailedCallback:c,scriptLoadTimeoutCallback:a,scriptsToLoad:this._scriptsToLoad,scriptTimeout:d};this._scriptsToLoad=null;this._sessions[this._sessions.length]=e;if(!this._loading)this._nextSession()},notifyScriptLoaded:function(){if(!this._loading)return;this._currentTask._notified++;if(Sys.Browser.agent===Sys.Browser.Safari)if(this._currentTask._notified===1)window.setTimeout(Function.createDelegate(this,function(){this._scriptLoadedHandler(this._currentTask.get_scriptElement(),true)}),0)},queueCustomScriptTag:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,a)},queueScriptBlock:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,{text:a})},queueScriptReference:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,{src:a})},_createScriptElement:function(c){var a=document.createElement("script");a.type="text/javascript";for(var b in c)a[b]=c[b];return a},_loadScriptsInternal:function(){var b=this._currentSession;if(b.scriptsToLoad&&b.scriptsToLoad.length>0){var c=Array.dequeue(b.scriptsToLoad),a=this._createScriptElement(c);if(a.text&&Sys.Browser.agent===Sys.Browser.Safari){a.innerHTML=a.text;delete a.text}if(typeof c.src==="string"){this._currentTask=new Sys._ScriptLoaderTask(a,this._scriptLoadedDelegate);this._currentTask.execute()}else{document.getElementsByTagName("head")[0].appendChild(a);Sys._ScriptLoader._clearScript(a);this._loadScriptsInternal()}}else{this._stopSession();var d=b.allScriptsLoadedCallback;if(d)d(this);this._nextSession()}},_nextSession:function(){if(this._sessions.length===0){this._loading=false;this._currentSession=null;return}this._loading=true;var a=Array.dequeue(this._sessions);this._currentSession=a;if(a.scriptTimeout>0)this._timeoutCookie=window.setTimeout(Function.createDelegate(this,this._scriptLoadTimeoutHandler),a.scriptTimeout*1000);this._loadScriptsInternal()},_raiseError:function(a){var c=this._currentSession.scriptLoadFailedCallback,b=this._currentTask.get_scriptElement();this._stopSession();if(c){c(this,b,a);this._nextSession()}else{this._loading=false;throw Sys._ScriptLoader._errorScriptLoadFailed(b.src,a)}},_scriptLoadedHandler:function(a,b){if(b&&this._currentTask._notified)if(this._currentTask._notified>1)this._raiseError(true);else{Array.add(Sys._ScriptLoader._getLoadedScripts(),a.src);this._currentTask.dispose();this._currentTask=null;this._loadScriptsInternal()}else this._raiseError(false)},_scriptLoadTimeoutHandler:function(){var a=this._currentSession.scriptLoadTimeoutCallback;this._stopSession();if(a)a(this);this._nextSession()},_stopSession:function(){if(this._timeoutCookie){window.clearTimeout(this._timeoutCookie);this._timeoutCookie=null}if(this._currentTask){this._currentTask.dispose();this._currentTask=null}}};Sys._ScriptLoader.registerClass("Sys._ScriptLoader",null,Sys.IDisposable);Sys._ScriptLoader.getInstance=function(){var a=Sys._ScriptLoader._activeInstance;if(!a)a=Sys._ScriptLoader._activeInstance=new Sys._ScriptLoader;return a};Sys._ScriptLoader.isScriptLoaded=function(b){var a=document.createElement("script");a.src=b;return Array.contains(Sys._ScriptLoader._getLoadedScripts(),a.src)};Sys._ScriptLoader.readLoadedScripts=function(){if(!Sys._ScriptLoader._referencedScripts){var b=Sys._ScriptLoader._referencedScripts=[],c=document.getElementsByTagName("script");for(i=c.length-1;i>=0;i--){var d=c[i],a=d.src;if(a.length)if(!Array.contains(b,a))Array.add(b,a)}}};Sys._ScriptLoader._clearScript=function(a){if(!Sys.Debug.isDebug)a.parentNode.removeChild(a)};Sys._ScriptLoader._errorScriptLoadFailed=function(b,d){var a;if(d)a=Sys.Res.scriptLoadMultipleCallbacks;else a=Sys.Res.scriptLoadFailed;var e="Sys.ScriptLoadFailedException: "+String.format(a,b),c=Error.create(e,{name:"Sys.ScriptLoadFailedException","scriptUrl":b});c.popStackFrame();return c};Sys._ScriptLoader._getLoadedScripts=function(){if(!Sys._ScriptLoader._referencedScripts){Sys._ScriptLoader._referencedScripts=[];Sys._ScriptLoader.readLoadedScripts()}return Sys._ScriptLoader._referencedScripts};Sys._ScriptLoaderTask=function(b,a){this._scriptElement=b;this._completedCallback=a;this._notified=0};Sys._ScriptLoaderTask.prototype={get_scriptElement:function(){return this._scriptElement},dispose:function(){if(this._disposed)return;this._disposed=true;this._removeScriptElementHandlers();Sys._ScriptLoader._clearScript(this._scriptElement);this._scriptElement=null},execute:function(){this._addScriptElementHandlers();document.getElementsByTagName("head")[0].appendChild(this._scriptElement)},_addScriptElementHandlers:function(){this._scriptLoadDelegate=Function.createDelegate(this,this._scriptLoadHandler);if(Sys.Browser.agent!==Sys.Browser.InternetExplorer){this._scriptElement.readyState="loaded";$addHandler(this._scriptElement,"load",this._scriptLoadDelegate)}else $addHandler(this._scriptElement,"readystatechange",this._scriptLoadDelegate);if(this._scriptElement.addEventListener){this._scriptErrorDelegate=Function.createDelegate(this,this._scriptErrorHandler);this._scriptElement.addEventListener("error",this._scriptErrorDelegate,false)}},_removeScriptElementHandlers:function(){if(this._scriptLoadDelegate){var a=this.get_scriptElement();if(Sys.Browser.agent!==Sys.Browser.InternetExplorer)$removeHandler(a,"load",this._scriptLoadDelegate);else $removeHandler(a,"readystatechange",this._scriptLoadDelegate);if(this._scriptErrorDelegate){this._scriptElement.removeEventListener("error",this._scriptErrorDelegate,false);this._scriptErrorDelegate=null}this._scriptLoadDelegate=null}},_scriptErrorHandler:function(){if(this._disposed)return;this._completedCallback(this.get_scriptElement(),false)},_scriptLoadHandler:function(){if(this._disposed)return;var a=this.get_scriptElement();if(a.readyState!=="loaded"&&a.readyState!=="complete")return;var b=this;window.setTimeout(function(){b._completedCallback(a,true)},0)}};Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask",null,Sys.IDisposable);Sys.ApplicationLoadEventArgs=function(b,a){Sys.ApplicationLoadEventArgs.initializeBase(this);this._components=b;this._isPartialLoad=a};Sys.ApplicationLoadEventArgs.prototype={get_components:function(){return this._components},get_isPartialLoad:function(){return this._isPartialLoad}};Sys.ApplicationLoadEventArgs.registerClass("Sys.ApplicationLoadEventArgs",Sys.EventArgs);Sys.HistoryEventArgs=function(a){Sys.HistoryEventArgs.initializeBase(this);this._state=a};Sys.HistoryEventArgs.prototype={get_state:function(){return this._state}};Sys.HistoryEventArgs.registerClass("Sys.HistoryEventArgs",Sys.EventArgs);Sys._Application=function(){Sys._Application.initializeBase(this);this._disposableObjects=[];this._components={};this._createdComponents=[];this._secondPassComponents=[];this._appLoadHandler=null;this._beginRequestHandler=null;this._clientId=null;this._currentEntry="";this._endRequestHandler=null;this._history=null;this._enableHistory=false;this._historyFrame=null;this._historyInitialized=false;this._historyInitialLength=0;this._historyLength=0;this._historyPointIsNew=false;this._ignoreTimer=false;this._initialState=null;this._state={};this._timerCookie=0;this._timerHandler=null;this._uniqueId=null;this._unloadHandlerDelegate=Function.createDelegate(this,this._unloadHandler);this._loadHandlerDelegate=Function.createDelegate(this,this._loadHandler);Sys.UI.DomEvent.addHandler(window,"unload",this._unloadHandlerDelegate);Sys.UI.DomEvent.addHandler(window,"load",this._loadHandlerDelegate)};Sys._Application.prototype={_creatingComponents:false,_disposing:false,get_isCreatingComponents:function(){return this._creatingComponents},get_stateString:function(){var a=window.location.hash;if(this._isSafari2()){var b=this._getHistory();if(b)a=b[window.history.length-this._historyInitialLength]}if(a.length>0&&a.charAt(0)==="#")a=a.substring(1);if(Sys.Browser.agent===Sys.Browser.Firefox)a=this._serializeState(this._deserializeState(a,true));return a},get_enableHistory:function(){return this._enableHistory},set_enableHistory:function(a){this._enableHistory=a},add_init:function(a){if(this._initialized)a(this,Sys.EventArgs.Empty);else this.get_events().addHandler("init",a)},remove_init:function(a){this.get_events().removeHandler("init",a)},add_load:function(a){this.get_events().addHandler("load",a)},remove_load:function(a){this.get_events().removeHandler("load",a)},add_navigate:function(a){this.get_events().addHandler("navigate",a)},remove_navigate:function(a){this.get_events().removeHandler("navigate",a)},add_unload:function(a){this.get_events().addHandler("unload",a)},remove_unload:function(a){this.get_events().removeHandler("unload",a)},addComponent:function(a){this._components[a.get_id()]=a},addHistoryPoint:function(c,f){this._ensureHistory();var b=this._state;for(var a in c){var d=c[a];if(d===null){if(typeof b[a]!=="undefined")delete b[a]}else b[a]=d}var e=this._serializeState(b);this._historyPointIsNew=true;this._setState(e,f);this._raiseNavigate()},beginCreateComponents:function(){this._creatingComponents=true},dispose:function(){if(!this._disposing){this._disposing=true;if(this._timerCookie){window.clearTimeout(this._timerCookie);delete this._timerCookie}if(this._endRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);delete this._endRequestHandler}if(this._beginRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._beginRequestHandler);delete this._beginRequestHandler}if(window.pageUnload)window.pageUnload(this,Sys.EventArgs.Empty);var c=this.get_events().getHandler("unload");if(c)c(this,Sys.EventArgs.Empty);var b=Array.clone(this._disposableObjects);for(var a=0,e=b.length;a'");d.write(""+(c||document.title)+"parent.Sys.Application._onIFrameLoad(\''+a+"');");d.close()}this._ignoreTimer=false;var h=this.get_stateString();this._currentEntry=a;if(a!==h){if(this._isSafari2()){var g=this._getHistory();g[window.history.length-this._historyInitialLength+1]=a;this._setHistory(g);this._historyLength=window.history.length+1;var b=document.createElement("form");b.method="get";b.action="#"+a;document.appendChild(b);b.submit();document.removeChild(b)}else window.location.hash=a;if(typeof c!=="undefined"&&c!==null)document.title=c}}},_unloadHandler:function(){this.dispose()},_updateHiddenField:function(b){if(this._clientId){var a=document.getElementById(this._clientId);if(a)a.value=b}}};Sys._Application.registerClass("Sys._Application",Sys.Component,Sys.IContainer);Sys.Application=new Sys._Application;var $find=Sys.Application.findComponent;Type.registerNamespace("Sys.Net");Sys.Net.WebRequestExecutor=function(){this._webRequest=null;this._resultObject=null};Sys.Net.WebRequestExecutor.prototype={get_webRequest:function(){return this._webRequest},_set_webRequest:function(a){this._webRequest=a},get_started:function(){throw Error.notImplemented()},get_responseAvailable:function(){throw Error.notImplemented()},get_timedOut:function(){throw Error.notImplemented()},get_aborted:function(){throw Error.notImplemented()},get_responseData:function(){throw Error.notImplemented()},get_statusCode:function(){throw Error.notImplemented()},get_statusText:function(){throw Error.notImplemented()},get_xml:function(){throw Error.notImplemented()},get_object:function(){if(!this._resultObject)this._resultObject=Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData());return this._resultObject},executeRequest:function(){throw Error.notImplemented()},abort:function(){throw Error.notImplemented()},getResponseHeader:function(){throw Error.notImplemented()},getAllResponseHeaders:function(){throw Error.notImplemented()}};Sys.Net.WebRequestExecutor.registerClass("Sys.Net.WebRequestExecutor");Sys.Net.XMLDOM=function(d){if(!window.DOMParser){var c=["Msxml2.DOMDocument.3.0","Msxml2.DOMDocument"];for(var b=0,f=c.length;b0)this._timer=window.setTimeout(Function.createDelegate(this,this._onTimeout),d);this._xmlHttpRequest.send(c);this._started=true},getResponseHeader:function(b){var a;try{a=this._xmlHttpRequest.getResponseHeader(b)}catch(c){}if(!a)a="";return a},getAllResponseHeaders:function(){return this._xmlHttpRequest.getAllResponseHeaders()},get_responseData:function(){return this._xmlHttpRequest.responseText},get_statusCode:function(){var a=0;try{a=this._xmlHttpRequest.status}catch(b){}return a},get_statusText:function(){return this._xmlHttpRequest.statusText},get_xml:function(){var a=this._xmlHttpRequest.responseXML;if(!a||!a.documentElement){a=Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);if(!a||!a.documentElement)return null}else if(navigator.userAgent.indexOf("MSIE")!==-1)a.setProperty("SelectionLanguage","XPath");if(a.documentElement.namespaceURI==="http://www.mozilla.org/newlayout/xml/parsererror.xml"&&a.documentElement.tagName==="parsererror")return null;if(a.documentElement.firstChild&&a.documentElement.firstChild.tagName==="parsererror")return null;return a},abort:function(){if(this._aborted||this._responseAvailable||this._timedOut)return;this._aborted=true;this._clearTimer();if(this._xmlHttpRequest&&!this._responseAvailable){this._xmlHttpRequest.onreadystatechange=Function.emptyMethod;this._xmlHttpRequest.abort();this._xmlHttpRequest=null;this._webRequest.completed(Sys.EventArgs.Empty)}}};Sys.Net.XMLHttpExecutor.registerClass("Sys.Net.XMLHttpExecutor",Sys.Net.WebRequestExecutor);Sys.Net._WebRequestManager=function(){this._defaultTimeout=0;this._defaultExecutorType="Sys.Net.XMLHttpExecutor"};Sys.Net._WebRequestManager.prototype={add_invokingRequest:function(a){this._get_eventHandlerList().addHandler("invokingRequest",a)},remove_invokingRequest:function(a){this._get_eventHandlerList().removeHandler("invokingRequest",a)},add_completedRequest:function(a){this._get_eventHandlerList().addHandler("completedRequest",a)},remove_completedRequest:function(a){this._get_eventHandlerList().removeHandler("completedRequest",a)},_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_defaultTimeout:function(){return this._defaultTimeout},set_defaultTimeout:function(a){this._defaultTimeout=a},get_defaultExecutorType:function(){return this._defaultExecutorType},set_defaultExecutorType:function(a){this._defaultExecutorType=a},executeRequest:function(webRequest){var executor=webRequest.get_executor();if(!executor){var failed=false;try{var executorType=eval(this._defaultExecutorType);executor=new executorType}catch(a){failed=true}webRequest.set_executor(executor)}if(executor.get_aborted())return;var evArgs=new Sys.Net.NetworkRequestEventArgs(webRequest),handler=this._get_eventHandlerList().getHandler("invokingRequest");if(handler)handler(this,evArgs);if(!evArgs.get_cancel())executor.executeRequest()}};Sys.Net._WebRequestManager.registerClass("Sys.Net._WebRequestManager");Sys.Net.WebRequestManager=new Sys.Net._WebRequestManager;Sys.Net.NetworkRequestEventArgs=function(a){Sys.Net.NetworkRequestEventArgs.initializeBase(this);this._webRequest=a};Sys.Net.NetworkRequestEventArgs.prototype={get_webRequest:function(){return this._webRequest}};Sys.Net.NetworkRequestEventArgs.registerClass("Sys.Net.NetworkRequestEventArgs",Sys.CancelEventArgs);Sys.Net.WebRequest=function(){this._url="";this._headers={};this._body=null;this._userContext=null;this._httpVerb=null;this._executor=null;this._invokeCalled=false;this._timeout=0};Sys.Net.WebRequest.prototype={add_completed:function(a){this._get_eventHandlerList().addHandler("completed",a)},remove_completed:function(a){this._get_eventHandlerList().removeHandler("completed",a)},completed:function(b){var a=Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRequest");if(a)a(this._executor,b);a=this._get_eventHandlerList().getHandler("completed");if(a)a(this._executor,b)},_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_url:function(){return this._url},set_url:function(a){this._url=a},get_headers:function(){return this._headers},get_httpVerb:function(){if(this._httpVerb===null){if(this._body===null)return "GET";return "POST"}return this._httpVerb},set_httpVerb:function(a){this._httpVerb=a},get_body:function(){return this._body},set_body:function(a){this._body=a},get_userContext:function(){return this._userContext},set_userContext:function(a){this._userContext=a},get_executor:function(){return this._executor},set_executor:function(a){this._executor=a;this._executor._set_webRequest(this)},get_timeout:function(){if(this._timeout===0)return Sys.Net.WebRequestManager.get_defaultTimeout();return this._timeout},set_timeout:function(a){this._timeout=a},getResolvedUrl:function(){return Sys.Net.WebRequest._resolveUrl(this._url)},invoke:function(){Sys.Net.WebRequestManager.executeRequest(this);this._invokeCalled=true}};Sys.Net.WebRequest._resolveUrl=function(b,a){if(b&&b.indexOf("://")!==-1)return b;if(!a||a.length===0){var d=document.getElementsByTagName("base")[0];if(d&&d.href&&d.href.length>0)a=d.href;else a=document.URL}var c=a.indexOf("?");if(c!==-1)a=a.substr(0,c);c=a.indexOf("#");if(c!==-1)a=a.substr(0,c);a=a.substr(0,a.lastIndexOf("/")+1);if(!b||b.length===0)return a;if(b.charAt(0)==="/"){var e=a.indexOf("://"),g=a.indexOf("/",e+3);return a.substr(0,g)+b}else{var f=a.lastIndexOf("/");return a.substr(0,f+1)+b}};Sys.Net.WebRequest._createQueryString=function(d,b){if(!b)b=encodeURIComponent;var a=new Sys.StringBuilder,f=0;for(var c in d){var e=d[c];if(typeof e==="function")continue;var g=Sys.Serialization.JavaScriptSerializer.serialize(e);if(f!==0)a.append("&");a.append(c);a.append("=");a.append(b(g));f++}return a.toString()};Sys.Net.WebRequest._createUrl=function(a,b){if(!b)return a;var d=Sys.Net.WebRequest._createQueryString(b);if(d.length>0){var c="?";if(a&&a.indexOf("?")!==-1)c="&";return a+c+d}else return a};Sys.Net.WebRequest.registerClass("Sys.Net.WebRequest");Sys.Net.WebServiceProxy=function(){};Sys.Net.WebServiceProxy.prototype={get_timeout:function(){return this._timeout},set_timeout:function(a){if(a<0)throw Error.argumentOutOfRange("value",a,Sys.Res.invalidTimeout);this._timeout=a},get_defaultUserContext:function(){return this._userContext},set_defaultUserContext:function(a){this._userContext=a},get_defaultSucceededCallback:function(){return this._succeeded},set_defaultSucceededCallback:function(a){this._succeeded=a},get_defaultFailedCallback:function(){return this._failed},set_defaultFailedCallback:function(a){this._failed=a},get_path:function(){return this._path},set_path:function(a){this._path=a},_invoke:function(d,e,g,f,c,b,a){if(c===null||typeof c==="undefined")c=this.get_defaultSucceededCallback();if(b===null||typeof b==="undefined")b=this.get_defaultFailedCallback();if(a===null||typeof a==="undefined")a=this.get_defaultUserContext();return Sys.Net.WebServiceProxy.invoke(d,e,g,f,c,b,a,this.get_timeout())}};Sys.Net.WebServiceProxy.registerClass("Sys.Net.WebServiceProxy");Sys.Net.WebServiceProxy.invoke=function(k,a,j,d,i,c,f,h){var b=new Sys.Net.WebRequest;b.get_headers()["Content-Type"]="application/json; charset=utf-8";if(!d)d={};var g=d;if(!j||!g)g={};b.set_url(Sys.Net.WebRequest._createUrl(k+"/"+encodeURIComponent(a),g));var e=null;if(!j){e=Sys.Serialization.JavaScriptSerializer.serialize(d);if(e==="{}")e=""}b.set_body(e);b.add_completed(l);if(h&&h>0)b.set_timeout(h);b.invoke();function l(d){if(d.get_responseAvailable()){var g=d.get_statusCode(),b=null;try{var e=d.getResponseHeader("Content-Type");if(e.startsWith("application/json"))b=d.get_object();else if(e.startsWith("text/xml"))b=d.get_xml();else b=d.get_responseData()}catch(m){}var k=d.getResponseHeader("jsonerror"),h=k==="true";if(h){if(b)b=new Sys.Net.WebServiceError(false,b.Message,b.StackTrace,b.ExceptionType)}else if(e.startsWith("application/json"))b=b.d;if(g<200||g>=300||h){if(c){if(!b||!h)b=new Sys.Net.WebServiceError(false,String.format(Sys.Res.webServiceFailedNoMsg,a),"","");b._statusCode=g;c(b,f,a)}}else if(i)i(b,f,a)}else{var j;if(d.get_timedOut())j=String.format(Sys.Res.webServiceTimedOut,a);else j=String.format(Sys.Res.webServiceFailedNoMsg,a);if(c)c(new Sys.Net.WebServiceError(d.get_timedOut(),j,"",""),f,a)}}return b};Sys.Net.WebServiceProxy._generateTypedConstructor=function(a){return function(b){if(b)for(var c in b)this[c]=b[c];this.__type=a}};Sys.Net.WebServiceError=function(c,d,b,a){this._timedOut=c;this._message=d;this._stackTrace=b;this._exceptionType=a;this._statusCode=-1};Sys.Net.WebServiceError.prototype={get_timedOut:function(){return this._timedOut},get_statusCode:function(){return this._statusCode},get_message:function(){return this._message},get_stackTrace:function(){return this._stackTrace},get_exceptionType:function(){return this._exceptionType}};Sys.Net.WebServiceError.registerClass("Sys.Net.WebServiceError");Type.registerNamespace("Sys.Services");Sys.Services._ProfileService=function(){Sys.Services._ProfileService.initializeBase(this);this.properties={}};Sys.Services._ProfileService.DefaultWebServicePath="";Sys.Services._ProfileService.prototype={_defaultLoadCompletedCallback:null,_defaultSaveCompletedCallback:null,_path:"",_timeout:0,get_defaultLoadCompletedCallback:function(){return this._defaultLoadCompletedCallback},set_defaultLoadCompletedCallback:function(a){this._defaultLoadCompletedCallback=a},get_defaultSaveCompletedCallback:function(){return this._defaultSaveCompletedCallback},set_defaultSaveCompletedCallback:function(a){this._defaultSaveCompletedCallback=a},get_path:function(){return this._path||""},load:function(c,d,e,f){var b,a;if(!c){a="GetAllPropertiesForCurrentUser";b={authenticatedUserOnly:false}}else{a="GetPropertiesForCurrentUser";b={properties:this._clonePropertyNames(c),authenticatedUserOnly:false}}this._invoke(this._get_path(),a,false,b,Function.createDelegate(this,this._onLoadComplete),Function.createDelegate(this,this._onLoadFailed),[d,e,f])},save:function(d,b,c,e){var a=this._flattenProperties(d,this.properties);this._invoke(this._get_path(),"SetPropertiesForCurrentUser",false,{values:a.value,authenticatedUserOnly:false},Function.createDelegate(this,this._onSaveComplete),Function.createDelegate(this,this._onSaveFailed),[b,c,e,a.count])},_clonePropertyNames:function(e){var c=[],d={};for(var b=0;b0)a.append(",");Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(b[c],a,false,g)}a.append("]")}else{if(Date.isInstanceOfType(b)){a.append('"\\/Date(');a.append(b.getTime());a.append(')\\/"');break}var d=[],f=0;for(var e in b){if(e.startsWith("$"))continue;if(e===Sys.Serialization.JavaScriptSerializer._serverTypeFieldName&&f!==0){d[f++]=d[0];d[0]=e}else d[f++]=e}if(i)d.sort();a.append("{");var j=false;for(c=0;c
- ///
- ///
- ///
- ///
- ///
-};
-Sys.Mvc.InsertionMode.prototype = {
- replace: 0,
- insertBefore: 1,
- insertAfter: 2
-}
-Sys.Mvc.InsertionMode.registerEnum('Sys.Mvc.InsertionMode', false);
-
-
-////////////////////////////////////////////////////////////////////////////////
-// Sys.Mvc.AjaxContext
-
-Sys.Mvc.AjaxContext = function Sys_Mvc_AjaxContext(request, updateTarget, loadingElement, insertionMode) {
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- this._request = request;
- this._updateTarget = updateTarget;
- this._loadingElement = loadingElement;
- this._insertionMode = insertionMode;
-}
-Sys.Mvc.AjaxContext.prototype = {
- _insertionMode: 0,
- _loadingElement: null,
- _response: null,
- _request: null,
- _updateTarget: null,
-
- get_data: function Sys_Mvc_AjaxContext$get_data() {
- ///
- if (this._response) {
- return this._response.get_responseData();
- }
- else {
- return null;
- }
- },
-
- get_insertionMode: function Sys_Mvc_AjaxContext$get_insertionMode() {
- ///
- return this._insertionMode;
- },
-
- get_loadingElement: function Sys_Mvc_AjaxContext$get_loadingElement() {
- ///
- return this._loadingElement;
- },
-
- get_response: function Sys_Mvc_AjaxContext$get_response() {
- ///
- return this._response;
- },
- set_response: function Sys_Mvc_AjaxContext$set_response(value) {
- ///
- this._response = value;
- return value;
- },
-
- get_request: function Sys_Mvc_AjaxContext$get_request() {
- ///
- return this._request;
- },
-
- get_updateTarget: function Sys_Mvc_AjaxContext$get_updateTarget() {
- ///
- return this._updateTarget;
- }
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// Sys.Mvc.AsyncHyperlink
-
-Sys.Mvc.AsyncHyperlink = function Sys_Mvc_AsyncHyperlink() {
-}
-Sys.Mvc.AsyncHyperlink.handleClick = function Sys_Mvc_AsyncHyperlink$handleClick(anchor, evt, ajaxOptions) {
- ///
- ///
- ///
- ///
- ///
- ///
- evt.preventDefault();
- Sys.Mvc.MvcHelpers._asyncRequest(anchor.href, 'post', '', anchor, ajaxOptions);
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// Sys.Mvc.MvcHelpers
-
-Sys.Mvc.MvcHelpers = function Sys_Mvc_MvcHelpers() {
-}
-Sys.Mvc.MvcHelpers._serializeForm = function Sys_Mvc_MvcHelpers$_serializeForm(form) {
- ///
- ///
- ///
- var formElements = form.elements;
- var formBody = new Sys.StringBuilder();
- var count = formElements.length;
- for (var i = 0; i < count; i++) {
- var element = formElements[i];
- var name = element.name;
- if (!name || !name.length) {
- continue;
- }
- var tagName = element.tagName.toUpperCase();
- if (tagName === 'INPUT') {
- var inputElement = element;
- var type = inputElement.type;
- if ((type === 'text') || (type === 'password') || (type === 'hidden') || (((type === 'checkbox') || (type === 'radio')) && element.checked)) {
- formBody.append(encodeURIComponent(name));
- formBody.append('=');
- formBody.append(encodeURIComponent(inputElement.value));
- formBody.append('&');
- }
- }
- else if (tagName === 'SELECT') {
- var selectElement = element;
- var optionCount = selectElement.options.length;
- for (var j = 0; j < optionCount; j++) {
- var optionElement = selectElement.options[j];
- if (optionElement.selected) {
- formBody.append(encodeURIComponent(name));
- formBody.append('=');
- formBody.append(encodeURIComponent(optionElement.value));
- formBody.append('&');
- }
- }
- }
- else if (tagName === 'TEXTAREA') {
- formBody.append(encodeURIComponent(name));
- formBody.append('=');
- formBody.append(encodeURIComponent((element.value)));
- formBody.append('&');
- }
- }
- return formBody.toString();
-}
-Sys.Mvc.MvcHelpers._asyncRequest = function Sys_Mvc_MvcHelpers$_asyncRequest(url, verb, body, triggerElement, ajaxOptions) {
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- if (ajaxOptions.confirm) {
- if (!confirm(ajaxOptions.confirm)) {
- return;
- }
- }
- if (ajaxOptions.url) {
- url = ajaxOptions.url;
- }
- if (ajaxOptions.httpMethod) {
- verb = ajaxOptions.httpMethod;
- }
- if (body.length > 0 && !body.endsWith('&')) {
- body += '&';
- }
- body += 'X-Requested-With=XMLHttpRequest';
- var requestBody = '';
- if (verb.toUpperCase() === 'GET' || verb.toUpperCase() === 'DELETE') {
- if (url.indexOf('?') > -1) {
- if (!url.endsWith('&')) {
- url += '&';
- }
- url += body;
- }
- else {
- url += '?';
- url += body;
- }
- }
- else {
- requestBody = body;
- }
- var request = new Sys.Net.WebRequest();
- request.set_url(url);
- request.set_httpVerb(verb);
- request.set_body(requestBody);
- if (verb.toUpperCase() === 'PUT') {
- request.get_headers()['Content-Type'] = 'application/x-www-form-urlencoded;';
- }
- request.get_headers()['X-Requested-With'] = 'XMLHttpRequest';
- var updateElement = null;
- if (ajaxOptions.updateTargetId) {
- updateElement = $get(ajaxOptions.updateTargetId);
- }
- var loadingElement = null;
- if (ajaxOptions.loadingElementId) {
- loadingElement = $get(ajaxOptions.loadingElementId);
- }
- var ajaxContext = new Sys.Mvc.AjaxContext(request, updateElement, loadingElement, ajaxOptions.insertionMode);
- var continueRequest = true;
- if (ajaxOptions.onBegin) {
- continueRequest = ajaxOptions.onBegin(ajaxContext) !== false;
- }
- if (loadingElement) {
- Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), true);
- }
- if (continueRequest) {
- request.add_completed(Function.createDelegate(null, function(executor) {
- Sys.Mvc.MvcHelpers._onComplete(request, ajaxOptions, ajaxContext);
- }));
- request.invoke();
- }
-}
-Sys.Mvc.MvcHelpers._onComplete = function Sys_Mvc_MvcHelpers$_onComplete(request, ajaxOptions, ajaxContext) {
- ///
- ///
- ///
- ///
- ///
- ///
- ajaxContext.set_response(request.get_executor());
- if (ajaxOptions.onComplete && ajaxOptions.onComplete(ajaxContext) === false) {
- return;
- }
- var statusCode = ajaxContext.get_response().get_statusCode();
- if ((statusCode >= 200 && statusCode < 300) || statusCode === 304 || statusCode === 1223) {
- if (statusCode !== 204 && statusCode !== 304 && statusCode !== 1223) {
- var contentType = ajaxContext.get_response().getResponseHeader('Content-Type');
- if ((contentType) && (contentType.indexOf('application/x-javascript') !== -1)) {
- eval(ajaxContext.get_data());
- }
- else {
- Sys.Mvc.MvcHelpers.updateDomElement(ajaxContext.get_updateTarget(), ajaxContext.get_insertionMode(), ajaxContext.get_data());
- }
- }
- if (ajaxOptions.onSuccess) {
- ajaxOptions.onSuccess(ajaxContext);
- }
- }
- else {
- if (ajaxOptions.onFailure) {
- ajaxOptions.onFailure(ajaxContext);
- }
- }
- if (ajaxContext.get_loadingElement()) {
- Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), false);
- }
-}
-Sys.Mvc.MvcHelpers.updateDomElement = function Sys_Mvc_MvcHelpers$updateDomElement(target, insertionMode, content) {
- ///
- ///
- ///
- ///
- ///
- ///
- if (target) {
- switch (insertionMode) {
- case Sys.Mvc.InsertionMode.replace:
- target.innerHTML = content;
- break;
- case Sys.Mvc.InsertionMode.insertBefore:
- if (content && content.length > 0) {
- target.innerHTML = content + target.innerHTML.trimStart();
- }
- break;
- case Sys.Mvc.InsertionMode.insertAfter:
- if (content && content.length > 0) {
- target.innerHTML = target.innerHTML.trimEnd() + content;
- }
- break;
- }
- }
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// Sys.Mvc.AsyncForm
-
-Sys.Mvc.AsyncForm = function Sys_Mvc_AsyncForm() {
-}
-Sys.Mvc.AsyncForm.handleSubmit = function Sys_Mvc_AsyncForm$handleSubmit(form, evt, ajaxOptions) {
- ///
- ///
- ///
- ///
- ///
- ///
- evt.preventDefault();
- var body = Sys.Mvc.MvcHelpers._serializeForm(form);
- Sys.Mvc.MvcHelpers._asyncRequest(form.action, form.method || 'post', body, form, ajaxOptions);
-}
-
-
-Sys.Mvc.AjaxContext.registerClass('Sys.Mvc.AjaxContext');
-Sys.Mvc.AsyncHyperlink.registerClass('Sys.Mvc.AsyncHyperlink');
-Sys.Mvc.MvcHelpers.registerClass('Sys.Mvc.MvcHelpers');
-Sys.Mvc.AsyncForm.registerClass('Sys.Mvc.AsyncForm');
-
-// ---- Do not remove this footer ----
-// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
-// -----------------------------------
+//!----------------------------------------------------------
+//! Copyright (C) Microsoft Corporation. All rights reserved.
+//!----------------------------------------------------------
+//! MicrosoftMvcAjax.js
+
+Type.registerNamespace('Sys.Mvc');
+
+////////////////////////////////////////////////////////////////////////////////
+// Sys.Mvc.AjaxOptions
+
+Sys.Mvc.$create_AjaxOptions = function Sys_Mvc_AjaxOptions() { return {}; }
+
+
+////////////////////////////////////////////////////////////////////////////////
+// Sys.Mvc.InsertionMode
+
+Sys.Mvc.InsertionMode = function() {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+};
+Sys.Mvc.InsertionMode.prototype = {
+ replace: 0,
+ insertBefore: 1,
+ insertAfter: 2
+}
+Sys.Mvc.InsertionMode.registerEnum('Sys.Mvc.InsertionMode', false);
+
+
+////////////////////////////////////////////////////////////////////////////////
+// Sys.Mvc.AjaxContext
+
+Sys.Mvc.AjaxContext = function Sys_Mvc_AjaxContext(request, updateTarget, loadingElement, insertionMode) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ this._request = request;
+ this._updateTarget = updateTarget;
+ this._loadingElement = loadingElement;
+ this._insertionMode = insertionMode;
+}
+Sys.Mvc.AjaxContext.prototype = {
+ _insertionMode: 0,
+ _loadingElement: null,
+ _response: null,
+ _request: null,
+ _updateTarget: null,
+
+ get_data: function Sys_Mvc_AjaxContext$get_data() {
+ ///
+ if (this._response) {
+ return this._response.get_responseData();
+ }
+ else {
+ return null;
+ }
+ },
+
+ get_insertionMode: function Sys_Mvc_AjaxContext$get_insertionMode() {
+ ///
+ return this._insertionMode;
+ },
+
+ get_loadingElement: function Sys_Mvc_AjaxContext$get_loadingElement() {
+ ///
+ return this._loadingElement;
+ },
+
+ get_response: function Sys_Mvc_AjaxContext$get_response() {
+ ///
+ return this._response;
+ },
+ set_response: function Sys_Mvc_AjaxContext$set_response(value) {
+ ///
+ this._response = value;
+ return value;
+ },
+
+ get_request: function Sys_Mvc_AjaxContext$get_request() {
+ ///
+ return this._request;
+ },
+
+ get_updateTarget: function Sys_Mvc_AjaxContext$get_updateTarget() {
+ ///
+ return this._updateTarget;
+ }
+}
+
+
+////////////////////////////////////////////////////////////////////////////////
+// Sys.Mvc.AsyncHyperlink
+
+Sys.Mvc.AsyncHyperlink = function Sys_Mvc_AsyncHyperlink() {
+}
+Sys.Mvc.AsyncHyperlink.handleClick = function Sys_Mvc_AsyncHyperlink$handleClick(anchor, evt, ajaxOptions) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ evt.preventDefault();
+ Sys.Mvc.MvcHelpers._asyncRequest(anchor.href, 'post', '', anchor, ajaxOptions);
+}
+
+
+////////////////////////////////////////////////////////////////////////////////
+// Sys.Mvc.MvcHelpers
+
+Sys.Mvc.MvcHelpers = function Sys_Mvc_MvcHelpers() {
+}
+Sys.Mvc.MvcHelpers._serializeForm = function Sys_Mvc_MvcHelpers$_serializeForm(form) {
+ ///
+ ///
+ ///
+ var formElements = form.elements;
+ var formBody = new Sys.StringBuilder();
+ var count = formElements.length;
+ for (var i = 0; i < count; i++) {
+ var element = formElements[i];
+ var name = element.name;
+ if (!name || !name.length) {
+ continue;
+ }
+ var tagName = element.tagName.toUpperCase();
+ if (tagName === 'INPUT') {
+ var inputElement = element;
+ var type = inputElement.type;
+ if ((type === 'text') || (type === 'password') || (type === 'hidden') || (((type === 'checkbox') || (type === 'radio')) && element.checked)) {
+ formBody.append(encodeURIComponent(name));
+ formBody.append('=');
+ formBody.append(encodeURIComponent(inputElement.value));
+ formBody.append('&');
+ }
+ }
+ else if (tagName === 'SELECT') {
+ var selectElement = element;
+ var optionCount = selectElement.options.length;
+ for (var j = 0; j < optionCount; j++) {
+ var optionElement = selectElement.options[j];
+ if (optionElement.selected) {
+ formBody.append(encodeURIComponent(name));
+ formBody.append('=');
+ formBody.append(encodeURIComponent(optionElement.value));
+ formBody.append('&');
+ }
+ }
+ }
+ else if (tagName === 'TEXTAREA') {
+ formBody.append(encodeURIComponent(name));
+ formBody.append('=');
+ formBody.append(encodeURIComponent((element.value)));
+ formBody.append('&');
+ }
+ }
+ return formBody.toString();
+}
+Sys.Mvc.MvcHelpers._asyncRequest = function Sys_Mvc_MvcHelpers$_asyncRequest(url, verb, body, triggerElement, ajaxOptions) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ if (ajaxOptions.confirm) {
+ if (!confirm(ajaxOptions.confirm)) {
+ return;
+ }
+ }
+ if (ajaxOptions.url) {
+ url = ajaxOptions.url;
+ }
+ if (ajaxOptions.httpMethod) {
+ verb = ajaxOptions.httpMethod;
+ }
+ if (body.length > 0 && !body.endsWith('&')) {
+ body += '&';
+ }
+ body += 'X-Requested-With=XMLHttpRequest';
+ var requestBody = '';
+ if (verb.toUpperCase() === 'GET' || verb.toUpperCase() === 'DELETE') {
+ if (url.indexOf('?') > -1) {
+ if (!url.endsWith('&')) {
+ url += '&';
+ }
+ url += body;
+ }
+ else {
+ url += '?';
+ url += body;
+ }
+ }
+ else {
+ requestBody = body;
+ }
+ var request = new Sys.Net.WebRequest();
+ request.set_url(url);
+ request.set_httpVerb(verb);
+ request.set_body(requestBody);
+ if (verb.toUpperCase() === 'PUT') {
+ request.get_headers()['Content-Type'] = 'application/x-www-form-urlencoded;';
+ }
+ request.get_headers()['X-Requested-With'] = 'XMLHttpRequest';
+ var updateElement = null;
+ if (ajaxOptions.updateTargetId) {
+ updateElement = $get(ajaxOptions.updateTargetId);
+ }
+ var loadingElement = null;
+ if (ajaxOptions.loadingElementId) {
+ loadingElement = $get(ajaxOptions.loadingElementId);
+ }
+ var ajaxContext = new Sys.Mvc.AjaxContext(request, updateElement, loadingElement, ajaxOptions.insertionMode);
+ var continueRequest = true;
+ if (ajaxOptions.onBegin) {
+ continueRequest = ajaxOptions.onBegin(ajaxContext) !== false;
+ }
+ if (loadingElement) {
+ Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), true);
+ }
+ if (continueRequest) {
+ request.add_completed(Function.createDelegate(null, function(executor) {
+ Sys.Mvc.MvcHelpers._onComplete(request, ajaxOptions, ajaxContext);
+ }));
+ request.invoke();
+ }
+}
+Sys.Mvc.MvcHelpers._onComplete = function Sys_Mvc_MvcHelpers$_onComplete(request, ajaxOptions, ajaxContext) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ajaxContext.set_response(request.get_executor());
+ if (ajaxOptions.onComplete && ajaxOptions.onComplete(ajaxContext) === false) {
+ return;
+ }
+ var statusCode = ajaxContext.get_response().get_statusCode();
+ if ((statusCode >= 200 && statusCode < 300) || statusCode === 304 || statusCode === 1223) {
+ if (statusCode !== 204 && statusCode !== 304 && statusCode !== 1223) {
+ var contentType = ajaxContext.get_response().getResponseHeader('Content-Type');
+ if ((contentType) && (contentType.indexOf('application/x-javascript') !== -1)) {
+ eval(ajaxContext.get_data());
+ }
+ else {
+ Sys.Mvc.MvcHelpers.updateDomElement(ajaxContext.get_updateTarget(), ajaxContext.get_insertionMode(), ajaxContext.get_data());
+ }
+ }
+ if (ajaxOptions.onSuccess) {
+ ajaxOptions.onSuccess(ajaxContext);
+ }
+ }
+ else {
+ if (ajaxOptions.onFailure) {
+ ajaxOptions.onFailure(ajaxContext);
+ }
+ }
+ if (ajaxContext.get_loadingElement()) {
+ Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), false);
+ }
+}
+Sys.Mvc.MvcHelpers.updateDomElement = function Sys_Mvc_MvcHelpers$updateDomElement(target, insertionMode, content) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ if (target) {
+ switch (insertionMode) {
+ case Sys.Mvc.InsertionMode.replace:
+ target.innerHTML = content;
+ break;
+ case Sys.Mvc.InsertionMode.insertBefore:
+ if (content && content.length > 0) {
+ target.innerHTML = content + target.innerHTML.trimStart();
+ }
+ break;
+ case Sys.Mvc.InsertionMode.insertAfter:
+ if (content && content.length > 0) {
+ target.innerHTML = target.innerHTML.trimEnd() + content;
+ }
+ break;
+ }
+ }
+}
+
+
+////////////////////////////////////////////////////////////////////////////////
+// Sys.Mvc.AsyncForm
+
+Sys.Mvc.AsyncForm = function Sys_Mvc_AsyncForm() {
+}
+Sys.Mvc.AsyncForm.handleSubmit = function Sys_Mvc_AsyncForm$handleSubmit(form, evt, ajaxOptions) {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ evt.preventDefault();
+ var body = Sys.Mvc.MvcHelpers._serializeForm(form);
+ Sys.Mvc.MvcHelpers._asyncRequest(form.action, form.method || 'post', body, form, ajaxOptions);
+}
+
+
+Sys.Mvc.AjaxContext.registerClass('Sys.Mvc.AjaxContext');
+Sys.Mvc.AsyncHyperlink.registerClass('Sys.Mvc.AsyncHyperlink');
+Sys.Mvc.MvcHelpers.registerClass('Sys.Mvc.MvcHelpers');
+Sys.Mvc.AsyncForm.registerClass('Sys.Mvc.AsyncForm');
+
+// ---- Do not remove this footer ----
+// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
+// -----------------------------------
diff --git a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftMvcAjax.js b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftMvcAjax.js
index 880c1b4..6d6a7e8 100644
--- a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftMvcAjax.js
+++ b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/MicrosoftMvcAjax.js
@@ -2,7 +2,7 @@
// Copyright (C) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------
// MicrosoftMvcAjax.js
-
+
Type.registerNamespace('Sys.Mvc');Sys.Mvc.$create_AjaxOptions=function(){return {};}
Sys.Mvc.InsertionMode=function(){};Sys.Mvc.InsertionMode.prototype = {replace:0,insertBefore:1,insertAfter:2}
Sys.Mvc.InsertionMode.registerEnum('Sys.Mvc.InsertionMode',false);Sys.Mvc.AjaxContext=function(request,updateTarget,loadingElement,insertionMode){this.$3=request;this.$4=updateTarget;this.$1=loadingElement;this.$0=insertionMode;}
diff --git a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/jquery-1.3.2-vsdoc.js b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/jquery-1.3.2-vsdoc.js
index 50705b2..27aefb8 100644
--- a/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/jquery-1.3.2-vsdoc.js
+++ b/aspclassiccompiler/AzureStoreAsp/AzureStoreService/bin/Release/AzureStoreService.csx/roles/MVCAzureStore/Scripts/jquery-1.3.2-vsdoc.js
@@ -1,6255 +1,6255 @@
-/*
- * This file has been commented to support Visual Studio Intellisense.
- * You should not use this file at runtime inside the browser--it is only
- * intended to be used only for design-time IntelliSense. Please use the
- * standard jQuery library for all production use.
- *
- * Comment version: 1.3.2a
- */
-
-/*
- * jQuery JavaScript Library v1.3.2
- *
- * Copyright (c) 2009 John Resig, http://jquery.com/
- *
- * 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.
- *
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
- * Revision: 6246
- */
-
-(function(){
-
-var
- // Will speed up references to window, and allows munging its name.
- window = this,
- // Will speed up references to undefined, and allows munging its name.
- undefined,
- // Map over jQuery in case of overwrite
- _jQuery = window.jQuery,
- // Map over the $ in case of overwrite
- _$ = window.$,
-
- jQuery = window.jQuery = window.$ = function(selector, context) {
- ///
- /// 1: $(expression, context) - This function accepts a string containing a CSS selector which is then used to match a set of elements.
- /// 2: $(html) - Create DOM elements on-the-fly from the provided String of raw HTML.
- /// 3: $(elements) - Wrap jQuery functionality around a single or multiple DOM Element(s).
- /// 4: $(callback) - A shorthand for $(document).ready().
- ///
- ///
- /// 1: expression - An expression to search with.
- /// 2: html - A string of HTML to create on the fly.
- /// 3: elements - DOM element(s) to be encapsulated by a jQuery object.
- /// 4: callback - The function to execute when the DOM is ready.
- ///
- ///
- /// 1: context - A DOM Element, Document or jQuery to use as context.
- ///
- ///
- /// The DOM node context originally passed to jQuery() (if none was passed then context will be equal to the document).
- ///
- ///
- /// A selector representing selector originally passed to jQuery().
- ///
- ///
-
- // The jQuery object is actually just the init constructor 'enhanced'
- return new jQuery.fn.init( selector, context );
- },
-
- // A simple way to check for HTML strings or ID strings
- // (both of which we optimize for)
- quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
- // Is it a simple selector
- isSimple = /^.[^:#\[\.,]*$/;
-
-jQuery.fn = jQuery.prototype = {
- init: function( selector, context ) {
- ///
- /// 1: $(expression, context) - This function accepts a string containing a CSS selector which is then used to match a set of elements.
- /// 2: $(html) - Create DOM elements on-the-fly from the provided String of raw HTML.
- /// 3: $(elements) - Wrap jQuery functionality around a single or multiple DOM Element(s).
- /// 4: $(callback) - A shorthand for $(document).ready().
- ///
- ///
- /// 1: expression - An expression to search with.
- /// 2: html - A string of HTML to create on the fly.
- /// 3: elements - DOM element(s) to be encapsulated by a jQuery object.
- /// 4: callback - The function to execute when the DOM is ready.
- ///
- ///
- /// 1: context - A DOM Element, Document or jQuery to use as context.
- ///
- ///
-
- // Make sure that a selection was provided
- selector = selector || document;
-
- // Handle $(DOMElement)
- if ( selector.nodeType ) {
- this[0] = selector;
- this.length = 1;
- this.context = selector;
- return this;
- }
- // Handle HTML strings
- if (typeof selector === "string") {
- // Are we dealing with HTML string or an ID?
- var 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])
- selector = jQuery.clean([match[1]], context);
-
- // HANDLE: $("#id")
- else {
- var elem = document.getElementById(match[3]);
-
- // Handle the case where IE and Opera return items
- // by name instead of ID
- if (elem && elem.id != match[3])
- return jQuery().find(selector);
-
- // Otherwise, we inject the element directly into the jQuery object
- var ret = jQuery(elem || []);
- ret.context = document;
- ret.selector = selector;
- return ret;
- }
-
- // HANDLE: $(expr, [context])
- // (which is just equivalent to: $(content).find(expr)
- } else
- return jQuery(context).find(selector);
-
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) )
- return jQuery( document ).ready( selector );
-
- // Make sure that old selector state is passed along
- if ( selector.selector && selector.context ) {
- this.selector = selector.selector;
- this.context = selector.context;
- }
-
- return this.setArray(jQuery.isArray( selector ) ?
- selector :
- jQuery.makeArray(selector));
- },
-
- // Start with an empty selector
- selector: "",
-
- // The current version of jQuery being used
- jquery: "1.3.2",
-
- // The number of elements contained in the matched element set
- size: function() {
- ///
- /// The number of elements currently matched.
- /// Part of Core
- ///
- ///
-
- return this.length;
- },
-
- // Get the Nth element in the matched element set OR
- // Get the whole matched element set as a clean array
- get: function( num ) {
- ///
- /// Access a single matched element. num is used to access the
- /// Nth element matched.
- /// Part of Core
- ///
- ///
- ///
- /// Access the element in the Nth position.
- ///
-
- return num == undefined ?
-
- // Return a 'clean' array
- Array.prototype.slice.call( this ) :
-
- // Return just the object
- this[ num ];
- },
-
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems, name, selector ) {
- ///
- /// Set the jQuery object to an array of elements, while maintaining
- /// the stack.
- /// Part of Core
- ///
- ///
- ///
- /// An array of elements
- ///
-
- // Build a new jQuery matched element set
- var ret = jQuery( 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;
- },
-
- // Force the current matched set of elements to become
- // the specified array of elements (destroying the stack in the process)
- // You should use pushStack() in order to do this, but maintain the stack
- setArray: function( elems ) {
- ///
- /// Set the jQuery object to an array of elements. This operation is
- /// completely destructive - be sure to use .pushStack() if you wish to maintain
- /// the jQuery stack.
- /// Part of Core
- ///
- ///
- ///
- /// An array of elements
- ///
-
- // Resetting the length to 0, then using the native Array push
- // is a super-fast way to populate an object with array-like properties
- this.length = 0;
- Array.prototype.push.apply( this, elems );
-
- return this;
- },
-
- // 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 ) {
- ///
- /// Execute a function within the context of every matched element.
- /// This means that every time the passed-in function is executed
- /// (which is once for every element matched) the 'this' keyword
- /// points to the specific element.
- /// Additionally, the function, when executed, is passed a single
- /// argument representing the position of the element in the matched
- /// set.
- /// Part of Core
- ///
- ///
- ///
- /// A function to execute
- ///
-
- return jQuery.each( this, callback, args );
- },
-
- // Determine the position of an element within
- // the matched set of elements
- index: function( elem ) {
- ///
- /// Searches every matched element for the object and returns
- /// the index of the element, if found, starting with zero.
- /// Returns -1 if the object wasn't found.
- /// Part of Core
- ///
- ///
- ///
- /// Object to search for
- ///
-
- // Locate the position of the desired element
- return jQuery.inArray(
- // If it receives a jQuery object, the first element is used
- elem && elem.jquery ? elem[0] : elem
- , this );
- },
-
- attr: function( name, value, type ) {
- ///
- /// Set a single property to a computed value, on all matched elements.
- /// Instead of a value, a function is provided, that computes the value.
- /// Part of DOM/Attributes
- ///
- ///
- ///
- /// The name of the property to set.
- ///
- ///
- /// A function returning the value to set.
- ///
-
- var options = name;
-
- // Look for the case where we're accessing a style value
- if ( typeof name === "string" )
- if ( value === undefined )
- return this[0] && jQuery[ type || "attr" ]( this[0], name );
-
- else {
- options = {};
- options[ name ] = value;
- }
-
- // Check to see if we're setting style values
- return this.each(function(i){
- // Set all the styles
- for ( name in options )
- jQuery.attr(
- type ?
- this.style :
- this,
- name, jQuery.prop( this, options[ name ], type, i, name )
- );
- });
- },
-
- css: function( key, value ) {
- ///
- /// Set a single style property to a value, on all matched elements.
- /// If a number is provided, it is automatically converted into a pixel value.
- /// Part of CSS
- ///
- ///
- ///
- /// The name of the property to set.
- ///
- ///
- /// The value to set the property to.
- ///
-
- // ignore negative width and height values
- if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
- value = undefined;
- return this.attr( key, value, "curCSS" );
- },
-
- text: function( text ) {
- ///
- /// Set the text contents of all matched elements.
- /// Similar to html(), but escapes HTML (replace "<" and ">" with their
- /// HTML entities).
- /// Part of DOM/Attributes
- ///
- ///
- ///
- /// The text value to set the contents of the element to.
- ///
-
- if ( typeof text !== "object" && text != null )
- return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-
- var ret = "";
-
- jQuery.each( text || this, function(){
- jQuery.each( this.childNodes, function(){
- if ( this.nodeType != 8 )
- ret += this.nodeType != 1 ?
- this.nodeValue :
- jQuery.fn.text( [ this ] );
- });
- });
-
- return ret;
- },
-
- wrapAll: function( html ) {
- ///
- /// Wrap all matched elements with a structure of other elements.
- /// This wrapping process is most useful for injecting additional
- /// stucture into a document, without ruining the original semantic
- /// qualities of a document.
- /// This works by going through the first element
- /// provided and finding the deepest ancestor element within its
- /// structure - it is that element that will en-wrap everything else.
- /// This does not work with elements that contain text. Any necessary text
- /// must be added after the wrapping is done.
- /// Part of DOM/Manipulation
- ///
- ///
- ///
- /// A DOM element that will be wrapped around the target.
- ///
-
- if ( this[0] ) {
- // The elements to wrap the target around
- var wrap = jQuery( html, this[0].ownerDocument ).clone();
-
- if ( this[0].parentNode )
- wrap.insertBefore( this[0] );
-
- wrap.map(function(){
- var elem = this;
-
- while ( elem.firstChild )
- elem = elem.firstChild;
-
- return elem;
- }).append(this);
- }
-
- return this;
- },
-
- wrapInner: function( html ) {
- ///
- /// Wraps the inner child contents of each matched elemenht (including text nodes) with an HTML structure.
- ///
- ///
- /// A string of HTML or a DOM element that will be wrapped around the target contents.
- ///
- ///
-
- return this.each(function(){
- jQuery( this ).contents().wrapAll( html );
- });
- },
-
- wrap: function( html ) {
- ///
- /// Wrap all matched elements with a structure of other elements.
- /// This wrapping process is most useful for injecting additional
- /// stucture into a document, without ruining the original semantic
- /// qualities of a document.
- /// This works by going through the first element
- /// provided and finding the deepest ancestor element within its
- /// structure - it is that element that will en-wrap everything else.
- /// This does not work with elements that contain text. Any necessary text
- /// must be added after the wrapping is done.
- /// Part of DOM/Manipulation
- ///
- ///
- ///
- /// A DOM element that will be wrapped around the target.
- ///
-
- return this.each(function(){
- jQuery( this ).wrapAll( html );
- });
- },
-
- append: function() {
- ///
- /// Append content to the inside of every matched element.
- /// This operation is similar to doing an appendChild to all the
- /// specified elements, adding them into the document.
- /// Part of DOM/Manipulation
- ///
- ///
- ///
- /// Content to append to the target
- ///
-
- return this.domManip(arguments, true, function(elem){
- if (this.nodeType == 1)
- this.appendChild( elem );
- });
- },
-
- prepend: function() {
- ///
- /// Prepend content to the inside of every matched element.
- /// This operation is the best way to insert elements
- /// inside, at the beginning, of all matched elements.
- /// Part of DOM/Manipulation
- ///
- ///
- ///
- /// Content to prepend to the target.
- ///
-
- return this.domManip(arguments, true, function(elem){
- if (this.nodeType == 1)
- this.insertBefore( elem, this.firstChild );
- });
- },
-
- before: function() {
- ///
- /// Insert content before each of the matched elements.
- /// Part of DOM/Manipulation
- ///
- ///
- ///
- /// Content to insert before each target.
- ///
-
- return this.domManip(arguments, false, function(elem){
- this.parentNode.insertBefore( elem, this );
- });
- },
-
- after: function() {
- ///
- /// Insert content after each of the matched elements.
- /// Part of DOM/Manipulation
- ///
- ///
- ///
- /// Content to insert after each target.
- ///
-
- return this.domManip(arguments, false, function(elem){
- this.parentNode.insertBefore( elem, this.nextSibling );
- });
- },
-
- end: function() {
- ///
- /// End the most recent 'destructive' operation, reverting the list of matched elements
- /// back to its previous state. After an end operation, the list of matched elements will
- /// revert to the last state of matched elements.
- /// If there was no destructive operation before, an empty set is returned.
- /// Part of DOM/Traversing
- ///
- ///
-
- return this.prevObject || jQuery( [] );
- },
-
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: [].push,
- sort: [].sort,
- splice: [].splice,
-
- find: function( selector ) {
- ///
- /// Searches for all elements that match the specified expression.
- /// This method is a good way to find additional descendant
- /// elements with which to process.
- /// All searching is done using a jQuery expression. The expression can be
- /// written using CSS 1-3 Selector syntax, or basic XPath.
- /// Part of DOM/Traversing
- ///
- ///
- ///
- /// An expression to search with.
- ///
- ///
-
- if ( this.length === 1 ) {
- var ret = this.pushStack( [], "find", selector );
- ret.length = 0;
- jQuery.find( selector, this[0], ret );
- return ret;
- } else {
- return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){
- return jQuery.find( selector, elem );
- })), "find", selector );
- }
- },
-
- clone: function( events ) {
- ///
- /// Clone matched DOM Elements and select the clones.
- /// This is useful for moving copies of the elements to another
- /// location in the DOM.
- /// Part of DOM/Manipulation
- ///
- ///
- ///
- /// (Optional) Set to false if you don't want to clone all descendant nodes, in addition to the element itself.
- ///
-
- // Do the clone
- var ret = this.map(function(){
- if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
- // IE copies events bound via attachEvent when
- // using cloneNode. Calling detachEvent on the
- // clone will also remove the events from the orignal
- // In order to get around this, we use innerHTML.
- // Unfortunately, this means some modifications to
- // attributes in IE that are actually only stored
- // as properties will not be copied (such as the
- // the name attribute on an input).
- var html = this.outerHTML;
- if ( !html ) {
- var div = this.ownerDocument.createElement("div");
- div.appendChild( this.cloneNode(true) );
- html = div.innerHTML;
- }
-
- return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0];
- } else
- return this.cloneNode(true);
- });
-
- // Copy the events from the original to the clone
- if ( events === true ) {
- var orig = this.find("*").andSelf(), i = 0;
-
- ret.find("*").andSelf().each(function(){
- if ( this.nodeName !== orig[i].nodeName )
- return;
-
- var events = jQuery.data( orig[i], "events" );
-
- for ( var type in events ) {
- for ( var handler in events[ type ] ) {
- jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data );
- }
- }
-
- i++;
- });
- }
-
- // Return the cloned set
- return ret;
- },
-
- filter: function( selector ) {
- ///
- /// Removes all elements from the set of matched elements that do not
- /// pass the specified filter. This method is used to narrow down
- /// the results of a search.
- /// })
- /// Part of DOM/Traversing
- ///
- ///
- ///
- /// A function to use for filtering
- ///
- ///
-
- return this.pushStack(
- jQuery.isFunction( selector ) &&
- jQuery.grep(this, function(elem, i){
- return selector.call( elem, i );
- }) ||
-
- jQuery.multiFilter( selector, jQuery.grep(this, function(elem){
- return elem.nodeType === 1;
- }) ), "filter", selector );
- },
-
- closest: function( selector ) {
- ///
- /// Get a set of elements containing the closest parent element that matches the specified selector, the starting element included.
- ///
- ///
- ///
- /// An expression to filter the elements with.
- ///
- ///
-
- var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null,
- closer = 0;
-
- return this.map(function(){
- var cur = this;
- while ( cur && cur.ownerDocument ) {
- if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) {
- jQuery.data(cur, "closest", closer);
- return cur;
- }
- cur = cur.parentNode;
- closer++;
- }
- });
- },
-
- not: function( selector ) {
- ///
- /// Removes any elements inside the array of elements from the set
- /// of matched elements. This method is used to remove one or more
- /// elements from a jQuery object.
- /// Part of DOM/Traversing
- ///
- ///
- /// A set of elements to remove from the jQuery set of matched elements.
- ///
- ///
-
- if ( typeof selector === "string" )
- // test special case where just one selector is passed in
- if ( isSimple.test( selector ) )
- return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector );
- else
- selector = jQuery.multiFilter( selector, this );
-
- var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
- return this.filter(function() {
- return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
- });
- },
-
- add: function( selector ) {
- ///
- /// Adds one or more Elements to the set of matched elements.
- /// Part of DOM/Traversing
- ///
- ///
- /// One or more Elements to add
- ///
- ///
-
- return this.pushStack( jQuery.unique( jQuery.merge(
- this.get(),
- typeof selector === "string" ?
- jQuery( selector ) :
- jQuery.makeArray( selector )
- )));
- },
-
- is: function( selector ) {
- ///
- /// Checks the current selection against an expression and returns true,
- /// if at least one element of the selection fits the given expression.
- /// Does return false, if no element fits or the expression is not valid.
- /// filter(String) is used internally, therefore all rules that apply there
- /// apply here, too.
- /// Part of DOM/Traversing
- ///
- ///
- ///
- /// The expression with which to filter
- ///
-
- return !!selector && jQuery.multiFilter( selector, this ).length > 0;
- },
-
- hasClass: function( selector ) {
- ///
- /// Checks the current selection against a class and returns whether at least one selection has a given class.
- ///
- /// The class to check against
- /// True if at least one element in the selection has the class, otherwise false.
-
- return !!selector && this.is( "." + selector );
- },
-
- val: function( value ) {
- ///
- /// Set the value of every matched element.
- /// Part of DOM/Attributes
- ///
- ///
- ///
- /// Set the property to the specified value.
- ///
-
- if ( value === undefined ) {
- var elem = this[0];
-
- if ( elem ) {
- if( jQuery.nodeName( elem, 'option' ) )
- return (elem.attributes.value || {}).specified ? elem.value : elem.text;
-
- // 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 ];
-
- if ( option.selected ) {
- // Get the specifc 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 );
- }
- }
-
- return values;
- }
-
- // Everything else, we just grab the value
- return (elem.value || "").replace(/\r/g, "");
-
- }
-
- return undefined;
- }
-
- if ( typeof value === "number" )
- value += '';
-
- return this.each(function(){
- if ( this.nodeType != 1 )
- return;
-
- if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) )
- this.checked = (jQuery.inArray(this.value, value) >= 0 ||
- jQuery.inArray(this.name, value) >= 0);
-
- else if ( jQuery.nodeName( this, "select" ) ) {
- var values = jQuery.makeArray(value);
-
- jQuery( "option", this ).each(function(){
- this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
- jQuery.inArray( this.text, values ) >= 0);
- });
-
- if ( !values.length )
- this.selectedIndex = -1;
-
- } else
- this.value = value;
- });
- },
-
- html: function( value ) {
- ///
- /// Set the html contents of every matched element.
- /// This property is not available on XML documents.
- /// Part of DOM/Attributes
- ///
- ///
- ///
- /// Set the html contents to the specified value.
- ///
-
- return value === undefined ?
- (this[0] ?
- this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") :
- null) :
- this.empty().append( value );
- },
-
- replaceWith: function( value ) {
- ///
- /// Replaces all matched element with the specified HTML or DOM elements.
- ///
- ///
- /// The content with which to replace the matched elements.
- ///
- /// The element that was just replaced.
-
- return this.after( value ).remove();
- },
-
- eq: function( i ) {
- ///
- /// Reduce the set of matched elements to a single element.
- /// The position of the element in the set of matched elements
- /// starts at 0 and goes to length - 1.
- /// Part of Core
- ///
- ///
- ///
- /// pos The index of the element that you wish to limit to.
- ///
-
- return this.slice( i, +i + 1 );
- },
-
- slice: function() {
- ///
- /// Selects a subset of the matched elements. Behaves exactly like the built-in Array slice method.
- ///
- /// Where to start the subset (0-based).
- /// Where to end the subset (not including the end element itself).
- /// If omitted, ends at the end of the selection
- /// The sliced elements
-
- return this.pushStack( Array.prototype.slice.apply( this, arguments ),
- "slice", Array.prototype.slice.call(arguments).join(",") );
- },
-
- map: function( callback ) {
- ///
- /// This member is internal.
- ///
- ///
- ///
-
- return this.pushStack( jQuery.map(this, function(elem, i){
- return callback.call( elem, i, elem );
- }));
- },
-
- andSelf: function() {
- ///
- /// Adds the previous selection to the current selection.
- ///
- ///
-
- return this.add( this.prevObject );
- },
-
- domManip: function( args, table, callback ) {
- ///
- /// Args
- ///
- ///
- /// Insert TBODY in TABLEs if one is not found.
- ///
- ///
- /// If dir<0, process args in reverse order.
- ///
- ///
- /// The function doing the DOM manipulation.
- ///
- ///
- ///
- /// Part of Core
- ///
-
- if ( this[0] ) {
- var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(),
- scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ),
- first = fragment.firstChild;
-
- if ( first )
- for ( var i = 0, l = this.length; i < l; i++ )
- callback.call( root(this[i], first), this.length > 1 || i > 0 ?
- fragment.cloneNode(true) : fragment );
-
- if ( scripts )
- jQuery.each( scripts, evalScript );
- }
-
- return this;
-
- function root( elem, cur ) {
- return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ?
- (elem.getElementsByTagName("tbody")[0] ||
- elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
- elem;
- }
- }
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-function evalScript( i, elem ) {
- ///
- /// This method is internal.
- ///
- ///
-
- if ( elem.src )
- jQuery.ajax({
- url: elem.src,
- async: false,
- dataType: "script"
- });
-
- else
- jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
-
- if ( elem.parentNode )
- elem.parentNode.removeChild( elem );
-}
-
-function now(){
- ///
- /// Gets the current date.
- ///
- /// The current date.
- return +new Date;
-}
-
-jQuery.extend = jQuery.fn.extend = function() {
- ///
- /// Extend one object with one or more others, returning the original,
- /// modified, object. This is a great utility for simple inheritance.
- /// jQuery.extend(settings, options);
- /// var settings = jQuery.extend({}, defaults, options);
- /// Part of JavaScript
- ///
- ///
- /// The object to extend
- ///
- ///
- /// The object that will be merged into the first.
- ///
- ///
- /// (optional) More objects to merge into the first
- ///
- ///
-
- // copy reference to target object
- var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
-
- // 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 ( var name in options ) {
- var src = target[ name ], copy = options[ name ];
-
- // Prevent never-ending loop
- if ( target === copy )
- continue;
-
- // Recurse if we're merging object values
- if ( deep && copy && typeof copy === "object" && !copy.nodeType )
- target[ name ] = jQuery.extend( deep,
- // Never move original objects, clone them
- src || ( copy.length != null ? [ ] : { } )
- , copy );
-
- // Don't bring in undefined values
- else if ( copy !== undefined )
- target[ name ] = copy;
-
- }
-
- // Return the modified object
- return target;
-};
-
-// exclude the following css properties to add px
-var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
- // cache defaultView
- defaultView = document.defaultView || {},
- toString = Object.prototype.toString;
-
-jQuery.extend({
- noConflict: function( deep ) {
- ///
- /// Run this function to give control of the $ variable back
- /// to whichever library first implemented it. This helps to make
- /// sure that jQuery doesn't conflict with the $ object
- /// of other libraries.
- /// By using this function, you will only be able to access jQuery
- /// using the 'jQuery' variable. For example, where you used to do
- /// $("div p"), you now must do jQuery("div p").
- /// Part of Core
- ///
- ///
-
- window.$ = _$;
-
- if ( deep )
- window.jQuery = _jQuery;
-
- return jQuery;
- },
-
- // 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 ) {
- ///
- /// Determines if the parameter passed is a function.
- ///
- /// The object to check
- /// True if the parameter is a function; otherwise false.
-
- return toString.call(obj) === "[object Function]";
- },
-
- isArray: function(obj) {
- ///
- /// Determine if the parameter passed is an array.
- ///
- /// Object to test whether or not it is an array.
- /// True if the parameter is a function; otherwise false.
-
- return toString.call(obj) === "[object Array]";
- },
-
- // check if an element is in a (or is an) XML document
- isXMLDoc: function( elem ) {
- ///
- /// Determines if the parameter passed is an XML document.
- ///
- /// The object to test
- /// True if the parameter is an XML document; otherwise false.
-
- return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
- !!elem.ownerDocument && jQuery.isXMLDoc(elem.ownerDocument);
- },
-
- // Evalulates a script in a global context
- globalEval: function( data ) {
- ///
- /// Internally evaluates a script in a global context.
- ///
- ///
-
- if ( data && /\S/.test(data) ) {
- // Inspired by code by Andrea Giammarchi
- // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
- var head = document.getElementsByTagName("head")[0] || document.documentElement,
- script = document.createElement("script");
-
- script.type = "text/javascript";
- 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 );
- }
- },
-
- nodeName: function( elem, name ) {
- ///
- /// Checks whether the specified element has the specified DOM node name.
- ///
- /// The element to examine
- /// The node name to check
- /// True if the specified node name matches the node's DOM node name; otherwise false
-
- return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
- },
-
- // args is for internal usage only
- each: function( object, callback, args ) {
- ///
- /// A generic iterator function, which can be used to seemlessly
- /// iterate over both objects and arrays. This function is not the same
- /// as $().each() - which is used to iterate, exclusively, over a jQuery
- /// object. This function can be used to iterate over anything.
- /// The callback has two arguments:the key (objects) or index (arrays) as first
- /// the first, and the value as the second.
- /// Part of JavaScript
- ///
- ///
- /// The object, or array, to iterate over.
- ///
- ///
- /// The function that will be executed on every object.
- ///
- ///
-
- var name, i = 0, length = object.length;
-
- if ( args ) {
- if ( length === undefined ) {
- 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 ( length === undefined ) {
- for ( name in object )
- if ( callback.call( object[ name ], name, object[ name ] ) === false )
- break;
- } else
- for ( var value = object[0];
- i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
- }
-
- return object;
- },
-
- prop: function( elem, value, type, i, name ) {
- ///
- /// This method is internal.
- ///
- ///
- // This member is not documented within the jQuery API: http://docs.jquery.com/action/edit/Internals/jQuery.prop
-
- // Handle executable functions
- if ( jQuery.isFunction( value ) )
- value = value.call( elem, i );
-
- // Handle passing in a number to a CSS property
- return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ?
- value + "px" :
- value;
- },
-
- className: {
- // internal only, use addClass("class")
- add: function( elem, classNames ) {
- ///
- /// Internal use only; use addClass('class')
- ///
- ///
-
- jQuery.each((classNames || "").split(/\s+/), function(i, className){
- if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
- elem.className += (elem.className ? " " : "") + className;
- });
- },
-
- // internal only, use removeClass("class")
- remove: function( elem, classNames ) {
- ///
- /// Internal use only; use removeClass('class')
- ///
- ///
-
- if (elem.nodeType == 1)
- elem.className = classNames !== undefined ?
- jQuery.grep(elem.className.split(/\s+/), function(className){
- return !jQuery.className.has( classNames, className );
- }).join(" ") :
- "";
- },
-
- // internal only, use hasClass("class")
- has: function( elem, className ) {
- ///
- /// Internal use only; use hasClass('class')
- ///
- ///
-
- return elem && jQuery.inArray(className, (elem.className || elem).toString().split(/\s+/)) > -1;
- }
- },
-
- // A method for quickly swapping in/out CSS properties to get correct calculations
- swap: function( elem, options, callback ) {
- ///
- /// Swap in/out style options.
- ///
-
- 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 ( var name in options )
- elem.style[ name ] = old[ name ];
- },
-
- css: function( elem, name, force, extra ) {
- ///
- /// This method is internal only.
- ///
- ///
- // This method is undocumented in jQuery API: http://docs.jquery.com/action/edit/Internals/jQuery.css
-
- if ( name == "width" || name == "height" ) {
- var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
-
- function getWH() {
- val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
-
- if ( extra === "border" )
- return;
-
- jQuery.each( which, function() {
- if ( !extra )
- val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
- if ( extra === "margin" )
- val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0;
- else
- val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
- });
- }
-
- if ( elem.offsetWidth !== 0 )
- getWH();
- else
- jQuery.swap( elem, props, getWH );
-
- return Math.max(0, Math.round(val));
- }
-
- return jQuery.curCSS( elem, name, force );
- },
-
- curCSS: function( elem, name, force ) {
- ///
- /// This method is internal only.
- ///
- ///
- // This method is undocumented in jQuery API: http://docs.jquery.com/action/edit/Internals/jQuery.curCSS
-
- var ret, style = elem.style;
-
- // We need to handle opacity special in IE
- if ( name == "opacity" && !jQuery.support.opacity ) {
- ret = jQuery.attr( style, "opacity" );
-
- return ret == "" ?
- "1" :
- ret;
- }
-
- // Make sure we're using the right name for getting the float value
- if ( name.match( /float/i ) )
- name = styleFloat;
-
- if ( !force && style && style[ name ] )
- ret = style[ name ];
-
- else if ( defaultView.getComputedStyle ) {
-
- // Only "float" is needed here
- if ( name.match( /float/i ) )
- name = "float";
-
- name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
-
- var computedStyle = defaultView.getComputedStyle( elem, null );
-
- if ( computedStyle )
- ret = computedStyle.getPropertyValue( name );
-
- // We should always get a number back from opacity
- if ( name == "opacity" && ret == "" )
- ret = "1";
-
- } else if ( elem.currentStyle ) {
- var camelCase = name.replace(/\-(\w)/g, function(all, letter){
- return letter.toUpperCase();
- });
-
- ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
-
- // From the awesome hack by Dean Edwards
- // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
- // If we're not dealing with a regular pixel number
- // but a number that has a weird ending, we need to convert it to pixels
- if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
- // Remember the original values
- var left = style.left, rsLeft = elem.runtimeStyle.left;
-
- // Put in the new values to get a computed value out
- elem.runtimeStyle.left = elem.currentStyle.left;
- style.left = ret || 0;
- ret = style.pixelLeft + "px";
-
- // Revert the changed values
- style.left = left;
- elem.runtimeStyle.left = rsLeft;
- }
- }
-
- return ret;
- },
-
- clean: function( elems, context, fragment ) {
- ///
- /// This method is internal only.
- ///
- ///
- // This method is undocumented in the jQuery API: http://docs.jquery.com/action/edit/Internals/jQuery.clean
-
-
- 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;
-
- // If a single string is passed in and it's a single tag
- // just do a createElement and skip the rest
- if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) {
- var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
- if ( match )
- return [ context.createElement( match[1] ) ];
- }
-
- var ret = [], scripts = [], div = context.createElement("div");
-
- jQuery.each(elems, function(i, elem){
- if ( typeof elem === "number" )
- elem += '';
-
- if ( !elem )
- return;
-
- // Convert html string into DOM nodes
- if ( typeof elem === "string" ) {
- // Fix "XHTML"-style tags in all browsers
- elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
- return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
- all :
- front + ">" + tag + ">";
- });
-
- // Trim whitespace, otherwise indexOf won't work as expected
- var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase();
-
- var wrap =
- // option or optgroup
- !tags.indexOf("", "" ] ||
-
- !tags.indexOf("", "" ] ||
-
- tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
- [ 1, "