diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e645270 --- /dev/null +++ b/.gitignore @@ -0,0 +1,353 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ diff --git a/Kivinjari.sln b/Kivinjari.sln new file mode 100644 index 0000000..61aa32d --- /dev/null +++ b/Kivinjari.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kivinjari", "Kivinjari\Kivinjari.csproj", "{795A32D4-AE3E-46AF-A30E-E16495891170}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {795A32D4-AE3E-46AF-A30E-E16495891170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {795A32D4-AE3E-46AF-A30E-E16495891170}.Debug|Any CPU.Build.0 = Debug|Any CPU + {795A32D4-AE3E-46AF-A30E-E16495891170}.Debug|x86.ActiveCfg = Debug|x86 + {795A32D4-AE3E-46AF-A30E-E16495891170}.Debug|x86.Build.0 = Debug|x86 + {795A32D4-AE3E-46AF-A30E-E16495891170}.Release|Any CPU.ActiveCfg = Release|Any CPU + {795A32D4-AE3E-46AF-A30E-E16495891170}.Release|Any CPU.Build.0 = Release|Any CPU + {795A32D4-AE3E-46AF-A30E-E16495891170}.Release|x86.ActiveCfg = Release|x86 + {795A32D4-AE3E-46AF-A30E-E16495891170}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {02B50B69-B4D5-4554-B6B2-349BD4FD5A7B} + EndGlobalSection +EndGlobal diff --git a/Kivinjari/App.config b/Kivinjari/App.config new file mode 100644 index 0000000..8227adb --- /dev/null +++ b/Kivinjari/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Kivinjari/BbMainWindow.Designer.cs b/Kivinjari/BbMainWindow.Designer.cs new file mode 100644 index 0000000..3bc030c --- /dev/null +++ b/Kivinjari/BbMainWindow.Designer.cs @@ -0,0 +1,40 @@ +namespace Kivinjari +{ + partial class BbMainWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Text = "TestApp"; + this.Icon = Resources.DefaultIcon; + } + + #endregion + } +} + diff --git a/Kivinjari/BbMainWindow.cs b/Kivinjari/BbMainWindow.cs new file mode 100644 index 0000000..c1994bc --- /dev/null +++ b/Kivinjari/BbMainWindow.cs @@ -0,0 +1,26 @@ +using EasyTabs; + +namespace Kivinjari +{ + public partial class BbMainWindow : TitleBarTabs + { + public BbMainWindow() + { + InitializeComponent(); + AeroPeekEnabled = true; + TabRenderer = new ChromeTabRenderer(this); + Icon = Resources.DefaultIcon; + } + + public override TitleBarTab CreateTab() + { + return new TitleBarTab(this) + { + Content = new CcTabWindow("") + { + Text = "New Tab" + } + }; + } + } +} diff --git a/Kivinjari/CcTabWindow.Designer.cs b/Kivinjari/CcTabWindow.Designer.cs new file mode 100644 index 0000000..7d3a9eb --- /dev/null +++ b/Kivinjari/CcTabWindow.Designer.cs @@ -0,0 +1,200 @@ +namespace Kivinjari +{ + partial class CcTabWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CcTabWindow)); + this.toolbarBackground = new System.Windows.Forms.Panel(); + this.BtnHome = new System.Windows.Forms.PictureBox(); + this.BtnRefresh = new System.Windows.Forms.PictureBox(); + this.BtnForward = new System.Windows.Forms.PictureBox(); + this.BtnBack = new System.Windows.Forms.PictureBox(); + this.TxtAddress = new System.Windows.Forms.TextBox(); + this.urlBorder = new System.Windows.Forms.Panel(); + this.urlBackground = new System.Windows.Forms.Panel(); + this.webPanel = new System.Windows.Forms.Panel(); + this.toolbarBackground.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.BtnHome)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.BtnRefresh)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.BtnForward)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.BtnBack)).BeginInit(); + this.urlBorder.SuspendLayout(); + this.SuspendLayout(); + // + // toolbarBackground + // + this.toolbarBackground.BackgroundImage = global::Kivinjari.Resources.ToolbarBackground; + this.toolbarBackground.Controls.Add(this.BtnHome); + this.toolbarBackground.Controls.Add(this.BtnRefresh); + this.toolbarBackground.Controls.Add(this.BtnForward); + this.toolbarBackground.Controls.Add(this.BtnBack); + this.toolbarBackground.Controls.Add(this.TxtAddress); + this.toolbarBackground.Controls.Add(this.urlBorder); + this.toolbarBackground.Dock = System.Windows.Forms.DockStyle.Top; + this.toolbarBackground.Location = new System.Drawing.Point(0, 0); + this.toolbarBackground.Name = "toolbarBackground"; + this.toolbarBackground.Size = new System.Drawing.Size(665, 36); + this.toolbarBackground.TabIndex = 2; + // + // BtnHome + // + this.BtnHome.BackColor = System.Drawing.Color.Transparent; + this.BtnHome.Image = global::Kivinjari.Resources.Startpage; + this.BtnHome.Location = new System.Drawing.Point(99, 5); + this.BtnHome.Margin = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.BtnHome.Name = "BtnHome"; + this.BtnHome.Size = new System.Drawing.Size(27, 27); + this.BtnHome.TabIndex = 4; + this.BtnHome.TabStop = false; + this.BtnHome.Click += new System.EventHandler(this.BtnHome_Click); + this.BtnHome.MouseEnter += new System.EventHandler(this.BtnHome_MouseEnter); + this.BtnHome.MouseLeave += new System.EventHandler(this.BtnHome_MouseLeave); + // + // BtnRefresh + // + this.BtnRefresh.BackColor = System.Drawing.Color.Transparent; + this.BtnRefresh.Image = global::Kivinjari.Resources.refresh; + this.BtnRefresh.Location = new System.Drawing.Point(68, 5); + this.BtnRefresh.Margin = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.BtnRefresh.Name = "BtnRefresh"; + this.BtnRefresh.Size = new System.Drawing.Size(27, 27); + this.BtnRefresh.TabIndex = 4; + this.BtnRefresh.TabStop = false; + this.BtnRefresh.Click += new System.EventHandler(this.BtnRefresh_Click); + this.BtnRefresh.MouseEnter += new System.EventHandler(this.BtnRefresh_MouseEnter); + this.BtnRefresh.MouseLeave += new System.EventHandler(this.BtnRefresh_MouseLeave); + // + // BtnForward + // + this.BtnForward.BackColor = System.Drawing.Color.Transparent; + this.BtnForward.Image = global::Kivinjari.Resources.ForwardActive; + this.BtnForward.Location = new System.Drawing.Point(37, 5); + this.BtnForward.Margin = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.BtnForward.Name = "BtnForward"; + this.BtnForward.Size = new System.Drawing.Size(27, 27); + this.BtnForward.TabIndex = 3; + this.BtnForward.TabStop = false; + this.BtnForward.Click += new System.EventHandler(this.BtnForward_Click); + this.BtnForward.MouseEnter += new System.EventHandler(this.BtnForward_MouseEnter); + this.BtnForward.MouseLeave += new System.EventHandler(this.BtnForward_MouseLeave); + // + // BtnBack + // + this.BtnBack.BackColor = System.Drawing.Color.Transparent; + this.BtnBack.Image = global::Kivinjari.Resources.BackActive; + this.BtnBack.Location = new System.Drawing.Point(6, 5); + this.BtnBack.Margin = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.BtnBack.Name = "BtnBack"; + this.BtnBack.Size = new System.Drawing.Size(27, 27); + this.BtnBack.TabIndex = 2; + this.BtnBack.TabStop = false; + this.BtnBack.Click += new System.EventHandler(this.BtnBack_Click); + this.BtnBack.MouseEnter += new System.EventHandler(this.BtnBack_MouseEnter); + this.BtnBack.MouseLeave += new System.EventHandler(this.BtnBack_MouseLeave); + // + // TxtAddress + // + this.TxtAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TxtAddress.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.TxtAddress.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TxtAddress.Location = new System.Drawing.Point(141, 8); + this.TxtAddress.Margin = new System.Windows.Forms.Padding(9); + this.TxtAddress.Name = "TxtAddress"; + this.TxtAddress.Size = new System.Drawing.Size(515, 19); + this.TxtAddress.TabIndex = 0; + this.TxtAddress.Text = "about:blank"; + this.TxtAddress.WordWrap = false; + this.TxtAddress.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtAddress_KeyDown); + // + // urlBorder + // + this.urlBorder.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.urlBorder.BackColor = System.Drawing.Color.Silver; + this.urlBorder.Controls.Add(this.urlBackground); + this.urlBorder.ForeColor = System.Drawing.Color.Silver; + this.urlBorder.Location = new System.Drawing.Point(131, 5); + this.urlBorder.Name = "urlBorder"; + this.urlBorder.Size = new System.Drawing.Size(530, 26); + this.urlBorder.TabIndex = 1; + // + // urlBackground + // + this.urlBackground.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.urlBackground.BackColor = System.Drawing.Color.White; + this.urlBackground.ForeColor = System.Drawing.Color.Silver; + this.urlBackground.Location = new System.Drawing.Point(1, 1); + this.urlBackground.Name = "urlBackground"; + this.urlBackground.Size = new System.Drawing.Size(529, 24); + this.urlBackground.TabIndex = 2; + // + // webPanel + // + this.webPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.webPanel.Location = new System.Drawing.Point(0, 36); + this.webPanel.Name = "webPanel"; + this.webPanel.Size = new System.Drawing.Size(665, 318); + this.webPanel.TabIndex = 3; + // + // CcTabWindow + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(665, 354); + this.Controls.Add(this.webPanel); + this.Controls.Add(this.toolbarBackground); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "CcTabWindow"; + this.Text = "Kivinjari"; + this.toolbarBackground.ResumeLayout(false); + this.toolbarBackground.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.BtnHome)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.BtnRefresh)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.BtnForward)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.BtnBack)).EndInit(); + this.urlBorder.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel toolbarBackground; + private System.Windows.Forms.TextBox TxtAddress; + private System.Windows.Forms.Panel urlBorder; + private System.Windows.Forms.Panel urlBackground; + private System.Windows.Forms.PictureBox BtnBack; + private System.Windows.Forms.PictureBox BtnForward; + private System.Windows.Forms.Panel webPanel; + private System.Windows.Forms.PictureBox BtnHome; + private System.Windows.Forms.PictureBox BtnRefresh; + } +} \ No newline at end of file diff --git a/Kivinjari/CcTabWindow.cs b/Kivinjari/CcTabWindow.cs new file mode 100644 index 0000000..91baa30 --- /dev/null +++ b/Kivinjari/CcTabWindow.cs @@ -0,0 +1,183 @@ +using System; +using System.IO; +using System.Text.RegularExpressions; +using System.Windows.Forms; +using CefSharp; +using CefSharp.WinForms; +using EasyTabs; + +namespace Kivinjari +{ + public partial class CcTabWindow : Form + { + private string appPath = Path.GetDirectoryName(Application.ExecutablePath) + @"\"; + ChromiumWebBrowser webBrowser; + public static CcTabWindow Instance; + + public static string Branding = "Kivinjari"; + public static string UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"; + public static string AcceptLanguage = "en-US,en;q=0.9"; + public static string HomepageURL = "https://www.google.com"; + public static string NewTabURL = "about:blank"; + public static string InternalURL = "kivinjari"; + public static string DownloadsURL = "kivinjari://helpers/downloads.html"; + public static string FileNotFoundURL = "kivinjari://helpers/errors/notFound.html"; + public static string CannotConnectURL = "kivinjari://helpers/errors/cannotConnect.html"; + public static string SearchURL = "https://www.google.com/search?q="; + + public bool WebSecurity = true; + public bool CrossDomainSecurity = true; + public bool WebGL = true; + public bool ApplicationCache = true; + + protected TitleBarTabs ParentTabs + { + get + { + return (ParentForm as TitleBarTabs); + } + } + + public CcTabWindow(string Url) + { + InitializeComponent(); + + string finalUrl = Url == "" ? NewTabURL : Url; + TxtAddress.Text = finalUrl; + webBrowser = new ChromiumWebBrowser(finalUrl); + webPanel.Controls.Add(webBrowser); + + webBrowser.TitleChanged += Browser_TitleChanged; + webBrowser.LoadingStateChanged += Browser_LoadingStateChanged; + } + + private void Browser_TitleChanged(object sender, TitleChangedEventArgs e) + { + InvokeIfNeeded(() => { + ChromiumWebBrowser browser = (ChromiumWebBrowser)sender; + string browserTitle = e.Title; + if (browserTitle != NewTabURL) + { + Text = e.Title; + } + }); + } + + private void Browser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e) + { + EnableBackButton(e.CanGoBack); + EnableForwardButton(e.CanGoForward); + + if (e.IsLoading) + { + //Text = "Loading ..."; + } + else + { + // after loaded / stopped + /*InvokeIfNeeded(() => { + BtnRefresh.Visible = true; + BtnStop.Visible = false; + });*/ + } + } + + public void InvokeIfNeeded(Action action) + { + if (this.InvokeRequired) + { + this.BeginInvoke(action); + } + else + { + action.Invoke(); + } + } + + private void EnableBackButton(bool canGoBack) + { + InvokeIfNeeded(() => BtnBack.Enabled = canGoBack); + } + + private void EnableForwardButton(bool canGoForward) + { + InvokeIfNeeded(() => BtnForward.Enabled = canGoForward); + } + + private void TxtAddress_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + string fullUrl = TxtAddress.Text; + if (!Regex.IsMatch(fullUrl, "^[a-zA-Z0-9]+\\://")) fullUrl = "http://" + fullUrl; + webBrowser.Load(fullUrl); + + // im handling this + e.Handled = true; + e.SuppressKeyPress = true; + + // defocus from url textbox + this.Focus(); + } + } + + private void BtnBack_Click(object sender, EventArgs e) + { + webBrowser.Back(); + } + + private void BtnForward_Click(object sender, EventArgs e) + { + webBrowser.Forward(); + } + + private void BtnRefresh_Click(object sender, EventArgs e) + { + webBrowser.Refresh(); + } + + private void BtnHome_Click(object sender, EventArgs e) + { + webBrowser.Load("about:blank"); + } + private void BtnBack_MouseEnter(object sender, EventArgs e) + { + BtnBack.BackgroundImage = Resources.ButtonHoverBackground; + } + + private void BtnBack_MouseLeave(object sender, EventArgs e) + { + BtnBack.BackgroundImage = null; + } + + private void BtnForward_MouseEnter(object sender, EventArgs e) + { + BtnForward.BackgroundImage = Resources.ButtonHoverBackground; + } + + private void BtnForward_MouseLeave(object sender, EventArgs e) + { + BtnForward.BackgroundImage = null; + } + + private void BtnRefresh_MouseEnter(object sender, EventArgs e) + { + BtnRefresh.BackgroundImage = Resources.ButtonHoverBackground; + } + + private void BtnRefresh_MouseLeave(object sender, EventArgs e) + { + BtnRefresh.BackgroundImage = null; + } + + private void BtnHome_MouseEnter(object sender, EventArgs e) + { + BtnHome.BackgroundImage = Resources.ButtonHoverBackground; + } + + private void BtnHome_MouseLeave(object sender, EventArgs e) + { + BtnHome.BackgroundImage = null; + } + } +} diff --git a/Kivinjari/CcTabWindow.resx b/Kivinjari/CcTabWindow.resx new file mode 100644 index 0000000..f41fc37 --- /dev/null +++ b/Kivinjari/CcTabWindow.resx @@ -0,0 +1,554 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/Kivinjari/Kivinjari.csproj b/Kivinjari/Kivinjari.csproj new file mode 100644 index 0000000..da1e2bd --- /dev/null +++ b/Kivinjari/Kivinjari.csproj @@ -0,0 +1,237 @@ + + + + + + + + + Debug + AnyCPU + {795A32D4-AE3E-46AF-A30E-E16495891170} + WinExe + Kivinjari + Kivinjari + v4.5.2 + 512 + true + + + + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + kivinjari.ico + + + Kivinjari.Program + + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + 7.3 + prompt + MinimumRecommendedRules.ruleset + true + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + 7.3 + prompt + MinimumRecommendedRules.ruleset + true + + + + ..\packages\EasyTabs.1.3.3.0\lib\net40\EasyTabs.dll + + + ..\packages\EasyTabs.1.3.3.0\lib\net40\Microsoft.WindowsAPICodePack.dll + + + ..\packages\EasyTabs.1.3.3.0\lib\net40\Microsoft.WindowsAPICodePack.Shell.dll + + + + + + + + + + + + + + ..\..\libs\Win32Interop.Dwmapi.dll + + + ..\..\libs\Win32Interop.Gdi32.dll + + + ..\..\libs\Win32Interop.Kernel32.dll + + + ..\..\libs\Win32Interop.User32.dll + + + ..\..\libs\Win32Interop.Uxtheme.dll + + + + + Form + + + BbMainWindow.cs + + + Form + + + CcTabWindow.cs + + + True + True + Resources.resx + + + + + CcTabWindow.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + + + \ No newline at end of file diff --git a/Kivinjari/Program.cs b/Kivinjari/Program.cs new file mode 100644 index 0000000..305be68 --- /dev/null +++ b/Kivinjari/Program.cs @@ -0,0 +1,35 @@ +using EasyTabs; +using System; +using System.Windows.Forms; + +namespace Kivinjari +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + BbMainWindow kivinjari = new BbMainWindow(); + + kivinjari.Tabs.Add(new TitleBarTab(kivinjari) + { + Content = new CcTabWindow("") + { + Text = "New Tab" + } + }); + kivinjari.SelectedTabIndex = 0; + + TitleBarTabsApplicationContext applicationContext = new TitleBarTabsApplicationContext(); + applicationContext.Start(kivinjari); + + Application.Run(applicationContext); + } + } +} diff --git a/Kivinjari/Properties/AssemblyInfo.cs b/Kivinjari/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bde786b --- /dev/null +++ b/Kivinjari/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +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("Kivinjari")] +[assembly: AssemblyDescription("Kivinjari")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("KaziBora")] +[assembly: AssemblyProduct("Kivinjari")] +[assembly: AssemblyCopyright("Copyright © 2020 KaziBora")] +[assembly: AssemblyTrademark("KaziBora")] +[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("795a32d4-ae3e-46af-a30e-e16495891170")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("0.0.1.5")] +[assembly: AssemblyFileVersion("0.0.1.5")] diff --git a/Kivinjari/Properties/Resources.Designer.cs b/Kivinjari/Properties/Resources.Designer.cs new file mode 100644 index 0000000..47571f0 --- /dev/null +++ b/Kivinjari/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Kivinjari.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Kivinjari.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Kivinjari/Properties/Resources.resx b/Kivinjari/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Kivinjari/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Kivinjari/Properties/Settings.Designer.cs b/Kivinjari/Properties/Settings.Designer.cs new file mode 100644 index 0000000..b9f2789 --- /dev/null +++ b/Kivinjari/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Kivinjari.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Kivinjari/Properties/Settings.settings b/Kivinjari/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Kivinjari/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Kivinjari/Resources.Designer.cs b/Kivinjari/Resources.Designer.cs new file mode 100644 index 0000000..2ecf6d9 --- /dev/null +++ b/Kivinjari/Resources.Designer.cs @@ -0,0 +1,173 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Kivinjari { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Kivinjari.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap BackActive { + get { + object obj = ResourceManager.GetObject("BackActive", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap BookmarksActive { + get { + object obj = ResourceManager.GetObject("BookmarksActive", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Border { + get { + object obj = ResourceManager.GetObject("Border", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ButtonHoverBackground { + get { + object obj = ResourceManager.GetObject("ButtonHoverBackground", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap CloseActive { + get { + object obj = ResourceManager.GetObject("CloseActive", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon DefaultIcon { + get { + object obj = ResourceManager.GetObject("DefaultIcon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ForwardActive { + get { + object obj = ResourceManager.GetObject("ForwardActive", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap refresh { + get { + object obj = ResourceManager.GetObject("refresh", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Startpage { + get { + object obj = ResourceManager.GetObject("Startpage", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ToolbarBackground { + get { + object obj = ResourceManager.GetObject("ToolbarBackground", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ToolsActive { + get { + object obj = ResourceManager.GetObject("ToolsActive", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Kivinjari/Resources.resx b/Kivinjari/Resources.resx new file mode 100644 index 0000000..28bf527 --- /dev/null +++ b/Kivinjari/Resources.resx @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\CloseActive.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\ToolsActive.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\ButtonHoverBackground.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\BackActive.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\ForwardActive.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Border.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\BookmarksActive.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\DefaultIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\ToolbarBackground.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Startpage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Kivinjari/Resources/BackActive.png b/Kivinjari/Resources/BackActive.png new file mode 100644 index 0000000..01416e8 Binary files /dev/null and b/Kivinjari/Resources/BackActive.png differ diff --git a/Kivinjari/Resources/BookmarksActive.png b/Kivinjari/Resources/BookmarksActive.png new file mode 100644 index 0000000..00be6bd Binary files /dev/null and b/Kivinjari/Resources/BookmarksActive.png differ diff --git a/Kivinjari/Resources/Border.png b/Kivinjari/Resources/Border.png new file mode 100644 index 0000000..376cd70 Binary files /dev/null and b/Kivinjari/Resources/Border.png differ diff --git a/Kivinjari/Resources/ButtonHoverBackground.png b/Kivinjari/Resources/ButtonHoverBackground.png new file mode 100644 index 0000000..5570b6f Binary files /dev/null and b/Kivinjari/Resources/ButtonHoverBackground.png differ diff --git a/Kivinjari/Resources/CloseActive.png b/Kivinjari/Resources/CloseActive.png new file mode 100644 index 0000000..e06145b Binary files /dev/null and b/Kivinjari/Resources/CloseActive.png differ diff --git a/Kivinjari/Resources/DefaultIcon.ico b/Kivinjari/Resources/DefaultIcon.ico new file mode 100644 index 0000000..d198ab6 Binary files /dev/null and b/Kivinjari/Resources/DefaultIcon.ico differ diff --git a/Kivinjari/Resources/ForwardActive.png b/Kivinjari/Resources/ForwardActive.png new file mode 100644 index 0000000..8b3b9b8 Binary files /dev/null and b/Kivinjari/Resources/ForwardActive.png differ diff --git a/Kivinjari/Resources/Kivinjari.png b/Kivinjari/Resources/Kivinjari.png new file mode 100644 index 0000000..1cb2a38 Binary files /dev/null and b/Kivinjari/Resources/Kivinjari.png differ diff --git a/Kivinjari/Resources/Refresh.png b/Kivinjari/Resources/Refresh.png new file mode 100644 index 0000000..fa233cf Binary files /dev/null and b/Kivinjari/Resources/Refresh.png differ diff --git a/Kivinjari/Resources/Startpage.png b/Kivinjari/Resources/Startpage.png new file mode 100644 index 0000000..2bdb7fc Binary files /dev/null and b/Kivinjari/Resources/Startpage.png differ diff --git a/Kivinjari/Resources/ToolbarBackground.png b/Kivinjari/Resources/ToolbarBackground.png new file mode 100644 index 0000000..12e4715 Binary files /dev/null and b/Kivinjari/Resources/ToolbarBackground.png differ diff --git a/Kivinjari/Resources/ToolsActive.png b/Kivinjari/Resources/ToolsActive.png new file mode 100644 index 0000000..dd4fdaf Binary files /dev/null and b/Kivinjari/Resources/ToolsActive.png differ diff --git a/Kivinjari/helpers/action_link.css b/Kivinjari/helpers/action_link.css new file mode 100644 index 0000000..c645cf1 --- /dev/null +++ b/Kivinjari/helpers/action_link.css @@ -0,0 +1,29 @@ +/* Copyright 2015 The Chromium Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +[is='action-link'] { + cursor: pointer; + display: inline-block; + text-decoration: none; +} + +[is='action-link']:hover { + text-decoration: underline; +} + +[is='action-link']:active { + color: rgb(5, 37, 119); + text-decoration: underline; +} + +[is='action-link'][disabled] { + color: #999; + cursor: default; + pointer-events: none; + text-decoration: none; +} + +[is='action-link'].no-outline { + outline: none; +} diff --git a/Kivinjari/helpers/downloads.html b/Kivinjari/helpers/downloads.html new file mode 100644 index 0000000..97d5b36 --- /dev/null +++ b/Kivinjari/helpers/downloads.html @@ -0,0 +1,189 @@ + + + + + Downloads + + + + + +
+

Downloads

+ +
+
+
+ + + + + +
+
+
+
+ + + \ No newline at end of file diff --git a/Kivinjari/helpers/errors/aboutNetError.css b/Kivinjari/helpers/errors/aboutNetError.css new file mode 100644 index 0000000..b998bd8 --- /dev/null +++ b/Kivinjari/helpers/errors/aboutNetError.css @@ -0,0 +1,135 @@ + +@import url("common.css"); + +body { + display: flex; + box-sizing: padding-box; + min-height: 100vh; + padding: 0 48px; + align-items: center; + justify-content: center; +} + +ul, ol { + margin: 0; + padding: 0; + -webkit-margin-start: 1em; +} + +ul > li, ol > li { + margin-bottom: .5em; +} + +ul { + list-style: disc; +} + +#errorPageContainer { + position: relative; + min-width: 320px; + max-width: 512px; +} + +#errorTitleText { + background: url("aboutNetError_info.svg") left 0 no-repeat; + background-size: 1.2em; + -webkit-margin-start: -2em; + -webkit-padding-start: 2em; +} + +#errorTitleText:-webkit-dir(rtl) { + background-position: right 0; +} + +#errorTitleText[sslv3=true] { + background-image: url("aboutNetError_alert.svg"); +} + +#errorTryAgain { + margin-top: 1.2em; + min-width: 150px +} + +#errorContainer { + display: none; +} + +@media (max-width: 675px) { + #errorTitleText { + padding-top: 0; + background-image: none; + -webkit-padding-start: 0; + -webkit-margin-start: 0; + } +} + +/* Pressing the retry button will cause the cursor to flicker from a pointer to + * not-allowed. Override the disabled cursor behaviour since we will never show + * the button disabled as the initial state. */ +button:disabled { + cursor: pointer; +} + +div#certificateErrorReporting { + display: none; + float: right; + /* Align with the "Try Again" button */ + margin-top: 24px; + -webkit-margin-end: 24px; +} + +div#certificateErrorReporting a { + text-decoration: none; +} + +div#certificateErrorReporting a:hover { + text-decoration: underline; +} + +span.downArrow { + display: inline-block; + vertical-align: middle; + font-size: 0.6em; + -webkit-margin-start: 0.5em; + transform: scaleY(0.7); +} + +div#certificateErrorReportingPanel { + /* Hidden until the link is clicked */ + display: none; + background-color: white; + border: 1px lightgray solid; + /* Don't use top padding because the default p style has top padding, and it + * makes the overall div look uneven */ + padding: 0 12px 12px 12px; + box-shadow: 0 0 4px #ddd; + font-size: 0.9em; + position: absolute; + width: 75%; + margin-top: 10px; +} + +div#certificateErrorReportingPanel:-webkit-dir(ltr) { + left: 34%; +} + +div#certificateErrorReportingPanel:-webkit-dir(rtl) { + right: 0; +} + +#errorStatePanel { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + align-content: space-between; + align-items: flex-start; +} + +span#hostname { + font-weight: bold; +} + +#automaticallyReportInFuture { + cursor: pointer; +} diff --git a/Kivinjari/helpers/errors/aboutNetError_alert.svg b/Kivinjari/helpers/errors/aboutNetError_alert.svg new file mode 100644 index 0000000..07bd7f7 --- /dev/null +++ b/Kivinjari/helpers/errors/aboutNetError_alert.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Kivinjari/helpers/errors/aboutNetError_info.svg b/Kivinjari/helpers/errors/aboutNetError_info.svg new file mode 100644 index 0000000..b62a6fc --- /dev/null +++ b/Kivinjari/helpers/errors/aboutNetError_info.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Kivinjari/helpers/errors/cannotConnect.html b/Kivinjari/helpers/errors/cannotConnect.html new file mode 100644 index 0000000..b268543 --- /dev/null +++ b/Kivinjari/helpers/errors/cannotConnect.html @@ -0,0 +1,48 @@ + + + Cannot connect to server + + + + + + + + +
+ + +
+

Cannot connect to server

+
+ + +
+ + +
+

SharpBrowser can't connect to the remote server. You may be disconnected from the internet, or the website may be offline.

+
+ + +
+
    +
  • Ensure that your internet connection is working.
  • +
  • Check to see if the URL is correct
  • +
+
+ + + + +
+ + + + +
+ + + \ No newline at end of file diff --git a/Kivinjari/helpers/errors/common.css b/Kivinjari/helpers/errors/common.css new file mode 100644 index 0000000..990e261 --- /dev/null +++ b/Kivinjari/helpers/errors/common.css @@ -0,0 +1,804 @@ + +@namespace html "http://www.w3.org/1999/xhtml"; +@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; + +html|body, +xul|page, +xul|window { + font: message-box; + -webkit-appearance: none; + background-color: #fbfbfb; + color: #424e5a; +} + +html|body { + font-size: 18px; + font-weight: normal; + margin: 0; +} + +html|h1 { + font-size: 2.5em; + font-weight: lighter; + line-height: 1.2; + color: #333; + margin: 0; + margin-bottom: .5em; +} + +html|hr { + border-style: solid none none none; + border-color: #c1c1c1; +} + +xul|caption { + -webkit-appearance: none; + margin: 0; +} + +xul|caption > xul|checkbox, +xul|caption > xul|label { + font-size: 1.3rem; + font-weight: bold; + line-height: 22px; + margin: 0 !important; +} + +*|*.main-content { + padding-top: 40px; + -webkit-padding-end: 44px; /* compensate the 4px margin of child elements */ + padding-bottom: 48px; + -webkit-padding-start: 48px; + overflow: auto; +} + +xul|prefpane > xul|*.content-box { + overflow: visible; +} + +/* groupboxes */ + +xul|groupbox { + -webkit-appearance: none; + border: none; + margin: 15px 0 0; + -webkit-padding-start: 0; + -webkit-padding-end: 0; + font-size: 1.25rem; +} + +xul|groupbox xul|label, +xul|groupbox xul|description { + /* !important needed to override toolkit !important rule */ + -webkit-margin-start: 0 !important; + -webkit-margin-end: 0 !important; +} + +/* tabpanels and tabs */ + +xul|tabpanels { + -webkit-appearance: none; + font-size: 1.25rem; + line-height: 22px; + border: none; + padding: 0; + background-color: transparent; + color: inherit; +} + +xul|tabs { + margin-bottom: 15px; + border-top: 1px solid #c1c1c1; + border-bottom: 1px solid #c1c1c1; + background-color: #fbfbfb; +} + +xul|*.tabs-left, +xul|*.tabs-right { + border-bottom: none; +} + +xul|tab { + -webkit-appearance: none; + margin-top: 0; + padding: 4px 20px; + min-height: 44px; + color: #424f5a; + background-color: #fbfbfb; + border-width: 0; + transition: background-color 50ms ease 0s; +} + +xul|tab:hover { + background-color: #ebebeb; +} + +xul|tab[selected] { + background-color: #ebebeb; + padding-bottom: 0; /* compensate the 4px border */ + border-bottom: 4px solid #ff9500; +} + +xul|*.tab-text { + font-size: 1.3rem; + line-height: 22px; +} + +/* html buttons */ + +html|button { + padding: 3px; + /* override forms.css */ + font: inherit; +} + +/* xul buttons and menulists */ + +*|button, +xul|colorpicker[type="button"], +xul|menulist { + -webkit-appearance: none; + height: 30px; + color: #333; + line-height: 20px; + border: 1px solid #c1c1c1; + -webkit-border-top-colors: none !important; + -webkit-border-right-colors: none !important; + -webkit-border-bottom-colors: none !important; + -webkit-border-left-colors: none !important; + border-radius: 2px; + background-color: #fbfbfb; +} + +html|button:enabled:hover, +xul|button:not([disabled="true"]):hover, +xul|colorpicker[type="button"]:not([disabled="true"]):hover, +xul|menulist:not([disabled="true"]):hover { + background-color: #ebebeb; +} + +html|button:enabled:hover:active, +xul|button:not([disabled="true"]):hover:active, +xul|colorpicker[type="button"]:not([disabled="true"]):hover:active, +xul|menulist[open="true"]:not([disabled="true"]) { + background-color: #dadada; +} + +html|button:disabled, +xul|button[disabled="true"], +xul|colorpicker[type="button"][disabled="true"], +xul|menulist[disabled="true"] { + cursor: not-allowed; + opacity: 0.5; +} + +*|button.primary { + background-color: #0095dd; + border-color: transparent; + color: #fff; +} + +html|button.primary:enabled:hover, +xul|button.primary:not([disabled="true"]):hover { + background-color: #008acb; +} + +html|button.primary:enabled:hover:active, +xul|button.primary:not([disabled="true"]):hover:active { + background-color: #006b9d; +} + +xul|colorpicker[type="button"] { + padding: 6px; + width: 50px; +} + +xul|button > xul|*.button-box, +xul|menulist > xul|*.menulist-label-box { + padding-right: 10px !important; + padding-left: 10px !important; +} + +xul|menulist > xul|*.menulist-label-box > xul|*.menulist-icon[src] { + -webkit-margin-end: 5px; +} + +xul|button[type="menu"] > xul|*.button-box > xul|*.button-menu-dropmarker { + -webkit-appearance: none; + margin: 1px 0; + -webkit-margin-start: 10px; + padding: 0; + width: 10px; + height: 16px; + border: none; + background-color: transparent; + list-style-image: url("chrome://global/skin/in-content/dropdown.svg#dropdown"); +} + +xul|*.help-button { + min-width: 30px; + border-radius: 2px; + border-width: 0; + background-color: #ffcb00; + background-image: none; + box-shadow: none; + list-style-image: url("chrome://global/skin/in-content/help-glyph.svg"); +} + +xul|*.help-button:not([disabled="true"]):hover { + background-color: #f4c200; + background-image: none; +} + +xul|*.help-button:not([disabled="true"]):hover:active { + background-color: #eaba00; + background-image: none; +} + +xul|*.close-icon > xul|*.button-box, +xul|*.help-button > xul|*.button-box { + padding-top: 0; + padding-bottom: 0; + padding-right: 0 !important; + padding-left: 0 !important; +} + +xul|*.help-button > xul|*.button-box > xul|*.button-icon { + width: 18px; + height: 18px; +} + +xul|*.help-button > xul|*.button-box > xul|*.button-text { + display: none; +} + +xul|*.spinbuttons-button { + -webkit-margin-start: 10px !important; + -webkit-margin-end: 2px !important; +} + +xul|*.spinbuttons-up { + margin-top: 2px !important; + border-radius: 1px 1px 0 0; +} + +xul|*.spinbuttons-down { + margin-bottom: 2px !important; + border-radius: 0 0 1px 1px; +} + +xul|*.spinbuttons-button > xul|*.button-box { + padding: 1px 5px 2px !important; +} + +xul|*.spinbuttons-up > xul|*.button-box > xul|*.button-icon { + list-style-image: url("chrome://global/skin/arrow/arrow-up.gif"); +} + +xul|*.spinbuttons-up[disabled="true"] > xul|*.button-box > xul|*.button-icon { + list-style-image: url("chrome://global/skin/arrow/arrow-up-dis.gif"); +} + +xul|*.spinbuttons-down > xul|*.button-box > xul|*.button-icon { + list-style-image: url("chrome://global/skin/arrow/arrow-dn.gif"); +} + +xul|*.spinbuttons-down[disabled="true"] > xul|*.button-box > xul|*.button-icon { + list-style-image: url("chrome://global/skin/arrow/arrow-dn-dis.gif"); +} + +xul|menulist:not([editable="true"]) > xul|*.menulist-dropmarker { + -webkit-appearance: none; + -webkit-margin-end: 4px; + padding: 0; + border: none; + background-color: transparent; + list-style-image: url("chrome://global/skin/in-content/dropdown.svg#dropdown"); +} + +xul|menulist:not([editable="true"]) > xul|*.menulist-dropmarker > xul|*.dropmarker-icon { + width: 18px; + height: 18px; +} + +xul|menulist[disabled="true"]:not([editable="true"]) > xul|*.menulist-dropmarker { + list-style-image: url("chrome://global/skin/in-content/dropdown.svg#dropdown-disabled") +} + +xul|menulist > xul|menupopup, +xul|button[type="menu"] > xul|menupopup { + -webkit-appearance: none; + border: 1px solid #c1c1c1; + border-radius: 2px; + background-color: #fff; +} + +xul|menulist > xul|menupopup xul|menu, +xul|menulist > xul|menupopup xul|menuitem, +xul|button[type="menu"] > xul|menupopup xul|menu, +xul|button[type="menu"] > xul|menupopup xul|menuitem { + -webkit-appearance: none; + font-size: 1em; + color: #333; + padding-top: 0.2em; + padding-bottom: 0.2em; + -webkit-padding-start: 10px; + -webkit-padding-end: 30px; +} + +xul|menulist > xul|menupopup > xul|menu:not([disabled="true"])[_moz-menuactive="true"], +xul|menulist > xul|menupopup > xul|menuitem:not([disabled="true"])[_moz-menuactive="true"], +xul|button[type="menu"] > xul|menupopup > xul|menu:not([disabled="true"])[_moz-menuactive="true"], +xul|button[type="menu"] > xul|menupopup > xul|menuitem:not([disabled="true"])[_moz-menuactive="true"] { + color: #333; + background-color: rgba(0,149,221,0.25); +} + +xul|menulist > xul|menupopup > xul|menu:not([disabled="true"])[selected="true"], +xul|menulist > xul|menupopup > xul|menuitem:not([disabled="true"])[selected="true"], +xul|button[type="menu"] > xul|menupopup > xul|menu:not([disabled="true"])[selected="true"], +xul|button[type="menu"] > xul|menupopup > xul|menuitem:not([disabled="true"])[selected="true"] { + color: #fff; + background-color: #0095dd; +} + +xul|menulist > xul|menupopup > xul|menu[disabled="true"], +xul|menulist > xul|menupopup > xul|menuitem[disabled="true"], +xul|button[type="menu"] > xul|menupopup > xul|menu[disabled="true"], +xul|button[type="menu"] > xul|menupopup > xul|menuitem[disabled="true"] { + color: #999; + /* override the [_moz-menuactive="true"] background color from + global/menu.css */ + background-color: transparent; +} + +xul|menulist > xul|menupopup xul|menuseparator, +xul|button[type="menu"] > xul|menupopup xul|menuseparator { + -webkit-appearance: none; + margin: 0; + padding: 0; + border-top: 1px solid #c1c1c1; + border-bottom: none; +} + +/* textboxes */ + +*|textbox { + -webkit-appearance: none; + height: 30px; + color: #333; + line-height: 20px; + padding-right: 10px; + padding-left: 10px; + border: 1px solid #c1c1c1; + -webkit-border-top-colors: none !important; + -webkit-border-right-colors: none !important; + -webkit-border-bottom-colors: none !important; + -webkit-border-left-colors: none !important; + border-radius: 2px; + background-color: #fff; +} + +html|textbox:focus, +xul|textbox[focused] { + border-color: #0095dd; +} + +html|textbox:disabled, +xul|textbox[disabled="true"] { + opacity: 0.5; +} + +/* Links */ + +html|a, +.text-link, +.inline-link { + color: #0095dd; + text-decoration: none; +} + +html|a:hover, +.text-link:hover, +.inline-link:hover { + color: #178ce5; + text-decoration: underline; +} + +html|a:visited { + color: #551a8b; +} + +html|a:hover:active, +.text-link:hover:active, +.inline-link:hover:active { + color: #ff9500; + text-decoration: none; +} + +/* Checkboxes and radio buttons */ + +/* Hide the actual checkbox */ +html|input[type="checkbox"] { + opacity: 0; + position: absolute; +} + +/* Create a box to style as the checkbox */ +html|input[type="checkbox"] + html|label:before { + display: inline-block; + content: ""; + vertical-align: middle; +} + +html|input[type="checkbox"] + html|label { + line-height: 0px; +} + +xul|checkbox { + -webkit-margin-start: 0; +} + +xul|*.checkbox-check, +html|input[type="checkbox"] + html|label:before { + -webkit-appearance: none; + width: 23px; + height: 23px; + border-radius: 2px; + border: 1px solid #c1c1c1; + -webkit-margin-end: 10px; + background-color: #f1f1f1; + /* !important needed to override toolkit checked !important rule */ + background-image: linear-gradient(#fff, rgba(255,255,255,0.8)) !important; + background-position: center center; + background-repeat: no-repeat; + box-shadow: 0 1px 1px 0 #fff, inset 0 2px 0 0 rgba(0,0,0,0.03); +} + +xul|checkbox:not([disabled="true"]):hover > xul|*.checkbox-check, +html|input[type="checkbox"]:not(:disabled) + html|label:hover:before { + border-color: #0095dd; +} + +xul|*.checkbox-check[checked] { + list-style-image: url("chrome://global/skin/in-content/check.svg#check"); +} + +html|input[type="checkbox"]:checked + html|label:before { + background-image: url("chrome://global/skin/in-content/check.svg#check"), linear-gradient(#fff, rgba(255,255,255,0.8)) !important; +} + +xul|checkbox[disabled="true"] > xul|*.checkbox-check, +html|input[type="checkbox"]:disabled + html|label { + opacity: 0.5; +} + +xul|*.checkbox-label-box { + -webkit-margin-start: -1px; /* negative margin for the transparent border */ + -webkit-padding-start: 0; +} + +xul|richlistitem > xul|*.checkbox-check { + margin: 3px 6px; +} + +xul|radio { + -webkit-margin-start: 0; +} + +xul|*.radio-check { + -webkit-appearance: none; + width: 23px; + height: 23px; + border: 1px solid #c1c1c1; + border-radius: 50%; + -webkit-margin-end: 10px; + background-color: #f1f1f1; + background-image: linear-gradient(#fff, rgba(255,255,255,0.80)); + box-shadow: 0 1px 1px 0 #fff, inset 0 2px 0 0 rgba(0,0,0,0.03); +} + +xul|radio:not([disabled="true"]):hover > xul|*.radio-check { + border-color: #0095dd; +} + +xul|*.radio-check[selected] { + list-style-image: url("chrome://global/skin/in-content/radio.svg#radio"); +} + +xul|radio[disabled="true"] > xul|*.radio-check { + opacity: 0.5; +} + +xul|*.radio-label-box { + -webkit-margin-start: -1px; /* negative margin for the transparent border */ + -webkit-margin-end: 10px; + -webkit-padding-start: 0; +} + +/* Category List */ + +xul|*#categories { + -webkit-appearance: none; + background-color: #424f5a; + padding-top: 39px; + margin: 0; + border-width: 0; +} + +xul|*.category { + -webkit-appearance: none; + color: #c1c1c1; + -webkit-border-end-width: 0; + -webkit-padding-start: 15px; + -webkit-padding-end: 21px; + min-height: 40px; + transition: background-color 150ms; +} + +xul|*.category:hover { + background-color: #5e6972; +} + +xul|*.category[selected] { + background-color: #343f48; + color: #f2f2f2; + -webkit-padding-start: 11px; /* compensate the 4px border */ + -webkit-border-start: solid 4px #ff9500; +} + +xul|*#categories[keyboard-navigation="true"]:-webkit-focusring > xul|*.category[current] { + border-top: 1px #ffffff dotted; + border-bottom: 1px #ffffff dotted; +} + +*|*.category-name { + line-height: 22px; + font-size: 1.25rem; + padding-bottom: 2px; + -webkit-padding-start: 9px; + margin: 0; + -webkit-user-select: none; +} + +*|*.category-icon { + width: 24px; + height: 24px; +} + +/* header */ + +*|*.header { + border-bottom: 1px solid #c8c8c8; + -webkit-margin-end: 4px; /* add the 4px end-margin of other elements */ + margin-bottom: 15px; + padding-bottom: 15px; +} + +*|*.header-name { + font-size: 2.5rem; + font-weight: normal; + line-height: 40px; + margin: 0; + -webkit-user-select: none; +} + +/* File fields */ + +xul|filefield { + -webkit-appearance: none; + background-color: transparent; + border: none; + padding: 0; +} + +xul|*.fileFieldContentBox { + background-color: transparent; +} + +xul|*.fileFieldIcon { + -webkit-margin-start: 10px; + -webkit-margin-end: 0; +} + +xul|*.fileFieldLabel { + -webkit-margin-start: -26px; + -webkit-padding-start: 36px; +} + +xul|textbox:-webkit-locale-dir(rtl), +xul|*.fileFieldLabel:-webkit-locale-dir(rtl), +xul|textbox + xul|button:-webkit-locale-dir(ltr), +xul|filefield + xul|button:-webkit-locale-dir(ltr) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +xul|textbox:-webkit-locale-dir(ltr), +xul|*.fileFieldLabel:-webkit-locale-dir(ltr), +xul|textbox + xul|button:-webkit-locale-dir(rtl), +xul|filefield + xul|button:-webkit-locale-dir(rtl) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +xul|textbox + xul|button, +xul|filefield + xul|button { + -webkit-border-start: none; +} + +/* List boxes */ + +xul|richlistbox, +xul|listbox { + -webkit-appearance: none; + -webkit-margin-start: 0; + background-color: #fff; + border: 1px solid #c1c1c1; + color: #333; +} + +xul|treechildren::-webkit-tree-row, +xul|listbox xul|listitem { + padding: 0.3em; + margin: 0; + border: none; + border-radius: 0; + background-image: none; +} + +xul|treechildren::-webkit-tree-row(hover), +xul|listbox xul|listitem:hover { + background-color: rgba(0,149,221,0.25); +} + +xul|treechildren::-webkit-tree-row(selected), +xul|listbox xul|listitem[selected="true"] { + background-color: #0095dd; + color: #fff; +} + +/* Trees */ + +xul|tree { + -webkit-appearance: none; + font-size: 1em; + border: 1px solid #c1c1c1; + margin: 0; +} + +xul|tree:-webkit-focusring, +xul|richlistbox:-webkit-focusring { + border: 1px dotted #0095dd; +} + +xul|listheader, +xul|treecols { + -webkit-appearance: none; + border: none; + border-bottom: 1px solid #c1c1c1; + padding: 0; +} + +xul|treecol:not([hideheader="true"]), +xul|treecolpicker { + -webkit-appearance: none; + border: none; + background-color: #ebebeb; + color: #808080; + padding: 5px 10px; +} + +xul|treecol:not([hideheader="true"]):not([sortable="false"]):hover, +xul|treecolpicker:hover { + background-color: #dadada; + color: #333; +} + +xul|treecol:not([hideheader="true"]):not(:first-child), +xul|treecolpicker { + -webkit-border-start-width: 1px; + -webkit-border-start-style: solid; + border-image: linear-gradient(transparent 0%, transparent 20%, #c1c1c1 20%, #c1c1c1 80%, transparent 80%, transparent 100%) 1 1; +} + +xul|treecol:not([hideheader="true"]) > xul|*.treecol-sortdirection[sortDirection] { + list-style-image: url("chrome://global/skin/in-content/dropdown.svg#dropdown"); + width: 18px; + height: 18px; +} + +xul|treecol:not([hideheader="true"]) > xul|*.treecol-sortdirection[sortDirection="ascending"] { + transform: scaleY(-1); +} + +/* This is the only way to increase the height of a tree row unfortunately */ +xul|treechildren::-webkit-tree-row { + min-height: 2em; +} + +/* Color needs to be set on tree cell in order to be applied */ +xul|treechildren::-webkit-tree-cell-text { + color: #333; +} + +xul|treechildren::-webkit-tree-cell-text(selected) { + color: #fff; +} + +xul|caption { + background-color: transparent; +} + +xul|button, +html|button, +xul|colorpicker[type="button"], +xul|menulist { + margin: 2px 4px; +} + +xul|menulist:not([editable="true"]) > xul|*.menulist-dropmarker { + margin-top: 1px; + margin-bottom: 1px; +} + +xul|checkbox { + -webkit-padding-start: 0; +} + +@media not all and (-webkit-windows-default-theme) { + xul|*.checkbox-check { + background-image: none !important; + } + + xul|*.checkbox-check[checked] { + list-style-image: url("chrome://global/skin/in-content/check.svg#check-native"); + background-color: -webkit-dialog; + } +} + +xul|radio { + -webkit-binding: url("chrome://global/content/bindings/radio.xml#radio"); + -webkit-padding-start: 0; +} + +@media not all and (-webkit-windows-default-theme) { + xul|*.radio-check { + background-image: none; + } + + xul|*.radio-check[selected] { + list-style-image: url("chrome://global/skin/in-content/radio.svg#radio-native"); + background-color: -webkit-dialog; + } +} + +xul|*.radio-icon, +xul|*.checkbox-icon { + -webkit-margin-end: 0; +} + +/* Never draw a border for the focusring, use outline instead */ +xul|*.button-box, +xul|*.menulist-label-box, +xul|*.radio-label-box, +xul|*.checkbox-label-box { + border-style: none; +} + +xul|*.inline-link:-webkit-focusring, +xul|button:-webkit-focusring > xul|*.button-box, +xul|menulist:-webkit-focusring > xul|*.menulist-label-box, +xul|radio[focused="true"] > xul|*.radio-label-box, +xul|checkbox:-webkit-focusring > xul|*.checkbox-label-box { + outline: 1px dotted; +} + +/* Use a 2px border so that selected row highlight is still visible behind + an existing high-contrast border that uses the background color */ +@media not all and (-webkit-windows-default-theme) { + xul|treechildren::-webkit-tree-row(selected), + xul|listbox xul|listitem[selected="true"] { + border: 2px dotted Highlight; + } +} diff --git a/Kivinjari/helpers/errors/notFound.html b/Kivinjari/helpers/errors/notFound.html new file mode 100644 index 0000000..5d5cc9a --- /dev/null +++ b/Kivinjari/helpers/errors/notFound.html @@ -0,0 +1,62 @@ + + + File not found + + + + + + + + + +
+ + +
+

File not found

+
+ + +
+ + +
+

SharpBrowser can't find the file!

+
+ + +
+
    +
  • Check the file name for capitalization or other typing errors.
  • +
  • Check to see if the file was moved, renamed or deleted.
  • +
+
+ + + + +
+ + + + +
+ + + + + \ No newline at end of file diff --git a/Kivinjari/helpers/errors/warning-16.png b/Kivinjari/helpers/errors/warning-16.png new file mode 100644 index 0000000..513c954 Binary files /dev/null and b/Kivinjari/helpers/errors/warning-16.png differ diff --git a/Kivinjari/helpers/i18n_process.css b/Kivinjari/helpers/i18n_process.css new file mode 100644 index 0000000..fce3833 --- /dev/null +++ b/Kivinjari/helpers/i18n_process.css @@ -0,0 +1,23 @@ +/* Copyright 2015 The Chromium Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +[i18n-content]::before, +[i18n-values*=".innerHTML:"]::before, +* /deep/ [i18n-content]::before, +* /deep/ [i18n-values*=".innerHTML:"]::before { + /* Insert a non-breaking space into nodes that have i18n content. */ + content: '\00a0'; +} + +[i18n-processed][i18n-content]::before, +[i18n-processed] [i18n-content]::before, +[i18n-processed][i18n-values*=".innerHTML:"]::before, +[i18n-processed] [i18n-values*=".innerHTML:"]::before, +* /deep/ [i18n-processed][i18n-content]::before, +* /deep/ [i18n-processed] [i18n-content]::before, +* /deep/ [i18n-processed][i18n-values*=".innerHTML:"]::before, +* /deep/ [i18n-processed] [i18n-values*=".innerHTML:"]::before { + /* Undo the non-breaking space hack after i18n processing has run. */ + content: normal; +} diff --git a/Kivinjari/helpers/jquery-1.10.2.min.js b/Kivinjari/helpers/jquery-1.10.2.min.js new file mode 100644 index 0000000..da41706 --- /dev/null +++ b/Kivinjari/helpers/jquery-1.10.2.min.js @@ -0,0 +1,6 @@ +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.2.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("