From c3a263ffb09f603333269a73cf114acca5989282 Mon Sep 17 00:00:00 2001 From: Nikita Khromov Date: Tue, 9 Mar 2021 18:35:56 +0300 Subject: [PATCH 01/28] Added Zoom plugin --- 3rd-Party.txt | 11 + LICENSE | 21 + README.md | 21 +- config.json | 81 + index.html | 638 ++ index_zoom.html | 213 + licenses/CORSAnywhere.license | 7 + licenses/jQuery.license | 20 + meeting.html | 32 + resources/img/error_icon.png | Bin 0 -> 366 bytes resources/img/faq_arrow_down.png | Bin 0 -> 155 bytes resources/img/icon.png | Bin 0 -> 590 bytes resources/img/icon@2x.png | Bin 0 -> 1041 bytes scripts/zoom.js | 387 + translations/de-DE.json | 7 + translations/es-ES.json | 7 + translations/fr-FR.json | 7 + translations/ru-RU.json | 7 + vendor/jQuery-2.2.2-min/jquery-v2.2.2-min.js | 4 + vendor/select2-4.0.6-rc.1/LICENSE.md | 21 + vendor/select2-4.0.6-rc.1/README.md | 123 + .../select2-4.0.6-rc.1/dist/css/select2.css | 489 ++ .../dist/css/select2.min.css | 1 + .../dist/js/select2.full.js | 6559 +++++++++++++++++ .../dist/js/select2.full.min.js | 1 + vendor/select2-4.0.6-rc.1/dist/js/select2.js | 5847 +++++++++++++++ .../select2-4.0.6-rc.1/dist/js/select2.min.js | 1 + vendor/select2-4.0.6-rc.1/docs/README.md | 1 + .../docs/announcements-4.0.html | 12 + vendor/select2-4.0.6-rc.1/docs/community.html | 12 + vendor/select2-4.0.6-rc.1/docs/examples.html | 12 + vendor/select2-4.0.6-rc.1/docs/index.html | 12 + .../select2-4.0.6-rc.1/docs/options-old.html | 12 + vendor/select2-4.0.6-rc.1/docs/options.html | 12 + vendor/zoom-sdk/index.js | 154 + vendor/zoom-sdk/meeting.js | 112 + vendor/zoom-sdk/tool.js | 332 + vendor/zoom-sdk/vconsole.min.js | 10 + 38 files changed, 15185 insertions(+), 1 deletion(-) create mode 100644 3rd-Party.txt create mode 100644 LICENSE create mode 100644 config.json create mode 100644 index.html create mode 100644 index_zoom.html create mode 100644 licenses/CORSAnywhere.license create mode 100644 licenses/jQuery.license create mode 100644 meeting.html create mode 100644 resources/img/error_icon.png create mode 100644 resources/img/faq_arrow_down.png create mode 100644 resources/img/icon.png create mode 100644 resources/img/icon@2x.png create mode 100644 scripts/zoom.js create mode 100644 translations/de-DE.json create mode 100644 translations/es-ES.json create mode 100644 translations/fr-FR.json create mode 100644 translations/ru-RU.json create mode 100644 vendor/jQuery-2.2.2-min/jquery-v2.2.2-min.js create mode 100644 vendor/select2-4.0.6-rc.1/LICENSE.md create mode 100644 vendor/select2-4.0.6-rc.1/README.md create mode 100644 vendor/select2-4.0.6-rc.1/dist/css/select2.css create mode 100644 vendor/select2-4.0.6-rc.1/dist/css/select2.min.css create mode 100644 vendor/select2-4.0.6-rc.1/dist/js/select2.full.js create mode 100644 vendor/select2-4.0.6-rc.1/dist/js/select2.full.min.js create mode 100644 vendor/select2-4.0.6-rc.1/dist/js/select2.js create mode 100644 vendor/select2-4.0.6-rc.1/dist/js/select2.min.js create mode 100644 vendor/select2-4.0.6-rc.1/docs/README.md create mode 100644 vendor/select2-4.0.6-rc.1/docs/announcements-4.0.html create mode 100644 vendor/select2-4.0.6-rc.1/docs/community.html create mode 100644 vendor/select2-4.0.6-rc.1/docs/examples.html create mode 100644 vendor/select2-4.0.6-rc.1/docs/index.html create mode 100644 vendor/select2-4.0.6-rc.1/docs/options-old.html create mode 100644 vendor/select2-4.0.6-rc.1/docs/options.html create mode 100644 vendor/zoom-sdk/index.js create mode 100644 vendor/zoom-sdk/meeting.js create mode 100644 vendor/zoom-sdk/tool.js create mode 100644 vendor/zoom-sdk/vconsole.min.js diff --git a/3rd-Party.txt b/3rd-Party.txt new file mode 100644 index 00000000..57221004 --- /dev/null +++ b/3rd-Party.txt @@ -0,0 +1,11 @@ +This plugin uses code from the following 3rd party projects. + +1. jQuery - Query is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. (http://jquery.com/) + +License: MIT License +License File: jQuery.license + +2. CORS Anywhere - CORS Anywhere is a NodeJS proxy which adds CORS headers to the proxied request. + +License: MIT License +License File: CORSAnywhere.license \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..a4f9de33 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 ONLYOFFICE + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index bdbdff64..956a4e3f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,23 @@ -## Overview +# Zoom plugin + +The Zoom plugin allows users to schedule meetings and make calls. +The plugin is pre-installed in ONLYOFFICE Enterprise Edition, Community Edition (Document Server + Community Server), ONLYOFFICE cloud service, and ONLYOFFICE Personal. + +## How to install + +Detailed instructions can be found in [ONLYOFFICE API documentation](https://api.onlyoffice.com/plugin/installation). ## How to use +1. Click the Plugins icon on the left sidebar and find the WordPress plugin. +2. Enter your app credentials, save. +3. Select the schedule/meeting mode, use it. + +## Configuration + +1. You need to create a JWT application at [page](https://marketplace.zoom.us/develop/create). Fill the all necessary fields and activate an app. +2. Copy API Key, API Secret and JWT Token from your app credentials and paste it to specified fields in plugin, save. + +## User feedback and support + +To ask questions and share feedback, use Issues in this repository. diff --git a/config.json b/config.json new file mode 100644 index 00000000..c9d888db --- /dev/null +++ b/config.json @@ -0,0 +1,81 @@ +{ + "name": "Zoom", + "nameLocale": { + "ru": "Zoom", + "fr": "Zoom", + "es": "Zoom", + "de": "Zoom" + }, + "guid": "asc.{3f15a9bc-51d3-4b59-b32f-75cfe2f07f54}", + + "variations": [ + { + "description": "Zoom", + "descriptionLocale": { + "ru": "Zoom", + "fr": "Zoom", + "es": "Zoom", + "de": "Zoom" + }, + "url": "index.html", + + "icons": [ "resources/img/icon.png", "resources/img/icon@2x.png" ], + "isViewer": false, + "EditorsSupport": [ "word", "slide", "cell" ], + + "isVisual": true, + "isModal": false, + "isInsideMode": true, + + "initDataType": "none", + "initData": "", + + "isUpdateOleOnResize": false, + + "buttons": [ + { + "text": "Close", + "primary": true, + "textLocale": { + "ru": "Закрыть", + "fr": "Fermer", + "es": "Cerrar", + "de": "Schließen" + } + } + ] + }, + { + "description": "About", + "descriptionLocale": { + "ru": "Справка", + "fr": "À propos", + "es": "Sobre programa", + "de": "Über" + }, + "url": "index_about.html", + + "icons": [ "resources/img/icon.png", "resources/img/icon@2x.png", "resources/img/icon2.png", "resources/img/icon2@2x.png" ], + "isViewer": false, + "EditorsSupport": [ "word", "slide", "cell" ], + + "isVisual": true, + "isModal": true, + "isInsideMode": false, + + "initDataType": "none", + "initData": "", + + "isUpdateOleOnResize": false, + + "buttons": [ + { + "text": "Ok", + "primary": true + } + ], + + "size": [ 392, 147 ] + } + ] +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..a1459a37 --- /dev/null +++ b/index.html @@ -0,0 +1,638 @@ + + + + + Zoom + + + + + + + + + + + + + + + + +
+
+
+ To use Zoom plugin, register this editor as a JWT app. + Learn more here. +
+
+ In the form, enter any application name and description, accept Terms and Conditions and generate a secret. Enter Client ID, Secret ID, JWT token below and save it. +
+
+
+ Email + +
+
+ API key + +
+
+ Secret key + +
+
+ JWT Token + +
+
+ +
+ +
+ + \ No newline at end of file diff --git a/index_zoom.html b/index_zoom.html new file mode 100644 index 00000000..5cadd80d --- /dev/null +++ b/index_zoom.html @@ -0,0 +1,213 @@ + + + + Zoom WebSDK + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/licenses/CORSAnywhere.license b/licenses/CORSAnywhere.license new file mode 100644 index 00000000..73419e66 --- /dev/null +++ b/licenses/CORSAnywhere.license @@ -0,0 +1,7 @@ +Copyright (C) 2013 - 2016 Rob Wu rob@robwu.nl + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/licenses/jQuery.license b/licenses/jQuery.license new file mode 100644 index 00000000..1e8b433d --- /dev/null +++ b/licenses/jQuery.license @@ -0,0 +1,20 @@ +Copyright (c) 2009 John Resig, http://jquery.com/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/meeting.html b/meeting.html new file mode 100644 index 00000000..d548ee4a --- /dev/null +++ b/meeting.html @@ -0,0 +1,32 @@ + + + + Zoom WebSDK + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/img/error_icon.png b/resources/img/error_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cd5e6dd3a8216ee9e88d84bd0dea3226095c6591 GIT binary patch literal 366 zcmV-!0g?WRP)bL? zP6Uj?k)SU-e3f!d7ZUrq$|uvNOW)PHvpZ^@_=9C4agO$CejIUSfYLROZHST=^(R?U zHfP|nRP1zrNZBhXE<#VL%KgWu)h58%sG4m(rl}Y{U8rSp?(+4+f1Vj#aPN@jqW}N^ M07*qoM6N<$f`v(xTL1t6 literal 0 HcmV?d00001 diff --git a/resources/img/faq_arrow_down.png b/resources/img/faq_arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..cccde6a1fc7c41bf1eebf1380e036c4944a09956 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBzJaHUV@L(#+j9pw85lU24%|As@$TAxfme(d wRdaPIy=OS<#2{uo$x5z6Idtb#+e&FmtH+$@n)Vu90P1D%boFyt=akR{0IP~CA^-pY literal 0 HcmV?d00001 diff --git a/resources/img/icon.png b/resources/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0cd25ea8d0fee045090abd9e0b97ccd64d52cbed GIT binary patch literal 590 zcmV-U0=1K>e#?x*C*qu;2#zAt zaIH0v%O0`fpM->fdm8&hh;R-s?3b)&4p`j!wh2Nf+^0<99zUz^8&swCg;lfam}4R~ zVoEn}C=mggD{=%A+-oTmKIgHaL?khH9T7QXY+ZB9CQyKLC{@Sc&qY~DT#V~cWeh=? zb-4%3&RA!8D+71WK>DQ}TU!9O0>JJ?^U~|8Q(FMZW`3Q-6>Q6ieiIRxqx+kI)_8Fq zINboEq0V_6?Zq1vF-FgZV<32@TK_`C42ps!V=T%0;54M13jPUgA>mz4L&_;{U0&u? zKG8RhZ-Mu6Z=5``*ds*22bpy9Xg=8tPp_>boyd01;pFW4*l5^wvW!{-1v+^4PTeQ8 z8vMHF85O0egQ=<%oB~H&Hr9?)H#v?Zci>Qn9GOF=%CQciW>sYI!-$EwB1d=J^2Nu< z>e+xztc&#Z;*$|R<0>&?umeL08dB8?k~y{I*1Z%Pi0VMj&V=cbAIcvmG|r2*_^9B@ cN?>&H4JFjAd$>tDg#Z8m07*qoM6N<$f)Tg?S^xk5 literal 0 HcmV?d00001 diff --git a/resources/img/icon@2x.png b/resources/img/icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0ca8ac0b09710b64849e4e7d1a090bc597b1ea GIT binary patch literal 1041 zcmV+s1n&EZP)VYq1^v#ukAJVlR$d!z5DaIckkVMzjr{FE?pXd;4`s=2%qXl zln)$*f*}Y*I5}K%!W^f45rnKbM0V>T<=`W}2uX?4XAt9`Qwkv}#F2oDE652TEe^2i zhg?HKQY3U1Q+$wVPZAcem|7@d=G6jaQ73f^jV+4_>Os;E5d(x&=>SXh)Rqo903I7Q8Pf8iY0~V3*GLKn?P_0hYFZB%jh*rthAkoS>EH@z@>Ajo8Nzd zov*-}3he!`FDuV;X9O4=0Pa51WfI2ue?q^HsSwxOIBZVR2>mC4s~5`0dGG?*-8bfs zaQ=;pj^~Pwu87#yJgK#by%vR=J5EFS!tck*Qq}GFWnlbD`L`Rmz3>sB)}|SRq%~T^ z`N5;#>-XG?RN+bDHGP_)Q_yCbEuvPytBl0#T8%;!(5~8?u)g~?>$Zo`L4=AJsNFUQ z2{d5_+C)kM!?oLvgVRpqKM>-W89E3Kn|(gEtuLSj0y~Jz9386wV+|?xLUJq?6u1L3 z#P1A391l}r!|r!91v&U!+XnW3y5EP~2x-ARvaY4IH)slbEVA()m}If!mOHUR5gYn6 z^Ioom=deK5ki45a-_S6778m{cV_8fNT;F}NE_cvpe40$7K4UTvq2L38O^Q2&NqwSe z4RQE2D`4N2+D+*YrZGCp7c0lWT!&xVK*}nRZz)un38oQ1tZGN1IP5sXjVzBKA?%k~ z97Dmko`^UXdWitQGt}JXEDhV0aU7g(&QTfxXirjxmo2Y5m2q literal 0 HcmV?d00001 diff --git a/scripts/zoom.js b/scripts/zoom.js new file mode 100644 index 00000000..61c332c1 --- /dev/null +++ b/scripts/zoom.js @@ -0,0 +1,387 @@ +var Ps; +(function(window, undefined){ + var isInit = false; + var ifr; + var time_hour_data = []; + var duration_hour_data = []; + var duration_min_data = []; + var times = ["12:00","12:30","1:00","1:30","2:00","2:30","3:00","3:30","4:00","4:30","5:00","5:30","6:00","6:30","7:00","7:30","8:00","8:30","9:00","9:30","10:00","10:30","11:00","11:30"]; + var hours = ["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"]; + var minutes = ["0","15","30","45"]; + var elements = { }; + var proxyUrl = "https://proxy-zoom.herokuapp.com/" + var zoomApiUrl = "https://api.zoom.us/v2/users/"; + var email = ''; + var apiKey = ''; + var secretKey = ''; + var tokenKey = ''; + for (var nTime = 0; nTime < times.length; nTime++) { + time_hour_data.push({id: nHour, text: times[nTime]}); + } + for (var nHour = 0; nHour < hours.length; nHour++) { + duration_hour_data.push({id: hours[nHour], text: hours[nHour]}); + } + for (var nMin = 0; nMin < minutes.length; nMin++) { + duration_min_data.push({id: minutes[nMin], text: minutes[nMin]}); + } + + var jsonData = { }; + + window.oncontextmenu = function(e) + { + if (e.preventDefault) + e.preventDefault(); + if (e.stopPropagation) + e.stopPropagation(); + return false; + }; + + window.Asc.plugin.init = function () { + $('#topic-value').val(window.Asc.plugin.info.documentTitle); + + if (!isInit) { + document.getElementById("iframe_join").innerHTML = ""; + ifr = document.createElement("iframe"); + ifr.position = "fixed"; + ifr.name = "zoom"; + ifr.id = "zoom_id"; + ifr.src = "./index_zoom.html"; + ifr.style.top = "0px"; + ifr.style.left = "0px"; + ifr.style.width = "100%"; + ifr.style.height = "100%"; + ifr.setAttribute("frameBorder", "0"); + document.getElementById("iframe_join").appendChild(ifr); + isInit = true; + ifr.onload = function() { + + } + } + }; + + window.openMeeting = function(sUrl) { + + document.getElementById("iframe_meeting").innerHTML = ""; + ifr = document.createElement("iframe"); + ifr.position = "fixed"; + ifr.name = "zoom"; + ifr.id = "zoom_id"; + ifr.src = sUrl; + ifr.style.top = "0px"; + ifr.style.left = "0px"; + ifr.style.width = "100%"; + ifr.style.height = "100%"; + ifr.setAttribute("frameBorder", "0"); + document.getElementById("iframe_meeting").appendChild(ifr); + isInit = true; + ifr.onload = function() { + $('#iframe_join').toggleClass('display-none'); + $('#iframe_meeting').toggleClass('display-none'); + } + + }; + window.switchForms = function(elmToHide, elmToShow) { + $(elmToHide).toggleClass('display-none'); + $(elmToShow).toggleClass('display-none'); + }; + + $(document).ready(function () { + $('input[name="date"]').daterangepicker({ + singleDatePicker: true, + }); + $('#time-hour').select2({ + data: time_hour_data + }); + $('#duration-hour').select2({ + data: duration_hour_data + }); + $('#duration-min').select2({ + data: duration_min_data + }); + $('.select_example').select2({ + minimumResultsForSearch: Infinity, + width : 'calc(100% - 24px)', + }); + $('.select_example.group').select2({ + minimumResultsForSearch: Infinity, + width : 'calc(50% - 20px)', + }); + $('.select_example.duration').select2({ + minimumResultsForSearch: Infinity, + width : '100%', + }); + + $('#timezone').select2({ + minimumResultsForSearch: 0, + width : 'calc(100% - 24px)' + }); + + $('#adv_settings').click(function() { + $('#settings_wrapper').find('.settings_group').slideToggle('fast', function() { updateScroll(); }); + $('#settings_wrapper').find(".arrow").toggleClass("transform"); + }); + + $('#saveConfigBtn').click(function() { + SaveConfiguration(true); + }); + $('#topic-value').focus(function(){ + if(this.value !== this.defaultValue){ + this.select(); + } + }); + $('#emailField').focus(function() { + if(this.value !== this.defaultValue){ + this.select(); + } + }); + $('#apiKeyField').focus(function() { + if(this.value !== this.defaultValue){ + this.select(); + } + }); + $('#apiKeyField').change(function() { + if ($(this).hasClass('error_api')) + $(this).toggleClass('error_api'); + }); + $('#secretKeyField').focus(function() { + if(this.value !== this.defaultValue){ + this.select(); + } + }); + $('#secretKeyField').change(function() { + if ($(this).hasClass('error_api')) + $(this).toggleClass('error_api'); + }); + $('#tokenKeyField').focus(function() { + if(this.value !== this.defaultValue){ + this.select(); + } + }); + $('#tokenKeyField').change(function() { + if ($(this).hasClass('error_api')) + $(this).toggleClass('error_api'); + }); + $('#reconf').click(function() { + $('#scheduler-container').toggleClass('display-none'); + $('#configState').toggleClass('display-none'); + }); + $('#switch').click(function() { + $('#scheduler-container').toggleClass('display-none'); + $('#iframe_join').toggleClass('display-none'); + }); + $('#schedule_meeting').click(function() { + ScheduleMeeting(); + }); + Ps = new PerfectScrollbar("#scheduler-container", {suppressScrollX: true}); + + document.getElementById('emailField').value = localStorage.getItem($('#emailField').attr("data-id")) || ""; + document.getElementById('apiKeyField').value = localStorage.getItem($('#apiKeyField').attr("data-id")) || ""; + document.getElementById('secretKeyField').value = localStorage.getItem($('#secretKeyField').attr("data-id")) || ""; + document.getElementById('tokenKeyField').value = localStorage.getItem($('#tokenKeyField').attr("data-id")) || ""; + SaveConfiguration(false); + }); + + function SaveConfiguration(bShowError) { + if (!IsEmptyFields(bShowError)) { + email = $('#emailField').val().trim(); + apiKey = $('#apiKeyField').val().trim(); + secretKey = $('#secretKeyField').val().trim(); + tokenKey = $('#tokenKeyField').val().trim(); + + localStorage.setItem($('#emailField').attr("data-id"), email); + localStorage.setItem($('#apiKeyField').attr("data-id"), apiKey); + localStorage.setItem($('#secretKeyField').attr("data-id"), secretKey); + localStorage.setItem($('#tokenKeyField').attr("data-id"), tokenKey); + + $('#configState').toggleClass('display-none'); + $('#scheduler-container').toggleClass('display-none'); + } + }; + function IsEmptyFields(bShowError) { + var isEmpty = null; + + if ($('#emailField').val() === '') { + isEmpty = true; + + if (bShowError) + if (!$('#emailField').hasClass('error_api')) + $('#emailField').toggleClass('error_api'); + } + else { + isEmpty = false; + + if (bShowError) + if ($('#emailField').hasClass('error_api')) + $('#emailField').toggleClass('error_api'); + } + if ($('#apiKeyField').val() === '') { + isEmpty = true; + + if (bShowError) + if (!$('#apiKeyField').hasClass('error_api')) + $('#apiKeyField').toggleClass('error_api'); + } + else { + isEmpty = false; + + if (bShowError) + if ($('#apiKeyField').hasClass('error_api')) + $('#apiKeyField').toggleClass('error_api'); + } + + if ($('#secretKeyField').val() === '') { + isEmpty = isEmpty && true; + + if (bShowError) + if (!$('#secretKeyField').hasClass('error_api')) + $('#secretKeyField').toggleClass('error_api'); + } + else { + isEmpty = isEmpty && false; + + if (bShowError) + if ($('#secretKeyField').hasClass('error_api')) + $('#secretKeyField').toggleClass('error_api'); + } + + if ($('#tokenKeyField').val() === '') { + isEmpty = isEmpty && true; + + if (bShowError) + if (!$('#tokenKeyField').hasClass('error_api')) + $('#tokenKeyField').toggleClass('error_api'); + } + else { + isEmpty = isEmpty && false; + + if (bShowError) + if ($('#tokenKeyField').hasClass('error_api')) + $('#tokenKeyField').toggleClass('error_api'); + } + + return isEmpty; + } + function ScheduleMeeting() { + // getting parameters + var sTopic = $('#topic-value').val(); + var meetingType = 2; + var sDate = ''; + var sTime = $('#time-hour').val(); + var sAmPmTime = $('#time-am-pm').val(); + var sDurationHour = $('#duration-hour').val(); + var sDurationMin = $('#duration-min').val(); + var sMeetPasswd = $('#password').val(); + var bPersonalId = ('true' === $("input[name=meeting-id]:checked").val()); + var bWaitingRoom = document.getElementById("is_waiting_room").checked; + var sTimeZone = $('#timezone').val(); + var sRecurringConf = null; + if ($('#recurring-conf').val() !== 'never') { + meetingType = 8; + var nType = null; + switch ($('#recurring-conf').val()) { + case 'daily': + nType = 1; + break; + case 'weekly': + nType = 2; + break; + case 'monthly': + nType = 3; + break; + } + sRecurringConf = { + "type" : nType + } + } + + // bringing the date to the required format + var sResultTime = ''; + var arrSplittedDate = $('#date-value').val().split('/'); + sDate += arrSplittedDate[2] + '-' + arrSplittedDate[0] + '-' + arrSplittedDate[1]; + + if (sAmPmTime == 'pm') { + var arrSplittedTime = sTime.split(':'); + sTime = String(Number(arrSplittedTime[0]) + 12) + ':' + arrSplittedTime[1]; + } + sResultTime = sDate + 'T' + sTime + ':00'; + + // calc duration in minutes + var sResultDuration = String(Number(sDurationHour) * 60 + Number(sDurationMin)); + + // filling the jsonData for request + var meetingSettings = { + "use_pmi" : bPersonalId, + "waiting_room" : bWaitingRoom + } + jsonData["topic"] = sTopic; + jsonData["type"] = meetingType; + jsonData["start_time"] = sResultTime; + jsonData["duration"] = sResultDuration; + jsonData["settings"] = meetingSettings; + if (sMeetPasswd !== "") + jsonData["password"] = sMeetPasswd; + jsonData["timezone"] = sTimeZone; + jsonData["recurrence"] = sRecurringConf; + + $.ajax({ + type: 'POST', + contentType: "application/json; charset=utf-8", + headers: { + 'Authorization': 'Bearer ' + tokenKey, + }, + dataType: 'json', + json: true, + data: JSON.stringify(jsonData), + url: proxyUrl + zoomApiUrl + email + '/meetings' + }).success(function (oResponse) { + var sTopic = 'Topic: ' + oResponse.topic; + var sTime = 'Time: ' + $('#date-value').val() + ' ' + $('#time-hour').val() + ' ' + $('#time-am-pm').val().toUpperCase() + ' ' + jsonData["timezone"]; + var sJoinUrl = 'Join URL: ' + oResponse.join_url; + var sConfId = 'Conference ID: ' + oResponse.id; + var sPassword = 'Password: ' + oResponse.password; + var sResult = sTopic + '\r' + sTime + '\r' + sJoinUrl +'\r' + sConfId + '\r' + sPassword + '\r'; + + Asc.scope.meeting_info = sResult; + window.Asc.plugin.callCommand(function() { + Api.CoAuthoringChatSendMessage(Asc.scope.meeting_info); + }); + }).error(function(e){ + + }); + }; + window.Asc.plugin.button = function(id) + { + this.executeCommand("close", ""); + }; + + function updateScroll() + { + Ps && Ps.update(); + }; + + window.Asc.plugin.onExternalMouseUp = function() + { + var evt = document.createEvent("MouseEvents"); + evt.initMouseEvent("mouseup", true, true, window, 1, 0, 0, 0, 0, + false, false, false, false, 0, null); + + document.dispatchEvent(evt); + $('.select_example').select2({ + minimumResultsForSearch: Infinity, + width : 'calc(100% - 24px)', + }); + $('.select_example.group').select2({ + minimumResultsForSearch: Infinity, + width : 'calc(50% - 20px)', + }); + $('.select_example.duration').select2({ + minimumResultsForSearch: Infinity, + width : '100%', + }); + $('#timezone').select2({ + minimumResultsForSearch: 0, + width : 'calc(100% - 24px)' + }); + }; + +})(window, undefined); diff --git a/translations/de-DE.json b/translations/de-DE.json new file mode 100644 index 00000000..00cb8daf --- /dev/null +++ b/translations/de-DE.json @@ -0,0 +1,7 @@ +{ + "Error has occured when loading data.": "Beim Laden von Daten ist ein Fehler aufgetreten.", + "Submit": "Übermitteln", + "ClipArt Add-on": "ClipArt Add-on", + "The add-on is designed to insert the themed image from Open Clip Art Library into the document editor.": "Mit dem Add-On können Sie das Themenbild aus Clip Art Library öffnen in den Dokumenteditor einfügen.", + "Source code": "Quellcode" +} \ No newline at end of file diff --git a/translations/es-ES.json b/translations/es-ES.json new file mode 100644 index 00000000..fca0d0ff --- /dev/null +++ b/translations/es-ES.json @@ -0,0 +1,7 @@ +{ + "Error has occured when loading data." : "Se ha producido un error al cargar datos.", + "Submit" : "Enviar", + "ClipArt Add-on" : "Complemento ClipArt", + "The add-on is designed to insert the themed image from Open Clip Art Library into the document editor." : "El complemento está diseñado para insertar la imagen temática de Open Clip Art Library al editor de documentos.", + "Source code" : "Código fuente" +} \ No newline at end of file diff --git a/translations/fr-FR.json b/translations/fr-FR.json new file mode 100644 index 00000000..8219110b --- /dev/null +++ b/translations/fr-FR.json @@ -0,0 +1,7 @@ +{ + "Error has occured when loading data." : "Une erreur s'est produite lors du chargement des données.", + "Submit" : "Envoyer", + "ClipArt Add-on" : "Extension ClipArt", + "The add-on is designed to insert the themed image from Open Clip Art Library into the document editor." : "L'extension permet d'inserer des images thématiques de Open Clip Art Library dans un document.", + "Source code" : "Code source" +} \ No newline at end of file diff --git a/translations/ru-RU.json b/translations/ru-RU.json new file mode 100644 index 00000000..c3979cfb --- /dev/null +++ b/translations/ru-RU.json @@ -0,0 +1,7 @@ +{ + "Error has occured when loading data." : "Произошла ошибка при загрузке данных.", + "Submit" : "Отправить", + "ClipArt Add-on" : "Плагин Клипарт", + "The add-on is designed to insert the themed image from Open Clip Art Library into the document editor." : "Плагин позволяет вставлять тематические картинки в документ из библиотеки Open Clip Art Library.", + "Source code" : "Исходный код" +} \ No newline at end of file diff --git a/vendor/jQuery-2.2.2-min/jquery-v2.2.2-min.js b/vendor/jQuery-2.2.2-min/jquery-v2.2.2-min.js new file mode 100644 index 00000000..93dc28a0 --- /dev/null +++ b/vendor/jQuery-2.2.2-min/jquery-v2.2.2-min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.2.2 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.2",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c; +}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|&#?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,la=/\s*$/g;function pa(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n("