-
- Debug
- AnyCPU
- 9.0.30729
- 2.0
- {24BF0EA3-2D82-4E85-B13D-EA9279F58812}
- {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
- Library
- Properties
- AspWebApp
- AspWebApp
- v3.5
-
-
- true
- full
- false
- bin\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\
- TRACE
- prompt
- 4
-
-
- true
- bin\x86\Debug\
- DEBUG;TRACE
- full
- x86
- prompt
-
-
- bin\x86\Release\
- TRACE
- true
- pdbonly
- x86
- prompt
-
-
-
- False
- ..\asp\bin\Release\Dlrsoft.Asp.dll
-
-
-
-
- 3.5
-
-
- 3.5
-
-
- 3.5
-
-
- 3.5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- False
- True
- 3465
- /
-
-
- False
- False
-
-
- False
-
-
-
-
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {24BF0EA3-2D82-4E85-B13D-EA9279F58812}
+ {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ Library
+ Properties
+ AspWebApp
+ AspWebApp
+ v3.5
+
+
+
+
+ 3.5
+ false
+
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\
+ TRACE
+ prompt
+ 4
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {f076a2d0-5200-42d7-9aea-9e1260efb138}
+ Asp
+
+
+
+ 10.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 3465
+ /
+
+
+ False
+ False
+
+
+ False
+
+
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/ASPClassicCompiler.sln b/aspclassiccompiler/Backup/ASPClassicCompiler.sln
new file mode 100644
index 0000000..926557f
--- /dev/null
+++ b/aspclassiccompiler/Backup/ASPClassicCompiler.sln
@@ -0,0 +1,60 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{244AF685-4E12-4893-89DA-939A2964C0FB}"
+ ProjectSection(SolutionItems) = preProject
+ License.txt = License.txt
+ EndProjectSection
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Parser", "Parser\Parser.vbproj", "{57A0B340-BDA4-4DE3-B449-52B8C51D84B8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBScript", "VBScript\VBScript.csproj", "{0846368D-EA96-4AC4-81AF-E4F9B78CE60B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Asp", "asp\Asp.csproj", "{F076A2D0-5200-42D7-9AEA-9E1260EFB138}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspWebApp", "AspWebApp\AspWebApp.csproj", "{24BF0EA3-2D82-4E85-B13D-EA9279F58812}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NerdDinnerAsp", "NerdDinnerAsp\NerdDinnerAsp.csproj", "{328C148C-DBEE-41A4-B1C7-104CBB216556}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBScriptTest", "VBScriptTest\VBScriptTest.csproj", "{3153B5A6-B372-46D0-A10B-0CC4C4FBAE9D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBSC", "VBSC\VBSC.csproj", "{556BAE6E-AA67-48C7-ACD6-1AB0AA930197}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {57A0B340-BDA4-4DE3-B449-52B8C51D84B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {57A0B340-BDA4-4DE3-B449-52B8C51D84B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {57A0B340-BDA4-4DE3-B449-52B8C51D84B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {57A0B340-BDA4-4DE3-B449-52B8C51D84B8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0846368D-EA96-4AC4-81AF-E4F9B78CE60B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0846368D-EA96-4AC4-81AF-E4F9B78CE60B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0846368D-EA96-4AC4-81AF-E4F9B78CE60B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0846368D-EA96-4AC4-81AF-E4F9B78CE60B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F076A2D0-5200-42D7-9AEA-9E1260EFB138}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F076A2D0-5200-42D7-9AEA-9E1260EFB138}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F076A2D0-5200-42D7-9AEA-9E1260EFB138}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F076A2D0-5200-42D7-9AEA-9E1260EFB138}.Release|Any CPU.Build.0 = Release|Any CPU
+ {24BF0EA3-2D82-4E85-B13D-EA9279F58812}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {24BF0EA3-2D82-4E85-B13D-EA9279F58812}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {24BF0EA3-2D82-4E85-B13D-EA9279F58812}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {24BF0EA3-2D82-4E85-B13D-EA9279F58812}.Release|Any CPU.Build.0 = Release|Any CPU
+ {328C148C-DBEE-41A4-B1C7-104CBB216556}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {328C148C-DBEE-41A4-B1C7-104CBB216556}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {328C148C-DBEE-41A4-B1C7-104CBB216556}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {328C148C-DBEE-41A4-B1C7-104CBB216556}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3153B5A6-B372-46D0-A10B-0CC4C4FBAE9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3153B5A6-B372-46D0-A10B-0CC4C4FBAE9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3153B5A6-B372-46D0-A10B-0CC4C4FBAE9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3153B5A6-B372-46D0-A10B-0CC4C4FBAE9D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {556BAE6E-AA67-48C7-ACD6-1AB0AA930197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {556BAE6E-AA67-48C7-ACD6-1AB0AA930197}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {556BAE6E-AA67-48C7-ACD6-1AB0AA930197}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {556BAE6E-AA67-48C7-ACD6-1AB0AA930197}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/aspclassiccompiler/Backup/AspWebApp/AspWebApp.csproj b/aspclassiccompiler/Backup/AspWebApp/AspWebApp.csproj
new file mode 100644
index 0000000..6d161b5
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/AspWebApp.csproj
@@ -0,0 +1,171 @@
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {24BF0EA3-2D82-4E85-B13D-EA9279F58812}
+ {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ Library
+ Properties
+ AspWebApp
+ AspWebApp
+ v3.5
+
+
+ true
+ full
+ false
+ bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\
+ TRACE
+ prompt
+ 4
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+
+
+
+ False
+ ..\asp\bin\Release\Dlrsoft.Asp.dll
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 3465
+ /
+
+
+ False
+ False
+
+
+ False
+
+
+
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/Database/AddDelete.asp b/aspclassiccompiler/Backup/AspWebApp/Database/AddDelete.asp
new file mode 100644
index 0000000..d4d896b
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Database/AddDelete.asp
@@ -0,0 +1,59 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+<% Response.Expires= -1 %>
+
+
+
+
+
+ Add/Delete Database Sample
+
+
+
+
+
+
+
+ Add/Delete Database Sample
+
+
+
+ <%
+ Dim oConn
+ Dim oRs
+ Dim filePath
+
+
+ ' Map authors database to physical path
+ filePath = Server.MapPath("authors.mdb")
+
+
+ ' Create ADO Connection Component to connect with sample database
+
+
+
+ Set oConn = Server.CreateObject("ADODB.Connection")
+ oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
+
+ ' To add, delete and update recordset, it is recommended to use
+ ' direct SQL statement instead of ADO methods.
+
+ oConn.Execute "insert into authors (author, YearBorn) values ('Paul Enfield', 1967)"
+
+ ' Output Result
+ Set oRs = oConn.Execute (" select * from authors where Author= 'Paul Enfield' and YearBorn =1967 " )
+ Response.Write("Inserted Author: " & oRs("Author") & "," & oRs("YearBorn"))
+ ' Close Recordset
+ oRs.Close
+ Set oRs= Nothing
+
+
+ ' Delete the inserted record
+ oConn.Execute "Delete From authors where author='Paul Enfield' and YearBorn = 1967 "
+
+ ' Output Status Result
+ Response.Write("
Deleted Author: Paul Enfield, 1967")
+ %>
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Database/Authors.mdb b/aspclassiccompiler/Backup/AspWebApp/Database/Authors.mdb
new file mode 100644
index 0000000..debc42c
Binary files /dev/null and b/aspclassiccompiler/Backup/AspWebApp/Database/Authors.mdb differ
diff --git a/aspclassiccompiler/Backup/AspWebApp/Database/Blob.Asp b/aspclassiccompiler/Backup/AspWebApp/Database/Blob.Asp
new file mode 100644
index 0000000..351b746
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Database/Blob.Asp
@@ -0,0 +1,48 @@
+<% @ LANGUAGE=VBScript %>
+<% Option Explicit %>
+
+
+<%
+ ' This sample utilizes the Image field in the PUB_INFO table.
+ ' This table is installed with Microsoft SQL Server in the
+ ' PUBS database.
+
+
+ Dim oConn
+ Dim oRs
+ Dim Pic
+ Dim PicSize
+ Dim strConn
+
+
+ ' Setup HTTP Header Information so that the browser interprets
+ ' the returned data as a gif graphic file. Note that browsers
+ ' interpret returned information using MIME headers -- not file
+ ' extensions.
+
+ Response.Buffer = TRUE
+ Response.ContentType = "image/gif"
+
+
+ ' Create ADO Connection Object. Use OLEDB Source with
+ ' default sa account and no password
+
+ Set oConn = Server.CreateObject("ADODB.Connection")
+ strConn="Provider=SQLOLEDB;User ID=sa;Initial Catalog=pubs;Data Source="& Request.ServerVariables("SERVER_NAME")
+ ' Query SQL to obtain recordset containing gif BLOB
+ oConn.Open strConn
+ Set oRs = oConn.Execute("SELECT logo FROM pub_info WHERE pub_id='0736'")
+
+ ' Obtain local variable of GIF
+
+ PicSize = oRs("logo").ActualSize
+ Pic = oRs("logo").GetChunk(PicSize)
+
+
+ ' Write Data back to client. Because MIME type is set to
+ ' image/gif, the browser will automatically render as picture
+
+ Response.BinaryWrite Pic
+ Response.End
+%>
+dsafds
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/Database/LimitRows.asp b/aspclassiccompiler/Backup/AspWebApp/Database/LimitRows.asp
new file mode 100644
index 0000000..247b0df
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Database/LimitRows.asp
@@ -0,0 +1,93 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+ LimitRows From Database
+
+
+
+
+
+
+
+
+ LimitRows From Database
+
+
+
+ Contacts within the Authors Database:
+
+ <%
+ Dim oConn
+ Dim oRs
+ Dim curDir
+ Dim Index
+
+
+ ' Map authors database to physical path
+
+ curDir = Server.MapPath("authors.mdb")
+
+ ' Create ADO Connection Component to connect
+ ' with sample database
+
+ Set oConn = Server.CreateObject("ADODB.Connection")
+ oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & curDir
+
+
+ ' Create ADO Recordset Component
+
+ Set oRs = Server.CreateObject("ADODB.Recordset")
+ Set oRs.ActiveConnection = oConn
+
+
+ ' Set Recordset PageSize so that it only
+ ' holds 10 rows
+
+ oRs.PageSize = 10
+
+
+ ' Get recordset
+
+ oRs.Source = "SELECT * FROM authors"
+ oRs.CursorType = adOpenStatic
+
+
+ ' Open Recordset
+ oRs.Open
+ %>
+
+
+
+ <%
+ Dim RecordCount
+ RecordCount = 0
+
+ Do while ((Not oRs.eof) And (RecordCount < oRs.PageSize)) %>
+
+
+ <% For Index=0 to (oRs.fields.count-1) %>
+ <% = oRs(Index)%>
+ <% Next %>
+
+
+ <%
+ RecordCount = RecordCount + 1
+ oRs.MoveNext
+ Loop
+ %>
+
+
+
+
+ <%
+ oRs.close
+ oConn.close
+ %>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Database/MultiScrolling.asp b/aspclassiccompiler/Backup/AspWebApp/Database/MultiScrolling.asp
new file mode 100644
index 0000000..a22bf3c
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Database/MultiScrolling.asp
@@ -0,0 +1,124 @@
+<% @LANGUAGE="VBSCRIPT" %>
+<% Option Explicit %>
+
+
+
+
+ MultiScrolling Database Sample
+
+
+
+
+
+
+
+
+ MultiScrolling Database Sample
+
+
+
+ Contacts within the Authors Database:
+
+ <%
+ Dim oConn
+ Dim oRs
+ Dim filePath
+ Dim Mv
+ Dim PageNo
+ Dim j
+ Dim i
+
+
+ ' Map authors database to physical path
+
+ filePath = Server.MapPath("authors.mdb")
+
+
+ ' Create ADO Connection Component to connect with
+ ' sample database
+ Set oConn = Server.CreateObject("ADODB.Connection")
+ oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
+
+
+ ' Create ADO Recordset Component
+
+ Set oRs = Server.CreateObject("ADODB.Recordset")
+
+
+ ' Determine what PageNumber the scrolling currently is on
+
+ Mv = Request("Mv")
+
+ If Request("PageNo") = "" Then
+ PageNo = 1
+ Else
+ PageNo = Request("PageNo")
+ End If
+
+ ' Setup Query Recordset (4 records per page)
+
+ oRs.Open "SELECT * FROM Authors", oConn, adOpenStatic
+ oRs.PageSize = 4
+
+
+ ' Adjust PageNumber as Appropriate
+ If Mv = "Page Up" or Mv = "Page Down" Then
+ Select Case Mv
+ Case "Page Up"
+ If PageNo > 1 Then
+ PageNo = PageNo - 1
+ Else
+ PageNo = 1
+ End If
+ Case "Page Down"
+ If oRs.AbsolutePage < oRs.PageCount Then
+ PageNo = PageNo + 1
+ Else
+ PageNo = oRs.PageCount
+ End If
+ Case Else
+ PageNo = 1
+ End Select
+ End If
+
+ oRs.AbsolutePage = PageNo
+ %>
+
+
+
+
+ <% For j = 1 to oRs.PageSize %>
+
+ <% For i = 0 to oRs.Fields.Count - 1 %>
+ <%= oRs(i) %>
+ <% Next %>
+
+
+ <%
+ oRs.MoveNext
+
+ ' Don't try to print the EOF record.
+ If oRs.EOF Then
+ Exit For
+ End If
+ Next %>
+
+
+
+
+
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Database/SimpleQuery.asp b/aspclassiccompiler/Backup/AspWebApp/Database/SimpleQuery.asp
new file mode 100644
index 0000000..13e1f20
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Database/SimpleQuery.asp
@@ -0,0 +1,71 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+ Simple ADO Query
+
+
+
+
+
+
+
+ Simple ADO Query with ASP
+
+
+
+ Contacts within the Authors Database:
+
+ <%
+ Dim oConn
+ Dim oRs
+ Dim filePath
+ Dim Index
+
+
+ ' Map authors database to physical path
+ filePath = Server.MapPath("authors.mdb")
+
+
+ ' Create ADO Connection Component to connect
+ ' with sample database
+
+
+
+ Set oConn = Server.CreateObject("ADODB.Connection")
+ oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
+
+
+ ' Execute a SQL query and store the results
+ ' within recordset
+
+ Set oRs = oConn.Execute("SELECT * From authors")
+ %>
+
+
+
+ <%
+ Do while (Not oRs.eof) %>
+
+
+ <% For Index=0 to (oRs.fields.count-1) %>
+ <%= oRs(Index)%>
+ <% Next %>
+
+
+ <% oRs.MoveNext
+ Loop
+ %>
+
+
+
+
+
+ <%
+ oRs.close
+ oConn.close
+ %>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Database/StoredProcedures.asp b/aspclassiccompiler/Backup/AspWebApp/Database/StoredProcedures.asp
new file mode 100644
index 0000000..2b7dc4a
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Database/StoredProcedures.asp
@@ -0,0 +1,63 @@
+<% @ LANGUAGE="VBSCRIPT" %>
+<% Option Explicit %>
+
+
+<% ' This example can be used to call the ByRoyalty stored procedure
+ ' installed with the PUBS database with Microsoft SQL Server.
+
+ ' This sample assumes that SQL Server is running on the local machine
+%>
+
+
+
+
+ Using Stored Procedures
+
+
+
+
+
+
+
+ Using Stored Procedures
+
+ <%
+ Dim oConn
+ Dim strConn
+ Dim oCmd
+ Dim oRs
+
+ Set oConn = Server.CreateObject("ADODB.Connection")
+ Set oCmd = Server.CreateObject("ADODB.Command")
+
+
+ ' Open ADO Connection using account "sa"
+ ' and blank password
+
+ strConn="Provider=SQLOLEDB;User ID=sa;Initial Catalog=pubs;Data Source="& Request.ServerVariables("SERVER_NAME")
+ oConn.Open strConn
+ Set oCmd.ActiveConnection = oConn
+
+
+ ' Setup Call to Stored Procedure and append parameters
+
+ oCmd.CommandText = "{call byroyalty(?)}"
+ oCmd.Parameters.Append oCmd.CreateParameter("@Percentage", adInteger, adParamInput)
+
+
+ ' Assign value to input parameter
+
+ oCmd("@Percentage") = 75
+
+
+ ' Fire the Stored Proc and assign resulting recordset
+ ' to our previously created object variable
+
+ Set oRs = oCmd.Execute
+ %>
+
+ Author ID = <% Response.Write oRs("au_id") %>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Database/Update.asp b/aspclassiccompiler/Backup/AspWebApp/Database/Update.asp
new file mode 100644
index 0000000..c4842fb
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Database/Update.asp
@@ -0,0 +1,54 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+ Update Database
+
+
+
+
+
+
+
+ Update Database
+
+
+
+ <%
+ Dim oConn ' object for ADODB.Connection obj
+ Dim oRs ' object for output recordset object
+ Dim filePath ' Directory of authors.mdb file
+
+
+ ' Map authors database to physical path
+ filePath = Server.MapPath("authors.mdb")
+
+ ' Create ADO Connection Component to connect with sample database
+
+ Set oConn = Server.CreateObject("ADODB.Connection")
+ oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
+
+ ' To add, delete and update recordset, it is recommended to use
+ ' direct SQL statement instead of ADO methods.
+ oConn.Execute "Update Authors Set Author ='Scott Clinton'" _
+ & "where Author='Scott Guthrie' "
+ Set oRs = oConn.Execute ( "select * from Authors where author" _
+ & "= 'Scott Clinton'" )
+ %>
+
+ Changed Author: <%= oRs("Author") %>, <%= oRs("Yearborn") %>
+
+ <%
+ oConn.Execute "Update Authors Set Author ='Scott Guthrie'" _
+ & "where Author='Scott Clinton' "
+ Set oRs = oConn.Execute ( "select * from Authors where author" _
+ & "= 'Scott Guthrie'" )
+ %>
+
+ Changed Author: <%= oRs("Author") %>, <%= oRs("Yearborn") %>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Database/adovbs.inc b/aspclassiccompiler/Backup/AspWebApp/Database/adovbs.inc
new file mode 100644
index 0000000..21a2d28
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Database/adovbs.inc
@@ -0,0 +1,33 @@
+<%
+'--------------------------------------------------------------------
+' Microsoft ADO
+'
+' Copyright (c) 1996-1998 Microsoft Corporation.
+'
+'
+'
+' ADO constants include file for VBScript
+'
+'--------------------------------------------------------------------
+
+'---- CursorTypeEnum Values ----
+Const adOpenForwardOnly = 0
+Const adOpenKeyset = 1
+Const adOpenDynamic = 2
+Const adOpenStatic = 3
+
+'---- CursorOptionEnum Values ----
+Const adHoldRecords = &H00000100
+Const adMovePrevious = &H00000200
+Const adAddNew = &H01000400
+Const adDelete = &H01000800
+
+'...
+'... Lots more lines like the ones above go here ...
+'...
+
+'---- RecordTypeEnum Values ----
+Const adSimpleRecord = 0
+Const adCollectionRecord = 1
+Const adStructDoc = 2
+%>
diff --git a/aspclassiccompiler/Backup/AspWebApp/Properties/AssemblyInfo.cs b/aspclassiccompiler/Backup/AspWebApp/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..71e952c
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("AspWebApp")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("DLRSoft")]
+[assembly: AssemblyProduct("VBScript.NET")]
+[assembly: AssemblyCopyright("Copyright © DLRSoft 2009")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("0.5.2.32072")]
diff --git a/aspclassiccompiler/Backup/AspWebApp/Simple/Arrays.asp b/aspclassiccompiler/Backup/AspWebApp/Simple/Arrays.asp
new file mode 100644
index 0000000..21588ba
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Simple/Arrays.asp
@@ -0,0 +1,112 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+<%
+ 'Declare a simple fixed size array.
+ Dim aFixed(4)
+
+ 'Declare a dynamic (resizable) array.
+ Dim aColors()
+
+
+ 'Assign values to fixed size array.
+
+ aFixed(0) = "Fixed"
+ aFixed(1) = "Size"
+ aFixed(2) = "Array"
+ aFixed(3) = "Session ID: " & Session.SessionID
+
+
+ 'Allocate storage for the array.
+ Redim aColors(14)
+
+ 'Store values representing a simple color table
+ 'to each of the elements.
+
+ aColors(0) = "RED" '[#FF0000]
+ aColors(1) = "GREEN" '[#008000]
+ aColors(2) = "BLUE" '[#0000FF]
+ aColors(3) = "AQUA" '[#00FFFF]
+ aColors(4) = "YELLOW" '[#FFFF00]
+ aColors(5) = "FUCHSIA" '[#FF00FF]
+ aColors(6) = "GRAY" '[#808080]
+ aColors(7) = "LIME" '[#00FF00]
+ aColors(8) = "MAROON" '[#800000]
+ aColors(9) = "NAVY" '[#000080]
+ aColors(10) = "OLIVE" '[#808000]
+ aColors(11) = "PURPLE" '[#800080]
+ aColors(12) = "SILVER" '[#C0C0C0]
+ aColors(13) = "TEAL" '[#008080]
+%>
+
+
+
+ Array Sample
+
+
+
+
+
+
+
+ Array Sample
+
+
+
+
+
+
+
+ A Resizable Array
+
+
+
+
+
+ A Fixed Size (4 element) Array
+
+
+
+
+
+
+ <%
+ Dim intColors
+ Dim i
+
+ 'Calculate array size.
+ intColors = UBound(aColors)
+
+ 'Print out contents of resizable array into
+ 'table column.
+
+ For i = 0 To intColors - 1
+ Response.Write("" & aColors(i) &" ")
+ Next
+ %>
+
+
+
+ <%
+ 'Calculate Array Size.
+ intColors = UBound(aFixed)
+
+
+ 'Print out contents of fixed array into table
+ 'column.
+
+ For i = 0 To intColors -1
+ Response.Write(aFixed(i) & " ")
+ Next
+ %>
+
+
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Simple/Components.Asp b/aspclassiccompiler/Backup/AspWebApp/Simple/Components.Asp
new file mode 100644
index 0000000..d0108b4
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Simple/Components.Asp
@@ -0,0 +1,40 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+ Using Components
+
+
+
+
+
+
+
+
+ Using Components with ASP
+
+
+
+ This script uses the Tools component that
+ comes with IIS to generate a random number.
+
+
+
+ <%
+ Dim objExample
+
+ 'Instantiate Component on the Server.
+ Set objExample = Server.CreateObject("MSWC.Tools")
+ %>
+
+ Random Number = <%= objExample.Random() %>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Simple/Conditional.asp b/aspclassiccompiler/Backup/AspWebApp/Simple/Conditional.asp
new file mode 100644
index 0000000..ecf93f0
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Simple/Conditional.asp
@@ -0,0 +1,60 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+ Conditional Operator Sample
+
+
+
+
+
+
+
+
+ Conditional Operator Sample
+
+
+
+
+ <%
+ Dim varDate
+ varDate = Date()
+ %>
+
+ The date is: <%= varDate %>
+
+ <%
+ 'Select Case statement to display a message based on the day of the month.
+ Select Case Day(varDate)
+ Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
+ Response.Write("It's the beginning of the month.
")
+
+ Case 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
+ Response.Write("It's the middle of the month.
")
+
+ Case Else
+ Response.Write("It's the end of the month.
")
+ End Select
+ %>
+
+ The time is: <%= Time %>
+
+ <%
+ 'Check for AM/PM, and output appropriate message.
+
+ If (Right(Time,2)="AM") Then
+ Response.Write("Good Morning
")
+ Else
+ Response.Write("Good Evening
")
+ End If
+ %>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Simple/Functions.asp b/aspclassiccompiler/Backup/AspWebApp/Simple/Functions.asp
new file mode 100644
index 0000000..3279680
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Simple/Functions.asp
@@ -0,0 +1,54 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+
+
+
+ Functions
+
+
+
+
+
+
+ Server Side Functions
+
+
+ The function "PrintOutMsg" prints out a specific message a set number of times.
+
+
+ <%
+ 'Store number of times function printed message.
+ Dim intTimes
+
+ 'Call function.
+ intTimes = PrintOutMsg("This is a function test!", 4)
+
+ 'Output the function return value.
+ Response.Write("
The function printed out the message " & intTimes & " times.")
+ %>
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Simple/HeaderInfo.Asp b/aspclassiccompiler/Backup/AspWebApp/Simple/HeaderInfo.Asp
new file mode 100644
index 0000000..f99ef4b
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Simple/HeaderInfo.Asp
@@ -0,0 +1 @@
+This text is coming from HeaderInfo.asp.
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/Simple/Includes.asp b/aspclassiccompiler/Backup/AspWebApp/Simple/Includes.asp
new file mode 100644
index 0000000..2e2ed64
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Simple/Includes.asp
@@ -0,0 +1,32 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+ Server Side Includes
+
+
+
+
+
+
+
+ Server Side Includes
+
+
+ Server-Side Includes can be done using the
+ #Include File command. The below text in bold
+ has been generated with a Server-Side Include:
+
+
+
+ Include files can be referenced using either
+ absolute or relative paths.
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Simple/Looping.asp b/aspclassiccompiler/Backup/AspWebApp/Simple/Looping.asp
new file mode 100644
index 0000000..4b0b7a4
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Simple/Looping.asp
@@ -0,0 +1,71 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+ Looping
+
+
+
+
+
+
+
+
+ Looping with ASP
+
+
+
+
+
+ <%
+ Dim intCounter
+ For intCounter = 1 to 5 %>
+
+ >
+
+ Hello World with a For Loop!
+
+
+ <% next %>
+
+
+
+
+ <%
+ intCounter = 1
+ While(intCounter < 6) %>
+
+ >
+
+ Hello World with a While Loop!
+
+
+ <% intCounter = intCounter + 1 %>
+
+ <% wend %>
+
+
+
+
+
+ <%
+ intCounter = 1
+ Do While(intCounter < 6) %>
+
+ >
+
+ Hello World with a Do...While Loop!
+
+
+ <% intCounter = intCounter+1 %>
+
+ <% loop %>
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Simple/Variables.asp b/aspclassiccompiler/Backup/AspWebApp/Simple/Variables.asp
new file mode 100644
index 0000000..f779b8e
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Simple/Variables.asp
@@ -0,0 +1,90 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+
+ Variable Sample
+
+
+
+
+
+
+
+ Variable Sample
+
+
+ Integer Manipulation
+
+ <%
+ 'Declare variable.
+ Dim intVar
+
+ 'Assign the variable an integer value.
+ intVar = 5
+ %>
+
+
+ <%= intVar %> + <%= intVar %> = <%= intVar + intVar %>
+
+
+
+ String Manipulation
+
+ <%
+ 'Declare variable.
+ Dim strVar
+
+ 'Assign the variable a string value.
+ strVar = "Jemearl"
+ %>
+
+ This example was done by <%= strVar + " Smith" %>
+
+
+
+ Boolean Manipulation
+
+ <%
+ 'Declare variable.
+ Dim blnVar
+
+ 'Assign the variable a Boolean value.
+ blnVar = true
+
+ 'Output message based on value.
+ If (blnVar) Then
+ Response.Write "The Boolean value is True.
"
+ Else
+ Response.Write "The Boolean value is False.
"
+ End If
+ %>
+
+
+ Date and Time
+
+ <%
+ 'Declare variable.
+ Dim dtmVar
+
+ 'Assign the variable a value.
+ dtmVar = #08 / 27 / 97 5:11:42pm#
+ %>
+
+ The date and time is <%= dtmVar %>
+
+ <%
+ 'Set the variable to the web server date and time.
+ dtmVar = Now()
+ %>
+
+
The system date and time is <%= dtmVar %>
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/Web.config b/aspclassiccompiler/Backup/AspWebApp/Web.config
new file mode 100644
index 0000000..3834862
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/Web.config
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/AdRotator.asp b/aspclassiccompiler/Backup/AspWebApp/components/AdRotator.asp
new file mode 100644
index 0000000..7129629
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/AdRotator.asp
@@ -0,0 +1,34 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+ Ad Rotator Sample
+
+
+
+
+
+
+
+ Ad Rotator Sample
+
+
+
+
+ <%
+ Dim objAd
+ Set objAd = Server.CreateObject("MSWC.AdRotator")
+ %>
+
+ <%= objAd.GetAdvertisement("adrot.txt") %>
+ Revisit Page
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/BrowserCap.asp b/aspclassiccompiler/Backup/AspWebApp/components/BrowserCap.asp
new file mode 100644
index 0000000..ec72dd9
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/BrowserCap.asp
@@ -0,0 +1,170 @@
+<% @ LANGUAGE = VBScript %>
+<% Option Explicit %>
+<% Response.Buffer=TRue %>
+<% Response.Expires=-1 %>
+
+
+
+
+
+
+
+
+
+ Using the Browser Capabilities Component
+
+
+
+ Using the Browser Capabilities Component
+
+
+ <%
+ Dim objBrowsCap
+ Set objBrowsCap = Server.CreateObject("MSWC.BrowserType")
+ %>
+
+
+
+ Cap Name
+ Value
+
+
+
+ browser
+ <% = objBrowsCap.browser %>
+
+
+
+ version
+ <% = objBrowsCap.version %>
+
+
+
+ cookies
+ <% = objBrowsCap.cookies %>
+
+
+ javaapplets
+ <% = objBrowsCap.javaapplets %>
+
+
+
+ VBScript
+ <% = objBrowsCap.VBScript %>
+
+
+
+ JavaScript
+ <%=objBrowsCap.JavaScript%>
+
+
+
+ platform
+ <% = objBrowsCap.platform %>
+
+
+
+ <% If objBrowsCap.browser = "IE" and objBrowsCap.version >4 then %>
+
+ New Feature for IE5
+
+
+
+ horizontal resolution
+ <% = objBrowsCap.width %>
+
+
+
+ vertical resolution
+ <% = objBrowsCap.height %>
+
+
+
+ availHeight
+ <% = objBrowsCap.availHeight %>
+
+
+
+ availWidth
+ <% = objBrowsCap.availWidth %>
+
+
+
+ Buffer Depth
+ <% = objBrowsCap.bufferDepth %>
+
+
+
+ Color Depth
+ <% = objBrowsCap.colorDepth %>
+
+
+
+ Java enabled ?
+ <% = objBrowsCap.javaEnabled %>
+
+
+
+ cpu Class
+ <% = objBrowsCap.cpuClass %>
+
+
+
+ system Language
+ <% = objBrowsCap.systemLanguage %>
+
+
+
+ user Language
+ <% = objBrowsCap.userLanguage %>
+
+
+
+
+ connectionType (lan, modem, offline)
+ <% = objBrowsCap.connectionType %>
+
+
+
+ Is Java installed ?
+ <% = objBrowsCap.Java%>
+
+
+
+ MSJava version
+ <% = objBrowsCap.javaVersion%>
+
+
+
+ Is MSJava version equal to "5,0,3016,0" ?
+ <% = objBrowsCap.compVersion%>
+
+ <% End if %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/CDO.Asp b/aspclassiccompiler/Backup/AspWebApp/components/CDO.Asp
new file mode 100644
index 0000000..f087c4d
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/CDO.Asp
@@ -0,0 +1,48 @@
+<%@ Language = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+
+ CDO Component
+
+
+
+
+
+
+
+
+ CDO Component
+
+ This sample demonstrates how to use the Collaboration
+ Data Objects for NTS Component to send a simple
+ e-mail message.
+
+
To actually send the message, you must have the SMTP
+ Server that comes with the Windows NT Option Pack Installed.
+
+ <%
+ Dim objMyMail
+ Set objMyMail = Server.CreateObject("CDONTS.NewMail")
+
+ 'For demonstration purposes, both From and To
+ 'properties are set to the same address.
+
+ objMyMail.From = "someone@Microsoft.com"
+ objMyMail.To = "someone@Microsoft.com"
+
+ objMyMail.Subject = "Sample"
+ objMyMail.Body = "I hope you like the sample"
+
+ 'Send the message
+ objMyMail.Send
+ %>
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/ContentRotator.Asp b/aspclassiccompiler/Backup/AspWebApp/components/ContentRotator.Asp
new file mode 100644
index 0000000..f753064
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/ContentRotator.Asp
@@ -0,0 +1,46 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+<%
+ 'Make sure that the client-browser doesn't cache.
+
+ Response.Expires = 0
+%>
+
+
+
+
+ Content Rotator Sample
+
+
+
+
+
+
+
+
+ Content Rotator Sample
+
+
+
+ <%
+ Dim objContRot
+ Set objContRot = Server.CreateObject("MSWC.ContentRotator")
+
+ 'Specify the file that has the content.
+
+ Response.Write(objContRot.ChooseContent("tiprot.txt"))
+ %>
+
+
+ Refresh (You may have to do this several times)
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Contents.Htm b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Contents.Htm
new file mode 100644
index 0000000..76d1ab4
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Contents.Htm
@@ -0,0 +1,15 @@
+Contents
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter1.Htm b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter1.Htm
new file mode 100644
index 0000000..dbfa39a
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter1.Htm
@@ -0,0 +1,143 @@
+
+
+
+
+
+Counters Component
+
+
+
+
+
+
+
+
+ Counters Component
+
+The Counter component creates a Counters object that can create, store,
+increment, and retrieve any number of individual counters.
+
+A counter is a persistent value that contains an integer. You can manipulate a counter
+with the Get , Increment , Set , and Remove methods of the Counters
+ object. Once you create the counter, it persists until you remove it.
+
+Counters do not automatically increment on an event like a page hit. You must manually
+set or increment counters using the Set and Increment methods.
+
+Counters are not limited in scope. Once you create a counter, any page on your site can
+retrieve or manipulate its value. For example, if you increment and display a counter
+named hits in a page called Page1.asp, and you increment hits in another
+page called Page2.asp, both pages will increment the same counter. If you hit Page1.asp,
+and increment hits to 34, hitting Page2.asp will increment hits to 35. The
+next time you hit Page1.asp, hits will increment to 36.
+
+All counters are stored in a single text file, Counters.txt, which is located in the
+same directory as the Counters. dll file.
+
+File Names
+
+
+
+ Counters.dll
+ The Counters component.
+
+
+ Counters.txt
+ The file that stores all individual counters on a site. Counters.txt is a UTF8-encoded
+ file. You can have any Unicode characters in a counter name.
+
+
+
+
+
+
+Syntax
+
+Create the Counters object one time on your server by adding the following to
+the Global.asa file:
+
+<OBJECT
+RUNAT=Server
+SCOPE=Application
+ID=Counter
+PROGID="MSWC.Counters">
+</OBJECT>
+
+Registry Entries
+
+None.
+
+Remarks
+
+Only create one Counters object in your site. This single Counters object
+can create any number of individual counters.
+
+Note For Personal Web Server on Windows 95, a Counters component has already
+been specified in the Global.asa file in the default virtual directory. You can work with
+the Counters object the component creates as if it were a built-in object by
+calling Counters.Get , Counters.Increment , Counters.Remove , and Counters.Set . You should not create another instance of the Counters object.
+
+Methods
+
+
+
+ Get
+ Returns the value of the counter.
+
+
+ Increment
+ Increases the counter by 1.
+
+
+ Remove
+ Removes the counter from the Counters.txt file.
+
+
+ Set
+ Sets the value of the counter to a specific integer.
+
+
+
+
+
+
+Example
+
+Create an instance of the Counters object in the Global.asa file with the ID
+attribute set to Counter
:
+
+<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters"> </OBJECT>
+
+
+You can then use that Counters object on one page to create all the counters you
+need:
+
+There have been <%= Counter.Increment('defaultPageHits') %> to this site.
+
+
+Then on another page you can increment the counter in the following manner:
+
+You are visitor number<%= Counter.Increment('LinksPageHits') %> to this page.
+
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter2.Htm b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter2.Htm
new file mode 100644
index 0000000..784c889
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter2.Htm
@@ -0,0 +1,85 @@
+
+
+
+
+
+Get
+
+
+
+
+
+
+
+
+ Get
+
+The Get method takes the name of a counter and returns the current value of the
+counter. If the counter doesn't exist, the method creates it and sets it to 0.
+
+Syntax
+
+Counters.Get (CounterName )
+
+
+Parameters
+
+
+ CounterName
+ A string containing the name of the counter.
+
+
+Example
+
+Display the value a counter with <%= Counters.Get(CounterName ) %>
.
+Assign the value of the counter to a variable with <% countervar = Counters.Get(CounterName )
+%>
.
+
+The following script displays the vote tally from a poll about favorite colors.
+
+<% If colornumber = "1" Then
+ Counters.Increment("greencounter")
+Else
+ If colornumber = "2" Then
+ Counters.Increment("bluecounter")
+ Else
+ If colornumber = "0" Then
+ Counters.Increment("redcounter")
+ End If
+ End If
+End If %>
+<P>Current vote tally:
+<P>red: <% =Counters.Get("redcounter") %>
+<P>green: <% = Counters.Get("greencounter") %>
+<P>blue: <% = Counters.Get("bluecounter") %>
+
+
+Applies To
+
+Counters component
+
+See Also
+
+Increment , Remove , Set
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter3.Htm b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter3.Htm
new file mode 100644
index 0000000..30783c4
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter3.Htm
@@ -0,0 +1,78 @@
+
+
+
+
+
+Increment
+
+
+
+
+
+
+
+
+ Increment
+
+The Increment method takes the name of a counter, adds 1 to the current value of
+the counter, and returns the counter's new value. If the counter doesn't exist, the method
+creates it and sets its value to 1.
+
+Syntax
+
+Counters.Increment (CounterName )
+
+
+Parameters
+
+
+ CounterName
+ A string containing the name of the counter.
+
+
+Example
+
+Increment the value of a counter with <% Counters.Increment(CounterName )
+%>
. Increment and display the value of a counter with <%=
+Counters.Increment(CounterName ) %>
.
+
+To retrieve the value of a counter, use Counters.Get . To set a counter to a
+specific value, use Counters.Set .
+
+The following code implements a one-line page-hit counter.
+
+<P>There have been <%= Counters.Increment("hits") %> visits to this Web page. </P>
+
+
+In this example, Counters.Increment increases the counter by one each time the
+client requests the page from the server.
+
+Applies To
+
+Counters component
+
+See Also
+
+Get , Remove , Set
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter4.Htm b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter4.Htm
new file mode 100644
index 0000000..7546df8
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter4.Htm
@@ -0,0 +1,68 @@
+
+
+
+
+
+Remove
+
+
+
+
+
+
+
+
+ Remove
+
+The Remove method takes the name of a counter, removes the counter from the
+Counters object, and deletes the counter from the Counters.txt file.
+
+Syntax
+
+Counters.Remove( CounterName )
+
+
+Parameters
+
+
+ CounterName
+ A string containing the name of the counter.
+
+
+Example
+
+The following code removes the counter hitscounter
from the Counters.txt
+file.
+
+<% Counters.Remove(hitscounter) %>
+
+
+Applies To
+
+Counters component
+
+See Also
+
+Get , Increment , Set
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter5.Htm b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter5.Htm
new file mode 100644
index 0000000..dbe15e8
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Counter5.Htm
@@ -0,0 +1,74 @@
+
+
+
+
+
+Set
+
+
+
+
+
+
+
+
+ Set
+
+The Set method takes the name of a counter and an integer, sets the counter to
+the value of the integer, and returns the new value. If the counter doesn't exist, Counters.Set
+ creates it and sets it to the value of the integer.
+
+To retrieve the value of a counter, use Counters.Get . To increment a counter by
+1, use Counters.Increment .
+
+Syntax
+
+Counters.Set (CounterName , int )
+
+
+Parameters
+
+
+ CounterName
+ A string containing the name of the counter.
+
+ int
+ The new integer value for CounterName .
+
+
+Example
+
+The following code resets the hit counter pageHits
to 0:
+
+<% Counters.Set(pageHits, 0) %>
+
+
+Applies To
+
+Counter component
+
+See Also
+
+Get , Increment , Remove
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Default.Htm b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Default.Htm
new file mode 100644
index 0000000..202d47d
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Docs/Default.Htm
@@ -0,0 +1,16 @@
+
+
+
+
+Counters Component
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Sample/Counters_JScript.Asp b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Sample/Counters_JScript.Asp
new file mode 100644
index 0000000..b3a1457
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Sample/Counters_JScript.Asp
@@ -0,0 +1,33 @@
+<%@ LANGUAGE="JSCRIPT" %>
+
+
+
+
+
+Document Title
+
+
+Demo of the Counters ASP Component
+
+<%
+
+var ObjCounter;
+var nCount;
+
+
+try
+{
+ ObjCounter = Application("MSCounters");
+ nCount = ObjCounter.Increment("NoOfHits") ;
+}
+catch (err)
+{
+ Response.Write ("Error: Could not get the instance of the Counters Object. Error Code:" + err.errCode );
+ Response.End();
+}
+ Response.Write ("
There have been "+ nCount + " visits to this Web page. Refresh this page to increment the counter.");
+
+%>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Sample/Counters_VBScript.Asp b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Sample/Counters_VBScript.Asp
new file mode 100644
index 0000000..744dcdd
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Sample/Counters_VBScript.Asp
@@ -0,0 +1,31 @@
+<%@ LANGUAGE="VBSCRIPT" %>
+
+
+
+
+
+Document Title
+
+
+Demo of the Counters ASP Component
+
+<%
+On Error Resume Next
+
+Dim ObjCounter
+Dim nCount
+
+
+Set ObjCounter = Application("MSCounters")
+nCount = ObjCounter.Increment("NoOfHits")
+
+
+If (Err <> 0) then
+ Response.Write ("Error: Could not get the instance of the Counters Object. Error Code:" + CStr(nErr) )
+Else
+ Response.Write ("
There have been "+ CStr(nCount) + " visits to this Web page. Refresh this page to increment the counter.")
+End If
+%>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/Sample/Global.Asa b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Sample/Global.Asa
new file mode 100644
index 0000000..72a5879
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/Sample/Global.Asa
@@ -0,0 +1,41 @@
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Counters/TOURL.Htm b/aspclassiccompiler/Backup/AspWebApp/components/Counters/TOURL.Htm
new file mode 100644
index 0000000..6ae91a1
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Counters/TOURL.Htm
@@ -0,0 +1,2 @@
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/FileSystem.Asp b/aspclassiccompiler/Backup/AspWebApp/components/FileSystem.Asp
new file mode 100644
index 0000000..397280a
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/FileSystem.Asp
@@ -0,0 +1,68 @@
+<%@ Language = VBScript %>
+<% Option Explicit %>
+
+
+
+
+<%
+ 'Define constants.
+
+ Const FORREADING = 1
+ Const FORWRITING = 2
+ Const FORAPPENDING = 8
+%>
+
+
+
+
+ FileSystem Component
+
+
+
+
+
+
+
+ FileSystem Component
+
+
+
+
+ <%
+ Dim curDir
+ Dim objScriptObject, objMyFile
+ Dim x
+
+ 'Map current path to physical path.
+
+ curDir = Server.MapPath("/components")
+
+
+ 'Create FileSytemObject component.
+
+ Set objScriptObject = Server.CreateObject("Scripting.FileSystemObject")
+
+
+ 'Create and write to a file.
+
+ Set objMyFile = objScriptObject.CreateTextFile(curDir + "\" + "MyTextFile.txt", FORWRITING)
+
+ For x = 1 to 5
+ objMyFile.WriteLine "Line number " & x & " was written on " & now & " "
+ Next
+
+ objMyfile.Close
+ %>
+
+ <%
+ 'Read from file and output to screen.
+ Set objMyFile = objScriptObject.OpenTextFile(curDir + "\" + "MyTextFile.txt", FORREADING)
+ Response.Write objMyFile.ReadAll
+ %>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/PermissionCheck.Asp b/aspclassiccompiler/Backup/AspWebApp/components/PermissionCheck.Asp
new file mode 100644
index 0000000..86e168d
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/PermissionCheck.Asp
@@ -0,0 +1,38 @@
+<%@ Language = VBScript%>
+<% Option Explicit %>
+
+
+
+
+
+ Permission Checker
+
+
+
+
+
+
+
+ Permission Checker
+
+ <%
+ 'Instantiate Permission Checker Component.
+
+ Dim objPermCheck
+ Set objPermCheck = Server.CreateObject("MSWC.PermissionChecker")
+ %>
+
+ Verify current user's access to a sample file:
+
+
Using Physical Path =
+ <%= objPermCheck.HasAccess(".\PermissionCheck_VBScript.asp") %>
+
+
Using Virtual Path =
+ <%= objPermCheck.HasAccess("/iissamples/sdk/asp/components/PermissionCheck_VBScript.asp") %>
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Tiprot.Txt b/aspclassiccompiler/Backup/AspWebApp/components/Tiprot.Txt
new file mode 100644
index 0000000..e65b21e
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Tiprot.Txt
@@ -0,0 +1,12 @@
+%% #1
+Don't run with scissors.
+
+%% #1
+%% // Additional line of comments
+%% // Yet another line of comments
+
+ Let a smile be your umbrella.
+
+
+%% #1
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/Tools.Asp b/aspclassiccompiler/Backup/AspWebApp/components/Tools.Asp
new file mode 100644
index 0000000..e5d48b0
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/Tools.Asp
@@ -0,0 +1,96 @@
+<%@ LANGUAGE = VBScript %>
+<% Option Explicit %>
+
+
+
+
+
+
+ Tools Component
+
+
+
+
+
+
+
+
+ Tools Component
+
+
+ <%
+ Dim objTools
+ Dim FoundFile, blnFileExists, blnFileDoesNotExist, NotFoundFile
+ Dim intRand, intRandPos, intRandBelow
+
+ 'Create the Tools Object
+
+ Set objTools = Server.CreateObject("MSWC.Tools")
+ %>
+
+
+ FileExists Example
+ <%
+ FoundFile = "Tools_VBScript.asp"
+ NotFoundFile = "blah.asp"
+
+ 'Check if file exists.
+
+ blnFileExists = objTools.FileExists(FoundFile)
+
+
+ 'Output response appropriately.
+
+ If (blnFileExists) Then
+ Response.Write "The File " & FoundFile & " Exists "
+ Else
+ Response.Write "The File " & FoundFile & " Does Not Exist "
+ End If
+
+
+ 'Check if file exists.
+
+ blnFileDoesNotExist = objTools.FileExists(NotFoundFile)
+
+
+ 'Output response appropriately.
+
+ If (blnFileDoesNotExist) Then
+ Response.Write "The File " & NotFoundFile & " Exists"
+ Else
+ Response.write "The File " & NotFoundFile & " Does Not Exist"
+ End If
+ %>
+
+
+ Random Integer Example
+ <%
+ 'Random integer.
+
+ intRand = objTools.Random
+ Response.Write "Random integer: "
+ Response.Write intRand
+ Response.Write " "
+
+
+ 'Positive random integer.
+
+ intRandPos = Abs( objTools.Random )
+ Response.Write "Positive random integer: "
+ Response.Write intRandPos
+ Response.Write " "
+
+
+ 'Positive random integer between 0 and 100.
+
+ intRandBelow = Abs( objTools.Random ) Mod 100
+ Response.write "Random integer below 100: "
+ Response.write intRandBelow
+ Response.write " "
+ %>
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/adrot.txt b/aspclassiccompiler/Backup/AspWebApp/components/adrot.txt
new file mode 100644
index 0000000..dc71a30
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/adrot.txt
@@ -0,0 +1,14 @@
+Redirect www.microsoft.com
+width 88
+height 31
+border 1
+*
+nts_iis.gif
+http://www.microsoft.com/ntserver/web/default.asp
+Microsoft Internet Information Services
+80
+ie.gif
+-
+Microsoft Internet Explorer
+20
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/clientcap.htm b/aspclassiccompiler/Backup/AspWebApp/components/clientcap.htm
new file mode 100644
index 0000000..d7f59a5
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/components/clientcap.htm
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/ie.gif b/aspclassiccompiler/Backup/AspWebApp/components/ie.gif
new file mode 100644
index 0000000..3c7cd36
Binary files /dev/null and b/aspclassiccompiler/Backup/AspWebApp/components/ie.gif differ
diff --git a/aspclassiccompiler/Backup/AspWebApp/components/nts_iis.gif b/aspclassiccompiler/Backup/AspWebApp/components/nts_iis.gif
new file mode 100644
index 0000000..e5474df
Binary files /dev/null and b/aspclassiccompiler/Backup/AspWebApp/components/nts_iis.gif differ
diff --git a/aspclassiccompiler/Backup/AspWebApp/default.htm b/aspclassiccompiler/Backup/AspWebApp/default.htm
new file mode 100644
index 0000000..792a31e
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/default.htm
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+This project contains some ASP Classic Compiler Samples Pages
+
+
+ Folder
+ File
+ Comments
+
+
+ Components
+
+ IIS 5 Platform SDK Sample. Need to install the COM components. Components like
+ BrowserCap will not work because it requires the COM+ comtext to accesses the
+ Request object.
+
+
+
+ FileSystem.asp
+ Works without registering any component. Need to grant ASP worker process account read/write access to the directory.
+
+
+
+ Tools.asp
+ Tested in Windows XP. Failed to register the component in Vista.
+
+
+ Database
+
+ IIS 5 Platform SDK Sample. Some the Access samples tested. Make sure that the OLEDB provider is installed. Need read/write access to the access.mdb in the directory.
+
+
+ Simple
+
+ IIS 5 Platform SDK Sample. All the samples tested.
+
+
+ test
+
+ Some small samples used during development.
+
+
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/BuiltinConstants.asp b/aspclassiccompiler/Backup/AspWebApp/test/BuiltinConstants.asp
new file mode 100644
index 0000000..416ad14
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/BuiltinConstants.asp
@@ -0,0 +1,13 @@
+
+
+
+
+ <%=vbSunday %>
+ <%=vbMonday %>
+ <%=vbTuesday %>
+ <%=vbWednesday %>
+ <%=vbThursday %>
+ <%=vbFriday %>
+ <%=vbSaturday %>
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/byref.asp b/aspclassiccompiler/Backup/AspWebApp/test/byref.asp
new file mode 100644
index 0000000..8b56930
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/byref.asp
@@ -0,0 +1,15 @@
+<%
+ sub main()
+ dim a
+ a = 2
+ mysub a
+ response.Write a
+ end sub
+
+ sub mysub(a)
+ a = a + 1
+ response.Write a
+ end sub
+
+ main
+%>
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/byref2.asp b/aspclassiccompiler/Backup/AspWebApp/test/byref2.asp
new file mode 100644
index 0000000..799455b
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/byref2.asp
@@ -0,0 +1,8 @@
+<%
+ sub mysub(byval a)
+ a = a + 1
+ response.Write a
+ end sub
+
+ mysub 5
+%>
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/call.asp b/aspclassiccompiler/Backup/AspWebApp/test/call.asp
new file mode 100644
index 0000000..19e7c36
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/call.asp
@@ -0,0 +1,12 @@
+
+
+
+
+<%
+ Response.Write("Something")
+ Response.Write(1)
+ Response.Write " MORE"
+ Call Response.Write(" CALL ")
+%>
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/datatypes.asp b/aspclassiccompiler/Backup/AspWebApp/test/datatypes.asp
new file mode 100644
index 0000000..1f39ff3
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/datatypes.asp
@@ -0,0 +1,11 @@
+
+
+
+
+ Vartype of 123456 is <%=VarType(123456) %>
+ Vartype of .23456 is <%=VarType(.23456) %>
+ VarType of <%=Server.HtmlEncode("&hFFFFFF")%> is <%=VarType(&hFFFFFF) %>
+ VarType of 1.23e-3 is <%=VarType(1.23e-3)%>
+ VarType of #12/21/1999# is <%=VarType(#12/21/1999#)%>
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/datetest.asp b/aspclassiccompiler/Backup/AspWebApp/test/datetest.asp
new file mode 100644
index 0000000..46c781b
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/datetest.asp
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+<%= WeekdayName(Weekday(DateSerial(1963, 11, 22))) %>
+<%= WeekdayName(Weekday(DateSerial(1963, 10, 15))) %>
+<%= WeekdayName(Weekday(DateSerial(1995, 6, 2))) %>
+<%= WeekdayName(Weekday(DateSerial(1997, 5, 5))) %>
+<%
+setlocale(4100)
+for i = 1 to 7
+ Response.Write(weekdayname(i) & " ")
+next
+ %>
+ <%
+ for i = 1 to 12
+ Response.Write(monthname(i) & " ")
+next
+ %>
+ <%=FormatDateTime(DateSerial(1997, 5, 5), 1) %>
+<%=FormatCurrency(10000000) %>
+
+
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/extension.asp b/aspclassiccompiler/Backup/AspWebApp/test/extension.asp
new file mode 100644
index 0000000..8a2708d
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/extension.asp
@@ -0,0 +1,6 @@
+<%
+option explicit
+dim s
+s = "111-222-3333"
+response.Write s.RemoveNonNumeric()
+%>
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/forloop.asp b/aspclassiccompiler/Backup/AspWebApp/test/forloop.asp
new file mode 100644
index 0000000..6b95815
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/forloop.asp
@@ -0,0 +1,17 @@
+<%
+option explicit
+%>
+
+
+
+
+<%
+ dim i
+ for i = 1 to 8
+ response.write i
+ next
+
+ response.write i
+%>
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/function.asp b/aspclassiccompiler/Backup/AspWebApp/test/function.asp
new file mode 100644
index 0000000..d6cb9f1
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/function.asp
@@ -0,0 +1,24 @@
+<%
+option explicit
+%>
+
+
+
+
+<%
+sub printnum(n)
+ response.write n
+ for i = 1 to n
+ response.write i
+ next
+end sub
+
+dim i
+
+printnum 5
+
+
+
+%>
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/if.asp b/aspclassiccompiler/Backup/AspWebApp/test/if.asp
new file mode 100644
index 0000000..84af213
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/if.asp
@@ -0,0 +1,24 @@
+<%
+option explicit
+%>
+
+
+
+
+<%
+ dim i, color
+
+ i = 3
+ if i = 1 then
+ color = "red"
+ elseif i = 2 then
+ color = "green"
+ elseif i = 3 then
+ color = "blue"
+ else
+ color = "blank"
+ end if
+ response.write color
+%>
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/ifnull.asp b/aspclassiccompiler/Backup/AspWebApp/test/ifnull.asp
new file mode 100644
index 0000000..ad6aa60
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/ifnull.asp
@@ -0,0 +1,10 @@
+<%
+option explicit
+ Dim oConn
+ Dim oRs
+ oRs = "something"
+ If oRs.EOF Then
+ End If
+
+
+%>
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/imports.asp b/aspclassiccompiler/Backup/AspWebApp/test/imports.asp
new file mode 100644
index 0000000..d0f2163
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/imports.asp
@@ -0,0 +1,12 @@
+<%
+imports system
+
+dim sb
+
+sb = new System.Text.StringBuilder()
+sb.append("this")
+sb.append(" is ")
+sb.append(" stringbuilder!")
+response.write sb.toString()
+
+%>
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/literals.asp b/aspclassiccompiler/Backup/AspWebApp/test/literals.asp
new file mode 100644
index 0000000..0992b5c
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/literals.asp
@@ -0,0 +1,12 @@
+
+
+
+
+ Integer <%=123456 %>
+ Floating Point <%=.23456 %>
+ Hex <%=&hFFFFFF%>
+ Oct <%=&123456& %>
+ Exponent <%=1.23e-3%>
+ Date <%=#12/21/1999#%>
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/perftest.asp b/aspclassiccompiler/Backup/AspWebApp/test/perftest.asp
new file mode 100644
index 0000000..bbb3e44
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/perftest.asp
@@ -0,0 +1,20 @@
+<%
+option explicit
+
+dim loops
+dim counter
+dim tickes
+
+tickes = Timer()
+loops = 10000000
+counter = 0.0
+
+while loops > 0
+ loops = loops - 1
+ counter = counter + 1.0
+wend
+
+Response.Write("DoLoop result " & counter & " ")
+Response.Write("Executing the while loop took: " & ((Timer()-tickes) * 1000.0) & "ms" & " ")
+
+%>
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/perftest2.asp b/aspclassiccompiler/Backup/AspWebApp/test/perftest2.asp
new file mode 100644
index 0000000..8d9f0c0
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/perftest2.asp
@@ -0,0 +1,24 @@
+<%
+option explicit
+
+perftest
+
+sub perftest()
+ dim loops
+ dim counter
+ dim tickes
+ tickes = Timer()
+
+ loops = 10000000
+ counter = 0.0
+
+ while loops > 0
+ loops = loops - 1
+ counter = counter + 1.0
+ wend
+
+ Response.Write("DoLoop result " & counter & " ")
+ Response.Write("Executing the while loop took: " & ((Timer()-tickes) * 1000.0) & "ms" & " ")
+end sub
+
+%>
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/servervars.asp b/aspclassiccompiler/Backup/AspWebApp/test/servervars.asp
new file mode 100644
index 0000000..0e01e03
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/servervars.asp
@@ -0,0 +1,14 @@
+
+
+
+
+ <%
+ url = Request.ServerVariables("HTTP_URL")
+x = instr(1, url, "url=", 1)
+if x > 0 then
+ url = Mid(url, x + 4)
+end if
+ %>
+ <%=url%>
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/AspWebApp/test/with.asp b/aspclassiccompiler/Backup/AspWebApp/test/with.asp
new file mode 100644
index 0000000..5902895
--- /dev/null
+++ b/aspclassiccompiler/Backup/AspWebApp/test/with.asp
@@ -0,0 +1,15 @@
+
+
+
+
+ <% with response %>
+ <%.Write vbSunday %>
+ <%.Write vbMonday %>
+ <%.Write vbTuesday %>
+ <%.Write vbWednesday %>
+ <%.Write vbThursday %>
+ <%.Write vbFriday %>
+ <%.Write vbSaturday %>
+ <% end with %>
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Content/Site.css b/aspclassiccompiler/Backup/NerdDinnerAsp/Content/Site.css
new file mode 100644
index 0000000..8dd7ee2
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Content/Site.css
@@ -0,0 +1,378 @@
+/*----------------------------------------------------------
+The base color for this template is #5c87b2. If you'd like
+to use a different color start by replacing all instances of
+#5c87b2 with your new color.
+----------------------------------------------------------*/
+body
+{
+ background-color: #5c87b2;
+ font-size: .75em;
+ font-family: Verdana, Helvetica, Sans-Serif;
+ margin: 0;
+ padding: 0;
+ color: #696969;
+}
+
+a:link
+{
+ color: #034af3;
+ text-decoration: underline;
+}
+a:visited
+{
+ color: #505abc;
+}
+a:hover
+{
+ color: #1d60ff;
+ text-decoration: none;
+}
+a:active
+{
+ color: #12eb87;
+}
+
+p, ul
+{
+ margin-bottom: 20px;
+ line-height: 1.6em;
+}
+
+/* HEADINGS
+----------------------------------------------------------*/
+h1, h2, h3, h4, h5, h6
+{
+ font-size: 1.5em;
+ color: #000;
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+h1
+{
+ font-size: 2em;
+ padding-bottom: 0;
+ margin-bottom: 0;
+}
+h2
+{
+ padding: 0 0 10px 0;
+}
+h3
+{
+ font-size: 1.2em;
+}
+h4
+{
+ font-size: 1.1em;
+}
+h5, h6
+{
+ font-size: 1em;
+}
+
+/* this rule styles tags that are the
+first child of the left and right table columns */
+.rightColumn > h1, .rightColumn > h2, .leftColumn > h1, .leftColumn > h2
+{
+ margin-top: 0;
+}
+
+/* PRIMARY LAYOUT ELEMENTS
+----------------------------------------------------------*/
+
+/* you can specify a greater or lesser percentage for the
+page width. Or, you can specify an exact pixel width. */
+.page
+{
+ width: 90%;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+#header
+{
+ position: relative;
+ margin-bottom: 0px;
+ color: #000;
+ padding: 0;
+}
+
+#header h1
+{
+ font-weight: bold;
+ padding: 5px 0;
+ margin: 0;
+ color: #fff;
+ border: none;
+ line-height: 2em;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 32px !important;
+}
+
+#main
+{
+ padding: 30px 30px 15px 30px;
+ background-color: #fff;
+ margin-bottom: 30px;
+ _height: 1px; /* only IE6 applies CSS properties starting with an underscrore */
+ height: 590px;
+}
+
+#footer
+{
+ color: #999;
+ padding: 10px 0;
+ text-align: center;
+ line-height: normal;
+ margin: 0;
+ font-size: .9em;
+}
+
+/* TAB MENU
+----------------------------------------------------------*/
+ul#menu
+{
+ border-bottom: 1px #5C87B2 solid;
+ padding: 0 0 2px;
+ position: relative;
+ margin: 0;
+ text-align: right;
+}
+
+ul#menu li
+{
+ display: inline;
+ list-style: none;
+}
+
+ul#menu li#greeting
+{
+ padding: 10px 20px;
+ font-weight: bold;
+ text-decoration: none;
+ line-height: 2.8em;
+ color: #fff;
+}
+
+ul#menu li a
+{
+ padding: 10px 20px;
+ font-weight: bold;
+ text-decoration: none;
+ line-height: 2.8em;
+ background-color: #e8eef4;
+ color: #034af3;
+}
+
+ul#menu li a:hover
+{
+ background-color: #fff;
+ text-decoration: none;
+}
+
+ul#menu li a:active
+{
+ background-color: #a6e2a6;
+ text-decoration: none;
+}
+
+ul#menu li.selected a
+{
+ background-color: #fff;
+ color: #000;
+}
+
+/* FORM LAYOUT ELEMENTS
+----------------------------------------------------------*/
+
+fieldset
+{
+ margin: 1em 0;
+ padding: 1em;
+ border: 1px solid #CCC;
+}
+
+fieldset p
+{
+ margin: 2px 12px 10px 10px;
+}
+
+fieldset label
+{
+ display: block;
+}
+
+fieldset label.inline
+{
+ display: inline;
+}
+
+legend
+{
+ font-size: 1.1em;
+ font-weight: 600;
+ padding: 2px 4px 8px 4px;
+}
+
+input[type="text"]
+{
+ width: 200px;
+ border: 1px solid #CCC;
+}
+
+input[type="password"]
+{
+ width: 200px;
+ border: 1px solid #CCC;
+}
+
+/* TABLE
+----------------------------------------------------------*/
+
+table
+{
+ border: solid 1px #e8eef4;
+ border-collapse: collapse;
+}
+
+table td
+{
+ padding: 5px;
+ border: solid 1px #e8eef4;
+}
+
+table th
+{
+ padding: 6px 5px;
+ text-align: left;
+ background-color: #e8eef4;
+ border: solid 1px #e8eef4;
+}
+
+/* MISC
+----------------------------------------------------------*/
+.clear
+{
+ clear: both;
+}
+
+.error
+{
+ color:Red;
+}
+
+#menucontainer
+{
+ margin-top:40px;
+}
+
+div#title
+{
+ display:block;
+ float:left;
+ text-align:left;
+}
+
+#logindisplay
+{
+ font-size:1.1em;
+ display:block;
+ text-align:right;
+ margin:10px;
+ color:White;
+}
+
+#logindisplay a:link
+{
+ color: white;
+ text-decoration: underline;
+}
+
+#logindisplay a:visited
+{
+ color: white;
+ text-decoration: underline;
+}
+
+#logindisplay a:hover
+{
+ color: white;
+ text-decoration: none;
+}
+
+.field-validation-error
+{
+ color: #ff0000;
+}
+
+.input-validation-error
+{
+ border: 1px solid #ff0000;
+ background-color: #ffeeee;
+}
+
+.validation-summary-errors
+{
+ font-weight: bold;
+ color: #ff0000;
+}
+
+#dinnerform textarea
+{
+ width:200px;
+ height:70px;
+}
+
+#dinnerDiv textarea
+{
+ width:200px;
+ height:70px;
+}
+
+#rsvpmsg
+{
+ color:Red;
+}
+
+hr
+{
+ padding:0px, 10px, 0px, 10px;
+ height:1px;
+}
+
+#pagination
+{
+ text-align:center;
+}
+
+#dinnerDiv {
+ float: left;
+ width: 280px;
+}
+
+#mapDiv {
+ float: left;
+}
+
+#mapDivLeft {
+ float: left;
+}
+
+#mapDivRight {
+ padding: 30px 0px 0px 20px;
+ float: left;
+}
+
+#dinnerList {
+ padding:0px 0px 0px 0px;
+}
+
+#searchBox {
+ padding:0px 0px 10px 0px;
+}
+
+#theMap {
+ position: relative;
+ width: 500px;
+ height: 450px;
+}
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Content/nerd.jpg b/aspclassiccompiler/Backup/NerdDinnerAsp/Content/nerd.jpg
new file mode 100644
index 0000000..f60b5b4
Binary files /dev/null and b/aspclassiccompiler/Backup/NerdDinnerAsp/Content/nerd.jpg differ
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/AccountController.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/AccountController.cs
new file mode 100644
index 0000000..d2b5661
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/AccountController.cs
@@ -0,0 +1,297 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Security.Principal;
+using System.Web;
+using System.Web.Mvc;
+using System.Web.Security;
+using System.Web.UI;
+
+namespace NerdDinner.Controllers {
+
+ [HandleError]
+ public class AccountController : Controller {
+
+ // This constructor is used by the MVC framework to instantiate the controller using
+ // the default forms authentication and membership providers.
+
+ public AccountController()
+ : this(null, null) {
+ }
+
+ // This constructor is not used by the MVC framework but is instead provided for ease
+ // of unit testing this type. See the comments at the end of this file for more
+ // information.
+ public AccountController(IFormsAuthentication formsAuth, IMembershipService service) {
+ FormsAuth = formsAuth ?? new FormsAuthenticationService();
+ MembershipService = service ?? new AccountMembershipService();
+ }
+
+ public IFormsAuthentication FormsAuth {
+ get;
+ private set;
+ }
+
+ public IMembershipService MembershipService {
+ get;
+ private set;
+ }
+
+ public ActionResult LogOn() {
+
+ return View();
+ }
+
+ [AcceptVerbs(HttpVerbs.Post)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings",
+ Justification = "Needs to take same parameter type as Controller.Redirect()")]
+ public ActionResult LogOn(string userName, string password, bool rememberMe, string returnUrl) {
+
+ if (!ValidateLogOn(userName, password)) {
+ ViewData["rememberMe"] = rememberMe;
+ return View();
+ }
+
+ FormsAuth.SignIn(userName, rememberMe);
+ if (!String.IsNullOrEmpty(returnUrl)) {
+ return Redirect(returnUrl);
+ }
+ else {
+ return RedirectToAction("Index", "Home");
+ }
+ }
+
+ public ActionResult LogOff() {
+
+ FormsAuth.SignOut();
+
+ return RedirectToAction("Index", "Home");
+ }
+
+ public ActionResult Register() {
+
+ ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
+
+ return View();
+ }
+
+ [AcceptVerbs(HttpVerbs.Post)]
+ public ActionResult Register(string userName, string email, string password, string confirmPassword) {
+
+ ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
+
+ if (ValidateRegistration(userName, email, password, confirmPassword)) {
+ // Attempt to register the user
+ MembershipCreateStatus createStatus = MembershipService.CreateUser(userName, password, email);
+
+ if (createStatus == MembershipCreateStatus.Success) {
+ FormsAuth.SignIn(userName, false /* createPersistentCookie */);
+ return RedirectToAction("Index", "Home");
+ }
+ else {
+ ModelState.AddModelError("_FORM", ErrorCodeToString(createStatus));
+ }
+ }
+
+ // If we got this far, something failed, redisplay form
+ return View();
+ }
+
+ [Authorize]
+ public ActionResult ChangePassword() {
+
+ ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
+
+ return View();
+ }
+
+ [Authorize]
+ [AcceptVerbs(HttpVerbs.Post)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes",
+ Justification = "Exceptions result in password not being changed.")]
+ public ActionResult ChangePassword(string currentPassword, string newPassword, string confirmPassword) {
+
+ ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
+
+ if (!ValidateChangePassword(currentPassword, newPassword, confirmPassword)) {
+ return View();
+ }
+
+ try {
+ if (MembershipService.ChangePassword(User.Identity.Name, currentPassword, newPassword)) {
+ return RedirectToAction("ChangePasswordSuccess");
+ }
+ else {
+ ModelState.AddModelError("_FORM", "The current password is incorrect or the new password is invalid.");
+ return View();
+ }
+ }
+ catch {
+ ModelState.AddModelError("_FORM", "The current password is incorrect or the new password is invalid.");
+ return View();
+ }
+ }
+
+ public ActionResult ChangePasswordSuccess() {
+
+ return View();
+ }
+
+ protected override void OnActionExecuting(ActionExecutingContext filterContext) {
+ if (filterContext.HttpContext.User.Identity is WindowsIdentity) {
+ throw new InvalidOperationException("Windows authentication is not supported.");
+ }
+ }
+
+ #region Validation Methods
+
+ private bool ValidateChangePassword(string currentPassword, string newPassword, string confirmPassword) {
+ if (String.IsNullOrEmpty(currentPassword)) {
+ ModelState.AddModelError("currentPassword", "You must specify a current password.");
+ }
+ if (newPassword == null || newPassword.Length < MembershipService.MinPasswordLength) {
+ ModelState.AddModelError("newPassword",
+ String.Format(CultureInfo.CurrentCulture,
+ "You must specify a new password of {0} or more characters.",
+ MembershipService.MinPasswordLength));
+ }
+
+ if (!String.Equals(newPassword, confirmPassword, StringComparison.Ordinal)) {
+ ModelState.AddModelError("_FORM", "The new password and confirmation password do not match.");
+ }
+
+ return ModelState.IsValid;
+ }
+
+ private bool ValidateLogOn(string userName, string password) {
+ if (String.IsNullOrEmpty(userName)) {
+ ModelState.AddModelError("username", "You must specify a username.");
+ }
+ if (String.IsNullOrEmpty(password)) {
+ ModelState.AddModelError("password", "You must specify a password.");
+ }
+ if (!MembershipService.ValidateUser(userName, password)) {
+ ModelState.AddModelError("_FORM", "The username or password provided is incorrect.");
+ }
+
+ return ModelState.IsValid;
+ }
+
+ private bool ValidateRegistration(string userName, string email, string password, string confirmPassword) {
+ if (String.IsNullOrEmpty(userName)) {
+ ModelState.AddModelError("username", "You must specify a username.");
+ }
+ if (String.IsNullOrEmpty(email)) {
+ ModelState.AddModelError("email", "You must specify an email address.");
+ }
+ if (password == null || password.Length < MembershipService.MinPasswordLength) {
+ ModelState.AddModelError("password",
+ String.Format(CultureInfo.CurrentCulture,
+ "You must specify a password of {0} or more characters.",
+ MembershipService.MinPasswordLength));
+ }
+ if (!String.Equals(password, confirmPassword, StringComparison.Ordinal)) {
+ ModelState.AddModelError("_FORM", "The new password and confirmation password do not match.");
+ }
+ return ModelState.IsValid;
+ }
+
+ private static string ErrorCodeToString(MembershipCreateStatus createStatus) {
+ // See http://msdn.microsoft.com/en-us/library/system.web.security.membershipcreatestatus.aspx for
+ // a full list of status codes.
+ switch (createStatus) {
+ case MembershipCreateStatus.DuplicateUserName:
+ return "Username already exists. Please enter a different user name.";
+
+ case MembershipCreateStatus.DuplicateEmail:
+ return "A username for that e-mail address already exists. Please enter a different e-mail address.";
+
+ case MembershipCreateStatus.InvalidPassword:
+ return "The password provided is invalid. Please enter a valid password value.";
+
+ case MembershipCreateStatus.InvalidEmail:
+ return "The e-mail address provided is invalid. Please check the value and try again.";
+
+ case MembershipCreateStatus.InvalidAnswer:
+ return "The password retrieval answer provided is invalid. Please check the value and try again.";
+
+ case MembershipCreateStatus.InvalidQuestion:
+ return "The password retrieval question provided is invalid. Please check the value and try again.";
+
+ case MembershipCreateStatus.InvalidUserName:
+ return "The user name provided is invalid. Please check the value and try again.";
+
+ case MembershipCreateStatus.ProviderError:
+ return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
+
+ case MembershipCreateStatus.UserRejected:
+ return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
+
+ default:
+ return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
+ }
+ }
+ #endregion
+ }
+
+ // The FormsAuthentication type is sealed and contains static members, so it is difficult to
+ // unit test code that calls its members. The interface and helper class below demonstrate
+ // how to create an abstract wrapper around such a type in order to make the AccountController
+ // code unit testable.
+
+ public interface IFormsAuthentication {
+ void SignIn(string userName, bool createPersistentCookie);
+ void SignOut();
+ }
+
+ public class FormsAuthenticationService : IFormsAuthentication {
+ public void SignIn(string userName, bool createPersistentCookie) {
+ FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
+ }
+ public void SignOut() {
+ FormsAuthentication.SignOut();
+ }
+ }
+
+ public interface IMembershipService {
+ int MinPasswordLength { get; }
+
+ bool ValidateUser(string userName, string password);
+ MembershipCreateStatus CreateUser(string userName, string password, string email);
+ bool ChangePassword(string userName, string oldPassword, string newPassword);
+ }
+
+ public class AccountMembershipService : IMembershipService {
+ private MembershipProvider _provider;
+
+ public AccountMembershipService()
+ : this(null) {
+ }
+
+ public AccountMembershipService(MembershipProvider provider) {
+ _provider = provider ?? Membership.Provider;
+ }
+
+ public int MinPasswordLength {
+ get {
+ return _provider.MinRequiredPasswordLength;
+ }
+ }
+
+ public bool ValidateUser(string userName, string password) {
+ return _provider.ValidateUser(userName, password);
+ }
+
+ public MembershipCreateStatus CreateUser(string userName, string password, string email) {
+ MembershipCreateStatus status;
+ _provider.CreateUser(userName, password, email, null, null, true, null, out status);
+ return status;
+ }
+
+ public bool ChangePassword(string userName, string oldPassword, string newPassword) {
+ MembershipUser currentUser = _provider.GetUser(userName, true /* userIsOnline */);
+ return currentUser.ChangePassword(oldPassword, newPassword);
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/DinnersController.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/DinnersController.cs
new file mode 100644
index 0000000..381f465
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/DinnersController.cs
@@ -0,0 +1,189 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web.Mvc;
+using NerdDinner.Helpers;
+using NerdDinner.Models;
+
+namespace NerdDinner.Controllers {
+
+ //
+ // ViewModel Classes
+
+ public class DinnerFormViewModel {
+
+ // Properties
+ public Dinner Dinner { get; private set; }
+ public SelectList Countries { get; private set; }
+
+ // Constructor
+ public DinnerFormViewModel(Dinner dinner) {
+ Dinner = dinner;
+ Countries = new SelectList(PhoneValidator.Countries, Dinner.Country);
+ }
+ }
+
+ //
+ // Controller Class
+
+ [HandleError]
+ public class DinnersController : Controller {
+
+ IDinnerRepository dinnerRepository;
+
+ //
+ // Dependency Injection enabled constructors
+
+ public DinnersController()
+ : this(new DinnerRepository()) {
+ }
+
+ public DinnersController(IDinnerRepository repository) {
+ dinnerRepository = repository;
+ }
+
+ //
+ // GET: /Dinners/
+ // /Dinners/Page/2
+
+ public ActionResult Index(int? page) {
+
+ const int pageSize = 10;
+
+ var upcomingDinners = dinnerRepository.FindUpcomingDinners();
+ var paginatedDinners = new PaginatedList(upcomingDinners, page ?? 0, pageSize);
+
+ return View(paginatedDinners);
+ }
+
+ //
+ // GET: /Dinners/Details/5
+
+ public ActionResult Details(int id) {
+
+ Dinner dinner = dinnerRepository.GetDinner(id);
+
+ if (dinner == null)
+ return View("NotFound");
+
+ return View(dinner);
+ }
+
+ //
+ // GET: /Dinners/Edit/5
+
+ [Authorize]
+ public ActionResult Edit(int id) {
+
+ Dinner dinner = dinnerRepository.GetDinner(id);
+
+ if (!dinner.IsHostedBy(User.Identity.Name))
+ return View("InvalidOwner");
+
+ return View(new DinnerFormViewModel(dinner));
+ }
+
+ //
+ // POST: /Dinners/Edit/5
+
+ [AcceptVerbs(HttpVerbs.Post), Authorize]
+ public ActionResult Edit(int id, FormCollection collection) {
+
+ Dinner dinner = dinnerRepository.GetDinner(id);
+
+ if (!dinner.IsHostedBy(User.Identity.Name))
+ return View("InvalidOwner");
+
+ try {
+ UpdateModel(dinner);
+
+ dinnerRepository.Save();
+
+ return RedirectToAction("Details", new { id=dinner.DinnerID });
+ }
+ catch {
+ ModelState.AddModelErrors(dinner.GetRuleViolations());
+
+ return View(new DinnerFormViewModel(dinner));
+ }
+ }
+
+ //
+ // GET: /Dinners/Create
+
+ [Authorize]
+ public ActionResult Create() {
+
+ Dinner dinner = new Dinner() {
+ EventDate = DateTime.Now.AddDays(7)
+ };
+
+ return View(new DinnerFormViewModel(dinner));
+ }
+
+ //
+ // POST: /Dinners/Create
+
+ [AcceptVerbs(HttpVerbs.Post), Authorize]
+ public ActionResult Create(Dinner dinner) {
+
+ if (ModelState.IsValid) {
+
+ try {
+ dinner.HostedBy = User.Identity.Name;
+
+ RSVP rsvp = new RSVP();
+ rsvp.AttendeeName = User.Identity.Name;
+ dinner.RSVPs.Add(rsvp);
+
+ dinnerRepository.Add(dinner);
+ dinnerRepository.Save();
+
+ return RedirectToAction("Details", new { id=dinner.DinnerID });
+ }
+ catch {
+ ModelState.AddModelErrors(dinner.GetRuleViolations());
+ }
+ }
+
+ return View(new DinnerFormViewModel(dinner));
+ }
+
+ //
+ // HTTP GET: /Dinners/Delete/1
+
+ [Authorize]
+ public ActionResult Delete(int id) {
+
+ Dinner dinner = dinnerRepository.GetDinner(id);
+
+ if (dinner == null)
+ return View("NotFound");
+
+ if (!dinner.IsHostedBy(User.Identity.Name))
+ return View("InvalidOwner");
+
+ return View(dinner);
+ }
+
+ //
+ // HTTP POST: /Dinners/Delete/1
+
+ [AcceptVerbs(HttpVerbs.Post), Authorize]
+ public ActionResult Delete(int id, string confirmButton) {
+
+ Dinner dinner = dinnerRepository.GetDinner(id);
+
+ if (dinner == null)
+ return View("NotFound");
+
+ if (!dinner.IsHostedBy(User.Identity.Name))
+ return View("InvalidOwner");
+
+ dinnerRepository.Delete(dinner);
+ dinnerRepository.Save();
+
+ return View("Deleted");
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/HomeController.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/HomeController.cs
new file mode 100644
index 0000000..8b52b8d
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/HomeController.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+
+namespace NerdDinner.Controllers {
+
+ [HandleError]
+ public class HomeController : Controller {
+
+ public ActionResult Index() {
+ return View();
+ }
+
+ public ActionResult About() {
+ return View();
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/RSVPController.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/RSVPController.cs
new file mode 100644
index 0000000..7b71cb9
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/RSVPController.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using NerdDinner.Models;
+
+namespace NerdDinner.Controllers
+{
+ public class RSVPController : Controller {
+
+ IDinnerRepository dinnerRepository;
+
+ //
+ // Dependency Injection enabled constructors
+
+ public RSVPController()
+ : this(new DinnerRepository()) {
+ }
+
+ public RSVPController(IDinnerRepository repository) {
+ dinnerRepository = repository;
+ }
+
+ //
+ // AJAX: /Dinners/Register/1
+
+ [Authorize, AcceptVerbs(HttpVerbs.Post)]
+ public ActionResult Register(int id) {
+
+ Dinner dinner = dinnerRepository.GetDinner(id);
+
+ if (!dinner.IsUserRegistered(User.Identity.Name)) {
+
+ RSVP rsvp = new RSVP();
+ rsvp.AttendeeName = User.Identity.Name;
+
+ dinner.RSVPs.Add(rsvp);
+ dinnerRepository.Save();
+ }
+
+ return Content("Thanks - we'll see you there!");
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/SearchController.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/SearchController.cs
new file mode 100644
index 0000000..fb782a8
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Controllers/SearchController.cs
@@ -0,0 +1,55 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using NerdDinner.Models;
+
+namespace NerdDinner.Controllers {
+
+ public class JsonDinner {
+ public int DinnerID { get; set; }
+ public string Title { get; set; }
+ public double Latitude { get; set; }
+ public double Longitude { get; set; }
+ public string Description { get; set; }
+ public int RSVPCount { get; set; }
+ }
+
+ public class SearchController : Controller {
+
+ IDinnerRepository dinnerRepository;
+
+ //
+ // Dependency Injection enabled constructors
+
+ public SearchController()
+ : this(new DinnerRepository()) {
+ }
+
+ public SearchController(IDinnerRepository repository) {
+ dinnerRepository = repository;
+ }
+
+ //
+ // AJAX: /Search/FindByLocation?longitude=45&latitude=-90
+
+ [AcceptVerbs(HttpVerbs.Post)]
+ public ActionResult SearchByLocation(float latitude, float longitude) {
+
+ var dinners = dinnerRepository.FindByLocation(latitude, longitude);
+
+ var jsonDinners = from dinner in dinners
+ select new JsonDinner {
+ DinnerID = dinner.DinnerID,
+ Latitude = dinner.Latitude,
+ Longitude = dinner.Longitude,
+ Title = dinner.Title,
+ Description = dinner.Description,
+ RSVPCount = dinner.RSVPs.Count
+ };
+
+ return Json(jsonDinners.ToList());
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Default.aspx b/aspclassiccompiler/Backup/NerdDinnerAsp/Default.aspx
new file mode 100644
index 0000000..f639413
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Default.aspx
@@ -0,0 +1,3 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="NerdDinner._Default" %>
+
+<%-- Please do not delete this file. It is used to ensure that ASP.NET MVC is activated by IIS when a user makes a "/" request to the server. --%>
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Default.aspx.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Default.aspx.cs
new file mode 100644
index 0000000..16a8f6e
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Default.aspx.cs
@@ -0,0 +1,13 @@
+using System.Web;
+using System.Web.Mvc;
+using System.Web.UI;
+
+namespace NerdDinner {
+ public partial class _Default : Page {
+ public void Page_Load(object sender, System.EventArgs e) {
+ HttpContext.Current.RewritePath(Request.ApplicationPath, false);
+ IHttpHandler httpHandler = new MvcHttpHandler();
+ httpHandler.ProcessRequest(HttpContext.Current);
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Global.asax b/aspclassiccompiler/Backup/NerdDinnerAsp/Global.asax
new file mode 100644
index 0000000..8b18fdb
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Global.asax
@@ -0,0 +1 @@
+<%@ Application Codebehind="Global.asax.cs" Inherits="NerdDinner.MvcApplication" Language="C#" %>
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Global.asax.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Global.asax.cs
new file mode 100644
index 0000000..961c768
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Global.asax.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using System.Web.Routing;
+using Dlrsoft.Asp.Mvc;
+
+namespace NerdDinner {
+
+ public class MvcApplication : System.Web.HttpApplication {
+
+ public void RegisterRoutes(RouteCollection routes) {
+
+ routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
+
+ routes.MapRoute(
+ "UpcomingDinners",
+ "Dinners/Page/{page}",
+ new { controller = "Dinners", action = "Index" }
+ );
+
+ routes.MapRoute(
+ "Default", // Route name
+ "{controller}/{action}/{id}", // URL with parameters
+ new { controller = "Home", action = "Index", id = "" } // Parameter defaults
+ );
+ }
+
+ void Application_Start() {
+ RegisterRoutes(RouteTable.Routes);
+ ViewEngines.Engines.Clear();
+ ViewEngines.Engines.Add(new AspViewEngine());
+ ViewEngines.Engines.Add(new WebFormViewEngine());
+ }
+ }
+}
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Helpers/ControllerHelpers.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Helpers/ControllerHelpers.cs
new file mode 100644
index 0000000..ea6b24e
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Helpers/ControllerHelpers.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using NerdDinner.Models;
+using System.Web.Mvc;
+
+namespace NerdDinner.Helpers {
+
+ public static class ModelStateHelpers {
+
+ public static void AddModelErrors(this ModelStateDictionary modelState, IEnumerable errors) {
+
+ foreach (RuleViolation issue in errors) {
+ modelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
+ }
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Helpers/PaginatedList.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Helpers/PaginatedList.cs
new file mode 100644
index 0000000..e8c3dbc
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Helpers/PaginatedList.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace NerdDinner.Helpers {
+
+ public class PaginatedList : List {
+
+ public int PageIndex { get; private set; }
+ public int PageSize { get; private set; }
+ public int TotalCount { get; private set; }
+ public int TotalPages { get; private set; }
+
+ public PaginatedList(IQueryable source, int pageIndex, int pageSize) {
+ PageIndex = pageIndex;
+ PageSize = pageSize;
+ TotalCount = source.Count();
+ TotalPages = (int) Math.Ceiling(TotalCount / (double)PageSize);
+
+ this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
+ }
+
+ public bool HasPreviousPage {
+ get {
+ return (PageIndex > 0);
+ }
+ }
+
+ public bool HasNextPage {
+ get {
+ return (PageIndex+1 < TotalPages);
+ }
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Helpers/PhoneValidator.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Helpers/PhoneValidator.cs
new file mode 100644
index 0000000..2a3e590
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Helpers/PhoneValidator.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Text.RegularExpressions;
+
+namespace NerdDinner.Helpers {
+
+ public class PhoneValidator {
+
+ static IDictionary countryRegex = new Dictionary()
+ {
+ { "USA", new Regex("^[2-9]\\d{2}-\\d{3}-\\d{4}$")},
+ { "UK", new Regex("(^1300\\d{6}$)|(^1800|1900|1902\\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^13\\d{4}$)|(^04\\d{2,3}\\d{6}$)")},
+ { "Netherlands", new Regex("(^\\+[0-9]{2}|^\\+[0-9]{2}\\(0\\)|^\\(\\+[0-9]{2}\\)\\(0\\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\\-\\s]{10}$)")},
+ };
+
+ public static bool IsValidNumber(string phoneNumber, string country) {
+
+ if (country != null && countryRegex.ContainsKey(country))
+ return countryRegex[country].IsMatch(phoneNumber);
+ else
+ return false;
+ }
+
+ public static IEnumerable Countries {
+ get {
+ return countryRegex.Keys;
+ }
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Models/Dinner.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/Dinner.cs
new file mode 100644
index 0000000..8f26640
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/Dinner.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Data.Linq;
+using System.Web.Mvc;
+using NerdDinner.Helpers;
+
+namespace NerdDinner.Models {
+
+ [Bind(Include="Title,Description,EventDate,Address,Country,ContactPhone,Latitude,Longitude")]
+ public partial class Dinner {
+
+ public bool IsHostedBy(string userName) {
+ return HostedBy.Equals(userName, StringComparison.InvariantCultureIgnoreCase);
+ }
+
+ public bool IsUserRegistered(string userName) {
+ return RSVPs.Any(r => r.AttendeeName.Equals(userName, StringComparison.InvariantCultureIgnoreCase));
+ }
+
+ public bool IsValid {
+ get { return (GetRuleViolations().Count() == 0); }
+ }
+
+ public IEnumerable GetRuleViolations() {
+
+ if (String.IsNullOrEmpty(Title))
+ yield return new RuleViolation("Title is required", "Title");
+
+ if (String.IsNullOrEmpty(Description))
+ yield return new RuleViolation("Description is required", "Description");
+
+ if (String.IsNullOrEmpty(HostedBy))
+ yield return new RuleViolation("HostedBy is required", "HostedBy");
+
+ if (String.IsNullOrEmpty(Address))
+ yield return new RuleViolation("Address is required", "Address");
+
+ if (String.IsNullOrEmpty(Country))
+ yield return new RuleViolation("Country is required", "Address");
+
+ if (String.IsNullOrEmpty(ContactPhone))
+ yield return new RuleViolation("Phone# is required", "ContactPhone");
+
+ if (!PhoneValidator.IsValidNumber(ContactPhone, Country))
+ yield return new RuleViolation("Phone# does not match country", "ContactPhone");
+
+ yield break;
+ }
+
+ partial void OnValidate(ChangeAction action) {
+ if (!IsValid)
+ throw new ApplicationException("Rule violations prevent saving");
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Models/DinnerRepository.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/DinnerRepository.cs
new file mode 100644
index 0000000..e018d7c
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/DinnerRepository.cs
@@ -0,0 +1,58 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace NerdDinner.Models {
+
+ public class DinnerRepository : NerdDinner.Models.IDinnerRepository {
+
+ NerdDinnerDataContext db = new NerdDinnerDataContext();
+
+ //
+ // Query Methods
+
+ public IQueryable FindAllDinners() {
+ return db.Dinners;
+ }
+
+ public IQueryable FindUpcomingDinners() {
+ return from dinner in FindAllDinners()
+ where dinner.EventDate > DateTime.Now
+ orderby dinner.EventDate
+ select dinner;
+ }
+
+ public IQueryable FindByLocation(float latitude, float longitude) {
+ var dinners = from dinner in FindUpcomingDinners()
+ join i in db.NearestDinners(latitude, longitude)
+ on dinner.DinnerID equals i.DinnerID
+ select dinner;
+
+ return dinners;
+ }
+
+ public Dinner GetDinner(int id) {
+ return db.Dinners.SingleOrDefault(d => d.DinnerID == id);
+ }
+
+ //
+ // Insert/Delete Methods
+
+ public void Add(Dinner dinner) {
+ db.Dinners.InsertOnSubmit(dinner);
+ }
+
+ public void Delete(Dinner dinner) {
+ db.RSVPs.DeleteAllOnSubmit(dinner.RSVPs);
+ db.Dinners.DeleteOnSubmit(dinner);
+ }
+
+ //
+ // Persistence
+
+ public void Save() {
+ db.SubmitChanges();
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Models/IDinnerRepository.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/IDinnerRepository.cs
new file mode 100644
index 0000000..79a6e8a
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/IDinnerRepository.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Linq;
+
+namespace NerdDinner.Models {
+
+ public interface IDinnerRepository {
+
+ IQueryable FindAllDinners();
+ IQueryable FindByLocation(float latitude, float longitude);
+ IQueryable FindUpcomingDinners();
+ Dinner GetDinner(int id);
+
+ void Add(Dinner dinner);
+ void Delete(Dinner dinner);
+
+ void Save();
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Models/NerdDinner.dbml b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/NerdDinner.dbml
new file mode 100644
index 0000000..8b5ee48
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/NerdDinner.dbml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Models/NerdDinner.dbml.layout b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/NerdDinner.dbml.layout
new file mode 100644
index 0000000..7736e82
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/NerdDinner.dbml.layout
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Models/NerdDinner.designer.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/NerdDinner.designer.cs
new file mode 100644
index 0000000..04acff0
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/NerdDinner.designer.cs
@@ -0,0 +1,583 @@
+#pragma warning disable 1591
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3521
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace NerdDinner.Models
+{
+ using System.Data.Linq;
+ using System.Data.Linq.Mapping;
+ using System.Data;
+ using System.Collections.Generic;
+ using System.Reflection;
+ using System.Linq;
+ using System.Linq.Expressions;
+ using System.ComponentModel;
+ using System;
+
+
+ [System.Data.Linq.Mapping.DatabaseAttribute(Name="NerdDinner")]
+ public partial class NerdDinnerDataContext : System.Data.Linq.DataContext
+ {
+
+ private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
+
+ #region Extensibility Method Definitions
+ partial void OnCreated();
+ partial void InsertDinner(Dinner instance);
+ partial void UpdateDinner(Dinner instance);
+ partial void DeleteDinner(Dinner instance);
+ partial void InsertRSVP(RSVP instance);
+ partial void UpdateRSVP(RSVP instance);
+ partial void DeleteRSVP(RSVP instance);
+ #endregion
+
+ public NerdDinnerDataContext() :
+ base(global::System.Configuration.ConfigurationManager.ConnectionStrings["NerdDinnerConnectionString"].ConnectionString, mappingSource)
+ {
+ OnCreated();
+ }
+
+ public NerdDinnerDataContext(string connection) :
+ base(connection, mappingSource)
+ {
+ OnCreated();
+ }
+
+ public NerdDinnerDataContext(System.Data.IDbConnection connection) :
+ base(connection, mappingSource)
+ {
+ OnCreated();
+ }
+
+ public NerdDinnerDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
+ base(connection, mappingSource)
+ {
+ OnCreated();
+ }
+
+ public NerdDinnerDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
+ base(connection, mappingSource)
+ {
+ OnCreated();
+ }
+
+ public System.Data.Linq.Table Dinners
+ {
+ get
+ {
+ return this.GetTable();
+ }
+ }
+
+ public System.Data.Linq.Table RSVPs
+ {
+ get
+ {
+ return this.GetTable();
+ }
+ }
+
+ [Function(Name="dbo.NearestDinners", IsComposable=true)]
+ public IQueryable NearestDinners([Parameter(DbType="Real")] System.Nullable lat, [Parameter(Name="long", DbType="Real")] System.Nullable @long)
+ {
+ return this.CreateMethodCallQuery(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), lat, @long);
+ }
+
+ [Function(Name="dbo.DistanceBetween", IsComposable=true)]
+ public System.Nullable DistanceBetween([Parameter(Name="Lat1", DbType="Real")] System.Nullable lat1, [Parameter(Name="Long1", DbType="Real")] System.Nullable long1, [Parameter(Name="Lat2", DbType="Real")] System.Nullable lat2, [Parameter(Name="Long2", DbType="Real")] System.Nullable long2)
+ {
+ return ((System.Nullable)(this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), lat1, long1, lat2, long2).ReturnValue));
+ }
+ }
+
+ [Table(Name="dbo.Dinners")]
+ public partial class Dinner : INotifyPropertyChanging, INotifyPropertyChanged
+ {
+
+ private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
+
+ private int _DinnerID;
+
+ private string _Title;
+
+ private System.DateTime _EventDate;
+
+ private string _Description;
+
+ private string _HostedBy;
+
+ private string _ContactPhone;
+
+ private string _Address;
+
+ private string _Country;
+
+ private double _Latitude;
+
+ private double _Longitude;
+
+ private EntitySet _RSVPs;
+
+ #region Extensibility Method Definitions
+ partial void OnLoaded();
+ partial void OnValidate(System.Data.Linq.ChangeAction action);
+ partial void OnCreated();
+ partial void OnDinnerIDChanging(int value);
+ partial void OnDinnerIDChanged();
+ partial void OnTitleChanging(string value);
+ partial void OnTitleChanged();
+ partial void OnEventDateChanging(System.DateTime value);
+ partial void OnEventDateChanged();
+ partial void OnDescriptionChanging(string value);
+ partial void OnDescriptionChanged();
+ partial void OnHostedByChanging(string value);
+ partial void OnHostedByChanged();
+ partial void OnContactPhoneChanging(string value);
+ partial void OnContactPhoneChanged();
+ partial void OnAddressChanging(string value);
+ partial void OnAddressChanged();
+ partial void OnCountryChanging(string value);
+ partial void OnCountryChanged();
+ partial void OnLatitudeChanging(double value);
+ partial void OnLatitudeChanged();
+ partial void OnLongitudeChanging(double value);
+ partial void OnLongitudeChanged();
+ #endregion
+
+ public Dinner()
+ {
+ this._RSVPs = new EntitySet(new Action(this.attach_RSVPs), new Action(this.detach_RSVPs));
+ OnCreated();
+ }
+
+ [Column(Storage="_DinnerID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
+ public int DinnerID
+ {
+ get
+ {
+ return this._DinnerID;
+ }
+ set
+ {
+ if ((this._DinnerID != value))
+ {
+ this.OnDinnerIDChanging(value);
+ this.SendPropertyChanging();
+ this._DinnerID = value;
+ this.SendPropertyChanged("DinnerID");
+ this.OnDinnerIDChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_Title", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
+ public string Title
+ {
+ get
+ {
+ return this._Title;
+ }
+ set
+ {
+ if ((this._Title != value))
+ {
+ this.OnTitleChanging(value);
+ this.SendPropertyChanging();
+ this._Title = value;
+ this.SendPropertyChanged("Title");
+ this.OnTitleChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_EventDate", DbType="DateTime NOT NULL")]
+ public System.DateTime EventDate
+ {
+ get
+ {
+ return this._EventDate;
+ }
+ set
+ {
+ if ((this._EventDate != value))
+ {
+ this.OnEventDateChanging(value);
+ this.SendPropertyChanging();
+ this._EventDate = value;
+ this.SendPropertyChanged("EventDate");
+ this.OnEventDateChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_Description", DbType="NVarChar(256)")]
+ public string Description
+ {
+ get
+ {
+ return this._Description;
+ }
+ set
+ {
+ if ((this._Description != value))
+ {
+ this.OnDescriptionChanging(value);
+ this.SendPropertyChanging();
+ this._Description = value;
+ this.SendPropertyChanged("Description");
+ this.OnDescriptionChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_HostedBy", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
+ public string HostedBy
+ {
+ get
+ {
+ return this._HostedBy;
+ }
+ set
+ {
+ if ((this._HostedBy != value))
+ {
+ this.OnHostedByChanging(value);
+ this.SendPropertyChanging();
+ this._HostedBy = value;
+ this.SendPropertyChanged("HostedBy");
+ this.OnHostedByChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_ContactPhone", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
+ public string ContactPhone
+ {
+ get
+ {
+ return this._ContactPhone;
+ }
+ set
+ {
+ if ((this._ContactPhone != value))
+ {
+ this.OnContactPhoneChanging(value);
+ this.SendPropertyChanging();
+ this._ContactPhone = value;
+ this.SendPropertyChanged("ContactPhone");
+ this.OnContactPhoneChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_Address", DbType="NVarChar(50)")]
+ public string Address
+ {
+ get
+ {
+ return this._Address;
+ }
+ set
+ {
+ if ((this._Address != value))
+ {
+ this.OnAddressChanging(value);
+ this.SendPropertyChanging();
+ this._Address = value;
+ this.SendPropertyChanged("Address");
+ this.OnAddressChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_Country", DbType="NVarChar(30)")]
+ public string Country
+ {
+ get
+ {
+ return this._Country;
+ }
+ set
+ {
+ if ((this._Country != value))
+ {
+ this.OnCountryChanging(value);
+ this.SendPropertyChanging();
+ this._Country = value;
+ this.SendPropertyChanged("Country");
+ this.OnCountryChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_Latitude", DbType="Float NOT NULL")]
+ public double Latitude
+ {
+ get
+ {
+ return this._Latitude;
+ }
+ set
+ {
+ if ((this._Latitude != value))
+ {
+ this.OnLatitudeChanging(value);
+ this.SendPropertyChanging();
+ this._Latitude = value;
+ this.SendPropertyChanged("Latitude");
+ this.OnLatitudeChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_Longitude", DbType="Float NOT NULL")]
+ public double Longitude
+ {
+ get
+ {
+ return this._Longitude;
+ }
+ set
+ {
+ if ((this._Longitude != value))
+ {
+ this.OnLongitudeChanging(value);
+ this.SendPropertyChanging();
+ this._Longitude = value;
+ this.SendPropertyChanged("Longitude");
+ this.OnLongitudeChanged();
+ }
+ }
+ }
+
+ [Association(Name="Dinner_RSVP", Storage="_RSVPs", ThisKey="DinnerID", OtherKey="DinnerID")]
+ public EntitySet RSVPs
+ {
+ get
+ {
+ return this._RSVPs;
+ }
+ set
+ {
+ this._RSVPs.Assign(value);
+ }
+ }
+
+ public event PropertyChangingEventHandler PropertyChanging;
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ protected virtual void SendPropertyChanging()
+ {
+ if ((this.PropertyChanging != null))
+ {
+ this.PropertyChanging(this, emptyChangingEventArgs);
+ }
+ }
+
+ protected virtual void SendPropertyChanged(String propertyName)
+ {
+ if ((this.PropertyChanged != null))
+ {
+ this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+ }
+ }
+
+ private void attach_RSVPs(RSVP entity)
+ {
+ this.SendPropertyChanging();
+ entity.Dinner = this;
+ }
+
+ private void detach_RSVPs(RSVP entity)
+ {
+ this.SendPropertyChanging();
+ entity.Dinner = null;
+ }
+ }
+
+ [Table(Name="dbo.RSVP")]
+ public partial class RSVP : INotifyPropertyChanging, INotifyPropertyChanged
+ {
+
+ private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
+
+ private int _RsvpID;
+
+ private int _DinnerID;
+
+ private string _AttendeeName;
+
+ private EntityRef _Dinner;
+
+ #region Extensibility Method Definitions
+ partial void OnLoaded();
+ partial void OnValidate(System.Data.Linq.ChangeAction action);
+ partial void OnCreated();
+ partial void OnRsvpIDChanging(int value);
+ partial void OnRsvpIDChanged();
+ partial void OnDinnerIDChanging(int value);
+ partial void OnDinnerIDChanged();
+ partial void OnAttendeeNameChanging(string value);
+ partial void OnAttendeeNameChanged();
+ #endregion
+
+ public RSVP()
+ {
+ this._Dinner = default(EntityRef);
+ OnCreated();
+ }
+
+ [Column(Storage="_RsvpID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
+ public int RsvpID
+ {
+ get
+ {
+ return this._RsvpID;
+ }
+ set
+ {
+ if ((this._RsvpID != value))
+ {
+ this.OnRsvpIDChanging(value);
+ this.SendPropertyChanging();
+ this._RsvpID = value;
+ this.SendPropertyChanged("RsvpID");
+ this.OnRsvpIDChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_DinnerID", DbType="Int NOT NULL")]
+ public int DinnerID
+ {
+ get
+ {
+ return this._DinnerID;
+ }
+ set
+ {
+ if ((this._DinnerID != value))
+ {
+ if (this._Dinner.HasLoadedOrAssignedValue)
+ {
+ throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
+ }
+ this.OnDinnerIDChanging(value);
+ this.SendPropertyChanging();
+ this._DinnerID = value;
+ this.SendPropertyChanged("DinnerID");
+ this.OnDinnerIDChanged();
+ }
+ }
+ }
+
+ [Column(Storage="_AttendeeName", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
+ public string AttendeeName
+ {
+ get
+ {
+ return this._AttendeeName;
+ }
+ set
+ {
+ if ((this._AttendeeName != value))
+ {
+ this.OnAttendeeNameChanging(value);
+ this.SendPropertyChanging();
+ this._AttendeeName = value;
+ this.SendPropertyChanged("AttendeeName");
+ this.OnAttendeeNameChanged();
+ }
+ }
+ }
+
+ [Association(Name="Dinner_RSVP", Storage="_Dinner", ThisKey="DinnerID", OtherKey="DinnerID", IsForeignKey=true)]
+ public Dinner Dinner
+ {
+ get
+ {
+ return this._Dinner.Entity;
+ }
+ set
+ {
+ Dinner previousValue = this._Dinner.Entity;
+ if (((previousValue != value)
+ || (this._Dinner.HasLoadedOrAssignedValue == false)))
+ {
+ this.SendPropertyChanging();
+ if ((previousValue != null))
+ {
+ this._Dinner.Entity = null;
+ previousValue.RSVPs.Remove(this);
+ }
+ this._Dinner.Entity = value;
+ if ((value != null))
+ {
+ value.RSVPs.Add(this);
+ this._DinnerID = value.DinnerID;
+ }
+ else
+ {
+ this._DinnerID = default(int);
+ }
+ this.SendPropertyChanged("Dinner");
+ }
+ }
+ }
+
+ public event PropertyChangingEventHandler PropertyChanging;
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ protected virtual void SendPropertyChanging()
+ {
+ if ((this.PropertyChanging != null))
+ {
+ this.PropertyChanging(this, emptyChangingEventArgs);
+ }
+ }
+
+ protected virtual void SendPropertyChanged(String propertyName)
+ {
+ if ((this.PropertyChanged != null))
+ {
+ this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
+ }
+ }
+ }
+
+ public partial class NearestDinnersResult
+ {
+
+ private int _DinnerID;
+
+ public NearestDinnersResult()
+ {
+ }
+
+ [Column(Storage="_DinnerID", DbType="Int NOT NULL")]
+ public int DinnerID
+ {
+ get
+ {
+ return this._DinnerID;
+ }
+ set
+ {
+ if ((this._DinnerID != value))
+ {
+ this._DinnerID = value;
+ }
+ }
+ }
+ }
+}
+#pragma warning restore 1591
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Models/RuleViolation.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/RuleViolation.cs
new file mode 100644
index 0000000..1a578e6
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Models/RuleViolation.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace NerdDinner.Models {
+
+ public class RuleViolation {
+
+ public string ErrorMessage { get; private set; }
+ public string PropertyName { get; private set; }
+
+ public RuleViolation(string errorMessage) {
+ ErrorMessage = errorMessage;
+ }
+
+ public RuleViolation(string errorMessage, string propertyName) {
+ ErrorMessage = errorMessage;
+ PropertyName = propertyName;
+ }
+ }
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/NerdDinnerAsp.csproj b/aspclassiccompiler/Backup/NerdDinnerAsp/NerdDinnerAsp.csproj
new file mode 100644
index 0000000..542de41
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/NerdDinnerAsp.csproj
@@ -0,0 +1,215 @@
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {328C148C-DBEE-41A4-B1C7-104CBB216556}
+ {603c0e0b-db56-11dc-be95-000d561079b0};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ Library
+ Properties
+ NerdDinner
+ NerdDinner
+ v3.5
+ false
+
+
+ true
+ full
+ false
+ bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\
+ TRACE
+ prompt
+ 4
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+
+
+
+ False
+ ..\asp\bin\Release\Dlrsoft.Asp.dll
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+ 3.5
+
+
+ False
+ C:\Program Files\Microsoft ASP.NET\ASP.NET MVC RC\Assemblies\System.Web.Abstractions.dll
+ 3.5
+
+
+ C:\Program Files\Microsoft ASP.NET\ASP.NET MVC RC\Assemblies\System.Web.Mvc.dll
+ False
+ True
+
+
+ False
+ C:\Program Files\Microsoft ASP.NET\ASP.NET MVC RC\Assemblies\System.Web.Routing.dll
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code
+
+
+ Default.aspx
+ ASPXCodeBehind
+
+
+ Global.asax
+
+
+
+
+
+
+
+
+ True
+ True
+ NerdDinner.dbml
+
+
+
+
+
+
+
+
+ NerdDinner.mdf
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ASPXCodeBehind
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MSLinqToSQLGenerator
+ NerdDinner.designer.cs
+ Designer
+
+
+
+
+
+
+
+ NerdDinner.dbml
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+ True
+ 60848
+ /
+
+
+ False
+ False
+
+
+ False
+
+
+
+
+
\ No newline at end of file
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Properties/AssemblyInfo.cs b/aspclassiccompiler/Backup/NerdDinnerAsp/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..c7c7f74
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("NerdDinner")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("NerdDinner")]
+[assembly: AssemblyCopyright("Copyright © 2009")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("3f961952-a5a3-4ca2-bc29-5b46b500177d")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("0.5.2.32072")]
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/Map.js b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/Map.js
new file mode 100644
index 0000000..e12505a
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/Map.js
@@ -0,0 +1,138 @@
+///
+
+var map = null;
+var points = [];
+var shapes = [];
+var center = null;
+
+function LoadMap(latitude, longitude, onMapLoaded) {
+ map = new VEMap('theMap');
+ options = new VEMapOptions();
+ options.EnableBirdseye = false;
+
+ // Makes the control bar less obtrusize.
+ map.SetDashboardSize(VEDashboardSize.Small);
+
+ if (onMapLoaded != null)
+ map.onLoadMap = onMapLoaded;
+
+ if (latitude != null && longitude != null) {
+ center = new VELatLong(latitude, longitude);
+ }
+
+ map.LoadMap(center, null, null, null, null, null, null, options);
+}
+
+function LoadPin(LL, name, description) {
+ var shape = new VEShape(VEShapeType.Pushpin, LL);
+
+ //Make a nice Pushpin shape with a title and description
+ shape.SetTitle(" " + escape(name) + " ");
+ if (description !== undefined) {
+ shape.SetDescription("" +
+ escape(description) + "
");
+ }
+ map.AddShape(shape);
+ points.push(LL);
+ shapes.push(shape);
+}
+
+function FindAddressOnMap(where) {
+ var numberOfResults = 20;
+ var setBestMapView = true;
+ var showResults = true;
+
+ map.Find("", where, null, null, null,
+ numberOfResults, showResults, true, true,
+ setBestMapView, callbackForLocation);
+}
+
+function callbackForLocation(layer, resultsArray, places,
+ hasMore, VEErrorMessage) {
+
+ clearMap();
+
+ if (places == null)
+ return;
+
+ //Make a pushpin for each place we find
+ $.each(places, function(i, item) {
+ var description = "";
+ if (item.Description !== undefined) {
+ description = item.Description;
+ }
+ var LL = new VELatLong(item.LatLong.Latitude,
+ item.LatLong.Longitude);
+
+ LoadPin(LL, item.Name, description);
+ });
+
+ //Make sure all pushpins are visible
+ if (points.length > 1) {
+ map.SetMapView(points);
+ }
+
+ //If we've found exactly one place, that's our address.
+ if (points.length === 1) {
+ $("#Latitude").val(points[0].Latitude);
+ $("#Longitude").val(points[0].Longitude);
+ }
+}
+
+function clearMap() {
+ map.Clear();
+ points = [];
+ shapes = [];
+}
+
+function FindDinnersGivenLocation(where) {
+ map.Find("", where, null, null, null, null, null, false,
+ null, null, callbackUpdateMapDinners);
+}
+
+function callbackUpdateMapDinners(layer, resultsArray, places, hasMore, VEErrorMessage) {
+ $("#dinnerList").empty();
+ clearMap();
+ var center = map.GetCenter();
+
+ $.post("/Search/SearchByLocation", { latitude: center.Latitude,
+ longitude: center.Longitude
+ }, function(dinners) {
+ $.each(dinners, function(i, dinner) {
+
+ var LL = new VELatLong(dinner.Latitude, dinner.Longitude, 0, null);
+
+ var RsvpMessage = "";
+
+ if (dinner.RSVPCount == 1)
+ RsvpMessage = "" + dinner.RSVPCount + " RSVP";
+ else
+ RsvpMessage = "" + dinner.RSVPCount + " RSVPs";
+
+ // Add Pin to Map
+ LoadPin(LL, ''
+ + dinner.Title + ' ',
+ "" + dinner.Description + "
" + RsvpMessage);
+
+ //Add a dinner to the dinnerList on the right
+ $('#dinnerList').append($(' ')
+ .attr("class", "dinnerItem")
+ .append($(' ').attr("href",
+ "/Dinners/Details/" + dinner.DinnerID)
+ .html(dinner.Title)).append(" ("+RsvpMessage+")"));
+ });
+
+ // Adjust zoom to display all the pins we just added.
+ if (points.length > 1) {
+ map.SetMapView(points);
+ }
+
+ // Display the event's pin-bubble on hover.
+ $(".dinnerItem").each(function(i, dinner) {
+ $(dinner).hover(
+ function() { map.ShowInfoBox(shapes[i]); },
+ function() { map.HideInfoBox(shapes[i]); }
+ );
+ });
+ }, "json");
+}
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/MicrosoftAjax.debug.js b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/MicrosoftAjax.debug.js
new file mode 100644
index 0000000..7b7de62
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/MicrosoftAjax.debug.js
@@ -0,0 +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();
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/MicrosoftAjax.js b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/MicrosoftAjax.js
new file mode 100644
index 0000000..db85c14
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/MicrosoftAjax.js
@@ -0,0 +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;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)
+// -----------------------------------
diff --git a/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/MicrosoftMvcAjax.js b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/MicrosoftMvcAjax.js
new file mode 100644
index 0000000..4797a3c
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/MicrosoftMvcAjax.js
@@ -0,0 +1,19 @@
+
+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;}
+Sys.Mvc.AjaxContext.prototype={$0:0,$1:null,$2:null,$3:null,$4:null,get_data:function(){if(this.$2){return this.$2.get_responseData();}else{return null;}},get_insertionMode:function(){return this.$0;},get_loadingElement:function(){return this.$1;},get_response:function(){return this.$2;},set_response:function(value){this.$2=value;return value;},get_request:function(){return this.$3;},get_updateTarget:function(){return this.$4;}}
+Sys.Mvc.AsyncHyperlink=function(){}
+Sys.Mvc.AsyncHyperlink.handleClick=function(anchor,evt,ajaxOptions){evt.preventDefault();Sys.Mvc.MvcHelpers.$1(anchor.href,'post','',anchor,ajaxOptions);}
+Sys.Mvc.MvcHelpers=function(){}
+Sys.Mvc.MvcHelpers.$0=function($p0){var $0=$p0.elements;var $1=new Sys.StringBuilder();var $2=$0.length;for(var $3=0;$3<$2;$3++){var $4=$0[$3];var $5=$4.name;if(!$5||!$5.length){continue;}var $6=$4.tagName.toUpperCase();if($6==='INPUT'){var $7=$4;var $8=$7.type;if(($8==='text')||($8==='password')||($8==='hidden')||((($8==='checkbox')||($8==='radio'))&&$4.checked)){$1.append(encodeURIComponent($5));$1.append('=');$1.append(encodeURIComponent($7.value));$1.append('&');}}else if($6==='SELECT'){var $9=$4;var $A=$9.options.length;for(var $B=0;$B<$A;$B++){var $C=$9.options[$B];if($C.selected){$1.append(encodeURIComponent($5));$1.append('=');$1.append(encodeURIComponent($C.value));$1.append('&');}}}else if($6==='TEXTAREA'){$1.append(encodeURIComponent($5));$1.append('=');$1.append(encodeURIComponent(($4.value)));$1.append('&');}}return $1.toString();}
+Sys.Mvc.MvcHelpers.$1=function($p0,$p1,$p2,$p3,$p4){if($p4.confirm){if(!confirm($p4.confirm)){return;}}if($p4.url){$p0=$p4.url;}if($p4.httpMethod){$p1=$p4.httpMethod;}if($p2.length>0&&!$p2.endsWith('&')){$p2+='&';}$p2+='X-Requested-With=XMLHttpRequest';var $0='';if($p1.toUpperCase()==='GET'||$p1.toUpperCase()==='DELETE'){if($p0.indexOf('?')>-1){if(!$p0.endsWith('&')){$p0+='&';}$p0+=$p2;}else{$p0+='?';$p0+=$p2;}}else{$0=$p2;}var $1=new Sys.Net.WebRequest();$1.set_url($p0);$1.set_httpVerb($p1);$1.set_body($0);if($p1.toUpperCase()==='PUT'){$1.get_headers()['Content-Type']='application/x-www-form-urlencoded;';}$1.get_headers()['X-Requested-With']='XMLHttpRequest';var $2=null;if($p4.updateTargetId){$2=$get($p4.updateTargetId);}var $3=null;if($p4.loadingElementId){$3=$get($p4.loadingElementId);}var $4=new Sys.Mvc.AjaxContext($1,$2,$3,$p4.insertionMode);var $5=true;if($p4.onBegin){$5=$p4.onBegin($4)!==false;}if($3){Sys.UI.DomElement.setVisible($4.get_loadingElement(),true);}if($5){$1.add_completed(Function.createDelegate(null,function($p1_0){
+Sys.Mvc.MvcHelpers.$2($1,$p4,$4);}));$1.invoke();}}
+Sys.Mvc.MvcHelpers.$2=function($p0,$p1,$p2){$p2.set_response($p0.get_executor());if($p1.onComplete&&$p1.onComplete($p2)===false){return;}var $0=$p2.get_response().get_statusCode();if(($0>=200&&$0<300)||$0===304||$0===1223){if($0!==204&&$0!==304&&$0!==1223){var $1=$p2.get_response().getResponseHeader('Content-Type');if(($1)&&($1.indexOf('application/x-javascript')!==-1)){eval($p2.get_data());}else{Sys.Mvc.MvcHelpers.updateDomElement($p2.get_updateTarget(),$p2.get_insertionMode(),$p2.get_data());}}if($p1.onSuccess){$p1.onSuccess($p2);}}else{if($p1.onFailure){$p1.onFailure($p2);}}if($p2.get_loadingElement()){Sys.UI.DomElement.setVisible($p2.get_loadingElement(),false);}}
+Sys.Mvc.MvcHelpers.updateDomElement=function(target,insertionMode,content){if(target){switch(insertionMode){case 0:target.innerHTML=content;break;case 1:if(content&&content.length>0){target.innerHTML=content+target.innerHTML.trimStart();}break;case 2:if(content&&content.length>0){target.innerHTML=target.innerHTML.trimEnd()+content;}break;}}}
+Sys.Mvc.AsyncForm=function(){}
+Sys.Mvc.AsyncForm.handleSubmit=function(form,evt,ajaxOptions){evt.preventDefault();var $0=Sys.Mvc.MvcHelpers.$0(form);Sys.Mvc.MvcHelpers.$1(form.action,form.method||'post',$0,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/Backup/NerdDinnerAsp/Scripts/jquery-1.2.6-vsdoc.js b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/jquery-1.2.6-vsdoc.js
new file mode 100644
index 0000000..cb9e0a7
--- /dev/null
+++ b/aspclassiccompiler/Backup/NerdDinnerAsp/Scripts/jquery-1.2.6-vsdoc.js
@@ -0,0 +1,5367 @@
+/*
+ * 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.2.6a
+ */
+
+(function(){
+/*
+ * jQuery 1.2.6 - New Wave Javascript
+ *
+ * Copyright (c) 2008 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: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
+ * $Rev: 5685 $
+ */
+
+// Map over jQuery in case of overwrite
+var _jQuery = window.jQuery,
+// Map over the $ in case of overwrite
+ _$ = window.$;
+
+var 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 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)
+var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,
+
+// Is it a simple selector
+ isSimple = /^.[^:#\[\.]*$/,
+
+// Will speed up references to undefined, and allows munging its name.
+ undefined;
+
+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;
+ 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] );
+
+ // Make sure an element was located
+ if ( elem ){
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id != match[3] )
+ return jQuery().find( selector );
+
+ // Otherwise, we inject the element directly into the jQuery object
+ return jQuery( elem );
+ }
+ selector = [];
+ }
+
+ // 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 )[ jQuery.fn.ready ? "ready" : "load" ]( selector );
+
+ return this.setArray(jQuery.makeArray(selector));
+ },
+
+ // The current version of jQuery being used
+ jquery: "1.2.6",
+
+ // The number of elements contained in the matched element set
+ size: function() {
+ ///
+ /// The number of elements currently matched.
+ /// Part of Core
+ ///
+ ///
+
+ return this.length;
+ },
+
+ // The number of elements contained in the matched element set
+ length: 0,
+
+ // 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
+ jQuery.makeArray( 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 ) {
+ ///
+ /// 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;
+
+ // 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
+ ///
+
+ var ret = -1;
+
+ // 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 ( name.constructor == 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
+ jQuery( html, this[0].ownerDocument )
+ .clone()
+ .insertBefore( this[0] )
+ .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, false, 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, 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, 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, true, 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( [] );
+ },
+
+ 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.
+ ///
+ ///
+
+ var elems = jQuery.map(this, function(elem){
+ return jQuery.find( selector, elem );
+ });
+
+ return this.pushStack( /[^+>] [^+>]/.test( selector ) || selector.indexOf("..") > -1 ?
+ jQuery.unique( elems ) :
+ elems );
+ },
+
+ 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.browser.msie && !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 clone = this.cloneNode(true),
+ container = document.createElement("div");
+ container.appendChild(clone);
+ return jQuery.clean([container.innerHTML])[0];
+ } else
+ return this.cloneNode(true);
+ });
+
+ // Need to set the expando to null on the cloned set if it exists
+ // removeData doesn't work here, IE removes it from the original as well
+ // this is primarily for IE but the data expando shouldn't be copied over in any browser
+ var clone = ret.find("*").andSelf().each(function(){
+ if ( this[ expando ] != undefined )
+ this[ expando ] = null;
+ });
+
+ // Copy the events from the original to the clone
+ if ( events === true )
+ this.find("*").andSelf().each(function(i){
+ if (this.nodeType == 3)
+ return;
+ var events = jQuery.data( this, "events" );
+
+ for ( var type in events )
+ for ( var handler in events[ type ] )
+ jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data );
+ });
+
+ // 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, this ) );
+ },
+
+ 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 ( selector.constructor == String )
+ // test special case where just one selector is passed in
+ if ( isSimple.test( selector ) )
+ return this.pushStack( jQuery.multiFilter( selector, this, true ) );
+ 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 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 ) {
+
+ if ( this.length ) {
+ var elem = this[0];
+
+ // 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.browser.msie && !option.attributes.value.specified ? option.text : option.value;
+
+ // 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
+ } else
+ return (this[0].value || "").replace(/\r/g, "");
+
+ }
+
+ return undefined;
+ }
+
+ if( value.constructor == Number )
+ value += '';
+
+ return this.each(function(){
+ if ( this.nodeType != 1 )
+ return;
+
+ if ( value.constructor == Array && /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 :
+ 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));
+ },
+
+ 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 );
+ },
+
+ data: function( key, value ){
+ ///
+ /// Stores the value in the named spot and also returns the value.
+ ///
+ /// Name of the data to store
+ /// The value to be stored.
+ /// The value stored in the named spot.
+
+ var parts = key.split(".");
+ parts[1] = parts[1] ? "." + parts[1] : "";
+
+ if ( value === undefined ) {
+ var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+ if ( data === undefined && this.length )
+ data = jQuery.data( this[0], key );
+
+ return data === undefined && parts[1] ?
+ this.data( parts[0] ) :
+ data;
+ } else
+ return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
+ jQuery.data( this, key, value );
+ });
+ },
+
+ removeData: function( key ){
+ ///
+ /// Internal method: Removes the expando attribute that allows data storage on an element.
+ ///
+ /// Element to delete the data store from.
+
+ return this.each(function(){
+ jQuery.removeData( this, key );
+ });
+ },
+
+ domManip: function( args, table, reverse, 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
+ ///
+
+ var clone = this.length > 1, elems;
+
+ return this.each(function(){
+ if ( !elems ) {
+ elems = jQuery.clean( args, this.ownerDocument );
+
+ if ( reverse )
+ elems.reverse();
+ }
+
+ var obj = this;
+
+ if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
+ obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") );
+
+ var scripts = jQuery( [] );
+
+ jQuery.each(elems, function(){
+ var elem = clone ?
+ jQuery( this ).clone( true )[0] :
+ this;
+
+ // execute all scripts after the elements have been injected
+ if ( jQuery.nodeName( elem, "script" ) )
+ scripts = scripts.add( elem );
+ else {
+ // Remove any inner scripts for later evaluation
+ if ( elem.nodeType == 1 )
+ scripts = scripts.add( jQuery( "script", elem ).remove() );
+
+ // Inject the elements into the document
+ callback.call( obj, elem );
+ }
+ });
+
+ scripts.each( evalScript );
+ });
+ }
+};
+
+// 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 ( target.constructor == 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" && typeof target != "function" )
+ 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;
+};
+
+var expando = "jQuery" + now(), uuid = 0, windowData = {},
+ // exclude the following css properties to add px
+ exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
+ // cache defaultView
+ defaultView = document.defaultView || {};
+
+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 this function.
+ isFunction: function( fn ) {
+ ///
+ /// Determines if the parameter passed is a function.
+ ///
+ /// The object to check
+ /// True if the parameter is a function; otherwise false.
+
+ return !!fn && typeof fn != "string" && !fn.nodeName &&
+ fn.constructor != Array && /^[\s[]?function/.test( fn + "" );
+ },
+
+ // 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.documentElement && !elem.body ||
+ elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
+ },
+
+ // Evalulates a script in a global context
+ globalEval: function( data ) {
+ ///
+ /// Internally evaluates a script in a global context.
+ ///
+ ///
+
+ data = jQuery.trim( data );
+
+ if ( 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.browser.msie )
+ script.text = data;
+ else
+ script.appendChild( document.createTextNode( 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();
+ },
+
+ cache: {},
+
+ data: function( elem, name, data ) {
+ ///
+ /// Stores the value in the named spot and also returns the value.
+ ///
+ /// The element for which to store the data
+ /// The name of the data store
+ /// The data to store
+ /// The data parameter that was stored.
+
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ];
+
+ // Compute a unique ID for the element
+ if ( !id )
+ id = elem[ expando ] = ++uuid;
+
+ // Only generate the data cache if we're
+ // trying to access or manipulate it
+ if ( name && !jQuery.cache[ id ] )
+ jQuery.cache[ id ] = {};
+
+ // Prevent overriding the named cache with undefined values
+ if ( data !== undefined )
+ jQuery.cache[ id ][ name ] = data;
+
+ // Return the named cache data, or the ID for the element
+ return name ?
+ jQuery.cache[ id ][ name ] :
+ id;
+ },
+
+ removeData: function( elem, name ) {
+ ///
+ /// Removes just this one named data store.
+ ///
+ /// The element to delete the named data store property from
+ /// The name of the data store property to remove
+
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ];
+
+ // If we want to remove a specific section of the element's data
+ if ( name ) {
+ if ( jQuery.cache[ id ] ) {
+ // Remove the section of cache data
+ delete jQuery.cache[ id ][ name ];
+
+ // If we've removed all the data, remove the element's cache
+ name = "";
+
+ for ( name in jQuery.cache[ id ] )
+ break;
+
+ if ( !name )
+ jQuery.removeData( elem );
+ }
+
+ // Otherwise, we want to remove all of the element's data
+ } else {
+ // Clean up the element expando
+ try {
+ delete elem[ expando ];
+ } catch(e){
+ // IE has trouble directly removing the expando
+ // but it's ok with using removeAttribute
+ if ( elem.removeAttribute )
+ elem.removeAttribute( expando );
+ }
+
+ // Completely remove the data cache
+ delete jQuery.cache[ id ];
+ }
+ },
+
+ // 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 value && value.constructor == 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 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 ) {
+ ///
+ /// 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;
+ var padding = 0, border = 0;
+ jQuery.each( which, function() {
+ padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
+ border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
+ });
+ val -= Math.round(padding + border);
+ }
+
+ if ( jQuery(elem).is(":visible") )
+ getWH();
+ else
+ jQuery.swap( elem, props, getWH );
+
+ return Math.max(0, 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;
+
+ // A helper method for determining if an element's values are broken
+ function color( elem ) {
+ if ( !jQuery.browser.safari )
+ return false;
+
+ // defaultView is cached
+ var ret = defaultView.getComputedStyle( elem, null );
+ return !ret || ret.getPropertyValue("color") == "";
+ }
+
+ // We need to handle opacity special in IE
+ if ( name == "opacity" && jQuery.browser.msie ) {
+ ret = jQuery.attr( style, "opacity" );
+
+ return ret == "" ?
+ "1" :
+ ret;
+ }
+ // Opera sometimes will give the wrong display answer, this fixes it, see #2037
+ if ( jQuery.browser.opera && name == "display" ) {
+ var save = style.outline;
+ style.outline = "0 solid black";
+ style.outline = save;
+ }
+
+ // 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 && !color( elem ) )
+ ret = computedStyle.getPropertyValue( name );
+
+ // If the element isn't reporting its values properly in Safari
+ // then some display: none elements are involved
+ else {
+ var swap = [], stack = [], a = elem, i = 0;
+
+ // Locate all of the parent display: none elements
+ for ( ; a && color(a); a = a.parentNode )
+ stack.unshift(a);
+
+ // Go through and make them visible, but in reverse
+ // (It would be better if we knew the exact display type that they had)
+ for ( ; i < stack.length; i++ )
+ if ( color( stack[ i ] ) ) {
+ swap[ i ] = stack[ i ].style.display;
+ stack[ i ].style.display = "block";
+ }
+
+ // Since we flip the display style, we have to handle that
+ // one special, otherwise get the value
+ ret = name == "display" && swap[ stack.length - 1 ] != null ?
+ "none" :
+ ( computedStyle && computedStyle.getPropertyValue( name ) ) || "";
+
+ // Finally, revert the display styles back
+ for ( i = 0; i < swap.length; i++ )
+ if ( swap[ i ] != null )
+ stack[ i ].style.display = swap[ i ];
+ }
+
+ // 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 ) {
+ ///
+ /// This method is internal only.
+ ///
+ ///
+ // This method is undocumented in the jQuery API: http://docs.jquery.com/action/edit/Internals/jQuery.clean
+
+ var ret = [];
+ 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;
+
+ jQuery.each(elems, function(i, elem){
+ if ( !elem )
+ return;
+
+ if ( elem.constructor == Number )
+ elem += '';
+
+ // 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 = jQuery.trim( elem ).toLowerCase(), div = context.createElement("div");
+
+ var wrap =
+ // option or optgroup
+ !tags.indexOf("", "" ] ||
+
+ !tags.indexOf("", "" ] ||
+
+ tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
+ [ 1, "" ] ||
+
+ !tags.indexOf("", " " ] ||
+
+ // matched above
+ (!tags.indexOf(" ", " " ] ||
+
+ !tags.indexOf("", " " ] ||
+
+ // IE can't serialize and
+
+
+
+
+
+ <% Html.RenderPartial("header") %>
+
+
+ <% Html.RenderPartial("DinnerForm") %>
+
+
+
+