From 9d0901ea9eb3481cfebbc4d8ecc07070bd3ecf89 Mon Sep 17 00:00:00 2001 From: ahkads Date: Wed, 25 Sep 2024 13:03:01 +0000 Subject: [PATCH] first commit --- .gitignore | 7 + README.md | 14 + add-users.txt | 12 + config/db.config_example.js | 6 + main.js | 61 ++ package.json | 28 + priomRouter.js | 60 ++ public/css/jquery-ui.min.css | 7 + public/css/navbar.css | 163 ++++ public/css/notification.css | 134 +++ public/css/style.css | 498 ++++++++++ public/images/favicon.ico | Bin 0 -> 15086 bytes public/images/sv-org-logo.png | Bin 0 -> 15889 bytes public/index.html | 71 ++ public/js/citydetails.js | 251 +++++ public/js/jquery-3.5.1.min.js | 2 + public/js/jquery-ui.min.js | 6 + public/js/main.js | 107 +++ public/js/maketable.js | 79 ++ public/js/navbar.js | 18 + public/js/russiankeys.js | 108 +++ public/js/xlsx.full.min.js | 23 + signup.js | 110 +++ static/check-serials.html | 102 ++ static/css/dashboardStyles.css | 72 ++ static/css/dashboardStyles2.css | 98 ++ static/css/images/ui-icons_444444_256x240.png | Bin 0 -> 7126 bytes static/css/images/ui-icons_555555_256x240.png | Bin 0 -> 7110 bytes static/css/images/ui-icons_777620_256x240.png | Bin 0 -> 4654 bytes static/css/images/ui-icons_777777_256x240.png | Bin 0 -> 7147 bytes static/css/images/ui-icons_cc0000_256x240.png | Bin 0 -> 4654 bytes static/css/images/ui-icons_ffffff_256x240.png | Bin 0 -> 6523 bytes static/css/jquery-ui.min.css | 7 + static/css/login-style.css | 238 +++++ static/css/navbar.css | 161 ++++ static/css/notification.css | 134 +++ static/css/options.css | 170 ++++ static/css/repairRequest.css | 121 +++ static/css/style.css | 417 ++++++++ static/images/PAX-S90-v0.2.png | Bin 0 -> 448141 bytes static/images/PAX-S90-v0.7.png | Bin 0 -> 557644 bytes static/images/SV.svg | 17 + static/images/d230.png | Bin 0 -> 463287 bytes static/images/dance.gif | Bin 0 -> 1132975 bytes static/images/datex.png | Bin 0 -> 3631 bytes .../images/favicon/android-chrome-144x144.png | Bin 0 -> 4037 bytes .../images/favicon/android-chrome-192x192.png | Bin 0 -> 6147 bytes .../images/favicon/android-chrome-256x256.png | Bin 0 -> 8837 bytes .../images/favicon/android-chrome-36x36.png | Bin 0 -> 674 bytes .../images/favicon/android-chrome-384x384.png | Bin 0 -> 15534 bytes .../images/favicon/android-chrome-48x48.png | Bin 0 -> 807 bytes .../images/favicon/android-chrome-72x72.png | Bin 0 -> 1318 bytes .../images/favicon/android-chrome-96x96.png | Bin 0 -> 1758 bytes .../apple-touch-icon-120x120-precomposed.png | Bin 0 -> 2050 bytes .../favicon/apple-touch-icon-120x120.png | Bin 0 -> 1745 bytes .../apple-touch-icon-152x152-precomposed.png | Bin 0 -> 4518 bytes .../favicon/apple-touch-icon-152x152.png | Bin 0 -> 3789 bytes .../apple-touch-icon-180x180-precomposed.png | Bin 0 -> 5534 bytes .../favicon/apple-touch-icon-180x180.png | Bin 0 -> 4637 bytes .../apple-touch-icon-60x60-precomposed.png | Bin 0 -> 1003 bytes .../images/favicon/apple-touch-icon-60x60.png | Bin 0 -> 819 bytes .../apple-touch-icon-76x76-precomposed.png | Bin 0 -> 1204 bytes .../images/favicon/apple-touch-icon-76x76.png | Bin 0 -> 983 bytes .../favicon/apple-touch-icon-precomposed.png | Bin 0 -> 5534 bytes static/images/favicon/apple-touch-icon.png | Bin 0 -> 4637 bytes static/images/favicon/browserconfig.xml | 10 + static/images/favicon/favicon-16x16.png | Bin 0 -> 471 bytes static/images/favicon/favicon-32x32.png | Bin 0 -> 674 bytes static/images/favicon/favicon.ico | Bin 0 -> 15086 bytes static/images/favicon/mstile-144x144.png | Bin 0 -> 4037 bytes static/images/favicon/mstile-150x150.png | Bin 0 -> 3804 bytes static/images/favicon/mstile-310x310.png | Bin 0 -> 11078 bytes static/images/favicon/safari-pinned-tab.svg | 43 + static/images/favicon/site.webmanifest | 50 + static/images/profiles/ahmed.jpg | Bin 0 -> 742 bytes static/images/scan-pos.png | Bin 0 -> 210371 bytes static/images/sv-org-logo.png | Bin 0 -> 15889 bytes static/images/tarkan.png | Bin 0 -> 44379 bytes static/js/FileSaver.min.js | 3 + static/js/auth_example.js | 4 + static/js/axios.min.js | 2 + static/js/check.js | 129 +++ static/js/citydetails.js | 251 +++++ static/js/diag.js | 186 ++++ static/js/docx8.5.umd.min.js | 10 + static/js/e8e55b4ad4.js | 2 + static/js/forms.js | 97 ++ static/js/getclientinfo.js | 144 +++ static/js/id-coords.js | 113 +++ static/js/imageDecode.js | 28 + static/js/jquery-3.5.1.min.js | 2 + static/js/jquery-ui.min.js | 6 + static/js/jquery.maphilight.min.js | 3 + static/js/makedocx.js | 901 ++++++++++++++++++ static/js/maketable.js | 79 ++ static/js/navbar.js | 18 + static/js/notification.js | 96 ++ static/js/options.js | 358 +++++++ static/js/russiankeys.js | 108 +++ views/home.ejs | 390 ++++++++ views/login.ejs | 95 ++ views/signup.ejs | 119 +++ 102 files changed, 6549 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 add-users.txt create mode 100644 config/db.config_example.js create mode 100644 main.js create mode 100644 package.json create mode 100644 priomRouter.js create mode 100644 public/css/jquery-ui.min.css create mode 100644 public/css/navbar.css create mode 100644 public/css/notification.css create mode 100644 public/css/style.css create mode 100644 public/images/favicon.ico create mode 100644 public/images/sv-org-logo.png create mode 100644 public/index.html create mode 100644 public/js/citydetails.js create mode 100644 public/js/jquery-3.5.1.min.js create mode 100644 public/js/jquery-ui.min.js create mode 100644 public/js/main.js create mode 100644 public/js/maketable.js create mode 100644 public/js/navbar.js create mode 100644 public/js/russiankeys.js create mode 100644 public/js/xlsx.full.min.js create mode 100644 signup.js create mode 100644 static/check-serials.html create mode 100644 static/css/dashboardStyles.css create mode 100644 static/css/dashboardStyles2.css create mode 100644 static/css/images/ui-icons_444444_256x240.png create mode 100644 static/css/images/ui-icons_555555_256x240.png create mode 100644 static/css/images/ui-icons_777620_256x240.png create mode 100644 static/css/images/ui-icons_777777_256x240.png create mode 100644 static/css/images/ui-icons_cc0000_256x240.png create mode 100644 static/css/images/ui-icons_ffffff_256x240.png create mode 100644 static/css/jquery-ui.min.css create mode 100644 static/css/login-style.css create mode 100644 static/css/navbar.css create mode 100644 static/css/notification.css create mode 100644 static/css/options.css create mode 100644 static/css/repairRequest.css create mode 100644 static/css/style.css create mode 100644 static/images/PAX-S90-v0.2.png create mode 100644 static/images/PAX-S90-v0.7.png create mode 100644 static/images/SV.svg create mode 100644 static/images/d230.png create mode 100644 static/images/dance.gif create mode 100644 static/images/datex.png create mode 100644 static/images/favicon/android-chrome-144x144.png create mode 100644 static/images/favicon/android-chrome-192x192.png create mode 100644 static/images/favicon/android-chrome-256x256.png create mode 100644 static/images/favicon/android-chrome-36x36.png create mode 100644 static/images/favicon/android-chrome-384x384.png create mode 100644 static/images/favicon/android-chrome-48x48.png create mode 100644 static/images/favicon/android-chrome-72x72.png create mode 100644 static/images/favicon/android-chrome-96x96.png create mode 100644 static/images/favicon/apple-touch-icon-120x120-precomposed.png create mode 100644 static/images/favicon/apple-touch-icon-120x120.png create mode 100644 static/images/favicon/apple-touch-icon-152x152-precomposed.png create mode 100644 static/images/favicon/apple-touch-icon-152x152.png create mode 100644 static/images/favicon/apple-touch-icon-180x180-precomposed.png create mode 100644 static/images/favicon/apple-touch-icon-180x180.png create mode 100644 static/images/favicon/apple-touch-icon-60x60-precomposed.png create mode 100644 static/images/favicon/apple-touch-icon-60x60.png create mode 100644 static/images/favicon/apple-touch-icon-76x76-precomposed.png create mode 100644 static/images/favicon/apple-touch-icon-76x76.png create mode 100644 static/images/favicon/apple-touch-icon-precomposed.png create mode 100644 static/images/favicon/apple-touch-icon.png create mode 100644 static/images/favicon/browserconfig.xml create mode 100644 static/images/favicon/favicon-16x16.png create mode 100644 static/images/favicon/favicon-32x32.png create mode 100644 static/images/favicon/favicon.ico create mode 100644 static/images/favicon/mstile-144x144.png create mode 100644 static/images/favicon/mstile-150x150.png create mode 100644 static/images/favicon/mstile-310x310.png create mode 100644 static/images/favicon/safari-pinned-tab.svg create mode 100644 static/images/favicon/site.webmanifest create mode 100644 static/images/profiles/ahmed.jpg create mode 100644 static/images/scan-pos.png create mode 100644 static/images/sv-org-logo.png create mode 100644 static/images/tarkan.png create mode 100644 static/js/FileSaver.min.js create mode 100644 static/js/auth_example.js create mode 100644 static/js/axios.min.js create mode 100644 static/js/check.js create mode 100644 static/js/citydetails.js create mode 100644 static/js/diag.js create mode 100644 static/js/docx8.5.umd.min.js create mode 100644 static/js/e8e55b4ad4.js create mode 100644 static/js/forms.js create mode 100644 static/js/getclientinfo.js create mode 100644 static/js/id-coords.js create mode 100644 static/js/imageDecode.js create mode 100644 static/js/jquery-3.5.1.min.js create mode 100644 static/js/jquery-ui.min.js create mode 100644 static/js/jquery.maphilight.min.js create mode 100644 static/js/makedocx.js create mode 100644 static/js/maketable.js create mode 100644 static/js/navbar.js create mode 100644 static/js/notification.js create mode 100644 static/js/options.js create mode 100644 static/js/russiankeys.js create mode 100644 views/home.ejs create mode 100644 views/login.ejs create mode 100644 views/signup.ejs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4ed84bf --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +# config/db.config.js +node_modules +upload/* +stuff-expermental +package-lock.json +config/db.config.js +static/js/auth.js diff --git a/README.md b/README.md new file mode 100644 index 0000000..99ce9c0 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# DATEX SERVICE - Submit Repair Request + +## Overview + +**DATEX SERVICE - Submit Repair Request** + +## Features + +## Installation + +1. **Clone the Repository:** + ```bash + git clone https://github.com/Ahmedhkad/ + ``` \ No newline at end of file diff --git a/add-users.txt b/add-users.txt new file mode 100644 index 0000000..6ba6713 --- /dev/null +++ b/add-users.txt @@ -0,0 +1,12 @@ +CREATE TABLE `accounts` ( + `id` int(11) NOT NULL, + `username` varchar(100) CHARACTER SET latin1 NOT NULL, + `email` varchar(100) CHARACTER SET latin1 NOT NULL, + `password` varchar(255) CHARACTER SET latin1 NOT NULL, + `avatar` blob NOT NULL, + `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + +INSERT INTO `accounts`( `username`, `email`, `password`, `avatar` ) VALUES ('admin','ahmed@admin','admin','xxxxx' ) + \ No newline at end of file diff --git a/config/db.config_example.js b/config/db.config_example.js new file mode 100644 index 0000000..bf47d17 --- /dev/null +++ b/config/db.config_example.js @@ -0,0 +1,6 @@ +module.exports = { + host: 'database or ip', + user: 'user', + password: 'pass', + database: 'dbname' + } \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..7391b5b --- /dev/null +++ b/main.js @@ -0,0 +1,61 @@ +const express = require('express'); +const mysql = require('mysql2/promise'); +const path = require('path'); +const app = express(); +const config = require("./config/db.config.js"); +const port = 8080; + +const dbConfig = { + host: config.host, + user: config.user, + password: config.password, + database: config.database, + waitForConnections: true, + connectionLimit: 10, + queueLimit: 0 +}; + +app.use(express.json()); +app.use(express.static(path.join(__dirname, 'public'))); // Serve static files + +async function uploadPriomToMySQL(jsonRows, tableName) { + const conn = await mysql.createConnection(dbConfig); + const sql = `INSERT INTO ${tableName} (PriomID, Model, SerialNumber, Problem, filename) VALUES (?, ?, ?, ?, ?)`; + + try { + await Promise.all(jsonRows.map(async (jsonRow) => { + const values = [ + jsonRow['№ п/п'] || null, + jsonRow['Оборудование'] || null, + jsonRow['Серийный номер'] || null, + jsonRow['Неисправность'] || null, + jsonRow['filename'] || null + ]; + await conn.execute(sql, values); + })); + } catch (err) { + throw new Error(err.message); + } finally { + await conn.end(); + } +} + +app.post('/api/upload', async (req, res) => { + // console.log("post upload works") + const jsonRows = req.body; + + if (!Array.isArray(jsonRows) ) { + return res.status(400).json({ error: 'Invalid request data' }); + } + + try { + await uploadPriomToMySQL(jsonRows , 'priom'); + res.status(200).json({ message: 'Data uploaded successfully' }); + } catch (error) { + res.status(500).json({ error: 'Internal server error: ' + error.message }); + } +}); + +app.listen(port, () => { + console.log(`Server running at http://localhost:${port}`); +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..f812b51 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "POS-Diagnostic-Assist", + "version": "1.0.0", + "description": "POS-Diagnostic-Assist by Ahmed Alomairi", + "main": "index.js", + "scripts": { + "test": "node main.js test", + "start": "node main.js", + "clean": "rm -f /app/service-upload/upload/* && node main.js clean", + "reset": "rm -f /app/service-upload/upload/* && node main.js", + "dev": "npm install nodemon --save-dev && node main.js development --port 3000" + }, + "author": "Ahmed Alomairi", + "license": "ISC", + "dependencies": { + "bcrypt": "^5.1.1", + "body-parser": "^1.20.2", + "cors": "^2.8.5", + "ejs": "^3.1.10", + "express": "^4.19.2", + "express-session": "^1.18.0", + "multer": "^1.4.5-lts.1", + "mysql2": "^3.11.0" + }, + "devDependencies": { + "nodemon": "^3.1.0" + } +} diff --git a/priomRouter.js b/priomRouter.js new file mode 100644 index 0000000..e1351a4 --- /dev/null +++ b/priomRouter.js @@ -0,0 +1,60 @@ +const express = require('express'); +const mysql = require('mysql2/promise'); // Use mysql2 for async/await +const router = express.Router(); +const config = require("./config/db.config.js"); + +// MySQL connection options +const opts = { + host: config.host, + user: config.user, + password: config.password, + database: config.database, + waitForConnections: true, + connectionLimit: 10, + queueLimit: 0 +}; + +// Function to upload data to MySQL +async function uploadPriomToMySQL(jsonRows, tableName) { + const conn = await mysql.createConnection(opts); + const sql = `INSERT INTO ${tableName} (PriomID, Model, SerialNumber, Problem, filename) VALUES (?, ?, ?, ?, ?)`; + + try { + await Promise.all(jsonRows.map(async (jsonRow) => { + const values = [ + jsonRow['№ п/п'] || null, + jsonRow['Оборудование'] || null, + jsonRow['Серийный номер'] || null, + jsonRow['Неисправность'] || null, + jsonRow['filename'] || null + ]; + + const [rows] = await conn.execute(sql, values); + console.log('Inserted row id:', rows.insertId); + })); + } catch (err) { + console.error(err); + } finally { + await conn.end(); + } +} + +// Define the POST route +router.post('/upload', async (req, res) => { + const { jsonRows, tableName } = req.body; + + // Validate input + if (!Array.isArray(jsonRows) || !tableName) { + return res.status(400).json({ error: 'Invalid request data' }); + } + + try { + await uploadPriomToMySQL(jsonRows, tableName); + res.status(200).json({ message: 'Data uploaded successfully' }); + } catch (error) { + console.error('Error uploading data:', error); + res.status(500).json({ error: 'Internal server error' }); + } +}); + +module.exports = router; diff --git a/public/css/jquery-ui.min.css b/public/css/jquery-ui.min.css new file mode 100644 index 0000000..4a88dae --- /dev/null +++ b/public/css/jquery-ui.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.14.0 - 2024-08-05 +* https://jqueryui.com +* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit https://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px +* Copyright OpenJS Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;user-select:none}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:pointer;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;background-image:none}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank.ui-icon-blank.ui-icon-blank{background-image:none}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3}.ui-widget-shadow{box-shadow:0 0 5px #666} \ No newline at end of file diff --git a/public/css/navbar.css b/public/css/navbar.css new file mode 100644 index 0000000..523e53d --- /dev/null +++ b/public/css/navbar.css @@ -0,0 +1,163 @@ +body2 { + margin: 0; + font-family: Arial, sans-serif; + background-color: #f8f9fa; /* Light background */ + background-color: #4a4e52; +} +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + /* background-color: transparent; */ + background-color: rgb(0 0 0 / 17%); + padding: 4px 20px 0px; /* Padding adjustments */ + width: auto; +} + +.navbar-brand { + cursor: pointer; + display: flex; + align-items: center; + color: white; /* Set text color to white */ + font-size: 14px; /* Smaller font size */ + text-decoration: none; /* Remove underline */ +} +.navbar-brand img { + height: 24px; /* Logo height */ + margin-right: 10px; /* Space between logo and title */ +} +.user-photo { + width: 24px; /* User photo size */ + height: 24px; + border-radius: 50%; /* Circular photo */ + cursor: pointer; + position: relative; /* To position dropdown */ +} + +.user-name { + color: white; font-weight: bold; +} + +img.user-photo:hover { + box-shadow: 0px 0px 5px 5px rgb(92 207 255 / 78%); +} + +.dropdown-menu { + position: absolute; /* Position it correctly */ + display: none; /* Hide dropdown by default */ + /* background-color: #343a40; */ + background-color: #1e1e1e; + right: 20px; /* Align to the right */ + min-width: 200px; /* Minimum width */ + z-index: 1000; /* Ensure it appears above other content */ + margin-top: 10px; /* Space between photo and menu */ + border-radius: 5px; /* Rounded corners */ + padding: 15px; /* Padding for dropdown */ + /* text-align: center; */ + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5); +} +.dropdown-menu.show { + display: block; /* Show when active */ +} +.dropdown-item { + cursor: pointer; + padding: 10px; + color: white; /* Color for dropdown items */ + text-decoration: none; /* Remove underline */ + display: block; /* Block display for easy clicking */ +} +.dropdown-item:hover { + background-color: #495057; /* Hover effect */ +} +.user-details { + margin-bottom: 10px; /* Space below user details */ + text-align: center; +} +.dropdown-divider { + height: 1px; + background-color: rgba(255, 255, 255, 0.12); + margin: 5px 0; +} + + + /* city details */ + + + select#banksList { + border-top-left-radius: 10px; + border-bottom-left-radius: 10px; + width: 105px; +} + +input#datepicker { + width: 70px; + + border-top-right-radius: 10px; + border-bottom-right-radius: 10px; + +} + + .select-city { + /* position: absolute; */ + position: relative; + width: 300px; + display: flex; + height: 24px; + padding-right: 110px; +} + + + +#cityInput { + border: 2px solid #ccc; + /* Default border */ + padding: 5px; + width: 200px; + box-sizing: border-box; + height: -webkit-fill-available; +} + +#cityInput.invalid { + border-color: red; + /* Red border for invalid input */ +} + +#cityInput.valid { + border-color: green; + /* Green border for valid selection */ +} + +#cityList { + width: max-content; + color: black; + font-size: smaller; + border: 1px solid #ccc; + max-height: 150px; + overflow-y: auto; + display: none; + position: absolute; + background-color: white; + z-index: 1000; +} + +.city-item { + padding: 10px; + cursor: pointer; +} + +.city-item:hover { + background-color: #f0f0f0; +} + + +.auto-complete-text { + position: absolute; + float: right; + /* padding-left: 55%; */ + right: 115px; + top: 4px; + color: green; + margin-bottom: 4px; + font-size: 13px; + font-family: sans-serif; +} \ No newline at end of file diff --git a/public/css/notification.css b/public/css/notification.css new file mode 100644 index 0000000..dedaf4d --- /dev/null +++ b/public/css/notification.css @@ -0,0 +1,134 @@ +/* toast notification */ + +.toast { + position: absolute; + top: 25px; + right: 30px; + border-radius: 12px; + background: #fff; + padding: 20px 35px 20px 25px; + box-shadow: 0 6px 20px -5px rgba(0, 0, 0, 0.1); + overflow: hidden; + transform: translateX(calc(100% + 30px)); + transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.35); + z-index: 100; + } + + .toast-up{ + left: 0 !important; + right: 0 !important; + margin-left: auto !important; + margin-right: auto !important; + width: fit-content !important; + transform: translateY(-180px) !important; + } + + .toast.active { + transform: translateX(0%); + transform: translateY(0%) !important; + } + + + + .toast .toast-content { + display: flex; + align-items: center; + } + + .toast-content .check { + display: flex; + align-items: center; + justify-content: center; + /* height: 31px; */ + /* width: 30px; */ + /* min-width: 35px; */ + /* background-color: red; */ + color: #fff; + font-size: 20px; + border-radius: 50%; + /* border-color: red; */ + border-style: solid; + border-width: thick; + } + + .toast-content .message { + display: flex; + flex-direction: column; + margin: 0 20px; + } + + .message .text { + font-size: 16px; + font-weight: 400; + color: #666666; + } + + .message .text.text-1 { + font-weight: 600; + color: #333; + } + + .toast .close { + position: absolute; + top: 10px; + right: 15px; + padding: 5px; + cursor: pointer; + opacity: 0.7; + /* color: red; */ + /* border-color: red; */ + } + + .toast .close:hover { + opacity: 1; + } + + .toast .progress { + position: absolute; + bottom: 0; + left: 0; + height: 3px; + width: 100%; + /* background-color: red; */ + } + + .toast .progress:before { + content: ""; + position: absolute; + bottom: 0; + right: 0; + height: 100%; + width: 100%; + /* background-color: red; */ + } + + .bgRed{ + background-color: red; + border-color: red; + } + .bgGreen{ + background-color: green; + border-color: green; + } + .txtRed{ + color: red; + } + .txtGreen{ + color: green; + } + + .progress.active:before { + animation: progress 5s linear forwards; + } + + @keyframes progress { + 100% { + right: 100%; + } + } + + + .toast.active ~ button { + pointer-events: none; + } + \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..3a1a7f5 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,498 @@ +html { + /* background: url(https://i.ibb.co/njV5xJS/background.jpg) no-repeat center center fixed; + background-size: cover; + height: 100%; */ +} + +body { + font-family: 'Rubik', sans-serif; + /* margin:0; */ + max-width: 1140px; + margin: 0 auto; + /* overflow: hidden; */ + + /* background-color: rgb(71, 71, 71); */ + /* background: linear-gradient(135deg, #7d7e7d 0%, #0e0e0e 100%); + background: linear-gradient(135deg, #7d7e7d 0%, #0e0e0e 100%); */ + /* background: linear-gradient(0deg, #7d7e7d 0%, #0e0e0e 100%); */ + background: linear-gradient(0deg, #207895 0%, #03284d 100%); + background-repeat: no-repeat; + background-attachment: fixed; + margin: auto; +} + +.maparea { + margin: auto; +} + +.buttons { + display: flex; + justify-content: space-around; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + margin: 2px; +} + +.download-button{ + background-color: transparent; + color: #c8e4ef; + border-style: none; + cursor: pointer; +} + +.inputHolder { + padding: 10px; + margin-top: 5px; + margin-right: 10px; + margin-bottom: 0px; + margin-left: 10px; + /* width: -webkit-fill-available; */ + width: 91%; + border-radius: 25px; + /* font-size: x-large; */ + max-height: 15px; + height: 15px; + font-family: sans-serif; +} + +.inputHolder2 { + padding: 10px; + margin: 10px; + + /* width: -webkit-fill-available; */ + width: 82%; + border-radius: 25px; + /* font-size: x-large; */ + max-height: 30px; + height: 30px; + font-family: sans-serif; +} + +.serialform { + /* margin: 10px; */ + margin-left: 2px; + margin-right: 2px; + /* padding: 10px; */ + /* text-align: center; */ +} + +.modelselect { + border-radius: 20px; + font-size: large; + padding: 6px 0px; + /* padding: 10px; */ + text-align: center; + align-self: center; +} + +.modelselect option { + text-align: center; + overflow: hidden; + +} + + +.form-control { + width: 183px; + font-size: large; + padding: 6px; + /* border-radius: 23px; */ + border-top-left-radius: 25px; + /* border-top-right-radius: 23px; */ + /* border-bottom-right-radius: 23px; */ + border-bottom-left-radius: 25px; +} + +.form-btn { + padding: 6px; + text-align: center; + cursor: pointer; + font-size: large; + border-top-right-radius: 25px; + border-bottom-right-radius: 25px; +} + +.btn { + padding: 6px; + /* width: -webkit-fill-available; */ + border-radius: 25px; + /* margin: 10px; */ + margin-left: 2px; + margin-right: 2px; + text-align: center; + font-size: large; + cursor: pointer; +} + + +.btnbeta { + border-radius: 15px; + color: green; + border-color: green; + border-width: 5px; + position: absolute; + margin-top: 15px !important; +} + +.btn-small { + padding: 3px; + + margin: 0px; + font-size: small; + +} + +.display-info { + display: flex; +} + +.btn-remove { + cursor: pointer; + /* border-radius: 15px; */ + color: red; + /* border-color: red; */ + /* border-width: 2px; */ + /* position: absolute; */ + margin-top: 5px !important; + z-index: 5; + padding: 5px; + font-size: x-large; + background: transparent; + border-style: none; +} + +.clean { + color: rgb(90, 32, 11); + /* background-color: coral; */ +} + +.copying { + color: rgb(8, 31, 8); + /* background-color: lightgreen; */ +} + +.device { + margin: auto; +} + +.dancers { + display: none; +} + +.repeated { + display: flex; + justify-content: space-around; + flex-wrap: wrap; + color: red; +} + +.last-records { + display: flex; + justify-content: space-around; + flex-wrap: wrap; + color: rgb(51, 51, 51); + font-size: small; +} + +/* table, +th, +td { + border: 1px solid black; + border-collapse: collapse; + background-color: aliceblue; + padding: 4px; +} */ + +.visible { + display: block; + position: absolute; + z-index: 1; + top: 470px; + left: 77px; +} + +.visible-table { + display: none !important; +} + +nav { + + display: flex; + position: relative; + left: 0; + top: 0; + width: 100%; + padding-top: 5px; + padding-bottom: 5px; + display: flex; + justify-content: space-around; + background-color: #000000; + color: lightgray; + font-family: sans-serif; + text-decoration: none !important; + flex-direction: row; + flex-wrap: nowrap; + align-content: center; + font-size: larger; + +} + + +footer { + position: fixed; + left: 0; + bottom: 0; + width: 100%; + padding-top: 5px; + padding-bottom: 5px; + display: flex; + justify-content: center; + + background-color: #000000; + color: lightgray; + font-family: sans-serif; + text-decoration: none !important; +} + +.searchResult {} + +.check-butons { + margin-left: 10px; + display: flex; +} + +.left-buttons { + width: 40%; +} + +.pageTitle { + font-family: sans-serif; + color: darkturquoise; +} + +.repeated2 { + /* display: flex; */ + justify-content: space-around; + flex-wrap: wrap; + float: right; + width: 80%; + padding-bottom: 35px; +} + +.inputHolder22 { + padding: 10px; + margin-left: 10px; + /* width: -webkit-fill-available; */ + width: 15%; + border-radius: 15px; + font-family: sans-serif; +} + +.greenTable { + color: green; +} + +.redTable { + color: red; +} + + +.bold { + font-weight: bold; + color: darkred; +} + +.not-show { + display: none !important; +} + +#history { + display: flex; + justify-content: center; +} + +.copy-text { + margin: 15px; + padding: 10px; +} + + + + +.additionalInfo { + background-color: yellow; + padding: 3px 12px; + border-radius: 5px; + cursor: pointer; +} + +.additional2buttons { + background-color: red; + color: aliceblue; + padding: 3px 12px; + border-radius: 5px; + cursor: pointer; +} + +/* .centered { + margin-left: 36%; + margin-top: 5px; + margin-right: 5px; + margin-bottom: 5px; + border-radius: 20px; + padding-top: 3px; + padding-right: 20px; + padding-bottom: 3px; + padding-left: 20px; +} */ + +.additionalButtonsContainer { + display: flex; + justify-content: center; + gap: 10px; +} + + +.blinking { + animation: blink 0.5s infinite; + /* border-radius: 5px; */ +} + +@keyframes blink { + + /* 0% {border: white solid 5px; } + 100% {border: red solid 5px; } */ + 0% { + box-shadow: 0px 0px 0px 5px white inset; + } + + 100% { + box-shadow: 0px 0px 0px 5px red inset; + } +} + +.blinking2 { + animation: blink-animation 1s infinite; +} + +@keyframes blink-animation { + 0% { + opacity: 1; + } + + 50% { + opacity: 0.5; + } + + 100% { + opacity: 1; + } +} + + + +@media only screen and (max-width: 1105px){ + .inputHolder { + width: -webkit-fill-available !important; + } + .btn-remove { + right: 15px; + } +} + + +.bg-tarakan{ + display: none; + position: absolute; + max-width: 1140px; + width: -webkit-fill-available; +} +.show-tarakan{ + display: block; +} + +.pax{ + /* background-color: rgb(50, 92, 230); */ + /* color: rgb(0, 0, 0); */ +} + +.verifone{ + /* background-color: rgb(0, 0, 0); */ + /* color: rgb(255, 255, 255); */ +} + +.ui-datepicker{ + z-index: 200 !important; +} + + +.excelTable { + font-family: Calibri, sans-serif; +font-size: 15px; +text-align: center; +border-style: none; +border-collapse: collapse; +min-width: 680px; +text-align: -webkit-center; +} + +/* #excelTable tr td:nth-child(2) { +background-color: yellow; /* Change background color for the second column */ +/* } */ + +.excelTable tr td { +text-align: center; +padding: 0px 6px; +background-color: white; +/* border: 1px solid black; */ +} + +.redtable{ + border-color: red; + border-style: solid !important; +} +#excelTableContainer { + margin: auto; + text-align: -webkit-center; + text-align: center; + + /* margin-top: 5px; + margin-right: 10px; + margin-bottom: 0px; + margin-left: 10px; */ + + padding: 5px; + background-color: #c8e4ef; + width: fit-content; + border-radius: 10px; +} + + +.repeatedx { + text-align: -webkit-center; +} + + + +.inputFile{ + text-align: center; +} + +.inputcontainer { + display: flex; + justify-content: space-around; + align-items: center; + padding-top: 7px; +} + + +.cityselected { + text-align: center; + color: white; + padding: 4px; + background-color: black; + width: max-content; + margin: 5px auto; + border-radius: 16px; +} \ No newline at end of file diff --git a/public/images/favicon.ico b/public/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ddd0903e88c21a2c6abe2ce30842805f69e54cb3 GIT binary patch literal 15086 zcmeHOO^94Y5Uz2f2`X+x!9Q3Bl7I&f2?5DLSUu^%yC4W6;;yI=MKq$|K!|uyB;ZX5 zl9Pf85(Ez(_N0P4o1H8~jG`0N1!Z-|AIzHUPN%A8zP6^PUr*1QH)GV-&|BTrRrP&U z@6CH}dfpOMXo~jkC6-lsdk@haL{zPI=R1kMVckxavOd3!=w&vzjcwS49^x)~+je(E z`M0biN<>3yW`g|p+rg`!klmj>vA@lG{@yW`8Ie#X+ zw>Ew^7ykHpq>lVk_~fwJ70SV38b18-&ues@-Q9ZQ;N@dEmwf)3ug2H<)UofMqrOQw zBL|-s@Yg%9Xc0xz_VuxU*86?wFLk5rT6+ix64mmXByAkXd2Jn zVop6@H7hUf2F<9H_&#6*O{%fBecND5Vqk&lye74z+}2Q#zz>W%w4c^AxGu3dxp3+MX$ zHrpLvJ}#lLoG+oa$oYwV5!XsT2KbBAoP>v-4?Fh#ecU4EntPZ3!{FJ6FN#Q8JyGk) zS4$$_kVfC@WA_p!00W&nvd&lC5d}Cdclz zij{4mmv~;glW3NxO*@EgCEAoyPZPC7ZYOGLIYqP}^9oTdBt@6A)x<9lcR}=w+tiYI zS$@oOL-fqMO;_7IOl_u4__i>rY-~&K$kh z>NWl-H2|KCq42d{kI%3F&~ut#E$ciRq=&yqX^VHU|!<=l&RYB4O`z1?G>KF?`Ko>G2(-s|Y<{xuZ^$jirN<`6F_&Y}kKC)#7@;w& zvyN*_58o8Y*taYE2SPqEEWH-;En27Xy5qA&W0djA3KUs^@HOr%t7*19L({x(vAxMV z8VlTOypCdFUZ0I{@;arf)*@OXe2DgJ&O@r5qSAM5{i+1U$~{ZQ_*ugh1VTHs0~I_clB HjrO?+Q_~&f literal 0 HcmV?d00001 diff --git a/public/images/sv-org-logo.png b/public/images/sv-org-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..085d471f16ba3487368fec4f4416f42c02c626cb GIT binary patch literal 15889 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 literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..bb06aee --- /dev/null +++ b/public/index.html @@ -0,0 +1,71 @@ + + + + + + АКТ Прием POS + + + + + + + + + + + + + + + + + +
+ + +
+ + + +
+ +
+ +
+
+ +
+
+ + + +
+ + + +
+ +
+ + + +

+    
+ + + + diff --git a/public/js/citydetails.js b/public/js/citydetails.js new file mode 100644 index 0000000..a6e84d3 --- /dev/null +++ b/public/js/citydetails.js @@ -0,0 +1,251 @@ +document.addEventListener("DOMContentLoaded", function () { + loadCityDetails() +}); + + +$(function () { + $('#datepicker').datepicker({ + closeText: "Закрыть", + prevText: "Пред", + nextText: "След", + currentText: "Сегодня", + monthNames: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", + "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], + monthNamesShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", + "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], + dayNames: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"], + dayNamesShort: ["вск", "пнд", "втр", "срд", "чтв", "птн", "сбт"], + dayNamesMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], + weekHeader: "Нед", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" + }); + + $('#datepicker').datepicker('setDate', new Date()); +}); + +const cities = [ + "Абаза", "Абакан", "Абдулино", "Абинск", "Агидель", "Агрыз", "Адыгейск", "Азнакаево", "Азов", "Ак-Довурак", "Аксай", "Алагир", "Алапаевск", "Алатырь", "Алдан", "Алейск", "Александров", "Александровск", "Александровск-Сахалинский", "Алексеевка", "Алексин", "Алзамай", "Алупка", "Алушта", "Альметьевск", "Амурск", "Анадырь", "Анапа", "Ангарск", "Андреаполь", "Анжеро-Судженск", "Анива", "Апатиты", "Апрелевка", "Апшеронск", "Арамиль", "Аргун", "Ардатов", "Ардон", "Арзамас", "Аркадак", "Армавир", "Армянск", "Арсеньев", "Арск", "Артём", "Артёмовск", "Артёмовский", "Архангельск", "Асбест", "Асино", "Астрахань", "Аткарск", "Ахтубинск", "Ачинск", "Аша", "Бабаево", "Бабушкин", "Бавлы", "Багратионовск", "Байкальск", "Баймак", "Бакал", "Баксан", "Балабаново", "Балаково", "Балахна", "Балашиха", "Балашов", "Балей", "Балтийск", "Барабинск", "Барнаул", "Барыш", "Батайск", "Бахчисарай", "Бежецк", "Белая Калитва", "Белая Холуница", "Белгород", "Белебей", "Белёв", "Белинский", "Белово", "Белогорск", "Белогорск", "Белозерск", "Белокуриха", "Беломорск", "Белоозёрский", "Белорецк", "Белореченск", "Белоусово", "Белоярский", "Белый", "Бердск", "Березники", "Берёзовский", "Берёзовский", "Беслан", "Бийск", "Бикин", "Билибино", "Биробиджан", "Бирск", "Бирюсинск", "Бирюч", "Благовещенск", "Благовещенск", "Благодарный", "Бобров", "Богданович", "Богородицк", "Богородск", "Боготол", "Богучар", "Бодайбо", "Бокситогорск", "Болгар", "Бологое", "Болотное", "Болохово", "Болхов", "Большой Камень", "Бор", "Борзя", "Борисоглебск", "Боровичи", "Боровск", "Бородино", "Братск", "Бронницы", "Брянск", "Бугульма", "Бугуруслан", "Будённовск", "Бузулук", "Буинск", "Буй", "Буйнакск", "Бутурлиновка", "Валдай", "Валуйки", "Велиж", "Великие Луки", "Великий Новгород", "Великий Устюг", "Вельск", "Венёв", "Верещагино", "Верея", "Верхнеуральск", "Верхний Тагил", "Верхний Уфалей", "Верхняя Пышма", "Верхняя Салда", "Верхняя Тура", "Верхотурье", "Верхоянск", "Весьегонск", "Ветлуга", "Видное", "Вилюйск", "Вилючинск", "Вихоревка", "Вичуга", "Владивосток", "Владикавказ", "Владимир", "Волгоград", "Волгодонск", "Волгореченск", "Волжск", "Волжский", "Вологда", "Володарск", "Волоколамск", "Волосово", "Волхов", "Волчанск", "Вольск", "Воркута", "Воронеж", "Ворсма", "Воскресенск", "Воткинск", "Всеволожск", "Вуктыл", "Выборг", "Выкса", "Высоковск", "Высоцк", "Вытегра", "Вышний Волочёк", "Вяземский", "Вязники", "Вязьма", "Вятские Поляны", "Гаврилов Посад", "Гаврилов-Ям", "Гагарин", "Гаджиево", "Гай", "Галич", "Гатчина", "Гвардейск", "Гдов", "Геленджик", "Георгиевск", "Глазов", "Голицыно", "Горбатов", "Горно-Алтайск", "Горнозаводск", "Горняк", "Городец", "Городище", "Городовиковск", "Гороховец", "Горячий Ключ", "Грайворон", "Гремячинск", "Грозный", "Грязи", "Грязовец", "Губаха", "Губкин", "Губкинский", "Гудермес", "Гуково", "Гулькевичи", "Гурьевск", "Гурьевск", "Гусев", "Гусиноозёрск", "Гусь-Хрустальный", "Давлеканово", "Дагестанские Огни", "Далматово", "Дальнегорск", "Дальнереченск", "Данилов", "Данков", "Дегтярск", "Дедовск", "Демидов", "Дербент", "Десногорск", "Джанкой", "Дзержинск", "Дзержинский", "Дивногорск", "Дигора", "Димитровград", "Дмитриев", "Дмитров", "Дмитровск", "Дно", "Добрянка", "Долгопрудный", "Долинск", "Домодедово", "Донецк", "Донской", "Дорогобуж", "Дрезна", "Дубна", "Дубовка", "Дудинка", "Духовщина", "Дюртюли", "Дятьково", "Евпатория", "Егорьевск", "Ейск", "Екатеринбург", "Елабуга", "Елец", "Елизово", "Ельня", "Еманжелинск", "Емва", "Енисейск", "Ермолино", "Ершов", "Ессентуки", "Ефремов", "Железноводск", "Железногорск", "Железногорск", "Железногорск-Илимский", "Жердевка", "Жигулёвск", "Жиздра", "Жирновск", "Жуков", "Жуковка", "Жуковский", "Завитинск", "Заводоуковск", "Заволжск", "Заволжье", "Задонск", "Заинск", "Закаменск", "Заозёрный", "Заозёрск", "Западная Двина", "Заполярный", "Зарайск", "Заречный", "Заречный", "Заринск", "Звенигово", "Звенигород", "Зверево", "Зеленогорск", "Зеленоградск", "Зеленодольск", "Зеленокумск", "Зерноград", "Зея", "Зима", "Златоуст", "Злынка", "Змеиногорск", "Знаменск", "Зубцов", "Зуевка", "Ивангород", "Иваново", "Ивантеевка", "Ивдель", "Игарка", "Ижевск", "Избербаш", "Изобильный", "Иланский", "Инза", "Иннополис", "Инсар", "Инта", "Ипатово", "Ирбит", "Иркутск", "Исилькуль", "Искитим", "Истра", "Ишим", "Ишимбай", "Йошкар-Ола", "Кадников", "Казань", "Калач", "Калач-на-Дону", "Калачинск", "Калининград", "Калининск", "Калтан", "Калуга", "Калязин", "Камбарка", "Каменка", "Каменногорск", "Каменск-Уральский", "Каменск-Шахтинский", "Камень-на-Оби", "Камешково", "Камызяк", "Камышин", "Камышлов", "Канаш", "Кандалакша", "Канск", "Карабаново", "Карабаш", "Карабулак", "Карасук", "Карачаевск", "Карачев", "Каргат", "Каргополь", "Карпинск", "Карталы", "Касимов", "Касли", "Каспийск", "Катав-Ивановск", "Катайск", "Качканар", "Кашин", "Кашира", "Кедровый", "Кемерово", "Кемь", "Керчь", "Кизел", "Кизилюрт", "Кизляр", "Кимовск", "Кимры", "Кингисепп", "Кинель", "Кинешма", "Киреевск", "Киренск", "Киржач", "Кириллов", "Кириши", "Киров", "Киров", "Кировград", "Кирово-Чепецк", "Кировск", "Кировск", "Кирс", "Кирсанов", "Киселёвск", "Кисловодск", "Клин", "Клинцы", "Княгинино", "Ковдор", "Ковров", "Ковылкино", "Когалым", "Кодинск", "Козельск", "Козловка", "Козьмодемьянск", "Кола", "Кологрив", "Коломна", "Колпашево", "Кольчугино", "Коммунар", "Комсомольск", "Комсомольск-на-Амуре", "Конаково", "Кондопога", "Кондрово", "Константиновск", "Копейск", "Кораблино", "Кореновск", "Коркино", "Королёв", "Короча", "Корсаков", "Коряжма", "Костерёво", "Костомукша", "Кострома", "Котельники", "Котельниково", "Котельнич", "Котлас", "Котово", "Котовск", "Кохма", "Красавино", "Красноармейск", "Красноармейск", "Красновишерск", "Красногорск", "Краснодар", "Краснозаводск", "Краснознаменск", "Краснознаменск", "Краснокаменск", "Краснокамск", "Красноперекопск", "Краснослободск", "Краснослободск", "Краснотурьинск", "Красноуральск", "Красноуфимск", "Красноярск", "Красный Кут", "Красный Сулин", "Красный Холм", "Кремёнки", "Кропоткин", "Крымск", "Кстово", "Кубинка", "Кувандык", "Кувшиново", "Кудрово", "Кудымкар", "Кузнецк", "Куйбышев", "Кукмор", "Кулебаки", "Кумертау", "Кунгур", "Купино", "Курган", "Курганинск", "Курильск", "Курлово", "Куровское", "Курск", "Куртамыш", "Курчалой", "Курчатов", "Куса", "Кушва", "Кызыл", "Кыштым", "Кяхта", "Лабинск", "Лабытнанги", "Лагань", "Ладушкин", "Лаишево", "Лакинск", "Лангепас", "Лахденпохья", "Лебедянь", "Лениногорск", "Ленинск", "Ленинск-Кузнецкий", "Ленск", "Лермонтов", "Лесной", "Лесозаводск", "Лесосибирск", "Ливны", "Ликино-Дулёво", "Липецк", "Липки", "Лиски", "Лихославль", "Лобня", "Лодейное Поле", "Лосино-Петровский", "Луга", "Луза", "Лукоянов", "Луховицы", "Лысково", "Лысьва", "Лыткарино", "Льгов", "Любань", "Люберцы", "Любим", "Людиново", "Лянтор", "Магадан", "Магас", "Магнитогорск", "Майкоп", "Майский", "Макаров", "Макарьев", "Макушино", "Малая Вишера", "Малгобек", "Малмыж", "Малоархангельск", "Малоярославец", "Мамадыш", "Мамоново", "Мантурово", "Мариинск", "Мариинский Посад", "Маркс", "Махачкала", "Мглин", "Мегион", "Медвежьегорск", "Медногорск", "Медынь", "Межгорье", "Междуреченск", "Мезень", "Меленки", "Мелеуз", "Менделеевск", "Мензелинск", "Мещовск", "Миасс", "Микунь", "Миллерово", "Минеральные Воды", "Минусинск", "Миньяр", "Мирный", "Мирный", "Михайлов", "Михайловка", "Михайловск", "Михайловск", "Мичуринск", "Могоча", "Можайск", "Можга", "Моздок", "Мончегорск", "Морозовск", "Моршанск", "Мосальск", "Москва", "Муравленко", "Мураши", "Мурино", "Мурманск", "Муром", "Мценск", "Мыски", "Мытищи", "Мышкин", "Набережные Челны", "Навашино", "Наволоки", "Надым", "Назарово", "Назрань", "Называевск", "Нальчик", "Нариманов", "Наро-Фоминск", "Нарткала", "Нарьян-Мар", "Находка", "Невель", "Невельск", "Невинномысск", "Невьянск", "Нелидово", "Неман", "Нерехта", "Нерчинск", "Нерюнгри", "Нестеров", "Нефтегорск", "Нефтекамск", "Нефтекумск", "Нефтеюганск", "Нея", "Нижневартовск", "Нижнекамск", "Нижнеудинск", "Нижние Серги", "Нижний Ломов", "Нижний Новгород", "Нижний Тагил", "Нижняя Салда", "Нижняя Тура", "Николаевск", "Николаевск-на-Амуре", "Никольск", "Никольск", "Никольское", "Новая Ладога", "Новая Ляля", "Новоалександровск", "Новоалтайск", "Новоаннинский", "Нововоронеж", "Новодвинск", "Новозыбков", "Новокубанск", "Новокузнецк", "Новокуйбышевск", "Новомичуринск", "Новомосковск", "Новопавловск", "Новоржев", "Новороссийск", "Новосибирск", "Новосиль", "Новосокольники", "Новотроицк", "Новоузенск", "Новоульяновск", "Новоуральск", "Новохопёрск", "Новочебоксарск", "Новочеркасск", "Новошахтинск", "Новый Оскол", "Новый Уренгой", "Ногинск", "Нолинск", "Норильск", "Ноябрьск", "Нурлат", "Нытва", "Нюрба", "Нягань", "Нязепетровск", "Няндома", "Облучье", "Обнинск", "Обоянь", "Обь", "Одинцово", "Озёрск", "Озёрск", "Озёры", "Октябрьск", "Октябрьский", "Окуловка", "Олёкминск", "Оленегорск", "Олонец", "Омск", "Омутнинск", "Онега", "Опочка", "Орёл", "Оренбург", "Орехово-Зуево", "Орлов", "Орск", "Оса", "Осинники", "Осташков", "Остров", "Островной", "Острогожск", "Отрадное", "Отрадный", "Оха", "Оханск", "Очёр", "Павлово", "Павловск", "Павловский Посад", "Палласовка", "Партизанск", "Певек", "Пенза", "Первомайск", "Первоуральск", "Перевоз", "Пересвет", "Переславль-Залесский", "Пермь", "Пестово", "Петров Вал", "Петровск", "Петровск-Забайкальский", "Петрозаводск", "Петропавловск-Камчатский", "Петухово", "Петушки", "Печора", "Печоры", "Пикалёво", "Пионерский", "Питкяранта", "Плавск", "Пласт", "Плёс", "Поворино", "Подольск", "Подпорожье", "Покачи", "Покров", "Покровск", "Полевской", "Полесск", "Полысаево", "Полярные Зори", "Полярный", "Поронайск", "Порхов", "Похвистнево", "Почеп", "Починок", "Пошехонье", "Правдинск", "Приволжск", "Приморск", "Приморск", "Приморско-Ахтарск", "Приозерск", "Прокопьевск", "Пролетарск", "Протвино", "Прохладный", "Псков", "Пугачёв", "Пудож", "Пустошка", "Пучеж", "Пушкино", "Пущино", "Пыталово", "Пыть-Ях", "Пятигорск", "Радужный", "Радужный", "Райчихинск", "Раменское", "Рассказово", "Ревда", "Реж", "Реутов", "Ржев", "Родники", "Рославль", "Россошь", "Ростов", "Ростов-на-Дону", "Рошаль", "Ртищево", "Рубцовск", "Рудня", "Руза", "Рузаевка", "Рыбинск", "Рыбное", "Рыльск", "Ряжск", "Рязань", "Саки", "Салават", "Салаир", "Салехард", "Сальск", "Самара", "Санкт-Петербург", "Саранск", "Сарапул", "Саратов", "Саров", "Сасово", "Сатка", "Сафоново", "Саяногорск", "Саянск", "Светлогорск", "Светлоград", "Светлый", "Светогорск", "Свирск", "Свободный", "Себеж", "Севастополь", "Северо-Курильск", "Северобайкальск", "Северодвинск", "Североморск", "Североуральск", "Северск", "Севск", "Сегежа", "Сельцо", "Семёнов", "Семикаракорск", "Семилуки", "Сенгилей", "Серафимович", "Сергач", "Сергиев Посад", "Сердобск", "Серов", "Серпухов", "Сертолово", "Сибай", "Сим", "Симферополь", "Сковородино", "Скопин", "Славгород", "Славск", "Славянск-на-Кубани", "Сланцы", "Слободской", "Слюдянка", "Смоленск", "Снежинск", "Снежногорск", "Собинка", "Советск", "Советск", "Советск", "Советская Гавань", "Советский", "Сокол", "Солигалич", "Соликамск", "Солнечногорск", "Соль-Илецк", "Сольвычегодск", "Сольцы", "Сорочинск", "Сорск", "Сортавала", "Сосенский", "Сосновка", "Сосновоборск", "Сосновый Бор", "Сосногорск", "Сочи", "Спас-Деменск", "Спас-Клепики", "Спасск", "Спасск-Дальний", "Спасск-Рязанский", "Среднеколымск", "Среднеуральск", "Сретенск", "Ставрополь", "Старая Купавна", "Старая Русса", "Старица", "Стародуб", "Старый Крым", "Старый Оскол", "Стерлитамак", "Стрежевой", "Строитель", "Струнино", "Ступино", "Суворов", "Судак", "Суджа", "Судогда", "Суздаль", "Сунжа", "Суоярви", "Сураж", "Сургут", "Суровикино", "Сурск", "Сусуман", "Сухиничи", "Сухой Лог", "Сызрань", "Сыктывкар", "Сысерть", "Сычёвка", "Сясьстрой", "Тавда", "Таганрог", "Тайга", "Тайшет", "Талдом", "Талица", "Тамбов", "Тара", "Тарко-Сале", "Таруса", "Татарск", "Таштагол", "Тверь", "Теберда", "Тейково", "Темников", "Темрюк", "Терек", "Тетюши", "Тимашёвск", "Тихвин", "Тихорецк", "Тобольск", "Тогучин", "Тольятти", "Томари", "Томмот", "Томск", "Топки", "Торжок", "Торопец", "Тосно", "Тотьма", "Трёхгорный", "Троицк", "Трубчевск", "Туапсе", "Туймазы", "Тула", "Тулун", "Туран", "Туринск", "Тутаев", "Тында", "Тырныауз", "Тюкалинск", "Тюмень", "Уварово", "Углегорск", "Углич", "Удачный", "Удомля", "Ужур", "Узловая", "Улан-Удэ", "Ульяновск", "Унеча", "Урай", "Урень", "Уржум", "Урус-Мартан", "Урюпинск", "Усинск", "Усмань", "Усолье", "Усолье-Сибирское", "Уссурийск", "Усть-Джегута", "Усть-Илимск", "Усть-Катав", "Усть-Кут", "Усть-Лабинск", "Устюжна", "Уфа", "Ухта", "Учалы", "Уяр", "Фатеж", "Феодосия", "Фокино", "Фокино", "Фролово", "Фрязино", "Фурманов", "Хабаровск", "Хадыженск", "Ханты-Мансийск", "Харабали", "Харовск", "Хасавюрт", "Хвалынск", "Хилок", "Химки", "Холм", "Холмск", "Хотьково", "Цивильск", "Цимлянск", "Циолковский", "Чадан", "Чайковский", "Чапаевск", "Чаплыгин", "Чебаркуль", "Чебоксары", "Чегем", "Чекалин", "Челябинск", "Чердынь", "Черемхово", "Черепаново", "Череповец", "Черкесск", "Чёрмоз", "Черноголовка", "Черногорск", "Чернушка", "Черняховск", "Чехов", "Чистополь", "Чита", "Чкаловск", "Чудово", "Чулым", "Чусовой", "Чухлома", "Шагонар", "Шадринск", "Шали", "Шарыпово", "Шарья", "Шатура", "Шахты", "Шахунья", "Шацк", "Шебекино", "Шелехов", "Шенкурск", "Шилка", "Шимановск", "Шиханы", "Шлиссельбург", "Шумерля", "Шумиха", "Шуя", "Щёкино", "Щёлкино", "Щёлково", "Щигры", "Щучье", "Электрогорск", "Электросталь", "Электроугли", "Элиста", "Энгельс", "Эртиль", "Югорск", "Южа", "Южно-Сахалинск", "Южно-Сухокумск", "Южноуральск", "Юрга", "Юрьев-Польский", "Юрьевец", "Юрюзань", "Юхнов", "Ядрин", "Якутск", "Ялта", "Ялуторовск", "Янаул", "Яранск", "Яровое", "Ярославль", "Ярцево", "Ясногорск", "Ясный", "Яхрома" +]; + +let currentSelection = null; // To store the currently selected city + +function filterCities() { + const input = document.getElementById("cityInput"); + const cityList = document.getElementById("cityList"); + const autocompleteText = document.getElementById("autocompleteText"); + cityList.innerHTML = ""; + + if (input.value.length === 0) { + cityList.style.display = 'none'; + input.classList.remove('valid', 'invalid'); + currentSelection = null; // Reset current selection + autocompleteText.innerText = ''; // Clear autocomplete text + return; + } + + // Convert the input value using keyboardLayoutSwitch + const convertedInputValue = keyboardLayoutSwitch(input.value, 'en-ru'); + + + const filteredCities = cities.filter(city => city.toLowerCase().startsWith(convertedInputValue.toLowerCase())); + + if (filteredCities.length > 0) { + // Remove the first letter from the matching city and set it as autocomplete text + const matchCity = filteredCities[0]; + autocompleteText.innerText = matchCity; + // autocompleteText.innerText = matchCity.slice(1); // remove the first letter + currentSelection = matchCity; // Update current selection + + filteredCities.forEach(city => { + const div = document.createElement("div"); + div.textContent = city; + div.classList.add("city-item"); + div.onclick = () => selectCity(city); + cityList.appendChild(div); + }); + cityList.style.display = 'block'; + input.classList.remove('invalid'); // Remove invalid class if there are matches + } else { + cityList.style.display = 'none'; + input.classList.add('invalid'); // Add invalid class if no matches + currentSelection = null; // Reset current selection + autocompleteText.innerText = ''; // Clear autocomplete text if no matches + } + +} + +function selectCity(city) { + const input = document.getElementById("cityInput"); + input.value = city; + input.classList.add('valid'); // Add valid class when a city is selected + input.classList.remove('invalid'); // Remove invalid class + currentSelection = city; // Update current selection + document.getElementById("cityList").style.display = 'none'; // Hide the list + document.getElementById("autocompleteText").innerText = ''; // Clear autocomplete text + getCityDetails() +} + +// When clicking outside, select the current city if valid +window.onclick = function (event) { + const input = document.getElementById("cityInput"); + if (!event.target.matches('#cityInput') && !event.target.matches('#cityList, #cityList *')) { + if (currentSelection) { + selectCity(currentSelection); // Select current city if available + + } + document.getElementById("cityList").style.display = 'none'; // Hide the list + } +} + +function getCityDetails() { + const bankSelect = document.getElementById("banksList"); + const selectedBank = bankSelect.options[bankSelect.selectedIndex].value; // Get selected bank + const cityInput = document.getElementById("cityInput").value; // Get city input + const datepickerInput = document.getElementById("datepicker").value; // Get date from datepicker + saveCityDetails(selectedBank, cityInput, datepickerInput); + // Concatenate the details into the cityDetails variable + const cityDetails = `${selectedBank} ${cityInput} ${datepickerInput}`.trim(); // Trim to remove any extra spaces + console.log(cityDetails); // For debugging + return cityDetails; // Return the cityDetails string for further use +} + +function saveCityDetails(selectedBank, cityInput, datepickerInput) { + var citydetails = { + selectedBank, + cityInput, + datepickerInput + }; + console.log('citydetails object is ', citydetails); + localStorage.setItem("citydetails", JSON.stringify(citydetails)); +} + +function loadCityDetails() { + var citydetails = JSON.parse(localStorage.getItem("citydetails")); + console.log('citydetails is ', citydetails); + + if (citydetails) { + if (citydetails.selectedBank) { + // Change the bank selection + const bankSelect = document.getElementById("banksList"); + bankSelect.value = citydetails.selectedBank; // Set selected bank + + } + if (citydetails.cityInput) { + // Change the city input value + const cityInput = document.getElementById("cityInput"); + $("#cityInput").val(citydetails.cityInput); + // cityInput.value = сitydetails.cityInput; // Set city input + } + + if (citydetails.datepickerInput) { + // console.log(citydetails.datepickerInput); + + $(function () { + $('#datepicker').datepicker({ + closeText: "Закрыть", + prevText: "Пред", + nextText: "След", + currentText: "Сегодня", + monthNames: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", + "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], + monthNamesShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", + "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], + dayNames: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"], + dayNamesShort: ["вск", "пнд", "втр", "срд", "чтв", "птн", "сбт"], + dayNamesMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], + weekHeader: "Нед", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" + }); + + $('#datepicker').datepicker('setDate', citydetails.datepickerInput); + + }); + + } + + + + } +} + + + + +$(document).ready( function() { + document.getElementById('downloadButton').addEventListener('click', async () => { + // const filename = 'testfilename'; + const username = document.getElementById("userName").innerText; + + + const filename = getCityDetails()+' '+ username +'.xlsx'; +console.log(filename); + + // const filename = 'example.xlsx'; // Specify the filename you want + const url = `http://192.168.1.6/download?filename=${encodeURIComponent(filename)}`; + + try { + const response = await fetch(url); + + if (!response.ok) { + throw new Error('Network response was not ok'); + } + + // Create a blob from the response + const blob = await response.blob(); + + // Create a link element + const a = document.createElement('a'); + a.href = URL.createObjectURL(blob); + a.download = filename; // Set the filename for download + document.body.appendChild(a); + a.click(); + + // Clean up + document.body.removeChild(a); + } catch (error) { + console.error('Error downloading the file:', error); + } +}); + + +}); + + +// document.getElementById('downloadButtson').addEventListener('click', async () => { +// const filename = getCityDetails(); +// console.log(filename); + +// // const filename = 'example.xlsx'; // Specify the filename you want +// const url = `http://${serverEnv.ip}/download?filename=${encodeURIComponent(filename)}`; + +// try { +// const response = await fetch(url); + +// if (!response.ok) { +// throw new Error('Network response was not ok'); +// } + +// // Create a blob from the response +// const blob = await response.blob(); + +// // Create a link element +// const a = document.createElement('a'); +// a.href = URL.createObjectURL(blob); +// a.download = filename; // Set the filename for download +// document.body.appendChild(a); +// a.click(); + +// // Clean up +// document.body.removeChild(a); +// } catch (error) { +// console.error('Error downloading the file:', error); +// } +// }); \ No newline at end of file diff --git a/public/js/jquery-3.5.1.min.js b/public/js/jquery-3.5.1.min.js new file mode 100644 index 0000000..c5e96cc --- /dev/null +++ b/public/js/jquery-3.5.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}: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},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="
",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?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},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=V(e||this.defaultElement||this)[0],this.element=V(e),this.uuid=E++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=V(),this.hoverable=V(),this.focusable=V(),this.classesElementLookup={},e!==this&&(V.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=V(e.style?e.ownerDocument:e.document||e),this.window=V(this.document[0].defaultView||this.document[0].parentWindow)),this.options=V.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:V.noop,_create:V.noop,_init:V.noop,destroy:function(){var i=this;this._destroy(),V.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:V.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return V.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=V.widget.extend({},this.options[t]),n=0;n
")).children()[0],V("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i)},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthk(x(s),x(n))?o.important="horizontal":o.important="vertical",u.using.call(this,t,o)}),a.offset(V.extend(h,{using:t}))})):i.apply(this,arguments)},V.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,s=s.width,o=t.left-e.collisionPosition.marginLeft,a=n-o,r=o+e.collisionWidth-s-n;e.collisionWidth>s?0n?0o.mod/2?s+=o.mod:s-n>o.mod/2&&(s-=o.mod)),l[i]=_((n-s)*a+s,e)))}),this[t](l)},blend:function(t){var e,i,s;return 1===this._rgba[3]?this:(e=this._rgba.slice(),i=e.pop(),s=p(t)._rgba,p(u.map(e,function(t,e){return(1-i)*s[e]+i*t})))},toRgbaString:function(){var t="rgba(",e=u.map(this._rgba,function(t,e){return null!=t?t:2").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:i.width(),height:i.height()},n=document.activeElement;try{n.id}catch(t){n=document.body}return i.wrap(t),i[0]!==n&&!V.contains(i[0],n)||V(n).trigger("focus"),t=i.parent(),"static"===i.css("position")?(t.css({position:"relative"}),i.css({position:"relative"})):(V.extend(s,{position:i.css("position"),zIndex:i.css("z-index")}),V.each(["top","left","bottom","right"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]="auto")}),i.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),i.css(e),t.css(s).show()},removeWrapper:function(t){var e=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),t[0]!==e&&!V.contains(t[0],e)||V(e).trigger("focus")),t}}),V.extend(V.effects,{version:"1.14.0",define:function(t,e,i){return i||(i=e,e="effect"),V.effects.effect[t]=i,V.effects.effect[t].mode=e,i},scaledDimensions:function(t,e,i){var s;return 0===e?{height:0,width:0,outerHeight:0,outerWidth:0}:(s="horizontal"!==i?(e||100)/100:1,i="vertical"!==i?(e||100)/100:1,{height:t.height()*i,width:t.width()*s,outerHeight:t.outerHeight()*i,outerWidth:t.outerWidth()*s})},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();1").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight"),float:t.css("float")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),t.data(w+"placeholder",e)),t.css({position:i,left:s.left,top:s.top}),e},removePlaceholder:function(t){var e=w+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(t){V.effects.restoreStyle(t),V.effects.removePlaceholder(t)},setTransition:function(s,t,n,o){return o=o||{},V.each(t,function(t,e){var i=s.cssUnit(e);0");l.appendTo("body").addClass(t.className).css({top:s.top-a,left:s.left-o,height:i.innerHeight(),width:i.innerWidth(),position:n?"fixed":"absolute"}).animate(r,t.duration,t.easing,function(){l.remove(),"function"==typeof e&&e()})}}),V.fx.step.clip=function(t){t.clipInit||(t.start=V(t.elem).cssClip(),"string"==typeof t.end&&(t.end=Z(t.end,t.elem)),t.clipInit=!0),V(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})},b={},V.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,t){b[t]=function(t){return Math.pow(t,e+2)}}),V.extend(b,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;t<((e=Math.pow(2,--i))-1)/11;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),V.each(b,function(t,e){V.easing["easeIn"+t]=e,V.easing["easeOut"+t]=function(t){return 1-e(1-t)},V.easing["easeInOut"+t]=function(t){return t<.5?e(2*t)/2:1-e(-2*t+2)/2}});var tt,et,S,it=V.effects,st=(V.effects.define("blind","hide",function(t,e){var i={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},s=V(this),n=t.direction||"up",o=s.cssClip(),a={clip:V.extend({},o)},r=V.effects.createPlaceholder(s);a.clip[i[n][0]]=a.clip[i[n][1]],"show"===t.mode&&(s.cssClip(a.clip),r&&r.css(V.effects.clipToBox(a)),a.clip=o),r&&r.animate(V.effects.clipToBox(a),t.duration,t.easing),s.animate(a,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("bounce",function(t,e){var i,s,n=V(this),o=t.mode,a="hide"===o,o="show"===o,r=t.direction||"up",l=t.distance,h=t.times||5,c=2*h+(o||a?1:0),u=t.duration/c,d=t.easing,p="up"===r||"down"===r?"top":"left",f="up"===r||"left"===r,g=0,t=n.queue().length;for(V.effects.createPlaceholder(n),r=n.css(p),l=l||n["top"==p?"outerHeight":"outerWidth"]()/3,o&&((s={opacity:1})[p]=r,n.css("opacity",0).css(p,f?2*-l:2*l).animate(s,u,d)),a&&(l/=Math.pow(2,h-1)),(s={})[p]=r;g").css({position:"absolute",visibility:"visible",left:-s*p,top:-i*f}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:p,height:f,left:n+(u?a*p:0),top:o+(u?r*f:0),opacity:u?0:1}).animate({left:n+(u?0:a*p),top:o+(u?0:r*f),opacity:u?1:0},t.duration||500,t.easing,m)}),V.effects.define("fade","toggle",function(t,e){var i="show"===t.mode;V(this).css("opacity",i?0:1).animate({opacity:i?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("fold","hide",function(e,t){var i=V(this),s=e.mode,n="show"===s,s="hide"===s,o=e.size||15,a=/([0-9]+)%/.exec(o),r=!!e.horizFirst?["right","bottom"]:["bottom","right"],l=e.duration/2,h=V.effects.createPlaceholder(i),c=i.cssClip(),u={clip:V.extend({},c)},d={clip:V.extend({},c)},p=[c[r[0]],c[r[1]]],f=i.queue().length;a&&(o=parseInt(a[1],10)/100*p[s?0:1]),u.clip[r[0]]=o,d.clip[r[0]]=o,d.clip[r[1]]=0,n&&(i.cssClip(d.clip),h&&h.css(V.effects.clipToBox(d)),d.clip=c),i.queue(function(t){h&&h.animate(V.effects.clipToBox(u),l,e.easing).animate(V.effects.clipToBox(d),l,e.easing),t()}).animate(u,l,e.easing).animate(d,l,e.easing).queue(t),V.effects.unshift(i,f,4)}),V.effects.define("highlight","show",function(t,e){var i=V(this),s={backgroundColor:i.css("backgroundColor")};"hide"===t.mode&&(s.opacity=0),V.effects.saveStyle(i),i.css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:e})}),V.effects.define("size",function(s,e){var n,i=V(this),t=["fontSize"],o=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],a=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],r=s.mode,l="effect"!==r,h=s.scale||"both",c=s.origin||["middle","center"],u=i.css("position"),d=i.position(),p=V.effects.scaledDimensions(i),f=s.from||p,g=s.to||V.effects.scaledDimensions(i,0);V.effects.createPlaceholder(i),"show"===r&&(r=f,f=g,g=r),n={from:{y:f.height/p.height,x:f.width/p.width},to:{y:g.height/p.height,x:g.width/p.width}},"box"!==h&&"both"!==h||(n.from.y!==n.to.y&&(f=V.effects.setTransition(i,o,n.from.y,f),g=V.effects.setTransition(i,o,n.to.y,g)),n.from.x!==n.to.x&&(f=V.effects.setTransition(i,a,n.from.x,f),g=V.effects.setTransition(i,a,n.to.x,g))),"content"!==h&&"both"!==h||n.from.y!==n.to.y&&(f=V.effects.setTransition(i,t,n.from.y,f),g=V.effects.setTransition(i,t,n.to.y,g)),c&&(r=V.effects.getBaseline(c,p),f.top=(p.outerHeight-f.outerHeight)*r.y+d.top,f.left=(p.outerWidth-f.outerWidth)*r.x+d.left,g.top=(p.outerHeight-g.outerHeight)*r.y+d.top,g.left=(p.outerWidth-g.outerWidth)*r.x+d.left),delete f.outerHeight,delete f.outerWidth,i.css(f),"content"!==h&&"both"!==h||(o=o.concat(["marginTop","marginBottom"]).concat(t),a=a.concat(["marginLeft","marginRight"]),i.find("*[width]").each(function(){var t=V(this),e=V.effects.scaledDimensions(t),i={height:e.height*n.from.y,width:e.width*n.from.x,outerHeight:e.outerHeight*n.from.y,outerWidth:e.outerWidth*n.from.x},e={height:e.height*n.to.y,width:e.width*n.to.x,outerHeight:e.height*n.to.y,outerWidth:e.width*n.to.x};n.from.y!==n.to.y&&(i=V.effects.setTransition(t,o,n.from.y,i),e=V.effects.setTransition(t,o,n.to.y,e)),n.from.x!==n.to.x&&(i=V.effects.setTransition(t,a,n.from.x,i),e=V.effects.setTransition(t,a,n.to.x,e)),l&&V.effects.saveStyle(t),t.css(i),t.animate(e,s.duration,s.easing,function(){l&&V.effects.restoreStyle(t)})})),i.animate(g,{queue:!1,duration:s.duration,easing:s.easing,complete:function(){var t=i.offset();0===g.opacity&&i.css("opacity",f.opacity),l||(i.css("position","static"===u?"relative":u).offset(t),V.effects.saveStyle(i)),e()}})}),V.effects.define("scale",function(t,e){var i=V(this),s=t.mode,s=parseInt(t.percent,10)||(0===parseInt(t.percent,10)||"effect"!==s?0:100),i=V.extend(!0,{from:V.effects.scaledDimensions(i),to:V.effects.scaledDimensions(i,s,t.direction||"both"),origin:t.origin||["middle","center"]},t);t.fade&&(i.from.opacity=1,i.to.opacity=0),V.effects.effect.size.call(this,i,e)}),V.effects.define("puff","hide",function(t,e){t=V.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});V.effects.effect.scale.call(this,t,e)}),V.effects.define("pulsate","show",function(t,e){var i=V(this),s=t.mode,n="show"===s,o=2*(t.times||5)+(n||"hide"===s?1:0),a=t.duration/o,r=0,l=1,s=i.queue().length;for(!n&&i.is(":visible")||(i.css("opacity",0).show(),r=1);l li > :first-child").add(t.find("> :not(li)").filter(function(t){return t%2==0}))},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=V(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():V()}},_createIcons:function(){var t,e=this.options.icons;e&&(t=V(""),this._addClass(t,"ui-accordion-header-icon","ui-icon "+e.header),t.prependTo(this.headers),t=this.active.children(".ui-accordion-header-icon"),this._removeClass(t,e.header)._addClass(t,null,e.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){"active"===t?this._activate(e):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),"icons"===t&&(this._destroyIcons(),e)&&this._createIcons())},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=V.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(V(t.target).attr("tabIndex",-1),V(n).attr("tabIndex",0),V(n).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===V.ui.keyCode.UP&&t.ctrlKey&&V(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=V()):!1===t.active?this._activate(0):this.active.length&&!V.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=V()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;"function"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var t=V(this),e=t.uniqueId().attr("id"),i=t.next(),s=i.uniqueId().attr("id");t.attr("aria-controls",s),i.attr("aria-labelledby",e)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(t.event),"fill"===e?(i=s.height(),this.element.siblings(":visible").each(function(){var t=V(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=V(this).outerHeight(!0)}),this.headers.next().each(function(){V(this).height(Math.max(0,i-V(this).innerHeight()+V(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.headers.next().each(function(){var t=V(this).is(":visible");t||V(this).show(),i=Math.max(i,V(this).css("height","").height()),t||V(this).hide()}).height(i))},_activate:function(t){t=this._findActive(t)[0];t!==this.active[0]&&(t=t||this.active[0],this._eventHandler({target:t,currentTarget:t,preventDefault:V.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):V()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&V.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=V(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?V():s.next(),r=i.next(),r={oldHeader:i,oldPanel:r,newHeader:o?V():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger("beforeActivate",t,r)||(e.active=!o&&this.headers.index(s),this.active=n?V():s,this._toggle(r),this._removeClass(i,"ui-accordion-header-active","ui-state-active"),e.icons&&(a=i.children(".ui-accordion-header-icon"),this._removeClass(a,null,e.icons.activeHeader)._addClass(a,null,e.icons.header)),n)||(this._removeClass(s,"ui-accordion-header-collapsed")._addClass(s,"ui-accordion-header-active","ui-state-active"),e.icons&&(t=s.children(".ui-accordion-header-icon"),this._removeClass(t,null,e.icons.header)._addClass(t,null,e.icons.activeHeader)),this._addClass(s.next(),"ui-accordion-content-active"))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),e.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):e.length&&this.headers.filter(function(){return 0===parseInt(V(this).attr("tabIndex"),10)}).attr("tabIndex",-1),e.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,i,e){function s(){o._toggleComplete(e)}var n,o=this,a=0,r=t.css("box-sizing"),l=t.length&&(!i.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=V(t.target),i=V(this.document[0].activeElement);!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active)&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){V.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=V(t.target).closest(".ui-menu-item"),i=V(t.currentTarget),e[0]!==i[0])||i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=V(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case V.ui.keyCode.PAGE_UP:this.previousPage(t);break;case V.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case V.ui.keyCode.HOME:this._move("first","first",t);break;case V.ui.keyCode.END:this._move("last","last",t);break;case V.ui.keyCode.UP:this.previous(t);break;case V.ui.keyCode.DOWN:this.next(t);break;case V.ui.keyCode.LEFT:this.collapse(t);break;case V.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case V.ui.keyCode.ENTER:case V.ui.keyCode.SPACE:this._activate(t);break;case V.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),t=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=V(this),e=t.prev(),i=V("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(t,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=V(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),e=(i=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(i,"ui-menu-item")._addClass(e,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!V.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(e=parseFloat(V.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(V.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-e-i,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&"true"===this.element.prop("contentEditable"),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)i=!1,this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault();else if(!s){var e=V.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){n?(n=!1,t.preventDefault()):this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=V("