Last active
October 28, 2024 17:17
-
-
Save Sg4Dylan/32881c66c63421c19639f068b74a8ffb to your computer and use it in GitHub Desktop.
bookwalker.com.tw online reader DRM
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
Open Source Software Licenses | |
PUBLUS | |
Copyright(c) 2013-2014 ACCESS CO., LTD. All rights reserved. | |
This software includes all or part of the following open source software which is available under each license terms and conditions as follows: | |
* Backbone.js 0.9.2 | |
(c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc. | |
Backbone may be freely distributed under the MIT license. | |
For all details and documentation: | |
http://backbonejs.org | |
* easyXDM 2.4.20.7 | |
http://easyxdm.net/ | |
Copyright(c) 2009-2011, Øyvind Sean Kinsey, oyvind@kinsey.no. | |
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. | |
* jQuery Cookie Plugin 1.3.1 | |
https://github.com/carhartl/jquery-cookie | |
Copyright 2013 Klaus Hartl | |
Released under the MIT license | |
* jQuery Cryptography Plug-in 1.0.0 | |
copyright 2008 Scott Thompson http://www.itsyndicate.ca - scott@itsyndicate.ca | |
http://www.opensource.org/licenses/mit-license.php | |
A set of functions to do some basic cryptography encoding/decoding | |
I compiled from some javascripts I found into a jQuery plug-in. | |
Thanks go out to the original authors. | |
Also a big thanks to Wade W. Hedgren http://homepages.uc.edu/~hedgreww | |
for the 1.1.1 upgrade to conform correctly to RFC4648 Sec5 url save base64 | |
--- Base64 Encoding and Decoding code was written by | |
Base64 code from Tyler Akins -- http://rumkin.com | |
and is placed in the public domain | |
--- MD5 and SHA1 Functions based upon Paul Johnston's javascript libraries. | |
A JavaScript implementation of the RSA Data Security, Inc. MD5 Message | |
Digest Algorithm, as defined in RFC 1321. | |
Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. | |
Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet | |
Distributed under the BSD License | |
See http://pajhome.org.uk/crypt/md5 for more info. | |
xTea Encrypt and Decrypt | |
copyright 2000-2005 Chris Veness | |
http://www.movable-type.co.uk | |
* TouchSwipe - jQuery Plugin 1.6.3 | |
Matt Bryson http://www.github.com/mattbryson | |
https://github.com/mattbryson/TouchSwipe-Jquery-Plugin | |
http://labs.skinkers.com/touchSwipe/ | |
http://plugins.jquery.com/project/touchSwipe | |
Copyright (c) 2010 Matt Bryson | |
Dual licensed under the MIT or GPL Version 2 licenses. | |
* jQuery JavaScript Library v1.8.0 | |
http://jquery.com/ | |
Includes Sizzle.js | |
http://sizzlejs.com/ | |
Copyright 2012 jQuery Foundation and other contributors | |
Released under the MIT license | |
http://jquery.org/license | |
Date: Thu Aug 09 2012 16:24:48 GMT-0400 (Eastern Daylight Time) | |
* jQuery UI v1.9.0 | |
http://jqueryui.com | |
Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT | |
* parseUri 1.2.2 | |
(c) Steven Levithan <stevenlevithan.com> | |
MIT License | |
* Underscore.js 1.3.3 | |
(c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. | |
Underscore may be freely distributed under the MIT license. | |
* CLDR JavaScript Library v0.2.3 | |
http://jquery.com/ | |
Copyright 2013 Rafael Xavier de Souza | |
Released under the MIT license | |
http://jquery.org/license | |
Date: 2013-11-29T18:37Z | |
* Globalize v1.0.0-pre | |
http://github.com/jquery/globalize | |
Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors | |
Released under the MIT license | |
http://jquery.org/license | |
Date: 2013-12-24T12:28Z | |
* This product includes the modified file of Unicode CLDR 24. | |
Copyright c 1991-2013 Unicode, Inc. All rights reserved. Distributed under | |
the Terms of Use in http://www.unicode.org/copyright.html. | |
Permission is hereby granted, free of charge, to any person obtaining a | |
copy of the Unicode data files and any associated documentation (the "Data | |
Files") or Unicode software and any associated documentation (the "Software") | |
to deal in the Data Files or Software without restriction, including without | |
limitation the rights to use, copy, modify, merge, publish, distribute, and/or | |
sell copies of the Data Files or Software, and to permit persons to whom the | |
Data Files or Software are furnished to do so, provided that (a) the above | |
copyright notice(s) and this permission notice appear with all copies of the | |
Data Files or Software, (b) both the above copyright notice(s) and this | |
permission notice appear in associated documentation, and (c) there is clear | |
notice in each modified Data File or in the Software as well as in the | |
documentation associated with the Data File(s) or Software that the data or | |
software has been modified. | |
THE DATA FILES AND SOFTWARE ARE 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 OF THIRD | |
PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN | |
THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL | |
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR | |
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS | |
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE | |
DATA FILES OR SOFTWARE. | |
* jcarousellite.custom.js 1.8.8 | |
http://www.gmarwaha.com/ | |
Copyright (c) 2012 Karl Swedberg | |
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. | |
* jquery.mousewheel.js 3.1.11 | |
Copyright (c) 2013, Brandon Aaron (http://brandon.aaron.sh) | |
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. | |
* jquery.dotdotdot.js 1.8.1 | |
http://dotdotdot.frebsite.nl/ | |
The MIT License (MIT) | |
Copyright (c) 2015 Fred Heusschen | |
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. | |
* aws-sdk.min.js 2.19.0 | |
https://github.com/aws/aws-sdk-js/releases | |
The bundled package of the AWS SDK for JavaScript is available under the | |
Apache License, Version 2.0: | |
Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. | |
Licensed under the Apache License, Version 2.0 (the "License"). You | |
may not use this file except in compliance with the License. A copy of | |
the License is located at | |
http://aws.amazon.com/apache2.0/ | |
or in the "license" file accompanying this file. This file is | |
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF | |
ANY KIND, either express or implied. See the License for the specific | |
language governing permissions and limitations under the License. | |
This product bundles browserify, which is available under a | |
"3-clause BSD" license: | |
Copyright Joyent, Inc. and other Node contributors. | |
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. | |
This product bundles crypto-browserify, which is available under | |
the MIT license: | |
Copyright (c) 2013 Dominic Tarr | |
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. | |
This product bundles MD5, SHA-1, and SHA-256 hashing algorithm components, | |
which are available under a BSD license: | |
Copyright (c) 1998 - 2009, Paul Johnston & Contributors | |
All rights reserved. | |
Redistribution and use in source and binary forms, with or without | |
modification, are permitted provided that the following conditions are met: | |
Redistributions of source code must retain the above copyrightnotice, | |
this list of conditions and the following disclaimer. Redistributions | |
in binary form must reproduce the above copyright notice, this list of | |
conditions and the following disclaimer in the documentation and/or | |
other materials provided with the distribution. | |
Neither the name of the author nor the names of its contributors may | |
be used to endorse or promote products derived from this software | |
without specific prior written permission. | |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | |
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF | |
THE POSSIBILITY OF SUCH DAMAGE. | |
* aws-sdk-mobile-analytics.min.js 0.9.2 | |
https://github.com/aws/aws-sdk-mobile-analytics-js | |
Apache License | |
Version 2.0, January 2004 | |
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | |
1. Definitions. | |
“License” shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. | |
“Licensor” shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. | |
“Legal Entity” shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, “control” means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. | |
“You” (or “Your”) shall mean an individual or Legal Entity exercising permissions granted by this License. | |
“Source” form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. | |
“Object” form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. | |
“Work” shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). | |
“Derivative Works” shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. | |
“Contribution” shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, “submitted” means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as “Not a Contribution.” | |
“Contributor” shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. | |
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. | |
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. | |
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: | |
You must give any other recipients of the Work or Derivative Works a copy of this License; and | |
You must cause any modified files to carry prominent notices stating that You changed the files; and | |
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and | |
If the Work includes a “NOTICE” text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. | |
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. | |
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. | |
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. | |
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. | |
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. | |
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. | |
END OF TERMS AND CONDITIONS | |
* platform.js 1.3.4 | |
https://github.com/bestiejs/platform.js/ | |
Copyright 2014-2016 Benjamin Tan <https://demoneaux.github.io/> | |
Copyright 2011-2013 John-David Dalton <http://allyoucanleet.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. | |
* quadtree.js | |
http://www.mikechambers.com/blog/2011/03/21/javascript-quadtree-implementation/ | |
The MIT License | |
Copyright (c) 2011 Mike Chambers | |
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. | |
*/ | |
function parseUri(a) { | |
for (var b = parseUri.options, c = b.parser[b.strictMode ? "strict" : "loose"].exec(a), d = {}, e = 14; e--; ) | |
d[b.key[e]] = c[e] || ""; | |
return d[b.q.name] = {}, | |
d[b.key[12]].replace(b.q.parser, function(a, c, e) { | |
c && (d[b.q.name][c] = e) | |
}), | |
d | |
} | |
!function(a, b) { | |
function c(a) { | |
var b = oa[a] = {}; | |
return $.each(a.split(ba), function(a, c) { | |
b[c] = !0 | |
}), | |
b | |
} | |
function d(a, c, d) { | |
if (d === b && 1 === a.nodeType) { | |
var e = "data-" + c.replace(qa, "-$1").toLowerCase(); | |
if (d = a.getAttribute(e), | |
"string" == typeof d) { | |
try { | |
d = "true" === d || "false" !== d && ("null" === d ? null : +d + "" === d ? +d : pa.test(d) ? $.parseJSON(d) : d) | |
} catch (f) {} | |
$.data(a, c, d) | |
} else | |
d = b | |
} | |
return d | |
} | |
function e(a) { | |
var b; | |
for (b in a) | |
if (("data" !== b || !$.isEmptyObject(a[b])) && "toJSON" !== b) | |
return !1; | |
return !0 | |
} | |
function f() { | |
return !1 | |
} | |
function g() { | |
return !0 | |
} | |
function h(a) { | |
return !a || !a.parentNode || 11 === a.parentNode.nodeType | |
} | |
function i(a, b) { | |
do | |
a = a[b]; | |
while (a && 1 !== a.nodeType);return a | |
} | |
function j(a, b, c) { | |
if (b = b || 0, | |
$.isFunction(b)) | |
return $.grep(a, function(a, d) { | |
var e = !!b.call(a, d, a); | |
return e === c | |
}); | |
if (b.nodeType) | |
return $.grep(a, function(a, d) { | |
return a === b === c | |
}); | |
if ("string" == typeof b) { | |
var d = $.grep(a, function(a) { | |
return 1 === a.nodeType | |
}); | |
if (Ka.test(b)) | |
return $.filter(b, d, !c); | |
b = $.filter(b, d) | |
} | |
return $.grep(a, function(a, d) { | |
return $.inArray(a, b) >= 0 === c | |
}) | |
} | |
function k(a) { | |
var b = Na.split("|") | |
, c = a.createDocumentFragment(); | |
if (c.createElement) | |
for (; b.length; ) | |
c.createElement(b.pop()); | |
return c | |
} | |
function l(a, b) { | |
return a.getElementsByTagName(b)[0] || a.appendChild(a.ownerDocument.createElement(b)) | |
} | |
function m(a, b) { | |
if (1 === b.nodeType && $.hasData(a)) { | |
var c, d, e, f = $._data(a), g = $._data(b, f), h = f.events; | |
if (h) { | |
delete g.handle, | |
g.events = {}; | |
for (c in h) | |
for (d = 0, | |
e = h[c].length; d < e; d++) | |
$.event.add(b, c, h[c][d]) | |
} | |
g.data && (g.data = $.extend({}, g.data)) | |
} | |
} | |
function n(a, b) { | |
var c; | |
1 === b.nodeType && (b.clearAttributes && b.clearAttributes(), | |
b.mergeAttributes && b.mergeAttributes(a), | |
c = b.nodeName.toLowerCase(), | |
"object" === c ? (b.parentNode && (b.outerHTML = a.outerHTML), | |
$.support.html5Clone && a.innerHTML && !$.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : "input" === c && Xa.test(a.type) ? (b.defaultChecked = b.checked = a.checked, | |
b.value !== a.value && (b.value = a.value)) : "option" === c ? b.selected = a.defaultSelected : "input" === c || "textarea" === c ? b.defaultValue = a.defaultValue : "script" === c && b.text !== a.text && (b.text = a.text), | |
b.removeAttribute($.expando)) | |
} | |
function o(a) { | |
return "undefined" != typeof a.getElementsByTagName ? a.getElementsByTagName("*") : "undefined" != typeof a.querySelectorAll ? a.querySelectorAll("*") : [] | |
} | |
function p(a) { | |
Xa.test(a.type) && (a.defaultChecked = a.checked) | |
} | |
function q(a, b) { | |
if (b in a) | |
return b; | |
for (var c = b.charAt(0).toUpperCase() + b.slice(1), d = b, e = qb.length; e--; ) | |
if (b = qb[e] + c, | |
b in a) | |
return b; | |
return d | |
} | |
function r(a, b) { | |
return a = b || a, | |
"none" === $.css(a, "display") || !$.contains(a.ownerDocument, a) | |
} | |
function s(a, b) { | |
for (var c, d, e = [], f = 0, g = a.length; f < g; f++) | |
c = a[f], | |
c.style && (e[f] = $._data(c, "olddisplay"), | |
b ? (e[f] || "none" !== c.style.display || (c.style.display = ""), | |
"" === c.style.display && r(c) && (e[f] = $._data(c, "olddisplay", w(c.nodeName)))) : (d = cb(c, "display"), | |
e[f] || "none" === d || $._data(c, "olddisplay", d))); | |
for (f = 0; f < g; f++) | |
c = a[f], | |
c.style && (b && "none" !== c.style.display && "" !== c.style.display || (c.style.display = b ? e[f] || "" : "none")); | |
return a | |
} | |
function t(a, b, c) { | |
var d = jb.exec(b); | |
return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b | |
} | |
function u(a, b, c, d) { | |
for (var e = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, f = 0; e < 4; e += 2) | |
"margin" === c && (f += $.css(a, c + pb[e], !0)), | |
d ? ("content" === c && (f -= parseFloat(cb(a, "padding" + pb[e])) || 0), | |
"margin" !== c && (f -= parseFloat(cb(a, "border" + pb[e] + "Width")) || 0)) : (f += parseFloat(cb(a, "padding" + pb[e])) || 0, | |
"padding" !== c && (f += parseFloat(cb(a, "border" + pb[e] + "Width")) || 0)); | |
return f | |
} | |
function v(a, b, c) { | |
var d = "width" === b ? a.offsetWidth : a.offsetHeight | |
, e = !0 | |
, f = $.support.boxSizing && "border-box" === $.css(a, "boxSizing"); | |
if (d <= 0) { | |
if (d = cb(a, b), | |
(d < 0 || null == d) && (d = a.style[b]), | |
kb.test(d)) | |
return d; | |
e = f && ($.support.boxSizingReliable || d === a.style[b]), | |
d = parseFloat(d) || 0 | |
} | |
return d + u(a, b, c || (f ? "border" : "content"), e) + "px" | |
} | |
function w(a) { | |
if (mb[a]) | |
return mb[a]; | |
var b = $("<" + a + ">").appendTo(P.body) | |
, c = b.css("display"); | |
return b.remove(), | |
"none" !== c && "" !== c || (db = P.body.appendChild(db || $.extend(P.createElement("iframe"), { | |
frameBorder: 0, | |
width: 0, | |
height: 0 | |
})), | |
eb && db.createElement || (eb = (db.contentWindow || db.contentDocument).document, | |
eb.write("<!doctype html><html><body>"), | |
eb.close()), | |
b = eb.body.appendChild(eb.createElement(a)), | |
c = cb(b, "display"), | |
P.body.removeChild(db)), | |
mb[a] = c, | |
c | |
} | |
function x(a, b, c, d) { | |
var e; | |
if ($.isArray(b)) | |
$.each(b, function(b, e) { | |
c || tb.test(a) ? d(a, e) : x(a + "[" + ("object" == typeof e ? b : "") + "]", e, c, d) | |
}); | |
else if (c || "object" !== $.type(b)) | |
d(a, b); | |
else | |
for (e in b) | |
x(a + "[" + e + "]", b[e], c, d) | |
} | |
function y(a) { | |
return function(b, c) { | |
"string" != typeof b && (c = b, | |
b = "*"); | |
var d, e, f, g = b.toLowerCase().split(ba), h = 0, i = g.length; | |
if ($.isFunction(c)) | |
for (; h < i; h++) | |
d = g[h], | |
f = /^\+/.test(d), | |
f && (d = d.substr(1) || "*"), | |
e = a[d] = a[d] || [], | |
e[f ? "unshift" : "push"](c) | |
} | |
} | |
function z(a, c, d, e, f, g) { | |
f = f || c.dataTypes[0], | |
g = g || {}, | |
g[f] = !0; | |
for (var h, i = a[f], j = 0, k = i ? i.length : 0, l = a === Jb; j < k && (l || !h); j++) | |
h = i[j](c, d, e), | |
"string" == typeof h && (!l || g[h] ? h = b : (c.dataTypes.unshift(h), | |
h = z(a, c, d, e, h, g))); | |
return !l && h || g["*"] || (h = z(a, c, d, e, "*", g)), | |
h | |
} | |
function A(a, c) { | |
var d, e, f = $.ajaxSettings.flatOptions || {}; | |
for (d in c) | |
c[d] !== b && ((f[d] ? a : e || (e = {}))[d] = c[d]); | |
e && $.extend(!0, a, e) | |
} | |
function B(a, c, d) { | |
var e, f, g, h, i = a.contents, j = a.dataTypes, k = a.responseFields; | |
for (f in k) | |
f in d && (c[k[f]] = d[f]); | |
for (; "*" === j[0]; ) | |
j.shift(), | |
e === b && (e = a.mimeType || c.getResponseHeader("content-type")); | |
if (e) | |
for (f in i) | |
if (i[f] && i[f].test(e)) { | |
j.unshift(f); | |
break | |
} | |
if (j[0]in d) | |
g = j[0]; | |
else { | |
for (f in d) { | |
if (!j[0] || a.converters[f + " " + j[0]]) { | |
g = f; | |
break | |
} | |
h || (h = f) | |
} | |
g = g || h | |
} | |
if (g) | |
return g !== j[0] && j.unshift(g), | |
d[g] | |
} | |
function C(a, b) { | |
var c, d, e, f, g = a.dataTypes.slice(), h = g[0], i = {}, j = 0; | |
if (a.dataFilter && (b = a.dataFilter(b, a.dataType)), | |
g[1]) | |
for (c in a.converters) | |
i[c.toLowerCase()] = a.converters[c]; | |
for (; e = g[++j]; ) | |
if ("*" !== e) { | |
if ("*" !== h && h !== e) { | |
if (c = i[h + " " + e] || i["* " + e], | |
!c) | |
for (d in i) | |
if (f = d.split(" "), | |
f[1] === e && (c = i[h + " " + f[0]] || i["* " + f[0]])) { | |
c === !0 ? c = i[d] : i[d] !== !0 && (e = f[0], | |
g.splice(j--, 0, e)); | |
break | |
} | |
if (c !== !0) | |
if (c && a["throws"]) | |
b = c(b); | |
else | |
try { | |
b = c(b) | |
} catch (k) { | |
return { | |
state: "parsererror", | |
error: c ? k : "No conversion from " + h + " to " + e | |
} | |
} | |
} | |
h = e | |
} | |
return { | |
state: "success", | |
data: b | |
} | |
} | |
function D() { | |
try { | |
return new a.XMLHttpRequest | |
} catch (b) {} | |
} | |
function E() { | |
try { | |
return new a.ActiveXObject("Microsoft.XMLHTTP") | |
} catch (b) {} | |
} | |
function F() { | |
return setTimeout(function() { | |
Ub = b | |
}, 0), | |
Ub = $.now() | |
} | |
function G(a, b) { | |
$.each(b, function(b, c) { | |
for (var d = ($b[b] || []).concat($b["*"]), e = 0, f = d.length; e < f; e++) | |
if (d[e].call(a, b, c)) | |
return | |
}) | |
} | |
function H(a, b, c) { | |
var d, e = 0, f = Zb.length, g = $.Deferred().always(function() { | |
delete h.elem | |
}), h = function() { | |
for (var b = Ub || F(), c = Math.max(0, i.startTime + i.duration - b), d = c / i.duration || 0, e = 1 - d, f = 0, h = i.tweens.length; f < h; f++) | |
i.tweens[f].run(e); | |
return g.notifyWith(a, [i, e, c]), | |
e < 1 && h ? c : (g.resolveWith(a, [i]), | |
!1) | |
}, i = g.promise({ | |
elem: a, | |
props: $.extend({}, b), | |
opts: $.extend(!0, { | |
specialEasing: {} | |
}, c), | |
originalProperties: b, | |
originalOptions: c, | |
startTime: Ub || F(), | |
duration: c.duration, | |
tweens: [], | |
createTween: function(b, c, d) { | |
var e = $.Tween(a, i.opts, b, c, i.opts.specialEasing[b] || i.opts.easing); | |
return i.tweens.push(e), | |
e | |
}, | |
stop: function(b) { | |
for (var c = 0, d = b ? i.tweens.length : 0; c < d; c++) | |
i.tweens[c].run(1); | |
return b ? g.resolveWith(a, [i, b]) : g.rejectWith(a, [i, b]), | |
this | |
} | |
}), j = i.props; | |
for (I(j, i.opts.specialEasing); e < f; e++) | |
if (d = Zb[e].call(i, a, j, i.opts)) | |
return d; | |
return G(i, j), | |
$.isFunction(i.opts.start) && i.opts.start.call(a, i), | |
$.fx.timer($.extend(h, { | |
anim: i, | |
queue: i.opts.queue, | |
elem: a | |
})), | |
i.progress(i.opts.progress).done(i.opts.done, i.opts.complete).fail(i.opts.fail).always(i.opts.always) | |
} | |
function I(a, b) { | |
var c, d, e, f, g; | |
for (c in a) | |
if (d = $.camelCase(c), | |
e = b[d], | |
f = a[c], | |
$.isArray(f) && (e = f[1], | |
f = a[c] = f[0]), | |
c !== d && (a[d] = f, | |
delete a[c]), | |
g = $.cssHooks[d], | |
g && "expand"in g) { | |
f = g.expand(f), | |
delete a[d]; | |
for (c in f) | |
c in a || (a[c] = f[c], | |
b[c] = e) | |
} else | |
b[d] = e | |
} | |
function J(a, b, c) { | |
var d, e, f, g, h, i, j, k, l = this, m = a.style, n = {}, o = [], p = a.nodeType && r(a); | |
c.queue || (j = $._queueHooks(a, "fx"), | |
null == j.unqueued && (j.unqueued = 0, | |
k = j.empty.fire, | |
j.empty.fire = function() { | |
j.unqueued || k() | |
} | |
), | |
j.unqueued++, | |
l.always(function() { | |
l.always(function() { | |
j.unqueued--, | |
$.queue(a, "fx").length || j.empty.fire() | |
}) | |
})), | |
1 === a.nodeType && ("height"in b || "width"in b) && (c.overflow = [m.overflow, m.overflowX, m.overflowY], | |
"inline" === $.css(a, "display") && "none" === $.css(a, "float") && ($.support.inlineBlockNeedsLayout && "inline" !== w(a.nodeName) ? m.zoom = 1 : m.display = "inline-block")), | |
c.overflow && (m.overflow = "hidden", | |
$.support.shrinkWrapBlocks || l.done(function() { | |
m.overflow = c.overflow[0], | |
m.overflowX = c.overflow[1], | |
m.overflowY = c.overflow[2] | |
})); | |
for (d in b) | |
if (f = b[d], | |
Wb.exec(f)) { | |
if (delete b[d], | |
f === (p ? "hide" : "show")) | |
continue; | |
o.push(d) | |
} | |
if (g = o.length) | |
for (h = $._data(a, "fxshow") || $._data(a, "fxshow", {}), | |
p ? $(a).show() : l.done(function() { | |
$(a).hide() | |
}), | |
l.done(function() { | |
var b; | |
$.removeData(a, "fxshow", !0); | |
for (b in n) | |
$.style(a, b, n[b]) | |
}), | |
d = 0; d < g; d++) | |
e = o[d], | |
i = l.createTween(e, p ? h[e] : 0), | |
n[e] = h[e] || $.style(a, e), | |
e in h || (h[e] = i.start, | |
p && (i.end = i.start, | |
i.start = "width" === e || "height" === e ? 1 : 0)) | |
} | |
function K(a, b, c, d, e) { | |
return new K.prototype.init(a,b,c,d,e) | |
} | |
function L(a, b) { | |
for (var c, d = { | |
height: a | |
}, e = 0; e < 4; e += 2 - b) | |
c = pb[e], | |
d["margin" + c] = d["padding" + c] = a; | |
return b && (d.opacity = d.width = a), | |
d | |
} | |
function M(a) { | |
return $.isWindow(a) ? a : 9 === a.nodeType && (a.defaultView || a.parentWindow) | |
} | |
var N, O, P = a.document, Q = a.location, R = a.navigator, S = a.jQuery, T = a.$, U = Array.prototype.push, V = Array.prototype.slice, W = Array.prototype.indexOf, X = Object.prototype.toString, Y = Object.prototype.hasOwnProperty, Z = String.prototype.trim, $ = function(a, b) { | |
return new $.fn.init(a,b,N) | |
}, _ = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, aa = /\S/, ba = /\s+/, ca = aa.test("\xa0") ? /^[\s\xA0]+|[\s\xA0]+$/g : /^\s+|\s+$/g, da = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, ea = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, fa = /^[\],:{}\s]*$/, ga = /(?:^|:|,)(?:\s*\[)+/g, ha = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, ia = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, ja = /^-ms-/, ka = /-([\da-z])/gi, la = function(a, b) { | |
return (b + "").toUpperCase() | |
}, ma = function() { | |
P.addEventListener ? (P.removeEventListener("DOMContentLoaded", ma, !1), | |
$.ready()) : "complete" === P.readyState && (P.detachEvent("onreadystatechange", ma), | |
$.ready()) | |
}, na = {}; | |
$.fn = $.prototype = { | |
constructor: $, | |
init: function(a, c, d) { | |
var e, f, g; | |
if (!a) | |
return this; | |
if (a.nodeType) | |
return this.context = this[0] = a, | |
this.length = 1, | |
this; | |
if ("string" == typeof a) { | |
if (e = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 ? [null, a, null] : da.exec(a), | |
!e || !e[1] && c) | |
return !c || c.jquery ? (c || d).find(a) : this.constructor(c).find(a); | |
if (e[1]) | |
return c = c instanceof $ ? c[0] : c, | |
g = c && c.nodeType ? c.ownerDocument || c : P, | |
a = $.parseHTML(e[1], g, !0), | |
ea.test(e[1]) && $.isPlainObject(c) && this.attr.call(a, c, !0), | |
$.merge(this, a); | |
if (f = P.getElementById(e[2]), | |
f && f.parentNode) { | |
if (f.id !== e[2]) | |
return d.find(a); | |
this.length = 1, | |
this[0] = f | |
} | |
return this.context = P, | |
this.selector = a, | |
this | |
} | |
return $.isFunction(a) ? d.ready(a) : (a.selector !== b && (this.selector = a.selector, | |
this.context = a.context), | |
$.makeArray(a, this)) | |
}, | |
selector: "", | |
jquery: "1.8.0", | |
length: 0, | |
size: function() { | |
return this.length | |
}, | |
toArray: function() { | |
return V.call(this) | |
}, | |
get: function(a) { | |
return null == a ? this.toArray() : a < 0 ? this[this.length + a] : this[a] | |
}, | |
pushStack: function(a, b, c) { | |
var d = $.merge(this.constructor(), a); | |
return d.prevObject = this, | |
d.context = this.context, | |
"find" === b ? d.selector = this.selector + (this.selector ? " " : "") + c : b && (d.selector = this.selector + "." + b + "(" + c + ")"), | |
d | |
}, | |
each: function(a, b) { | |
return $.each(this, a, b) | |
}, | |
ready: function(a) { | |
return $.ready.promise().done(a), | |
this | |
}, | |
eq: function(a) { | |
return a = +a, | |
a === -1 ? this.slice(a) : this.slice(a, a + 1) | |
}, | |
first: function() { | |
return this.eq(0) | |
}, | |
last: function() { | |
return this.eq(-1) | |
}, | |
slice: function() { | |
return this.pushStack(V.apply(this, arguments), "slice", V.call(arguments).join(",")) | |
}, | |
map: function(a) { | |
return this.pushStack($.map(this, function(b, c) { | |
return a.call(b, c, b) | |
})) | |
}, | |
end: function() { | |
return this.prevObject || this.constructor(null) | |
}, | |
push: U, | |
sort: [].sort, | |
splice: [].splice | |
}, | |
$.fn.init.prototype = $.fn, | |
$.extend = $.fn.extend = function() { | |
var a, c, d, e, f, g, h = arguments[0] || {}, i = 1, j = arguments.length, k = !1; | |
for ("boolean" == typeof h && (k = h, | |
h = arguments[1] || {}, | |
i = 2), | |
"object" == typeof h || $.isFunction(h) || (h = {}), | |
j === i && (h = this, | |
--i); i < j; i++) | |
if (null != (a = arguments[i])) | |
for (c in a) | |
d = h[c], | |
e = a[c], | |
h !== e && (k && e && ($.isPlainObject(e) || (f = $.isArray(e))) ? (f ? (f = !1, | |
g = d && $.isArray(d) ? d : []) : g = d && $.isPlainObject(d) ? d : {}, | |
h[c] = $.extend(k, g, e)) : e !== b && (h[c] = e)); | |
return h | |
} | |
, | |
$.extend({ | |
noConflict: function(b) { | |
return a.$ === $ && (a.$ = T), | |
b && a.jQuery === $ && (a.jQuery = S), | |
$ | |
}, | |
isReady: !1, | |
readyWait: 1, | |
holdReady: function(a) { | |
a ? $.readyWait++ : $.ready(!0) | |
}, | |
ready: function(a) { | |
if (a === !0 ? !--$.readyWait : !$.isReady) { | |
if (!P.body) | |
return setTimeout($.ready, 1); | |
$.isReady = !0, | |
a !== !0 && --$.readyWait > 0 || (O.resolveWith(P, [$]), | |
$.fn.trigger && $(P).trigger("ready").off("ready")) | |
} | |
}, | |
isFunction: function(a) { | |
return "function" === $.type(a) | |
}, | |
isArray: Array.isArray || function(a) { | |
return "array" === $.type(a) | |
} | |
, | |
isWindow: function(a) { | |
return null != a && a == a.window | |
}, | |
isNumeric: function(a) { | |
return !isNaN(parseFloat(a)) && isFinite(a) | |
}, | |
type: function(a) { | |
return null == a ? String(a) : na[X.call(a)] || "object" | |
}, | |
isPlainObject: function(a) { | |
if (!a || "object" !== $.type(a) || a.nodeType || $.isWindow(a)) | |
return !1; | |
try { | |
if (a.constructor && !Y.call(a, "constructor") && !Y.call(a.constructor.prototype, "isPrototypeOf")) | |
return !1 | |
} catch (c) { | |
return !1 | |
} | |
var d; | |
for (d in a) | |
; | |
return d === b || Y.call(a, d) | |
}, | |
isEmptyObject: function(a) { | |
var b; | |
for (b in a) | |
return !1; | |
return !0 | |
}, | |
error: function(a) { | |
throw new Error(a) | |
}, | |
parseHTML: function(a, b, c) { | |
var d; | |
return a && "string" == typeof a ? ("boolean" == typeof b && (c = b, | |
b = 0), | |
b = b || P, | |
(d = ea.exec(a)) ? [b.createElement(d[1])] : (d = $.buildFragment([a], b, c ? null : []), | |
$.merge([], (d.cacheable ? $.clone(d.fragment) : d.fragment).childNodes))) : null | |
}, | |
parseJSON: function(b) { | |
return b && "string" == typeof b ? (b = $.trim(b), | |
a.JSON && a.JSON.parse ? a.JSON.parse(b) : fa.test(b.replace(ha, "@").replace(ia, "]").replace(ga, "")) ? new Function("return " + b)() : void $.error("Invalid JSON: " + b)) : null | |
}, | |
parseXML: function(c) { | |
var d, e; | |
if (!c || "string" != typeof c) | |
return null; | |
try { | |
a.DOMParser ? (e = new DOMParser, | |
d = e.parseFromString(c, "text/xml")) : (d = new ActiveXObject("Microsoft.XMLDOM"), | |
d.async = "false", | |
d.loadXML(c)) | |
} catch (f) { | |
d = b | |
} | |
return d && d.documentElement && !d.getElementsByTagName("parsererror").length || $.error("Invalid XML: " + c), | |
d | |
}, | |
noop: function() {}, | |
globalEval: function(b) { | |
b && aa.test(b) && (a.execScript || function(b) { | |
a.eval.call(a, b) | |
} | |
)(b) | |
}, | |
camelCase: function(a) { | |
return a.replace(ja, "ms-").replace(ka, la) | |
}, | |
nodeName: function(a, b) { | |
return a.nodeName && a.nodeName.toUpperCase() === b.toUpperCase() | |
}, | |
each: function(a, c, d) { | |
var e, f = 0, g = a.length, h = g === b || $.isFunction(a); | |
if (d) | |
if (h) { | |
for (e in a) | |
if (c.apply(a[e], d) === !1) | |
break | |
} else | |
for (; f < g && c.apply(a[f++], d) !== !1; ) | |
; | |
else if (h) { | |
for (e in a) | |
if (c.call(a[e], e, a[e]) === !1) | |
break | |
} else | |
for (; f < g && c.call(a[f], f, a[f++]) !== !1; ) | |
; | |
return a | |
}, | |
trim: Z ? function(a) { | |
return null == a ? "" : Z.call(a) | |
} | |
: function(a) { | |
return null == a ? "" : a.toString().replace(ca, "") | |
} | |
, | |
makeArray: function(a, b) { | |
var c, d = b || []; | |
return null != a && (c = $.type(a), | |
null == a.length || "string" === c || "function" === c || "regexp" === c || $.isWindow(a) ? U.call(d, a) : $.merge(d, a)), | |
d | |
}, | |
inArray: function(a, b, c) { | |
var d; | |
if (b) { | |
if (W) | |
return W.call(b, a, c); | |
for (d = b.length, | |
c = c ? c < 0 ? Math.max(0, d + c) : c : 0; c < d; c++) | |
if (c in b && b[c] === a) | |
return c | |
} | |
return -1 | |
}, | |
merge: function(a, c) { | |
var d = c.length | |
, e = a.length | |
, f = 0; | |
if ("number" == typeof d) | |
for (; f < d; f++) | |
a[e++] = c[f]; | |
else | |
for (; c[f] !== b; ) | |
a[e++] = c[f++]; | |
return a.length = e, | |
a | |
}, | |
grep: function(a, b, c) { | |
var d, e = [], f = 0, g = a.length; | |
for (c = !!c; f < g; f++) | |
d = !!b(a[f], f), | |
c !== d && e.push(a[f]); | |
return e | |
}, | |
map: function(a, c, d) { | |
var e, f, g = [], h = 0, i = a.length, j = a instanceof $ || i !== b && "number" == typeof i && (i > 0 && a[0] && a[i - 1] || 0 === i || $.isArray(a)); | |
if (j) | |
for (; h < i; h++) | |
e = c(a[h], h, d), | |
null != e && (g[g.length] = e); | |
else | |
for (f in a) | |
e = c(a[f], f, d), | |
null != e && (g[g.length] = e); | |
return g.concat.apply([], g) | |
}, | |
guid: 1, | |
proxy: function(a, c) { | |
var d, e, f; | |
return "string" == typeof c && (d = a[c], | |
c = a, | |
a = d), | |
$.isFunction(a) ? (e = V.call(arguments, 2), | |
f = function() { | |
return a.apply(c, e.concat(V.call(arguments))) | |
} | |
, | |
f.guid = a.guid = a.guid || f.guid || $.guid++, | |
f) : b | |
}, | |
access: function(a, c, d, e, f, g, h) { | |
var i, j = null == d, k = 0, l = a.length; | |
if (d && "object" == typeof d) { | |
for (k in d) | |
$.access(a, c, k, d[k], 1, g, e); | |
f = 1 | |
} else if (e !== b) { | |
if (i = h === b && $.isFunction(e), | |
j && (i ? (i = c, | |
c = function(a, b, c) { | |
return i.call($(a), c) | |
} | |
) : (c.call(a, e), | |
c = null)), | |
c) | |
for (; k < l; k++) | |
c(a[k], d, i ? e.call(a[k], k, c(a[k], d)) : e, h); | |
f = 1 | |
} | |
return f ? a : j ? c.call(a) : l ? c(a[0], d) : g | |
}, | |
now: function() { | |
return (new Date).getTime() | |
} | |
}), | |
$.ready.promise = function(b) { | |
if (!O) | |
if (O = $.Deferred(), | |
"complete" === P.readyState || "loading" !== P.readyState && P.addEventListener) | |
setTimeout($.ready, 1); | |
else if (P.addEventListener) | |
P.addEventListener("DOMContentLoaded", ma, !1), | |
a.addEventListener("load", $.ready, !1); | |
else { | |
P.attachEvent("onreadystatechange", ma), | |
a.attachEvent("onload", $.ready); | |
var c = !1; | |
try { | |
c = null == a.frameElement && P.documentElement | |
} catch (d) {} | |
c && c.doScroll && !function e() { | |
if (!$.isReady) { | |
try { | |
c.doScroll("left") | |
} catch (a) { | |
return setTimeout(e, 50) | |
} | |
$.ready() | |
} | |
}() | |
} | |
return O.promise(b) | |
} | |
, | |
$.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(a, b) { | |
na["[object " + b + "]"] = b.toLowerCase() | |
}), | |
N = $(P); | |
var oa = {}; | |
$.Callbacks = function(a) { | |
a = "string" == typeof a ? oa[a] || c(a) : $.extend({}, a); | |
var d, e, f, g, h, i, j = [], k = !a.once && [], l = function(b) { | |
for (d = a.memory && b, | |
e = !0, | |
i = g || 0, | |
g = 0, | |
h = j.length, | |
f = !0; j && i < h; i++) | |
if (j[i].apply(b[0], b[1]) === !1 && a.stopOnFalse) { | |
d = !1; | |
break | |
} | |
f = !1, | |
j && (k ? k.length && l(k.shift()) : d ? j = [] : m.disable()) | |
}, m = { | |
add: function() { | |
if (j) { | |
var b = j.length; | |
!function c(b) { | |
$.each(b, function(b, d) { | |
!$.isFunction(d) || a.unique && m.has(d) ? d && d.length && c(d) : j.push(d) | |
}) | |
}(arguments), | |
f ? h = j.length : d && (g = b, | |
l(d)) | |
} | |
return this | |
}, | |
remove: function() { | |
return j && $.each(arguments, function(a, b) { | |
for (var c; (c = $.inArray(b, j, c)) > -1; ) | |
j.splice(c, 1), | |
f && (c <= h && h--, | |
c <= i && i--) | |
}), | |
this | |
}, | |
has: function(a) { | |
return $.inArray(a, j) > -1 | |
}, | |
empty: function() { | |
return j = [], | |
this | |
}, | |
disable: function() { | |
return j = k = d = b, | |
this | |
}, | |
disabled: function() { | |
return !j | |
}, | |
lock: function() { | |
return k = b, | |
d || m.disable(), | |
this | |
}, | |
locked: function() { | |
return !k | |
}, | |
fireWith: function(a, b) { | |
return b = b || [], | |
b = [a, b.slice ? b.slice() : b], | |
!j || e && !k || (f ? k.push(b) : l(b)), | |
this | |
}, | |
fire: function() { | |
return m.fireWith(this, arguments), | |
this | |
}, | |
fired: function() { | |
return !!e | |
} | |
}; | |
return m | |
} | |
, | |
$.extend({ | |
Deferred: function(a) { | |
var b = [["resolve", "done", $.Callbacks("once memory"), "resolved"], ["reject", "fail", $.Callbacks("once memory"), "rejected"], ["notify", "progress", $.Callbacks("memory")]] | |
, c = "pending" | |
, d = { | |
state: function() { | |
return c | |
}, | |
always: function() { | |
return e.done(arguments).fail(arguments), | |
this | |
}, | |
then: function() { | |
var a = arguments; | |
return $.Deferred(function(c) { | |
$.each(b, function(b, d) { | |
var f = d[0] | |
, g = a[b]; | |
e[d[1]]($.isFunction(g) ? function() { | |
var a = g.apply(this, arguments); | |
a && $.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f + "With"](this === e ? c : this, [a]) | |
} | |
: c[f]) | |
}), | |
a = null | |
}).promise() | |
}, | |
promise: function(a) { | |
return "object" == typeof a ? $.extend(a, d) : d | |
} | |
} | |
, e = {}; | |
return d.pipe = d.then, | |
$.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]] = g.fire, | |
e[f[0] + "With"] = g.fireWith | |
}), | |
d.promise(e), | |
a && a.call(e, e), | |
e | |
}, | |
when: function(a) { | |
var b, c, d, e = 0, f = V.call(arguments), g = f.length, h = 1 !== g || a && $.isFunction(a.promise) ? g : 0, i = 1 === h ? a : $.Deferred(), j = function(a, c, d) { | |
return function(e) { | |
c[a] = this, | |
d[a] = arguments.length > 1 ? V.call(arguments) : e, | |
d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d) | |
} | |
}; | |
if (g > 1) | |
for (b = new Array(g), | |
c = new Array(g), | |
d = new Array(g); e < g; e++) | |
f[e] && $.isFunction(f[e].promise) ? f[e].promise().done(j(e, d, f)).fail(i.reject).progress(j(e, c, b)) : --h; | |
return h || i.resolveWith(d, f), | |
i.promise() | |
} | |
}), | |
$.support = function() { | |
var b, c, d, e, f, g, h, i, j, k, l, m = P.createElement("div"); | |
if (m.setAttribute("className", "t"), | |
m.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", | |
c = m.getElementsByTagName("*"), | |
d = m.getElementsByTagName("a")[0], | |
d.style.cssText = "top:1px;float:left;opacity:.5", | |
!c || !c.length || !d) | |
return {}; | |
e = P.createElement("select"), | |
f = e.appendChild(P.createElement("option")), | |
g = m.getElementsByTagName("input")[0], | |
b = { | |
leadingWhitespace: 3 === m.firstChild.nodeType, | |
tbody: !m.getElementsByTagName("tbody").length, | |
htmlSerialize: !!m.getElementsByTagName("link").length, | |
style: /top/.test(d.getAttribute("style")), | |
hrefNormalized: "/a" === d.getAttribute("href"), | |
opacity: /^0.5/.test(d.style.opacity), | |
cssFloat: !!d.style.cssFloat, | |
checkOn: "on" === g.value, | |
optSelected: f.selected, | |
getSetAttribute: "t" !== m.className, | |
enctype: !!P.createElement("form").enctype, | |
html5Clone: "<:nav></:nav>" !== P.createElement("nav").cloneNode(!0).outerHTML, | |
boxModel: "CSS1Compat" === P.compatMode, | |
submitBubbles: !0, | |
changeBubbles: !0, | |
focusinBubbles: !1, | |
deleteExpando: !0, | |
noCloneEvent: !0, | |
inlineBlockNeedsLayout: !1, | |
shrinkWrapBlocks: !1, | |
reliableMarginRight: !0, | |
boxSizingReliable: !0, | |
pixelPosition: !1 | |
}, | |
g.checked = !0, | |
b.noCloneChecked = g.cloneNode(!0).checked, | |
e.disabled = !0, | |
b.optDisabled = !f.disabled; | |
try { | |
delete m.test | |
} catch (n) { | |
b.deleteExpando = !1 | |
} | |
if (!m.addEventListener && m.attachEvent && m.fireEvent && (m.attachEvent("onclick", l = function() { | |
b.noCloneEvent = !1 | |
} | |
), | |
m.cloneNode(!0).fireEvent("onclick"), | |
m.detachEvent("onclick", l)), | |
g = P.createElement("input"), | |
g.value = "t", | |
g.setAttribute("type", "radio"), | |
b.radioValue = "t" === g.value, | |
g.setAttribute("checked", "checked"), | |
g.setAttribute("name", "t"), | |
m.appendChild(g), | |
h = P.createDocumentFragment(), | |
h.appendChild(m.lastChild), | |
b.checkClone = h.cloneNode(!0).cloneNode(!0).lastChild.checked, | |
b.appendChecked = g.checked, | |
h.removeChild(g), | |
h.appendChild(m), | |
m.attachEvent) | |
for (j in { | |
submit: !0, | |
change: !0, | |
focusin: !0 | |
}) | |
i = "on" + j, | |
k = i in m, | |
k || (m.setAttribute(i, "return;"), | |
k = "function" == typeof m[i]), | |
b[j + "Bubbles"] = k; | |
return $(function() { | |
var c, d, e, f, g = "padding:0;margin:0;border:0;display:block;overflow:hidden;", h = P.getElementsByTagName("body")[0]; | |
h && (c = P.createElement("div"), | |
c.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px", | |
h.insertBefore(c, h.firstChild), | |
d = P.createElement("div"), | |
c.appendChild(d), | |
d.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", | |
e = d.getElementsByTagName("td"), | |
e[0].style.cssText = "padding:0;margin:0;border:0;display:none", | |
k = 0 === e[0].offsetHeight, | |
e[0].style.display = "", | |
e[1].style.display = "none", | |
b.reliableHiddenOffsets = k && 0 === e[0].offsetHeight, | |
d.innerHTML = "", | |
d.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", | |
b.boxSizing = 4 === d.offsetWidth, | |
b.doesNotIncludeMarginInBodyOffset = 1 !== h.offsetTop, | |
a.getComputedStyle && (b.pixelPosition = "1%" !== (a.getComputedStyle(d, null) || {}).top, | |
b.boxSizingReliable = "4px" === (a.getComputedStyle(d, null) || { | |
width: "4px" | |
}).width, | |
f = P.createElement("div"), | |
f.style.cssText = d.style.cssText = g, | |
f.style.marginRight = f.style.width = "0", | |
d.style.width = "1px", | |
d.appendChild(f), | |
b.reliableMarginRight = !parseFloat((a.getComputedStyle(f, null) || {}).marginRight)), | |
"undefined" != typeof d.style.zoom && (d.innerHTML = "", | |
d.style.cssText = g + "width:1px;padding:1px;display:inline;zoom:1", | |
b.inlineBlockNeedsLayout = 3 === d.offsetWidth, | |
d.style.display = "block", | |
d.style.overflow = "visible", | |
d.innerHTML = "<div></div>", | |
d.firstChild.style.width = "5px", | |
b.shrinkWrapBlocks = 3 !== d.offsetWidth, | |
c.style.zoom = 1), | |
h.removeChild(c), | |
c = d = e = f = null) | |
}), | |
h.removeChild(m), | |
c = d = e = f = g = h = m = null, | |
b | |
}(); | |
var pa = /^(?:\{.*\}|\[.*\])$/ | |
, qa = /([A-Z])/g; | |
$.extend({ | |
cache: {}, | |
deletedIds: [], | |
uuid: 0, | |
expando: "jQuery" + ($.fn.jquery + Math.random()).replace(/\D/g, ""), | |
noData: { | |
embed: !0, | |
object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", | |
applet: !0 | |
}, | |
hasData: function(a) { | |
return a = a.nodeType ? $.cache[a[$.expando]] : a[$.expando], | |
!!a && !e(a) | |
}, | |
data: function(a, c, d, e) { | |
if ($.acceptData(a)) { | |
var f, g, h = $.expando, i = "string" == typeof c, j = a.nodeType, k = j ? $.cache : a, l = j ? a[h] : a[h] && h; | |
if (l && k[l] && (e || k[l].data) || !i || d !== b) | |
return l || (j ? a[h] = l = $.deletedIds.pop() || ++$.uuid : l = h), | |
k[l] || (k[l] = {}, | |
j || (k[l].toJSON = $.noop)), | |
"object" != typeof c && "function" != typeof c || (e ? k[l] = $.extend(k[l], c) : k[l].data = $.extend(k[l].data, c)), | |
f = k[l], | |
e || (f.data || (f.data = {}), | |
f = f.data), | |
d !== b && (f[$.camelCase(c)] = d), | |
i ? (g = f[c], | |
null == g && (g = f[$.camelCase(c)])) : g = f, | |
g | |
} | |
}, | |
removeData: function(a, b, c) { | |
if ($.acceptData(a)) { | |
var d, f, g, h = a.nodeType, i = h ? $.cache : a, j = h ? a[$.expando] : $.expando; | |
if (i[j]) { | |
if (b && (d = c ? i[j] : i[j].data)) { | |
$.isArray(b) || (b in d ? b = [b] : (b = $.camelCase(b), | |
b = b in d ? [b] : b.split(" "))); | |
for (f = 0, | |
g = b.length; f < g; f++) | |
delete d[b[f]]; | |
if (!(c ? e : $.isEmptyObject)(d)) | |
return | |
} | |
(c || (delete i[j].data, | |
e(i[j]))) && (h ? $.cleanData([a], !0) : $.support.deleteExpando || i != i.window ? delete i[j] : i[j] = null) | |
} | |
} | |
}, | |
_data: function(a, b, c) { | |
return $.data(a, b, c, !0) | |
}, | |
acceptData: function(a) { | |
var b = a.nodeName && $.noData[a.nodeName.toLowerCase()]; | |
return !b || b !== !0 && a.getAttribute("classid") === b | |
} | |
}), | |
$.fn.extend({ | |
data: function(a, c) { | |
var e, f, g, h, i, j = this[0], k = 0, l = null; | |
if (a === b) { | |
if (this.length && (l = $.data(j), | |
1 === j.nodeType && !$._data(j, "parsedAttrs"))) { | |
for (g = j.attributes, | |
i = g.length; k < i; k++) | |
h = g[k].name, | |
0 === h.indexOf("data-") && (h = $.camelCase(h.substring(5)), | |
d(j, h, l[h])); | |
$._data(j, "parsedAttrs", !0) | |
} | |
return l | |
} | |
return "object" == typeof a ? this.each(function() { | |
$.data(this, a) | |
}) : (e = a.split(".", 2), | |
e[1] = e[1] ? "." + e[1] : "", | |
f = e[1] + "!", | |
$.access(this, function(c) { | |
return c === b ? (l = this.triggerHandler("getData" + f, [e[0]]), | |
l === b && j && (l = $.data(j, a), | |
l = d(j, a, l)), | |
l === b && e[1] ? this.data(e[0]) : l) : (e[1] = c, | |
void this.each(function() { | |
var b = $(this); | |
b.triggerHandler("setData" + f, e), | |
$.data(this, a, c), | |
b.triggerHandler("changeData" + f, e) | |
})) | |
}, null, c, arguments.length > 1, null, !1)) | |
}, | |
removeData: function(a) { | |
return this.each(function() { | |
$.removeData(this, a) | |
}) | |
} | |
}), | |
$.extend({ | |
queue: function(a, b, c) { | |
var d; | |
if (a) | |
return b = (b || "fx") + "queue", | |
d = $._data(a, b), | |
c && (!d || $.isArray(c) ? d = $._data(a, b, $.makeArray(c)) : d.push(c)), | |
d || [] | |
}, | |
dequeue: function(a, b) { | |
b = b || "fx"; | |
var c = $.queue(a, b) | |
, d = c.shift() | |
, e = $._queueHooks(a, b) | |
, f = function() { | |
$.dequeue(a, b) | |
}; | |
"inprogress" === d && (d = c.shift()), | |
d && ("fx" === b && c.unshift("inprogress"), | |
delete e.stop, | |
d.call(a, f, e)), | |
!c.length && e && e.empty.fire() | |
}, | |
_queueHooks: function(a, b) { | |
var c = b + "queueHooks"; | |
return $._data(a, c) || $._data(a, c, { | |
empty: $.Callbacks("once memory").add(function() { | |
$.removeData(a, b + "queue", !0), | |
$.removeData(a, c, !0) | |
}) | |
}) | |
} | |
}), | |
$.fn.extend({ | |
queue: function(a, c) { | |
var d = 2; | |
return "string" != typeof a && (c = a, | |
a = "fx", | |
d--), | |
arguments.length < d ? $.queue(this[0], a) : c === b ? this : this.each(function() { | |
var b = $.queue(this, a, c); | |
$._queueHooks(this, a), | |
"fx" === a && "inprogress" !== b[0] && $.dequeue(this, a) | |
}) | |
}, | |
dequeue: function(a) { | |
return this.each(function() { | |
$.dequeue(this, a) | |
}) | |
}, | |
delay: function(a, b) { | |
return a = $.fx ? $.fx.speeds[a] || a : a, | |
b = b || "fx", | |
this.queue(b, function(b, c) { | |
var d = setTimeout(b, a); | |
c.stop = function() { | |
clearTimeout(d) | |
} | |
}) | |
}, | |
clearQueue: function(a) { | |
return this.queue(a || "fx", []) | |
}, | |
promise: function(a, c) { | |
var d, e = 1, f = $.Deferred(), g = this, h = this.length, i = function() { | |
--e || f.resolveWith(g, [g]) | |
}; | |
for ("string" != typeof a && (c = a, | |
a = b), | |
a = a || "fx"; h--; ) | |
(d = $._data(g[h], a + "queueHooks")) && d.empty && (e++, | |
d.empty.add(i)); | |
return i(), | |
f.promise(c) | |
} | |
}); | |
var ra, sa, ta, ua = /[\t\r\n]/g, va = /\r/g, wa = /^(?:button|input)$/i, xa = /^(?:button|input|object|select|textarea)$/i, ya = /^a(?:rea|)$/i, za = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, Aa = $.support.getSetAttribute; | |
$.fn.extend({ | |
attr: function(a, b) { | |
return $.access(this, $.attr, a, b, arguments.length > 1) | |
}, | |
removeAttr: function(a) { | |
return this.each(function() { | |
$.removeAttr(this, a) | |
}) | |
}, | |
prop: function(a, b) { | |
return $.access(this, $.prop, a, b, arguments.length > 1) | |
}, | |
removeProp: function(a) { | |
return a = $.propFix[a] || a, | |
this.each(function() { | |
try { | |
this[a] = b, | |
delete this[a] | |
} catch (c) {} | |
}) | |
}, | |
addClass: function(a) { | |
var b, c, d, e, f, g, h; | |
if ($.isFunction(a)) | |
return this.each(function(b) { | |
$(this).addClass(a.call(this, b, this.className)) | |
}); | |
if (a && "string" == typeof a) | |
for (b = a.split(ba), | |
c = 0, | |
d = this.length; c < d; c++) | |
if (e = this[c], | |
1 === e.nodeType) | |
if (e.className || 1 !== b.length) { | |
for (f = " " + e.className + " ", | |
g = 0, | |
h = b.length; g < h; g++) | |
~f.indexOf(" " + b[g] + " ") || (f += b[g] + " "); | |
e.className = $.trim(f) | |
} else | |
e.className = a; | |
return this | |
}, | |
removeClass: function(a) { | |
var c, d, e, f, g, h, i; | |
if ($.isFunction(a)) | |
return this.each(function(b) { | |
$(this).removeClass(a.call(this, b, this.className)) | |
}); | |
if (a && "string" == typeof a || a === b) | |
for (c = (a || "").split(ba), | |
h = 0, | |
i = this.length; h < i; h++) | |
if (e = this[h], | |
1 === e.nodeType && e.className) { | |
for (d = (" " + e.className + " ").replace(ua, " "), | |
f = 0, | |
g = c.length; f < g; f++) | |
for (; d.indexOf(" " + c[f] + " ") > -1; ) | |
d = d.replace(" " + c[f] + " ", " "); | |
e.className = a ? $.trim(d) : "" | |
} | |
return this | |
}, | |
toggleClass: function(a, b) { | |
var c = typeof a | |
, d = "boolean" == typeof b; | |
return $.isFunction(a) ? this.each(function(c) { | |
$(this).toggleClass(a.call(this, c, this.className, b), b) | |
}) : this.each(function() { | |
if ("string" === c) | |
for (var e, f = 0, g = $(this), h = b, i = a.split(ba); e = i[f++]; ) | |
h = d ? h : !g.hasClass(e), | |
g[h ? "addClass" : "removeClass"](e); | |
else | |
"undefined" !== c && "boolean" !== c || (this.className && $._data(this, "__className__", this.className), | |
this.className = this.className || a === !1 ? "" : $._data(this, "__className__") || "") | |
}) | |
}, | |
hasClass: function(a) { | |
for (var b = " " + a + " ", c = 0, d = this.length; c < d; c++) | |
if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(ua, " ").indexOf(b) > -1) | |
return !0; | |
return !1 | |
}, | |
val: function(a) { | |
var c, d, e, f = this[0]; | |
{ | |
if (arguments.length) | |
return e = $.isFunction(a), | |
this.each(function(d) { | |
var f, g = $(this); | |
1 === this.nodeType && (f = e ? a.call(this, d, g.val()) : a, | |
null == f ? f = "" : "number" == typeof f ? f += "" : $.isArray(f) && (f = $.map(f, function(a) { | |
return null == a ? "" : a + "" | |
})), | |
c = $.valHooks[this.type] || $.valHooks[this.nodeName.toLowerCase()], | |
c && "set"in c && c.set(this, f, "value") !== b || (this.value = f)) | |
}); | |
if (f) | |
return c = $.valHooks[f.type] || $.valHooks[f.nodeName.toLowerCase()], | |
c && "get"in c && (d = c.get(f, "value")) !== b ? d : (d = f.value, | |
"string" == typeof d ? d.replace(va, "") : null == d ? "" : d) | |
} | |
} | |
}), | |
$.extend({ | |
valHooks: { | |
option: { | |
get: function(a) { | |
var b = a.attributes.value; | |
return !b || b.specified ? a.value : a.text | |
} | |
}, | |
select: { | |
get: function(a) { | |
var b, c, d, e, f = a.selectedIndex, g = [], h = a.options, i = "select-one" === a.type; | |
if (f < 0) | |
return null; | |
for (c = i ? f : 0, | |
d = i ? f + 1 : h.length; c < d; c++) | |
if (e = h[c], | |
e.selected && ($.support.optDisabled ? !e.disabled : null === e.getAttribute("disabled")) && (!e.parentNode.disabled || !$.nodeName(e.parentNode, "optgroup"))) { | |
if (b = $(e).val(), | |
i) | |
return b; | |
g.push(b) | |
} | |
return i && !g.length && h.length ? $(h[f]).val() : g | |
}, | |
set: function(a, b) { | |
var c = $.makeArray(b); | |
return $(a).find("option").each(function() { | |
this.selected = $.inArray($(this).val(), c) >= 0 | |
}), | |
c.length || (a.selectedIndex = -1), | |
c | |
} | |
} | |
}, | |
attrFn: {}, | |
attr: function(a, c, d, e) { | |
var f, g, h, i = a.nodeType; | |
if (a && 3 !== i && 8 !== i && 2 !== i) | |
return e && $.isFunction($.fn[c]) ? $(a)[c](d) : "undefined" == typeof a.getAttribute ? $.prop(a, c, d) : (h = 1 !== i || !$.isXMLDoc(a), | |
h && (c = c.toLowerCase(), | |
g = $.attrHooks[c] || (za.test(c) ? sa : ra)), | |
d !== b ? null === d ? void $.removeAttr(a, c) : g && "set"in g && h && (f = g.set(a, d, c)) !== b ? f : (a.setAttribute(c, "" + d), | |
d) : g && "get"in g && h && null !== (f = g.get(a, c)) ? f : (f = a.getAttribute(c), | |
null === f ? b : f)) | |
}, | |
removeAttr: function(a, b) { | |
var c, d, e, f, g = 0; | |
if (b && 1 === a.nodeType) | |
for (d = b.split(ba); g < d.length; g++) | |
e = d[g], | |
e && (c = $.propFix[e] || e, | |
f = za.test(e), | |
f || $.attr(a, e, ""), | |
a.removeAttribute(Aa ? e : c), | |
f && c in a && (a[c] = !1)) | |
}, | |
attrHooks: { | |
type: { | |
set: function(a, b) { | |
if (wa.test(a.nodeName) && a.parentNode) | |
$.error("type property can't be changed"); | |
else if (!$.support.radioValue && "radio" === b && $.nodeName(a, "input")) { | |
var c = a.value; | |
return a.setAttribute("type", b), | |
c && (a.value = c), | |
b | |
} | |
} | |
}, | |
value: { | |
get: function(a, b) { | |
return ra && $.nodeName(a, "button") ? ra.get(a, b) : b in a ? a.value : null | |
}, | |
set: function(a, b, c) { | |
return ra && $.nodeName(a, "button") ? ra.set(a, b, c) : void (a.value = b) | |
} | |
} | |
}, | |
propFix: { | |
tabindex: "tabIndex", | |
readonly: "readOnly", | |
"for": "htmlFor", | |
"class": "className", | |
maxlength: "maxLength", | |
cellspacing: "cellSpacing", | |
cellpadding: "cellPadding", | |
rowspan: "rowSpan", | |
colspan: "colSpan", | |
usemap: "useMap", | |
frameborder: "frameBorder", | |
contenteditable: "contentEditable" | |
}, | |
prop: function(a, c, d) { | |
var e, f, g, h = a.nodeType; | |
if (a && 3 !== h && 8 !== h && 2 !== h) | |
return g = 1 !== h || !$.isXMLDoc(a), | |
g && (c = $.propFix[c] || c, | |
f = $.propHooks[c]), | |
d !== b ? f && "set"in f && (e = f.set(a, d, c)) !== b ? e : a[c] = d : f && "get"in f && null !== (e = f.get(a, c)) ? e : a[c] | |
}, | |
propHooks: { | |
tabIndex: { | |
get: function(a) { | |
var c = a.getAttributeNode("tabindex"); | |
return c && c.specified ? parseInt(c.value, 10) : xa.test(a.nodeName) || ya.test(a.nodeName) && a.href ? 0 : b | |
} | |
} | |
} | |
}), | |
sa = { | |
get: function(a, c) { | |
var d, e = $.prop(a, c); | |
return e === !0 || "boolean" != typeof e && (d = a.getAttributeNode(c)) && d.nodeValue !== !1 ? c.toLowerCase() : b | |
}, | |
set: function(a, b, c) { | |
var d; | |
return b === !1 ? $.removeAttr(a, c) : (d = $.propFix[c] || c, | |
d in a && (a[d] = !0), | |
a.setAttribute(c, c.toLowerCase())), | |
c | |
} | |
}, | |
Aa || (ta = { | |
name: !0, | |
id: !0, | |
coords: !0 | |
}, | |
ra = $.valHooks.button = { | |
get: function(a, c) { | |
var d; | |
return d = a.getAttributeNode(c), | |
d && (ta[c] ? "" !== d.value : d.specified) ? d.value : b | |
}, | |
set: function(a, b, c) { | |
var d = a.getAttributeNode(c); | |
return d || (d = P.createAttribute(c), | |
a.setAttributeNode(d)), | |
d.value = b + "" | |
} | |
}, | |
$.each(["width", "height"], function(a, b) { | |
$.attrHooks[b] = $.extend($.attrHooks[b], { | |
set: function(a, c) { | |
if ("" === c) | |
return a.setAttribute(b, "auto"), | |
c | |
} | |
}) | |
}), | |
$.attrHooks.contenteditable = { | |
get: ra.get, | |
set: function(a, b, c) { | |
"" === b && (b = "false"), | |
ra.set(a, b, c) | |
} | |
}), | |
$.support.hrefNormalized || $.each(["href", "src", "width", "height"], function(a, c) { | |
$.attrHooks[c] = $.extend($.attrHooks[c], { | |
get: function(a) { | |
var d = a.getAttribute(c, 2); | |
return null === d ? b : d | |
} | |
}) | |
}), | |
$.support.style || ($.attrHooks.style = { | |
get: function(a) { | |
return a.style.cssText.toLowerCase() || b | |
}, | |
set: function(a, b) { | |
return a.style.cssText = "" + b | |
} | |
}), | |
$.support.optSelected || ($.propHooks.selected = $.extend($.propHooks.selected, { | |
get: function(a) { | |
var b = a.parentNode; | |
return b && (b.selectedIndex, | |
b.parentNode && b.parentNode.selectedIndex), | |
null | |
} | |
})), | |
$.support.enctype || ($.propFix.enctype = "encoding"), | |
$.support.checkOn || $.each(["radio", "checkbox"], function() { | |
$.valHooks[this] = { | |
get: function(a) { | |
return null === a.getAttribute("value") ? "on" : a.value | |
} | |
} | |
}), | |
$.each(["radio", "checkbox"], function() { | |
$.valHooks[this] = $.extend($.valHooks[this], { | |
set: function(a, b) { | |
if ($.isArray(b)) | |
return a.checked = $.inArray($(a).val(), b) >= 0 | |
} | |
}) | |
}); | |
var Ba = /^(?:textarea|input|select)$/i | |
, Ca = /^([^\.]*|)(?:\.(.+)|)$/ | |
, Da = /(?:^|\s)hover(\.\S+|)\b/ | |
, Ea = /^key/ | |
, Fa = /^(?:mouse|contextmenu)|click/ | |
, Ga = /^(?:focusinfocus|focusoutblur)$/ | |
, Ha = function(a) { | |
return $.event.special.hover ? a : a.replace(Da, "mouseenter$1 mouseleave$1") | |
}; | |
$.event = { | |
add: function(a, c, d, e, f) { | |
var g, h, i, j, k, l, m, n, o, p, q; | |
if (3 !== a.nodeType && 8 !== a.nodeType && c && d && (g = $._data(a))) { | |
for (d.handler && (o = d, | |
d = o.handler, | |
f = o.selector), | |
d.guid || (d.guid = $.guid++), | |
i = g.events, | |
i || (g.events = i = {}), | |
h = g.handle, | |
h || (g.handle = h = function(a) { | |
return "undefined" == typeof $ || a && $.event.triggered === a.type ? b : $.event.dispatch.apply(h.elem, arguments) | |
} | |
, | |
h.elem = a), | |
c = $.trim(Ha(c)).split(" "), | |
j = 0; j < c.length; j++) | |
k = Ca.exec(c[j]) || [], | |
l = k[1], | |
m = (k[2] || "").split(".").sort(), | |
q = $.event.special[l] || {}, | |
l = (f ? q.delegateType : q.bindType) || l, | |
q = $.event.special[l] || {}, | |
n = $.extend({ | |
type: l, | |
origType: k[1], | |
data: e, | |
handler: d, | |
guid: d.guid, | |
selector: f, | |
namespace: m.join(".") | |
}, o), | |
p = i[l], | |
p || (p = i[l] = [], | |
p.delegateCount = 0, | |
q.setup && q.setup.call(a, e, m, h) !== !1 || (a.addEventListener ? a.addEventListener(l, h, !1) : a.attachEvent && a.attachEvent("on" + l, h))), | |
q.add && (q.add.call(a, n), | |
n.handler.guid || (n.handler.guid = d.guid)), | |
f ? p.splice(p.delegateCount++, 0, n) : p.push(n), | |
$.event.global[l] = !0; | |
a = null | |
} | |
}, | |
global: {}, | |
remove: function(a, b, c, d, e) { | |
var f, g, h, i, j, k, l, m, n, o, p, q = $.hasData(a) && $._data(a); | |
if (q && (m = q.events)) { | |
for (b = $.trim(Ha(b || "")).split(" "), | |
f = 0; f < b.length; f++) | |
if (g = Ca.exec(b[f]) || [], | |
h = i = g[1], | |
j = g[2], | |
h) { | |
for (n = $.event.special[h] || {}, | |
h = (d ? n.delegateType : n.bindType) || h, | |
o = m[h] || [], | |
k = o.length, | |
j = j ? new RegExp("(^|\\.)" + j.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null, | |
l = 0; l < o.length; l++) | |
p = o[l], | |
!e && i !== p.origType || c && c.guid !== p.guid || j && !j.test(p.namespace) || d && d !== p.selector && ("**" !== d || !p.selector) || (o.splice(l--, 1), | |
p.selector && o.delegateCount--, | |
n.remove && n.remove.call(a, p)); | |
0 === o.length && k !== o.length && (n.teardown && n.teardown.call(a, j, q.handle) !== !1 || $.removeEvent(a, h, q.handle), | |
delete m[h]) | |
} else | |
for (h in m) | |
$.event.remove(a, h + b[f], c, d, !0); | |
$.isEmptyObject(m) && (delete q.handle, | |
$.removeData(a, "events", !0)) | |
} | |
}, | |
customEvent: { | |
getData: !0, | |
setData: !0, | |
changeData: !0 | |
}, | |
trigger: function(c, d, e, f) { | |
if (!e || 3 !== e.nodeType && 8 !== e.nodeType) { | |
var g, h, i, j, k, l, m, n, o, p, q = c.type || c, r = []; | |
if (!Ga.test(q + $.event.triggered) && (q.indexOf("!") >= 0 && (q = q.slice(0, -1), | |
h = !0), | |
q.indexOf(".") >= 0 && (r = q.split("."), | |
q = r.shift(), | |
r.sort()), | |
e && !$.event.customEvent[q] || $.event.global[q])) | |
if (c = "object" == typeof c ? c[$.expando] ? c : new $.Event(q,c) : new $.Event(q), | |
c.type = q, | |
c.isTrigger = !0, | |
c.exclusive = h, | |
c.namespace = r.join("."), | |
c.namespace_re = c.namespace ? new RegExp("(^|\\.)" + r.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, | |
l = q.indexOf(":") < 0 ? "on" + q : "", | |
e) { | |
if (c.result = b, | |
c.target || (c.target = e), | |
d = null != d ? $.makeArray(d) : [], | |
d.unshift(c), | |
m = $.event.special[q] || {}, | |
!m.trigger || m.trigger.apply(e, d) !== !1) { | |
if (o = [[e, m.bindType || q]], | |
!f && !m.noBubble && !$.isWindow(e)) { | |
for (p = m.delegateType || q, | |
j = Ga.test(p + q) ? e : e.parentNode, | |
k = e; j; j = j.parentNode) | |
o.push([j, p]), | |
k = j; | |
k === (e.ownerDocument || P) && o.push([k.defaultView || k.parentWindow || a, p]) | |
} | |
for (i = 0; i < o.length && !c.isPropagationStopped(); i++) | |
j = o[i][0], | |
c.type = o[i][1], | |
n = ($._data(j, "events") || {})[c.type] && $._data(j, "handle"), | |
n && n.apply(j, d), | |
n = l && j[l], | |
n && $.acceptData(j) && n.apply(j, d) === !1 && c.preventDefault(); | |
return c.type = q, | |
f || c.isDefaultPrevented() || m._default && m._default.apply(e.ownerDocument, d) !== !1 || "click" === q && $.nodeName(e, "a") || !$.acceptData(e) || l && e[q] && ("focus" !== q && "blur" !== q || 0 !== c.target.offsetWidth) && !$.isWindow(e) && (k = e[l], | |
k && (e[l] = null), | |
$.event.triggered = q, | |
e[q](), | |
$.event.triggered = b, | |
k && (e[l] = k)), | |
c.result | |
} | |
} else { | |
g = $.cache; | |
for (i in g) | |
g[i].events && g[i].events[q] && $.event.trigger(c, d, g[i].handle.elem, !0) | |
} | |
} | |
}, | |
dispatch: function(c) { | |
c = $.event.fix(c || a.event); | |
var d, e, f, g, h, i, j, k, l, m, n = ($._data(this, "events") || {})[c.type] || [], o = n.delegateCount, p = [].slice.call(arguments), q = !c.exclusive && !c.namespace, r = $.event.special[c.type] || {}, s = []; | |
if (p[0] = c, | |
c.delegateTarget = this, | |
!r.preDispatch || r.preDispatch.call(this, c) !== !1) { | |
if (o && (!c.button || "click" !== c.type)) | |
for (g = $(this), | |
g.context = this, | |
f = c.target; f != this; f = f.parentNode || this) | |
if (f.disabled !== !0 || "click" !== c.type) { | |
for (i = {}, | |
k = [], | |
g[0] = f, | |
d = 0; d < o; d++) | |
l = n[d], | |
m = l.selector, | |
i[m] === b && (i[m] = g.is(m)), | |
i[m] && k.push(l); | |
k.length && s.push({ | |
elem: f, | |
matches: k | |
}) | |
} | |
for (n.length > o && s.push({ | |
elem: this, | |
matches: n.slice(o) | |
}), | |
d = 0; d < s.length && !c.isPropagationStopped(); d++) | |
for (j = s[d], | |
c.currentTarget = j.elem, | |
e = 0; e < j.matches.length && !c.isImmediatePropagationStopped(); e++) | |
l = j.matches[e], | |
(q || !c.namespace && !l.namespace || c.namespace_re && c.namespace_re.test(l.namespace)) && (c.data = l.data, | |
c.handleObj = l, | |
h = (($.event.special[l.origType] || {}).handle || l.handler).apply(j.elem, p), | |
h !== b && (c.result = h, | |
h === !1 && (c.preventDefault(), | |
c.stopPropagation()))); | |
return r.postDispatch && r.postDispatch.call(this, c), | |
c.result | |
} | |
}, | |
props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), | |
fixHooks: {}, | |
keyHooks: { | |
props: "char charCode key keyCode".split(" "), | |
filter: function(a, b) { | |
return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), | |
a | |
} | |
}, | |
mouseHooks: { | |
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), | |
filter: function(a, c) { | |
var d, e, f, g = c.button, h = c.fromElement; | |
return null == a.pageX && null != c.clientX && (d = a.target.ownerDocument || P, | |
e = d.documentElement, | |
f = d.body, | |
a.pageX = c.clientX + (e && e.scrollLeft || f && f.scrollLeft || 0) - (e && e.clientLeft || f && f.clientLeft || 0), | |
a.pageY = c.clientY + (e && e.scrollTop || f && f.scrollTop || 0) - (e && e.clientTop || f && f.clientTop || 0)), | |
!a.relatedTarget && h && (a.relatedTarget = h === a.target ? c.toElement : h), | |
a.which || g === b || (a.which = 1 & g ? 1 : 2 & g ? 3 : 4 & g ? 2 : 0), | |
a | |
} | |
}, | |
fix: function(a) { | |
if (a[$.expando]) | |
return a; | |
var b, c, d = a, e = $.event.fixHooks[a.type] || {}, f = e.props ? this.props.concat(e.props) : this.props; | |
for (a = $.Event(d), | |
b = f.length; b; ) | |
c = f[--b], | |
a[c] = d[c]; | |
return a.target || (a.target = d.srcElement || P), | |
3 === a.target.nodeType && (a.target = a.target.parentNode), | |
a.metaKey = !!a.metaKey, | |
e.filter ? e.filter(a, d) : a | |
}, | |
special: { | |
ready: { | |
setup: $.bindReady | |
}, | |
load: { | |
noBubble: !0 | |
}, | |
focus: { | |
delegateType: "focusin" | |
}, | |
blur: { | |
delegateType: "focusout" | |
}, | |
beforeunload: { | |
setup: function(a, b, c) { | |
$.isWindow(this) && (this.onbeforeunload = c) | |
}, | |
teardown: function(a, b) { | |
this.onbeforeunload === b && (this.onbeforeunload = null) | |
} | |
} | |
}, | |
simulate: function(a, b, c, d) { | |
var e = $.extend(new $.Event, c, { | |
type: a, | |
isSimulated: !0, | |
originalEvent: {} | |
}); | |
d ? $.event.trigger(e, null, b) : $.event.dispatch.call(b, e), | |
e.isDefaultPrevented() && c.preventDefault() | |
} | |
}, | |
$.event.handle = $.event.dispatch, | |
$.removeEvent = P.removeEventListener ? function(a, b, c) { | |
a.removeEventListener && a.removeEventListener(b, c, !1) | |
} | |
: function(a, b, c) { | |
var d = "on" + b; | |
a.detachEvent && ("undefined" == typeof a[d] && (a[d] = null), | |
a.detachEvent(d, c)) | |
} | |
, | |
$.Event = function(a, b) { | |
return this instanceof $.Event ? (a && a.type ? (this.originalEvent = a, | |
this.type = a.type, | |
this.isDefaultPrevented = a.defaultPrevented || a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault() ? g : f) : this.type = a, | |
b && $.extend(this, b), | |
this.timeStamp = a && a.timeStamp || $.now(), | |
void (this[$.expando] = !0)) : new $.Event(a,b) | |
} | |
, | |
$.Event.prototype = { | |
preventDefault: function() { | |
this.isDefaultPrevented = g; | |
var a = this.originalEvent; | |
a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1) | |
}, | |
stopPropagation: function() { | |
this.isPropagationStopped = g; | |
var a = this.originalEvent; | |
a && (a.stopPropagation && a.stopPropagation(), | |
a.cancelBubble = !0) | |
}, | |
stopImmediatePropagation: function() { | |
this.isImmediatePropagationStopped = g, | |
this.stopPropagation() | |
}, | |
isDefaultPrevented: f, | |
isPropagationStopped: f, | |
isImmediatePropagationStopped: f | |
}, | |
$.each({ | |
mouseenter: "mouseover", | |
mouseleave: "mouseout" | |
}, function(a, b) { | |
$.event.special[a] = { | |
delegateType: b, | |
bindType: b, | |
handle: function(a) { | |
var c, d = this, e = a.relatedTarget, f = a.handleObj; | |
f.selector; | |
return e && (e === d || $.contains(d, e)) || (a.type = f.origType, | |
c = f.handler.apply(this, arguments), | |
a.type = b), | |
c | |
} | |
} | |
}), | |
$.support.submitBubbles || ($.event.special.submit = { | |
setup: function() { | |
return !$.nodeName(this, "form") && void $.event.add(this, "click._submit keypress._submit", function(a) { | |
var c = a.target | |
, d = $.nodeName(c, "input") || $.nodeName(c, "button") ? c.form : b; | |
d && !$._data(d, "_submit_attached") && ($.event.add(d, "submit._submit", function(a) { | |
a._submit_bubble = !0 | |
}), | |
$._data(d, "_submit_attached", !0)) | |
}) | |
}, | |
postDispatch: function(a) { | |
a._submit_bubble && (delete a._submit_bubble, | |
this.parentNode && !a.isTrigger && $.event.simulate("submit", this.parentNode, a, !0)) | |
}, | |
teardown: function() { | |
return !$.nodeName(this, "form") && void $.event.remove(this, "._submit") | |
} | |
}), | |
$.support.changeBubbles || ($.event.special.change = { | |
setup: function() { | |
return Ba.test(this.nodeName) ? ("checkbox" !== this.type && "radio" !== this.type || ($.event.add(this, "propertychange._change", function(a) { | |
"checked" === a.originalEvent.propertyName && (this._just_changed = !0) | |
}), | |
$.event.add(this, "click._change", function(a) { | |
this._just_changed && !a.isTrigger && (this._just_changed = !1), | |
$.event.simulate("change", this, a, !0) | |
})), | |
!1) : void $.event.add(this, "beforeactivate._change", function(a) { | |
var b = a.target; | |
Ba.test(b.nodeName) && !$._data(b, "_change_attached") && ($.event.add(b, "change._change", function(a) { | |
!this.parentNode || a.isSimulated || a.isTrigger || $.event.simulate("change", this.parentNode, a, !0) | |
}), | |
$._data(b, "_change_attached", !0)) | |
}) | |
}, | |
handle: function(a) { | |
var b = a.target; | |
if (this !== b || a.isSimulated || a.isTrigger || "radio" !== b.type && "checkbox" !== b.type) | |
return a.handleObj.handler.apply(this, arguments) | |
}, | |
teardown: function() { | |
return $.event.remove(this, "._change"), | |
Ba.test(this.nodeName) | |
} | |
}), | |
$.support.focusinBubbles || $.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function(a, b) { | |
var c = 0 | |
, d = function(a) { | |
$.event.simulate(b, a.target, $.event.fix(a), !0) | |
}; | |
$.event.special[b] = { | |
setup: function() { | |
0 === c++ && P.addEventListener(a, d, !0) | |
}, | |
teardown: function() { | |
0 === --c && P.removeEventListener(a, d, !0) | |
} | |
} | |
}), | |
$.fn.extend({ | |
on: function(a, c, d, e, g) { | |
var h, i; | |
if ("object" == typeof a) { | |
"string" != typeof c && (d = d || c, | |
c = b); | |
for (i in a) | |
this.on(i, c, d, a[i], g); | |
return this | |
} | |
if (null == d && null == e ? (e = c, | |
d = c = b) : null == e && ("string" == typeof c ? (e = d, | |
d = b) : (e = d, | |
d = c, | |
c = b)), | |
e === !1) | |
e = f; | |
else if (!e) | |
return this; | |
return 1 === g && (h = e, | |
e = function(a) { | |
return $().off(a), | |
h.apply(this, arguments) | |
} | |
, | |
e.guid = h.guid || (h.guid = $.guid++)), | |
this.each(function() { | |
$.event.add(this, a, e, d, c) | |
}) | |
}, | |
one: function(a, b, c, d) { | |
return this.on(a, b, c, d, 1) | |
}, | |
off: function(a, c, d) { | |
var e, g; | |
if (a && a.preventDefault && a.handleObj) | |
return e = a.handleObj, | |
$(a.delegateTarget).off(e.namespace ? e.origType + "." + e.namespace : e.origType, e.selector, e.handler), | |
this; | |
if ("object" == typeof a) { | |
for (g in a) | |
this.off(g, c, a[g]); | |
return this | |
} | |
return c !== !1 && "function" != typeof c || (d = c, | |
c = b), | |
d === !1 && (d = f), | |
this.each(function() { | |
$.event.remove(this, a, d, c) | |
}) | |
}, | |
bind: function(a, b, c) { | |
return this.on(a, null, b, c) | |
}, | |
unbind: function(a, b) { | |
return this.off(a, null, b) | |
}, | |
live: function(a, b, c) { | |
return $(this.context).on(a, this.selector, b, c), | |
this | |
}, | |
die: function(a, b) { | |
return $(this.context).off(a, this.selector || "**", b), | |
this | |
}, | |
delegate: function(a, b, c, d) { | |
return this.on(b, a, c, d) | |
}, | |
undelegate: function(a, b, c) { | |
return 1 == arguments.length ? this.off(a, "**") : this.off(b, a || "**", c) | |
}, | |
trigger: function(a, b) { | |
return this.each(function() { | |
$.event.trigger(a, b, this) | |
}) | |
}, | |
triggerHandler: function(a, b) { | |
if (this[0]) | |
return $.event.trigger(a, b, this[0], !0) | |
}, | |
toggle: function(a) { | |
var b = arguments | |
, c = a.guid || $.guid++ | |
, d = 0 | |
, e = function(c) { | |
var e = ($._data(this, "lastToggle" + a.guid) || 0) % d; | |
return $._data(this, "lastToggle" + a.guid, e + 1), | |
c.preventDefault(), | |
b[e].apply(this, arguments) || !1 | |
}; | |
for (e.guid = c; d < b.length; ) | |
b[d++].guid = c; | |
return this.click(e) | |
}, | |
hover: function(a, b) { | |
return this.mouseenter(a).mouseleave(b || a) | |
} | |
}), | |
$.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) { | |
$.fn[b] = function(a, c) { | |
return null == c && (c = a, | |
a = null), | |
arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b) | |
} | |
, | |
Ea.test(b) && ($.event.fixHooks[b] = $.event.keyHooks), | |
Fa.test(b) && ($.event.fixHooks[b] = $.event.mouseHooks) | |
}), | |
function(a, b) { | |
function c(a, b, c, d) { | |
for (var e = 0, f = b.length; e < f; e++) | |
fa(a, b[e], c, d) | |
} | |
function d(a, b, d, e, f, g) { | |
var h, i = ga.setFilters[b.toLowerCase()]; | |
return i || fa.error(b), | |
!a && (h = f) || c(a || "*", e, h = [], f), | |
h.length > 0 ? i(h, d, g) : [] | |
} | |
function e(a, e, f, g, h) { | |
for (var i, j, k, l, m, n, o, p, q = 0, r = h.length, s = S.POS, t = new RegExp("^" + s.source + "(?!" + y + ")","i"), u = function() { | |
for (var a = 1, c = arguments.length - 2; a < c; a++) | |
arguments[a] === b && (i[a] = b) | |
}; q < r; q++) { | |
for (s.exec(""), | |
a = h[q], | |
l = [], | |
k = 0, | |
m = g; i = s.exec(a); ) | |
p = s.lastIndex = i.index + i[0].length, | |
p > k && (o = a.slice(k, i.index), | |
k = p, | |
n = [e], | |
I.test(o) && (m && (n = m), | |
m = g), | |
(j = O.test(o)) && (o = o.slice(0, -5).replace(I, "$&*")), | |
i.length > 1 && i[0].replace(t, u), | |
m = d(o, i[1], i[2], n, m, j)); | |
m ? (l = l.concat(m), | |
(o = a.slice(k)) && ")" !== o ? I.test(o) ? c(o, l, f, g) : fa(o, e, f, g ? g.concat(m) : m) : w.apply(f, l)) : fa(a, e, f, g) | |
} | |
return 1 === r ? f : fa.uniqueSort(f) | |
} | |
function f(a, b, c) { | |
for (var d, e, f, g = [], h = 0, i = K.exec(a), j = !i.pop() && !i.pop(), k = j && a.match(J) || [""], l = ga.preFilter, m = ga.filter, n = !c && b !== p; null != (e = k[h]) && j; h++) | |
for (g.push(d = []), | |
n && (e = " " + e); e; ) { | |
j = !1, | |
(i = I.exec(e)) && (e = e.slice(i[0].length), | |
j = d.push({ | |
part: i.pop().replace(H, " "), | |
captures: i | |
})); | |
for (f in m) | |
!(i = S[f].exec(e)) || l[f] && !(i = l[f](i, b, c)) || (e = e.slice(i.shift().length), | |
j = d.push({ | |
part: f, | |
captures: i | |
})); | |
if (!j) | |
break | |
} | |
return j || fa.error(a), | |
g | |
} | |
function g(a, b, c) { | |
var d = b.dir | |
, e = u++; | |
return a || (a = function(a) { | |
return a === c | |
} | |
), | |
b.first ? function(b, c) { | |
for (; b = b[d]; ) | |
if (1 === b.nodeType) | |
return a(b, c) && b | |
} | |
: function(b, c) { | |
for (var f, g = e + "." + l, h = g + "." + k; b = b[d]; ) | |
if (1 === b.nodeType) { | |
if ((f = b[x]) === h) | |
return b.sizset; | |
if ("string" == typeof f && 0 === f.indexOf(g)) { | |
if (b.sizset) | |
return b | |
} else { | |
if (b[x] = h, | |
a(b, c)) | |
return b.sizset = !0, | |
b; | |
b.sizset = !1 | |
} | |
} | |
} | |
} | |
function h(a, b) { | |
return a ? function(c, d) { | |
var e = b(c, d); | |
return e && a(e === !0 ? c : e, d) | |
} | |
: b | |
} | |
function i(a, b, c) { | |
for (var d, e, f = 0; d = a[f]; f++) | |
ga.relative[d.part] ? e = g(e, ga.relative[d.part], b) : (d.captures.push(b, c), | |
e = h(e, ga.filter[d.part].apply(null, d.captures))); | |
return e | |
} | |
function j(a) { | |
return function(b, c) { | |
for (var d, e = 0; d = a[e]; e++) | |
if (d(b, c)) | |
return !0; | |
return !1 | |
} | |
} | |
var k, l, m, n, o, p = a.document, q = p.documentElement, r = "undefined", s = !1, t = !0, u = 0, v = [].slice, w = [].push, x = ("sizcache" + Math.random()).replace(".", ""), y = "[\\x20\\t\\r\\n\\f]", z = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+", A = z.replace("w", "w#"), B = "([*^$|!~]?=)", C = "\\[" + y + "*(" + z + ")" + y + "*(?:" + B + y + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + A + ")|)|)" + y + "*\\]", D = ":(" + z + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)", E = ":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)", F = y + "*([\\x20\\t\\r\\n\\f>+~])" + y + "*", G = "(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|" + C + "|" + D.replace(2, 7) + "|[^\\\\(),])+", H = new RegExp("^" + y + "+|((?:^|[^\\\\])(?:\\\\.)*)" + y + "+$","g"), I = new RegExp("^" + F), J = new RegExp(G + "?(?=" + y + "*,|$)","g"), K = new RegExp("^(?:(?!,)(?:(?:^|,)" + y + "*" + G + ")*?|" + y + "*(.*?))(\\)|$)"), L = new RegExp(G.slice(19, -6) + "\\x20\\t\\r\\n\\f>+~])+|" + F,"g"), M = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, N = /[\x20\t\r\n\f]*[+~]/, O = /:not\($/, P = /h\d/i, Q = /input|select|textarea|button/i, R = /\\(?!\\)/g, S = { | |
ID: new RegExp("^#(" + z + ")"), | |
CLASS: new RegExp("^\\.(" + z + ")"), | |
NAME: new RegExp("^\\[name=['\"]?(" + z + ")['\"]?\\]"), | |
TAG: new RegExp("^(" + z.replace("[-", "[-\\*") + ")"), | |
ATTR: new RegExp("^" + C), | |
PSEUDO: new RegExp("^" + D), | |
CHILD: new RegExp("^:(only|nth|last|first)-child(?:\\(" + y + "*(even|odd|(([+-]|)(\\d*)n|)" + y + "*(?:([+-]|)" + y + "*(\\d+)|))" + y + "*\\)|)","i"), | |
POS: new RegExp(E,"ig"), | |
needsContext: new RegExp("^" + y + "*[>+~]|" + E,"i") | |
}, T = {}, U = [], V = {}, W = [], X = function(a) { | |
return a.sizzleFilter = !0, | |
a | |
}, Y = function(a) { | |
return function(b) { | |
return "input" === b.nodeName.toLowerCase() && b.type === a | |
} | |
}, Z = function(a) { | |
return function(b) { | |
var c = b.nodeName.toLowerCase(); | |
return ("input" === c || "button" === c) && b.type === a | |
} | |
}, _ = function(a) { | |
var b = !1 | |
, c = p.createElement("div"); | |
try { | |
b = a(c) | |
} catch (d) {} | |
return c = null, | |
b | |
}, aa = _(function(a) { | |
a.innerHTML = "<select></select>"; | |
var b = typeof a.lastChild.getAttribute("multiple"); | |
return "boolean" !== b && "string" !== b | |
}), ba = _(function(a) { | |
a.id = x + 0, | |
a.innerHTML = "<a name='" + x + "'></a><div name='" + x + "'></div>", | |
q.insertBefore(a, q.firstChild); | |
var b = p.getElementsByName && p.getElementsByName(x).length === 2 + p.getElementsByName(x + 0).length; | |
return o = !p.getElementById(x), | |
q.removeChild(a), | |
b | |
}), ca = _(function(a) { | |
return a.appendChild(p.createComment("")), | |
0 === a.getElementsByTagName("*").length | |
}), da = _(function(a) { | |
return a.innerHTML = "<a href='#'></a>", | |
a.firstChild && typeof a.firstChild.getAttribute !== r && "#" === a.firstChild.getAttribute("href") | |
}), ea = _(function(a) { | |
return a.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>", | |
!(!a.getElementsByClassName || 0 === a.getElementsByClassName("e").length) && (a.lastChild.className = "e", | |
1 !== a.getElementsByClassName("e").length) | |
}), fa = function(a, b, c, d) { | |
c = c || [], | |
b = b || p; | |
var e, f, g, h, i = b.nodeType; | |
if (1 !== i && 9 !== i) | |
return []; | |
if (!a || "string" != typeof a) | |
return c; | |
if (g = ia(b), | |
!g && !d && (e = M.exec(a))) | |
if (h = e[1]) { | |
if (9 === i) { | |
if (f = b.getElementById(h), | |
!f || !f.parentNode) | |
return c; | |
if (f.id === h) | |
return c.push(f), | |
c | |
} else if (b.ownerDocument && (f = b.ownerDocument.getElementById(h)) && ja(b, f) && f.id === h) | |
return c.push(f), | |
c | |
} else { | |
if (e[2]) | |
return w.apply(c, v.call(b.getElementsByTagName(a), 0)), | |
c; | |
if ((h = e[3]) && ea && b.getElementsByClassName) | |
return w.apply(c, v.call(b.getElementsByClassName(h), 0)), | |
c | |
} | |
return ma(a, b, c, d, g) | |
}, ga = fa.selectors = { | |
cacheLength: 50, | |
match: S, | |
order: ["ID", "TAG"], | |
attrHandle: {}, | |
createPseudo: X, | |
find: { | |
ID: o ? function(a, b, c) { | |
if (typeof b.getElementById !== r && !c) { | |
var d = b.getElementById(a); | |
return d && d.parentNode ? [d] : [] | |
} | |
} | |
: function(a, c, d) { | |
if (typeof c.getElementById !== r && !d) { | |
var e = c.getElementById(a); | |
return e ? e.id === a || typeof e.getAttributeNode !== r && e.getAttributeNode("id").value === a ? [e] : b : [] | |
} | |
} | |
, | |
TAG: ca ? function(a, b) { | |
if (typeof b.getElementsByTagName !== r) | |
return b.getElementsByTagName(a) | |
} | |
: function(a, b) { | |
var c = b.getElementsByTagName(a); | |
if ("*" === a) { | |
for (var d, e = [], f = 0; d = c[f]; f++) | |
1 === d.nodeType && e.push(d); | |
return e | |
} | |
return c | |
} | |
}, | |
relative: { | |
">": { | |
dir: "parentNode", | |
first: !0 | |
}, | |
" ": { | |
dir: "parentNode" | |
}, | |
"+": { | |
dir: "previousSibling", | |
first: !0 | |
}, | |
"~": { | |
dir: "previousSibling" | |
} | |
}, | |
preFilter: { | |
ATTR: function(a) { | |
return a[1] = a[1].replace(R, ""), | |
a[3] = (a[4] || a[5] || "").replace(R, ""), | |
"~=" === a[2] && (a[3] = " " + a[3] + " "), | |
a.slice(0, 4) | |
}, | |
CHILD: function(a) { | |
return a[1] = a[1].toLowerCase(), | |
"nth" === a[1] ? (a[2] || fa.error(a[0]), | |
a[3] = +(a[3] ? a[4] + (a[5] || 1) : 2 * ("even" === a[2] || "odd" === a[2])), | |
a[4] = +(a[6] + a[7] || "odd" === a[2])) : a[2] && fa.error(a[0]), | |
a | |
}, | |
PSEUDO: function(a) { | |
var b, c = a[4]; | |
return S.CHILD.test(a[0]) ? null : (c && (b = K.exec(c)) && b.pop() && (a[0] = a[0].slice(0, b[0].length - c.length - 1), | |
c = b[0].slice(0, -1)), | |
a.splice(2, 3, c || a[3]), | |
a) | |
} | |
}, | |
filter: { | |
ID: o ? function(a) { | |
return a = a.replace(R, ""), | |
function(b) { | |
return b.getAttribute("id") === a | |
} | |
} | |
: function(a) { | |
return a = a.replace(R, ""), | |
function(b) { | |
var c = typeof b.getAttributeNode !== r && b.getAttributeNode("id"); | |
return c && c.value === a | |
} | |
} | |
, | |
TAG: function(a) { | |
return "*" === a ? function() { | |
return !0 | |
} | |
: (a = a.replace(R, "").toLowerCase(), | |
function(b) { | |
return b.nodeName && b.nodeName.toLowerCase() === a | |
} | |
) | |
}, | |
CLASS: function(a) { | |
var b = T[a]; | |
return b || (b = T[a] = new RegExp("(^|" + y + ")" + a + "(" + y + "|$)"), | |
U.push(a), | |
U.length > ga.cacheLength && delete T[U.shift()]), | |
function(a) { | |
return b.test(a.className || typeof a.getAttribute !== r && a.getAttribute("class") || "") | |
} | |
}, | |
ATTR: function(a, b, c) { | |
return b ? function(d) { | |
var e = fa.attr(d, a) | |
, f = e + ""; | |
if (null == e) | |
return "!=" === b; | |
switch (b) { | |
case "=": | |
return f === c; | |
case "!=": | |
return f !== c; | |
case "^=": | |
return c && 0 === f.indexOf(c); | |
case "*=": | |
return c && f.indexOf(c) > -1; | |
case "$=": | |
return c && f.substr(f.length - c.length) === c; | |
case "~=": | |
return (" " + f + " ").indexOf(c) > -1; | |
case "|=": | |
return f === c || f.substr(0, c.length + 1) === c + "-" | |
} | |
} | |
: function(b) { | |
return null != fa.attr(b, a) | |
} | |
}, | |
CHILD: function(a, b, c, d) { | |
if ("nth" === a) { | |
var e = u++; | |
return function(a) { | |
var b, f, g = 0, h = a; | |
if (1 === c && 0 === d) | |
return !0; | |
if (b = a.parentNode, | |
b && (b[x] !== e || !a.sizset)) { | |
for (h = b.firstChild; h && (1 !== h.nodeType || (h.sizset = ++g, | |
h !== a)); h = h.nextSibling) | |
; | |
b[x] = e | |
} | |
return f = a.sizset - d, | |
0 === c ? 0 === f : f % c === 0 && f / c >= 0 | |
} | |
} | |
return function(b) { | |
var c = b; | |
switch (a) { | |
case "only": | |
case "first": | |
for (; c = c.previousSibling; ) | |
if (1 === c.nodeType) | |
return !1; | |
if ("first" === a) | |
return !0; | |
c = b; | |
case "last": | |
for (; c = c.nextSibling; ) | |
if (1 === c.nodeType) | |
return !1; | |
return !0 | |
} | |
} | |
}, | |
PSEUDO: function(a, b, c, d) { | |
var e = ga.pseudos[a] || ga.pseudos[a.toLowerCase()]; | |
return e || fa.error("unsupported pseudo: " + a), | |
e.sizzleFilter ? e(b, c, d) : e | |
} | |
}, | |
pseudos: { | |
not: X(function(a, b, c) { | |
var d = la(a.replace(H, "$1"), b, c); | |
return function(a) { | |
return !d(a) | |
} | |
}), | |
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 | |
}, | |
parent: function(a) { | |
return !ga.pseudos.empty(a) | |
}, | |
empty: function(a) { | |
var b; | |
for (a = a.firstChild; a; ) { | |
if (a.nodeName > "@" || 3 === (b = a.nodeType) || 4 === b) | |
return !1; | |
a = a.nextSibling | |
} | |
return !0 | |
}, | |
contains: X(function(a) { | |
return function(b) { | |
return (b.textContent || b.innerText || ka(b)).indexOf(a) > -1 | |
} | |
}), | |
has: X(function(a) { | |
return function(b) { | |
return fa(a, b).length > 0 | |
} | |
}), | |
header: function(a) { | |
return P.test(a.nodeName) | |
}, | |
text: function(a) { | |
var b, c; | |
return "input" === a.nodeName.toLowerCase() && "text" === (b = a.type) && (null == (c = a.getAttribute("type")) || c.toLowerCase() === b) | |
}, | |
radio: Y("radio"), | |
checkbox: Y("checkbox"), | |
file: Y("file"), | |
password: Y("password"), | |
image: Y("image"), | |
submit: Z("submit"), | |
reset: Z("reset"), | |
button: function(a) { | |
var b = a.nodeName.toLowerCase(); | |
return "input" === b && "button" === a.type || "button" === b | |
}, | |
input: function(a) { | |
return Q.test(a.nodeName) | |
}, | |
focus: function(a) { | |
var b = a.ownerDocument; | |
return a === b.activeElement && (!b.hasFocus || b.hasFocus()) && !(!a.type && !a.href) | |
}, | |
active: function(a) { | |
return a === a.ownerDocument.activeElement | |
} | |
}, | |
setFilters: { | |
first: function(a, b, c) { | |
return c ? a.slice(1) : [a[0]] | |
}, | |
last: function(a, b, c) { | |
var d = a.pop(); | |
return c ? a : [d] | |
}, | |
even: function(a, b, c) { | |
for (var d = [], e = c ? 1 : 0, f = a.length; e < f; e += 2) | |
d.push(a[e]); | |
return d | |
}, | |
odd: function(a, b, c) { | |
for (var d = [], e = c ? 0 : 1, f = a.length; e < f; e += 2) | |
d.push(a[e]); | |
return d | |
}, | |
lt: function(a, b, c) { | |
return c ? a.slice(+b) : a.slice(0, +b) | |
}, | |
gt: function(a, b, c) { | |
return c ? a.slice(0, +b + 1) : a.slice(+b + 1) | |
}, | |
eq: function(a, b, c) { | |
var d = a.splice(+b, 1); | |
return c ? a : d | |
} | |
} | |
}; | |
ga.setFilters.nth = ga.setFilters.eq, | |
ga.filters = ga.pseudos, | |
da || (ga.attrHandle = { | |
href: function(a) { | |
return a.getAttribute("href", 2) | |
}, | |
type: function(a) { | |
return a.getAttribute("type") | |
} | |
}), | |
ba && (ga.order.push("NAME"), | |
ga.find.NAME = function(a, b) { | |
if (typeof b.getElementsByName !== r) | |
return b.getElementsByName(a) | |
} | |
), | |
ea && (ga.order.splice(1, 0, "CLASS"), | |
ga.find.CLASS = function(a, b, c) { | |
if (typeof b.getElementsByClassName !== r && !c) | |
return b.getElementsByClassName(a) | |
} | |
); | |
try { | |
v.call(q.childNodes, 0)[0].nodeType | |
} catch (ha) { | |
v = function(a) { | |
for (var b, c = []; b = this[a]; a++) | |
c.push(b); | |
return c | |
} | |
} | |
var ia = fa.isXML = function(a) { | |
var b = a && (a.ownerDocument || a).documentElement; | |
return !!b && "HTML" !== b.nodeName | |
} | |
, ja = fa.contains = q.compareDocumentPosition ? function(a, b) { | |
return !!(16 & a.compareDocumentPosition(b)) | |
} | |
: q.contains ? function(a, b) { | |
var c = 9 === a.nodeType ? a.documentElement : a | |
, d = b.parentNode; | |
return a === d || !!(d && 1 === d.nodeType && c.contains && c.contains(d)) | |
} | |
: function(a, b) { | |
for (; b = b.parentNode; ) | |
if (b === a) | |
return !0; | |
return !1 | |
} | |
, ka = fa.getText = function(a) { | |
var b, c = "", d = 0, e = a.nodeType; | |
if (e) { | |
if (1 === e || 9 === e || 11 === e) { | |
if ("string" == typeof a.textContent) | |
return a.textContent; | |
for (a = a.firstChild; a; a = a.nextSibling) | |
c += ka(a) | |
} else if (3 === e || 4 === e) | |
return a.nodeValue | |
} else | |
for (; b = a[d]; d++) | |
c += ka(b); | |
return c | |
} | |
; | |
fa.attr = function(a, b) { | |
var c, d = ia(a); | |
return d || (b = b.toLowerCase()), | |
ga.attrHandle[b] ? ga.attrHandle[b](a) : aa || d ? a.getAttribute(b) : (c = a.getAttributeNode(b), | |
c ? "boolean" == typeof a[b] ? a[b] ? b : null : c.specified ? c.value : null : null) | |
} | |
, | |
fa.error = function(a) { | |
throw new Error("Syntax error, unrecognized expression: " + a) | |
} | |
, | |
[0, 0].sort(function() { | |
return t = 0 | |
}), | |
q.compareDocumentPosition ? m = function(a, b) { | |
return a === b ? (s = !0, | |
0) : (a.compareDocumentPosition && b.compareDocumentPosition ? 4 & a.compareDocumentPosition(b) : a.compareDocumentPosition) ? -1 : 1 | |
} | |
: (m = function(a, b) { | |
if (a === b) | |
return s = !0, | |
0; | |
if (a.sourceIndex && b.sourceIndex) | |
return a.sourceIndex - b.sourceIndex; | |
var c, d, e = [], f = [], g = a.parentNode, h = b.parentNode, i = g; | |
if (g === h) | |
return n(a, b); | |
if (!g) | |
return -1; | |
if (!h) | |
return 1; | |
for (; i; ) | |
e.unshift(i), | |
i = i.parentNode; | |
for (i = h; i; ) | |
f.unshift(i), | |
i = i.parentNode; | |
c = e.length, | |
d = f.length; | |
for (var j = 0; j < c && j < d; j++) | |
if (e[j] !== f[j]) | |
return n(e[j], f[j]); | |
return j === c ? n(a, f[j], -1) : n(e[j], b, 1) | |
} | |
, | |
n = function(a, b, c) { | |
if (a === b) | |
return c; | |
for (var d = a.nextSibling; d; ) { | |
if (d === b) | |
return -1; | |
d = d.nextSibling | |
} | |
return 1 | |
} | |
), | |
fa.uniqueSort = function(a) { | |
var b, c = 1; | |
if (m && (s = t, | |
a.sort(m), | |
s)) | |
for (; b = a[c]; c++) | |
b === a[c - 1] && a.splice(c--, 1); | |
return a | |
} | |
; | |
var la = fa.compile = function(a, b, c) { | |
var d, e, g, h = V[a]; | |
if (h && h.context === b) | |
return h; | |
for (e = f(a, b, c), | |
g = 0; d = e[g]; g++) | |
e[g] = i(d, b, c); | |
return h = V[a] = j(e), | |
h.context = b, | |
h.runs = h.dirruns = 0, | |
W.push(a), | |
W.length > ga.cacheLength && delete V[W.shift()], | |
h | |
} | |
; | |
fa.matches = function(a, b) { | |
return fa(a, null, null, b) | |
} | |
, | |
fa.matchesSelector = function(a, b) { | |
return fa(b, null, null, [a]).length > 0 | |
} | |
; | |
var ma = function(a, b, c, d, f) { | |
a = a.replace(H, "$1"); | |
var g, h, i, j, m, n, o, p, q, r = a.match(J), s = a.match(L), t = b.nodeType; | |
if (S.POS.test(a)) | |
return e(a, b, c, d, r); | |
if (d) | |
g = v.call(d, 0); | |
else if (r && 1 === r.length) { | |
if (s.length > 1 && 9 === t && !f && (r = S.ID.exec(s[0]))) { | |
if (b = ga.find.ID(r[1], b, f)[0], | |
!b) | |
return c; | |
a = a.slice(s.shift().length) | |
} | |
for (p = (r = N.exec(s[0])) && !r.index && b.parentNode || b, | |
q = s.pop(), | |
n = q.split(":not")[0], | |
i = 0, | |
j = ga.order.length; i < j; i++) | |
if (o = ga.order[i], | |
r = S[o].exec(n)) { | |
if (g = ga.find[o]((r[1] || "").replace(R, ""), p, f), | |
null == g) | |
continue; | |
n === q && (a = a.slice(0, a.length - q.length) + n.replace(S[o], ""), | |
a || w.apply(c, v.call(g, 0))); | |
break | |
} | |
} | |
if (a) | |
for (h = la(a, b, f), | |
l = h.dirruns++, | |
null == g && (g = ga.find.TAG("*", N.test(a) && b.parentNode || b)), | |
i = 0; m = g[i]; i++) | |
k = h.runs++, | |
h(m, b) && c.push(m); | |
return c | |
}; | |
p.querySelectorAll && !function() { | |
var a, b = ma, c = /'|\\/g, d = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, e = [], f = [":active"], g = q.matchesSelector || q.mozMatchesSelector || q.webkitMatchesSelector || q.oMatchesSelector || q.msMatchesSelector; | |
_(function(a) { | |
a.innerHTML = "<select><option selected></option></select>", | |
a.querySelectorAll("[selected]").length || e.push("\\[" + y + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"), | |
a.querySelectorAll(":checked").length || e.push(":checked") | |
}), | |
_(function(a) { | |
a.innerHTML = "<p test=''></p>", | |
a.querySelectorAll("[test^='']").length && e.push("[*^$]=" + y + "*(?:\"\"|'')"), | |
a.innerHTML = "<input type='hidden'>", | |
a.querySelectorAll(":enabled").length || e.push(":enabled", ":disabled") | |
}), | |
e = e.length && new RegExp(e.join("|")), | |
ma = function(a, d, f, g, h) { | |
if (!(g || h || e && e.test(a))) | |
if (9 === d.nodeType) | |
try { | |
return w.apply(f, v.call(d.querySelectorAll(a), 0)), | |
f | |
} catch (i) {} | |
else if (1 === d.nodeType && "object" !== d.nodeName.toLowerCase()) { | |
var j = d.getAttribute("id") | |
, k = j || x | |
, l = N.test(a) && d.parentNode || d; | |
j ? k = k.replace(c, "\\$&") : d.setAttribute("id", k); | |
try { | |
return w.apply(f, v.call(l.querySelectorAll(a.replace(J, "[id='" + k + "'] $&")), 0)), | |
f | |
} catch (i) {} finally { | |
j || d.removeAttribute("id") | |
} | |
} | |
return b(a, d, f, g, h) | |
} | |
, | |
g && (_(function(b) { | |
a = g.call(b, "div"); | |
try { | |
g.call(b, "[test!='']:sizzle"), | |
f.push(ga.match.PSEUDO) | |
} catch (c) {} | |
}), | |
f = new RegExp(f.join("|")), | |
fa.matchesSelector = function(b, c) { | |
if (c = c.replace(d, "='$1']"), | |
!(ia(b) || f.test(c) || e && e.test(c))) | |
try { | |
var h = g.call(b, c); | |
if (h || a || b.document && 11 !== b.document.nodeType) | |
return h | |
} catch (i) {} | |
return fa(c, null, null, [b]).length > 0 | |
} | |
) | |
}(), | |
fa.attr = $.attr, | |
$.find = fa, | |
$.expr = fa.selectors, | |
$.expr[":"] = $.expr.pseudos, | |
$.unique = fa.uniqueSort, | |
$.text = fa.getText, | |
$.isXMLDoc = fa.isXML, | |
$.contains = fa.contains | |
}(a); | |
var Ia = /Until$/ | |
, Ja = /^(?:parents|prev(?:Until|All))/ | |
, Ka = /^.[^:#\[\.,]*$/ | |
, La = $.expr.match.needsContext | |
, Ma = { | |
children: !0, | |
contents: !0, | |
next: !0, | |
prev: !0 | |
}; | |
$.fn.extend({ | |
find: function(a) { | |
var b, c, d, e, f, g, h = this; | |
if ("string" != typeof a) | |
return $(a).filter(function() { | |
for (b = 0, | |
c = h.length; b < c; b++) | |
if ($.contains(h[b], this)) | |
return !0 | |
}); | |
for (g = this.pushStack("", "find", a), | |
b = 0, | |
c = this.length; b < c; b++) | |
if (d = g.length, | |
$.find(a, this[b], g), | |
b > 0) | |
for (e = d; e < g.length; e++) | |
for (f = 0; f < d; f++) | |
if (g[f] === g[e]) { | |
g.splice(e--, 1); | |
break | |
} | |
return g | |
}, | |
has: function(a) { | |
var b, c = $(a, this), d = c.length; | |
return this.filter(function() { | |
for (b = 0; b < d; b++) | |
if ($.contains(this, c[b])) | |
return !0 | |
}) | |
}, | |
not: function(a) { | |
return this.pushStack(j(this, a, !1), "not", a) | |
}, | |
filter: function(a) { | |
return this.pushStack(j(this, a, !0), "filter", a) | |
}, | |
is: function(a) { | |
return !!a && ("string" == typeof a ? La.test(a) ? $(a, this.context).index(this[0]) >= 0 : $.filter(a, this).length > 0 : this.filter(a).length > 0) | |
}, | |
closest: function(a, b) { | |
for (var c, d = 0, e = this.length, f = [], g = La.test(a) || "string" != typeof a ? $(a, b || this.context) : 0; d < e; d++) | |
for (c = this[d]; c && c.ownerDocument && c !== b && 11 !== c.nodeType; ) { | |
if (g ? g.index(c) > -1 : $.find.matchesSelector(c, a)) { | |
f.push(c); | |
break | |
} | |
c = c.parentNode | |
} | |
return f = f.length > 1 ? $.unique(f) : f, | |
this.pushStack(f, "closest", a) | |
}, | |
index: function(a) { | |
return a ? "string" == typeof a ? $.inArray(this[0], $(a)) : $.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.prevAll().length : -1 | |
}, | |
add: function(a, b) { | |
var c = "string" == typeof a ? $(a, b) : $.makeArray(a && a.nodeType ? [a] : a) | |
, d = $.merge(this.get(), c); | |
return this.pushStack(h(c[0]) || h(d[0]) ? d : $.unique(d)) | |
}, | |
addBack: function(a) { | |
return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) | |
} | |
}), | |
$.fn.andSelf = $.fn.addBack, | |
$.each({ | |
parent: function(a) { | |
var b = a.parentNode; | |
return b && 11 !== b.nodeType ? b : null | |
}, | |
parents: function(a) { | |
return $.dir(a, "parentNode") | |
}, | |
parentsUntil: function(a, b, c) { | |
return $.dir(a, "parentNode", c) | |
}, | |
next: function(a) { | |
return i(a, "nextSibling") | |
}, | |
prev: function(a) { | |
return i(a, "previousSibling") | |
}, | |
nextAll: function(a) { | |
return $.dir(a, "nextSibling") | |
}, | |
prevAll: function(a) { | |
return $.dir(a, "previousSibling") | |
}, | |
nextUntil: function(a, b, c) { | |
return $.dir(a, "nextSibling", c) | |
}, | |
prevUntil: function(a, b, c) { | |
return $.dir(a, "previousSibling", c) | |
}, | |
siblings: function(a) { | |
return $.sibling((a.parentNode || {}).firstChild, a) | |
}, | |
children: function(a) { | |
return $.sibling(a.firstChild) | |
}, | |
contents: function(a) { | |
return $.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : $.merge([], a.childNodes) | |
} | |
}, function(a, b) { | |
$.fn[a] = function(c, d) { | |
var e = $.map(this, b, c); | |
return Ia.test(a) || (d = c), | |
d && "string" == typeof d && (e = $.filter(d, e)), | |
e = this.length > 1 && !Ma[a] ? $.unique(e) : e, | |
this.length > 1 && Ja.test(a) && (e = e.reverse()), | |
this.pushStack(e, a, V.call(arguments).join(",")) | |
} | |
}), | |
$.extend({ | |
filter: function(a, b, c) { | |
return c && (a = ":not(" + a + ")"), | |
1 === b.length ? $.find.matchesSelector(b[0], a) ? [b[0]] : [] : $.find.matches(a, b) | |
}, | |
dir: function(a, c, d) { | |
for (var e = [], f = a[c]; f && 9 !== f.nodeType && (d === b || 1 !== f.nodeType || !$(f).is(d)); ) | |
1 === f.nodeType && e.push(f), | |
f = f[c]; | |
return e | |
}, | |
sibling: function(a, b) { | |
for (var c = []; a; a = a.nextSibling) | |
1 === a.nodeType && a !== b && c.push(a); | |
return c | |
} | |
}); | |
var Na = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video" | |
, Oa = / jQuery\d+="(?:null|\d+)"/g | |
, Pa = /^\s+/ | |
, Qa = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi | |
, Ra = /<([\w:]+)/ | |
, Sa = /<tbody/i | |
, Ta = /<|&#?\w+;/ | |
, Ua = /<(?:script|style|link)/i | |
, Va = /<(?:script|object|embed|option|style)/i | |
, Wa = new RegExp("<(?:" + Na + ")[\\s/>]","i") | |
, Xa = /^(?:checkbox|radio)$/ | |
, Ya = /checked\s*(?:[^=]|=\s*.checked.)/i | |
, Za = /\/(java|ecma)script/i | |
, $a = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g | |
, _a = { | |
option: [1, "<select multiple='multiple'>", "</select>"], | |
legend: [1, "<fieldset>", "</fieldset>"], | |
thead: [1, "<table>", "</table>"], | |
tr: [2, "<table><tbody>", "</tbody></table>"], | |
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], | |
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], | |
area: [1, "<map>", "</map>"], | |
_default: [0, "", ""] | |
} | |
, ab = k(P) | |
, bb = ab.appendChild(P.createElement("div")); | |
_a.optgroup = _a.option, | |
_a.tbody = _a.tfoot = _a.colgroup = _a.caption = _a.thead, | |
_a.th = _a.td, | |
$.support.htmlSerialize || (_a._default = [1, "X<div>", "</div>"]), | |
$.fn.extend({ | |
text: function(a) { | |
return $.access(this, function(a) { | |
return a === b ? $.text(this) : this.empty().append((this[0] && this[0].ownerDocument || P).createTextNode(a)) | |
}, null, a, arguments.length) | |
}, | |
wrapAll: function(a) { | |
if ($.isFunction(a)) | |
return this.each(function(b) { | |
$(this).wrapAll(a.call(this, b)) | |
}); | |
if (this[0]) { | |
var b = $(a, this[0].ownerDocument).eq(0).clone(!0); | |
this[0].parentNode && b.insertBefore(this[0]), | |
b.map(function() { | |
for (var a = this; a.firstChild && 1 === a.firstChild.nodeType; ) | |
a = a.firstChild; | |
return a | |
}).append(this) | |
} | |
return this | |
}, | |
wrapInner: function(a) { | |
return $.isFunction(a) ? this.each(function(b) { | |
$(this).wrapInner(a.call(this, b)) | |
}) : this.each(function() { | |
var b = $(this) | |
, c = b.contents(); | |
c.length ? c.wrapAll(a) : b.append(a) | |
}) | |
}, | |
wrap: function(a) { | |
var b = $.isFunction(a); | |
return this.each(function(c) { | |
$(this).wrapAll(b ? a.call(this, c) : a) | |
}) | |
}, | |
unwrap: function() { | |
return this.parent().each(function() { | |
$.nodeName(this, "body") || $(this).replaceWith(this.childNodes) | |
}).end() | |
}, | |
append: function() { | |
return this.domManip(arguments, !0, function(a) { | |
1 !== this.nodeType && 11 !== this.nodeType || this.appendChild(a) | |
}) | |
}, | |
prepend: function() { | |
return this.domManip(arguments, !0, function(a) { | |
1 !== this.nodeType && 11 !== this.nodeType || this.insertBefore(a, this.firstChild) | |
}) | |
}, | |
before: function() { | |
if (!h(this[0])) | |
return this.domManip(arguments, !1, function(a) { | |
this.parentNode.insertBefore(a, this) | |
}); | |
if (arguments.length) { | |
var a = $.clean(arguments); | |
return this.pushStack($.merge(a, this), "before", this.selector) | |
} | |
}, | |
after: function() { | |
if (!h(this[0])) | |
return this.domManip(arguments, !1, function(a) { | |
this.parentNode.insertBefore(a, this.nextSibling) | |
}); | |
if (arguments.length) { | |
var a = $.clean(arguments); | |
return this.pushStack($.merge(this, a), "after", this.selector) | |
} | |
}, | |
remove: function(a, b) { | |
for (var c, d = 0; null != (c = this[d]); d++) | |
a && !$.filter(a, [c]).length || (b || 1 !== c.nodeType || ($.cleanData(c.getElementsByTagName("*")), | |
$.cleanData([c])), | |
c.parentNode && c.parentNode.removeChild(c)); | |
return this | |
}, | |
empty: function() { | |
for (var a, b = 0; null != (a = this[b]); b++) | |
for (1 === a.nodeType && $.cleanData(a.getElementsByTagName("*")); a.firstChild; ) | |
a.removeChild(a.firstChild); | |
return this | |
}, | |
clone: function(a, b) { | |
return a = null != a && a, | |
b = null == b ? a : b, | |
this.map(function() { | |
return $.clone(this, a, b) | |
}) | |
}, | |
html: function(a) { | |
return $.access(this, function(a) { | |
var c = this[0] || {} | |
, d = 0 | |
, e = this.length; | |
if (a === b) | |
return 1 === c.nodeType ? c.innerHTML.replace(Oa, "") : b; | |
if ("string" == typeof a && !Ua.test(a) && ($.support.htmlSerialize || !Wa.test(a)) && ($.support.leadingWhitespace || !Pa.test(a)) && !_a[(Ra.exec(a) || ["", ""])[1].toLowerCase()]) { | |
a = a.replace(Qa, "<$1></$2>"); | |
try { | |
for (; d < e; d++) | |
c = this[d] || {}, | |
1 === c.nodeType && ($.cleanData(c.getElementsByTagName("*")), | |
c.innerHTML = a); | |
c = 0 | |
} catch (f) {} | |
} | |
c && this.empty().append(a) | |
}, null, a, arguments.length) | |
}, | |
replaceWith: function(a) { | |
return h(this[0]) ? this.length ? this.pushStack($($.isFunction(a) ? a() : a), "replaceWith", a) : this : $.isFunction(a) ? this.each(function(b) { | |
var c = $(this) | |
, d = c.html(); | |
c.replaceWith(a.call(this, b, d)) | |
}) : ("string" != typeof a && (a = $(a).detach()), | |
this.each(function() { | |
var b = this.nextSibling | |
, c = this.parentNode; | |
$(this).remove(), | |
b ? $(b).before(a) : $(c).append(a) | |
})) | |
}, | |
detach: function(a) { | |
return this.remove(a, !0) | |
}, | |
domManip: function(a, c, d) { | |
a = [].concat.apply([], a); | |
var e, f, g, h, i = 0, j = a[0], k = [], m = this.length; | |
if (!$.support.checkClone && m > 1 && "string" == typeof j && Ya.test(j)) | |
return this.each(function() { | |
$(this).domManip(a, c, d) | |
}); | |
if ($.isFunction(j)) | |
return this.each(function(e) { | |
var f = $(this); | |
a[0] = j.call(this, e, c ? f.html() : b), | |
f.domManip(a, c, d) | |
}); | |
if (this[0]) { | |
if (e = $.buildFragment(a, this, k), | |
g = e.fragment, | |
f = g.firstChild, | |
1 === g.childNodes.length && (g = f), | |
f) | |
for (c = c && $.nodeName(f, "tr"), | |
h = e.cacheable || m - 1; i < m; i++) | |
d.call(c && $.nodeName(this[i], "table") ? l(this[i], "tbody") : this[i], i === h ? g : $.clone(g, !0, !0)); | |
g = f = null, | |
k.length && $.each(k, function(a, b) { | |
b.src ? $.ajax ? $.ajax({ | |
url: b.src, | |
type: "GET", | |
dataType: "script", | |
async: !1, | |
global: !1, | |
"throws": !0 | |
}) : $.error("no ajax") : $.globalEval((b.text || b.textContent || b.innerHTML || "").replace($a, "")), | |
b.parentNode && b.parentNode.removeChild(b) | |
}) | |
} | |
return this | |
} | |
}), | |
$.buildFragment = function(a, c, d) { | |
var e, f, g, h = a[0]; | |
return c = c || P, | |
c = !c.nodeType && c[0] || c, | |
c = c.ownerDocument || c, | |
!(1 === a.length && "string" == typeof h && h.length < 512 && c === P && "<" === h.charAt(0)) || Va.test(h) || !$.support.checkClone && Ya.test(h) || !$.support.html5Clone && Wa.test(h) || (f = !0, | |
e = $.fragments[h], | |
g = e !== b), | |
e || (e = c.createDocumentFragment(), | |
$.clean(a, c, e, d), | |
f && ($.fragments[h] = g && e)), | |
{ | |
fragment: e, | |
cacheable: f | |
} | |
} | |
, | |
$.fragments = {}, | |
$.each({ | |
appendTo: "append", | |
prependTo: "prepend", | |
insertBefore: "before", | |
insertAfter: "after", | |
replaceAll: "replaceWith" | |
}, function(a, b) { | |
$.fn[a] = function(c) { | |
var d, e = 0, f = [], g = $(c), h = g.length, i = 1 === this.length && this[0].parentNode; | |
if ((null == i || i && 11 === i.nodeType && 1 === i.childNodes.length) && 1 === h) | |
return g[b](this[0]), | |
this; | |
for (; e < h; e++) | |
d = (e > 0 ? this.clone(!0) : this).get(), | |
$(g[e])[b](d), | |
f = f.concat(d); | |
return this.pushStack(f, a, g.selector) | |
} | |
}), | |
$.extend({ | |
clone: function(a, b, c) { | |
var d, e, f, g; | |
if ($.support.html5Clone || $.isXMLDoc(a) || !Wa.test("<" + a.nodeName + ">") ? g = a.cloneNode(!0) : (bb.innerHTML = a.outerHTML, | |
bb.removeChild(g = bb.firstChild)), | |
!($.support.noCloneEvent && $.support.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || $.isXMLDoc(a))) | |
for (n(a, g), | |
d = o(a), | |
e = o(g), | |
f = 0; d[f]; ++f) | |
e[f] && n(d[f], e[f]); | |
if (b && (m(a, g), | |
c)) | |
for (d = o(a), | |
e = o(g), | |
f = 0; d[f]; ++f) | |
m(d[f], e[f]); | |
return d = e = null, | |
g | |
}, | |
clean: function(a, b, c, d) { | |
var e, f, g, h, i, j, l, m, n, o, q, r = 0, s = []; | |
for (b && "undefined" != typeof b.createDocumentFragment || (b = P), | |
f = b === P && ab; null != (g = a[r]); r++) | |
if ("number" == typeof g && (g += ""), | |
g) { | |
if ("string" == typeof g) | |
if (Ta.test(g)) { | |
for (f = f || k(b), | |
l = l || f.appendChild(b.createElement("div")), | |
g = g.replace(Qa, "<$1></$2>"), | |
h = (Ra.exec(g) || ["", ""])[1].toLowerCase(), | |
i = _a[h] || _a._default, | |
j = i[0], | |
l.innerHTML = i[1] + g + i[2]; j--; ) | |
l = l.lastChild; | |
if (!$.support.tbody) | |
for (m = Sa.test(g), | |
n = "table" !== h || m ? "<table>" !== i[1] || m ? [] : l.childNodes : l.firstChild && l.firstChild.childNodes, | |
e = n.length - 1; e >= 0; --e) | |
$.nodeName(n[e], "tbody") && !n[e].childNodes.length && n[e].parentNode.removeChild(n[e]); | |
!$.support.leadingWhitespace && Pa.test(g) && l.insertBefore(b.createTextNode(Pa.exec(g)[0]), l.firstChild), | |
g = l.childNodes, | |
l = f.lastChild | |
} else | |
g = b.createTextNode(g); | |
g.nodeType ? s.push(g) : s = $.merge(s, g) | |
} | |
if (l && (f.removeChild(l), | |
g = l = f = null), | |
!$.support.appendChecked) | |
for (r = 0; null != (g = s[r]); r++) | |
$.nodeName(g, "input") ? p(g) : "undefined" != typeof g.getElementsByTagName && $.grep(g.getElementsByTagName("input"), p); | |
if (c) | |
for (o = function(a) { | |
if (!a.type || Za.test(a.type)) | |
return d ? d.push(a.parentNode ? a.parentNode.removeChild(a) : a) : c.appendChild(a) | |
} | |
, | |
r = 0; null != (g = s[r]); r++) | |
$.nodeName(g, "script") && o(g) || (c.appendChild(g), | |
"undefined" != typeof g.getElementsByTagName && (q = $.grep($.merge([], g.getElementsByTagName("script")), o), | |
s.splice.apply(s, [r + 1, 0].concat(q)), | |
r += q.length)); | |
return s | |
}, | |
cleanData: function(a, b) { | |
for (var c, d, e, f, g = 0, h = $.expando, i = $.cache, j = $.support.deleteExpando, k = $.event.special; null != (e = a[g]); g++) | |
if ((b || $.acceptData(e)) && (d = e[h], | |
c = d && i[d])) { | |
if (c.events) | |
for (f in c.events) | |
k[f] ? $.event.remove(e, f) : $.removeEvent(e, f, c.handle); | |
i[d] && (delete i[d], | |
j ? delete e[h] : e.removeAttribute ? e.removeAttribute(h) : e[h] = null, | |
$.deletedIds.push(d)) | |
} | |
} | |
}), | |
function() { | |
var a, b; | |
$.uaMatch = function(a) { | |
a = a.toLowerCase(); | |
var b = /(chrome)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || []; | |
return { | |
browser: b[1] || "", | |
version: b[2] || "0" | |
} | |
} | |
, | |
a = $.uaMatch(R.userAgent), | |
b = {}, | |
a.browser && (b[a.browser] = !0, | |
b.version = a.version), | |
b.webkit && (b.safari = !0), | |
$.browser = b, | |
$.sub = function() { | |
function a(b, c) { | |
return new a.fn.init(b,c) | |
} | |
$.extend(!0, a, this), | |
a.superclass = this, | |
a.fn = a.prototype = this(), | |
a.fn.constructor = a, | |
a.sub = this.sub, | |
a.fn.init = function(c, d) { | |
return d && d instanceof $ && !(d instanceof a) && (d = a(d)), | |
$.fn.init.call(this, c, d, b) | |
} | |
, | |
a.fn.init.prototype = a.fn; | |
var b = a(P); | |
return a | |
} | |
}(); | |
var cb, db, eb, fb = /alpha\([^)]*\)/i, gb = /opacity=([^)]*)/, hb = /^(top|right|bottom|left)$/, ib = /^margin/, jb = new RegExp("^(" + _ + ")(.*)$","i"), kb = new RegExp("^(" + _ + ")(?!px)[a-z%]+$","i"), lb = new RegExp("^([-+])=(" + _ + ")","i"), mb = {}, nb = { | |
position: "absolute", | |
visibility: "hidden", | |
display: "block" | |
}, ob = { | |
letterSpacing: 0, | |
fontWeight: 400, | |
lineHeight: 1 | |
}, pb = ["Top", "Right", "Bottom", "Left"], qb = ["Webkit", "O", "Moz", "ms"], rb = $.fn.toggle; | |
$.fn.extend({ | |
css: function(a, c) { | |
return $.access(this, function(a, c, d) { | |
return d !== b ? $.style(a, c, d) : $.css(a, c) | |
}, a, c, arguments.length > 1) | |
}, | |
show: function() { | |
return s(this, !0) | |
}, | |
hide: function() { | |
return s(this) | |
}, | |
toggle: function(a, b) { | |
var c = "boolean" == typeof a; | |
return $.isFunction(a) && $.isFunction(b) ? rb.apply(this, arguments) : this.each(function() { | |
(c ? a : r(this)) ? $(this).show() : $(this).hide() | |
}) | |
} | |
}), | |
$.extend({ | |
cssHooks: { | |
opacity: { | |
get: function(a, b) { | |
if (b) { | |
var c = cb(a, "opacity"); | |
return "" === c ? "1" : c | |
} | |
} | |
} | |
}, | |
cssNumber: { | |
fillOpacity: !0, | |
fontWeight: !0, | |
lineHeight: !0, | |
opacity: !0, | |
orphans: !0, | |
widows: !0, | |
zIndex: !0, | |
zoom: !0 | |
}, | |
cssProps: { | |
"float": $.support.cssFloat ? "cssFloat" : "styleFloat" | |
}, | |
style: function(a, c, d, e) { | |
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { | |
var f, g, h, i = $.camelCase(c), j = a.style; | |
if (c = $.cssProps[i] || ($.cssProps[i] = q(j, i)), | |
h = $.cssHooks[c] || $.cssHooks[i], | |
d === b) | |
return h && "get"in h && (f = h.get(a, !1, e)) !== b ? f : j[c]; | |
if (g = typeof d, | |
"string" === g && (f = lb.exec(d)) && (d = (f[1] + 1) * f[2] + parseFloat($.css(a, c)), | |
g = "number"), | |
!(null == d || "number" === g && isNaN(d) || ("number" !== g || $.cssNumber[i] || (d += "px"), | |
h && "set"in h && (d = h.set(a, d, e)) === b))) | |
try { | |
j[c] = d | |
} catch (k) {} | |
} | |
}, | |
css: function(a, c, d, e) { | |
var f, g, h, i = $.camelCase(c); | |
return c = $.cssProps[i] || ($.cssProps[i] = q(a.style, i)), | |
h = $.cssHooks[c] || $.cssHooks[i], | |
h && "get"in h && (f = h.get(a, !0, e)), | |
f === b && (f = cb(a, c)), | |
"normal" === f && c in ob && (f = ob[c]), | |
d || e !== b ? (g = parseFloat(f), | |
d || $.isNumeric(g) ? g || 0 : f) : f | |
}, | |
swap: function(a, b, c) { | |
var d, e, f = {}; | |
for (e in b) | |
f[e] = a.style[e], | |
a.style[e] = b[e]; | |
d = c.call(a); | |
for (e in b) | |
a.style[e] = f[e]; | |
return d | |
} | |
}), | |
a.getComputedStyle ? cb = function(a, b) { | |
var c, d, e, f, g = getComputedStyle(a, null), h = a.style; | |
return g && (c = g[b], | |
"" !== c || $.contains(a.ownerDocument.documentElement, a) || (c = $.style(a, b)), | |
kb.test(c) && ib.test(b) && (d = h.width, | |
e = h.minWidth, | |
f = h.maxWidth, | |
h.minWidth = h.maxWidth = h.width = c, | |
c = g.width, | |
h.width = d, | |
h.minWidth = e, | |
h.maxWidth = f)), | |
c | |
} | |
: P.documentElement.currentStyle && (cb = function(a, b) { | |
var c, d, e = a.currentStyle && a.currentStyle[b], f = a.style; | |
return null == e && f && f[b] && (e = f[b]), | |
kb.test(e) && !hb.test(b) && (c = f.left, | |
d = a.runtimeStyle && a.runtimeStyle.left, | |
d && (a.runtimeStyle.left = a.currentStyle.left), | |
f.left = "fontSize" === b ? "1em" : e, | |
e = f.pixelLeft + "px", | |
f.left = c, | |
d && (a.runtimeStyle.left = d)), | |
"" === e ? "auto" : e | |
} | |
), | |
$.each(["height", "width"], function(a, b) { | |
$.cssHooks[b] = { | |
get: function(a, c, d) { | |
if (c) | |
return 0 !== a.offsetWidth || "none" !== cb(a, "display") ? v(a, b, d) : $.swap(a, nb, function() { | |
return v(a, b, d) | |
}) | |
}, | |
set: function(a, c, d) { | |
return t(a, c, d ? u(a, b, d, $.support.boxSizing && "border-box" === $.css(a, "boxSizing")) : 0) | |
} | |
} | |
}), | |
$.support.opacity || ($.cssHooks.opacity = { | |
get: function(a, b) { | |
return gb.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : "" | |
}, | |
set: function(a, b) { | |
var c = a.style | |
, d = a.currentStyle | |
, e = $.isNumeric(b) ? "alpha(opacity=" + 100 * b + ")" : "" | |
, f = d && d.filter || c.filter || ""; | |
c.zoom = 1, | |
b >= 1 && "" === $.trim(f.replace(fb, "")) && c.removeAttribute && (c.removeAttribute("filter"), | |
d && !d.filter) || (c.filter = fb.test(f) ? f.replace(fb, e) : f + " " + e) | |
} | |
}), | |
$(function() { | |
$.support.reliableMarginRight || ($.cssHooks.marginRight = { | |
get: function(a, b) { | |
return $.swap(a, { | |
display: "inline-block" | |
}, function() { | |
if (b) | |
return cb(a, "marginRight") | |
}) | |
} | |
}), | |
!$.support.pixelPosition && $.fn.position && $.each(["top", "left"], function(a, b) { | |
$.cssHooks[b] = { | |
get: function(a, c) { | |
if (c) { | |
var d = cb(a, b); | |
return kb.test(d) ? $(a).position()[b] + "px" : d | |
} | |
} | |
} | |
}) | |
}), | |
$.expr && $.expr.filters && ($.expr.filters.hidden = function(a) { | |
return 0 === a.offsetWidth && 0 === a.offsetHeight || !$.support.reliableHiddenOffsets && "none" === (a.style && a.style.display || cb(a, "display")) | |
} | |
, | |
$.expr.filters.visible = function(a) { | |
return !$.expr.filters.hidden(a) | |
} | |
), | |
$.each({ | |
margin: "", | |
padding: "", | |
border: "Width" | |
}, function(a, b) { | |
$.cssHooks[a + b] = { | |
expand: function(c) { | |
var d, e = "string" == typeof c ? c.split(" ") : [c], f = {}; | |
for (d = 0; d < 4; d++) | |
f[a + pb[d] + b] = e[d] || e[d - 2] || e[0]; | |
return f | |
} | |
}, | |
ib.test(a) || ($.cssHooks[a + b].set = t) | |
}); | |
var sb = /%20/g | |
, tb = /\[\]$/ | |
, ub = /\r?\n/g | |
, vb = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i | |
, wb = /^(?:select|textarea)/i; | |
$.fn.extend({ | |
serialize: function() { | |
return $.param(this.serializeArray()) | |
}, | |
serializeArray: function() { | |
return this.map(function() { | |
return this.elements ? $.makeArray(this.elements) : this | |
}).filter(function() { | |
return this.name && !this.disabled && (this.checked || wb.test(this.nodeName) || vb.test(this.type)) | |
}).map(function(a, b) { | |
var c = $(this).val(); | |
return null == c ? null : $.isArray(c) ? $.map(c, function(a, c) { | |
return { | |
name: b.name, | |
value: a.replace(ub, "\r\n") | |
} | |
}) : { | |
name: b.name, | |
value: c.replace(ub, "\r\n") | |
} | |
}).get() | |
} | |
}), | |
$.param = function(a, c) { | |
var d, e = [], f = function(a, b) { | |
b = $.isFunction(b) ? b() : null == b ? "" : b, | |
e[e.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b) | |
}; | |
if (c === b && (c = $.ajaxSettings && $.ajaxSettings.traditional), | |
$.isArray(a) || a.jquery && !$.isPlainObject(a)) | |
$.each(a, function() { | |
f(this.name, this.value) | |
}); | |
else | |
for (d in a) | |
x(d, a[d], c, f); | |
return e.join("&").replace(sb, "+") | |
} | |
; | |
var xb, yb, zb = /#.*$/, Ab = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, Bb = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, Cb = /^(?:GET|HEAD)$/, Db = /^\/\//, Eb = /\?/, Fb = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, Gb = /([?&])_=[^&]*/, Hb = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, Ib = $.fn.load, Jb = {}, Kb = {}, Lb = ["*/"] + ["*"]; | |
try { | |
xb = Q.href | |
} catch (Mb) { | |
xb = P.createElement("a"), | |
xb.href = "", | |
xb = xb.href | |
} | |
yb = Hb.exec(xb.toLowerCase()) || [], | |
$.fn.load = function(a, c, d) { | |
if ("string" != typeof a && Ib) | |
return Ib.apply(this, arguments); | |
if (!this.length) | |
return this; | |
var e, f, g, h = this, i = a.indexOf(" "); | |
return i >= 0 && (e = a.slice(i, a.length), | |
a = a.slice(0, i)), | |
$.isFunction(c) ? (d = c, | |
c = b) : "object" == typeof c && (f = "POST"), | |
$.ajax({ | |
url: a, | |
type: f, | |
dataType: "html", | |
data: c, | |
complete: function(a, b) { | |
d && h.each(d, g || [a.responseText, b, a]) | |
} | |
}).done(function(a) { | |
g = arguments, | |
h.html(e ? $("<div>").append(a.replace(Fb, "")).find(e) : a) | |
}), | |
this | |
} | |
, | |
$.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(a, b) { | |
$.fn[b] = function(a) { | |
return this.on(b, a) | |
} | |
}), | |
$.each(["get", "post"], function(a, c) { | |
$[c] = function(a, d, e, f) { | |
return $.isFunction(d) && (f = f || e, | |
e = d, | |
d = b), | |
$.ajax({ | |
type: c, | |
url: a, | |
data: d, | |
success: e, | |
dataType: f | |
}) | |
} | |
}), | |
$.extend({ | |
getScript: function(a, c) { | |
return $.get(a, b, c, "script") | |
}, | |
getJSON: function(a, b, c) { | |
return $.get(a, b, c, "json") | |
}, | |
ajaxSetup: function(a, b) { | |
return b ? A(a, $.ajaxSettings) : (b = a, | |
a = $.ajaxSettings), | |
A(a, b), | |
a | |
}, | |
ajaxSettings: { | |
url: xb, | |
isLocal: Bb.test(yb[1]), | |
global: !0, | |
type: "GET", | |
contentType: "application/x-www-form-urlencoded; charset=UTF-8", | |
processData: !0, | |
async: !0, | |
accepts: { | |
xml: "application/xml, text/xml", | |
html: "text/html", | |
text: "text/plain", | |
json: "application/json, text/javascript", | |
"*": Lb | |
}, | |
contents: { | |
xml: /xml/, | |
html: /html/, | |
json: /json/ | |
}, | |
responseFields: { | |
xml: "responseXML", | |
text: "responseText" | |
}, | |
converters: { | |
"* text": a.String, | |
"text html": !0, | |
"text json": $.parseJSON, | |
"text xml": $.parseXML | |
}, | |
flatOptions: { | |
context: !0, | |
url: !0 | |
} | |
}, | |
ajaxPrefilter: y(Jb), | |
ajaxTransport: y(Kb), | |
ajax: function(a, c) { | |
function d(a, c, d, g) { | |
var j, l, s, t, v, x = c; | |
2 !== u && (u = 2, | |
i && clearTimeout(i), | |
h = b, | |
f = g || "", | |
w.readyState = a > 0 ? 4 : 0, | |
d && (t = B(m, w, d)), | |
a >= 200 && a < 300 || 304 === a ? (m.ifModified && (v = w.getResponseHeader("Last-Modified"), | |
v && ($.lastModified[e] = v), | |
v = w.getResponseHeader("Etag"), | |
v && ($.etag[e] = v)), | |
304 === a ? (x = "notmodified", | |
j = !0) : (j = C(m, t), | |
x = j.state, | |
l = j.data, | |
s = j.error, | |
j = !s)) : (s = x, | |
x && !a || (x = "error", | |
a < 0 && (a = 0))), | |
w.status = a, | |
w.statusText = "" + (c || x), | |
j ? p.resolveWith(n, [l, x, w]) : p.rejectWith(n, [w, x, s]), | |
w.statusCode(r), | |
r = b, | |
k && o.trigger("ajax" + (j ? "Success" : "Error"), [w, m, j ? l : s]), | |
q.fireWith(n, [w, x]), | |
k && (o.trigger("ajaxComplete", [w, m]), | |
--$.active || $.event.trigger("ajaxStop"))) | |
} | |
"object" == typeof a && (c = a, | |
a = b), | |
c = c || {}; | |
var e, f, g, h, i, j, k, l, m = $.ajaxSetup({}, c), n = m.context || m, o = n !== m && (n.nodeType || n instanceof $) ? $(n) : $.event, p = $.Deferred(), q = $.Callbacks("once memory"), r = m.statusCode || {}, s = {}, t = {}, u = 0, v = "canceled", w = { | |
readyState: 0, | |
setRequestHeader: function(a, b) { | |
if (!u) { | |
var c = a.toLowerCase(); | |
a = t[c] = t[c] || a, | |
s[a] = b | |
} | |
return this | |
}, | |
getAllResponseHeaders: function() { | |
return 2 === u ? f : null | |
}, | |
getResponseHeader: function(a) { | |
var c; | |
if (2 === u) { | |
if (!g) | |
for (g = {}; c = Ab.exec(f); ) | |
g[c[1].toLowerCase()] = c[2]; | |
c = g[a.toLowerCase()] | |
} | |
return c === b ? null : c | |
}, | |
overrideMimeType: function(a) { | |
return u || (m.mimeType = a), | |
this | |
}, | |
abort: function(a) { | |
return a = a || v, | |
h && h.abort(a), | |
d(0, a), | |
this | |
} | |
}; | |
if (p.promise(w), | |
w.success = w.done, | |
w.error = w.fail, | |
w.complete = q.add, | |
w.statusCode = function(a) { | |
if (a) { | |
var b; | |
if (u < 2) | |
for (b in a) | |
r[b] = [r[b], a[b]]; | |
else | |
b = a[w.status], | |
w.always(b) | |
} | |
return this | |
} | |
, | |
m.url = ((a || m.url) + "").replace(zb, "").replace(Db, yb[1] + "//"), | |
m.dataTypes = $.trim(m.dataType || "*").toLowerCase().split(ba), | |
null == m.crossDomain && (j = Hb.exec(m.url.toLowerCase()), | |
m.crossDomain = !(!j || j[1] == yb[1] && j[2] == yb[2] && (j[3] || ("http:" === j[1] ? 80 : 443)) == (yb[3] || ("http:" === yb[1] ? 80 : 443)))), | |
m.data && m.processData && "string" != typeof m.data && (m.data = $.param(m.data, m.traditional)), | |
z(Jb, m, c, w), | |
2 === u) | |
return w; | |
if (k = m.global, | |
m.type = m.type.toUpperCase(), | |
m.hasContent = !Cb.test(m.type), | |
k && 0 === $.active++ && $.event.trigger("ajaxStart"), | |
!m.hasContent && (m.data && (m.url += (Eb.test(m.url) ? "&" : "?") + m.data, | |
delete m.data), | |
e = m.url, | |
m.cache === !1)) { | |
var x = $.now() | |
, y = m.url.replace(Gb, "$1_=" + x); | |
m.url = y + (y === m.url ? (Eb.test(m.url) ? "&" : "?") + "_=" + x : "") | |
} | |
(m.data && m.hasContent && m.contentType !== !1 || c.contentType) && w.setRequestHeader("Content-Type", m.contentType), | |
m.ifModified && (e = e || m.url, | |
$.lastModified[e] && w.setRequestHeader("If-Modified-Since", $.lastModified[e]), | |
$.etag[e] && w.setRequestHeader("If-None-Match", $.etag[e])), | |
w.setRequestHeader("Accept", m.dataTypes[0] && m.accepts[m.dataTypes[0]] ? m.accepts[m.dataTypes[0]] + ("*" !== m.dataTypes[0] ? ", " + Lb + "; q=0.01" : "") : m.accepts["*"]); | |
for (l in m.headers) | |
w.setRequestHeader(l, m.headers[l]); | |
if (m.beforeSend && (m.beforeSend.call(n, w, m) === !1 || 2 === u)) | |
return w.abort(); | |
v = "abort"; | |
for (l in { | |
success: 1, | |
error: 1, | |
complete: 1 | |
}) | |
w[l](m[l]); | |
if (h = z(Kb, m, c, w)) { | |
w.readyState = 1, | |
k && o.trigger("ajaxSend", [w, m]), | |
m.async && m.timeout > 0 && (i = setTimeout(function() { | |
w.abort("timeout") | |
}, m.timeout)); | |
try { | |
u = 1, | |
h.send(s, d) | |
} catch (A) { | |
if (!(u < 2)) | |
throw A; | |
d(-1, A) | |
} | |
} else | |
d(-1, "No Transport"); | |
return w | |
}, | |
active: 0, | |
lastModified: {}, | |
etag: {} | |
}); | |
var Nb = [] | |
, Ob = /\?/ | |
, Pb = /(=)\?(?=&|$)|\?\?/ | |
, Qb = $.now(); | |
$.ajaxSetup({ | |
jsonp: "callback", | |
jsonpCallback: function() { | |
var a = Nb.pop() || $.expando + "_" + Qb++; | |
return this[a] = !0, | |
a | |
} | |
}), | |
$.ajaxPrefilter("json jsonp", function(c, d, e) { | |
var f, g, h, i = c.data, j = c.url, k = c.jsonp !== !1, l = k && Pb.test(j), m = k && !l && "string" == typeof i && !(c.contentType || "").indexOf("application/x-www-form-urlencoded") && Pb.test(i); | |
if ("jsonp" === c.dataTypes[0] || l || m) | |
return f = c.jsonpCallback = $.isFunction(c.jsonpCallback) ? c.jsonpCallback() : c.jsonpCallback, | |
g = a[f], | |
l ? c.url = j.replace(Pb, "$1" + f) : m ? c.data = i.replace(Pb, "$1" + f) : k && (c.url += (Ob.test(j) ? "&" : "?") + c.jsonp + "=" + f), | |
c.converters["script json"] = function() { | |
return h || $.error(f + " was not called"), | |
h[0] | |
} | |
, | |
c.dataTypes[0] = "json", | |
a[f] = function() { | |
h = arguments | |
} | |
, | |
e.always(function() { | |
a[f] = g, | |
c[f] && (c.jsonpCallback = d.jsonpCallback, | |
Nb.push(f)), | |
h && $.isFunction(g) && g(h[0]), | |
h = g = b | |
}), | |
"script" | |
}), | |
$.ajaxSetup({ | |
accepts: { | |
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" | |
}, | |
contents: { | |
script: /javascript|ecmascript/ | |
}, | |
converters: { | |
"text script": function(a) { | |
return $.globalEval(a), | |
a | |
} | |
} | |
}), | |
$.ajaxPrefilter("script", function(a) { | |
a.cache === b && (a.cache = !1), | |
a.crossDomain && (a.type = "GET", | |
a.global = !1) | |
}), | |
$.ajaxTransport("script", function(a) { | |
if (a.crossDomain) { | |
var c, d = P.head || P.getElementsByTagName("head")[0] || P.documentElement; | |
return { | |
send: function(e, f) { | |
c = P.createElement("script"), | |
c.async = "async", | |
a.scriptCharset && (c.charset = a.scriptCharset), | |
c.src = a.url, | |
c.onload = c.onreadystatechange = function(a, e) { | |
(e || !c.readyState || /loaded|complete/.test(c.readyState)) && (c.onload = c.onreadystatechange = null, | |
d && c.parentNode && d.removeChild(c), | |
c = b, | |
e || f(200, "success")) | |
} | |
, | |
d.insertBefore(c, d.firstChild) | |
}, | |
abort: function() { | |
c && c.onload(0, 1) | |
} | |
} | |
} | |
}); | |
var Rb, Sb = !!a.ActiveXObject && function() { | |
for (var a in Rb) | |
Rb[a](0, 1) | |
} | |
, Tb = 0; | |
$.ajaxSettings.xhr = a.ActiveXObject ? function() { | |
return !this.isLocal && D() || E() | |
} | |
: D, | |
function(a) { | |
$.extend($.support, { | |
ajax: !!a, | |
cors: !!a && "withCredentials"in a | |
}) | |
}($.ajaxSettings.xhr()), | |
$.support.ajax && $.ajaxTransport(function(c) { | |
if (!c.crossDomain || $.support.cors) { | |
var d; | |
return { | |
send: function(e, f) { | |
var g, h, i = c.xhr(); | |
if (c.username ? i.open(c.type, c.url, c.async, c.username, c.password) : i.open(c.type, c.url, c.async), | |
c.xhrFields) | |
for (h in c.xhrFields) | |
i[h] = c.xhrFields[h]; | |
c.mimeType && i.overrideMimeType && i.overrideMimeType(c.mimeType), | |
c.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"); | |
try { | |
for (h in e) | |
i.setRequestHeader(h, e[h]) | |
} catch (j) {} | |
i.send(c.hasContent && c.data || null), | |
d = function(a, e) { | |
var h, j, k, l, m; | |
try { | |
if (d && (e || 4 === i.readyState)) | |
if (d = b, | |
g && (i.onreadystatechange = $.noop, | |
Sb && delete Rb[g]), | |
e) | |
4 !== i.readyState && i.abort(); | |
else { | |
h = i.status, | |
k = i.getAllResponseHeaders(), | |
l = {}, | |
m = i.responseXML, | |
m && m.documentElement && (l.xml = m); | |
try { | |
l.text = i.responseText | |
} catch (a) {} | |
try { | |
j = i.statusText | |
} catch (n) { | |
j = "" | |
} | |
h || !c.isLocal || c.crossDomain ? 1223 === h && (h = 204) : h = l.text ? 200 : 404 | |
} | |
} catch (o) { | |
e || f(-1, o) | |
} | |
l && f(h, j, l, k) | |
} | |
, | |
c.async ? 4 === i.readyState ? setTimeout(d, 0) : (g = ++Tb, | |
Sb && (Rb || (Rb = {}, | |
$(a).unload(Sb)), | |
Rb[g] = d), | |
i.onreadystatechange = d) : d() | |
}, | |
abort: function() { | |
d && d(0, 1) | |
} | |
} | |
} | |
}); | |
var Ub, Vb, Wb = /^(?:toggle|show|hide)$/, Xb = new RegExp("^(?:([-+])=|)(" + _ + ")([a-z%]*)$","i"), Yb = /queueHooks$/, Zb = [J], $b = { | |
"*": [function(a, b) { | |
var c, d, e, f = this.createTween(a, b), g = Xb.exec(b), h = f.cur(), i = +h || 0, j = 1; | |
if (g) { | |
if (c = +g[2], | |
d = g[3] || ($.cssNumber[a] ? "" : "px"), | |
"px" !== d && i) { | |
i = $.css(f.elem, a, !0) || c || 1; | |
do | |
e = j = j || ".5", | |
i /= j, | |
$.style(f.elem, a, i + d), | |
j = f.cur() / h; | |
while (1 !== j && j !== e) | |
} | |
f.unit = d, | |
f.start = i, | |
f.end = g[1] ? i + (g[1] + 1) * c : c | |
} | |
return f | |
} | |
] | |
}; | |
$.Animation = $.extend(H, { | |
tweener: function(a, b) { | |
$.isFunction(a) ? (b = a, | |
a = ["*"]) : a = a.split(" "); | |
for (var c, d = 0, e = a.length; d < e; d++) | |
c = a[d], | |
$b[c] = $b[c] || [], | |
$b[c].unshift(b) | |
}, | |
prefilter: function(a, b) { | |
b ? Zb.unshift(a) : Zb.push(a) | |
} | |
}), | |
$.Tween = K, | |
K.prototype = { | |
constructor: K, | |
init: function(a, b, c, d, e, f) { | |
this.elem = a, | |
this.prop = c, | |
this.easing = e || "swing", | |
this.options = b, | |
this.start = this.now = this.cur(), | |
this.end = d, | |
this.unit = f || ($.cssNumber[c] ? "" : "px") | |
}, | |
cur: function() { | |
var a = K.propHooks[this.prop]; | |
return a && a.get ? a.get(this) : K.propHooks._default.get(this) | |
}, | |
run: function(a) { | |
var b, c = K.propHooks[this.prop]; | |
return this.pos = b = $.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration), | |
this.now = (this.end - this.start) * b + this.start, | |
this.options.step && this.options.step.call(this.elem, this.now, this), | |
c && c.set ? c.set(this) : K.propHooks._default.set(this), | |
this | |
} | |
}, | |
K.prototype.init.prototype = K.prototype, | |
K.propHooks = { | |
_default: { | |
get: function(a) { | |
var b; | |
return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = $.css(a.elem, a.prop, !1, ""), | |
b && "auto" !== b ? b : 0) : a.elem[a.prop] | |
}, | |
set: function(a) { | |
$.fx.step[a.prop] ? $.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[$.cssProps[a.prop]] || $.cssHooks[a.prop]) ? $.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now | |
} | |
} | |
}, | |
K.propHooks.scrollTop = K.propHooks.scrollLeft = { | |
set: function(a) { | |
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) | |
} | |
}, | |
$.each(["toggle", "show", "hide"], function(a, b) { | |
var c = $.fn[b]; | |
$.fn[b] = function(d, e, f) { | |
return null == d || "boolean" == typeof d || !a && $.isFunction(d) && $.isFunction(e) ? c.apply(this, arguments) : this.animate(L(b, !0), d, e, f) | |
} | |
}), | |
$.fn.extend({ | |
fadeTo: function(a, b, c, d) { | |
return this.filter(r).css("opacity", 0).show().end().animate({ | |
opacity: b | |
}, a, c, d) | |
}, | |
animate: function(a, b, c, d) { | |
var e = $.isEmptyObject(a) | |
, f = $.speed(b, c, d) | |
, g = function() { | |
var b = H(this, $.extend({}, a), f); | |
e && b.stop(!0) | |
}; | |
return e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g) | |
}, | |
stop: function(a, c, d) { | |
var e = function(a) { | |
var b = a.stop; | |
delete a.stop, | |
b(d) | |
}; | |
return "string" != typeof a && (d = c, | |
c = a, | |
a = b), | |
c && a !== !1 && this.queue(a || "fx", []), | |
this.each(function() { | |
var b = !0 | |
, c = null != a && a + "queueHooks" | |
, f = $.timers | |
, g = $._data(this); | |
if (c) | |
g[c] && g[c].stop && e(g[c]); | |
else | |
for (c in g) | |
g[c] && g[c].stop && Yb.test(c) && e(g[c]); | |
for (c = f.length; c--; ) | |
f[c].elem !== this || null != a && f[c].queue !== a || (f[c].anim.stop(d), | |
b = !1, | |
f.splice(c, 1)); | |
!b && d || $.dequeue(this, a) | |
}) | |
} | |
}), | |
$.each({ | |
slideDown: L("show"), | |
slideUp: L("hide"), | |
slideToggle: L("toggle"), | |
fadeIn: { | |
opacity: "show" | |
}, | |
fadeOut: { | |
opacity: "hide" | |
}, | |
fadeToggle: { | |
opacity: "toggle" | |
} | |
}, function(a, b) { | |
$.fn[a] = function(a, c, d) { | |
return this.animate(b, a, c, d) | |
} | |
}), | |
$.speed = function(a, b, c) { | |
var d = a && "object" == typeof a ? $.extend({}, a) : { | |
complete: c || !c && b || $.isFunction(a) && a, | |
duration: a, | |
easing: c && b || b && !$.isFunction(b) && b | |
}; | |
return d.duration = $.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in $.fx.speeds ? $.fx.speeds[d.duration] : $.fx.speeds._default, | |
null != d.queue && d.queue !== !0 || (d.queue = "fx"), | |
d.old = d.complete, | |
d.complete = function() { | |
$.isFunction(d.old) && d.old.call(this), | |
d.queue && $.dequeue(this, d.queue) | |
} | |
, | |
d | |
} | |
, | |
$.easing = { | |
linear: function(a) { | |
return a | |
}, | |
swing: function(a) { | |
return .5 - Math.cos(a * Math.PI) / 2 | |
} | |
}, | |
$.timers = [], | |
$.fx = K.prototype.init, | |
$.fx.tick = function() { | |
for (var a, b = $.timers, c = 0; c < b.length; c++) | |
a = b[c], | |
a() || b[c] !== a || b.splice(c--, 1); | |
b.length || $.fx.stop() | |
} | |
, | |
$.fx.timer = function(a) { | |
a() && $.timers.push(a) && !Vb && (Vb = setInterval($.fx.tick, $.fx.interval)) | |
} | |
, | |
$.fx.interval = 13, | |
$.fx.stop = function() { | |
clearInterval(Vb), | |
Vb = null | |
} | |
, | |
$.fx.speeds = { | |
slow: 600, | |
fast: 200, | |
_default: 400 | |
}, | |
$.fx.step = {}, | |
$.expr && $.expr.filters && ($.expr.filters.animated = function(a) { | |
return $.grep($.timers, function(b) { | |
return a === b.elem | |
}).length | |
} | |
); | |
var _b = /^(?:body|html)$/i; | |
$.fn.offset = function(a) { | |
if (arguments.length) | |
return a === b ? this : this.each(function(b) { | |
$.offset.setOffset(this, a, b) | |
}); | |
var c, d, e, f, g, h, i, j, k, l, m = this[0], n = m && m.ownerDocument; | |
if (n) | |
return (e = n.body) === m ? $.offset.bodyOffset(m) : (d = n.documentElement, | |
$.contains(d, m) ? (c = m.getBoundingClientRect(), | |
f = M(n), | |
g = d.clientTop || e.clientTop || 0, | |
h = d.clientLeft || e.clientLeft || 0, | |
i = f.pageYOffset || d.scrollTop, | |
j = f.pageXOffset || d.scrollLeft, | |
k = c.top + i - g, | |
l = c.left + j - h, | |
{ | |
top: k, | |
left: l | |
}) : { | |
top: 0, | |
left: 0 | |
}) | |
} | |
, | |
$.offset = { | |
bodyOffset: function(a) { | |
var b = a.offsetTop | |
, c = a.offsetLeft; | |
return $.support.doesNotIncludeMarginInBodyOffset && (b += parseFloat($.css(a, "marginTop")) || 0, | |
c += parseFloat($.css(a, "marginLeft")) || 0), | |
{ | |
top: b, | |
left: c | |
} | |
}, | |
setOffset: function(a, b, c) { | |
var d = $.css(a, "position"); | |
"static" === d && (a.style.position = "relative"); | |
var e, f, g = $(a), h = g.offset(), i = $.css(a, "top"), j = $.css(a, "left"), k = ("absolute" === d || "fixed" === d) && $.inArray("auto", [i, j]) > -1, l = {}, m = {}; | |
k ? (m = g.position(), | |
e = m.top, | |
f = m.left) : (e = parseFloat(i) || 0, | |
f = parseFloat(j) || 0), | |
$.isFunction(b) && (b = b.call(a, c, h)), | |
null != b.top && (l.top = b.top - h.top + e), | |
null != b.left && (l.left = b.left - h.left + f), | |
"using"in b ? b.using.call(a, l) : g.css(l) | |
} | |
}, | |
$.fn.extend({ | |
position: function() { | |
if (this[0]) { | |
var a = this[0] | |
, b = this.offsetParent() | |
, c = this.offset() | |
, d = _b.test(b[0].nodeName) ? { | |
top: 0, | |
left: 0 | |
} : b.offset(); | |
return c.top -= parseFloat($.css(a, "marginTop")) || 0, | |
c.left -= parseFloat($.css(a, "marginLeft")) || 0, | |
d.top += parseFloat($.css(b[0], "borderTopWidth")) || 0, | |
d.left += parseFloat($.css(b[0], "borderLeftWidth")) || 0, | |
{ | |
top: c.top - d.top, | |
left: c.left - d.left | |
} | |
} | |
}, | |
offsetParent: function() { | |
return this.map(function() { | |
for (var a = this.offsetParent || P.body; a && !_b.test(a.nodeName) && "static" === $.css(a, "position"); ) | |
a = a.offsetParent; | |
return a || P.body | |
}) | |
} | |
}), | |
$.each({ | |
scrollLeft: "pageXOffset", | |
scrollTop: "pageYOffset" | |
}, function(a, c) { | |
var d = /Y/.test(c); | |
$.fn[a] = function(e) { | |
return $.access(this, function(a, e, f) { | |
var g = M(a); | |
return f === b ? g ? c in g ? g[c] : g.document.documentElement[e] : a[e] : void (g ? g.scrollTo(d ? $(g).scrollLeft() : f, d ? f : $(g).scrollTop()) : a[e] = f) | |
}, a, e, arguments.length, null) | |
} | |
}), | |
$.each({ | |
Height: "height", | |
Width: "width" | |
}, function(a, c) { | |
$.each({ | |
padding: "inner" + a, | |
content: c, | |
"": "outer" + a | |
}, function(d, e) { | |
$.fn[e] = function(e, f) { | |
var g = arguments.length && (d || "boolean" != typeof e) | |
, h = d || (e === !0 || f === !0 ? "margin" : "border"); | |
return $.access(this, function(c, d, e) { | |
var f; | |
return $.isWindow(c) ? c.document.documentElement["client" + a] : 9 === c.nodeType ? (f = c.documentElement, | |
Math.max(c.body["scroll" + a], f["scroll" + a], c.body["offset" + a], f["offset" + a], f["client" + a])) : e === b ? $.css(c, d, e, h) : $.style(c, d, e, h) | |
}, c, g ? e : b, g) | |
} | |
}) | |
}), | |
a.jQuery = a.$ = $, | |
"function" == typeof define && define.amd && define.amd.jQuery && define("jquery", [], function() { | |
return $ | |
}) | |
}(window), | |
function(a, b) { | |
function c(b, c) { | |
var e, f, g, h = b.nodeName.toLowerCase(); | |
return "area" === h ? (e = b.parentNode, | |
f = e.name, | |
!(!b.href || !f || "map" !== e.nodeName.toLowerCase()) && (g = a("img[usemap=#" + f + "]")[0], | |
!!g && d(g))) : (/input|select|textarea|button|object/.test(h) ? !b.disabled : "a" === h ? b.href || c : c) && d(b) | |
} | |
function d(b) { | |
return !a(b).parents().andSelf().filter(function() { | |
return "hidden" === a.css(this, "visibility") || a.expr.filters.hidden(this) | |
}).length | |
} | |
var e = 0 | |
, f = /^ui-id-\d+$/; | |
a.ui = a.ui || {}, | |
a.ui.version || (a.extend(a.ui, { | |
version: "1.9.0", | |
keyCode: { | |
BACKSPACE: 8, | |
COMMA: 188, | |
DELETE: 46, | |
DOWN: 40, | |
END: 35, | |
ENTER: 13, | |
ESCAPE: 27, | |
HOME: 36, | |
LEFT: 37, | |
NUMPAD_ADD: 107, | |
NUMPAD_DECIMAL: 110, | |
NUMPAD_DIVIDE: 111, | |
NUMPAD_ENTER: 108, | |
NUMPAD_MULTIPLY: 106, | |
NUMPAD_SUBTRACT: 109, | |
PAGE_DOWN: 34, | |
PAGE_UP: 33, | |
PERIOD: 190, | |
RIGHT: 39, | |
SPACE: 32, | |
TAB: 9, | |
UP: 38 | |
} | |
}), | |
a.fn.extend({ | |
_focus: a.fn.focus, | |
focus: function(b, c) { | |
return "number" == typeof b ? this.each(function() { | |
var d = this; | |
setTimeout(function() { | |
a(d).focus(), | |
c && c.call(d) | |
}, b) | |
}) : this._focus.apply(this, arguments) | |
}, | |
scrollParent: function() { | |
var b; | |
return b = a.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function() { | |
return /(relative|absolute|fixed)/.test(a.css(this, "position")) && /(auto|scroll)/.test(a.css(this, "overflow") + a.css(this, "overflow-y") + a.css(this, "overflow-x")) | |
}).eq(0) : this.parents().filter(function() { | |
return /(auto|scroll)/.test(a.css(this, "overflow") + a.css(this, "overflow-y") + a.css(this, "overflow-x")) | |
}).eq(0), | |
/fixed/.test(this.css("position")) || !b.length ? a(document) : b | |
}, | |
zIndex: function(c) { | |
if (c !== b) | |
return this.css("zIndex", c); | |
if (this.length) | |
for (var d, e, f = a(this[0]); f.length && f[0] !== document; ) { | |
if (d = f.css("position"), | |
("absolute" === d || "relative" === d || "fixed" === d) && (e = parseInt(f.css("zIndex"), 10), | |
!isNaN(e) && 0 !== e)) | |
return e; | |
f = f.parent() | |
} | |
return 0 | |
}, | |
uniqueId: function() { | |
return this.each(function() { | |
this.id || (this.id = "ui-id-" + ++e) | |
}) | |
}, | |
removeUniqueId: function() { | |
return this.each(function() { | |
f.test(this.id) && a(this).removeAttr("id") | |
}) | |
} | |
}), | |
a("<a>").outerWidth(1).jquery || a.each(["Width", "Height"], function(c, d) { | |
function e(b, c, d, e) { | |
return a.each(f, function() { | |
c -= parseFloat(a.css(b, "padding" + this)) || 0, | |
d && (c -= parseFloat(a.css(b, "border" + this + "Width")) || 0), | |
e && (c -= parseFloat(a.css(b, "margin" + this)) || 0) | |
}), | |
c | |
} | |
var f = "Width" === d ? ["Left", "Right"] : ["Top", "Bottom"] | |
, g = d.toLowerCase() | |
, h = { | |
innerWidth: a.fn.innerWidth, | |
innerHeight: a.fn.innerHeight, | |
outerWidth: a.fn.outerWidth, | |
outerHeight: a.fn.outerHeight | |
}; | |
a.fn["inner" + d] = function(c) { | |
return c === b ? h["inner" + d].call(this) : this.each(function() { | |
a(this).css(g, e(this, c) + "px") | |
}) | |
} | |
, | |
a.fn["outer" + d] = function(b, c) { | |
return "number" != typeof b ? h["outer" + d].call(this, b) : this.each(function() { | |
a(this).css(g, e(this, b, !0, c) + "px") | |
}) | |
} | |
}), | |
a.extend(a.expr[":"], { | |
data: a.expr.createPseudo ? a.expr.createPseudo(function(b) { | |
return function(c) { | |
return !!a.data(c, b) | |
} | |
}) : function(b, c, d) { | |
return !!a.data(b, d[3]) | |
} | |
, | |
focusable: function(b) { | |
return c(b, !isNaN(a.attr(b, "tabindex"))) | |
}, | |
tabbable: function(b) { | |
var d = a.attr(b, "tabindex") | |
, e = isNaN(d); | |
return (e || d >= 0) && c(b, !e) | |
} | |
}), | |
a(function() { | |
var b = document.body | |
, c = b.appendChild(c = document.createElement("div")); | |
c.offsetHeight, | |
a.extend(c.style, { | |
minHeight: "100px", | |
height: "auto", | |
padding: 0, | |
borderWidth: 0 | |
}), | |
a.support.minHeight = 100 === c.offsetHeight, | |
a.support.selectstart = "onselectstart"in c, | |
b.removeChild(c).style.display = "none" | |
}), | |
a.fn.extend({ | |
disableSelection: function() { | |
return this.bind((a.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(a) { | |
a.preventDefault() | |
}) | |
}, | |
enableSelection: function() { | |
return this.unbind(".ui-disableSelection") | |
} | |
}), | |
a.extend(a.ui, { | |
plugin: { | |
add: function(b, c, d) { | |
var e, f = a.ui[b].prototype; | |
for (e in d) | |
f.plugins[e] = f.plugins[e] || [], | |
f.plugins[e].push([c, d[e]]) | |
}, | |
call: function(a, b, c) { | |
var d, e = a.plugins[b]; | |
if (e && a.element[0].parentNode && 11 !== a.element[0].parentNode.nodeType) | |
for (d = 0; d < e.length; d++) | |
a.options[e[d][0]] && e[d][1].apply(a.element, c) | |
} | |
}, | |
contains: a.contains, | |
hasScroll: function(b, c) { | |
if ("hidden" === a(b).css("overflow")) | |
return !1; | |
var d = c && "left" === c ? "scrollLeft" : "scrollTop" | |
, e = !1; | |
return b[d] > 0 || (b[d] = 1, | |
e = b[d] > 0, | |
b[d] = 0, | |
e) | |
}, | |
isOverAxis: function(a, b, c) { | |
return a > b && a < b + c | |
}, | |
isOver: function(b, c, d, e, f, g) { | |
return a.ui.isOverAxis(b, d, f) && a.ui.isOverAxis(c, e, g) | |
} | |
})) | |
}(jQuery), | |
function(a, b) { | |
var c = 0 | |
, d = Array.prototype.slice | |
, e = a.cleanData; | |
a.cleanData = function(b) { | |
for (var c, d = 0; null != (c = b[d]); d++) | |
try { | |
a(c).triggerHandler("remove") | |
} catch (f) {} | |
e(b) | |
} | |
, | |
a.widget = function(b, c, d) { | |
var e, f, g, h, i = b.split(".")[0]; | |
b = b.split(".")[1], | |
e = i + "-" + b, | |
d || (d = c, | |
c = a.Widget), | |
a.expr[":"][e.toLowerCase()] = function(b) { | |
return !!a.data(b, e) | |
} | |
, | |
a[i] = a[i] || {}, | |
f = a[i][b], | |
g = a[i][b] = function(a, b) { | |
return this._createWidget ? void (arguments.length && this._createWidget(a, b)) : new g(a,b) | |
} | |
, | |
a.extend(g, f, { | |
version: d.version, | |
_proto: a.extend({}, d), | |
_childConstructors: [] | |
}), | |
h = new c, | |
h.options = a.widget.extend({}, h.options), | |
a.each(d, function(b, e) { | |
a.isFunction(e) && (d[b] = function() { | |
var a = function() { | |
return c.prototype[b].apply(this, arguments) | |
} | |
, d = function(a) { | |
return c.prototype[b].apply(this, a) | |
}; | |
return function() { | |
var b, c = this._super, f = this._superApply; | |
return this._super = a, | |
this._superApply = d, | |
b = e.apply(this, arguments), | |
this._super = c, | |
this._superApply = f, | |
b | |
} | |
}()) | |
}), | |
g.prototype = a.widget.extend(h, { | |
widgetEventPrefix: b | |
}, d, { | |
constructor: g, | |
namespace: i, | |
widgetName: b, | |
widgetBaseClass: e, | |
widgetFullName: e | |
}), | |
f ? (a.each(f._childConstructors, function(b, c) { | |
var d = c.prototype; | |
a.widget(d.namespace + "." + d.widgetName, g, c._proto) | |
}), | |
delete f._childConstructors) : c._childConstructors.push(g), | |
a.widget.bridge(b, g) | |
} | |
, | |
a.widget.extend = function(c) { | |
for (var e, f, g = d.call(arguments, 1), h = 0, i = g.length; h < i; h++) | |
for (e in g[h]) | |
f = g[h][e], | |
g[h].hasOwnProperty(e) && f !== b && (c[e] = a.isPlainObject(f) ? a.widget.extend({}, c[e], f) : f); | |
return c | |
} | |
, | |
a.widget.bridge = function(c, e) { | |
var f = e.prototype.widgetFullName; | |
a.fn[c] = function(g) { | |
var h = "string" == typeof g | |
, i = d.call(arguments, 1) | |
, j = this; | |
return g = !h && i.length ? a.widget.extend.apply(null, [g].concat(i)) : g, | |
h ? this.each(function() { | |
var d, e = a.data(this, f); | |
return e ? a.isFunction(e[g]) && "_" !== g.charAt(0) ? (d = e[g].apply(e, i), | |
d !== e && d !== b ? (j = d && d.jquery ? j.pushStack(d.get()) : d, | |
!1) : void 0) : a.error("no such method '" + g + "' for " + c + " widget instance") : a.error("cannot call methods on " + c + " prior to initialization; attempted to call method '" + g + "'") | |
}) : this.each(function() { | |
var b = a.data(this, f); | |
b ? b.option(g || {})._init() : new e(g,this) | |
}), | |
j | |
} | |
} | |
, | |
a.Widget = function(a, b) {} | |
, | |
a.Widget._childConstructors = [], | |
a.Widget.prototype = { | |
widgetName: "widget", | |
widgetEventPrefix: "", | |
defaultElement: "<div>", | |
options: { | |
disabled: !1, | |
create: null | |
}, | |
_createWidget: function(b, d) { | |
d = a(d || this.defaultElement || this)[0], | |
this.element = a(d), | |
this.uuid = c++, | |
this.eventNamespace = "." + this.widgetName + this.uuid, | |
this.options = a.widget.extend({}, this.options, this._getCreateOptions(), b), | |
this.bindings = a(), | |
this.hoverable = a(), | |
this.focusable = a(), | |
d !== this && (a.data(d, this.widgetName, this), | |
a.data(d, this.widgetFullName, this), | |
this._on({ | |
remove: "destroy" | |
}), | |
this.document = a(d.style ? d.ownerDocument : d.document || d), | |
this.window = a(this.document[0].defaultView || this.document[0].parentWindow)), | |
this._create(), | |
this._trigger("create", null, this._getCreateEventData()), | |
this._init() | |
}, | |
_getCreateOptions: a.noop, | |
_getCreateEventData: a.noop, | |
_create: a.noop, | |
_init: a.noop, | |
destroy: function() { | |
this._destroy(), | |
this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(a.camelCase(this.widgetFullName)), | |
this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled"), | |
this.bindings.unbind(this.eventNamespace), | |
this.hoverable.removeClass("ui-state-hover"), | |
this.focusable.removeClass("ui-state-focus") | |
}, | |
_destroy: a.noop, | |
widget: function() { | |
return this.element | |
}, | |
option: function(c, d) { | |
var e, f, g, h = c; | |
if (0 === arguments.length) | |
return a.widget.extend({}, this.options); | |
if ("string" == typeof c) | |
if (h = {}, | |
e = c.split("."), | |
c = e.shift(), | |
e.length) { | |
for (f = h[c] = a.widget.extend({}, this.options[c]), | |
g = 0; g < e.length - 1; g++) | |
f[e[g]] = f[e[g]] || {}, | |
f = f[e[g]]; | |
if (c = e.pop(), | |
d === b) | |
return f[c] === b ? null : f[c]; | |
f[c] = d | |
} else { | |
if (d === b) | |
return this.options[c] === b ? null : this.options[c]; | |
h[c] = d | |
} | |
return this._setOptions(h), | |
this | |
}, | |
_setOptions: function(a) { | |
var b; | |
for (b in a) | |
this._setOption(b, a[b]); | |
return this | |
}, | |
_setOption: function(a, b) { | |
return this.options[a] = b, | |
"disabled" === a && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!b).attr("aria-disabled", b), | |
this.hoverable.removeClass("ui-state-hover"), | |
this.focusable.removeClass("ui-state-focus")), | |
this | |
}, | |
enable: function() { | |
return this._setOption("disabled", !1) | |
}, | |
disable: function() { | |
return this._setOption("disabled", !0) | |
}, | |
_on: function(b, c) { | |
c ? (b = a(b), | |
this.bindings = this.bindings.add(b)) : (c = b, | |
b = this.element); | |
var d = this; | |
a.each(c, function(c, e) { | |
function f() { | |
if (d.options.disabled !== !0 && !a(this).hasClass("ui-state-disabled")) | |
return ("string" == typeof e ? d[e] : e).apply(d, arguments) | |
} | |
"string" != typeof e && (f.guid = e.guid = e.guid || f.guid || a.guid++); | |
var g = c.match(/^(\w+)\s*(.*)$/) | |
, h = g[1] + d.eventNamespace | |
, i = g[2]; | |
i ? d.widget().delegate(i, h, f) : b.bind(h, f) | |
}) | |
}, | |
_off: function(a, b) { | |
b = (b || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, | |
a.unbind(b).undelegate(b) | |
}, | |
_delay: function(a, b) { | |
function c() { | |
return ("string" == typeof a ? d[a] : a).apply(d, arguments) | |
} | |
var d = this; | |
return setTimeout(c, b || 0) | |
}, | |
_hoverable: function(b) { | |
this.hoverable = this.hoverable.add(b), | |
this._on(b, { | |
mouseenter: function(b) { | |
a(b.currentTarget).addClass("ui-state-hover") | |
}, | |
mouseleave: function(b) { | |
a(b.currentTarget).removeClass("ui-state-hover") | |
} | |
}) | |
}, | |
_focusable: function(b) { | |
this.focusable = this.focusable.add(b), | |
this._on(b, { | |
focusin: function(b) { | |
a(b.currentTarget).addClass("ui-state-focus") | |
}, | |
focusout: function(b) { | |
a(b.currentTarget).removeClass("ui-state-focus") | |
} | |
}) | |
}, | |
_trigger: function(b, c, d) { | |
var e, f, g = this.options[b]; | |
if (d = d || {}, | |
c = a.Event(c), | |
c.type = (b === this.widgetEventPrefix ? b : this.widgetEventPrefix + b).toLowerCase(), | |
c.target = this.element[0], | |
f = c.originalEvent) | |
for (e in f) | |
e in c || (c[e] = f[e]); | |
return this.element.trigger(c, d), | |
!(a.isFunction(g) && g.apply(this.element[0], [c].concat(d)) === !1 || c.isDefaultPrevented()) | |
} | |
}, | |
a.each({ | |
show: "fadeIn", | |
hide: "fadeOut" | |
}, function(b, c) { | |
a.Widget.prototype["_" + b] = function(d, e, f) { | |
"string" == typeof e && (e = { | |
effect: e | |
}); | |
var g, h = e ? e === !0 || "number" == typeof e ? c : e.effect || c : b; | |
e = e || {}, | |
"number" == typeof e && (e = { | |
duration: e | |
}), | |
g = !a.isEmptyObject(e), | |
e.complete = f, | |
e.delay && d.delay(e.delay), | |
g && a.effects && (a.effects.effect[h] || a.uiBackCompat !== !1 && a.effects[h]) ? d[b](e) : h !== b && d[h] ? d[h](e.duration, e.easing, f) : d.queue(function(c) { | |
a(this)[b](), | |
f && f.call(d[0]), | |
c() | |
}) | |
} | |
}), | |
a.uiBackCompat !== !1 && (a.Widget.prototype._getCreateOptions = function() { | |
return a.metadata && a.metadata.get(this.element[0])[this.widgetName] | |
} | |
) | |
}(jQuery), | |
function(a, b) { | |
var c = !1; | |
a(document).mouseup(function(a) { | |
c = !1 | |
}), | |
a.widget("ui.mouse", { | |
version: "1.9.0", | |
options: { | |
cancel: "input,textarea,button,select,option", | |
distance: 1, | |
delay: 0 | |
}, | |
_mouseInit: function() { | |
var b = this; | |
this.element.bind("mousedown." + this.widgetName, function(a) { | |
return b._mouseDown(a) | |
}).bind("click." + this.widgetName, function(c) { | |
if (!0 === a.data(c.target, b.widgetName + ".preventClickEvent")) | |
return a.removeData(c.target, b.widgetName + ".preventClickEvent"), | |
c.stopImmediatePropagation(), | |
!1 | |
}), | |
this.started = !1 | |
}, | |
_mouseDestroy: function() { | |
this.element.unbind("." + this.widgetName), | |
this._mouseMoveDelegate && a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate) | |
}, | |
_mouseDown: function(b) { | |
if (!c) { | |
this._mouseStarted && this._mouseUp(b), | |
this._mouseDownEvent = b; | |
var d = this | |
, e = 1 === b.which | |
, f = !("string" != typeof this.options.cancel || !b.target.nodeName) && a(b.target).closest(this.options.cancel).length; | |
return !(e && !f && this._mouseCapture(b)) || (this.mouseDelayMet = !this.options.delay, | |
this.mouseDelayMet || (this._mouseDelaya6K = setTimeout(function() { | |
d.mouseDelayMet = !0 | |
}, this.options.delay)), | |
this._mouseDistanceMet(b) && this._mouseDelayMet(b) && (this._mouseStarted = this._mouseStart(b) !== !1, | |
!this._mouseStarted) ? (b.preventDefault(), | |
!0) : (!0 === a.data(b.target, this.widgetName + ".preventClickEvent") && a.removeData(b.target, this.widgetName + ".preventClickEvent"), | |
this._mouseMoveDelegate = function(a) { | |
return d._mouseMove(a) | |
} | |
, | |
this._mouseUpDelegate = function(a) { | |
return d._mouseUp(a) | |
} | |
, | |
a(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), | |
b.preventDefault(), | |
c = !0, | |
!0)) | |
} | |
}, | |
_mouseMove: function(b) { | |
return !a.browser.msie || document.documentMode >= 9 || b.button ? this._mouseStarted ? (this._mouseDrag(b), | |
b.preventDefault()) : (this._mouseDistanceMet(b) && this._mouseDelayMet(b) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, b) !== !1, | |
this._mouseStarted ? this._mouseDrag(b) : this._mouseUp(b)), | |
!this._mouseStarted) : this._mouseUp(b) | |
}, | |
_mouseUp: function(b) { | |
return a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), | |
this._mouseStarted && (this._mouseStarted = !1, | |
b.target === this._mouseDownEvent.target && a.data(b.target, this.widgetName + ".preventClickEvent", !0), | |
this._mouseStop(b)), | |
!1 | |
}, | |
_mouseDistanceMet: function(a) { | |
return Math.max(Math.abs(this._mouseDownEvent.pageX - a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance | |
}, | |
_mouseDelayMet: function(a) { | |
return this.mouseDelayMet | |
}, | |
_mouseStart: function(a) {}, | |
_mouseDrag: function(a) {}, | |
_mouseStop: function(a) {}, | |
_mouseCapture: function(a) { | |
return !0 | |
} | |
}) | |
}(jQuery), | |
function(a, b) { | |
function c(a, b, c) { | |
return [parseInt(a[0], 10) * (m.test(a[0]) ? b / 100 : 1), parseInt(a[1], 10) * (m.test(a[1]) ? c / 100 : 1)] | |
} | |
function d(b, c) { | |
return parseInt(a.css(b, c), 10) || 0 | |
} | |
a.ui = a.ui || {}; | |
var e, f = Math.max, g = Math.abs, h = Math.round, i = /left|center|right/, j = /top|center|bottom/, k = /[\+\-]\d+%?/, l = /^\w+/, m = /%$/, n = a.fn.position; | |
a.position = { | |
scrollbarWidth: function() { | |
if (e !== b) | |
return e; | |
var c, d, f = a("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), g = f.children()[0]; | |
return a("body").append(f), | |
c = g.offsetWidth, | |
f.css("overflow", "scroll"), | |
d = g.offsetWidth, | |
c === d && (d = f[0].clientWidth), | |
f.remove(), | |
e = c - d | |
}, | |
getScrollInfo: function(b) { | |
var c = b.isWindow ? "" : b.element.css("overflow-x") | |
, d = b.isWindow ? "" : b.element.css("overflow-y") | |
, e = "scroll" === c || "auto" === c && b.width < b.element[0].scrollWidth | |
, f = "scroll" === d || "auto" === d && b.height < b.element[0].scrollHeight; | |
return { | |
width: e ? a.position.scrollbarWidth() : 0, | |
height: f ? a.position.scrollbarWidth() : 0 | |
} | |
}, | |
getWithinInfo: function(b) { | |
var c = a(b || window) | |
, d = a.isWindow(c[0]); | |
return { | |
element: c, | |
isWindow: d, | |
offset: c.offset() || { | |
left: 0, | |
top: 0 | |
}, | |
scrollLeft: c.scrollLeft(), | |
scrollTop: c.scrollTop(), | |
width: d ? c.width() : c.outerWidth(), | |
height: d ? c.height() : c.outerHeight() | |
} | |
} | |
}, | |
a.fn.position = function(b) { | |
if (!b || !b.of) | |
return n.apply(this, arguments); | |
b = a.extend({}, b); | |
var e, m, o, p, q, r = a(b.of), s = a.position.getWithinInfo(b.within), t = a.position.getScrollInfo(s), u = r[0], v = (b.collision || "flip").split(" "), w = {}; | |
return 9 === u.nodeType ? (m = r.width(), | |
o = r.height(), | |
p = { | |
top: 0, | |
left: 0 | |
}) : a.isWindow(u) ? (m = r.width(), | |
o = r.height(), | |
p = { | |
top: r.scrollTop(), | |
left: r.scrollLeft() | |
}) : u.preventDefault ? (b.at = "left top", | |
m = o = 0, | |
p = { | |
top: u.pageY, | |
left: u.pageX | |
}) : (m = r.outerWidth(), | |
o = r.outerHeight(), | |
p = r.offset()), | |
q = a.extend({}, p), | |
a.each(["my", "at"], function() { | |
var a, c, d = (b[this] || "").split(" "); | |
1 === d.length && (d = i.test(d[0]) ? d.concat(["center"]) : j.test(d[0]) ? ["center"].concat(d) : ["center", "center"]), | |
d[0] = i.test(d[0]) ? d[0] : "center", | |
d[1] = j.test(d[1]) ? d[1] : "center", | |
a = k.exec(d[0]), | |
c = k.exec(d[1]), | |
w[this] = [a ? a[0] : 0, c ? c[0] : 0], | |
b[this] = [l.exec(d[0])[0], l.exec(d[1])[0]] | |
}), | |
1 === v.length && (v[1] = v[0]), | |
"right" === b.at[0] ? q.left += m : "center" === b.at[0] && (q.left += m / 2), | |
"bottom" === b.at[1] ? q.top += o : "center" === b.at[1] && (q.top += o / 2), | |
e = c(w.at, m, o), | |
q.left += e[0], | |
q.top += e[1], | |
this.each(function() { | |
var i, j, k = a(this), l = k.outerWidth(), n = k.outerHeight(), u = d(this, "marginLeft"), x = d(this, "marginTop"), y = l + u + d(this, "marginRight") + t.width, z = n + x + d(this, "marginBottom") + t.height, A = a.extend({}, q), B = c(w.my, k.outerWidth(), k.outerHeight()); | |
"right" === b.my[0] ? A.left -= l : "center" === b.my[0] && (A.left -= l / 2), | |
"bottom" === b.my[1] ? A.top -= n : "center" === b.my[1] && (A.top -= n / 2), | |
A.left += B[0], | |
A.top += B[1], | |
a.support.offsetFractions || (A.left = h(A.left), | |
A.top = h(A.top)), | |
i = { | |
marginLeft: u, | |
marginTop: x | |
}, | |
a.each(["left", "top"], function(c, d) { | |
a.ui.position[v[c]] && a.ui.position[v[c]][d](A, { | |
targetWidth: m, | |
targetHeight: o, | |
elemWidth: l, | |
elemHeight: n, | |
collisionPosition: i, | |
collisionWidth: y, | |
collisionHeight: z, | |
offset: [e[0] + B[0], e[1] + B[1]], | |
my: b.my, | |
at: b.at, | |
within: s, | |
elem: k | |
}) | |
}), | |
a.fn.bgiframe && k.bgiframe(), | |
b.using && (j = function(a) { | |
var c = p.left - A.left | |
, d = c + m - l | |
, e = p.top - A.top | |
, h = e + o - n | |
, i = { | |
target: { | |
element: r, | |
left: p.left, | |
top: p.top, | |
width: m, | |
height: o | |
}, | |
element: { | |
element: k, | |
left: A.left, | |
top: A.top, | |
width: l, | |
height: n | |
}, | |
horizontal: d < 0 ? "left" : c > 0 ? "right" : "center", | |
vertical: h < 0 ? "top" : e > 0 ? "bottom" : "middle" | |
}; | |
m < l && g(c + d) < m && (i.horizontal = "center"), | |
o < n && g(e + h) < o && (i.vertical = "middle"), | |
f(g(c), g(d)) > f(g(e), g(h)) ? i.important = "horizontal" : i.important = "vertical", | |
b.using.call(this, a, i) | |
} | |
), | |
k.offset(a.extend(A, { | |
using: j | |
})) | |
}) | |
} | |
, | |
a.ui.position = { | |
fit: { | |
left: function(a, b) { | |
var c, d = b.within, e = d.isWindow ? d.scrollLeft : d.offset.left, g = d.width, h = a.left - b.collisionPosition.marginLeft, i = e - h, j = h + b.collisionWidth - g - e; | |
b.collisionWidth > g ? i > 0 && j <= 0 ? (c = a.left + i + b.collisionWidth - g - e, | |
a.left += i - c) : j > 0 && i <= 0 ? a.left = e : i > j ? a.left = e + g - b.collisionWidth : a.left = e : i > 0 ? a.left += i : j > 0 ? a.left -= j : a.left = f(a.left - h, a.left) | |
}, | |
top: function(a, b) { | |
var c, d = b.within, e = d.isWindow ? d.scrollTop : d.offset.top, g = b.within.height, h = a.top - b.collisionPosition.marginTop, i = e - h, j = h + b.collisionHeight - g - e; | |
b.collisionHeight > g ? i > 0 && j <= 0 ? (c = a.top + i + b.collisionHeight - g - e, | |
a.top += i - c) : j > 0 && i <= 0 ? a.top = e : i > j ? a.top = e + g - b.collisionHeight : a.top = e : i > 0 ? a.top += i : j > 0 ? a.top -= j : a.top = f(a.top - h, a.top) | |
} | |
}, | |
flip: { | |
left: function(a, b) { | |
var c, d, e = b.within, f = e.offset.left + e.scrollLeft, h = e.width, i = e.isWindow ? e.scrollLeft : e.offset.left, j = a.left - b.collisionPosition.marginLeft, k = j - i, l = j + b.collisionWidth - h - i, m = "left" === b.my[0] ? -b.elemWidth : "right" === b.my[0] ? b.elemWidth : 0, n = "left" === b.at[0] ? b.targetWidth : "right" === b.at[0] ? -b.targetWidth : 0, o = -2 * b.offset[0]; | |
k < 0 ? (c = a.left + m + n + o + b.collisionWidth - h - f, | |
(c < 0 || c < g(k)) && (a.left += m + n + o)) : l > 0 && (d = a.left - b.collisionPosition.marginLeft + m + n + o - i, | |
(d > 0 || g(d) < l) && (a.left += m + n + o)) | |
}, | |
top: function(a, b) { | |
var c, d, e = b.within, f = e.offset.top + e.scrollTop, h = e.height, i = e.isWindow ? e.scrollTop : e.offset.top, j = a.top - b.collisionPosition.marginTop, k = j - i, l = j + b.collisionHeight - h - i, m = "top" === b.my[1], n = m ? -b.elemHeight : "bottom" === b.my[1] ? b.elemHeight : 0, o = "top" === b.at[1] ? b.targetHeight : "bottom" === b.at[1] ? -b.targetHeight : 0, p = -2 * b.offset[1]; | |
k < 0 ? (d = a.top + n + o + p + b.collisionHeight - h - f, | |
a.top + n + o + p > k && (d < 0 || d < g(k)) && (a.top += n + o + p)) : l > 0 && (c = a.top - b.collisionPosition.marginTop + n + o + p - i, | |
a.top + n + o + p > l && (c > 0 || g(c) < l) && (a.top += n + o + p)) | |
} | |
}, | |
flipfit: { | |
left: function() { | |
a.ui.position.flip.left.apply(this, arguments), | |
a.ui.position.fit.left.apply(this, arguments) | |
}, | |
top: function() { | |
a.ui.position.flip.top.apply(this, arguments), | |
a.ui.position.fit.top.apply(this, arguments) | |
} | |
} | |
}, | |
function() { | |
var b, c, d, e, f, g = document.getElementsByTagName("body")[0], h = document.createElement("div"); | |
b = document.createElement(g ? "div" : "body"), | |
d = { | |
visibility: "hidden", | |
width: 0, | |
height: 0, | |
border: 0, | |
margin: 0, | |
background: "none" | |
}, | |
g && a.extend(d, { | |
position: "absolute", | |
left: "-1000px", | |
top: "-1000px" | |
}); | |
for (f in d) | |
b.style[f] = d[f]; | |
b.appendChild(h), | |
c = g || document.documentElement, | |
c.insertBefore(b, c.firstChild), | |
h.style.cssText = "position: absolute; left: 10.7432222px;", | |
e = a(h).offset().left, | |
a.support.offsetFractions = e > 10 && e < 11, | |
b.innerHTML = "", | |
c.removeChild(b) | |
}(), | |
a.uiBackCompat !== !1 && !function(a) { | |
var c = a.fn.position; | |
a.fn.position = function(d) { | |
if (!d || !d.offset) | |
return c.call(this, d); | |
var e = d.offset.split(" ") | |
, f = d.at.split(" "); | |
return 1 === e.length && (e[1] = e[0]), | |
/^\d/.test(e[0]) && (e[0] = "+" + e[0]), | |
/^\d/.test(e[1]) && (e[1] = "+" + e[1]), | |
1 === f.length && (/left|center|right/.test(f[0]) ? f[1] = "center" : (f[1] = f[0], | |
f[0] = "center")), | |
c.call(this, a.extend(d, { | |
at: f[0] + e[0] + " " + f[1] + e[1], | |
offset: b | |
})) | |
} | |
}(jQuery) | |
}(jQuery), | |
function(a, b) { | |
var c = 0 | |
, d = {} | |
, e = {}; | |
d.height = d.paddingTop = d.paddingBottom = d.borderTopWidth = d.borderBottomWidth = "hide", | |
e.height = e.paddingTop = e.paddingBottom = e.borderTopWidth = e.borderBottomWidth = "show", | |
a.widget("ui.accordion", { | |
version: "1.9.0", | |
options: { | |
active: 0, | |
animate: {}, | |
collapsible: !1, | |
event: "click", | |
header: "> li > :first-child,> :not(li):even", | |
heightStyle: "auto", | |
icons: { | |
activeHeader: "ui-icon-triangle-1-s", | |
header: "ui-icon-triangle-1-e" | |
}, | |
activate: null, | |
beforeActivate: null | |
}, | |
_create: function() { | |
var b = this.accordionId = "ui-accordion-" + (this.element.attr("id") || ++c) | |
, d = this.options; | |
this.prevShow = this.prevHide = a(), | |
this.element.addClass("ui-accordion ui-widget ui-helper-reset"), | |
this.headers = this.element.find(d.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"), | |
this._hoverable(this.headers), | |
this._focusable(this.headers), | |
this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide(), | |
d.collapsible || d.active !== !1 || (d.active = 0), | |
d.active < 0 && (d.active += this.headers.length), | |
this.active = this._findActive(d.active).addClass("ui-accordion-header-active ui-state-active").toggleClass("ui-corner-all ui-corner-top"), | |
this.active.next().addClass("ui-accordion-content-active").show(), | |
this._createIcons(), | |
this.originalHeight = this.element[0].style.height, | |
this.refresh(), | |
this.element.attr("role", "tablist"), | |
this.headers.attr("role", "tab").each(function(c) { | |
var d = a(this) | |
, e = d.attr("id") | |
, f = d.next() | |
, g = f.attr("id"); | |
e || (e = b + "-header-" + c, | |
d.attr("id", e)), | |
g || (g = b + "-panel-" + c, | |
f.attr("id", g)), | |
d.attr("aria-controls", g), | |
f.attr("aria-labelledby", e) | |
}).next().attr("role", "tabpanel"), | |
this.headers.not(this.active).attr({ | |
"aria-selected": "false", | |
tabIndex: -1 | |
}).next().attr({ | |
"aria-expanded": "false", | |
"aria-hidden": "true" | |
}).hide(), | |
this.active.length ? this.active.attr({ | |
"aria-selected": "true", | |
tabIndex: 0 | |
}).next().attr({ | |
"aria-expanded": "true", | |
"aria-hidden": "false" | |
}) : this.headers.eq(0).attr("tabIndex", 0), | |
this._on(this.headers, { | |
keydown: "_keydown" | |
}), | |
this._on(this.headers.next(), { | |
keydown: "_panelKeyDown" | |
}), | |
this._setupEvents(d.event) | |
}, | |
_getCreateEventData: function() { | |
return { | |
header: this.active, | |
content: this.active.length ? this.active.next() : a() | |
} | |
}, | |
_createIcons: function() { | |
var b = this.options.icons; | |
b && (a("<span>").addClass("ui-accordion-header-icon ui-icon " + b.header).prependTo(this.headers), | |
this.active.children(".ui-accordion-header-icon").removeClass(b.header).addClass(b.activeHeader), | |
this.headers.addClass("ui-accordion-icons")) | |
}, | |
_destroyIcons: function() { | |
this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove() | |
}, | |
_destroy: function() { | |
var a; | |
this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"), | |
this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function() { | |
/^ui-accordion/.test(this.id) && this.removeAttribute("id") | |
}), | |
this._destroyIcons(), | |
a = this.headers.next().css("display", "").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function() { | |
/^ui-accordion/.test(this.id) && this.removeAttribute("id") | |
}), | |
"content" !== this.options.heightStyle && (this.element.css("height", this.originalHeight), | |
a.css("height", "")) | |
}, | |
_setOption: function(a, b) { | |
return "active" === a ? void this._activate(b) : ("event" === a && (this.options.event && this._off(this.headers, this.options.event), | |
this._setupEvents(b)), | |
this._super(a, b), | |
"collapsible" !== a || b || this.options.active !== !1 || this._activate(0), | |
"icons" === a && (this._destroyIcons(), | |
b && this._createIcons()), | |
void ("disabled" === a && this.headers.add(this.headers.next()).toggleClass("ui-state-disabled", !!b))) | |
}, | |
_keydown: function(b) { | |
if (!b.altKey && !b.ctrlKey) { | |
var c = a.ui.keyCode | |
, d = this.headers.length | |
, e = this.headers.index(b.target) | |
, f = !1; | |
switch (b.keyCode) { | |
case c.RIGHT: | |
case c.DOWN: | |
f = this.headers[(e + 1) % d]; | |
break; | |
case c.LEFT: | |
case c.UP: | |
f = this.headers[(e - 1 + d) % d]; | |
break; | |
case c.SPACE: | |
case c.ENTER: | |
this._eventHandler(b); | |
break; | |
case c.HOME: | |
f = this.headers[0]; | |
break; | |
case c.END: | |
f = this.headers[d - 1] | |
} | |
f && (a(b.target).attr("tabIndex", -1), | |
a(f).attr("tabIndex", 0), | |
f.focus(), | |
b.preventDefault()) | |
} | |
}, | |
_panelKeyDown: function(b) { | |
b.keyCode === a.ui.keyCode.UP && b.ctrlKey && a(b.currentTarget).prev().focus() | |
}, | |
refresh: function() { | |
var b, c, d = this.options.heightStyle, e = this.element.parent(); | |
this.element.css("height", this.originalHeight), | |
"fill" === d ? (a.support.minHeight || (c = e.css("overflow"), | |
e.css("overflow", "hidden")), | |
b = e.height(), | |
this.element.siblings(":visible").each(function() { | |
var c = a(this) | |
, d = c.css("position"); | |
"absolute" !== d && "fixed" !== d && (b -= c.outerHeight(!0)) | |
}), | |
c && e.css("overflow", c), | |
this.headers.each(function() { | |
b -= a(this).outerHeight(!0) | |
}), | |
this.headers.next().each(function() { | |
a(this).height(Math.max(0, b - a(this).innerHeight() + a(this).height())) | |
}).css("overflow", "auto")) : "auto" === d && (b = 0, | |
this.headers.next().each(function() { | |
b = Math.max(b, a(this).height("").height()) | |
}).height(b)), | |
"content" !== d && this.element.height(this.element.height()) | |
}, | |
_activate: function(b) { | |
var c = this._findActive(b)[0]; | |
c !== this.active[0] && (c = c || this.active[0], | |
this._eventHandler({ | |
target: c, | |
currentTarget: c, | |
preventDefault: a.noop | |
})) | |
}, | |
_findActive: function(b) { | |
return "number" == typeof b ? this.headers.eq(b) : a() | |
}, | |
_setupEvents: function(b) { | |
var c = {}; | |
b && (a.each(b.split(" "), function(a, b) { | |
c[b] = "_eventHandler" | |
}), | |
this._on(this.headers, c)) | |
}, | |
_eventHandler: function(b) { | |
var c = this.options | |
, d = this.active | |
, e = a(b.currentTarget) | |
, f = e[0] === d[0] | |
, g = f && c.collapsible | |
, h = g ? a() : e.next() | |
, i = d.next() | |
, j = { | |
oldHeader: d, | |
oldPanel: i, | |
newHeader: g ? a() : e, | |
newPanel: h | |
}; | |
b.preventDefault(), | |
f && !c.collapsible || this._trigger("beforeActivate", b, j) === !1 || (c.active = !g && this.headers.index(e), | |
this.active = f ? a() : e, | |
this._toggle(j), | |
d.removeClass("ui-accordion-header-active ui-state-active"), | |
c.icons && d.children(".ui-accordion-header-icon").removeClass(c.icons.activeHeader).addClass(c.icons.header), | |
f || (e.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"), | |
c.icons && e.children(".ui-accordion-header-icon").removeClass(c.icons.header).addClass(c.icons.activeHeader), | |
e.next().addClass("ui-accordion-content-active"))) | |
}, | |
_toggle: function(b) { | |
var c = b.newPanel | |
, d = this.prevShow.length ? this.prevShow : b.oldPanel; | |
this.prevShow.add(this.prevHide).stop(!0, !0), | |
this.prevShow = c, | |
this.prevHide = d, | |
this.options.animate ? this._animate(c, d, b) : (d.hide(), | |
c.show(), | |
this._toggleComplete(b)), | |
d.attr({ | |
"aria-expanded": "false", | |
"aria-hidden": "true" | |
}), | |
d.prev().attr("aria-selected", "false"), | |
c.length && d.length ? d.prev().attr("tabIndex", -1) : c.length && this.headers.filter(function() { | |
return 0 === a(this).attr("tabIndex") | |
}).attr("tabIndex", -1), | |
c.attr({ | |
"aria-expanded": "true", | |
"aria-hidden": "false" | |
}).prev().attr({ | |
"aria-selected": "true", | |
tabIndex: 0 | |
}) | |
}, | |
_animate: function(a, b, c) { | |
var f, g, h, i = this, j = 0, k = a.length && (!b.length || a.index() < b.index()), l = this.options.animate || {}, m = k && l.down || l, n = function() { | |
i._toggleComplete(c) | |
}; | |
return "number" == typeof m && (h = m), | |
"string" == typeof m && (g = m), | |
g = g || m.easing || l.easing, | |
h = h || m.duration || l.duration, | |
b.length ? a.length ? (f = a.show().outerHeight(), | |
b.animate(d, { | |
duration: h, | |
easing: g, | |
step: function(a, b) { | |
b.now = Math.round(a) | |
} | |
}), | |
void a.hide().animate(e, { | |
duration: h, | |
easing: g, | |
complete: n, | |
step: function(a, c) { | |
c.now = Math.round(a), | |
"height" !== c.prop ? j += c.now : "content" !== i.options.heightStyle && (c.now = Math.round(f - b.outerHeight() - j), | |
j = 0) | |
} | |
})) : b.animate(d, h, g, n) : a.animate(e, h, g, n) | |
}, | |
_toggleComplete: function(a) { | |
var b = a.oldPanel; | |
b.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"), | |
b.length && (b.parent()[0].className = b.parent()[0].className), | |
this._trigger("activate", null, a) | |
} | |
}), | |
a.uiBackCompat !== !1 && (!function(a, b) { | |
a.extend(b.options, { | |
navigation: !1, | |
navigationFilter: function() { | |
return this.href.toLowerCase() === location.href.toLowerCase() | |
} | |
}); | |
var c = b._create; | |
b._create = function() { | |
if (this.options.navigation) { | |
var b = this | |
, d = this.element.find(this.options.header) | |
, e = d.next() | |
, f = d.add(e).find("a").filter(this.options.navigationFilter)[0]; | |
f && d.add(e).each(function(c) { | |
if (a.contains(this, f)) | |
return b.options.active = Math.floor(c / 2), | |
!1 | |
}) | |
} | |
c.call(this) | |
} | |
}(jQuery, jQuery.ui.accordion.prototype), | |
function(a, b) { | |
a.extend(b.options, { | |
heightStyle: null, | |
autoHeight: !0, | |
clearStyle: !1, | |
fillSpace: !1 | |
}); | |
var c = b._create | |
, d = b._setOption; | |
a.extend(b, { | |
_create: function() { | |
this.options.heightStyle = this.options.heightStyle || this._mergeHeightStyle(), | |
c.call(this) | |
}, | |
_setOption: function(a, b) { | |
"autoHeight" !== a && "clearStyle" !== a && "fillSpace" !== a || (this.options.heightStyle = this._mergeHeightStyle()), | |
d.apply(this, arguments) | |
}, | |
_mergeHeightStyle: function() { | |
var a = this.options; | |
return a.fillSpace ? "fill" : a.clearStyle ? "content" : a.autoHeight ? "auto" : void 0 | |
} | |
}) | |
}(jQuery, jQuery.ui.accordion.prototype), | |
function(a, b) { | |
a.extend(b.options.icons, { | |
activeHeader: null, | |
headerSelected: "ui-icon-triangle-1-s" | |
}); | |
var c = b._createIcons; | |
b._createIcons = function() { | |
this.options.icons && (this.options.icons.activeHeader = this.options.icons.activeHeader || this.options.icons.headerSelected), | |
c.call(this) | |
} | |
}(jQuery, jQuery.ui.accordion.prototype), | |
function(a, b) { | |
b.activate = b._activate; | |
var c = b._findActive; | |
b._findActive = function(a) { | |
return a === -1 && (a = !1), | |
a && "number" != typeof a && (a = this.headers.index(this.headers.filter(a)), | |
a === -1 && (a = !1)), | |
c.call(this, a) | |
} | |
}(jQuery, jQuery.ui.accordion.prototype), | |
jQuery.ui.accordion.prototype.resize = jQuery.ui.accordion.prototype.refresh, | |
function(a, b) { | |
a.extend(b.options, { | |
change: null, | |
changestart: null | |
}); | |
var c = b._trigger; | |
b._trigger = function(a, b, d) { | |
var e = c.apply(this, arguments); | |
return !!e && ("beforeActivate" === a ? e = c.call(this, "changestart", b, { | |
oldHeader: d.oldHeader, | |
oldContent: d.oldPanel, | |
newHeader: d.newHeader, | |
newContent: d.newPanel | |
}) : "activate" === a && (e = c.call(this, "change", b, { | |
oldHeader: d.oldHeader, | |
oldContent: d.oldPanel, | |
newHeader: d.newHeader, | |
newContent: d.newPanel | |
})), | |
e) | |
} | |
}(jQuery, jQuery.ui.accordion.prototype), | |
function(a, b) { | |
a.extend(b.options, { | |
animate: null, | |
animated: "slide" | |
}); | |
var c = b._create; | |
b._create = function() { | |
var a = this.options; | |
null === a.animate && (a.animated ? "slide" === a.animated ? a.animate = 300 : "bounceslide" === a.animated ? a.animate = { | |
duration: 200, | |
down: { | |
easing: "easeOutBounce", | |
duration: 1e3 | |
} | |
} : a.animate = a.animated : a.animate = !1), | |
c.call(this) | |
} | |
}(jQuery, jQuery.ui.accordion.prototype)) | |
}(jQuery), | |
function(a, b) { | |
var c = 0; | |
a.widget("ui.autocomplete", { | |
version: "1.9.0", | |
defaultElement: "<input>", | |
options: { | |
appendTo: "body", | |
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 | |
}, | |
pending: 0, | |
_create: function() { | |
var b, c, d; | |
this.isMultiLine = this._isMultiLine(), | |
this.valueMethod = this.element[this.element.is("input,textarea") ? "val" : "text"], | |
this.isNewMenu = !0, | |
this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off"), | |
this._on({ | |
keydown: function(e) { | |
if (this.element.prop("readOnly")) | |
return b = !0, | |
d = !0, | |
void (c = !0); | |
b = !1, | |
d = !1, | |
c = !1; | |
var f = a.ui.keyCode; | |
switch (e.keyCode) { | |
case f.PAGE_UP: | |
b = !0, | |
this._move("a6C", e); | |
break; | |
case f.PAGE_DOWN: | |
b = !0, | |
this._move("a6d", e); | |
break; | |
case f.UP: | |
b = !0, | |
this._keyEvent("previous", e); | |
break; | |
case f.DOWN: | |
b = !0, | |
this._keyEvent("next", e); | |
break; | |
case f.ENTER: | |
case f.NUMPAD_ENTER: | |
this.menu.active && (b = !0, | |
e.preventDefault(), | |
this.menu.select(e)); | |
break; | |
case f.TAB: | |
this.menu.active && this.menu.select(e); | |
break; | |
case f.ESCAPE: | |
this.menu.element.is(":visible") && (this._value(this.term), | |
this.close(e), | |
e.preventDefault()); | |
break; | |
default: | |
c = !0, | |
this._searchTimeout(e) | |
} | |
}, | |
keypress: function(d) { | |
if (b) | |
return b = !1, | |
void d.preventDefault(); | |
if (!c) { | |
var e = a.ui.keyCode; | |
switch (d.keyCode) { | |
case e.PAGE_UP: | |
this._move("a6C", d); | |
break; | |
case e.PAGE_DOWN: | |
this._move("a6d", d); | |
break; | |
case e.UP: | |
this._keyEvent("previous", d); | |
break; | |
case e.DOWN: | |
this._keyEvent("next", d) | |
} | |
} | |
}, | |
input: function(a) { | |
return d ? (d = !1, | |
void a.preventDefault()) : void this._searchTimeout(a) | |
}, | |
focus: function() { | |
this.selectedItem = null, | |
this.previous = this._value() | |
}, | |
blur: function(a) { | |
return this.cancelBlur ? void delete this.cancelBlur : (clearTimeout(this.searching), | |
this.close(a), | |
void this._change(a)) | |
} | |
}), | |
this._initSource(), | |
this.menu = a("<ul>").addClass("ui-autocomplete").appendTo(this.document.find(this.options.appendTo || "body")[0]).menu({ | |
input: a(), | |
role: null | |
}).zIndex(this.element.zIndex() + 1).hide().data("menu"), | |
this._on(this.menu.element, { | |
mousedown: function(b) { | |
b.preventDefault(), | |
this.cancelBlur = !0, | |
this._delay(function() { | |
delete this.cancelBlur | |
}); | |
var c = this.menu.element[0]; | |
a(b.target).closest(".ui-menu-item").length || this._delay(function() { | |
var b = this; | |
this.document.one("mousedown", function(d) { | |
d.target === b.element[0] || d.target === c || a.contains(c, d.target) || b.close() | |
}) | |
}) | |
}, | |
menufocus: function(b, c) { | |
if (this.isNewMenu && (this.isNewMenu = !1, | |
b.originalEvent && /^mouse/.test(b.originalEvent.type))) | |
return this.menu.blur(), | |
void this.document.one("mousemove", function() { | |
a(b.target).trigger(b.originalEvent) | |
}); | |
var d = c.item.data("ui-autocomplete-item") || c.item.data("item.autocomplete"); | |
!1 !== this._trigger("focus", b, { | |
item: d | |
}) ? b.originalEvent && /^key/.test(b.originalEvent.type) && this._value(d.value) : this.liveRegion.text(d.value) | |
}, | |
menuselect: function(a, b) { | |
var c = b.item.data("ui-autocomplete-item") || b.item.data("item.autocomplete") | |
, d = this.previous; | |
this.element[0] !== this.document[0].activeElement && (this.element.focus(), | |
this.previous = d, | |
this._delay(function() { | |
this.previous = d, | |
this.selectedItem = c | |
})), | |
!1 !== this._trigger("select", a, { | |
item: c | |
}) && this._value(c.value), | |
this.term = this._value(), | |
this.close(a), | |
this.selectedItem = c | |
} | |
}), | |
this.liveRegion = a("<span>", { | |
role: "status", | |
"aria-live": "polite" | |
}).addClass("ui-helper-hidden-accessible").insertAfter(this.element), | |
a.fn.bgiframe && this.menu.element.bgiframe(), | |
this._on(this.window, { | |
beforeunload: function() { | |
this.element.removeAttr("autocomplete") | |
} | |
}) | |
}, | |
_destroy: function() { | |
clearTimeout(this.searching), | |
this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"), | |
this.menu.element.remove(), | |
this.liveRegion.remove() | |
}, | |
_setOption: function(a, b) { | |
this._super(a, b), | |
"source" === a && this._initSource(), | |
"appendTo" === a && this.menu.element.appendTo(this.document.find(b || "body")[0]), | |
"disabled" === a && b && this.xhr && this.xhr.abort() | |
}, | |
_isMultiLine: function() { | |
return !!this.element.is("textarea") || !this.element.is("input") && this.element.prop("isContentEditable") | |
}, | |
_initSource: function() { | |
var b, c, d = this; | |
a.isArray(this.options.source) ? (b = this.options.source, | |
this.source = function(c, d) { | |
d(a.ui.autocomplete.filter(b, c.term)) | |
} | |
) : "string" == typeof this.options.source ? (c = this.options.source, | |
this.source = function(b, e) { | |
d.xhr && d.xhr.abort(), | |
d.xhr = a.ajax({ | |
url: c, | |
data: b, | |
dataType: "json", | |
success: function(a, b) { | |
e(a) | |
}, | |
error: function() { | |
e([]) | |
} | |
}) | |
} | |
) : this.source = this.options.source | |
}, | |
_searchTimeout: function(a) { | |
clearTimeout(this.searching), | |
this.searching = this._delay(function() { | |
this.term !== this._value() && (this.selectedItem = null, | |
this.search(null, a)) | |
}, this.options.delay) | |
}, | |
search: function(a, b) { | |
return a = null != a ? a : this._value(), | |
this.term = this._value(), | |
a.length < this.options.minLength ? this.close(b) : this._trigger("search", b) !== !1 ? this._search(a) : void 0 | |
}, | |
_search: function(a) { | |
this.pending++, | |
this.element.addClass("ui-autocomplete-loading"), | |
this.cancelSearch = !1, | |
this.source({ | |
term: a | |
}, this._response()) | |
}, | |
_response: function() { | |
var a = this | |
, b = ++c; | |
return function(d) { | |
b === c && a.__response(d), | |
a.pending--, | |
a.pending || a.element.removeClass("ui-autocomplete-loading") | |
} | |
}, | |
__response: function(a) { | |
a && (a = this._normalize(a)), | |
this._trigger("response", null, { | |
content: a | |
}), | |
!this.options.disabled && a && a.length && !this.cancelSearch ? (this._suggest(a), | |
this._trigger("open")) : this._close() | |
}, | |
close: function(a) { | |
this.cancelSearch = !0, | |
this._close(a) | |
}, | |
_close: function(a) { | |
this.menu.element.is(":visible") && (this.menu.element.hide(), | |
this.menu.blur(), | |
this.isNewMenu = !0, | |
this._trigger("close", a)) | |
}, | |
_change: function(a) { | |
this.previous !== this._value() && this._trigger("change", a, { | |
item: this.selectedItem | |
}) | |
}, | |
_normalize: function(b) { | |
return b.length && b[0].label && b[0].value ? b : a.map(b, function(b) { | |
return "string" == typeof b ? { | |
label: b, | |
value: b | |
} : a.extend({ | |
label: b.label || b.value, | |
value: b.value || b.label | |
}, b) | |
}) | |
}, | |
_suggest: function(b) { | |
var c = this.menu.element.empty().zIndex(this.element.zIndex() + 1); | |
this._renderMenu(c, b), | |
this.menu.refresh(), | |
c.show(), | |
this._resizeMenu(), | |
c.position(a.extend({ | |
of: this.element | |
}, this.options.position)), | |
this.options.autoFocus && this.menu.next() | |
}, | |
_resizeMenu: function() { | |
var a = this.menu.element; | |
a.outerWidth(Math.max(a.width("").outerWidth() + 1, this.element.outerWidth())) | |
}, | |
_renderMenu: function(b, c) { | |
var d = this; | |
a.each(c, function(a, c) { | |
d._renderItemData(b, c) | |
}) | |
}, | |
_renderItemData: function(a, b) { | |
return this._renderItem(a, b).data("ui-autocomplete-item", b) | |
}, | |
_renderItem: function(b, c) { | |
return a("<li>").append(a("<a>").text(c.label)).appendTo(b) | |
}, | |
_move: function(a, b) { | |
return this.menu.element.is(":visible") ? this.menu.isFirstItem() && /^previous/.test(a) || this.menu.isLastItem() && /^next/.test(a) ? (this._value(this.term), | |
void this.menu.blur()) : void this.menu[a](b) : void this.search(null, b) | |
}, | |
widget: function() { | |
return this.menu.element | |
}, | |
_value: function(a) { | |
return this.valueMethod.apply(this.element, arguments) | |
}, | |
_keyEvent: function(a, b) { | |
this.isMultiLine && !this.menu.element.is(":visible") || (this._move(a, b), | |
b.preventDefault()) | |
} | |
}), | |
a.extend(a.ui.autocomplete, { | |
escapeRegex: function(a) { | |
return a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&") | |
}, | |
filter: function(b, c) { | |
var d = new RegExp(a.ui.autocomplete.escapeRegex(c),"i"); | |
return a.grep(b, function(a) { | |
return d.test(a.label || a.value || a) | |
}) | |
} | |
}), | |
a.widget("ui.autocomplete", a.ui.autocomplete, { | |
options: { | |
messages: { | |
noResults: "No search results.", | |
results: function(a) { | |
return a + (a > 1 ? " results are" : " result is") + " available, use up and down arrow keys to navigate." | |
} | |
} | |
}, | |
__response: function(a) { | |
var b; | |
this._superApply(arguments), | |
this.options.disabled || this.cancelSearch || (b = a && a.length ? this.options.messages.results(a.length) : this.options.messages.noResults, | |
this.liveRegion.text(b)) | |
} | |
}) | |
}(jQuery), | |
function(a, b) { | |
var c, d, e, f, g = "ui-button ui-widget ui-state-default ui-corner-all", h = "ui-state-hover ui-state-active ", i = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", j = function() { | |
var b = a(this).find(":ui-button"); | |
setTimeout(function() { | |
b.button("refresh") | |
}, 1) | |
}, k = function(b) { | |
var c = b.name | |
, d = b.form | |
, e = a([]); | |
return c && (e = d ? a(d).find("[name='" + c + "']") : a("[name='" + c + "']", b.ownerDocument).filter(function() { | |
return !this.form | |
})), | |
e | |
}; | |
a.widget("ui.button", { | |
version: "1.9.0", | |
defaultElement: "<button>", | |
options: { | |
disabled: null, | |
text: !0, | |
label: null, | |
icons: { | |
primary: null, | |
secondary: null | |
} | |
}, | |
_create: function() { | |
this.element.closest("form").unbind("reset" + this.eventNamespace).bind("reset" + this.eventNamespace, j), | |
"boolean" != typeof this.options.disabled ? this.options.disabled = !!this.element.prop("disabled") : this.element.prop("disabled", this.options.disabled), | |
this._determineButtonType(), | |
this.hasTitle = !!this.buttonElement.attr("title"); | |
var b = this | |
, h = this.options | |
, i = "checkbox" === this.type || "radio" === this.type | |
, l = "ui-state-hover" + (i ? "" : " ui-state-active") | |
, m = "ui-state-focus"; | |
null === h.label && (h.label = "input" === this.type ? this.buttonElement.val() : this.buttonElement.html()), | |
this.buttonElement.addClass(g).attr("role", "button").bind("mouseenter" + this.eventNamespace, function() { | |
h.disabled || (a(this).addClass("ui-state-hover"), | |
this === c && a(this).addClass("ui-state-active")) | |
}).bind("mouseleave" + this.eventNamespace, function() { | |
h.disabled || a(this).removeClass(l) | |
}).bind("click" + this.eventNamespace, function(a) { | |
h.disabled && (a.preventDefault(), | |
a.stopImmediatePropagation()) | |
}), | |
this.element.bind("focus" + this.eventNamespace, function() { | |
b.buttonElement.addClass(m) | |
}).bind("blur" + this.eventNamespace, function() { | |
b.buttonElement.removeClass(m) | |
}), | |
i && (this.element.bind("change" + this.eventNamespace, function() { | |
f || b.refresh() | |
}), | |
this.buttonElement.bind("mousedown" + this.eventNamespace, function(a) { | |
h.disabled || (f = !1, | |
d = a.pageX, | |
e = a.pageY) | |
}).bind("mouseup" + this.eventNamespace, function(a) { | |
h.disabled || d !== a.pageX || e !== a.pageY | |
})), | |
"checkbox" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function() { | |
return !h.disabled && !f && (a(this).toggleClass("ui-state-active"), | |
void b.buttonElement.attr("aria-pressed", b.element[0].checked)) | |
}) : "radio" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function() { | |
if (h.disabled || f) | |
return !1; | |
a(this).addClass("ui-state-active"), | |
b.buttonElement.attr("aria-pressed", "true"); | |
var c = b.element[0]; | |
k(c).not(c).map(function() { | |
return a(this).button("widget")[0] | |
}).removeClass("ui-state-active").attr("aria-pressed", "false") | |
}) : (this.buttonElement.bind("mousedown" + this.eventNamespace, function() { | |
return !h.disabled && (a(this).addClass("ui-state-active"), | |
c = this, | |
void b.document.one("mouseup", function() { | |
c = null | |
})) | |
}).bind("mouseup" + this.eventNamespace, function() { | |
return !h.disabled && void a(this).removeClass("ui-state-active") | |
}).bind("keydown" + this.eventNamespace, function(b) { | |
return !h.disabled && void (b.keyCode !== a.ui.keyCode.SPACE && b.keyCode !== a.ui.keyCode.ENTER || a(this).addClass("ui-state-active")) | |
}).bind("keyup" + this.eventNamespace, function() { | |
a(this).removeClass("ui-state-active") | |
}), | |
this.buttonElement.is("a") && this.buttonElement.keyup(function(b) { | |
b.keyCode === a.ui.keyCode.SPACE && a(this).click() | |
})), | |
this._setOption("disabled", h.disabled), | |
this._resetButton() | |
}, | |
_determineButtonType: function() { | |
var a, b, c; | |
this.element.is("[type=checkbox]") ? this.type = "checkbox" : this.element.is("[type=radio]") ? this.type = "radio" : this.element.is("input") ? this.type = "input" : this.type = "button", | |
"checkbox" === this.type || "radio" === this.type ? (a = this.element.parents().last(), | |
b = "label[for='" + this.element.attr("id") + "']", | |
this.buttonElement = a.find(b), | |
this.buttonElement.length || (a = a.length ? a.siblings() : this.element.siblings(), | |
this.buttonElement = a.filter(b), | |
this.buttonElement.length || (this.buttonElement = a.find(b))), | |
this.element.addClass("ui-helper-hidden-accessible"), | |
c = this.element.is(":checked"), | |
c && this.buttonElement.addClass("ui-state-active"), | |
this.buttonElement.prop("aria-pressed", c)) : this.buttonElement = this.element | |
}, | |
widget: function() { | |
return this.buttonElement | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-helper-hidden-accessible"), | |
this.buttonElement.removeClass(g + " " + h + " " + i).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()), | |
this.hasTitle || this.buttonElement.removeAttr("title") | |
}, | |
_setOption: function(a, b) { | |
return this._super(a, b), | |
"disabled" === a ? void (b ? this.element.prop("disabled", !0) : this.element.prop("disabled", !1)) : void this._resetButton() | |
}, | |
refresh: function() { | |
var b = this.element.is(":disabled"); | |
b !== this.options.disabled && this._setOption("disabled", b), | |
"radio" === this.type ? k(this.element[0]).each(function() { | |
a(this).is(":checked") ? a(this).button("widget").addClass("ui-state-active").attr("aria-pressed", "true") : a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", "false") | |
}) : "checkbox" === this.type && (this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", "true") : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", "false")) | |
}, | |
_resetButton: function() { | |
if ("input" === this.type) | |
return void (this.options.label && this.element.val(this.options.label)); | |
var b = this.buttonElement.removeClass(i) | |
, c = a("<span></span>", this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text() | |
, d = this.options.icons | |
, e = d.primary && d.secondary | |
, f = []; | |
d.primary || d.secondary ? (this.options.text && f.push("ui-button-text-icon" + (e ? "s" : d.primary ? "-primary" : "-secondary")), | |
d.primary && b.prepend("<span class='ui-button-icon-primary ui-icon " + d.primary + "'></span>"), | |
d.secondary && b.append("<span class='ui-button-icon-secondary ui-icon " + d.secondary + "'></span>"), | |
this.options.text || (f.push(e ? "ui-button-icons-only" : "ui-button-icon-only"), | |
this.hasTitle || b.attr("title", a.trim(c)))) : f.push("ui-button-text-only"), | |
b.addClass(f.join(" ")) | |
} | |
}), | |
a.widget("ui.buttonset", { | |
version: "1.9.0", | |
options: { | |
items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(button)" | |
}, | |
_create: function() { | |
this.element.addClass("ui-buttonset") | |
}, | |
_init: function() { | |
this.refresh() | |
}, | |
_setOption: function(a, b) { | |
"disabled" === a && this.buttons.button("option", a, b), | |
this._super(a, b) | |
}, | |
refresh: function() { | |
var b = "rtl" === this.element.css("direction"); | |
this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function() { | |
return a(this).button("widget")[0] | |
}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(b ? "ui-corner-left" : "ui-corner-right").end().end() | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-buttonset"), | |
this.buttons.map(function() { | |
return a(this).button("widget")[0] | |
}).removeClass("ui-corner-left ui-corner-right").end().button("destroy") | |
} | |
}) | |
}(jQuery), | |
function($, undefined) { | |
function Datepicker() { | |
this.debug = !1, | |
this._curInst = null, | |
this._keyEvent = !1, | |
this._disabledInputs = [], | |
this._datepickerShowing = !1, | |
this._inDialog = !1, | |
this._mainDivId = "ui-datepicker-div", | |
this._inlineClass = "ui-datepicker-inline", | |
this._appendClass = "ui-datepicker-append", | |
this._triggerClass = "ui-datepicker-trigger", | |
this._dialogClass = "ui-datepicker-dialog", | |
this._disableClass = "ui-datepicker-disabled", | |
this._unselectableClass = "ui-datepicker-unselectable", | |
this._currentClass = "ui-datepicker-current-day", | |
this._dayOverClass = "ui-datepicker-days-cell-over", | |
this.regional = [], | |
this.regional[""] = { | |
closeText: "Done", | |
prevText: "Prev", | |
nextText: "Next", | |
currentText: "Today", | |
monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], | |
monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], | |
dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], | |
dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], | |
dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], | |
weekHeader: "Wk", | |
dateFormat: "mm/dd/yy", | |
firstDay: 0, | |
isRTL: !1, | |
showMonthAfterYear: !1, | |
yearSuffix: "" | |
}, | |
this._defaults = { | |
showOn: "focus", | |
showAnim: "fadeIn", | |
showOptions: {}, | |
defaultDate: null, | |
appendText: "", | |
buttonText: "...", | |
buttonImage: "", | |
buttonImageOnly: !1, | |
hideIfNoPrevNext: !1, | |
navigationAsDateFormat: !1, | |
gotoCurrent: !1, | |
changeMonth: !1, | |
changeYear: !1, | |
yearRange: "c-10:c+10", | |
showOtherMonths: !1, | |
selectOtherMonths: !1, | |
showWeek: !1, | |
calculateWeek: this.iso8601Week, | |
shortYearCutoff: "+10", | |
minDate: null, | |
maxDate: null, | |
duration: "fast", | |
beforeShowDay: null, | |
beforeShow: null, | |
onSelect: null, | |
onChangeMonthYear: null, | |
onClose: null, | |
numberOfMonths: 1, | |
showCurrentAtPos: 0, | |
stepMonths: 1, | |
stepBigMonths: 12, | |
altField: "", | |
altFormat: "", | |
constrainInput: !0, | |
showButtonPanel: !1, | |
autoSize: !1, | |
disabled: !1 | |
}, | |
$.extend(this._defaults, this.regional[""]), | |
this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')) | |
} | |
function bindHover(a) { | |
var b = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; | |
return a.delegate(b, "mouseout", function() { | |
$(this).removeClass("ui-state-hover"), | |
this.className.indexOf("ui-datepicker-prev") != -1 && $(this).removeClass("ui-datepicker-prev-hover"), | |
this.className.indexOf("ui-datepicker-next") != -1 && $(this).removeClass("ui-datepicker-next-hover") | |
}).delegate(b, "mouseover", function() { | |
$.datepicker._isDisabledDatepicker(instActive.inline ? a.parent()[0] : instActive.input[0]) || ($(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"), | |
$(this).addClass("ui-state-hover"), | |
this.className.indexOf("ui-datepicker-prev") != -1 && $(this).addClass("ui-datepicker-prev-hover"), | |
this.className.indexOf("ui-datepicker-next") != -1 && $(this).addClass("ui-datepicker-next-hover")) | |
}) | |
} | |
function extendRemove(a, b) { | |
$.extend(a, b); | |
for (var c in b) | |
null != b[c] && b[c] != undefined || (a[c] = b[c]); | |
return a | |
} | |
$.extend($.ui, { | |
datepicker: { | |
version: "1.9.0" | |
} | |
}); | |
var PROP_NAME = "datepicker", dpuuid = (new Date).getTime(), instActive; | |
$.extend(Datepicker.prototype, { | |
markerClassName: "hasDatepicker", | |
maxRows: 4, | |
log: function() { | |
this.debug && console.log.apply("", arguments) | |
}, | |
_widgetDatepicker: function() { | |
return this.dpDiv | |
}, | |
setDefaults: function(a) { | |
return extendRemove(this._defaults, a || {}), | |
this | |
}, | |
_attachDatepicker: function(target, settings) { | |
var inlineSettings = null; | |
for (var attrName in this._defaults) { | |
var attrValue = target.getAttribute("date:" + attrName); | |
if (attrValue) { | |
inlineSettings = inlineSettings || {}; | |
try { | |
inlineSettings[attrName] = eval(attrValue) | |
} catch (err) { | |
inlineSettings[attrName] = attrValue | |
} | |
} | |
} | |
var nodeName = target.nodeName.toLowerCase() | |
, inline = "div" == nodeName || "span" == nodeName; | |
target.id || (this.uuid += 1, | |
target.id = "dp" + this.uuid); | |
var inst = this._newInst($(target), inline); | |
inst.settings = $.extend({}, settings || {}, inlineSettings || {}), | |
"input" == nodeName ? this._connectDatepicker(target, inst) : inline && this._inlineDatepicker(target, inst) | |
}, | |
_newInst: function(a, b) { | |
var c = a[0].id.replace(/([^A-Za-z0-9_-])/g, "\\\\$1"); | |
return { | |
id: c, | |
input: a, | |
selectedDay: 0, | |
selectedMonth: 0, | |
selectedYear: 0, | |
drawMonth: 0, | |
drawYear: 0, | |
inline: b, | |
dpDiv: b ? bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')) : this.dpDiv | |
} | |
}, | |
_connectDatepicker: function(a, b) { | |
var c = $(a); | |
b.append = $([]), | |
b.trigger = $([]), | |
c.hasClass(this.markerClassName) || (this._attachments(c, b), | |
c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function(a, c, d) { | |
b.settings[c] = d | |
}).bind("getData.datepicker", function(a, c) { | |
return this._get(b, c) | |
}), | |
this._autoSize(b), | |
$.data(a, PROP_NAME, b), | |
b.settings.disabled && this._disableDatepicker(a)) | |
}, | |
_attachments: function(a, b) { | |
var c = this._get(b, "appendText") | |
, d = this._get(b, "isRTL"); | |
b.append && b.append.remove(), | |
c && (b.append = $('<span class="' + this._appendClass + '">' + c + "</span>"), | |
a[d ? "before" : "after"](b.append)), | |
a.unbind("focus", this._showDatepicker), | |
b.trigger && b.trigger.remove(); | |
var e = this._get(b, "showOn"); | |
if ("focus" != e && "both" != e || a.focus(this._showDatepicker), | |
"button" == e || "both" == e) { | |
var f = this._get(b, "buttonText") | |
, g = this._get(b, "buttonImage"); | |
b.trigger = $(this._get(b, "buttonImageOnly") ? $("<img/>").addClass(this._triggerClass).attr({ | |
src: g, | |
alt: f, | |
title: f | |
}) : $('<button type="button"></button>').addClass(this._triggerClass).html("" == g ? f : $("<img/>").attr({ | |
src: g, | |
alt: f, | |
title: f | |
}))), | |
a[d ? "before" : "after"](b.trigger), | |
b.trigger.click(function() { | |
return $.datepicker._datepickerShowing && $.datepicker._lastInput == a[0] ? $.datepicker._hideDatepicker() : $.datepicker._datepickerShowing && $.datepicker._lastInput != a[0] ? ($.datepicker._hideDatepicker(), | |
$.datepicker._showDatepicker(a[0])) : $.datepicker._showDatepicker(a[0]), | |
!1 | |
}) | |
} | |
}, | |
_autoSize: function(a) { | |
if (this._get(a, "autoSize") && !a.inline) { | |
var b = new Date(2009,11,20) | |
, c = this._get(a, "dateFormat"); | |
if (c.match(/[DM]/)) { | |
var d = function(a) { | |
for (var b = 0, c = 0, d = 0; d < a.length; d++) | |
a[d].length > b && (b = a[d].length, | |
c = d); | |
return c | |
}; | |
b.setMonth(d(this._get(a, c.match(/MM/) ? "monthNames" : "monthNamesShort"))), | |
b.setDate(d(this._get(a, c.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - b.getDay()) | |
} | |
a.input.attr("size", this._formatDate(a, b).length) | |
} | |
}, | |
_inlineDatepicker: function(a, b) { | |
var c = $(a); | |
c.hasClass(this.markerClassName) || (c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", function(a, c, d) { | |
b.settings[c] = d | |
}).bind("getData.datepicker", function(a, c) { | |
return this._get(b, c) | |
}), | |
$.data(a, PROP_NAME, b), | |
this._setDate(b, this._getDefaultDate(b), !0), | |
this._updateDatepicker(b), | |
this._updateAlternate(b), | |
b.settings.disabled && this._disableDatepicker(a), | |
b.dpDiv.css("display", "block")) | |
}, | |
_dialogDatepicker: function(a, b, c, d, e) { | |
var f = this._dialogInst; | |
if (!f) { | |
this.uuid += 1; | |
var g = "dp" + this.uuid; | |
this._dialogInput = $('<input type="text" id="' + g + '" style="position: absolute; top: -100px; width: 0px;"/>'), | |
this._dialogInput.keydown(this._doKeyDown), | |
$("body").append(this._dialogInput), | |
f = this._dialogInst = this._newInst(this._dialogInput, !1), | |
f.settings = {}, | |
$.data(this._dialogInput[0], PROP_NAME, f) | |
} | |
if (extendRemove(f.settings, d || {}), | |
b = b && b.constructor == Date ? this._formatDate(f, b) : b, | |
this._dialogInput.val(b), | |
this._pos = e ? e.length ? e : [e.pageX, e.pageY] : null, | |
!this._pos) { | |
var h = document.documentElement.clientWidth | |
, i = document.documentElement.clientHeight | |
, j = document.documentElement.scrollLeft || document.body.scrollLeft | |
, k = document.documentElement.scrollTop || document.body.scrollTop; | |
this._pos = [h / 2 - 100 + j, i / 2 - 150 + k] | |
} | |
return this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"), | |
f.settings.onSelect = c, | |
this._inDialog = !0, | |
this.dpDiv.addClass(this._dialogClass), | |
this._showDatepicker(this._dialogInput[0]), | |
$.blockUI && $.blockUI(this.dpDiv), | |
$.data(this._dialogInput[0], PROP_NAME, f), | |
this | |
}, | |
_destroyDatepicker: function(a) { | |
var b = $(a) | |
, c = $.data(a, PROP_NAME); | |
if (b.hasClass(this.markerClassName)) { | |
var d = a.nodeName.toLowerCase(); | |
$.removeData(a, PROP_NAME), | |
"input" == d ? (c.append.remove(), | |
c.trigger.remove(), | |
b.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp)) : "div" != d && "span" != d || b.removeClass(this.markerClassName).empty() | |
} | |
}, | |
_enableDatepicker: function(a) { | |
var b = $(a) | |
, c = $.data(a, PROP_NAME); | |
if (b.hasClass(this.markerClassName)) { | |
var d = a.nodeName.toLowerCase(); | |
if ("input" == d) | |
a.disabled = !1, | |
c.trigger.filter("button").each(function() { | |
this.disabled = !1 | |
}).end().filter("img").css({ | |
opacity: "1.0", | |
cursor: "" | |
}); | |
else if ("div" == d || "span" == d) { | |
var e = b.children("." + this._inlineClass); | |
e.children().removeClass("ui-state-disabled"), | |
e.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1) | |
} | |
this._disabledInputs = $.map(this._disabledInputs, function(b) { | |
return b == a ? null : b | |
}) | |
} | |
}, | |
_disableDatepicker: function(a) { | |
var b = $(a) | |
, c = $.data(a, PROP_NAME); | |
if (b.hasClass(this.markerClassName)) { | |
var d = a.nodeName.toLowerCase(); | |
if ("input" == d) | |
a.disabled = !0, | |
c.trigger.filter("button").each(function() { | |
this.disabled = !0 | |
}).end().filter("img").css({ | |
opacity: "0.5", | |
cursor: "default" | |
}); | |
else if ("div" == d || "span" == d) { | |
var e = b.children("." + this._inlineClass); | |
e.children().addClass("ui-state-disabled"), | |
e.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0) | |
} | |
this._disabledInputs = $.map(this._disabledInputs, function(b) { | |
return b == a ? null : b | |
}), | |
this._disabledInputs[this._disabledInputs.length] = a | |
} | |
}, | |
_isDisabledDatepicker: function(a) { | |
if (!a) | |
return !1; | |
for (var b = 0; b < this._disabledInputs.length; b++) | |
if (this._disabledInputs[b] == a) | |
return !0; | |
return !1 | |
}, | |
_getInst: function(a) { | |
try { | |
return $.data(a, PROP_NAME) | |
} catch (b) { | |
throw "Missing instance data for this datepicker" | |
} | |
}, | |
_optionDatepicker: function(a, b, c) { | |
var d = this._getInst(a); | |
if (2 == arguments.length && "string" == typeof b) | |
return "defaults" == b ? $.extend({}, $.datepicker._defaults) : d ? "all" == b ? $.extend({}, d.settings) : this._get(d, b) : null; | |
var e = b || {}; | |
if ("string" == typeof b && (e = {}, | |
e[b] = c), | |
d) { | |
this._curInst == d && this._hideDatepicker(); | |
var f = this._getDateDatepicker(a, !0) | |
, g = this._getMinMaxDate(d, "min") | |
, h = this._getMinMaxDate(d, "max"); | |
extendRemove(d.settings, e), | |
null !== g && e.dateFormat !== undefined && e.minDate === undefined && (d.settings.minDate = this._formatDate(d, g)), | |
null !== h && e.dateFormat !== undefined && e.maxDate === undefined && (d.settings.maxDate = this._formatDate(d, h)), | |
this._attachments($(a), d), | |
this._autoSize(d), | |
this._setDate(d, f), | |
this._updateAlternate(d), | |
this._updateDatepicker(d) | |
} | |
}, | |
_changeDatepicker: function(a, b, c) { | |
this._optionDatepicker(a, b, c) | |
}, | |
_refreshDatepicker: function(a) { | |
var b = this._getInst(a); | |
b && this._updateDatepicker(b) | |
}, | |
_setDateDatepicker: function(a, b) { | |
var c = this._getInst(a); | |
c && (this._setDate(c, b), | |
this._updateDatepicker(c), | |
this._updateAlternate(c)) | |
}, | |
_getDateDatepicker: function(a, b) { | |
var c = this._getInst(a); | |
return c && !c.inline && this._setDateFromField(c, b), | |
c ? this._getDate(c) : null | |
}, | |
_doKeyDown: function(a) { | |
var b = $.datepicker._getInst(a.target) | |
, c = !0 | |
, d = b.dpDiv.is(".ui-datepicker-rtl"); | |
if (b._keyEvent = !0, | |
$.datepicker._datepickerShowing) | |
switch (a.keyCode) { | |
case 9: | |
$.datepicker._hideDatepicker(), | |
c = !1; | |
break; | |
case 13: | |
var e = $("td." + $.datepicker._dayOverClass + ":not(." + $.datepicker._currentClass + ")", b.dpDiv); | |
e[0] && $.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, e[0]); | |
var f = $.datepicker._get(b, "onSelect"); | |
if (f) { | |
var g = $.datepicker._formatDate(b); | |
f.apply(b.input ? b.input[0] : null, [g, b]) | |
} else | |
$.datepicker._hideDatepicker(); | |
return !1; | |
case 27: | |
$.datepicker._hideDatepicker(); | |
break; | |
case 33: | |
$.datepicker._adjustDate(a.target, a.ctrlKey ? -$.datepicker._get(b, "stepBigMonths") : -$.datepicker._get(b, "stepMonths"), "M"); | |
break; | |
case 34: | |
$.datepicker._adjustDate(a.target, a.ctrlKey ? +$.datepicker._get(b, "stepBigMonths") : +$.datepicker._get(b, "stepMonths"), "M"); | |
break; | |
case 35: | |
(a.ctrlKey || a.metaKey) && $.datepicker._clearDate(a.target), | |
c = a.ctrlKey || a.metaKey; | |
break; | |
case 36: | |
(a.ctrlKey || a.metaKey) && $.datepicker._gotoToday(a.target), | |
c = a.ctrlKey || a.metaKey; | |
break; | |
case 37: | |
(a.ctrlKey || a.metaKey) && $.datepicker._adjustDate(a.target, d ? 1 : -1, "D"), | |
c = a.ctrlKey || a.metaKey, | |
a.originalEvent.altKey && $.datepicker._adjustDate(a.target, a.ctrlKey ? -$.datepicker._get(b, "stepBigMonths") : -$.datepicker._get(b, "stepMonths"), "M"); | |
break; | |
case 38: | |
(a.ctrlKey || a.metaKey) && $.datepicker._adjustDate(a.target, -7, "D"), | |
c = a.ctrlKey || a.metaKey; | |
break; | |
case 39: | |
(a.ctrlKey || a.metaKey) && $.datepicker._adjustDate(a.target, d ? -1 : 1, "D"), | |
c = a.ctrlKey || a.metaKey, | |
a.originalEvent.altKey && $.datepicker._adjustDate(a.target, a.ctrlKey ? +$.datepicker._get(b, "stepBigMonths") : +$.datepicker._get(b, "stepMonths"), "M"); | |
break; | |
case 40: | |
(a.ctrlKey || a.metaKey) && $.datepicker._adjustDate(a.target, 7, "D"), | |
c = a.ctrlKey || a.metaKey; | |
break; | |
default: | |
c = !1 | |
} | |
else | |
36 == a.keyCode && a.ctrlKey ? $.datepicker._showDatepicker(this) : c = !1; | |
c && (a.preventDefault(), | |
a.stopPropagation()) | |
}, | |
_doKeyPress: function(a) { | |
var b = $.datepicker._getInst(a.target); | |
if ($.datepicker._get(b, "constrainInput")) { | |
var c = $.datepicker._possibleChars($.datepicker._get(b, "dateFormat")) | |
, d = String.fromCharCode(a.charCode == undefined ? a.keyCode : a.charCode); | |
return a.ctrlKey || a.metaKey || d < " " || !c || c.indexOf(d) > -1 | |
} | |
}, | |
_doKeyUp: function(a) { | |
var b = $.datepicker._getInst(a.target); | |
if (b.input.val() != b.lastVal) | |
try { | |
var c = $.datepicker.parseDate($.datepicker._get(b, "dateFormat"), b.input ? b.input.val() : null, $.datepicker._getFormatConfig(b)); | |
c && ($.datepicker._setDateFromField(b), | |
$.datepicker._updateAlternate(b), | |
$.datepicker._updateDatepicker(b)) | |
} catch (d) { | |
$.datepicker.log(d) | |
} | |
return !0 | |
}, | |
_showDatepicker: function(a) { | |
if (a = a.target || a, | |
"input" != a.nodeName.toLowerCase() && (a = $("input", a.parentNode)[0]), | |
!$.datepicker._isDisabledDatepicker(a) && $.datepicker._lastInput != a) { | |
var b = $.datepicker._getInst(a); | |
$.datepicker._curInst && $.datepicker._curInst != b && ($.datepicker._curInst.dpDiv.stop(!0, !0), | |
b && $.datepicker._datepickerShowing && $.datepicker._hideDatepicker($.datepicker._curInst.input[0])); | |
var c = $.datepicker._get(b, "beforeShow") | |
, d = c ? c.apply(a, [a, b]) : {}; | |
if (d !== !1) { | |
extendRemove(b.settings, d), | |
b.lastVal = null, | |
$.datepicker._lastInput = a, | |
$.datepicker._setDateFromField(b), | |
$.datepicker._inDialog && (a.value = ""), | |
$.datepicker._pos || ($.datepicker._pos = $.datepicker._findPos(a), | |
$.datepicker._pos[1] += a.offsetHeight); | |
var e = !1; | |
$(a).parents().each(function() { | |
return e |= "fixed" == $(this).css("position"), | |
!e | |
}); | |
var f = { | |
left: $.datepicker._pos[0], | |
top: $.datepicker._pos[1] | |
}; | |
if ($.datepicker._pos = null, | |
b.dpDiv.empty(), | |
b.dpDiv.css({ | |
position: "absolute", | |
display: "block", | |
top: "-1000px" | |
}), | |
$.datepicker._updateDatepicker(b), | |
f = $.datepicker._checkOffset(b, f, e), | |
b.dpDiv.css({ | |
position: $.datepicker._inDialog && $.blockUI ? "static" : e ? "fixed" : "absolute", | |
display: "none", | |
left: f.left + "px", | |
top: f.top + "px" | |
}), | |
!b.inline) { | |
var g = $.datepicker._get(b, "showAnim") | |
, h = $.datepicker._get(b, "duration") | |
, i = function() { | |
var a = b.dpDiv.find("iframe.ui-datepicker-cover"); | |
if (a.length) { | |
var c = $.datepicker._getBorders(b.dpDiv); | |
a.css({ | |
left: -c[0], | |
top: -c[1], | |
width: b.dpDiv.outerWidth(), | |
height: b.dpDiv.outerHeight() | |
}) | |
} | |
}; | |
b.dpDiv.zIndex($(a).zIndex() + 1), | |
$.datepicker._datepickerShowing = !0, | |
$.effects && ($.effects.effect[g] || $.effects[g]) ? b.dpDiv.show(g, $.datepicker._get(b, "showOptions"), h, i) : b.dpDiv[g || "show"](g ? h : null, i), | |
g && h || i(), | |
b.input.is(":visible") && !b.input.is(":disabled") && b.input.focus(), | |
$.datepicker._curInst = b | |
} | |
} | |
} | |
}, | |
_updateDatepicker: function(a) { | |
this.maxRows = 4; | |
var b = $.datepicker._getBorders(a.dpDiv); | |
instActive = a, | |
a.dpDiv.empty().append(this._generateHTML(a)), | |
this._attachHandlers(a); | |
var c = a.dpDiv.find("iframe.ui-datepicker-cover"); | |
c.length && c.css({ | |
left: -b[0], | |
top: -b[1], | |
width: a.dpDiv.outerWidth(), | |
height: a.dpDiv.outerHeight() | |
}), | |
a.dpDiv.find("." + this._dayOverClass + " a").mouseover(); | |
var d = this._getNumberOfMonths(a) | |
, e = d[1] | |
, f = 17; | |
if (a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""), | |
e > 1 && a.dpDiv.addClass("ui-datepicker-multi-" + e).css("width", f * e + "em"), | |
a.dpDiv[(1 != d[0] || 1 != d[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi"), | |
a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"), | |
a == $.datepicker._curInst && $.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") && a.input[0] != document.activeElement && a.input.focus(), | |
a.yearshtml) { | |
var g = a.yearshtml; | |
setTimeout(function() { | |
g === a.yearshtml && a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml), | |
g = a.yearshtml = null | |
}, 0) | |
} | |
}, | |
_getBorders: function(a) { | |
var b = function(a) { | |
return { | |
thin: 1, | |
medium: 2, | |
thick: 3 | |
}[a] || a | |
}; | |
return [parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))] | |
}, | |
_checkOffset: function(a, b, c) { | |
var d = a.dpDiv.outerWidth() | |
, e = a.dpDiv.outerHeight() | |
, f = a.input ? a.input.outerWidth() : 0 | |
, g = a.input ? a.input.outerHeight() : 0 | |
, h = document.documentElement.clientWidth + (c ? 0 : $(document).scrollLeft()) | |
, i = document.documentElement.clientHeight + (c ? 0 : $(document).scrollTop()); | |
return b.left -= this._get(a, "isRTL") ? d - f : 0, | |
b.left -= c && b.left == a.input.offset().left ? $(document).scrollLeft() : 0, | |
b.top -= c && b.top == a.input.offset().top + g ? $(document).scrollTop() : 0, | |
b.left -= Math.min(b.left, b.left + d > h && h > d ? Math.abs(b.left + d - h) : 0), | |
b.top -= Math.min(b.top, b.top + e > i && i > e ? Math.abs(e + g) : 0), | |
b | |
}, | |
_findPos: function(a) { | |
for (var b = this._getInst(a), c = this._get(b, "isRTL"); a && ("hidden" == a.type || 1 != a.nodeType || $.expr.filters.hidden(a)); ) | |
a = a[c ? "previousSibling" : "nextSibling"]; | |
var d = $(a).offset(); | |
return [d.left, d.top] | |
}, | |
_hideDatepicker: function(a) { | |
var b = this._curInst; | |
if (b && (!a || b == $.data(a, PROP_NAME)) && this._datepickerShowing) { | |
var c = this._get(b, "showAnim") | |
, d = this._get(b, "duration") | |
, e = function() { | |
$.datepicker._tidyDialog(b) | |
}; | |
$.effects && ($.effects.effect[c] || $.effects[c]) ? b.dpDiv.hide(c, $.datepicker._get(b, "showOptions"), d, e) : b.dpDiv["slideDown" == c ? "slideUp" : "fadeIn" == c ? "fadeOut" : "hide"](c ? d : null, e), | |
c || e(), | |
this._datepickerShowing = !1; | |
var f = this._get(b, "onClose"); | |
f && f.apply(b.input ? b.input[0] : null, [b.input ? b.input.val() : "", b]), | |
this._lastInput = null, | |
this._inDialog && (this._dialogInput.css({ | |
position: "absolute", | |
left: "0", | |
top: "-100px" | |
}), | |
$.blockUI && ($.unblockUI(), | |
$("body").append(this.dpDiv))), | |
this._inDialog = !1 | |
} | |
}, | |
_tidyDialog: function(a) { | |
a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar") | |
}, | |
_checkExternalClick: function(a) { | |
if ($.datepicker._curInst) { | |
var b = $(a.target) | |
, c = $.datepicker._getInst(b[0]); | |
(b[0].id == $.datepicker._mainDivId || 0 != b.parents("#" + $.datepicker._mainDivId).length || b.hasClass($.datepicker.markerClassName) || b.closest("." + $.datepicker._triggerClass).length || !$.datepicker._datepickerShowing || $.datepicker._inDialog && $.blockUI) && (!b.hasClass($.datepicker.markerClassName) || $.datepicker._curInst == c) || $.datepicker._hideDatepicker() | |
} | |
}, | |
_adjustDate: function(a, b, c) { | |
var d = $(a) | |
, e = this._getInst(d[0]); | |
this._isDisabledDatepicker(d[0]) || (this._adjustInstDate(e, b + ("M" == c ? this._get(e, "showCurrentAtPos") : 0), c), | |
this._updateDatepicker(e)) | |
}, | |
_gotoToday: function(a) { | |
var b = $(a) | |
, c = this._getInst(b[0]); | |
if (this._get(c, "gotoCurrent") && c.currentDay) | |
c.selectedDay = c.currentDay, | |
c.drawMonth = c.selectedMonth = c.currentMonth, | |
c.drawYear = c.selectedYear = c.currentYear; | |
else { | |
var d = new Date; | |
c.selectedDay = d.getDate(), | |
c.drawMonth = c.selectedMonth = d.getMonth(), | |
c.drawYear = c.selectedYear = d.getFullYear() | |
} | |
this._notifyChange(c), | |
this._adjustDate(b) | |
}, | |
_selectMonthYear: function(a, b, c) { | |
var d = $(a) | |
, e = this._getInst(d[0]); | |
e["selected" + ("M" == c ? "Month" : "Year")] = e["draw" + ("M" == c ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10), | |
this._notifyChange(e), | |
this._adjustDate(d) | |
}, | |
_selectDay: function(a, b, c, d) { | |
var e = $(a); | |
if (!$(d).hasClass(this._unselectableClass) && !this._isDisabledDatepicker(e[0])) { | |
var f = this._getInst(e[0]); | |
f.selectedDay = f.currentDay = $("a", d).html(), | |
f.selectedMonth = f.currentMonth = b, | |
f.selectedYear = f.currentYear = c, | |
this._selectDate(a, this._formatDate(f, f.currentDay, f.currentMonth, f.currentYear)) | |
} | |
}, | |
_clearDate: function(a) { | |
var b = $(a); | |
this._getInst(b[0]); | |
this._selectDate(b, "") | |
}, | |
_selectDate: function(a, b) { | |
var c = $(a) | |
, d = this._getInst(c[0]); | |
b = null != b ? b : this._formatDate(d), | |
d.input && d.input.val(b), | |
this._updateAlternate(d); | |
var e = this._get(d, "onSelect"); | |
e ? e.apply(d.input ? d.input[0] : null, [b, d]) : d.input && d.input.trigger("change"), | |
d.inline ? this._updateDatepicker(d) : (this._hideDatepicker(), | |
this._lastInput = d.input[0], | |
"object" != typeof d.input[0] && d.input.focus(), | |
this._lastInput = null) | |
}, | |
_updateAlternate: function(a) { | |
var b = this._get(a, "altField"); | |
if (b) { | |
var c = this._get(a, "altFormat") || this._get(a, "dateFormat") | |
, d = this._getDate(a) | |
, e = this.formatDate(c, d, this._getFormatConfig(a)); | |
$(b).each(function() { | |
$(this).val(e) | |
}) | |
} | |
}, | |
noWeekends: function(a) { | |
var b = a.getDay(); | |
return [b > 0 && b < 6, ""] | |
}, | |
iso8601Week: function(a) { | |
var b = new Date(a.getTime()); | |
b.setDate(b.getDate() + 4 - (b.getDay() || 7)); | |
var c = b.getTime(); | |
return b.setMonth(0), | |
b.setDate(1), | |
Math.floor(Math.round((c - b) / 864e5) / 7) + 1 | |
}, | |
parseDate: function(a, b, c) { | |
if (null == a || null == b) | |
throw "Invalid arguments"; | |
if (b = "object" == typeof b ? b.toString() : b + "", | |
"" == b) | |
return null; | |
var d = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff; | |
d = "string" != typeof d ? d : (new Date).getFullYear() % 100 + parseInt(d, 10); | |
for (var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, f = (c ? c.dayNames : null) || this._defaults.dayNames, g = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, h = (c ? c.monthNames : null) || this._defaults.monthNames, i = -1, j = -1, k = -1, l = -1, m = !1, n = function(b) { | |
var c = s + 1 < a.length && a.charAt(s + 1) == b; | |
return c && s++, | |
c | |
}, o = function(a) { | |
var c = n(a) | |
, d = "@" == a ? 14 : "!" == a ? 20 : "y" == a && c ? 4 : "o" == a ? 3 : 2 | |
, e = new RegExp("^\\d{1," + d + "}") | |
, f = b.substring(r).match(e); | |
if (!f) | |
throw "Missing number at position " + r; | |
return r += f[0].length, | |
parseInt(f[0], 10) | |
}, p = function(a, c, d) { | |
var e = $.map(n(a) ? d : c, function(a, b) { | |
return [[b, a]] | |
}).sort(function(a, b) { | |
return -(a[1].length - b[1].length) | |
}) | |
, f = -1; | |
if ($.each(e, function(a, c) { | |
var d = c[1]; | |
if (b.substr(r, d.length).toLowerCase() == d.toLowerCase()) | |
return f = c[0], | |
r += d.length, | |
!1 | |
}), | |
f != -1) | |
return f + 1; | |
throw "Unknown name at position " + r | |
}, q = function() { | |
if (b.charAt(r) != a.charAt(s)) | |
throw "Unexpected literal at position " + r; | |
r++ | |
}, r = 0, s = 0; s < a.length; s++) | |
if (m) | |
"'" != a.charAt(s) || n("'") ? q() : m = !1; | |
else | |
switch (a.charAt(s)) { | |
case "d": | |
k = o("d"); | |
break; | |
case "D": | |
p("D", e, f); | |
break; | |
case "o": | |
l = o("o"); | |
break; | |
case "m": | |
j = o("m"); | |
break; | |
case "M": | |
j = p("M", g, h); | |
break; | |
case "y": | |
i = o("y"); | |
break; | |
case "@": | |
var t = new Date(o("@")); | |
i = t.getFullYear(), | |
j = t.getMonth() + 1, | |
k = t.getDate(); | |
break; | |
case "!": | |
var t = new Date((o("!") - this._ticksTo1970) / 1e4); | |
i = t.getFullYear(), | |
j = t.getMonth() + 1, | |
k = t.getDate(); | |
break; | |
case "'": | |
n("'") ? q() : m = !0; | |
break; | |
default: | |
q() | |
} | |
if (r < b.length) { | |
var u = b.substr(r); | |
if (!/^\s+/.test(u)) | |
throw "Extra/unparsed characters found in date: " + u | |
} | |
if (i == -1 ? i = (new Date).getFullYear() : i < 100 && (i += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (i <= d ? 0 : -100)), | |
l > -1) | |
for (j = 1, | |
k = l; ; ) { | |
var v = this._getDaysInMonth(i, j - 1); | |
if (k <= v) | |
break; | |
j++, | |
k -= v | |
} | |
var t = this._daylightSavingAdjust(new Date(i,j - 1,k)); | |
if (t.getFullYear() != i || t.getMonth() + 1 != j || t.getDate() != k) | |
throw "Invalid date"; | |
return t | |
}, | |
ATOM: "yy-mm-dd", | |
COOKIE: "D, dd M yy", | |
ISO_8601: "yy-mm-dd", | |
RFC_822: "D, d M y", | |
RFC_850: "DD, dd-M-y", | |
RFC_1036: "D, d M y", | |
RFC_1123: "D, d M yy", | |
RFC_2822: "D, d M yy", | |
RSS: "D, d M y", | |
TICKS: "!", | |
TIMESTAMP: "@", | |
W3C: "yy-mm-dd", | |
_ticksTo1970: 24 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 60 * 60 * 1e7, | |
formatDate: function(a, b, c) { | |
if (!b) | |
return ""; | |
var d = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort | |
, e = (c ? c.dayNames : null) || this._defaults.dayNames | |
, f = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort | |
, g = (c ? c.monthNames : null) || this._defaults.monthNames | |
, h = function(b) { | |
var c = m + 1 < a.length && a.charAt(m + 1) == b; | |
return c && m++, | |
c | |
} | |
, i = function(a, b, c) { | |
var d = "" + b; | |
if (h(a)) | |
for (; d.length < c; ) | |
d = "0" + d; | |
return d | |
} | |
, j = function(a, b, c, d) { | |
return h(a) ? d[b] : c[b] | |
} | |
, k = "" | |
, l = !1; | |
if (b) | |
for (var m = 0; m < a.length; m++) | |
if (l) | |
"'" != a.charAt(m) || h("'") ? k += a.charAt(m) : l = !1; | |
else | |
switch (a.charAt(m)) { | |
case "d": | |
k += i("d", b.getDate(), 2); | |
break; | |
case "D": | |
k += j("D", b.getDay(), d, e); | |
break; | |
case "o": | |
k += i("o", Math.round((new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime() - new Date(b.getFullYear(),0,0).getTime()) / 864e5), 3); | |
break; | |
case "m": | |
k += i("m", b.getMonth() + 1, 2); | |
break; | |
case "M": | |
k += j("M", b.getMonth(), f, g); | |
break; | |
case "y": | |
k += h("y") ? b.getFullYear() : (b.getYear() % 100 < 10 ? "0" : "") + b.getYear() % 100; | |
break; | |
case "@": | |
k += b.getTime(); | |
break; | |
case "!": | |
k += 1e4 * b.getTime() + this._ticksTo1970; | |
break; | |
case "'": | |
h("'") ? k += "'" : l = !0; | |
break; | |
default: | |
k += a.charAt(m) | |
} | |
return k | |
}, | |
_possibleChars: function(a) { | |
for (var b = "", c = !1, d = function(b) { | |
var c = e + 1 < a.length && a.charAt(e + 1) == b; | |
return c && e++, | |
c | |
}, e = 0; e < a.length; e++) | |
if (c) | |
"'" != a.charAt(e) || d("'") ? b += a.charAt(e) : c = !1; | |
else | |
switch (a.charAt(e)) { | |
case "d": | |
case "m": | |
case "y": | |
case "@": | |
b += "0123456789"; | |
break; | |
case "D": | |
case "M": | |
return null; | |
case "'": | |
d("'") ? b += "'" : c = !0; | |
break; | |
default: | |
b += a.charAt(e) | |
} | |
return b | |
}, | |
_get: function(a, b) { | |
return a.settings[b] !== undefined ? a.settings[b] : this._defaults[b] | |
}, | |
_setDateFromField: function(a, b) { | |
if (a.input.val() != a.lastVal) { | |
var c, d, e = this._get(a, "dateFormat"), f = a.lastVal = a.input ? a.input.val() : null; | |
c = d = this._getDefaultDate(a); | |
var g = this._getFormatConfig(a); | |
try { | |
c = this.parseDate(e, f, g) || d | |
} catch (h) { | |
this.log(h), | |
f = b ? "" : f | |
} | |
a.selectedDay = c.getDate(), | |
a.drawMonth = a.selectedMonth = c.getMonth(), | |
a.drawYear = a.selectedYear = c.getFullYear(), | |
a.currentDay = f ? c.getDate() : 0, | |
a.currentMonth = f ? c.getMonth() : 0, | |
a.currentYear = f ? c.getFullYear() : 0, | |
this._adjustInstDate(a) | |
} | |
}, | |
_getDefaultDate: function(a) { | |
return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date)) | |
}, | |
_determineDate: function(a, b, c) { | |
var d = function(a) { | |
var b = new Date; | |
return b.setDate(b.getDate() + a), | |
b | |
} | |
, e = function(b) { | |
try { | |
return $.datepicker.parseDate($.datepicker._get(a, "dateFormat"), b, $.datepicker._getFormatConfig(a)) | |
} catch (c) {} | |
for (var d = (b.toLowerCase().match(/^c/) ? $.datepicker._getDate(a) : null) || new Date, e = d.getFullYear(), f = d.getMonth(), g = d.getDate(), h = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, i = h.exec(b); i; ) { | |
switch (i[2] || "d") { | |
case "d": | |
case "D": | |
g += parseInt(i[1], 10); | |
break; | |
case "w": | |
case "W": | |
g += 7 * parseInt(i[1], 10); | |
break; | |
case "m": | |
case "M": | |
f += parseInt(i[1], 10), | |
g = Math.min(g, $.datepicker._getDaysInMonth(e, f)); | |
break; | |
case "y": | |
case "Y": | |
e += parseInt(i[1], 10), | |
g = Math.min(g, $.datepicker._getDaysInMonth(e, f)) | |
} | |
i = h.exec(b) | |
} | |
return new Date(e,f,g) | |
} | |
, f = null == b || "" === b ? c : "string" == typeof b ? e(b) : "number" == typeof b ? isNaN(b) ? c : d(b) : new Date(b.getTime()); | |
return f = f && "Invalid Date" == f.toString() ? c : f, | |
f && (f.setHours(0), | |
f.setMinutes(0), | |
f.setSeconds(0), | |
f.setMilliseconds(0)), | |
this._daylightSavingAdjust(f) | |
}, | |
_daylightSavingAdjust: function(a) { | |
return a ? (a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0), | |
a) : null | |
}, | |
_setDate: function(a, b, c) { | |
var d = !b | |
, e = a.selectedMonth | |
, f = a.selectedYear | |
, g = this._restrictMinMax(a, this._determineDate(a, b, new Date)); | |
a.selectedDay = a.currentDay = g.getDate(), | |
a.drawMonth = a.selectedMonth = a.currentMonth = g.getMonth(), | |
a.drawYear = a.selectedYear = a.currentYear = g.getFullYear(), | |
e == a.selectedMonth && f == a.selectedYear || c || this._notifyChange(a), | |
this._adjustInstDate(a), | |
a.input && a.input.val(d ? "" : this._formatDate(a)) | |
}, | |
_getDate: function(a) { | |
var b = !a.currentYear || a.input && "" == a.input.val() ? null : this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay)); | |
return b | |
}, | |
_attachHandlers: function(a) { | |
var b = this._get(a, "stepMonths") | |
, c = "#" + a.id.replace(/\\\\/g, "\\"); | |
a.dpDiv.find("[data-handler]").map(function() { | |
var a = { | |
prev: function() { | |
window["DP_jQuery_" + dpuuid].datepicker._adjustDate(c, -b, "M") | |
}, | |
next: function() { | |
window["DP_jQuery_" + dpuuid].datepicker._adjustDate(c, +b, "M") | |
}, | |
hide: function() { | |
window["DP_jQuery_" + dpuuid].datepicker._hideDatepicker() | |
}, | |
today: function() { | |
window["DP_jQuery_" + dpuuid].datepicker._gotoToday(c) | |
}, | |
selectDay: function() { | |
return window["DP_jQuery_" + dpuuid].datepicker._selectDay(c, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this), | |
!1 | |
}, | |
selectMonth: function() { | |
return window["DP_jQuery_" + dpuuid].datepicker._selectMonthYear(c, this, "M"), | |
!1 | |
}, | |
selectYear: function() { | |
return window["DP_jQuery_" + dpuuid].datepicker._selectMonthYear(c, this, "Y"), | |
!1 | |
} | |
}; | |
$(this).bind(this.getAttribute("data-event"), a[this.getAttribute("data-handler")]) | |
}) | |
}, | |
_generateHTML: function(a) { | |
var b = new Date; | |
b = this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate())); | |
var c = this._get(a, "isRTL") | |
, d = this._get(a, "showButtonPanel") | |
, e = this._get(a, "hideIfNoPrevNext") | |
, f = this._get(a, "navigationAsDateFormat") | |
, g = this._getNumberOfMonths(a) | |
, h = this._get(a, "showCurrentAtPos") | |
, i = this._get(a, "stepMonths") | |
, j = 1 != g[0] || 1 != g[1] | |
, k = this._daylightSavingAdjust(a.currentDay ? new Date(a.currentYear,a.currentMonth,a.currentDay) : new Date(9999,9,9)) | |
, l = this._getMinMaxDate(a, "min") | |
, m = this._getMinMaxDate(a, "max") | |
, n = a.drawMonth - h | |
, o = a.drawYear; | |
if (n < 0 && (n += 12, | |
o--), | |
m) { | |
var p = this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth() - g[0] * g[1] + 1,m.getDate())); | |
for (p = l && p < l ? l : p; this._daylightSavingAdjust(new Date(o,n,1)) > p; ) | |
n--, | |
n < 0 && (n = 11, | |
o--) | |
} | |
a.drawMonth = n, | |
a.drawYear = o; | |
var q = this._get(a, "prevText"); | |
q = f ? this.formatDate(q, this._daylightSavingAdjust(new Date(o,n - i,1)), this._getFormatConfig(a)) : q; | |
var r = this._canAdjustMonth(a, -1, o, n) ? '<a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click" title="' + q + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + q + "</span></a>" : e ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + q + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + q + "</span></a>" | |
, s = this._get(a, "nextText"); | |
s = f ? this.formatDate(s, this._daylightSavingAdjust(new Date(o,n + i,1)), this._getFormatConfig(a)) : s; | |
var t = this._canAdjustMonth(a, 1, o, n) ? '<a class="ui-datepicker-next ui-corner-all" data-handler="next" data-event="click" title="' + s + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + s + "</span></a>" : e ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + s + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + s + "</span></a>" | |
, u = this._get(a, "currentText") | |
, v = this._get(a, "gotoCurrent") && a.currentDay ? k : b; | |
u = f ? this.formatDate(u, v, this._getFormatConfig(a)) : u; | |
var w = a.inline ? "" : '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">' + this._get(a, "closeText") + "</button>" | |
, x = d ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (c ? w : "") + (this._isInRange(a, v) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click">' + u + "</button>" : "") + (c ? "" : w) + "</div>" : "" | |
, y = parseInt(this._get(a, "firstDay"), 10); | |
y = isNaN(y) ? 0 : y; | |
for (var z = this._get(a, "showWeek"), A = this._get(a, "dayNames"), B = (this._get(a, "dayNamesShort"), | |
this._get(a, "dayNamesMin")), C = this._get(a, "monthNames"), D = this._get(a, "monthNamesShort"), E = this._get(a, "beforeShowDay"), F = this._get(a, "showOtherMonths"), G = this._get(a, "selectOtherMonths"), H = (this._get(a, "calculateWeek") || this.iso8601Week, | |
this._getDefaultDate(a)), I = "", J = 0; J < g[0]; J++) { | |
var K = ""; | |
this.maxRows = 4; | |
for (var L = 0; L < g[1]; L++) { | |
var M = this._daylightSavingAdjust(new Date(o,n,a.selectedDay)) | |
, N = " ui-corner-all" | |
, O = ""; | |
if (j) { | |
if (O += '<div class="ui-datepicker-group', | |
g[1] > 1) | |
switch (L) { | |
case 0: | |
O += " ui-datepicker-group-first", | |
N = " ui-corner-" + (c ? "right" : "left"); | |
break; | |
case g[1] - 1: | |
O += " ui-datepicker-group-last", | |
N = " ui-corner-" + (c ? "left" : "right"); | |
break; | |
default: | |
O += " ui-datepicker-group-middle", | |
N = "" | |
} | |
O += '">' | |
} | |
O += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + N + '">' + (/all|left/.test(N) && 0 == J ? c ? t : r : "") + (/all|right/.test(N) && 0 == J ? c ? r : t : "") + this._generateMonthYearHeader(a, n, o, l, m, J > 0 || L > 0, C, D) + '</div><table class="ui-datepicker-calendar"><thead><tr>'; | |
for (var P = z ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : "", Q = 0; Q < 7; Q++) { | |
var R = (Q + y) % 7; | |
P += "<th" + ((Q + y + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + '><span title="' + A[R] + '">' + B[R] + "</span></th>" | |
} | |
O += P + "</tr></thead><tbody>"; | |
var S = this._getDaysInMonth(o, n); | |
o == a.selectedYear && n == a.selectedMonth && (a.selectedDay = Math.min(a.selectedDay, S)); | |
var T = (this._getFirstDayOfMonth(o, n) - y + 7) % 7 | |
, U = Math.ceil((T + S) / 7) | |
, V = j && this.maxRows > U ? this.maxRows : U; | |
this.maxRows = V; | |
for (var W = this._daylightSavingAdjust(new Date(o,n,1 - T)), X = 0; X < V; X++) { | |
O += "<tr>"; | |
for (var Y = z ? '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(W) + "</td>" : "", Q = 0; Q < 7; Q++) { | |
var Z = E ? E.apply(a.input ? a.input[0] : null, [W]) : [!0, ""] | |
, _ = W.getMonth() != n | |
, aa = _ && !G || !Z[0] || l && W < l || m && W > m; | |
Y += '<td class="' + ((Q + y + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (_ ? " ui-datepicker-other-month" : "") + (W.getTime() == M.getTime() && n == a.selectedMonth && a._keyEvent || H.getTime() == W.getTime() && H.getTime() == M.getTime() ? " " + this._dayOverClass : "") + (aa ? " " + this._unselectableClass + " ui-state-disabled" : "") + (_ && !F ? "" : " " + Z[1] + (W.getTime() == k.getTime() ? " " + this._currentClass : "") + (W.getTime() == b.getTime() ? " ui-datepicker-today" : "")) + '"' + (_ && !F || !Z[2] ? "" : ' title="' + Z[2] + '"') + (aa ? "" : ' data-handler="selectDay" data-event="click" data-month="' + W.getMonth() + '" data-year="' + W.getFullYear() + '"') + ">" + (_ && !F ? " " : aa ? '<span class="ui-state-default">' + W.getDate() + "</span>" : '<a class="ui-state-default' + (W.getTime() == b.getTime() ? " ui-state-highlight" : "") + (W.getTime() == k.getTime() ? " ui-state-active" : "") + (_ ? " ui-priority-secondary" : "") + '" href="#">' + W.getDate() + "</a>") + "</td>", | |
W.setDate(W.getDate() + 1), | |
W = this._daylightSavingAdjust(W) | |
} | |
O += Y + "</tr>" | |
} | |
n++, | |
n > 11 && (n = 0, | |
o++), | |
O += "</tbody></table>" + (j ? "</div>" + (g[0] > 0 && L == g[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : ""), | |
K += O | |
} | |
I += K | |
} | |
return I += x + ($.browser.msie && parseInt($.browser.version, 10) < 7 && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : ""), | |
a._keyEvent = !1, | |
I | |
}, | |
_generateMonthYearHeader: function(a, b, c, d, e, f, g, h) { | |
var i = this._get(a, "changeMonth") | |
, j = this._get(a, "changeYear") | |
, k = this._get(a, "showMonthAfterYear") | |
, l = '<div class="ui-datepicker-title">' | |
, m = ""; | |
if (f || !i) | |
m += '<span class="ui-datepicker-month">' + g[b] + "</span>"; | |
else { | |
var n = d && d.getFullYear() == c | |
, o = e && e.getFullYear() == c; | |
m += '<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change">'; | |
for (var p = 0; p < 12; p++) | |
(!n || p >= d.getMonth()) && (!o || p <= e.getMonth()) && (m += '<option value="' + p + '"' + (p == b ? ' selected="selected"' : "") + ">" + h[p] + "</option>"); | |
m += "</select>" | |
} | |
if (k || (l += m + (!f && i && j ? "" : " ")), | |
!a.yearshtml) | |
if (a.yearshtml = "", | |
f || !j) | |
l += '<span class="ui-datepicker-year">' + c + "</span>"; | |
else { | |
var q = this._get(a, "yearRange").split(":") | |
, r = (new Date).getFullYear() | |
, s = function(a) { | |
var b = a.match(/c[+-].*/) ? c + parseInt(a.substring(1), 10) : a.match(/[+-].*/) ? r + parseInt(a, 10) : parseInt(a, 10); | |
return isNaN(b) ? r : b | |
} | |
, t = s(q[0]) | |
, u = Math.max(t, s(q[1] || "")); | |
for (t = d ? Math.max(t, d.getFullYear()) : t, | |
u = e ? Math.min(u, e.getFullYear()) : u, | |
a.yearshtml += '<select class="ui-datepicker-year" data-handler="selectYear" data-event="change">'; t <= u; t++) | |
a.yearshtml += '<option value="' + t + '"' + (t == c ? ' selected="selected"' : "") + ">" + t + "</option>"; | |
a.yearshtml += "</select>", | |
l += a.yearshtml, | |
a.yearshtml = null | |
} | |
return l += this._get(a, "yearSuffix"), | |
k && (l += (!f && i && j ? "" : " ") + m), | |
l += "</div>" | |
}, | |
_adjustInstDate: function(a, b, c) { | |
var d = a.drawYear + ("Y" == c ? b : 0) | |
, e = a.drawMonth + ("M" == c ? b : 0) | |
, f = Math.min(a.selectedDay, this._getDaysInMonth(d, e)) + ("D" == c ? b : 0) | |
, g = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(d,e,f))); | |
a.selectedDay = g.getDate(), | |
a.drawMonth = a.selectedMonth = g.getMonth(), | |
a.drawYear = a.selectedYear = g.getFullYear(), | |
"M" != c && "Y" != c || this._notifyChange(a) | |
}, | |
_restrictMinMax: function(a, b) { | |
var c = this._getMinMaxDate(a, "min") | |
, d = this._getMinMaxDate(a, "max") | |
, e = c && b < c ? c : b; | |
return e = d && e > d ? d : e | |
}, | |
_notifyChange: function(a) { | |
var b = this._get(a, "onChangeMonthYear"); | |
b && b.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a]) | |
}, | |
_getNumberOfMonths: function(a) { | |
var b = this._get(a, "numberOfMonths"); | |
return null == b ? [1, 1] : "number" == typeof b ? [1, b] : b | |
}, | |
_getMinMaxDate: function(a, b) { | |
return this._determineDate(a, this._get(a, b + "Date"), null) | |
}, | |
_getDaysInMonth: function(a, b) { | |
return 32 - this._daylightSavingAdjust(new Date(a,b,32)).getDate() | |
}, | |
_getFirstDayOfMonth: function(a, b) { | |
return new Date(a,b,1).getDay() | |
}, | |
_canAdjustMonth: function(a, b, c, d) { | |
var e = this._getNumberOfMonths(a) | |
, f = this._daylightSavingAdjust(new Date(c,d + (b < 0 ? b : e[0] * e[1]),1)); | |
return b < 0 && f.setDate(this._getDaysInMonth(f.getFullYear(), f.getMonth())), | |
this._isInRange(a, f) | |
}, | |
_isInRange: function(a, b) { | |
var c = this._getMinMaxDate(a, "min") | |
, d = this._getMinMaxDate(a, "max"); | |
return (!c || b.getTime() >= c.getTime()) && (!d || b.getTime() <= d.getTime()) | |
}, | |
_getFormatConfig: function(a) { | |
var b = this._get(a, "shortYearCutoff"); | |
return b = "string" != typeof b ? b : (new Date).getFullYear() % 100 + parseInt(b, 10), | |
{ | |
shortYearCutoff: b, | |
dayNamesShort: this._get(a, "dayNamesShort"), | |
dayNames: this._get(a, "dayNames"), | |
monthNamesShort: this._get(a, "monthNamesShort"), | |
monthNames: this._get(a, "monthNames") | |
} | |
}, | |
_formatDate: function(a, b, c, d) { | |
b || (a.currentDay = a.selectedDay, | |
a.currentMonth = a.selectedMonth, | |
a.currentYear = a.selectedYear); | |
var e = b ? "object" == typeof b ? b : this._daylightSavingAdjust(new Date(d,c,b)) : this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay)); | |
return this.formatDate(this._get(a, "dateFormat"), e, this._getFormatConfig(a)) | |
} | |
}), | |
$.fn.datepicker = function(a) { | |
if (!this.length) | |
return this; | |
$.datepicker.initialized || ($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv), | |
$.datepicker.initialized = !0); | |
var b = Array.prototype.slice.call(arguments, 1); | |
return "string" != typeof a || "isDisabled" != a && "getDate" != a && "widget" != a ? "option" == a && 2 == arguments.length && "string" == typeof arguments[1] ? $.datepicker["_" + a + "Datepicker"].apply($.datepicker, [this[0]].concat(b)) : this.each(function() { | |
"string" == typeof a ? $.datepicker["_" + a + "Datepicker"].apply($.datepicker, [this].concat(b)) : $.datepicker._attachDatepicker(this, a) | |
}) : $.datepicker["_" + a + "Datepicker"].apply($.datepicker, [this[0]].concat(b)) | |
} | |
, | |
$.datepicker = new Datepicker, | |
$.datepicker.initialized = !1, | |
$.datepicker.uuid = (new Date).getTime(), | |
$.datepicker.version = "1.9.0", | |
window["DP_jQuery_" + dpuuid] = $ | |
}(jQuery), | |
function(a, b) { | |
var c = "ui-dialog ui-widget ui-widget-content ui-corner-all " | |
, d = { | |
buttons: !0, | |
height: !0, | |
maxHeight: !0, | |
maxWidth: !0, | |
minHeight: !0, | |
minWidth: !0, | |
width: !0 | |
} | |
, e = { | |
maxHeight: !0, | |
maxWidth: !0, | |
minHeight: !0, | |
minWidth: !0 | |
}; | |
a.widget("ui.dialog", { | |
version: "1.9.0", | |
options: { | |
autoOpen: !0, | |
buttons: {}, | |
closeOnEscape: !0, | |
closeText: "close", | |
dialogClass: "", | |
draggable: !0, | |
hide: null, | |
height: "auto", | |
maxHeight: !1, | |
maxWidth: !1, | |
minHeight: 150, | |
minWidth: 150, | |
modal: !1, | |
position: { | |
my: "center", | |
at: "center", | |
of: window, | |
collision: "fit", | |
using: function(b) { | |
var c = a(this).css(b).offset().top; | |
c < 0 && a(this).css("top", b.top - c) | |
} | |
}, | |
resizable: !0, | |
show: null, | |
stack: !0, | |
title: "", | |
width: 300, | |
zIndex: 1e3 | |
}, | |
_create: function() { | |
this.originalTitle = this.element.attr("title"), | |
"string" != typeof this.originalTitle && (this.originalTitle = ""), | |
this.oldPosition = { | |
parent: this.element.parent(), | |
index: this.element.parent().children().index(this.element) | |
}, | |
this.options.title = this.options.title || this.originalTitle; | |
var b = this | |
, d = this.options | |
, e = d.title || " " | |
, f = (this.uiDialog = a("<div>")).addClass(c + d.dialogClass).css({ | |
display: "none", | |
outline: 0, | |
zIndex: d.zIndex | |
}).attr("tabIndex", -1).keydown(function(c) { | |
d.closeOnEscape && !c.isDefaultPrevented() && c.keyCode && c.keyCode === a.ui.keyCode.ESCAPE && (b.close(c), | |
c.preventDefault()) | |
}).mousedown(function(a) { | |
b.moveToTop(!1, a) | |
}).appendTo("body") | |
, g = (this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(f), | |
(this.uiDialogTitlebar = a("<div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(f)) | |
, h = a("<a href='#'></a>").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").click(function(a) { | |
a.preventDefault(), | |
b.close(a) | |
}).appendTo(g) | |
, i = ((this.uiDialogTitlebarCloseText = a("<span>")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(h), | |
a("<span>").uniqueId().addClass("ui-dialog-title").html(e).prependTo(g)) | |
, j = (this.uiDialogButtonPane = a("<div>")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"); | |
(this.uiButtonSet = a("<div>")).addClass("ui-dialog-buttonset").appendTo(j); | |
f.attr({ | |
role: "dialog", | |
"aria-labelledby": i.attr("id") | |
}), | |
g.find("*").add(g).disableSelection(), | |
this._hoverable(h), | |
this._focusable(h), | |
d.draggable && a.fn.draggable && this._makeDraggable(), | |
d.resizable && a.fn.resizable && this._makeResizable(), | |
this._createButtons(d.buttons), | |
this._isOpen = !1, | |
a.fn.bgiframe && f.bgiframe(), | |
this._on(f, { | |
keydown: function(b) { | |
if (d.modal && b.keyCode === a.ui.keyCode.TAB) { | |
var c = a(":tabbable", f) | |
, e = c.filter(":first") | |
, g = c.filter(":last"); | |
return b.target !== g[0] || b.shiftKey ? b.target === e[0] && b.shiftKey ? (g.focus(1), | |
!1) : void 0 : (e.focus(1), | |
!1) | |
} | |
} | |
}) | |
}, | |
_init: function() { | |
this.options.autoOpen && this.open() | |
}, | |
_destroy: function() { | |
var a, b = this.oldPosition; | |
this.overlay && this.overlay.destroy(), | |
this.uiDialog.hide(), | |
this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"), | |
this.uiDialog.remove(), | |
this.originalTitle && this.element.attr("title", this.originalTitle), | |
a = b.parent.children().eq(b.index), | |
a.length && a[0] !== this.element[0] ? a.before(this.element) : b.parent.append(this.element) | |
}, | |
widget: function() { | |
return this.uiDialog | |
}, | |
close: function(b) { | |
var c, d, e = this; | |
if (this._isOpen && !1 !== this._trigger("beforeClose", b)) | |
return this._isOpen = !1, | |
this.overlay && this.overlay.destroy(), | |
this.options.hide ? this.uiDialog.hide(this.options.hide, function() { | |
e._trigger("close", b) | |
}) : (this.uiDialog.hide(), | |
this._trigger("close", b)), | |
a.ui.dialog.overlay.resize(), | |
this.options.modal && (c = 0, | |
a(".ui-dialog").each(function() { | |
this !== e.uiDialog[0] && (d = a(this).css("z-index"), | |
isNaN(d) || (c = Math.max(c, d))) | |
}), | |
a.ui.dialog.maxZ = c), | |
this | |
}, | |
isOpen: function() { | |
return this._isOpen | |
}, | |
moveToTop: function(b, c) { | |
var d, e = this.options; | |
return e.modal && !b || !e.stack && !e.modal ? this._trigger("focus", c) : (e.zIndex > a.ui.dialog.maxZ && (a.ui.dialog.maxZ = e.zIndex), | |
this.overlay && (a.ui.dialog.maxZ += 1, | |
a.ui.dialog.overlay.maxZ = a.ui.dialog.maxZ, | |
this.overlay.$el.css("z-index", a.ui.dialog.overlay.maxZ)), | |
d = { | |
scrollTop: this.element.scrollTop(), | |
scrollLeft: this.element.scrollLeft() | |
}, | |
a.ui.dialog.maxZ += 1, | |
this.uiDialog.css("z-index", a.ui.dialog.maxZ), | |
this.element.attr(d), | |
this._trigger("focus", c), | |
this) | |
}, | |
open: function() { | |
if (!this._isOpen) { | |
var b, c = this.options, d = this.uiDialog; | |
return this._size(), | |
this._position(c.position), | |
d.show(c.show), | |
this.overlay = c.modal ? new a.ui.dialog.overlay(this) : null, | |
this.moveToTop(!0), | |
b = this.element.find(":tabbable"), | |
b.length || (b = this.uiDialogButtonPane.find(":tabbable"), | |
b.length || (b = d)), | |
b.eq(0).focus(), | |
this._isOpen = !0, | |
this._trigger("open"), | |
this | |
} | |
}, | |
_createButtons: function(b) { | |
var c = this | |
, d = !1; | |
this.uiDialogButtonPane.remove(), | |
this.uiButtonSet.empty(), | |
"object" == typeof b && null !== b && a.each(b, function() { | |
return !(d = !0) | |
}), | |
d ? (a.each(b, function(b, d) { | |
d = a.isFunction(d) ? { | |
click: d, | |
text: b | |
} : d; | |
var e = a("<button type='button'>").attr(d, !0).unbind("click").click(function() { | |
d.click.apply(c.element[0], arguments) | |
}).appendTo(c.uiButtonSet); | |
a.fn.button && e.button() | |
}), | |
this.uiDialog.addClass("ui-dialog-buttons"), | |
this.uiDialogButtonPane.appendTo(this.uiDialog)) : this.uiDialog.removeClass("ui-dialog-buttons") | |
}, | |
_makeDraggable: function() { | |
function b(a) { | |
return { | |
position: a.position, | |
offset: a.offset | |
} | |
} | |
var c = this | |
, d = this.options; | |
this.uiDialog.draggable({ | |
cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", | |
handle: ".ui-dialog-titlebar", | |
containment: "document", | |
start: function(d, e) { | |
a(this).addClass("ui-dialog-dragging"), | |
c._trigger("dragStart", d, b(e)) | |
}, | |
drag: function(a, d) { | |
c._trigger("drag", a, b(d)) | |
}, | |
stop: function(e, f) { | |
d.position = [f.position.left - c.document.scrollLeft(), f.position.top - c.document.scrollTop()], | |
a(this).removeClass("ui-dialog-dragging"), | |
c._trigger("dragStop", e, b(f)), | |
a.ui.dialog.overlay.resize() | |
} | |
}) | |
}, | |
_makeResizable: function(c) { | |
function d(a) { | |
return { | |
originalPosition: a.originalPosition, | |
originalSize: a.originalSize, | |
position: a.position, | |
size: a.size | |
} | |
} | |
c = c === b ? this.options.resizable : c; | |
var e = this | |
, f = this.options | |
, g = this.uiDialog.css("position") | |
, h = "string" == typeof c ? c : "n,e,s,w,se,sw,ne,nw"; | |
this.uiDialog.resizable({ | |
cancel: ".ui-dialog-content", | |
containment: "document", | |
alsoResize: this.element, | |
maxWidth: f.maxWidth, | |
maxHeight: f.maxHeight, | |
minWidth: f.minWidth, | |
minHeight: this._minHeight(), | |
handles: h, | |
start: function(b, c) { | |
a(this).addClass("ui-dialog-resizing"), | |
e._trigger("resizeStart", b, d(c)) | |
}, | |
resize: function(a, b) { | |
e._trigger("resize", a, d(b)) | |
}, | |
stop: function(b, c) { | |
a(this).removeClass("ui-dialog-resizing"), | |
f.height = a(this).height(), | |
f.width = a(this).width(), | |
e._trigger("resizeStop", b, d(c)), | |
a.ui.dialog.overlay.resize() | |
} | |
}).css("position", g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se") | |
}, | |
_minHeight: function() { | |
var a = this.options; | |
return "auto" === a.height ? a.minHeight : Math.min(a.minHeight, a.height) | |
}, | |
_position: function(b) { | |
var c, d = [], e = [0, 0]; | |
b ? (("string" == typeof b || "object" == typeof b && "0"in b) && (d = b.split ? b.split(" ") : [b[0], b[1]], | |
1 === d.length && (d[1] = d[0]), | |
a.each(["left", "top"], function(a, b) { | |
+d[a] === d[a] && (e[a] = d[a], | |
d[a] = b) | |
}), | |
b = { | |
my: d.join(" "), | |
at: d.join(" "), | |
offset: e.join(" ") | |
}), | |
b = a.extend({}, a.ui.dialog.prototype.options.position, b)) : b = a.ui.dialog.prototype.options.position, | |
c = this.uiDialog.is(":visible"), | |
c || this.uiDialog.show(), | |
this.uiDialog.position(b), | |
c || this.uiDialog.hide() | |
}, | |
_setOptions: function(b) { | |
var c = this | |
, f = {} | |
, g = !1; | |
a.each(b, function(a, b) { | |
c._setOption(a, b), | |
a in d && (g = !0), | |
a in e && (f[a] = b) | |
}), | |
g && this._size(), | |
this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", f) | |
}, | |
_setOption: function(b, d) { | |
var e, f, g = this.uiDialog; | |
switch (b) { | |
case "buttons": | |
this._createButtons(d); | |
break; | |
case "closeText": | |
this.uiDialogTitlebarCloseText.text("" + d); | |
break; | |
case "dialogClass": | |
g.removeClass(this.options.dialogClass).addClass(c + d); | |
break; | |
case "disabled": | |
d ? g.addClass("ui-dialog-disabled") : g.removeClass("ui-dialog-disabled"); | |
break; | |
case "draggable": | |
e = g.is(":data(draggable)"), | |
e && !d && g.draggable("destroy"), | |
!e && d && this._makeDraggable(); | |
break; | |
case "position": | |
this._position(d); | |
break; | |
case "resizable": | |
f = g.is(":data(resizable)"), | |
f && !d && g.resizable("destroy"), | |
f && "string" == typeof d && g.resizable("option", "handles", d), | |
f || d === !1 || this._makeResizable(d); | |
break; | |
case "title": | |
a(".ui-dialog-title", this.uiDialogTitlebar).html("" + (d || " ")) | |
} | |
this._super(b, d) | |
}, | |
_size: function() { | |
var b, c, d, e = this.options, f = this.uiDialog.is(":visible"); | |
this.element.show().css({ | |
width: "auto", | |
minHeight: 0, | |
height: 0 | |
}), | |
e.minWidth > e.width && (e.width = e.minWidth), | |
b = this.uiDialog.css({ | |
height: "auto", | |
width: e.width | |
}).outerHeight(), | |
c = Math.max(0, e.minHeight - b), | |
"auto" === e.height ? a.support.minHeight ? this.element.css({ | |
minHeight: c, | |
height: "auto" | |
}) : (this.uiDialog.show(), | |
d = this.element.css("height", "auto").height(), | |
f || this.uiDialog.hide(), | |
this.element.height(Math.max(d, c))) : this.element.height(Math.max(e.height - b, 0)), | |
this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight()) | |
} | |
}), | |
a.extend(a.ui.dialog, { | |
uuid: 0, | |
maxZ: 0, | |
getTitleId: function(a) { | |
var b = a.attr("id"); | |
return b || (this.uuid += 1, | |
b = this.uuid), | |
"ui-dialog-title-" + b | |
}, | |
overlay: function(b) { | |
this.$el = a.ui.dialog.overlay.create(b) | |
} | |
}), | |
a.extend(a.ui.dialog.overlay, { | |
instances: [], | |
oldInstances: [], | |
maxZ: 0, | |
events: a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function(a) { | |
return a + ".dialog-overlay" | |
}).join(" "), | |
create: function(b) { | |
0 === this.instances.length && (setTimeout(function() { | |
a.ui.dialog.overlay.instances.length && a(document).bind(a.ui.dialog.overlay.events, function(b) { | |
if (a(b.target).zIndex() < a.ui.dialog.overlay.maxZ) | |
return !1 | |
}) | |
}, 1), | |
a(window).bind("resize.dialog-overlay", a.ui.dialog.overlay.resize)); | |
var c = this.oldInstances.pop() || a("<div>").addClass("ui-widget-overlay"); | |
return a(document).bind("keydown.dialog-overlay", function(d) { | |
var e = a.ui.dialog.overlay.instances; | |
0 !== e.length && e[e.length - 1] === c && b.options.closeOnEscape && !d.isDefaultPrevented() && d.keyCode && d.keyCode === a.ui.keyCode.ESCAPE && (b.close(d), | |
d.preventDefault()) | |
}), | |
c.appendTo(document.body).css({ | |
width: this.width(), | |
height: this.height() | |
}), | |
a.fn.bgiframe && c.bgiframe(), | |
this.instances.push(c), | |
c | |
}, | |
destroy: function(b) { | |
var c = a.inArray(b, this.instances) | |
, d = 0; | |
c !== -1 && this.oldInstances.push(this.instances.splice(c, 1)[0]), | |
0 === this.instances.length && a([document, window]).unbind(".dialog-overlay"), | |
b.height(0).width(0).remove(), | |
a.each(this.instances, function() { | |
d = Math.max(d, this.css("z-index")) | |
}), | |
this.maxZ = d | |
}, | |
height: function() { | |
var b, c; | |
return a.browser.msie ? (b = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight), | |
c = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight), | |
b < c ? a(window).height() + "px" : b + "px") : a(document).height() + "px" | |
}, | |
width: function() { | |
var b, c; | |
return a.browser.msie ? (b = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth), | |
c = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth), | |
b < c ? a(window).width() + "px" : b + "px") : a(document).width() + "px" | |
}, | |
resize: function() { | |
var b = a([]); | |
a.each(a.ui.dialog.overlay.instances, function() { | |
b = b.add(this) | |
}), | |
b.css({ | |
width: 0, | |
height: 0 | |
}).css({ | |
width: a.ui.dialog.overlay.width(), | |
height: a.ui.dialog.overlay.height() | |
}) | |
} | |
}), | |
a.extend(a.ui.dialog.overlay.prototype, { | |
destroy: function() { | |
a.ui.dialog.overlay.destroy(this.$el) | |
} | |
}) | |
}(jQuery), | |
function(a, b) { | |
a.widget("ui.draggable", a.ui.mouse, { | |
version: "1.9.0", | |
widgetEventPrefix: "drag", | |
options: { | |
addClasses: !0, | |
appendTo: "parent", | |
axis: !1, | |
connectToSortable: !1, | |
containment: !1, | |
cursor: "auto", | |
cursorAt: !1, | |
grid: !1, | |
handle: !1, | |
helper: "original", | |
iframeFix: !1, | |
opacity: !1, | |
refreshPositions: !1, | |
revert: !1, | |
revertDuration: 500, | |
scope: "default", | |
scroll: !0, | |
scrollSensitivity: 20, | |
scrollSpeed: 20, | |
snap: !1, | |
snapMode: "both", | |
snapTolerance: 20, | |
stack: !1, | |
zIndex: !1 | |
}, | |
_create: function() { | |
"original" != this.options.helper || /^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative"), | |
this.options.addClasses && this.element.addClass("ui-draggable"), | |
this.options.disabled && this.element.addClass("ui-draggable-disabled"), | |
this._mouseInit() | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"), | |
this._mouseDestroy() | |
}, | |
_mouseCapture: function(b) { | |
var c = this.options; | |
return !(this.helper || c.disabled || a(b.target).is(".ui-resizable-handle")) && (this.handle = this._getHandle(b), | |
!!this.handle && (a(c.iframeFix === !0 ? "iframe" : c.iframeFix).each(function() { | |
a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({ | |
width: this.offsetWidth + "px", | |
height: this.offsetHeight + "px", | |
position: "absolute", | |
opacity: "0.001", | |
zIndex: 1e3 | |
}).css(a(this).offset()).appendTo("body") | |
}), | |
!0)) | |
}, | |
_mouseStart: function(b) { | |
var c = this.options; | |
return this.helper = this._createHelper(b), | |
this.helper.addClass("ui-draggable-dragging"), | |
this._cacheHelperProportions(), | |
a.ui.ddmanager && (a.ui.ddmanager.current = this), | |
this._cacheMargins(), | |
this.cssPosition = this.helper.css("position"), | |
this.scrollParent = this.helper.scrollParent(), | |
this.offset = this.positionAbs = this.element.offset(), | |
this.offset = { | |
top: this.offset.top - this.margins.top, | |
left: this.offset.left - this.margins.left | |
}, | |
a.extend(this.offset, { | |
click: { | |
left: b.pageX - this.offset.left, | |
top: b.pageY - this.offset.top | |
}, | |
parent: this._getParentOffset(), | |
relative: this._getRelativeOffset() | |
}), | |
this.originalPosition = this.position = this._generatePosition(b), | |
this.originalPageX = b.pageX, | |
this.originalPageY = b.pageY, | |
c.cursorAt && this._adjustOffsetFromHelper(c.cursorAt), | |
c.containment && this._setContainment(), | |
this._trigger("start", b) === !1 ? (this._clear(), | |
!1) : (this._cacheHelperProportions(), | |
a.ui.ddmanager && !c.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b), | |
this._mouseDrag(b, !0), | |
a.ui.ddmanager && a.ui.ddmanager.dragStart(this, b), | |
!0) | |
}, | |
_mouseDrag: function(b, c) { | |
if (this.position = this._generatePosition(b), | |
this.positionAbs = this._convertPositionTo("absolute"), | |
!c) { | |
var d = this._uiHash(); | |
if (this._trigger("drag", b, d) === !1) | |
return this._mouseUp({}), | |
!1; | |
this.position = d.position | |
} | |
return this.options.axis && "y" == this.options.axis || (this.helper[0].style.left = this.position.left + "px"), | |
this.options.axis && "x" == this.options.axis || (this.helper[0].style.top = this.position.top + "px"), | |
a.ui.ddmanager && a.ui.ddmanager.drag(this, b), | |
!1 | |
}, | |
_mouseStop: function(b) { | |
var c = !1; | |
a.ui.ddmanager && !this.options.dropBehaviour && (c = a.ui.ddmanager.drop(this, b)), | |
this.dropped && (c = this.dropped, | |
this.dropped = !1); | |
for (var d = this.element[0], e = !1; d && (d = d.parentNode); ) | |
d == document && (e = !0); | |
if (!e && "original" === this.options.helper) | |
return !1; | |
if ("invalid" == this.options.revert && !c || "valid" == this.options.revert && c || this.options.revert === !0 || a.isFunction(this.options.revert) && this.options.revert.call(this.element, c)) { | |
var f = this; | |
a(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { | |
f._trigger("stop", b) !== !1 && f._clear() | |
}) | |
} else | |
this._trigger("stop", b) !== !1 && this._clear(); | |
return !1 | |
}, | |
_mouseUp: function(b) { | |
return a("div.ui-draggable-iframeFix").each(function() { | |
this.parentNode.removeChild(this) | |
}), | |
a.ui.ddmanager && a.ui.ddmanager.dragStop(this, b), | |
a.ui.mouse.prototype._mouseUp.call(this, b) | |
}, | |
cancel: function() { | |
return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(), | |
this | |
}, | |
_getHandle: function(b) { | |
var c = !this.options.handle || !a(this.options.handle, this.element).length; | |
return a(this.options.handle, this.element).find("*").andSelf().each(function() { | |
this == b.target && (c = !0) | |
}), | |
c | |
}, | |
_createHelper: function(b) { | |
var c = this.options | |
, d = a.isFunction(c.helper) ? a(c.helper.apply(this.element[0], [b])) : "clone" == c.helper ? this.element.clone().removeAttr("id") : this.element; | |
return d.parents("body").length || d.appendTo("parent" == c.appendTo ? this.element[0].parentNode : c.appendTo), | |
d[0] == this.element[0] || /(fixed|absolute)/.test(d.css("position")) || d.css("position", "absolute"), | |
d | |
}, | |
_adjustOffsetFromHelper: function(b) { | |
"string" == typeof b && (b = b.split(" ")), | |
a.isArray(b) && (b = { | |
left: +b[0], | |
top: +b[1] || 0 | |
}), | |
"left"in b && (this.offset.click.left = b.left + this.margins.left), | |
"right"in b && (this.offset.click.left = this.helperProportions.width - b.right + this.margins.left), | |
"top"in b && (this.offset.click.top = b.top + this.margins.top), | |
"bottom"in b && (this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top) | |
}, | |
_getParentOffset: function() { | |
this.offsetParent = this.helper.offsetParent(); | |
var b = this.offsetParent.offset(); | |
return "absolute" == this.cssPosition && this.scrollParent[0] != document && a.contains(this.scrollParent[0], this.offsetParent[0]) && (b.left += this.scrollParent.scrollLeft(), | |
b.top += this.scrollParent.scrollTop()), | |
(this.offsetParent[0] == document.body || this.offsetParent[0].tagName && "html" == this.offsetParent[0].tagName.toLowerCase() && a.browser.msie) && (b = { | |
top: 0, | |
left: 0 | |
}), | |
{ | |
top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), | |
left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) | |
} | |
}, | |
_getRelativeOffset: function() { | |
if ("relative" == this.cssPosition) { | |
var a = this.element.position(); | |
return { | |
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), | |
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() | |
} | |
} | |
return { | |
top: 0, | |
left: 0 | |
} | |
}, | |
_cacheMargins: function() { | |
this.margins = { | |
left: parseInt(this.element.css("marginLeft"), 10) || 0, | |
top: parseInt(this.element.css("marginTop"), 10) || 0, | |
right: parseInt(this.element.css("marginRight"), 10) || 0, | |
bottom: parseInt(this.element.css("marginBottom"), 10) || 0 | |
} | |
}, | |
_cacheHelperProportions: function() { | |
this.helperProportions = { | |
width: this.helper.outerWidth(), | |
height: this.helper.outerHeight() | |
} | |
}, | |
_setContainment: function() { | |
var b = this.options; | |
if ("parent" == b.containment && (b.containment = this.helper[0].parentNode), | |
"document" != b.containment && "window" != b.containment || (this.containment = ["document" == b.containment ? 0 : a(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, "document" == b.containment ? 0 : a(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, ("document" == b.containment ? 0 : a(window).scrollLeft()) + a("document" == b.containment ? document : window).width() - this.helperProportions.width - this.margins.left, ("document" == b.containment ? 0 : a(window).scrollTop()) + (a("document" == b.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), | |
/^(document|window|parent)$/.test(b.containment) || b.containment.constructor == Array) | |
b.containment.constructor == Array && (this.containment = b.containment); | |
else { | |
var c = a(b.containment) | |
, d = c[0]; | |
if (!d) | |
return; | |
var e = (c.offset(), | |
"hidden" != a(d).css("overflow")); | |
this.containment = [(parseInt(a(d).css("borderLeftWidth"), 10) || 0) + (parseInt(a(d).css("paddingLeft"), 10) || 0), (parseInt(a(d).css("borderTopWidth"), 10) || 0) + (parseInt(a(d).css("paddingTop"), 10) || 0), (e ? Math.max(d.scrollWidth, d.offsetWidth) : d.offsetWidth) - (parseInt(a(d).css("borderLeftWidth"), 10) || 0) - (parseInt(a(d).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (e ? Math.max(d.scrollHeight, d.offsetHeight) : d.offsetHeight) - (parseInt(a(d).css("borderTopWidth"), 10) || 0) - (parseInt(a(d).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], | |
this.relative_container = c | |
} | |
}, | |
_convertPositionTo: function(b, c) { | |
c || (c = this.position); | |
var d = "absolute" == b ? 1 : -1 | |
, e = (this.options, | |
"absolute" != this.cssPosition || this.scrollParent[0] != document && a.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent) | |
, f = /(html|body)/i.test(e[0].tagName); | |
return { | |
top: c.top + this.offset.relative.top * d + this.offset.parent.top * d - ("fixed" == this.cssPosition ? -this.scrollParent.scrollTop() : f ? 0 : e.scrollTop()) * d, | |
left: c.left + this.offset.relative.left * d + this.offset.parent.left * d - ("fixed" == this.cssPosition ? -this.scrollParent.scrollLeft() : f ? 0 : e.scrollLeft()) * d | |
} | |
}, | |
_generatePosition: function(b) { | |
var c = this.options | |
, d = "absolute" != this.cssPosition || this.scrollParent[0] != document && a.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent | |
, e = /(html|body)/i.test(d[0].tagName) | |
, f = b.pageX | |
, g = b.pageY; | |
if (this.originalPosition) { | |
var h; | |
if (this.containment) { | |
if (this.relative_container) { | |
var i = this.relative_container.offset(); | |
h = [this.containment[0] + i.left, this.containment[1] + i.top, this.containment[2] + i.left, this.containment[3] + i.top] | |
} else | |
h = this.containment; | |
b.pageX - this.offset.click.left < h[0] && (f = h[0] + this.offset.click.left), | |
b.pageY - this.offset.click.top < h[1] && (g = h[1] + this.offset.click.top), | |
b.pageX - this.offset.click.left > h[2] && (f = h[2] + this.offset.click.left), | |
b.pageY - this.offset.click.top > h[3] && (g = h[3] + this.offset.click.top) | |
} | |
if (c.grid) { | |
var j = c.grid[1] ? this.originalPageY + Math.round((g - this.originalPageY) / c.grid[1]) * c.grid[1] : this.originalPageY; | |
g = h && (j - this.offset.click.top < h[1] || j - this.offset.click.top > h[3]) ? j - this.offset.click.top < h[1] ? j + c.grid[1] : j - c.grid[1] : j; | |
var k = c.grid[0] ? this.originalPageX + Math.round((f - this.originalPageX) / c.grid[0]) * c.grid[0] : this.originalPageX; | |
f = h && (k - this.offset.click.left < h[0] || k - this.offset.click.left > h[2]) ? k - this.offset.click.left < h[0] ? k + c.grid[0] : k - c.grid[0] : k | |
} | |
} | |
return { | |
top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" == this.cssPosition ? -this.scrollParent.scrollTop() : e ? 0 : d.scrollTop()), | |
left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" == this.cssPosition ? -this.scrollParent.scrollLeft() : e ? 0 : d.scrollLeft()) | |
} | |
}, | |
_clear: function() { | |
this.helper.removeClass("ui-draggable-dragging"), | |
this.helper[0] == this.element[0] || this.cancelHelperRemoval || this.helper.remove(), | |
this.helper = null, | |
this.cancelHelperRemoval = !1 | |
}, | |
_trigger: function(b, c, d) { | |
return d = d || this._uiHash(), | |
a.ui.plugin.call(this, b, [c, d]), | |
"drag" == b && (this.positionAbs = this._convertPositionTo("absolute")), | |
a.Widget.prototype._trigger.call(this, b, c, d) | |
}, | |
plugins: {}, | |
_uiHash: function(a) { | |
return { | |
helper: this.helper, | |
position: this.position, | |
originalPosition: this.originalPosition, | |
offset: this.positionAbs | |
} | |
} | |
}), | |
a.ui.plugin.add("draggable", "connectToSortable", { | |
start: function(b, c) { | |
var d = a(this).data("draggable") | |
, e = d.options | |
, f = a.extend({}, c, { | |
item: d.element | |
}); | |
d.sortables = [], | |
a(e.connectToSortable).each(function() { | |
var c = a.data(this, "sortable"); | |
c && !c.options.disabled && (d.sortables.push({ | |
instance: c, | |
shouldRevert: c.options.revert | |
}), | |
c.refreshPositions(), | |
c._trigger("activate", b, f)) | |
}) | |
}, | |
stop: function(b, c) { | |
var d = a(this).data("draggable") | |
, e = a.extend({}, c, { | |
item: d.element | |
}); | |
a.each(d.sortables, function() { | |
this.instance.isOver ? (this.instance.isOver = 0, | |
d.cancelHelperRemoval = !0, | |
this.instance.cancelHelperRemoval = !1, | |
this.shouldRevert && (this.instance.options.revert = !0), | |
this.instance._mouseStop(b), | |
this.instance.options.helper = this.instance.options._helper, | |
"original" == d.options.helper && this.instance.currentItem.css({ | |
top: "auto", | |
left: "auto" | |
})) : (this.instance.cancelHelperRemoval = !1, | |
this.instance._trigger("deactivate", b, e)) | |
}) | |
}, | |
drag: function(b, c) { | |
var d = a(this).data("draggable") | |
, e = this; | |
a.each(d.sortables, function(f) { | |
this.instance.positionAbs = d.positionAbs, | |
this.instance.helperProportions = d.helperProportions, | |
this.instance.offset.click = d.offset.click, | |
this.instance._intersectsWith(this.instance.containerCache) ? (this.instance.isOver || (this.instance.isOver = 1, | |
this.instance.currentItem = a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item", !0), | |
this.instance.options._helper = this.instance.options.helper, | |
this.instance.options.helper = function() { | |
return c.helper[0] | |
} | |
, | |
b.target = this.instance.currentItem[0], | |
this.instance._mouseCapture(b, !0), | |
this.instance._mouseStart(b, !0, !0), | |
this.instance.offset.click.top = d.offset.click.top, | |
this.instance.offset.click.left = d.offset.click.left, | |
this.instance.offset.parent.left -= d.offset.parent.left - this.instance.offset.parent.left, | |
this.instance.offset.parent.top -= d.offset.parent.top - this.instance.offset.parent.top, | |
d._trigger("toSortable", b), | |
d.dropped = this.instance.element, | |
d.currentItem = d.element, | |
this.instance.fromOutside = d), | |
this.instance.currentItem && this.instance._mouseDrag(b)) : this.instance.isOver && (this.instance.isOver = 0, | |
this.instance.cancelHelperRemoval = !0, | |
this.instance.options.revert = !1, | |
this.instance._trigger("out", b, this.instance._uiHash(this.instance)), | |
this.instance._mouseStop(b, !0), | |
this.instance.options.helper = this.instance.options._helper, | |
this.instance.currentItem.remove(), | |
this.instance.placeholder && this.instance.placeholder.remove(), | |
d._trigger("fromSortable", b), | |
d.dropped = !1) | |
}) | |
} | |
}), | |
a.ui.plugin.add("draggable", "cursor", { | |
start: function(b, c) { | |
var d = a("body") | |
, e = a(this).data("draggable").options; | |
d.css("cursor") && (e._cursor = d.css("cursor")), | |
d.css("cursor", e.cursor) | |
}, | |
stop: function(b, c) { | |
var d = a(this).data("draggable").options; | |
d._cursor && a("body").css("cursor", d._cursor) | |
} | |
}), | |
a.ui.plugin.add("draggable", "opacity", { | |
start: function(b, c) { | |
var d = a(c.helper) | |
, e = a(this).data("draggable").options; | |
d.css("opacity") && (e._opacity = d.css("opacity")), | |
d.css("opacity", e.opacity) | |
}, | |
stop: function(b, c) { | |
var d = a(this).data("draggable").options; | |
d._opacity && a(c.helper).css("opacity", d._opacity) | |
} | |
}), | |
a.ui.plugin.add("draggable", "scroll", { | |
start: function(b, c) { | |
var d = a(this).data("draggable"); | |
d.scrollParent[0] != document && "HTML" != d.scrollParent[0].tagName && (d.overflowOffset = d.scrollParent.offset()) | |
}, | |
drag: function(b, c) { | |
var d = a(this).data("draggable") | |
, e = d.options | |
, f = !1; | |
d.scrollParent[0] != document && "HTML" != d.scrollParent[0].tagName ? (e.axis && "x" == e.axis || (d.overflowOffset.top + d.scrollParent[0].offsetHeight - b.pageY < e.scrollSensitivity ? d.scrollParent[0].scrollTop = f = d.scrollParent[0].scrollTop + e.scrollSpeed : b.pageY - d.overflowOffset.top < e.scrollSensitivity && (d.scrollParent[0].scrollTop = f = d.scrollParent[0].scrollTop - e.scrollSpeed)), | |
e.axis && "y" == e.axis || (d.overflowOffset.left + d.scrollParent[0].offsetWidth - b.pageX < e.scrollSensitivity ? d.scrollParent[0].scrollLeft = f = d.scrollParent[0].scrollLeft + e.scrollSpeed : b.pageX - d.overflowOffset.left < e.scrollSensitivity && (d.scrollParent[0].scrollLeft = f = d.scrollParent[0].scrollLeft - e.scrollSpeed))) : (e.axis && "x" == e.axis || (b.pageY - a(document).scrollTop() < e.scrollSensitivity ? f = a(document).scrollTop(a(document).scrollTop() - e.scrollSpeed) : a(window).height() - (b.pageY - a(document).scrollTop()) < e.scrollSensitivity && (f = a(document).scrollTop(a(document).scrollTop() + e.scrollSpeed))), | |
e.axis && "y" == e.axis || (b.pageX - a(document).scrollLeft() < e.scrollSensitivity ? f = a(document).scrollLeft(a(document).scrollLeft() - e.scrollSpeed) : a(window).width() - (b.pageX - a(document).scrollLeft()) < e.scrollSensitivity && (f = a(document).scrollLeft(a(document).scrollLeft() + e.scrollSpeed)))), | |
f !== !1 && a.ui.ddmanager && !e.dropBehaviour && a.ui.ddmanager.prepareOffsets(d, b) | |
} | |
}), | |
a.ui.plugin.add("draggable", "snap", { | |
start: function(b, c) { | |
var d = a(this).data("draggable") | |
, e = d.options; | |
d.snapElements = [], | |
a(e.snap.constructor != String ? e.snap.items || ":data(draggable)" : e.snap).each(function() { | |
var b = a(this) | |
, c = b.offset(); | |
this != d.element[0] && d.snapElements.push({ | |
item: this, | |
width: b.outerWidth(), | |
height: b.outerHeight(), | |
top: c.top, | |
left: c.left | |
}) | |
}) | |
}, | |
drag: function(b, c) { | |
for (var d = a(this).data("draggable"), e = d.options, f = e.snapTolerance, g = c.offset.left, h = g + d.helperProportions.width, i = c.offset.top, j = i + d.helperProportions.height, k = d.snapElements.length - 1; k >= 0; k--) { | |
var l = d.snapElements[k].left | |
, m = l + d.snapElements[k].width | |
, n = d.snapElements[k].top | |
, o = n + d.snapElements[k].height; | |
if (l - f < g && g < m + f && n - f < i && i < o + f || l - f < g && g < m + f && n - f < j && j < o + f || l - f < h && h < m + f && n - f < i && i < o + f || l - f < h && h < m + f && n - f < j && j < o + f) { | |
if ("inner" != e.snapMode) { | |
var p = Math.abs(n - j) <= f | |
, q = Math.abs(o - i) <= f | |
, r = Math.abs(l - h) <= f | |
, s = Math.abs(m - g) <= f; | |
p && (c.position.top = d._convertPositionTo("relative", { | |
top: n - d.helperProportions.height, | |
left: 0 | |
}).top - d.margins.top), | |
q && (c.position.top = d._convertPositionTo("relative", { | |
top: o, | |
left: 0 | |
}).top - d.margins.top), | |
r && (c.position.left = d._convertPositionTo("relative", { | |
top: 0, | |
left: l - d.helperProportions.width | |
}).left - d.margins.left), | |
s && (c.position.left = d._convertPositionTo("relative", { | |
top: 0, | |
left: m | |
}).left - d.margins.left) | |
} | |
var t = p || q || r || s; | |
if ("outer" != e.snapMode) { | |
var p = Math.abs(n - i) <= f | |
, q = Math.abs(o - j) <= f | |
, r = Math.abs(l - g) <= f | |
, s = Math.abs(m - h) <= f; | |
p && (c.position.top = d._convertPositionTo("relative", { | |
top: n, | |
left: 0 | |
}).top - d.margins.top), | |
q && (c.position.top = d._convertPositionTo("relative", { | |
top: o - d.helperProportions.height, | |
left: 0 | |
}).top - d.margins.top), | |
r && (c.position.left = d._convertPositionTo("relative", { | |
top: 0, | |
left: l | |
}).left - d.margins.left), | |
s && (c.position.left = d._convertPositionTo("relative", { | |
top: 0, | |
left: m - d.helperProportions.width | |
}).left - d.margins.left) | |
} | |
!d.snapElements[k].snapping && (p || q || r || s || t) && d.options.snap.snap && d.options.snap.snap.call(d.element, b, a.extend(d._uiHash(), { | |
snapItem: d.snapElements[k].item | |
})), | |
d.snapElements[k].snapping = p || q || r || s || t | |
} else | |
d.snapElements[k].snapping && d.options.snap.release && d.options.snap.release.call(d.element, b, a.extend(d._uiHash(), { | |
snapItem: d.snapElements[k].item | |
})), | |
d.snapElements[k].snapping = !1 | |
} | |
} | |
}), | |
a.ui.plugin.add("draggable", "stack", { | |
start: function(b, c) { | |
var d = a(this).data("draggable").options | |
, e = a.makeArray(a(d.stack)).sort(function(b, c) { | |
return (parseInt(a(b).css("zIndex"), 10) || 0) - (parseInt(a(c).css("zIndex"), 10) || 0) | |
}); | |
if (e.length) { | |
var f = parseInt(e[0].style.zIndex) || 0; | |
a(e).each(function(a) { | |
this.style.zIndex = f + a | |
}), | |
this[0].style.zIndex = f + e.length | |
} | |
} | |
}), | |
a.ui.plugin.add("draggable", "zIndex", { | |
start: function(b, c) { | |
var d = a(c.helper) | |
, e = a(this).data("draggable").options; | |
d.css("zIndex") && (e._zIndex = d.css("zIndex")), | |
d.css("zIndex", e.zIndex) | |
}, | |
stop: function(b, c) { | |
var d = a(this).data("draggable").options; | |
d._zIndex && a(c.helper).css("zIndex", d._zIndex) | |
} | |
}) | |
}(jQuery), | |
function(a, b) { | |
a.widget("ui.droppable", { | |
version: "1.9.0", | |
widgetEventPrefix: "drop", | |
options: { | |
accept: "*", | |
activeClass: !1, | |
addClasses: !0, | |
greedy: !1, | |
hoverClass: !1, | |
scope: "default", | |
tolerance: "intersect" | |
}, | |
_create: function() { | |
var b = this.options | |
, c = b.accept; | |
this.isover = 0, | |
this.isout = 1, | |
this.accept = a.isFunction(c) ? c : function(a) { | |
return a.is(c) | |
} | |
, | |
this.proportions = { | |
width: this.element[0].offsetWidth, | |
height: this.element[0].offsetHeight | |
}, | |
a.ui.ddmanager.droppables[b.scope] = a.ui.ddmanager.droppables[b.scope] || [], | |
a.ui.ddmanager.droppables[b.scope].push(this), | |
b.addClasses && this.element.addClass("ui-droppable") | |
}, | |
_destroy: function() { | |
for (var b = a.ui.ddmanager.droppables[this.options.scope], c = 0; c < b.length; c++) | |
b[c] == this && b.splice(c, 1); | |
this.element.removeClass("ui-droppable ui-droppable-disabled") | |
}, | |
_setOption: function(b, c) { | |
"accept" == b && (this.accept = a.isFunction(c) ? c : function(a) { | |
return a.is(c) | |
} | |
), | |
a.Widget.prototype._setOption.apply(this, arguments) | |
}, | |
_activate: function(b) { | |
var c = a.ui.ddmanager.current; | |
this.options.activeClass && this.element.addClass(this.options.activeClass), | |
c && this._trigger("activate", b, this.ui(c)) | |
}, | |
_deactivate: function(b) { | |
var c = a.ui.ddmanager.current; | |
this.options.activeClass && this.element.removeClass(this.options.activeClass), | |
c && this._trigger("deactivate", b, this.ui(c)) | |
}, | |
_over: function(b) { | |
var c = a.ui.ddmanager.current; | |
c && (c.currentItem || c.element)[0] != this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass), | |
this._trigger("over", b, this.ui(c))) | |
}, | |
_out: function(b) { | |
var c = a.ui.ddmanager.current; | |
c && (c.currentItem || c.element)[0] != this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass), | |
this._trigger("out", b, this.ui(c))) | |
}, | |
_drop: function(b, c) { | |
var d = c || a.ui.ddmanager.current; | |
if (!d || (d.currentItem || d.element)[0] == this.element[0]) | |
return !1; | |
var e = !1; | |
return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() { | |
var b = a.data(this, "droppable"); | |
if (b.options.greedy && !b.options.disabled && b.options.scope == d.options.scope && b.accept.call(b.element[0], d.currentItem || d.element) && a.ui.intersect(d, a.extend(b, { | |
offset: b.element.offset() | |
}), b.options.tolerance)) | |
return e = !0, | |
!1 | |
}), | |
!e && (!!this.accept.call(this.element[0], d.currentItem || d.element) && (this.options.activeClass && this.element.removeClass(this.options.activeClass), | |
this.options.hoverClass && this.element.removeClass(this.options.hoverClass), | |
this._trigger("drop", b, this.ui(d)), | |
this.element)) | |
}, | |
ui: function(a) { | |
return { | |
draggable: a.currentItem || a.element, | |
helper: a.helper, | |
position: a.position, | |
offset: a.positionAbs | |
} | |
} | |
}), | |
a.ui.intersect = function(b, c, d) { | |
if (!c.offset) | |
return !1; | |
var e = (b.positionAbs || b.position.absolute).left | |
, f = e + b.helperProportions.width | |
, g = (b.positionAbs || b.position.absolute).top | |
, h = g + b.helperProportions.height | |
, i = c.offset.left | |
, j = i + c.proportions.width | |
, k = c.offset.top | |
, l = k + c.proportions.height; | |
switch (d) { | |
case "fit": | |
return i <= e && f <= j && k <= g && h <= l; | |
case "intersect": | |
return i < e + b.helperProportions.width / 2 && f - b.helperProportions.width / 2 < j && k < g + b.helperProportions.height / 2 && h - b.helperProportions.height / 2 < l; | |
case "pointer": | |
var m = (b.positionAbs || b.position.absolute).left + (b.clickOffset || b.offset.click).left | |
, n = (b.positionAbs || b.position.absolute).top + (b.clickOffset || b.offset.click).top | |
, o = a.ui.isOver(n, m, k, i, c.proportions.height, c.proportions.width); | |
return o; | |
case "touch": | |
return (g >= k && g <= l || h >= k && h <= l || g < k && h > l) && (e >= i && e <= j || f >= i && f <= j || e < i && f > j); | |
default: | |
return !1 | |
} | |
} | |
, | |
a.ui.ddmanager = { | |
current: null, | |
droppables: { | |
"default": [] | |
}, | |
prepareOffsets: function(b, c) { | |
var d = a.ui.ddmanager.droppables[b.options.scope] || [] | |
, e = c ? c.type : null | |
, f = (b.currentItem || b.element).find(":data(droppable)").andSelf(); | |
a: for (var g = 0; g < d.length; g++) | |
if (!(d[g].options.disabled || b && !d[g].accept.call(d[g].element[0], b.currentItem || b.element))) { | |
for (var h = 0; h < f.length; h++) | |
if (f[h] == d[g].element[0]) { | |
d[g].proportions.height = 0; | |
continue a | |
} | |
d[g].visible = "none" != d[g].element.css("display"), | |
d[g].visible && ("mousedown" == e && d[g]._activate.call(d[g], c), | |
d[g].offset = d[g].element.offset(), | |
d[g].proportions = { | |
width: d[g].element[0].offsetWidth, | |
height: d[g].element[0].offsetHeight | |
}) | |
} | |
}, | |
drop: function(b, c) { | |
var d = !1; | |
return a.each(a.ui.ddmanager.droppables[b.options.scope] || [], function() { | |
this.options && (!this.options.disabled && this.visible && a.ui.intersect(b, this, this.options.tolerance) && (d = this._drop.call(this, c) || d), | |
!this.options.disabled && this.visible && this.accept.call(this.element[0], b.currentItem || b.element) && (this.isout = 1, | |
this.isover = 0, | |
this._deactivate.call(this, c))) | |
}), | |
d | |
}, | |
dragStart: function(b, c) { | |
b.element.parentsUntil("body").bind("scroll.droppable", function() { | |
b.options.refreshPositions || a.ui.ddmanager.prepareOffsets(b, c) | |
}) | |
}, | |
drag: function(b, c) { | |
b.options.refreshPositions && a.ui.ddmanager.prepareOffsets(b, c), | |
a.each(a.ui.ddmanager.droppables[b.options.scope] || [], function() { | |
if (!this.options.disabled && !this.greedyChild && this.visible) { | |
var d = a.ui.intersect(b, this, this.options.tolerance) | |
, e = d || 1 != this.isover ? d && 0 == this.isover ? "isover" : null : "isout"; | |
if (e) { | |
var f; | |
if (this.options.greedy) { | |
var g = this.options.scope | |
, h = this.element.parents(":data(droppable)").filter(function() { | |
return a.data(this, "droppable").options.scope === g | |
}); | |
h.length && (f = a.data(h[0], "droppable"), | |
f.greedyChild = "isover" == e ? 1 : 0) | |
} | |
f && "isover" == e && (f.isover = 0, | |
f.isout = 1, | |
f._out.call(f, c)), | |
this[e] = 1, | |
this["isout" == e ? "isover" : "isout"] = 0, | |
this["isover" == e ? "_over" : "_out"].call(this, c), | |
f && "isout" == e && (f.isout = 0, | |
f.isover = 1, | |
f._over.call(f, c)) | |
} | |
} | |
}) | |
}, | |
dragStop: function(b, c) { | |
b.element.parentsUntil("body").unbind("scroll.droppable"), | |
b.options.refreshPositions || a.ui.ddmanager.prepareOffsets(b, c) | |
} | |
} | |
}(jQuery), | |
jQuery.effects || function(a, b) { | |
var c = a.uiBackCompat !== !1 | |
, d = "ui-effects-"; | |
a.effects = { | |
effect: {} | |
}, | |
function(b, c) { | |
function d(a, b, c) { | |
var d = m[b.type] || {}; | |
return null == a ? c || !b.def ? null : b.def : (a = d.floor ? ~~a : parseFloat(a), | |
isNaN(a) ? b.def : d.mod ? (a + d.mod) % d.mod : 0 > a ? 0 : d.max < a ? d.max : a) | |
} | |
function e(a) { | |
var c = k() | |
, d = c._rgba = []; | |
return a = a.toLowerCase(), | |
p(j, function(b, e) { | |
var f, g = e.re.exec(a), h = g && e.parse(g), i = e.space || "rgba"; | |
if (h) | |
return f = c[i](h), | |
c[l[i].cache] = f[l[i].cache], | |
d = c._rgba = f._rgba, | |
!1 | |
}), | |
d.length ? ("0,0,0,0" === d.join() && b.extend(d, g.transparent), | |
c) : g[a] | |
} | |
function f(a, b, c) { | |
return c = (c + 1) % 1, | |
6 * c < 1 ? a + (b - a) * c * 6 : 2 * c < 1 ? b : 3 * c < 2 ? a + (b - a) * (2 / 3 - c) * 6 : a | |
} | |
var g, h = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor".split(" "), i = /^([\-+])=\s*(\d+\.?\d*)/, j = [{ | |
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, | |
parse: function(a) { | |
return [a[1], a[2], a[3], a[4]] | |
} | |
}, { | |
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, | |
parse: function(a) { | |
return [2.55 * a[1], 2.55 * a[2], 2.55 * a[3], a[4]] | |
} | |
}, { | |
re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, | |
parse: function(a) { | |
return [parseInt(a[1], 16), parseInt(a[2], 16), parseInt(a[3], 16)] | |
} | |
}, { | |
re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, | |
parse: function(a) { | |
return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)] | |
} | |
}, { | |
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/, | |
space: "hsla", | |
parse: function(a) { | |
return [a[1], a[2] / 100, a[3] / 100, a[4]] | |
} | |
}], k = b.Color = function(a, c, d, e) { | |
return new b.Color.fn.parse(a,c,d,e) | |
} | |
, l = { | |
rgba: { | |
props: { | |
red: { | |
idx: 0, | |
type: "byte" | |
}, | |
green: { | |
idx: 1, | |
type: "byte" | |
}, | |
blue: { | |
idx: 2, | |
type: "byte" | |
} | |
} | |
}, | |
hsla: { | |
props: { | |
hue: { | |
idx: 0, | |
type: "degrees" | |
}, | |
saturation: { | |
idx: 1, | |
type: "percent" | |
}, | |
lightness: { | |
idx: 2, | |
type: "percent" | |
} | |
} | |
} | |
}, m = { | |
"byte": { | |
floor: !0, | |
max: 255 | |
}, | |
percent: { | |
max: 1 | |
}, | |
degrees: { | |
mod: 360, | |
floor: !0 | |
} | |
}, n = k.support = {}, o = b("<p>")[0], p = b.each; | |
o.style.cssText = "background-color:rgba(1,1,1,.5)", | |
n.rgba = o.style.backgroundColor.indexOf("rgba") > -1, | |
p(l, function(a, b) { | |
b.cache = "_" + a, | |
b.props.alpha = { | |
idx: 3, | |
type: "percent", | |
def: 1 | |
} | |
}), | |
k.fn = b.extend(k.prototype, { | |
parse: function(f, h, i, j) { | |
if (f === c) | |
return this._rgba = [null, null, null, null], | |
this; | |
(f.jquery || f.nodeType) && (f = b(f).css(h), | |
h = c); | |
var m = this | |
, n = b.type(f) | |
, o = this._rgba = []; | |
return h !== c && (f = [f, h, i, j], | |
n = "array"), | |
"string" === n ? this.parse(e(f) || g._default) : "array" === n ? (p(l.rgba.props, function(a, b) { | |
o[b.idx] = d(f[b.idx], b) | |
}), | |
this) : "object" === n ? (f instanceof k ? p(l, function(a, b) { | |
f[b.cache] && (m[b.cache] = f[b.cache].slice()) | |
}) : p(l, function(b, c) { | |
var e = c.cache; | |
p(c.props, function(a, b) { | |
if (!m[e] && c.to) { | |
if ("alpha" === a || null == f[a]) | |
return; | |
m[e] = c.to(m._rgba) | |
} | |
m[e][b.idx] = d(f[a], b, !0) | |
}), | |
m[e] && a.inArray(null, m[e].slice(0, 3)) < 0 && (m[e][3] = 1, | |
c.from && (m._rgba = c.from(m[e]))) | |
}), | |
this) : void 0 | |
}, | |
is: function(a) { | |
var b = k(a) | |
, c = !0 | |
, d = this; | |
return p(l, function(a, e) { | |
var f, g = b[e.cache]; | |
return g && (f = d[e.cache] || e.to && e.to(d._rgba) || [], | |
p(e.props, function(a, b) { | |
if (null != g[b.idx]) | |
return c = g[b.idx] === f[b.idx] | |
})), | |
c | |
}), | |
c | |
}, | |
_space: function() { | |
var a = [] | |
, b = this; | |
return p(l, function(c, d) { | |
b[d.cache] && a.push(c) | |
}), | |
a.pop() | |
}, | |
transition: function(a, b) { | |
var c = k(a) | |
, e = c._space() | |
, f = l[e] | |
, g = 0 === this.alpha() ? k("transparent") : this | |
, h = g[f.cache] || f.to(g._rgba) | |
, i = h.slice(); | |
return c = c[f.cache], | |
p(f.props, function(a, e) { | |
var f = e.idx | |
, g = h[f] | |
, j = c[f] | |
, k = m[e.type] || {}; | |
null !== j && (null === g ? i[f] = j : (k.mod && (j - g > k.mod / 2 ? g += k.mod : g - j > k.mod / 2 && (g -= k.mod)), | |
i[f] = d((j - g) * b + g, e))) | |
}), | |
this[e](i) | |
}, | |
blend: function(a) { | |
if (1 === this._rgba[3]) | |
return this; | |
var c = this._rgba.slice() | |
, d = c.pop() | |
, e = k(a)._rgba; | |
return k(b.map(c, function(a, b) { | |
return (1 - d) * e[b] + d * a | |
})) | |
}, | |
toRgbaString: function() { | |
var a = "rgba(" | |
, c = b.map(this._rgba, function(a, b) { | |
return null == a ? b > 2 ? 1 : 0 : a | |
}); | |
return 1 === c[3] && (c.pop(), | |
a = "rgb("), | |
a + c.join() + ")" | |
}, | |
toHslaString: function() { | |
var a = "hsla(" | |
, c = b.map(this.hsla(), function(a, b) { | |
return null == a && (a = b > 2 ? 1 : 0), | |
b && b < 3 && (a = Math.round(100 * a) + "%"), | |
a | |
}); | |
return 1 === c[3] && (c.pop(), | |
a = "hsl("), | |
a + c.join() + ")" | |
}, | |
toHexString: function(a) { | |
var c = this._rgba.slice() | |
, d = c.pop(); | |
return a && c.push(~~(255 * d)), | |
"#" + b.map(c, function(a, b) { | |
return a = (a || 0).toString(16), | |
1 === a.length ? "0" + a : a | |
}).join("") | |
}, | |
toString: function() { | |
return 0 === this._rgba[3] ? "transparent" : this.toRgbaString() | |
} | |
}), | |
k.fn.parse.prototype = k.fn, | |
l.hsla.to = function(a) { | |
if (null == a[0] || null == a[1] || null == a[2]) | |
return [null, null, null, a[3]]; | |
var b, c, d = a[0] / 255, e = a[1] / 255, f = a[2] / 255, g = a[3], h = Math.max(d, e, f), i = Math.min(d, e, f), j = h - i, k = h + i, l = .5 * k; | |
return b = i === h ? 0 : d === h ? 60 * (e - f) / j + 360 : e === h ? 60 * (f - d) / j + 120 : 60 * (d - e) / j + 240, | |
c = 0 === l || 1 === l ? l : l <= .5 ? j / k : j / (2 - k), | |
[Math.round(b) % 360, c, l, null == g ? 1 : g] | |
} | |
, | |
l.hsla.from = function(a) { | |
if (null == a[0] || null == a[1] || null == a[2]) | |
return [null, null, null, a[3]]; | |
var b = a[0] / 360 | |
, c = a[1] | |
, d = a[2] | |
, e = a[3] | |
, g = d <= .5 ? d * (1 + c) : d + c - d * c | |
, h = 2 * d - g; | |
return [Math.round(255 * f(h, g, b + 1 / 3)), Math.round(255 * f(h, g, b)), Math.round(255 * f(h, g, b - 1 / 3)), e] | |
} | |
, | |
p(l, function(a, e) { | |
var f = e.props | |
, g = e.cache | |
, h = e.to | |
, j = e.from; | |
k.fn[a] = function(a) { | |
if (h && !this[g] && (this[g] = h(this._rgba)), | |
a === c) | |
return this[g].slice(); | |
var e, i = b.type(a), l = "array" === i || "object" === i ? a : arguments, m = this[g].slice(); | |
return p(f, function(a, b) { | |
var c = l["object" === i ? a : b.idx]; | |
null == c && (c = m[b.idx]), | |
m[b.idx] = d(c, b) | |
}), | |
j ? (e = k(j(m)), | |
e[g] = m, | |
e) : k(m) | |
} | |
, | |
p(f, function(c, d) { | |
k.fn[c] || (k.fn[c] = function(e) { | |
var f, g = b.type(e), h = "alpha" === c ? this._hsla ? "hsla" : "rgba" : a, j = this[h](), k = j[d.idx]; | |
return "undefined" === g ? k : ("function" === g && (e = e.call(this, k), | |
g = b.type(e)), | |
null == e && d.empty ? this : ("string" === g && (f = i.exec(e), | |
f && (e = k + parseFloat(f[2]) * ("+" === f[1] ? 1 : -1))), | |
j[d.idx] = e, | |
this[h](j))) | |
} | |
) | |
}) | |
}), | |
p(h, function(a, c) { | |
b.cssHooks[c] = { | |
set: function(a, d) { | |
var f, g, h = ""; | |
if ("string" !== b.type(d) || (f = e(d))) { | |
if (d = k(f || d), | |
!n.rgba && 1 !== d._rgba[3]) { | |
for (g = "backgroundColor" === c ? a.parentNode : a; ("" === h || "transparent" === h) && g && g.style; ) | |
try { | |
h = b.css(g, "backgroundColor"), | |
g = g.parentNode | |
} catch (i) {} | |
d = d.blend(h && "transparent" !== h ? h : "_default") | |
} | |
d = d.toRgbaString() | |
} | |
try { | |
a.style[c] = d | |
} catch (d) {} | |
} | |
}, | |
b.fx.step[c] = function(a) { | |
a.colorInit || (a.start = k(a.elem, c), | |
a.end = k(a.end), | |
a.colorInit = !0), | |
b.cssHooks[c].set(a.elem, a.start.transition(a.end, a.pos)) | |
} | |
}), | |
b.cssHooks.borderColor = { | |
expand: function(a) { | |
var b = {}; | |
return p(["Top", "Right", "Bottom", "Left"], function(c, d) { | |
b["border" + d + "Color"] = a | |
}), | |
b | |
} | |
}, | |
g = b.Color.names = { | |
aqua: "#00ffff", | |
black: "#000000", | |
blue: "#0000ff", | |
fuchsia: "#ff00ff", | |
gray: "#808080", | |
green: "#008000", | |
lime: "#00ff00", | |
maroon: "#800000", | |
navy: "#000080", | |
olive: "#808000", | |
purple: "#800080", | |
red: "#ff0000", | |
silver: "#c0c0c0", | |
teal: "#008080", | |
white: "#ffffff", | |
yellow: "#ffff00", | |
transparent: [null, null, null, 0], | |
_default: "#ffffff" | |
} | |
}(jQuery), | |
function() { | |
function c() { | |
var b, c, d = this.ownerDocument.defaultView ? this.ownerDocument.defaultView.getComputedStyle(this, null) : this.currentStyle, e = {}; | |
if (d && d.length && d[0] && d[d[0]]) | |
for (c = d.length; c--; ) | |
b = d[c], | |
"string" == typeof d[b] && (e[a.camelCase(b)] = d[b]); | |
else | |
for (b in d) | |
"string" == typeof d[b] && (e[b] = d[b]); | |
return e | |
} | |
function d(b, c) { | |
var d, e, g = {}; | |
for (d in c) | |
e = c[d], | |
b[d] !== e && (f[d] || !a.fx.step[d] && isNaN(parseFloat(e)) || (g[d] = e)); | |
return g | |
} | |
var e = ["add", "remove", "toggle"] | |
, f = { | |
border: 1, | |
borderBottom: 1, | |
borderColor: 1, | |
borderLeft: 1, | |
borderRight: 1, | |
borderTop: 1, | |
borderWidth: 1, | |
margin: 1, | |
padding: 1 | |
}; | |
a.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(b, c) { | |
a.fx.step[c] = function(a) { | |
("none" !== a.end && !a.setAttr || 1 === a.pos && !a.setAttr) && (jQuery.style(a.elem, c, a.end), | |
a.setAttr = !0) | |
} | |
}), | |
a.effects.animateClass = function(b, f, g, h) { | |
var i = a.speed(f, g, h); | |
return this.queue(function() { | |
var f, g = a(this), h = g.attr("class") || "", j = i.children ? g.find("*").andSelf() : g; | |
j = j.map(function() { | |
var b = a(this); | |
return { | |
el: b, | |
start: c.call(this) | |
} | |
}), | |
f = function() { | |
a.each(e, function(a, c) { | |
b[c] && g[c + "Class"](b[c]) | |
}) | |
} | |
, | |
f(), | |
j = j.map(function() { | |
return this.end = c.call(this.el[0]), | |
this.diff = d(this.start, this.end), | |
this | |
}), | |
g.attr("class", h), | |
j = j.map(function() { | |
var b = this | |
, c = a.Deferred() | |
, d = jQuery.extend({}, i, { | |
queue: !1, | |
complete: function() { | |
c.resolve(b) | |
} | |
}); | |
return this.el.animate(this.diff, d), | |
c.promise() | |
}), | |
a.when.apply(a, j.get()).done(function() { | |
f(), | |
a.each(arguments, function() { | |
var b = this.el; | |
a.each(this.diff, function(a) { | |
b.css(a, "") | |
}) | |
}), | |
i.complete.call(g[0]) | |
}) | |
}) | |
} | |
, | |
a.fn.extend({ | |
_addClass: a.fn.addClass, | |
addClass: function(b, c, d, e) { | |
return c ? a.effects.animateClass.call(this, { | |
add: b | |
}, c, d, e) : this._addClass(b) | |
}, | |
_removeClass: a.fn.removeClass, | |
removeClass: function(b, c, d, e) { | |
return c ? a.effects.animateClass.call(this, { | |
remove: b | |
}, c, d, e) : this._removeClass(b) | |
}, | |
_toggleClass: a.fn.toggleClass, | |
toggleClass: function(c, d, e, f, g) { | |
return "boolean" == typeof d || d === b ? e ? a.effects.animateClass.call(this, d ? { | |
add: c | |
} : { | |
remove: c | |
}, e, f, g) : this._toggleClass(c, d) : a.effects.animateClass.call(this, { | |
toggle: c | |
}, d, e, f) | |
}, | |
switchClass: function(b, c, d, e, f) { | |
return a.effects.animateClass.call(this, { | |
add: c, | |
remove: b | |
}, d, e, f) | |
} | |
}) | |
}(), | |
function() { | |
function e(c, d, e, f) { | |
return a.isPlainObject(c) && (d = c, | |
c = c.effect), | |
c = { | |
effect: c | |
}, | |
d === b && (d = {}), | |
a.isFunction(d) && (f = d, | |
e = null, | |
d = {}), | |
("number" == typeof d || a.fx.speeds[d]) && (f = e, | |
e = d, | |
d = {}), | |
a.isFunction(e) && (f = e, | |
e = null), | |
d && a.extend(c, d), | |
e = e || d.duration, | |
c.duration = a.fx.off ? 0 : "number" == typeof e ? e : e in a.fx.speeds ? a.fx.speeds[e] : a.fx.speeds._default, | |
c.complete = f || d.complete, | |
c | |
} | |
function f(b) { | |
return !(b && "number" != typeof b && !a.fx.speeds[b]) || "string" == typeof b && !a.effects.effect[b] && (!c || !a.effects[b]) | |
} | |
a.extend(a.effects, { | |
version: "1.9.0", | |
save: function(a, b) { | |
for (var c = 0; c < b.length; c++) | |
null !== b[c] && a.data(d + b[c], a[0].style[b[c]]) | |
}, | |
restore: function(a, c) { | |
var e, f; | |
for (f = 0; f < c.length; f++) | |
null !== c[f] && (e = a.data(d + c[f]), | |
e === b && (e = ""), | |
a.css(c[f], e)) | |
}, | |
setMode: function(a, b) { | |
return "toggle" === b && (b = a.is(":hidden") ? "show" : "hide"), | |
b | |
}, | |
getBaseline: function(a, b) { | |
var c, d; | |
switch (a[0]) { | |
case "top": | |
c = 0; | |
break; | |
case "middle": | |
c = .5; | |
break; | |
case "bottom": | |
c = 1; | |
break; | |
default: | |
c = a[0] / b.height | |
} | |
switch (a[1]) { | |
case "left": | |
d = 0; | |
break; | |
case "center": | |
d = .5; | |
break; | |
case "right": | |
d = 1; | |
break; | |
default: | |
d = a[1] / b.width | |
} | |
return { | |
x: d, | |
y: c | |
} | |
}, | |
createWrapper: function(b) { | |
if (b.parent().is(".ui-effects-wrapper")) | |
return b.parent(); | |
var c = { | |
width: b.outerWidth(!0), | |
height: b.outerHeight(!0), | |
"float": b.css("float") | |
} | |
, d = a("<div></div>").addClass("ui-effects-wrapper").css({ | |
fontSize: "100%", | |
background: "transparent", | |
border: "none", | |
margin: 0, | |
padding: 0 | |
}) | |
, e = { | |
width: b.width(), | |
height: b.height() | |
} | |
, f = document.activeElement; | |
try { | |
f.id | |
} catch (g) { | |
f = document.body | |
} | |
return b.wrap(d), | |
(b[0] === f || a.contains(b[0], f)) && a(f).focus(), | |
d = b.parent(), | |
"static" === b.css("position") ? (d.css({ | |
position: "relative" | |
}), | |
b.css({ | |
position: "relative" | |
})) : (a.extend(c, { | |
position: b.css("position"), | |
zIndex: b.css("z-index") | |
}), | |
a.each(["top", "left", "bottom", "right"], function(a, d) { | |
c[d] = b.css(d), | |
isNaN(parseInt(c[d], 10)) && (c[d] = "auto") | |
}), | |
b.css({ | |
position: "relative", | |
top: 0, | |
left: 0, | |
right: "auto", | |
bottom: "auto" | |
})), | |
b.css(e), | |
d.css(c).show() | |
}, | |
removeWrapper: function(b) { | |
var c = document.activeElement; | |
return b.parent().is(".ui-effects-wrapper") && (b.parent().replaceWith(b), | |
(b[0] === c || a.contains(b[0], c)) && a(c).focus()), | |
b | |
}, | |
setTransition: function(b, c, d, e) { | |
return e = e || {}, | |
a.each(c, function(a, c) { | |
var f = b.cssUnit(c); | |
f[0] > 0 && (e[c] = f[0] * d + f[1]) | |
}), | |
e | |
} | |
}), | |
a.fn.extend({ | |
effect: function(b, d, f, g) { | |
function h(b) { | |
function c() { | |
a.isFunction(e) && e.call(d[0]), | |
a.isFunction(b) && b() | |
} | |
var d = a(this) | |
, e = i.complete | |
, f = i.mode; | |
(d.is(":hidden") ? "hide" === f : "show" === f) ? c() : l.call(d[0], i, c) | |
} | |
var i = e.apply(this, arguments) | |
, j = i.mode | |
, k = i.queue | |
, l = a.effects.effect[i.effect] | |
, m = !l && c && a.effects[i.effect]; | |
return a.fx.off || !l && !m ? j ? this[j](i.duration, i.complete) : this.each(function() { | |
i.complete && i.complete.call(this) | |
}) : l ? k === !1 ? this.each(h) : this.queue(k || "fx", h) : m.call(this, { | |
options: i, | |
duration: i.duration, | |
callback: i.complete, | |
mode: i.mode | |
}) | |
}, | |
_show: a.fn.show, | |
show: function(a) { | |
if (f(a)) | |
return this._show.apply(this, arguments); | |
var b = e.apply(this, arguments); | |
return b.mode = "show", | |
this.effect.call(this, b) | |
}, | |
_hide: a.fn.hide, | |
hide: function(a) { | |
if (f(a)) | |
return this._hide.apply(this, arguments); | |
var b = e.apply(this, arguments); | |
return b.mode = "hide", | |
this.effect.call(this, b) | |
}, | |
__toggle: a.fn.toggle, | |
toggle: function(b) { | |
if (f(b) || "boolean" == typeof b || a.isFunction(b)) | |
return this.__toggle.apply(this, arguments); | |
var c = e.apply(this, arguments); | |
return c.mode = "toggle", | |
this.effect.call(this, c) | |
}, | |
cssUnit: function(b) { | |
var c = this.css(b) | |
, d = []; | |
return a.each(["em", "px", "%", "pt"], function(a, b) { | |
c.indexOf(b) > 0 && (d = [parseFloat(c), b]) | |
}), | |
d | |
} | |
}) | |
}(), | |
function() { | |
var b = {}; | |
a.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(a, c) { | |
b[c] = function(b) { | |
return Math.pow(b, a + 2) | |
} | |
}), | |
a.extend(b, { | |
Sine: function(a) { | |
return 1 - Math.cos(a * Math.PI / 2) | |
}, | |
Circ: function(a) { | |
return 1 - Math.sqrt(1 - a * a) | |
}, | |
Elastic: function(a) { | |
return 0 === a || 1 === a ? a : -Math.pow(2, 8 * (a - 1)) * Math.sin((80 * (a - 1) - 7.5) * Math.PI / 15) | |
}, | |
Back: function(a) { | |
return a * a * (3 * a - 2) | |
}, | |
Bounce: function(a) { | |
for (var b, c = 4; a < ((b = Math.pow(2, --c)) - 1) / 11; ) | |
; | |
return 1 / Math.pow(4, 3 - c) - 7.5625 * Math.pow((3 * b - 2) / 22 - a, 2) | |
} | |
}), | |
a.each(b, function(b, c) { | |
a.easing["easeIn" + b] = c, | |
a.easing["easeOut" + b] = function(a) { | |
return 1 - c(1 - a) | |
} | |
, | |
a.easing["easeInOut" + b] = function(a) { | |
return a < .5 ? c(2 * a) / 2 : 1 - c(a * -2 + 2) / 2 | |
} | |
}) | |
}() | |
}(jQuery), | |
function(a, b) { | |
var c = /up|down|vertical/ | |
, d = /up|left|vertical|horizontal/; | |
a.effects.effect.blind = function(b, e) { | |
var f, g, h, i = a(this), j = ["position", "top", "bottom", "left", "right", "height", "width"], k = a.effects.setMode(i, b.mode || "hide"), l = b.direction || "up", m = c.test(l), n = m ? "height" : "width", o = m ? "top" : "left", p = d.test(l), q = {}, r = "show" === k; | |
i.parent().is(".ui-effects-wrapper") ? a.effects.save(i.parent(), j) : a.effects.save(i, j), | |
i.show(), | |
f = a.effects.createWrapper(i).css({ | |
overflow: "hidden" | |
}), | |
g = f[n](), | |
h = parseFloat(f.css(o)) || 0, | |
q[n] = r ? g : 0, | |
p || (i.css(m ? "bottom" : "right", 0).css(m ? "top" : "left", "auto").css({ | |
position: "absolute" | |
}), | |
q[o] = r ? h : g + h), | |
r && (f.css(n, 0), | |
p || f.css(o, h + g)), | |
f.animate(q, { | |
duration: b.duration, | |
easing: b.easing, | |
queue: !1, | |
complete: function() { | |
"hide" === k && i.hide(), | |
a.effects.restore(i, j), | |
a.effects.removeWrapper(i), | |
e() | |
} | |
}) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.bounce = function(b, c) { | |
var d, e, f, g = a(this), h = ["position", "top", "bottom", "left", "right", "height", "width"], i = a.effects.setMode(g, b.mode || "effect"), j = "hide" === i, k = "show" === i, l = b.direction || "up", m = b.distance, n = b.times || 5, o = 2 * n + (k || j ? 1 : 0), p = b.duration / o, q = b.easing, r = "up" === l || "down" === l ? "top" : "left", s = "up" === l || "left" === l, t = g.queue(), u = t.length; | |
for ((k || j) && h.push("opacity"), | |
a.effects.save(g, h), | |
g.show(), | |
a.effects.createWrapper(g), | |
m || (m = g["top" === r ? "outerHeight" : "outerWidth"]() / 3), | |
k && (f = { | |
opacity: 1 | |
}, | |
f[r] = 0, | |
g.css("opacity", 0).css(r, s ? 2 * -m : 2 * m).animate(f, p, q)), | |
j && (m /= Math.pow(2, n - 1)), | |
f = {}, | |
f[r] = 0, | |
d = 0; d < n; d++) | |
e = {}, | |
e[r] = (s ? "-=" : "+=") + m, | |
g.animate(e, p, q).animate(f, p, q), | |
m = j ? 2 * m : m / 2; | |
j && (e = { | |
opacity: 0 | |
}, | |
e[r] = (s ? "-=" : "+=") + m, | |
g.animate(e, p, q)), | |
g.queue(function() { | |
j && g.hide(), | |
a.effects.restore(g, h), | |
a.effects.removeWrapper(g), | |
c() | |
}), | |
u > 1 && t.splice.apply(t, [1, 0].concat(t.splice(u, o + 1))), | |
g.dequeue() | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.clip = function(b, c) { | |
var d, e, f, g = a(this), h = ["position", "top", "bottom", "left", "right", "height", "width"], i = a.effects.setMode(g, b.mode || "hide"), j = "show" === i, k = b.direction || "vertical", l = "vertical" === k, m = l ? "height" : "width", n = l ? "top" : "left", o = {}; | |
a.effects.save(g, h), | |
g.show(), | |
d = a.effects.createWrapper(g).css({ | |
overflow: "hidden" | |
}), | |
e = "IMG" === g[0].tagName ? d : g, | |
f = e[m](), | |
j && (e.css(m, 0), | |
e.css(n, f / 2)), | |
o[m] = j ? f : 0, | |
o[n] = j ? 0 : f / 2, | |
e.animate(o, { | |
queue: !1, | |
duration: b.duration, | |
easing: b.easing, | |
complete: function() { | |
j || g.hide(), | |
a.effects.restore(g, h), | |
a.effects.removeWrapper(g), | |
c() | |
} | |
}) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.drop = function(b, c) { | |
var d, e = a(this), f = ["position", "top", "bottom", "left", "right", "opacity", "height", "width"], g = a.effects.setMode(e, b.mode || "hide"), h = "show" === g, i = b.direction || "left", j = "up" === i || "down" === i ? "top" : "left", k = "up" === i || "left" === i ? "pos" : "neg", l = { | |
opacity: h ? 1 : 0 | |
}; | |
a.effects.save(e, f), | |
e.show(), | |
a.effects.createWrapper(e), | |
d = b.distance || e["top" === j ? "outerHeight" : "outerWidth"](!0) / 2, | |
h && e.css("opacity", 0).css(j, "pos" === k ? -d : d), | |
l[j] = (h ? "pos" === k ? "+=" : "-=" : "pos" === k ? "-=" : "+=") + d, | |
e.animate(l, { | |
queue: !1, | |
duration: b.duration, | |
easing: b.easing, | |
complete: function() { | |
"hide" === g && e.hide(), | |
a.effects.restore(e, f), | |
a.effects.removeWrapper(e), | |
c() | |
} | |
}) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.explode = function(b, c) { | |
function d() { | |
t.push(this), | |
t.length === l * m && e() | |
} | |
function e() { | |
n.css({ | |
visibility: "visible" | |
}), | |
a(t).remove(), | |
p || n.hide(), | |
c() | |
} | |
var f, g, h, i, j, k, l = b.pieces ? Math.round(Math.sqrt(b.pieces)) : 3, m = l, n = a(this), o = a.effects.setMode(n, b.mode || "hide"), p = "show" === o, q = n.show().css("visibility", "hidden").offset(), r = Math.ceil(n.outerWidth() / m), s = Math.ceil(n.outerHeight() / l), t = []; | |
for (f = 0; f < l; f++) | |
for (i = q.top + f * s, | |
k = f - (l - 1) / 2, | |
g = 0; g < m; g++) | |
h = q.left + g * r, | |
j = g - (m - 1) / 2, | |
n.clone().appendTo("body").wrap("<div></div>").css({ | |
position: "absolute", | |
visibility: "visible", | |
left: -g * r, | |
top: -f * s | |
}).parent().addClass("ui-effects-explode").css({ | |
position: "absolute", | |
overflow: "hidden", | |
width: r, | |
height: s, | |
left: h + (p ? j * r : 0), | |
top: i + (p ? k * s : 0), | |
opacity: p ? 0 : 1 | |
}).animate({ | |
left: h + (p ? 0 : j * r), | |
top: i + (p ? 0 : k * s), | |
opacity: p ? 1 : 0 | |
}, b.duration || 500, b.easing, d) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.fade = function(b, c) { | |
var d = a(this) | |
, e = a.effects.setMode(d, b.mode || "toggle"); | |
d.animate({ | |
opacity: e | |
}, { | |
queue: !1, | |
duration: b.duration, | |
easing: b.easing, | |
complete: c | |
}) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.fold = function(b, c) { | |
var d, e, f = a(this), g = ["position", "top", "bottom", "left", "right", "height", "width"], h = a.effects.setMode(f, b.mode || "hide"), i = "show" === h, j = "hide" === h, k = b.size || 15, l = /([0-9]+)%/.exec(k), m = !!b.horizFirst, n = i !== m, o = n ? ["width", "height"] : ["height", "width"], p = b.duration / 2, q = {}, r = {}; | |
a.effects.save(f, g), | |
f.show(), | |
d = a.effects.createWrapper(f).css({ | |
overflow: "hidden" | |
}), | |
e = n ? [d.width(), d.height()] : [d.height(), d.width()], | |
l && (k = parseInt(l[1], 10) / 100 * e[j ? 0 : 1]), | |
i && d.css(m ? { | |
height: 0, | |
width: k | |
} : { | |
height: k, | |
width: 0 | |
}), | |
q[o[0]] = i ? e[0] : k, | |
r[o[1]] = i ? e[1] : 0, | |
d.animate(q, p, b.easing).animate(r, p, b.easing, function() { | |
j && f.hide(), | |
a.effects.restore(f, g), | |
a.effects.removeWrapper(f), | |
c() | |
}) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.highlight = function(b, c) { | |
var d = a(this) | |
, e = ["backgroundImage", "backgroundColor", "opacity"] | |
, f = a.effects.setMode(d, b.mode || "show") | |
, g = { | |
backgroundColor: d.css("backgroundColor") | |
}; | |
"hide" === f && (g.opacity = 0), | |
a.effects.save(d, e), | |
d.show().css({ | |
backgroundImage: "none", | |
backgroundColor: b.color || "#ffff99" | |
}).animate(g, { | |
queue: !1, | |
duration: b.duration, | |
easing: b.easing, | |
complete: function() { | |
"hide" === f && d.hide(), | |
a.effects.restore(d, e), | |
c() | |
} | |
}) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.pulsate = function(b, c) { | |
var d, e = a(this), f = a.effects.setMode(e, b.mode || "show"), g = "show" === f, h = "hide" === f, i = g || "hide" === f, j = 2 * (b.times || 5) + (i ? 1 : 0), k = b.duration / j, l = 0, m = e.queue(), n = m.length; | |
for (!g && e.is(":visible") || (e.css("opacity", 0).show(), | |
l = 1), | |
d = 1; d < j; d++) | |
e.animate({ | |
opacity: l | |
}, k, b.easing), | |
l = 1 - l; | |
e.animate({ | |
opacity: l | |
}, k, b.easing), | |
e.queue(function() { | |
h && e.hide(), | |
c() | |
}), | |
n > 1 && m.splice.apply(m, [1, 0].concat(m.splice(n, j + 1))), | |
e.dequeue() | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.puff = function(b, c) { | |
var d = a(this) | |
, e = a.effects.setMode(d, b.mode || "hide") | |
, f = "hide" === e | |
, g = parseInt(b.percent, 10) || 150 | |
, h = g / 100 | |
, i = { | |
height: d.height(), | |
width: d.width() | |
}; | |
a.extend(b, { | |
effect: "scale", | |
queue: !1, | |
fade: !0, | |
mode: e, | |
complete: c, | |
percent: f ? g : 100, | |
from: f ? i : { | |
height: i.height * h, | |
width: i.width * h | |
} | |
}), | |
d.effect(b) | |
} | |
, | |
a.effects.effect.scale = function(b, c) { | |
var d = a(this) | |
, e = a.extend(!0, {}, b) | |
, f = a.effects.setMode(d, b.mode || "effect") | |
, g = parseInt(b.percent, 10) || (0 === parseInt(b.percent, 10) ? 0 : "hide" === f ? 0 : 100) | |
, h = b.direction || "both" | |
, i = b.origin | |
, j = { | |
height: d.height(), | |
width: d.width(), | |
outerHeight: d.outerHeight(), | |
outerWidth: d.outerWidth() | |
} | |
, k = { | |
y: "horizontal" !== h ? g / 100 : 1, | |
x: "vertical" !== h ? g / 100 : 1 | |
}; | |
e.effect = "size", | |
e.queue = !1, | |
e.complete = c, | |
"effect" !== f && (e.origin = i || ["middle", "center"], | |
e.restore = !0), | |
e.from = b.from || ("show" === f ? { | |
height: 0, | |
width: 0 | |
} : j), | |
e.to = { | |
height: j.height * k.y, | |
width: j.width * k.x, | |
outerHeight: j.outerHeight * k.y, | |
outerWidth: j.outerWidth * k.x | |
}, | |
e.fade && ("show" === f && (e.from.opacity = 0, | |
e.to.opacity = 1), | |
"hide" === f && (e.from.opacity = 1, | |
e.to.opacity = 0)), | |
d.effect(e) | |
} | |
, | |
a.effects.effect.size = function(b, c) { | |
var d, e, f, g = a(this), h = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"], i = ["position", "top", "bottom", "left", "right", "overflow", "opacity"], j = ["width", "height", "overflow"], k = ["fontSize"], l = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], m = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], n = a.effects.setMode(g, b.mode || "effect"), o = b.restore || "effect" !== n, p = b.scale || "both", q = b.origin || ["middle", "center"], r = g.css("position"); | |
"show" === n && g.show(), | |
d = { | |
height: g.height(), | |
width: g.width(), | |
outerHeight: g.outerHeight(), | |
outerWidth: g.outerWidth() | |
}, | |
g.from = b.from || d, | |
g.to = b.to || d, | |
f = { | |
from: { | |
y: g.from.height / d.height, | |
x: g.from.width / d.width | |
}, | |
to: { | |
y: g.to.height / d.height, | |
x: g.to.width / d.width | |
} | |
}, | |
"box" !== p && "both" !== p || (f.from.y !== f.to.y && (h = h.concat(l), | |
g.from = a.effects.setTransition(g, l, f.from.y, g.from), | |
g.to = a.effects.setTransition(g, l, f.to.y, g.to)), | |
f.from.x !== f.to.x && (h = h.concat(m), | |
g.from = a.effects.setTransition(g, m, f.from.x, g.from), | |
g.to = a.effects.setTransition(g, m, f.to.x, g.to))), | |
"content" !== p && "both" !== p || f.from.y !== f.to.y && (h = h.concat(k), | |
g.from = a.effects.setTransition(g, k, f.from.y, g.from), | |
g.to = a.effects.setTransition(g, k, f.to.y, g.to)), | |
a.effects.save(g, o ? h : i), | |
g.show(), | |
a.effects.createWrapper(g), | |
g.css("overflow", "hidden").css(g.from), | |
q && (e = a.effects.getBaseline(q, d), | |
g.from.top = (d.outerHeight - g.outerHeight()) * e.y, | |
g.from.left = (d.outerWidth - g.outerWidth()) * e.x, | |
g.to.top = (d.outerHeight - g.to.outerHeight) * e.y, | |
g.to.left = (d.outerWidth - g.to.outerWidth) * e.x), | |
g.css(g.from), | |
"content" !== p && "both" !== p || (l = l.concat(["marginTop", "marginBottom"]).concat(k), | |
m = m.concat(["marginLeft", "marginRight"]), | |
j = h.concat(l).concat(m), | |
g.find("*[width]").each(function() { | |
var c = a(this) | |
, d = { | |
height: c.height(), | |
width: c.width() | |
}; | |
o && a.effects.save(c, j), | |
c.from = { | |
height: d.height * f.from.y, | |
width: d.width * f.from.x | |
}, | |
c.to = { | |
height: d.height * f.to.y, | |
width: d.width * f.to.x | |
}, | |
f.from.y !== f.to.y && (c.from = a.effects.setTransition(c, l, f.from.y, c.from), | |
c.to = a.effects.setTransition(c, l, f.to.y, c.to)), | |
f.from.x !== f.to.x && (c.from = a.effects.setTransition(c, m, f.from.x, c.from), | |
c.to = a.effects.setTransition(c, m, f.to.x, c.to)), | |
c.css(c.from), | |
c.animate(c.to, b.duration, b.easing, function() { | |
o && a.effects.restore(c, j) | |
}) | |
})), | |
g.animate(g.to, { | |
queue: !1, | |
duration: b.duration, | |
easing: b.easing, | |
complete: function() { | |
0 === g.to.opacity && g.css("opacity", g.from.opacity), | |
"hide" === n && g.hide(), | |
a.effects.restore(g, o ? h : i), | |
o || ("static" === r ? g.css({ | |
position: "relative", | |
top: g.to.top, | |
left: g.to.left | |
}) : a.each(["top", "left"], function(a, b) { | |
g.css(b, function(b, c) { | |
var d = parseInt(c, 10) | |
, e = a ? g.to.left : g.to.top; | |
return "auto" === c ? e + "px" : d + e + "px" | |
}) | |
})), | |
a.effects.removeWrapper(g), | |
c() | |
} | |
}) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.shake = function(b, c) { | |
var d, e = a(this), f = ["position", "top", "bottom", "left", "right", "height", "width"], g = a.effects.setMode(e, b.mode || "effect"), h = b.direction || "left", i = b.distance || 20, j = b.times || 3, k = 2 * j + 1, l = Math.round(b.duration / k), m = "up" === h || "down" === h ? "top" : "left", n = "up" === h || "left" === h, o = {}, p = {}, q = {}, r = e.queue(), s = r.length; | |
for (a.effects.save(e, f), | |
e.show(), | |
a.effects.createWrapper(e), | |
o[m] = (n ? "-=" : "+=") + i, | |
p[m] = (n ? "+=" : "-=") + 2 * i, | |
q[m] = (n ? "-=" : "+=") + 2 * i, | |
e.animate(o, l, b.easing), | |
d = 1; d < j; d++) | |
e.animate(p, l, b.easing).animate(q, l, b.easing); | |
e.animate(p, l, b.easing).animate(o, l / 2, b.easing).queue(function() { | |
"hide" === g && e.hide(), | |
a.effects.restore(e, f), | |
a.effects.removeWrapper(e), | |
c() | |
}), | |
s > 1 && r.splice.apply(r, [1, 0].concat(r.splice(s, k + 1))), | |
e.dequeue() | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.slide = function(b, c) { | |
var d, e = a(this), f = ["position", "top", "bottom", "left", "right", "width", "height"], g = a.effects.setMode(e, b.mode || "show"), h = "show" === g, i = b.direction || "left", j = "up" === i || "down" === i ? "top" : "left", k = "up" === i || "left" === i, l = {}; | |
a.effects.save(e, f), | |
e.show(), | |
d = b.distance || e["top" === j ? "outerHeight" : "outerWidth"](!0), | |
a.effects.createWrapper(e).css({ | |
overflow: "hidden" | |
}), | |
h && e.css(j, k ? isNaN(d) ? "-" + d : -d : d), | |
l[j] = (h ? k ? "+=" : "-=" : k ? "-=" : "+=") + d, | |
e.animate(l, { | |
queue: !1, | |
duration: b.duration, | |
easing: b.easing, | |
complete: function() { | |
"hide" === g && e.hide(), | |
a.effects.restore(e, f), | |
a.effects.removeWrapper(e), | |
c() | |
} | |
}) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.effects.effect.transfer = function(b, c) { | |
var d = a(this) | |
, e = a(b.to) | |
, f = "fixed" === e.css("position") | |
, g = a("body") | |
, h = f ? g.scrollTop() : 0 | |
, i = f ? g.scrollLeft() : 0 | |
, j = e.offset() | |
, k = { | |
top: j.top - h, | |
left: j.left - i, | |
height: e.innerHeight(), | |
width: e.innerWidth() | |
} | |
, l = d.offset() | |
, m = a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.className).css({ | |
top: l.top - h, | |
left: l.left - i, | |
height: d.innerHeight(), | |
width: d.innerWidth(), | |
position: f ? "fixed" : "absolute" | |
}).animate(k, b.duration, b.easing, function() { | |
m.remove(), | |
c() | |
}) | |
} | |
}(jQuery), | |
function(a, b) { | |
var c = !1; | |
a.widget("ui.menu", { | |
version: "1.9.0", | |
defaultElement: "<ul>", | |
delay: 300, | |
options: { | |
icons: { | |
submenu: "ui-icon-carat-1-e" | |
}, | |
menus: "ul", | |
position: { | |
my: "left top", | |
at: "right top" | |
}, | |
role: "menu", | |
blur: null, | |
focus: null, | |
select: null | |
}, | |
_create: function() { | |
this.activeMenu = this.element, | |
this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length).attr({ | |
role: this.options.role, | |
tabIndex: 0 | |
}).bind("click" + this.eventNamespace, a.proxy(function(a) { | |
this.options.disabled && a.preventDefault() | |
}, this)), | |
this.options.disabled && this.element.addClass("ui-state-disabled").attr("aria-disabled", "true"), | |
this._on({ | |
"mousedown .ui-menu-item > a": function(a) { | |
a.preventDefault() | |
}, | |
"click .ui-state-disabled > a": function(a) { | |
a.preventDefault() | |
}, | |
"click .ui-menu-item:has(a)": function(b) { | |
var d = a(b.target).closest(".ui-menu-item"); | |
!c && d.not(".ui-state-disabled").length && (c = !0, | |
this.select(b), | |
d.has(".ui-menu").length ? this.expand(b) : this.element.is(":focus") || (this.element.trigger("focus", [!0]), | |
this.active && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer))) | |
}, | |
"mouseenter .ui-menu-item": function(b) { | |
var c = a(b.currentTarget); | |
c.siblings().children(".ui-state-active").removeClass("ui-state-active"), | |
this.focus(b, c) | |
}, | |
mouseleave: "collapseAll", | |
"mouseleave .ui-menu": "collapseAll", | |
focus: function(a, b) { | |
var c = this.active || this.element.children(".ui-menu-item").eq(0); | |
b || this.focus(a, c) | |
}, | |
blur: function(b) { | |
this._delay(function() { | |
a.contains(this.element[0], this.document[0].activeElement) || this.collapseAll(b) | |
}) | |
}, | |
keydown: "_keydown" | |
}), | |
this.refresh(), | |
this._on(this.document, { | |
click: function(b) { | |
a(b.target).closest(".ui-menu").length || this.collapseAll(b), | |
c = !1 | |
} | |
}) | |
}, | |
_destroy: function() { | |
this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(), | |
this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function() { | |
var b = a(this); | |
b.data("ui-menu-submenu-carat") && b.remove() | |
}), | |
this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content") | |
}, | |
_keydown: function(b) { | |
function c(a) { | |
return a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&") | |
} | |
var d, e, f, g, h, i = !0; | |
switch (b.keyCode) { | |
case a.ui.keyCode.PAGE_UP: | |
this.a6C(b); | |
break; | |
case a.ui.keyCode.PAGE_DOWN: | |
this.a6d(b); | |
break; | |
case a.ui.keyCode.HOME: | |
this._move("first", "first", b); | |
break; | |
case a.ui.keyCode.END: | |
this._move("last", "last", b); | |
break; | |
case a.ui.keyCode.UP: | |
this.previous(b); | |
break; | |
case a.ui.keyCode.DOWN: | |
this.next(b); | |
break; | |
case a.ui.keyCode.LEFT: | |
this.collapse(b); | |
break; | |
case a.ui.keyCode.RIGHT: | |
this.active && !this.active.is(".ui-state-disabled") && this.expand(b); | |
break; | |
case a.ui.keyCode.ENTER: | |
case a.ui.keyCode.SPACE: | |
this._activate(b); | |
break; | |
case a.ui.keyCode.ESCAPE: | |
this.collapse(b); | |
break; | |
default: | |
i = !1, | |
e = this.previousFilter || "", | |
f = String.fromCharCode(b.keyCode), | |
g = !1, | |
clearTimeout(this.filtera6K), | |
f === e ? g = !0 : f = e + f, | |
h = new RegExp("^" + c(f),"i"), | |
d = this.activeMenu.children(".ui-menu-item").filter(function() { | |
return h.test(a(this).children("a").text()) | |
}), | |
d = g && d.index(this.active.next()) !== -1 ? this.active.nextAll(".ui-menu-item") : d, | |
d.length || (f = String.fromCharCode(b.keyCode), | |
h = new RegExp("^" + c(f),"i"), | |
d = this.activeMenu.children(".ui-menu-item").filter(function() { | |
return h.test(a(this).children("a").text()) | |
})), | |
d.length ? (this.focus(b, d), | |
d.length > 1 ? (this.previousFilter = f, | |
this.filtera6K = this._delay(function() { | |
delete this.previousFilter | |
}, 1e3)) : delete this.previousFilter) : delete this.previousFilter | |
} | |
i && b.preventDefault() | |
}, | |
_activate: function(a) { | |
this.active.is(".ui-state-disabled") || (this.active.children("a[aria-haspopup='true']").length ? this.expand(a) : this.select(a)) | |
}, | |
refresh: function() { | |
var b, c = this.options.icons.submenu, d = this.element.find(this.options.menus + ":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({ | |
role: this.options.role, | |
"aria-hidden": "true", | |
"aria-expanded": "false" | |
}); | |
b = d.add(this.element), | |
b.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "presentation").children("a").uniqueId().addClass("ui-corner-all").attr({ | |
tabIndex: -1, | |
role: this._itemRole() | |
}), | |
b.children(":not(.ui-menu-item)").each(function() { | |
var b = a(this); | |
/[^\-\u2014\u2013\s]/.test(b.text()) || b.addClass("ui-widget-content ui-menu-divider") | |
}), | |
b.children(".ui-state-disabled").attr("aria-disabled", "true"), | |
d.each(function() { | |
var b = a(this) | |
, d = b.prev("a") | |
, e = a("<span>").addClass("ui-menu-icon ui-icon " + c).data("ui-menu-submenu-carat", !0); | |
d.attr("aria-haspopup", "true").prepend(e), | |
b.attr("aria-labelledby", d.attr("id")) | |
}), | |
this.active && !a.contains(this.element[0], this.active[0]) && this.blur() | |
}, | |
_itemRole: function() { | |
return { | |
menu: "menuitem", | |
listbox: "option" | |
}[this.options.role] | |
}, | |
focus: function(a, b) { | |
var c, d; | |
this.blur(a, a && "focus" === a.type), | |
this._scrollIntoView(b), | |
this.active = b.first(), | |
d = this.active.children("a").addClass("ui-state-focus"), | |
this.options.role && this.element.attr("aria-activedescendant", d.attr("id")), | |
this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"), | |
a && "keydown" === a.type ? this._close() : this.timer = this._delay(function() { | |
this._close() | |
}, this.delay), | |
c = b.children(".ui-menu"), | |
c.length && /^mouse/.test(a.type) && this._startOpening(c), | |
this.activeMenu = b.parent(), | |
this._trigger("focus", a, { | |
item: b | |
}) | |
}, | |
_scrollIntoView: function(b) { | |
var c, d, e, f, g, h; | |
this._hasScroll() && (c = parseFloat(a.css(this.activeMenu[0], "borderTopWidth")) || 0, | |
d = parseFloat(a.css(this.activeMenu[0], "paddingTop")) || 0, | |
e = b.offset().top - this.activeMenu.offset().top - c - d, | |
f = this.activeMenu.scrollTop(), | |
g = this.activeMenu.height(), | |
h = b.height(), | |
e < 0 ? this.activeMenu.scrollTop(f + e) : e + h > g && this.activeMenu.scrollTop(f + e - g + h)) | |
}, | |
blur: function(a, b) { | |
b || clearTimeout(this.timer), | |
this.active && (this.active.children("a").removeClass("ui-state-focus"), | |
this.active = null, | |
this._trigger("blur", a, { | |
item: this.active | |
})) | |
}, | |
_startOpening: function(a) { | |
clearTimeout(this.timer), | |
"true" === a.attr("aria-hidden") && (this.timer = this._delay(function() { | |
this._close(), | |
this._open(a) | |
}, this.delay)) | |
}, | |
_open: function(b) { | |
var c = a.extend({ | |
of: this.active | |
}, this.options.position); | |
clearTimeout(this.timer), | |
this.element.find(".ui-menu").not(b.parents(".ui-menu")).hide().attr("aria-hidden", "true"), | |
b.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(c) | |
}, | |
collapseAll: function(b, c) { | |
clearTimeout(this.timer), | |
this.timer = this._delay(function() { | |
var d = c ? this.element : a(b && b.target).closest(this.element.find(".ui-menu")); | |
d.length || (d = this.element), | |
this._close(d), | |
this.blur(b), | |
this.activeMenu = d | |
}, this.delay) | |
}, | |
_close: function(a) { | |
a || (a = this.active ? this.active.parent() : this.element), | |
a.find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false").end().find("a.ui-state-active").removeClass("ui-state-active") | |
}, | |
collapse: function(a) { | |
var b = this.active && this.active.parent().closest(".ui-menu-item", this.element); | |
b && b.length && (this._close(), | |
this.focus(a, b)) | |
}, | |
expand: function(a) { | |
var b = this.active && this.active.children(".ui-menu ").children(".ui-menu-item").first(); | |
b && b.length && (this._open(b.parent()), | |
this._delay(function() { | |
this.focus(a, b) | |
})) | |
}, | |
next: function(a) { | |
this._move("next", "first", a) | |
}, | |
previous: function(a) { | |
this._move("prev", "last", a) | |
}, | |
isFirstItem: function() { | |
return this.active && !this.active.prevAll(".ui-menu-item").length | |
}, | |
isLastItem: function() { | |
return this.active && !this.active.nextAll(".ui-menu-item").length | |
}, | |
_move: function(a, b, c) { | |
var d; | |
this.active && (d = "first" === a || "last" === a ? this.active["first" === a ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : this.active[a + "All"](".ui-menu-item").eq(0)), | |
d && d.length && this.active || (d = this.activeMenu.children(".ui-menu-item")[b]()), | |
this.focus(c, d) | |
}, | |
a6d: function(b) { | |
var c, d, e; | |
return this.active ? void (this.isLastItem() || (this._hasScroll() ? (d = this.active.offset().top, | |
e = this.element.height(), | |
this.active.nextAll(".ui-menu-item").each(function() { | |
return c = a(this), | |
c.offset().top - d - e < 0 | |
}), | |
this.focus(b, c)) : this.focus(b, this.activeMenu.children(".ui-menu-item")[this.active ? "last" : "first"]()))) : void this.next(b) | |
}, | |
a6C: function(b) { | |
var c, d, e; | |
return this.active ? void (this.isFirstItem() || (this._hasScroll() ? (d = this.active.offset().top, | |
e = this.element.height(), | |
this.active.prevAll(".ui-menu-item").each(function() { | |
return c = a(this), | |
c.offset().top - d + e > 0 | |
}), | |
this.focus(b, c)) : this.focus(b, this.activeMenu.children(".ui-menu-item").first()))) : void this.next(b) | |
}, | |
_hasScroll: function() { | |
return this.element.outerHeight() < this.element.prop("scrollHeight") | |
}, | |
select: function(b) { | |
this.active = this.active || a(b.target).closest(".ui-menu-item"); | |
var c = { | |
item: this.active | |
}; | |
this.active.has(".ui-menu").length || this.collapseAll(b, !0), | |
this._trigger("select", b, c) | |
} | |
}) | |
}(jQuery), | |
function(a, b) { | |
a.widget("ui.progressbar", { | |
version: "1.9.0", | |
options: { | |
value: 0, | |
max: 100 | |
}, | |
min: 0, | |
_create: function() { | |
this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({ | |
role: "progressbar", | |
"aria-valuemin": this.min, | |
"aria-valuemax": this.options.max, | |
"aria-valuenow": this._value() | |
}), | |
this.valueDiv = a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element), | |
this.oldValue = this._value(), | |
this._refreshValue() | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"), | |
this.valueDiv.remove() | |
}, | |
value: function(a) { | |
return a === b ? this._value() : (this._setOption("value", a), | |
this) | |
}, | |
_setOption: function(a, b) { | |
"value" === a && (this.options.value = b, | |
this._refreshValue(), | |
this._value() === this.options.max && this._trigger("complete")), | |
this._super(a, b) | |
}, | |
_value: function() { | |
var a = this.options.value; | |
return "number" != typeof a && (a = 0), | |
Math.min(this.options.max, Math.max(this.min, a)) | |
}, | |
_percentage: function() { | |
return 100 * this._value() / this.options.max | |
}, | |
_refreshValue: function() { | |
var a = this.value() | |
, b = this._percentage(); | |
this.oldValue !== a && (this.oldValue = a, | |
this._trigger("change")), | |
this.valueDiv.toggle(a > this.min).toggleClass("ui-corner-right", a === this.options.max).width(b.toFixed(0) + "%"), | |
this.element.attr("aria-valuenow", a) | |
} | |
}) | |
}(jQuery), | |
function(a, b) { | |
a.widget("ui.resizable", a.ui.mouse, { | |
version: "1.9.0", | |
widgetEventPrefix: "resize", | |
options: { | |
alsoResize: !1, | |
animate: !1, | |
animateDuration: "slow", | |
animateEasing: "swing", | |
aspectRatio: !1, | |
autoHide: !1, | |
containment: !1, | |
ghost: !1, | |
grid: !1, | |
handles: "e,s,se", | |
helper: !1, | |
maxHeight: null, | |
maxWidth: null, | |
minHeight: 10, | |
minWidth: 10, | |
zIndex: 1e3 | |
}, | |
_create: function() { | |
var b = this | |
, c = this.options; | |
if (this.element.addClass("ui-resizable"), | |
a.extend(this, { | |
_aspectRatio: !!c.aspectRatio, | |
aspectRatio: c.aspectRatio, | |
originalElement: this.element, | |
_proportionallyResizeElements: [], | |
_helper: c.helper || c.ghost || c.animate ? c.helper || "ui-resizable-helper" : null | |
}), | |
this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i) && (this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({ | |
position: this.element.css("position"), | |
width: this.element.outerWidth(), | |
height: this.element.outerHeight(), | |
top: this.element.css("top"), | |
left: this.element.css("left") | |
})), | |
this.element = this.element.parent().data("resizable", this.element.data("resizable")), | |
this.elementIsWrapper = !0, | |
this.element.css({ | |
marginLeft: this.originalElement.css("marginLeft"), | |
marginTop: this.originalElement.css("marginTop"), | |
marginRight: this.originalElement.css("marginRight"), | |
marginBottom: this.originalElement.css("marginBottom") | |
}), | |
this.originalElement.css({ | |
marginLeft: 0, | |
marginTop: 0, | |
marginRight: 0, | |
marginBottom: 0 | |
}), | |
this.originalResizeStyle = this.originalElement.css("resize"), | |
this.originalElement.css("resize", "none"), | |
this._proportionallyResizeElements.push(this.originalElement.css({ | |
position: "static", | |
zoom: 1, | |
display: "block" | |
})), | |
this.originalElement.css({ | |
margin: this.originalElement.css("margin") | |
}), | |
this._proportionallyResize()), | |
this.handles = c.handles || (a(".ui-resizable-handle", this.element).length ? { | |
n: ".ui-resizable-n", | |
e: ".ui-resizable-e", | |
s: ".ui-resizable-s", | |
w: ".ui-resizable-w", | |
se: ".ui-resizable-se", | |
sw: ".ui-resizable-sw", | |
ne: ".ui-resizable-ne", | |
nw: ".ui-resizable-nw" | |
} : "e,s,se"), | |
this.handles.constructor == String) { | |
"all" == this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"); | |
var d = this.handles.split(","); | |
this.handles = {}; | |
for (var e = 0; e < d.length; e++) { | |
var f = a.trim(d[e]) | |
, g = "ui-resizable-" + f | |
, h = a('<div class="ui-resizable-handle ' + g + '"></div>'); | |
h.css({ | |
zIndex: c.zIndex | |
}), | |
"se" == f && h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"), | |
this.handles[f] = ".ui-resizable-" + f, | |
this.element.append(h) | |
} | |
} | |
this._renderAxis = function(b) { | |
b = b || this.element; | |
for (var c in this.handles) { | |
if (this.handles[c].constructor == String && (this.handles[c] = a(this.handles[c], this.element).show()), | |
this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { | |
var d = a(this.handles[c], this.element) | |
, e = 0; | |
e = /sw|ne|nw|se|n|s/.test(c) ? d.outerHeight() : d.outerWidth(); | |
var f = ["padding", /ne|nw|n/.test(c) ? "Top" : /se|sw|s/.test(c) ? "Bottom" : /^e$/.test(c) ? "Right" : "Left"].join(""); | |
b.css(f, e), | |
this._proportionallyResize() | |
} | |
a(this.handles[c]).length | |
} | |
} | |
, | |
this._renderAxis(this.element), | |
this._handles = a(".ui-resizable-handle", this.element).disableSelection(), | |
this._handles.mouseover(function() { | |
if (!b.resizing) { | |
if (this.className) | |
var a = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); | |
b.axis = a && a[1] ? a[1] : "se" | |
} | |
}), | |
c.autoHide && (this._handles.hide(), | |
a(this.element).addClass("ui-resizable-autohide").mouseenter(function() { | |
c.disabled || (a(this).removeClass("ui-resizable-autohide"), | |
b._handles.show()) | |
}).mouseleave(function() { | |
c.disabled || b.resizing || (a(this).addClass("ui-resizable-autohide"), | |
b._handles.hide()) | |
})), | |
this._mouseInit() | |
}, | |
_destroy: function() { | |
this._mouseDestroy(); | |
var b = function(b) { | |
a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove() | |
}; | |
if (this.elementIsWrapper) { | |
b(this.element); | |
var c = this.element; | |
c.after(this.originalElement.css({ | |
position: c.css("position"), | |
width: c.outerWidth(), | |
height: c.outerHeight(), | |
top: c.css("top"), | |
left: c.css("left") | |
})).remove() | |
} | |
return this.originalElement.css("resize", this.originalResizeStyle), | |
b(this.originalElement), | |
this | |
}, | |
_mouseCapture: function(b) { | |
var c = !1; | |
for (var d in this.handles) | |
a(this.handles[d])[0] == b.target && (c = !0); | |
return !this.options.disabled && c | |
}, | |
_mouseStart: function(b) { | |
var d = this.options | |
, e = this.element.position() | |
, f = this.element; | |
this.resizing = !0, | |
this.documentScroll = { | |
top: a(document).scrollTop(), | |
left: a(document).scrollLeft() | |
}, | |
(f.is(".ui-draggable") || /absolute/.test(f.css("position"))) && f.css({ | |
position: "absolute", | |
top: e.top, | |
left: e.left | |
}), | |
this._renderProxy(); | |
var g = c(this.helper.css("left")) | |
, h = c(this.helper.css("top")); | |
d.containment && (g += a(d.containment).scrollLeft() || 0, | |
h += a(d.containment).scrollTop() || 0), | |
this.offset = this.helper.offset(), | |
this.position = { | |
left: g, | |
top: h | |
}, | |
this.size = this._helper ? { | |
width: f.outerWidth(), | |
height: f.outerHeight() | |
} : { | |
width: f.width(), | |
height: f.height() | |
}, | |
this.originalSize = this._helper ? { | |
width: f.outerWidth(), | |
height: f.outerHeight() | |
} : { | |
width: f.width(), | |
height: f.height() | |
}, | |
this.originalPosition = { | |
left: g, | |
top: h | |
}, | |
this.sizeDiff = { | |
width: f.outerWidth() - f.width(), | |
height: f.outerHeight() - f.height() | |
}, | |
this.originalMousePosition = { | |
left: b.pageX, | |
top: b.pageY | |
}, | |
this.aspectRatio = "number" == typeof d.aspectRatio ? d.aspectRatio : this.originalSize.width / this.originalSize.height || 1; | |
var i = a(".ui-resizable-" + this.axis).css("cursor"); | |
return a("body").css("cursor", "auto" == i ? this.axis + "-resize" : i), | |
f.addClass("ui-resizable-resizing"), | |
this._propagate("start", b), | |
!0 | |
}, | |
_mouseDrag: function(a) { | |
var b = this.helper | |
, c = (this.options, | |
this.originalMousePosition) | |
, d = this.axis | |
, e = a.pageX - c.left || 0 | |
, f = a.pageY - c.top || 0 | |
, g = this._change[d]; | |
if (!g) | |
return !1; | |
var h = g.apply(this, [a, e, f]); | |
return this._updateVirtualBoundaries(a.shiftKey), | |
(this._aspectRatio || a.shiftKey) && (h = this._updateRatio(h, a)), | |
h = this._respectSize(h, a), | |
this._propagate("resize", a), | |
b.css({ | |
top: this.position.top + "px", | |
left: this.position.left + "px", | |
width: this.size.width + "px", | |
height: this.size.height + "px" | |
}), | |
!this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(), | |
this._updateCache(h), | |
this._trigger("resize", a, this.ui()), | |
!1 | |
}, | |
_mouseStop: function(b) { | |
this.resizing = !1; | |
var c = this.options | |
, d = this; | |
if (this._helper) { | |
var e = this._proportionallyResizeElements | |
, f = e.length && /textarea/i.test(e[0].nodeName) | |
, g = f && a.ui.hasScroll(e[0], "left") ? 0 : d.sizeDiff.height | |
, h = f ? 0 : d.sizeDiff.width | |
, i = { | |
width: d.helper.width() - h, | |
height: d.helper.height() - g | |
} | |
, j = parseInt(d.element.css("left"), 10) + (d.position.left - d.originalPosition.left) || null | |
, k = parseInt(d.element.css("top"), 10) + (d.position.top - d.originalPosition.top) || null; | |
c.animate || this.element.css(a.extend(i, { | |
top: k, | |
left: j | |
})), | |
d.helper.height(d.size.height), | |
d.helper.width(d.size.width), | |
this._helper && !c.animate && this._proportionallyResize() | |
} | |
return a("body").css("cursor", "auto"), | |
this.element.removeClass("ui-resizable-resizing"), | |
this._propagate("stop", b), | |
this._helper && this.helper.remove(), | |
!1 | |
}, | |
_updateVirtualBoundaries: function(a) { | |
var b, c, e, f, g, h = this.options; | |
g = { | |
minWidth: d(h.minWidth) ? h.minWidth : 0, | |
maxWidth: d(h.maxWidth) ? h.maxWidth : 1 / 0, | |
minHeight: d(h.minHeight) ? h.minHeight : 0, | |
maxHeight: d(h.maxHeight) ? h.maxHeight : 1 / 0 | |
}, | |
(this._aspectRatio || a) && (b = g.minHeight * this.aspectRatio, | |
e = g.minWidth / this.aspectRatio, | |
c = g.maxHeight * this.aspectRatio, | |
f = g.maxWidth / this.aspectRatio, | |
b > g.minWidth && (g.minWidth = b), | |
e > g.minHeight && (g.minHeight = e), | |
c < g.maxWidth && (g.maxWidth = c), | |
f < g.maxHeight && (g.maxHeight = f)), | |
this._vBoundaries = g | |
}, | |
_updateCache: function(a) { | |
this.options; | |
this.offset = this.helper.offset(), | |
d(a.left) && (this.position.left = a.left), | |
d(a.top) && (this.position.top = a.top), | |
d(a.height) && (this.size.height = a.height), | |
d(a.width) && (this.size.width = a.width) | |
}, | |
_updateRatio: function(a, b) { | |
var c = (this.options, | |
this.position) | |
, e = this.size | |
, f = this.axis; | |
return d(a.height) ? a.width = a.height * this.aspectRatio : d(a.width) && (a.height = a.width / this.aspectRatio), | |
"sw" == f && (a.left = c.left + (e.width - a.width), | |
a.top = null), | |
"nw" == f && (a.top = c.top + (e.height - a.height), | |
a.left = c.left + (e.width - a.width)), | |
a | |
}, | |
_respectSize: function(a, b) { | |
var c = (this.helper, | |
this._vBoundaries) | |
, e = (this._aspectRatio || b.shiftKey, | |
this.axis) | |
, f = d(a.width) && c.maxWidth && c.maxWidth < a.width | |
, g = d(a.height) && c.maxHeight && c.maxHeight < a.height | |
, h = d(a.width) && c.minWidth && c.minWidth > a.width | |
, i = d(a.height) && c.minHeight && c.minHeight > a.height; | |
h && (a.width = c.minWidth), | |
i && (a.height = c.minHeight), | |
f && (a.width = c.maxWidth), | |
g && (a.height = c.maxHeight); | |
var j = this.originalPosition.left + this.originalSize.width | |
, k = this.position.top + this.size.height | |
, l = /sw|nw|w/.test(e) | |
, m = /nw|ne|n/.test(e); | |
h && l && (a.left = j - c.minWidth), | |
f && l && (a.left = j - c.maxWidth), | |
i && m && (a.top = k - c.minHeight), | |
g && m && (a.top = k - c.maxHeight); | |
var n = !a.width && !a.height; | |
return n && !a.left && a.top ? a.top = null : n && !a.top && a.left && (a.left = null), | |
a | |
}, | |
_proportionallyResize: function() { | |
this.options; | |
if (this._proportionallyResizeElements.length) | |
for (var b = this.helper || this.element, c = 0; c < this._proportionallyResizeElements.length; c++) { | |
var d = this._proportionallyResizeElements[c]; | |
if (!this.borderDif) { | |
var e = [d.css("borderTopWidth"), d.css("borderRightWidth"), d.css("borderBottomWidth"), d.css("borderLeftWidth")] | |
, f = [d.css("paddingTop"), d.css("paddingRight"), d.css("paddingBottom"), d.css("paddingLeft")]; | |
this.borderDif = a.map(e, function(a, b) { | |
var c = parseInt(a, 10) || 0 | |
, d = parseInt(f[b], 10) || 0; | |
return c + d | |
}) | |
} | |
d.css({ | |
height: b.height() - this.borderDif[0] - this.borderDif[2] || 0, | |
width: b.width() - this.borderDif[1] - this.borderDif[3] || 0 | |
}) | |
} | |
}, | |
_renderProxy: function() { | |
var b = this.element | |
, c = this.options; | |
if (this.elementOffset = b.offset(), | |
this._helper) { | |
this.helper = this.helper || a('<div style="overflow:hidden;"></div>'); | |
var d = a.browser.msie && a.browser.version < 7 | |
, e = d ? 1 : 0 | |
, f = d ? 2 : -1; | |
this.helper.addClass(this._helper).css({ | |
width: this.element.outerWidth() + f, | |
height: this.element.outerHeight() + f, | |
position: "absolute", | |
left: this.elementOffset.left - e + "px", | |
top: this.elementOffset.top - e + "px", | |
zIndex: ++c.zIndex | |
}), | |
this.helper.appendTo("body").disableSelection() | |
} else | |
this.helper = this.element | |
}, | |
_change: { | |
e: function(a, b, c) { | |
return { | |
width: this.originalSize.width + b | |
} | |
}, | |
w: function(a, b, c) { | |
var d = (this.options, | |
this.originalSize) | |
, e = this.originalPosition; | |
return { | |
left: e.left + b, | |
width: d.width - b | |
} | |
}, | |
n: function(a, b, c) { | |
var d = (this.options, | |
this.originalSize) | |
, e = this.originalPosition; | |
return { | |
top: e.top + c, | |
height: d.height - c | |
} | |
}, | |
s: function(a, b, c) { | |
return { | |
height: this.originalSize.height + c | |
} | |
}, | |
se: function(b, c, d) { | |
return a.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [b, c, d])) | |
}, | |
sw: function(b, c, d) { | |
return a.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [b, c, d])) | |
}, | |
ne: function(b, c, d) { | |
return a.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [b, c, d])) | |
}, | |
nw: function(b, c, d) { | |
return a.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [b, c, d])) | |
} | |
}, | |
_propagate: function(b, c) { | |
a.ui.plugin.call(this, b, [c, this.ui()]), | |
"resize" != b && this._trigger(b, c, this.ui()) | |
}, | |
plugins: {}, | |
ui: function() { | |
return { | |
originalElement: this.originalElement, | |
element: this.element, | |
helper: this.helper, | |
position: this.position, | |
size: this.size, | |
originalSize: this.originalSize, | |
originalPosition: this.originalPosition | |
} | |
} | |
}), | |
a.ui.plugin.add("resizable", "alsoResize", { | |
start: function(b, c) { | |
var d = a(this).data("resizable") | |
, e = d.options | |
, f = function(b) { | |
a(b).each(function() { | |
var b = a(this); | |
b.data("resizable-alsoresize", { | |
width: parseInt(b.width(), 10), | |
height: parseInt(b.height(), 10), | |
left: parseInt(b.css("left"), 10), | |
top: parseInt(b.css("top"), 10) | |
}) | |
}) | |
}; | |
"object" != typeof e.alsoResize || e.alsoResize.parentNode ? f(e.alsoResize) : e.alsoResize.length ? (e.alsoResize = e.alsoResize[0], | |
f(e.alsoResize)) : a.each(e.alsoResize, function(a) { | |
f(a) | |
}) | |
}, | |
resize: function(b, c) { | |
var d = a(this).data("resizable") | |
, e = d.options | |
, f = d.originalSize | |
, g = d.originalPosition | |
, h = { | |
height: d.size.height - f.height || 0, | |
width: d.size.width - f.width || 0, | |
top: d.position.top - g.top || 0, | |
left: d.position.left - g.left || 0 | |
} | |
, i = function(b, d) { | |
a(b).each(function() { | |
var b = a(this) | |
, e = a(this).data("resizable-alsoresize") | |
, f = {} | |
, g = d && d.length ? d : b.parents(c.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; | |
a.each(g, function(a, b) { | |
var c = (e[b] || 0) + (h[b] || 0); | |
c && c >= 0 && (f[b] = c || null) | |
}), | |
b.css(f) | |
}) | |
}; | |
"object" != typeof e.alsoResize || e.alsoResize.nodeType ? i(e.alsoResize) : a.each(e.alsoResize, function(a, b) { | |
i(a, b) | |
}) | |
}, | |
stop: function(b, c) { | |
a(this).removeData("resizable-alsoresize") | |
} | |
}), | |
a.ui.plugin.add("resizable", "animate", { | |
stop: function(b, c) { | |
var d = a(this).data("resizable") | |
, e = d.options | |
, f = d._proportionallyResizeElements | |
, g = f.length && /textarea/i.test(f[0].nodeName) | |
, h = g && a.ui.hasScroll(f[0], "left") ? 0 : d.sizeDiff.height | |
, i = g ? 0 : d.sizeDiff.width | |
, j = { | |
width: d.size.width - i, | |
height: d.size.height - h | |
} | |
, k = parseInt(d.element.css("left"), 10) + (d.position.left - d.originalPosition.left) || null | |
, l = parseInt(d.element.css("top"), 10) + (d.position.top - d.originalPosition.top) || null; | |
d.element.animate(a.extend(j, l && k ? { | |
top: l, | |
left: k | |
} : {}), { | |
duration: e.animateDuration, | |
easing: e.animateEasing, | |
step: function() { | |
var c = { | |
width: parseInt(d.element.css("width"), 10), | |
height: parseInt(d.element.css("height"), 10), | |
top: parseInt(d.element.css("top"), 10), | |
left: parseInt(d.element.css("left"), 10) | |
}; | |
f && f.length && a(f[0]).css({ | |
width: c.width, | |
height: c.height | |
}), | |
d._updateCache(c), | |
d._propagate("resize", b) | |
} | |
}) | |
} | |
}), | |
a.ui.plugin.add("resizable", "containment", { | |
start: function(b, d) { | |
var e = a(this).data("resizable") | |
, f = e.options | |
, g = e.element | |
, h = f.containment | |
, i = h instanceof a ? h.get(0) : /parent/.test(h) ? g.parent().get(0) : h; | |
if (i) | |
if (e.containerElement = a(i), | |
/document/.test(h) || h == document) | |
e.containerOffset = { | |
left: 0, | |
top: 0 | |
}, | |
e.containerPosition = { | |
left: 0, | |
top: 0 | |
}, | |
e.parentData = { | |
element: a(document), | |
left: 0, | |
top: 0, | |
width: a(document).width(), | |
height: a(document).height() || document.body.parentNode.scrollHeight | |
}; | |
else { | |
var j = a(i) | |
, k = []; | |
a(["Top", "Right", "Left", "Bottom"]).each(function(a, b) { | |
k[a] = c(j.css("padding" + b)) | |
}), | |
e.containerOffset = j.offset(), | |
e.containerPosition = j.position(), | |
e.containerSize = { | |
height: j.innerHeight() - k[3], | |
width: j.innerWidth() - k[1] | |
}; | |
var l = e.containerOffset | |
, m = e.containerSize.height | |
, n = e.containerSize.width | |
, o = a.ui.hasScroll(i, "left") ? i.scrollWidth : n | |
, p = a.ui.hasScroll(i) ? i.scrollHeight : m; | |
e.parentData = { | |
element: i, | |
left: l.left, | |
top: l.top, | |
width: o, | |
height: p | |
} | |
} | |
}, | |
resize: function(b, c) { | |
var d = a(this).data("resizable") | |
, e = d.options | |
, f = (d.containerSize, | |
d.containerOffset) | |
, g = (d.size, | |
d.position) | |
, h = d._aspectRatio || b.shiftKey | |
, i = { | |
top: 0, | |
left: 0 | |
} | |
, j = d.containerElement; | |
j[0] != document && /static/.test(j.css("position")) && (i = f), | |
g.left < (d._helper ? f.left : 0) && (d.size.width = d.size.width + (d._helper ? d.position.left - f.left : d.position.left - i.left), | |
h && (d.size.height = d.size.width / d.aspectRatio), | |
d.position.left = e.helper ? f.left : 0), | |
g.top < (d._helper ? f.top : 0) && (d.size.height = d.size.height + (d._helper ? d.position.top - f.top : d.position.top), | |
h && (d.size.width = d.size.height * d.aspectRatio), | |
d.position.top = d._helper ? f.top : 0), | |
d.offset.left = d.parentData.left + d.position.left, | |
d.offset.top = d.parentData.top + d.position.top; | |
var k = Math.abs((d._helper ? d.offset.left - i.left : d.offset.left - i.left) + d.sizeDiff.width) | |
, l = Math.abs((d._helper ? d.offset.top - i.top : d.offset.top - f.top) + d.sizeDiff.height) | |
, m = d.containerElement.get(0) == d.element.parent().get(0) | |
, n = /relative|absolute/.test(d.containerElement.css("position")); | |
m && n && (k -= d.parentData.left), | |
k + d.size.width >= d.parentData.width && (d.size.width = d.parentData.width - k, | |
h && (d.size.height = d.size.width / d.aspectRatio)), | |
l + d.size.height >= d.parentData.height && (d.size.height = d.parentData.height - l, | |
h && (d.size.width = d.size.height * d.aspectRatio)) | |
}, | |
stop: function(b, c) { | |
var d = a(this).data("resizable") | |
, e = d.options | |
, f = (d.position, | |
d.containerOffset) | |
, g = d.containerPosition | |
, h = d.containerElement | |
, i = a(d.helper) | |
, j = i.offset() | |
, k = i.outerWidth() - d.sizeDiff.width | |
, l = i.outerHeight() - d.sizeDiff.height; | |
d._helper && !e.animate && /relative/.test(h.css("position")) && a(this).css({ | |
left: j.left - g.left - f.left, | |
width: k, | |
height: l | |
}), | |
d._helper && !e.animate && /static/.test(h.css("position")) && a(this).css({ | |
left: j.left - g.left - f.left, | |
width: k, | |
height: l | |
}) | |
} | |
}), | |
a.ui.plugin.add("resizable", "ghost", { | |
start: function(b, c) { | |
var d = a(this).data("resizable") | |
, e = d.options | |
, f = d.size; | |
d.ghost = d.originalElement.clone(), | |
d.ghost.css({ | |
opacity: .25, | |
display: "block", | |
position: "relative", | |
height: f.height, | |
width: f.width, | |
margin: 0, | |
left: 0, | |
top: 0 | |
}).addClass("ui-resizable-ghost").addClass("string" == typeof e.ghost ? e.ghost : ""), | |
d.ghost.appendTo(d.helper) | |
}, | |
resize: function(b, c) { | |
var d = a(this).data("resizable"); | |
d.options; | |
d.ghost && d.ghost.css({ | |
position: "relative", | |
height: d.size.height, | |
width: d.size.width | |
}) | |
}, | |
stop: function(b, c) { | |
var d = a(this).data("resizable"); | |
d.options; | |
d.ghost && d.helper && d.helper.get(0).removeChild(d.ghost.get(0)) | |
} | |
}), | |
a.ui.plugin.add("resizable", "grid", { | |
resize: function(b, c) { | |
var d = a(this).data("resizable") | |
, e = d.options | |
, f = d.size | |
, g = d.originalSize | |
, h = d.originalPosition | |
, i = d.axis; | |
e._aspectRatio || b.shiftKey; | |
e.grid = "number" == typeof e.grid ? [e.grid, e.grid] : e.grid; | |
var j = Math.round((f.width - g.width) / (e.grid[0] || 1)) * (e.grid[0] || 1) | |
, k = Math.round((f.height - g.height) / (e.grid[1] || 1)) * (e.grid[1] || 1); | |
/^(se|s|e)$/.test(i) ? (d.size.width = g.width + j, | |
d.size.height = g.height + k) : /^(ne)$/.test(i) ? (d.size.width = g.width + j, | |
d.size.height = g.height + k, | |
d.position.top = h.top - k) : /^(sw)$/.test(i) ? (d.size.width = g.width + j, | |
d.size.height = g.height + k, | |
d.position.left = h.left - j) : (d.size.width = g.width + j, | |
d.size.height = g.height + k, | |
d.position.top = h.top - k, | |
d.position.left = h.left - j) | |
} | |
}); | |
var c = function(a) { | |
return parseInt(a, 10) || 0 | |
} | |
, d = function(a) { | |
return !isNaN(parseInt(a, 10)) | |
} | |
}(jQuery), | |
function(a, b) { | |
a.widget("ui.selectable", a.ui.mouse, { | |
version: "1.9.0", | |
options: { | |
appendTo: "body", | |
autoRefresh: !0, | |
distance: 0, | |
filter: "*", | |
tolerance: "touch" | |
}, | |
_create: function() { | |
var b = this; | |
this.element.addClass("ui-selectable"), | |
this.dragged = !1; | |
var c; | |
this.refresh = function() { | |
c = a(b.options.filter, b.element[0]), | |
c.addClass("ui-selectee"), | |
c.each(function() { | |
var b = a(this) | |
, c = b.offset(); | |
a.data(this, "selectable-item", { | |
element: this, | |
$element: b, | |
left: c.left, | |
top: c.top, | |
right: c.left + b.outerWidth(), | |
bottom: c.top + b.outerHeight(), | |
startselected: !1, | |
selected: b.hasClass("ui-selected"), | |
selecting: b.hasClass("ui-selecting"), | |
unselecting: b.hasClass("ui-unselecting") | |
}) | |
}) | |
} | |
, | |
this.refresh(), | |
this.selectees = c.addClass("ui-selectee"), | |
this._mouseInit(), | |
this.helper = a("<div class='ui-selectable-helper'></div>") | |
}, | |
_destroy: function() { | |
this.selectees.removeClass("ui-selectee").removeData("selectable-item"), | |
this.element.removeClass("ui-selectable ui-selectable-disabled"), | |
this._mouseDestroy() | |
}, | |
_mouseStart: function(b) { | |
var c = this; | |
if (this.opos = [b.pageX, b.pageY], | |
!this.options.disabled) { | |
var d = this.options; | |
this.selectees = a(d.filter, this.element[0]), | |
this._trigger("start", b), | |
a(d.appendTo).append(this.helper), | |
this.helper.css({ | |
left: b.clientX, | |
top: b.clientY, | |
width: 0, | |
height: 0 | |
}), | |
d.autoRefresh && this.refresh(), | |
this.selectees.filter(".ui-selected").each(function() { | |
var d = a.data(this, "selectable-item"); | |
d.startselected = !0, | |
b.metaKey || b.ctrlKey || (d.$element.removeClass("ui-selected"), | |
d.selected = !1, | |
d.$element.addClass("ui-unselecting"), | |
d.unselecting = !0, | |
c._trigger("unselecting", b, { | |
unselecting: d.element | |
})) | |
}), | |
a(b.target).parents().andSelf().each(function() { | |
var d = a.data(this, "selectable-item"); | |
if (d) { | |
var e = !b.metaKey && !b.ctrlKey || !d.$element.hasClass("ui-selected"); | |
return d.$element.removeClass(e ? "ui-unselecting" : "ui-selected").addClass(e ? "ui-selecting" : "ui-unselecting"), | |
d.unselecting = !e, | |
d.selecting = e, | |
d.selected = e, | |
e ? c._trigger("selecting", b, { | |
selecting: d.element | |
}) : c._trigger("unselecting", b, { | |
unselecting: d.element | |
}), | |
!1 | |
} | |
}) | |
} | |
}, | |
_mouseDrag: function(b) { | |
var c = this; | |
if (this.dragged = !0, | |
!this.options.disabled) { | |
var d = this.options | |
, e = this.opos[0] | |
, f = this.opos[1] | |
, g = b.pageX | |
, h = b.pageY; | |
if (e > g) { | |
var i = g; | |
g = e, | |
e = i | |
} | |
if (f > h) { | |
var i = h; | |
h = f, | |
f = i | |
} | |
return this.helper.css({ | |
left: e, | |
top: f, | |
width: g - e, | |
height: h - f | |
}), | |
this.selectees.each(function() { | |
var i = a.data(this, "selectable-item"); | |
if (i && i.element != c.element[0]) { | |
var j = !1; | |
"touch" == d.tolerance ? j = !(i.left > g || i.right < e || i.top > h || i.bottom < f) : "fit" == d.tolerance && (j = i.left > e && i.right < g && i.top > f && i.bottom < h), | |
j ? (i.selected && (i.$element.removeClass("ui-selected"), | |
i.selected = !1), | |
i.unselecting && (i.$element.removeClass("ui-unselecting"), | |
i.unselecting = !1), | |
i.selecting || (i.$element.addClass("ui-selecting"), | |
i.selecting = !0, | |
c._trigger("selecting", b, { | |
selecting: i.element | |
}))) : (i.selecting && ((b.metaKey || b.ctrlKey) && i.startselected ? (i.$element.removeClass("ui-selecting"), | |
i.selecting = !1, | |
i.$element.addClass("ui-selected"), | |
i.selected = !0) : (i.$element.removeClass("ui-selecting"), | |
i.selecting = !1, | |
i.startselected && (i.$element.addClass("ui-unselecting"), | |
i.unselecting = !0), | |
c._trigger("unselecting", b, { | |
unselecting: i.element | |
}))), | |
i.selected && (b.metaKey || b.ctrlKey || i.startselected || (i.$element.removeClass("ui-selected"), | |
i.selected = !1, | |
i.$element.addClass("ui-unselecting"), | |
i.unselecting = !0, | |
c._trigger("unselecting", b, { | |
unselecting: i.element | |
})))) | |
} | |
}), | |
!1 | |
} | |
}, | |
_mouseStop: function(b) { | |
var c = this; | |
this.dragged = !1; | |
this.options; | |
return a(".ui-unselecting", this.element[0]).each(function() { | |
var d = a.data(this, "selectable-item"); | |
d.$element.removeClass("ui-unselecting"), | |
d.unselecting = !1, | |
d.startselected = !1, | |
c._trigger("unselected", b, { | |
unselected: d.element | |
}) | |
}), | |
a(".ui-selecting", this.element[0]).each(function() { | |
var d = a.data(this, "selectable-item"); | |
d.$element.removeClass("ui-selecting").addClass("ui-selected"), | |
d.selecting = !1, | |
d.selected = !0, | |
d.startselected = !0, | |
c._trigger("selected", b, { | |
selected: d.element | |
}) | |
}), | |
this._trigger("stop", b), | |
this.helper.remove(), | |
!1 | |
} | |
}) | |
}(jQuery), | |
function(a, b) { | |
var c = 5; | |
a.widget("ui.slider", a.ui.mouse, { | |
version: "1.9.0", | |
widgetEventPrefix: "slide", | |
options: { | |
animate: !1, | |
distance: 0, | |
max: 100, | |
min: 0, | |
orientation: "horizontal", | |
range: !1, | |
step: 1, | |
value: 0, | |
values: null | |
}, | |
_create: function() { | |
var b, d = this.options, e = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"), f = "<div class='ui-slider-handle ui-state-default ui-corner-all' href='#'></div>", g = d.values && d.values.length || 1, h = []; | |
for (this._keySliding = !1, | |
this._mouseSliding = !1, | |
this._animateOff = !0, | |
this._handleIndex = null, | |
this._detectOrientation(), | |
this._mouseInit(), | |
this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all" + (d.disabled ? " ui-slider-disabled ui-disabled" : "")), | |
this.range = a([]), | |
d.range && (d.range === !0 && (d.values || (d.values = [this._valueMin(), this._valueMin()]), | |
d.values.length && 2 !== d.values.length && (d.values = [d.values[0], d.values[0]])), | |
this.range = a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header" + ("min" === d.range || "max" === d.range ? " ui-slider-range-" + d.range : ""))), | |
b = e.length; b < g; b++) | |
h.push(f); | |
this.handles = e.add(a(h.join("")).appendTo(this.element)), | |
this.handle = this.handles.eq(0), | |
this.handles.add(this.range).filter("a").click(function(a) { | |
a.preventDefault() | |
}).mouseenter(function() { | |
d.disabled || a(this).addClass("ui-state-hover") | |
}).mouseleave(function() { | |
a(this).removeClass("ui-state-hover") | |
}).focus(function() { | |
d.disabled ? a(this).blur() : (a(".ui-slider .ui-state-focus").removeClass("ui-state-focus"), | |
a(this).addClass("ui-state-focus")) | |
}).blur(function() { | |
a(this).removeClass("ui-state-focus") | |
}), | |
this.handles.each(function(b) { | |
a(this).data("ui-slider-handle-index", b) | |
}), | |
this._on(this.handles, { | |
keydown: function(b) { | |
var d, e, f, g, h = a(b.target).data("ui-slider-handle-index"); | |
switch (b.keyCode) { | |
case a.ui.keyCode.HOME: | |
case a.ui.keyCode.END: | |
case a.ui.keyCode.PAGE_UP: | |
case a.ui.keyCode.PAGE_DOWN: | |
case a.ui.keyCode.UP: | |
case a.ui.keyCode.RIGHT: | |
case a.ui.keyCode.DOWN: | |
case a.ui.keyCode.LEFT: | |
if (b.preventDefault(), | |
!this._keySliding && (this._keySliding = !0, | |
a(b.target).addClass("ui-state-active"), | |
d = this._start(b, h), | |
d === !1)) | |
return | |
} | |
switch (g = this.options.step, | |
e = f = this.options.values && this.options.values.length ? this.values(h) : this.value(), | |
b.keyCode) { | |
case a.ui.keyCode.HOME: | |
f = this._valueMin(); | |
break; | |
case a.ui.keyCode.END: | |
f = this._valueMax(); | |
break; | |
case a.ui.keyCode.PAGE_UP: | |
f = this._trimAlignValue(e + (this._valueMax() - this._valueMin()) / c); | |
break; | |
case a.ui.keyCode.PAGE_DOWN: | |
f = this._trimAlignValue(e - (this._valueMax() - this._valueMin()) / c); | |
break; | |
case a.ui.keyCode.UP: | |
case a.ui.keyCode.RIGHT: | |
if (e === this._valueMax()) | |
return; | |
f = this._trimAlignValue(e + g); | |
break; | |
case a.ui.keyCode.DOWN: | |
case a.ui.keyCode.LEFT: | |
if (e === this._valueMin()) | |
return; | |
f = this._trimAlignValue(e - g) | |
} | |
this._slide(b, h, f) | |
}, | |
keyup: function(b) { | |
var c = a(b.target).data("ui-slider-handle-index"); | |
this._keySliding && (this._keySliding = !1, | |
this._stop(b, c), | |
this._change(b, c), | |
a(b.target).removeClass("ui-state-active")) | |
} | |
}), | |
this._refreshValue(), | |
this._animateOff = !1 | |
}, | |
_destroy: function() { | |
this.handles.remove(), | |
this.range.remove(), | |
this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all"), | |
this._mouseDestroy() | |
}, | |
_mouseCapture: function(b) { | |
var c, d, e, f, g, h, i, j, k = this, l = this.options; | |
return !l.disabled && (this.elementSize = { | |
width: this.element.outerWidth(), | |
height: this.element.outerHeight() | |
}, | |
this.elementOffset = this.element.offset(), | |
c = { | |
x: b.pageX, | |
y: b.pageY | |
}, | |
d = this._normValueFromMouse(c), | |
e = this._valueMax() - this._valueMin() + 1, | |
this.handles.each(function(b) { | |
var c = Math.abs(d - k.values(b)); | |
e > c && (e = c, | |
f = a(this), | |
g = b) | |
}), | |
l.range === !0 && this.values(1) === l.min && (g += 1, | |
f = a(this.handles[g])), | |
h = this._start(b, g), | |
h !== !1 && (this._mouseSliding = !0, | |
this._handleIndex = g, | |
f.addClass("ui-state-active").focus(), | |
i = f.offset(), | |
j = !a(b.target).parents().andSelf().is(".ui-slider-handle"), | |
this._clickOffset = j ? { | |
left: 0, | |
top: 0 | |
} : { | |
left: b.pageX - i.left - f.width() / 2, | |
top: b.pageY - i.top - f.height() / 2 - (parseInt(f.css("borderTopWidth"), 10) || 0) - (parseInt(f.css("borderBottomWidth"), 10) || 0) + (parseInt(f.css("marginTop"), 10) || 0) | |
}, | |
this.handles.hasClass("ui-state-hover") || this._slide(b, g, d), | |
this._animateOff = !0, | |
!0)) | |
}, | |
_mouseStart: function(a) { | |
return !0 | |
}, | |
_mouseDrag: function(a) { | |
var b = { | |
x: a.pageX, | |
y: a.pageY | |
} | |
, c = this._normValueFromMouse(b); | |
return this._slide(a, this._handleIndex, c), | |
!1 | |
}, | |
_mouseStop: function(a) { | |
return this.handles.removeClass("ui-state-active"), | |
this._mouseSliding = !1, | |
this._stop(a, this._handleIndex), | |
this._change(a, this._handleIndex), | |
this._handleIndex = null, | |
this._clickOffset = null, | |
this._animateOff = !1, | |
!1 | |
}, | |
_detectOrientation: function() { | |
this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal" | |
}, | |
_normValueFromMouse: function(a) { | |
var b, c, d, e, f; | |
return "horizontal" === this.orientation ? (b = this.elementSize.width, | |
c = a.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (b = this.elementSize.height, | |
c = a.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), | |
d = c / b, | |
d > 1 && (d = 1), | |
d < 0 && (d = 0), | |
"vertical" === this.orientation && (d = 1 - d), | |
e = this._valueMax() - this._valueMin(), | |
f = this._valueMin() + d * e, | |
this._trimAlignValue(f) | |
}, | |
_start: function(a, b) { | |
var c = { | |
handle: this.handles[b], | |
value: this.value() | |
}; | |
return this.options.values && this.options.values.length && (c.value = this.values(b), | |
c.values = this.values()), | |
this._trigger("start", a, c) | |
}, | |
_slide: function(a, b, c) { | |
var d, e, f; | |
this.options.values && this.options.values.length ? (d = this.values(b ? 0 : 1), | |
2 === this.options.values.length && this.options.range === !0 && (0 === b && c > d || 1 === b && c < d) && (c = d), | |
c !== this.values(b) && (e = this.values(), | |
e[b] = c, | |
f = this._trigger("slide", a, { | |
handle: this.handles[b], | |
value: c, | |
values: e | |
}), | |
d = this.values(b ? 0 : 1), | |
f !== !1 && this.values(b, c, !0))) : c !== this.value() && (f = this._trigger("slide", a, { | |
handle: this.handles[b], | |
value: c | |
}), | |
f !== !1 && this.value(c)) | |
}, | |
_stop: function(a, b) { | |
var c = { | |
handle: this.handles[b], | |
value: this.value() | |
}; | |
this.options.values && this.options.values.length && (c.value = this.values(b), | |
c.values = this.values()), | |
this._trigger("stop", a, c) | |
}, | |
_change: function(a, b) { | |
if (!this._keySliding && !this._mouseSliding) { | |
var c = { | |
handle: this.handles[b], | |
value: this.value() | |
}; | |
this.options.values && this.options.values.length && (c.value = this.values(b), | |
c.values = this.values()), | |
this._trigger("change", a, c) | |
} | |
}, | |
value: function(a) { | |
return arguments.length ? (this.options.value = this._trimAlignValue(a), | |
this._refreshValue(), | |
void this._change(null, 0)) : this._value() | |
}, | |
values: function(b, c) { | |
var d, e, f; | |
if (arguments.length > 1) | |
return this.options.values[b] = this._trimAlignValue(c), | |
this._refreshValue(), | |
void this._change(null, b); | |
if (!arguments.length) | |
return this._values(); | |
if (!a.isArray(arguments[0])) | |
return this.options.values && this.options.values.length ? this._values(b) : this.value(); | |
for (d = this.options.values, | |
e = arguments[0], | |
f = 0; f < d.length; f += 1) | |
d[f] = this._trimAlignValue(e[f]), | |
this._change(null, f); | |
this._refreshValue() | |
}, | |
_setOption: function(b, c) { | |
var d, e = 0; | |
switch (a.isArray(this.options.values) && (e = this.options.values.length), | |
a.Widget.prototype._setOption.apply(this, arguments), | |
b) { | |
case "disabled": | |
c ? (this.handles.filter(".ui-state-focus").blur(), | |
this.handles.removeClass("ui-state-hover"), | |
this.handles.prop("disabled", !0), | |
this.element.addClass("ui-disabled")) : (this.handles.prop("disabled", !1), | |
this.element.removeClass("ui-disabled")); | |
break; | |
case "orientation": | |
this._detectOrientation(), | |
this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation), | |
this._refreshValue(); | |
break; | |
case "value": | |
this._animateOff = !0, | |
this._refreshValue(), | |
this._change(null, 0), | |
this._animateOff = !1; | |
break; | |
case "values": | |
for (this._animateOff = !0, | |
this._refreshValue(), | |
d = 0; d < e; d += 1) | |
this._change(null, d); | |
this._animateOff = !1 | |
} | |
}, | |
_value: function() { | |
var a = this.options.value; | |
return a = this._trimAlignValue(a) | |
}, | |
_values: function(a) { | |
var b, c, d; | |
if (arguments.length) | |
return b = this.options.values[a], | |
b = this._trimAlignValue(b); | |
for (c = this.options.values.slice(), | |
d = 0; d < c.length; d += 1) | |
c[d] = this._trimAlignValue(c[d]); | |
return c | |
}, | |
_trimAlignValue: function(a) { | |
if (a <= this._valueMin()) | |
return this._valueMin(); | |
if (a >= this._valueMax()) | |
return this._valueMax(); | |
var b = this.options.step > 0 ? this.options.step : 1 | |
, c = (a - this._valueMin()) % b | |
, d = a - c; | |
return 2 * Math.abs(c) >= b && (d += c > 0 ? b : -b), | |
parseFloat(d.toFixed(5)) | |
}, | |
_valueMin: function() { | |
return this.options.min | |
}, | |
_valueMax: function() { | |
return this.options.max | |
}, | |
_refreshValue: function() { | |
var b, c, d, e, f, g = this.options.range, h = this.options, i = this, j = !this._animateOff && h.animate, k = {}; | |
this.options.values && this.options.values.length ? this.handles.each(function(d, e) { | |
c = (i.values(d) - i._valueMin()) / (i._valueMax() - i._valueMin()) * 100, | |
k["horizontal" === i.orientation ? "left" : "bottom"] = c + "%", | |
a(this).stop(1, 1)[j ? "animate" : "css"](k, h.animate), | |
i.options.range === !0 && ("horizontal" === i.orientation ? (0 === d && i.range.stop(1, 1)[j ? "animate" : "css"]({ | |
left: c + "%" | |
}, h.animate), | |
1 === d && i.range[j ? "animate" : "css"]({ | |
width: c - b + "%" | |
}, { | |
queue: !1, | |
duration: h.animate | |
})) : (0 === d && i.range.stop(1, 1)[j ? "animate" : "css"]({ | |
bottom: c + "%" | |
}, h.animate), | |
1 === d && i.range[j ? "animate" : "css"]({ | |
height: c - b + "%" | |
}, { | |
queue: !1, | |
duration: h.animate | |
}))), | |
b = c | |
}) : (d = this.value(), | |
e = this._valueMin(), | |
f = this._valueMax(), | |
c = f !== e ? (d - e) / (f - e) * 100 : 0, | |
k["horizontal" === this.orientation ? "left" : "bottom"] = c + "%", | |
this.handle.stop(1, 1)[j ? "animate" : "css"](k, h.animate), | |
"min" === g && "horizontal" === this.orientation && this.range.stop(1, 1)[j ? "animate" : "css"]({ | |
width: c + "%" | |
}, h.animate), | |
"max" === g && "horizontal" === this.orientation && this.range[j ? "animate" : "css"]({ | |
width: 100 - c + "%" | |
}, { | |
queue: !1, | |
duration: h.animate | |
}), | |
"min" === g && "vertical" === this.orientation && this.range.stop(1, 1)[j ? "animate" : "css"]({ | |
height: c + "%" | |
}, h.animate), | |
"max" === g && "vertical" === this.orientation && this.range[j ? "animate" : "css"]({ | |
height: 100 - c + "%" | |
}, { | |
queue: !1, | |
duration: h.animate | |
})) | |
} | |
}) | |
}(jQuery), | |
function(a, b) { | |
a.widget("ui.sortable", a.ui.mouse, { | |
version: "1.9.0", | |
widgetEventPrefix: "sort", | |
ready: !1, | |
options: { | |
appendTo: "parent", | |
axis: !1, | |
connectWith: !1, | |
containment: !1, | |
cursor: "auto", | |
cursorAt: !1, | |
dropOnEmpty: !0, | |
forcePlaceholderSize: !1, | |
forceHelperSize: !1, | |
grid: !1, | |
handle: !1, | |
helper: "original", | |
items: "> *", | |
opacity: !1, | |
placeholder: !1, | |
revert: !1, | |
scroll: !0, | |
scrollSensitivity: 20, | |
scrollSpeed: 20, | |
scope: "default", | |
tolerance: "intersect", | |
zIndex: 1e3 | |
}, | |
_create: function() { | |
var a = this.options; | |
this.containerCache = {}, | |
this.element.addClass("ui-sortable"), | |
this.refresh(), | |
this.floating = !!this.items.length && ("x" === a.axis || /left|right/.test(this.items[0].item.css("float")) || /inline|table-cell/.test(this.items[0].item.css("display"))), | |
this.offset = this.element.offset(), | |
this._mouseInit(), | |
this.ready = !0 | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-sortable ui-sortable-disabled"), | |
this._mouseDestroy(); | |
for (var a = this.items.length - 1; a >= 0; a--) | |
this.items[a].item.removeData(this.widgetName + "-item"); | |
return this | |
}, | |
_setOption: function(b, c) { | |
"disabled" === b ? (this.options[b] = c, | |
this.widget().toggleClass("ui-sortable-disabled", !!c)) : a.Widget.prototype._setOption.apply(this, arguments) | |
}, | |
_mouseCapture: function(b, c) { | |
var d = this; | |
if (this.reverting) | |
return !1; | |
if (this.options.disabled || "static" == this.options.type) | |
return !1; | |
this._refreshItems(b); | |
var e = null; | |
a(b.target).parents().each(function() { | |
if (a.data(this, d.widgetName + "-item") == d) | |
return e = a(this), | |
!1 | |
}); | |
if (a.data(b.target, d.widgetName + "-item") == d && (e = a(b.target)), | |
!e) | |
return !1; | |
if (this.options.handle && !c) { | |
var f = !1; | |
if (a(this.options.handle, e).find("*").andSelf().each(function() { | |
this == b.target && (f = !0) | |
}), | |
!f) | |
return !1 | |
} | |
return this.currentItem = e, | |
this._removeCurrentsFromItems(), | |
!0 | |
}, | |
_mouseStart: function(b, c, d) { | |
var e = this.options; | |
if (this.currentContainer = this, | |
this.refreshPositions(), | |
this.helper = this._createHelper(b), | |
this._cacheHelperProportions(), | |
this._cacheMargins(), | |
this.scrollParent = this.helper.scrollParent(), | |
this.offset = this.currentItem.offset(), | |
this.offset = { | |
top: this.offset.top - this.margins.top, | |
left: this.offset.left - this.margins.left | |
}, | |
a.extend(this.offset, { | |
click: { | |
left: b.pageX - this.offset.left, | |
top: b.pageY - this.offset.top | |
}, | |
parent: this._getParentOffset(), | |
relative: this._getRelativeOffset() | |
}), | |
this.helper.css("position", "absolute"), | |
this.cssPosition = this.helper.css("position"), | |
this.originalPosition = this._generatePosition(b), | |
this.originalPageX = b.pageX, | |
this.originalPageY = b.pageY, | |
e.cursorAt && this._adjustOffsetFromHelper(e.cursorAt), | |
this.domPosition = { | |
prev: this.currentItem.prev()[0], | |
parent: this.currentItem.parent()[0] | |
}, | |
this.helper[0] != this.currentItem[0] && this.currentItem.hide(), | |
this._createPlaceholder(), | |
e.containment && this._setContainment(), | |
e.cursor && (a("body").css("cursor") && (this._storedCursor = a("body").css("cursor")), | |
a("body").css("cursor", e.cursor)), | |
e.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), | |
this.helper.css("opacity", e.opacity)), | |
e.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), | |
this.helper.css("zIndex", e.zIndex)), | |
this.scrollParent[0] != document && "HTML" != this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), | |
this._trigger("start", b, this._uiHash()), | |
this._preserveHelperProportions || this._cacheHelperProportions(), | |
!d) | |
for (var f = this.containers.length - 1; f >= 0; f--) | |
this.containers[f]._trigger("activate", b, this._uiHash(this)); | |
return a.ui.ddmanager && (a.ui.ddmanager.current = this), | |
a.ui.ddmanager && !e.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b), | |
this.dragging = !0, | |
this.helper.addClass("ui-sortable-helper"), | |
this._mouseDrag(b), | |
!0 | |
}, | |
_mouseDrag: function(b) { | |
if (this.position = this._generatePosition(b), | |
this.positionAbs = this._convertPositionTo("absolute"), | |
this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), | |
this.options.scroll) { | |
var c = this.options | |
, d = !1; | |
this.scrollParent[0] != document && "HTML" != this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - b.pageY < c.scrollSensitivity ? this.scrollParent[0].scrollTop = d = this.scrollParent[0].scrollTop + c.scrollSpeed : b.pageY - this.overflowOffset.top < c.scrollSensitivity && (this.scrollParent[0].scrollTop = d = this.scrollParent[0].scrollTop - c.scrollSpeed), | |
this.overflowOffset.left + this.scrollParent[0].offsetWidth - b.pageX < c.scrollSensitivity ? this.scrollParent[0].scrollLeft = d = this.scrollParent[0].scrollLeft + c.scrollSpeed : b.pageX - this.overflowOffset.left < c.scrollSensitivity && (this.scrollParent[0].scrollLeft = d = this.scrollParent[0].scrollLeft - c.scrollSpeed)) : (b.pageY - a(document).scrollTop() < c.scrollSensitivity ? d = a(document).scrollTop(a(document).scrollTop() - c.scrollSpeed) : a(window).height() - (b.pageY - a(document).scrollTop()) < c.scrollSensitivity && (d = a(document).scrollTop(a(document).scrollTop() + c.scrollSpeed)), | |
b.pageX - a(document).scrollLeft() < c.scrollSensitivity ? d = a(document).scrollLeft(a(document).scrollLeft() - c.scrollSpeed) : a(window).width() - (b.pageX - a(document).scrollLeft()) < c.scrollSensitivity && (d = a(document).scrollLeft(a(document).scrollLeft() + c.scrollSpeed))), | |
d !== !1 && a.ui.ddmanager && !c.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b) | |
} | |
this.positionAbs = this._convertPositionTo("absolute"), | |
this.options.axis && "y" == this.options.axis || (this.helper[0].style.left = this.position.left + "px"), | |
this.options.axis && "x" == this.options.axis || (this.helper[0].style.top = this.position.top + "px"); | |
for (var e = this.items.length - 1; e >= 0; e--) { | |
var f = this.items[e] | |
, g = f.item[0] | |
, h = this._intersectsWithPointer(f); | |
if (h && f.instance === this.currentContainer && !(g == this.currentItem[0] || this.placeholder[1 == h ? "next" : "prev"]()[0] == g || a.contains(this.placeholder[0], g) || "semi-dynamic" == this.options.type && a.contains(this.element[0], g))) { | |
if (this.direction = 1 == h ? "down" : "up", | |
"pointer" != this.options.tolerance && !this._intersectsWithSides(f)) | |
break; | |
this._rearrange(b, f), | |
this._trigger("change", b, this._uiHash()); | |
break | |
} | |
} | |
return this._contactContainers(b), | |
a.ui.ddmanager && a.ui.ddmanager.drag(this, b), | |
this._trigger("sort", b, this._uiHash()), | |
this.lastPositionAbs = this.positionAbs, | |
!1 | |
}, | |
_mouseStop: function(b, c) { | |
if (b) { | |
if (a.ui.ddmanager && !this.options.dropBehaviour && a.ui.ddmanager.drop(this, b), | |
this.options.revert) { | |
var d = this | |
, e = this.placeholder.offset(); | |
this.reverting = !0, | |
a(this.helper).animate({ | |
left: e.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), | |
top: e.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) | |
}, parseInt(this.options.revert, 10) || 500, function() { | |
d._clear(b) | |
}) | |
} else | |
this._clear(b, c); | |
return !1 | |
} | |
}, | |
cancel: function() { | |
if (this.dragging) { | |
this._mouseUp({ | |
target: null | |
}), | |
"original" == this.options.helper ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show(); | |
for (var b = this.containers.length - 1; b >= 0; b--) | |
this.containers[b]._trigger("deactivate", null, this._uiHash(this)), | |
this.containers[b].containerCache.over && (this.containers[b]._trigger("out", null, this._uiHash(this)), | |
this.containers[b].containerCache.over = 0) | |
} | |
return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), | |
"original" != this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), | |
a.extend(this, { | |
helper: null, | |
dragging: !1, | |
reverting: !1, | |
_noFinalSort: null | |
}), | |
this.domPosition.prev ? a(this.domPosition.prev).after(this.currentItem) : a(this.domPosition.parent).prepend(this.currentItem)), | |
this | |
}, | |
serialize: function(b) { | |
var c = this._getItemsAsjQuery(b && b.connected) | |
, d = []; | |
return b = b || {}, | |
a(c).each(function() { | |
var c = (a(b.item || this).attr(b.attribute || "id") || "").match(b.expression || /(.+)[-=_](.+)/); | |
c && d.push((b.key || c[1] + "[]") + "=" + (b.key && b.expression ? c[1] : c[2])) | |
}), | |
!d.length && b.key && d.push(b.key + "="), | |
d.join("&") | |
}, | |
toArray: function(b) { | |
var c = this._getItemsAsjQuery(b && b.connected) | |
, d = []; | |
return b = b || {}, | |
c.each(function() { | |
d.push(a(b.item || this).attr(b.attribute || "id") || "") | |
}), | |
d | |
}, | |
_intersectsWith: function(a) { | |
var b = this.positionAbs.left | |
, c = b + this.helperProportions.width | |
, d = this.positionAbs.top | |
, e = d + this.helperProportions.height | |
, f = a.left | |
, g = f + a.width | |
, h = a.top | |
, i = h + a.height | |
, j = this.offset.click.top | |
, k = this.offset.click.left | |
, l = d + j > h && d + j < i && b + k > f && b + k < g; | |
return "pointer" == this.options.tolerance || this.options.forcePointerForContainers || "pointer" != this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? l : f < b + this.helperProportions.width / 2 && c - this.helperProportions.width / 2 < g && h < d + this.helperProportions.height / 2 && e - this.helperProportions.height / 2 < i | |
}, | |
_intersectsWithPointer: function(b) { | |
var c = "x" === this.options.axis || a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, b.top, b.height) | |
, d = "y" === this.options.axis || a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, b.left, b.width) | |
, e = c && d | |
, f = this._getDragVerticalDirection() | |
, g = this._getDragHorizontalDirection(); | |
return !!e && (this.floating ? g && "right" == g || "down" == f ? 2 : 1 : f && ("down" == f ? 2 : 1)) | |
}, | |
_intersectsWithSides: function(b) { | |
var c = a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, b.top + b.height / 2, b.height) | |
, d = a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, b.left + b.width / 2, b.width) | |
, e = this._getDragVerticalDirection() | |
, f = this._getDragHorizontalDirection(); | |
return this.floating && f ? "right" == f && d || "left" == f && !d : e && ("down" == e && c || "up" == e && !c) | |
}, | |
_getDragVerticalDirection: function() { | |
var a = this.positionAbs.top - this.lastPositionAbs.top; | |
return 0 != a && (a > 0 ? "down" : "up") | |
}, | |
_getDragHorizontalDirection: function() { | |
var a = this.positionAbs.left - this.lastPositionAbs.left; | |
return 0 != a && (a > 0 ? "right" : "left") | |
}, | |
refresh: function(a) { | |
return this._refreshItems(a), | |
this.refreshPositions(), | |
this | |
}, | |
_connectWith: function() { | |
var a = this.options; | |
return a.connectWith.constructor == String ? [a.connectWith] : a.connectWith | |
}, | |
_getItemsAsjQuery: function(b) { | |
var c = [] | |
, d = [] | |
, e = this._connectWith(); | |
if (e && b) | |
for (var f = e.length - 1; f >= 0; f--) | |
for (var g = a(e[f]), h = g.length - 1; h >= 0; h--) { | |
var i = a.data(g[h], this.widgetName); | |
i && i != this && !i.options.disabled && d.push([a.isFunction(i.options.items) ? i.options.items.call(i.element) : a(i.options.items, i.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), i]) | |
} | |
d.push([a.isFunction(this.options.items) ? this.options.items.call(this.element, null, { | |
options: this.options, | |
item: this.currentItem | |
}) : a(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); | |
for (var f = d.length - 1; f >= 0; f--) | |
d[f][0].each(function() { | |
c.push(this) | |
}); | |
return a(c) | |
}, | |
_removeCurrentsFromItems: function() { | |
for (var a = this.currentItem.find(":data(" + this.widgetName + "-item)"), b = 0; b < this.items.length; b++) | |
for (var c = 0; c < a.length; c++) | |
a[c] == this.items[b].item[0] && this.items.splice(b, 1) | |
}, | |
_refreshItems: function(b) { | |
this.items = [], | |
this.containers = [this]; | |
var c = this.items | |
, d = [[a.isFunction(this.options.items) ? this.options.items.call(this.element[0], b, { | |
item: this.currentItem | |
}) : a(this.options.items, this.element), this]] | |
, e = this._connectWith(); | |
if (e && this.ready) | |
for (var f = e.length - 1; f >= 0; f--) | |
for (var g = a(e[f]), h = g.length - 1; h >= 0; h--) { | |
var i = a.data(g[h], this.widgetName); | |
i && i != this && !i.options.disabled && (d.push([a.isFunction(i.options.items) ? i.options.items.call(i.element[0], b, { | |
item: this.currentItem | |
}) : a(i.options.items, i.element), i]), | |
this.containers.push(i)) | |
} | |
for (var f = d.length - 1; f >= 0; f--) | |
for (var j = d[f][1], k = d[f][0], h = 0, l = k.length; h < l; h++) { | |
var m = a(k[h]); | |
m.data(this.widgetName + "-item", j), | |
c.push({ | |
item: m, | |
instance: j, | |
width: 0, | |
height: 0, | |
left: 0, | |
top: 0 | |
}) | |
} | |
}, | |
refreshPositions: function(b) { | |
this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset()); | |
for (var c = this.items.length - 1; c >= 0; c--) { | |
var d = this.items[c]; | |
if (d.instance == this.currentContainer || !this.currentContainer || d.item[0] == this.currentItem[0]) { | |
var e = this.options.toleranceElement ? a(this.options.toleranceElement, d.item) : d.item; | |
b || (d.width = e.outerWidth(), | |
d.height = e.outerHeight()); | |
var f = e.offset(); | |
d.left = f.left, | |
d.top = f.top | |
} | |
} | |
if (this.options.custom && this.options.custom.refreshContainers) | |
this.options.custom.refreshContainers.call(this); | |
else | |
for (var c = this.containers.length - 1; c >= 0; c--) { | |
var f = this.containers[c].element.offset(); | |
this.containers[c].containerCache.left = f.left, | |
this.containers[c].containerCache.top = f.top, | |
this.containers[c].containerCache.width = this.containers[c].element.outerWidth(), | |
this.containers[c].containerCache.height = this.containers[c].element.outerHeight() | |
} | |
return this | |
}, | |
_createPlaceholder: function(b) { | |
b = b || this; | |
var c = b.options; | |
if (!c.placeholder || c.placeholder.constructor == String) { | |
var d = c.placeholder; | |
c.placeholder = { | |
element: function() { | |
var c = a(document.createElement(b.currentItem[0].nodeName)).addClass(d || b.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; | |
return d || (c.style.visibility = "hidden"), | |
c | |
}, | |
update: function(a, e) { | |
d && !c.forcePlaceholderSize || (e.height() || e.height(b.currentItem.innerHeight() - parseInt(b.currentItem.css("paddingTop") || 0, 10) - parseInt(b.currentItem.css("paddingBottom") || 0, 10)), | |
e.width() || e.width(b.currentItem.innerWidth() - parseInt(b.currentItem.css("paddingLeft") || 0, 10) - parseInt(b.currentItem.css("paddingRight") || 0, 10))) | |
} | |
} | |
} | |
b.placeholder = a(c.placeholder.element.call(b.element, b.currentItem)), | |
b.currentItem.after(b.placeholder), | |
c.placeholder.update(b, b.placeholder) | |
}, | |
_contactContainers: function(b) { | |
for (var c = null, d = null, e = this.containers.length - 1; e >= 0; e--) | |
if (!a.contains(this.currentItem[0], this.containers[e].element[0])) | |
if (this._intersectsWith(this.containers[e].containerCache)) { | |
if (c && a.contains(this.containers[e].element[0], c.element[0])) | |
continue; | |
c = this.containers[e], | |
d = e | |
} else | |
this.containers[e].containerCache.over && (this.containers[e]._trigger("out", b, this._uiHash(this)), | |
this.containers[e].containerCache.over = 0); | |
if (c) | |
if (1 === this.containers.length) | |
this.containers[d]._trigger("over", b, this._uiHash(this)), | |
this.containers[d].containerCache.over = 1; | |
else if (this.currentContainer != this.containers[d]) { | |
for (var f = 1e4, g = null, h = this.positionAbs[this.containers[d].floating ? "left" : "top"], i = this.items.length - 1; i >= 0; i--) | |
if (a.contains(this.containers[d].element[0], this.items[i].item[0])) { | |
var j = this.containers[d].floating ? this.items[i].item.offset().left : this.items[i].item.offset().top; | |
Math.abs(j - h) < f && (f = Math.abs(j - h), | |
g = this.items[i], | |
this.direction = j - h > 0 ? "down" : "up") | |
} | |
if (!g && !this.options.dropOnEmpty) | |
return; | |
this.currentContainer = this.containers[d], | |
g ? this._rearrange(b, g, null, !0) : this._rearrange(b, null, this.containers[d].element, !0), | |
this._trigger("change", b, this._uiHash()), | |
this.containers[d]._trigger("change", b, this._uiHash(this)), | |
this.options.placeholder.update(this.currentContainer, this.placeholder), | |
this.containers[d]._trigger("over", b, this._uiHash(this)), | |
this.containers[d].containerCache.over = 1 | |
} | |
}, | |
_createHelper: function(b) { | |
var c = this.options | |
, d = a.isFunction(c.helper) ? a(c.helper.apply(this.element[0], [b, this.currentItem])) : "clone" == c.helper ? this.currentItem.clone() : this.currentItem; | |
return d.parents("body").length || a("parent" != c.appendTo ? c.appendTo : this.currentItem[0].parentNode)[0].appendChild(d[0]), | |
d[0] == this.currentItem[0] && (this._storedCSS = { | |
width: this.currentItem[0].style.width, | |
height: this.currentItem[0].style.height, | |
position: this.currentItem.css("position"), | |
top: this.currentItem.css("top"), | |
left: this.currentItem.css("left") | |
}), | |
("" == d[0].style.width || c.forceHelperSize) && d.width(this.currentItem.width()), | |
("" == d[0].style.height || c.forceHelperSize) && d.height(this.currentItem.height()), | |
d | |
}, | |
_adjustOffsetFromHelper: function(b) { | |
"string" == typeof b && (b = b.split(" ")), | |
a.isArray(b) && (b = { | |
left: +b[0], | |
top: +b[1] || 0 | |
}), | |
"left"in b && (this.offset.click.left = b.left + this.margins.left), | |
"right"in b && (this.offset.click.left = this.helperProportions.width - b.right + this.margins.left), | |
"top"in b && (this.offset.click.top = b.top + this.margins.top), | |
"bottom"in b && (this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top) | |
}, | |
_getParentOffset: function() { | |
this.offsetParent = this.helper.offsetParent(); | |
var b = this.offsetParent.offset(); | |
return "absolute" == this.cssPosition && this.scrollParent[0] != document && a.contains(this.scrollParent[0], this.offsetParent[0]) && (b.left += this.scrollParent.scrollLeft(), | |
b.top += this.scrollParent.scrollTop()), | |
(this.offsetParent[0] == document.body || this.offsetParent[0].tagName && "html" == this.offsetParent[0].tagName.toLowerCase() && a.browser.msie) && (b = { | |
top: 0, | |
left: 0 | |
}), | |
{ | |
top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), | |
left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) | |
} | |
}, | |
_getRelativeOffset: function() { | |
if ("relative" == this.cssPosition) { | |
var a = this.currentItem.position(); | |
return { | |
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), | |
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() | |
} | |
} | |
return { | |
top: 0, | |
left: 0 | |
} | |
}, | |
_cacheMargins: function() { | |
this.margins = { | |
left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, | |
top: parseInt(this.currentItem.css("marginTop"), 10) || 0 | |
} | |
}, | |
_cacheHelperProportions: function() { | |
this.helperProportions = { | |
width: this.helper.outerWidth(), | |
height: this.helper.outerHeight() | |
} | |
}, | |
_setContainment: function() { | |
var b = this.options; | |
if ("parent" == b.containment && (b.containment = this.helper[0].parentNode), | |
"document" != b.containment && "window" != b.containment || (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, a("document" == b.containment ? document : window).width() - this.helperProportions.width - this.margins.left, (a("document" == b.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), | |
!/^(document|window|parent)$/.test(b.containment)) { | |
var c = a(b.containment)[0] | |
, d = a(b.containment).offset() | |
, e = "hidden" != a(c).css("overflow"); | |
this.containment = [d.left + (parseInt(a(c).css("borderLeftWidth"), 10) || 0) + (parseInt(a(c).css("paddingLeft"), 10) || 0) - this.margins.left, d.top + (parseInt(a(c).css("borderTopWidth"), 10) || 0) + (parseInt(a(c).css("paddingTop"), 10) || 0) - this.margins.top, d.left + (e ? Math.max(c.scrollWidth, c.offsetWidth) : c.offsetWidth) - (parseInt(a(c).css("borderLeftWidth"), 10) || 0) - (parseInt(a(c).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, d.top + (e ? Math.max(c.scrollHeight, c.offsetHeight) : c.offsetHeight) - (parseInt(a(c).css("borderTopWidth"), 10) || 0) - (parseInt(a(c).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top] | |
} | |
}, | |
_convertPositionTo: function(b, c) { | |
c || (c = this.position); | |
var d = "absolute" == b ? 1 : -1 | |
, e = (this.options, | |
"absolute" != this.cssPosition || this.scrollParent[0] != document && a.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent) | |
, f = /(html|body)/i.test(e[0].tagName); | |
return { | |
top: c.top + this.offset.relative.top * d + this.offset.parent.top * d - ("fixed" == this.cssPosition ? -this.scrollParent.scrollTop() : f ? 0 : e.scrollTop()) * d, | |
left: c.left + this.offset.relative.left * d + this.offset.parent.left * d - ("fixed" == this.cssPosition ? -this.scrollParent.scrollLeft() : f ? 0 : e.scrollLeft()) * d | |
} | |
}, | |
_generatePosition: function(b) { | |
var c = this.options | |
, d = "absolute" != this.cssPosition || this.scrollParent[0] != document && a.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent | |
, e = /(html|body)/i.test(d[0].tagName); | |
"relative" != this.cssPosition || this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()); | |
var f = b.pageX | |
, g = b.pageY; | |
if (this.originalPosition && (this.containment && (b.pageX - this.offset.click.left < this.containment[0] && (f = this.containment[0] + this.offset.click.left), | |
b.pageY - this.offset.click.top < this.containment[1] && (g = this.containment[1] + this.offset.click.top), | |
b.pageX - this.offset.click.left > this.containment[2] && (f = this.containment[2] + this.offset.click.left), | |
b.pageY - this.offset.click.top > this.containment[3] && (g = this.containment[3] + this.offset.click.top)), | |
c.grid)) { | |
var h = this.originalPageY + Math.round((g - this.originalPageY) / c.grid[1]) * c.grid[1]; | |
g = this.containment && (h - this.offset.click.top < this.containment[1] || h - this.offset.click.top > this.containment[3]) ? h - this.offset.click.top < this.containment[1] ? h + c.grid[1] : h - c.grid[1] : h; | |
var i = this.originalPageX + Math.round((f - this.originalPageX) / c.grid[0]) * c.grid[0]; | |
f = this.containment && (i - this.offset.click.left < this.containment[0] || i - this.offset.click.left > this.containment[2]) ? i - this.offset.click.left < this.containment[0] ? i + c.grid[0] : i - c.grid[0] : i | |
} | |
return { | |
top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" == this.cssPosition ? -this.scrollParent.scrollTop() : e ? 0 : d.scrollTop()), | |
left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" == this.cssPosition ? -this.scrollParent.scrollLeft() : e ? 0 : d.scrollLeft()) | |
} | |
}, | |
_rearrange: function(a, b, c, d) { | |
c ? c[0].appendChild(this.placeholder[0]) : b.item[0].parentNode.insertBefore(this.placeholder[0], "down" == this.direction ? b.item[0] : b.item[0].nextSibling), | |
this.counter = this.counter ? ++this.counter : 1; | |
var e = this.counter; | |
this._delay(function() { | |
e == this.counter && this.refreshPositions(!d) | |
}) | |
}, | |
_clear: function(b, c) { | |
this.reverting = !1; | |
var d = []; | |
if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), | |
this._noFinalSort = null, | |
this.helper[0] == this.currentItem[0]) { | |
for (var e in this._storedCSS) | |
"auto" != this._storedCSS[e] && "static" != this._storedCSS[e] || (this._storedCSS[e] = ""); | |
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") | |
} else | |
this.currentItem.show(); | |
this.fromOutside && !c && d.push(function(a) { | |
this._trigger("receive", a, this._uiHash(this.fromOutside)) | |
}), | |
!this.fromOutside && this.domPosition.prev == this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent == this.currentItem.parent()[0] || c || d.push(function(a) { | |
this._trigger("update", a, this._uiHash()) | |
}), | |
this !== this.currentContainer && (c || (d.push(function(a) { | |
this._trigger("remove", a, this._uiHash()) | |
}), | |
d.push(function(a) { | |
return function(b) { | |
a._trigger("receive", b, this._uiHash(this)) | |
} | |
} | |
.call(this, this.currentContainer)), | |
d.push(function(a) { | |
return function(b) { | |
a._trigger("update", b, this._uiHash(this)) | |
} | |
} | |
.call(this, this.currentContainer)))); | |
for (var e = this.containers.length - 1; e >= 0; e--) | |
c || d.push(function(a) { | |
return function(b) { | |
a._trigger("deactivate", b, this._uiHash(this)) | |
} | |
} | |
.call(this, this.containers[e])), | |
this.containers[e].containerCache.over && (d.push(function(a) { | |
return function(b) { | |
a._trigger("out", b, this._uiHash(this)) | |
} | |
} | |
.call(this, this.containers[e])), | |
this.containers[e].containerCache.over = 0); | |
if (this._storedCursor && a("body").css("cursor", this._storedCursor), | |
this._storedOpacity && this.helper.css("opacity", this._storedOpacity), | |
this._storedZIndex && this.helper.css("zIndex", "auto" == this._storedZIndex ? "" : this._storedZIndex), | |
this.dragging = !1, | |
this.cancelHelperRemoval) { | |
if (!c) { | |
this._trigger("beforeStop", b, this._uiHash()); | |
for (var e = 0; e < d.length; e++) | |
d[e].call(this, b); | |
this._trigger("stop", b, this._uiHash()) | |
} | |
return this.fromOutside = !1, | |
!1 | |
} | |
if (c || this._trigger("beforeStop", b, this._uiHash()), | |
this.placeholder[0].parentNode.removeChild(this.placeholder[0]), | |
this.helper[0] != this.currentItem[0] && this.helper.remove(), | |
this.helper = null, | |
!c) { | |
for (var e = 0; e < d.length; e++) | |
d[e].call(this, b); | |
this._trigger("stop", b, this._uiHash()) | |
} | |
return this.fromOutside = !1, | |
!0 | |
}, | |
_trigger: function() { | |
a.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel() | |
}, | |
_uiHash: function(b) { | |
var c = b || this; | |
return { | |
helper: c.helper, | |
placeholder: c.placeholder || a([]), | |
position: c.position, | |
originalPosition: c.originalPosition, | |
offset: c.positionAbs, | |
item: c.currentItem, | |
sender: b ? b.element : null | |
} | |
} | |
}) | |
}(jQuery), | |
function(a) { | |
function b(a) { | |
return function() { | |
var b = this.element.val(); | |
a.apply(this, arguments), | |
this._refresh(), | |
b !== this.element.val() && this._trigger("change") | |
} | |
} | |
a.widget("ui.spinner", { | |
version: "1.9.0", | |
defaultElement: "<input>", | |
widgetEventPrefix: "spin", | |
options: { | |
culture: null, | |
icons: { | |
down: "ui-icon-triangle-1-s", | |
up: "ui-icon-triangle-1-n" | |
}, | |
incremental: !0, | |
max: null, | |
min: null, | |
numberFormat: null, | |
page: 10, | |
step: 1, | |
change: null, | |
spin: null, | |
start: null, | |
stop: null | |
}, | |
_create: function() { | |
this._setOption("max", this.options.max), | |
this._setOption("min", this.options.min), | |
this._setOption("step", this.options.step), | |
this._value(this.element.val(), !0), | |
this._draw(), | |
this._on(this._events), | |
this._refresh(), | |
this._on(this.window, { | |
beforeunload: function() { | |
this.element.removeAttr("autocomplete") | |
} | |
}) | |
}, | |
_getCreateOptions: function() { | |
var b = {} | |
, c = this.element; | |
return a.each(["min", "max", "step"], function(a, d) { | |
var e = c.attr(d); | |
void 0 !== e && e.length && (b[d] = e) | |
}), | |
b | |
}, | |
_events: { | |
keydown: function(a) { | |
this._start(a) && this._keydown(a) && a.preventDefault() | |
}, | |
keyup: "_stop", | |
focus: function() { | |
this.uiSpinner.addClass("ui-state-active"), | |
this.previous = this.element.val() | |
}, | |
blur: function(a) { | |
return this.cancelBlur ? void delete this.cancelBlur : (this._refresh(), | |
this.uiSpinner.removeClass("ui-state-active"), | |
void (this.previous !== this.element.val() && this._trigger("change", a))) | |
}, | |
mousewheel: function(a, b) { | |
if (b) { | |
if (!this.spinning && !this._start(a)) | |
return !1; | |
this._spin((b > 0 ? 1 : -1) * this.options.step, a), | |
clearTimeout(this.mousewheela6K), | |
this.mousewheela6K = this._delay(function() { | |
this.spinning && this._stop(a) | |
}, 100), | |
a.preventDefault() | |
} | |
}, | |
"mousedown .ui-spinner-button": function(b) { | |
function c() { | |
var a = this.element[0] === this.document[0].activeElement; | |
a || (this.element.focus(), | |
this.previous = d, | |
this._delay(function() { | |
this.previous = d | |
})) | |
} | |
var d; | |
d = this.element[0] === this.document[0].activeElement ? this.previous : this.element.val(), | |
b.preventDefault(), | |
c.call(this), | |
this.cancelBlur = !0, | |
this._delay(function() { | |
delete this.cancelBlur, | |
c.call(this) | |
}), | |
this._start(b) !== !1 && this._repeat(null, a(b.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, b) | |
}, | |
"mouseup .ui-spinner-button": "_stop", | |
"mouseenter .ui-spinner-button": function(b) { | |
if (a(b.currentTarget).hasClass("ui-state-active")) | |
return this._start(b) !== !1 && void this._repeat(null, a(b.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, b) | |
}, | |
"mouseleave .ui-spinner-button": "_stop" | |
}, | |
_draw: function() { | |
var a = this.uiSpinner = this.element.addClass("ui-spinner-input").attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml()); | |
this._hoverable(a), | |
this.element.attr("role", "spinbutton"), | |
this.buttons = a.find(".ui-spinner-button").attr("tabIndex", -1).button().removeClass("ui-corner-all"), | |
this.buttons.height() > Math.ceil(.5 * a.height()) && a.height() > 0 && a.height(a.height()), | |
this.options.disabled && this.disable() | |
}, | |
_keydown: function(b) { | |
var c = this.options | |
, d = a.ui.keyCode; | |
switch (b.keyCode) { | |
case d.UP: | |
return this._repeat(null, 1, b), | |
!0; | |
case d.DOWN: | |
return this._repeat(null, -1, b), | |
!0; | |
case d.PAGE_UP: | |
return this._repeat(null, c.page, b), | |
!0; | |
case d.PAGE_DOWN: | |
return this._repeat(null, -c.page, b), | |
!0 | |
} | |
return !1 | |
}, | |
_uiSpinnerHtml: function() { | |
return "<span class='ui-spinner ui-state-default ui-widget ui-widget-content ui-corner-all'></span>" | |
}, | |
_buttonHtml: function() { | |
return "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon " + this.options.icons.up + "'>▲</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon " + this.options.icons.down + "'>▼</span></a>" | |
}, | |
_start: function(a) { | |
return !(!this.spinning && this._trigger("start", a) === !1) && (this.counter || (this.counter = 1), | |
this.spinning = !0, | |
!0) | |
}, | |
_repeat: function(a, b, c) { | |
a = a || 500, | |
clearTimeout(this.timer), | |
this.timer = this._delay(function() { | |
this._repeat(40, b, c) | |
}, a), | |
this._spin(b * this.options.step, c) | |
}, | |
_spin: function(a, b) { | |
var c = this.value() || 0; | |
this.counter || (this.counter = 1), | |
c = this._adjustValue(c + a * this._increment(this.counter)), | |
this.spinning && this._trigger("spin", b, { | |
value: c | |
}) === !1 || (this._value(c), | |
this.counter++) | |
}, | |
_increment: function(b) { | |
var c = this.options.incremental; | |
return c ? a.isFunction(c) ? c(b) : Math.floor(b * b * b / 5e4 - b * b / 500 + 17 * b / 200 + 1) : 1 | |
}, | |
_precision: function() { | |
var a = this._precisionOf(this.options.step); | |
return null !== this.options.min && (a = Math.max(a, this._precisionOf(this.options.min))), | |
a | |
}, | |
_precisionOf: function(a) { | |
var b = a.toString() | |
, c = b.indexOf("."); | |
return c === -1 ? 0 : b.length - c - 1 | |
}, | |
_adjustValue: function(a) { | |
var b, c, d = this.options; | |
return b = null !== d.min ? d.min : 0, | |
c = a - b, | |
c = Math.round(c / d.step) * d.step, | |
a = b + c, | |
a = parseFloat(a.toFixed(this._precision())), | |
null !== d.max && a > d.max ? d.max : null !== d.min && a < d.min ? d.min : a | |
}, | |
_stop: function(a) { | |
this.spinning && (clearTimeout(this.timer), | |
clearTimeout(this.mousewheela6K), | |
this.counter = 0, | |
this.spinning = !1, | |
this._trigger("stop", a)) | |
}, | |
_setOption: function(a, b) { | |
if ("culture" === a || "numberFormat" === a) { | |
var c = this._parse(this.element.val()); | |
return this.options[a] = b, | |
void this.element.val(this._format(c)) | |
} | |
"max" !== a && "min" !== a && "step" !== a || "string" == typeof b && (b = this._parse(b)), | |
this._super(a, b), | |
"disabled" === a && (b ? (this.element.prop("disabled", !0), | |
this.buttons.button("disable")) : (this.element.prop("disabled", !1), | |
this.buttons.button("enable"))) | |
}, | |
_setOptions: b(function(a) { | |
this._super(a), | |
this._value(this.element.val()) | |
}), | |
_parse: function(a) { | |
return "string" == typeof a && "" !== a && (a = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(a, 10, this.options.culture) : +a), | |
"" === a || isNaN(a) ? null : a | |
}, | |
_format: function(a) { | |
return "" === a ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(a, this.options.numberFormat, this.options.culture) : a | |
}, | |
_refresh: function() { | |
this.element.attr({ | |
"aria-valuemin": this.options.min, | |
"aria-valuemax": this.options.max, | |
"aria-valuenow": this._parse(this.element.val()) | |
}) | |
}, | |
_value: function(a, b) { | |
var c; | |
"" !== a && (c = this._parse(a), | |
null !== c && (b || (c = this._adjustValue(c)), | |
a = this._format(c))), | |
this.element.val(a), | |
this._refresh() | |
}, | |
_destroy: function() { | |
this.element.removeClass("ui-spinner-input").prop("disabled", !1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"), | |
this.uiSpinner.replaceWith(this.element) | |
}, | |
stepUp: b(function(a) { | |
this._stepUp(a) | |
}), | |
_stepUp: function(a) { | |
this._spin((a || 1) * this.options.step) | |
}, | |
stepDown: b(function(a) { | |
this._stepDown(a) | |
}), | |
_stepDown: function(a) { | |
this._spin((a || 1) * -this.options.step) | |
}, | |
pageUp: b(function(a) { | |
this._stepUp((a || 1) * this.options.page) | |
}), | |
pageDown: b(function(a) { | |
this._stepDown((a || 1) * this.options.page) | |
}), | |
value: function(a) { | |
return arguments.length ? void b(this._value).call(this, a) : this._parse(this.element.val()) | |
}, | |
widget: function() { | |
return this.uiSpinner | |
} | |
}) | |
}(jQuery), | |
function(a, b) { | |
function c() { | |
return ++e | |
} | |
function d(a) { | |
return a = a.cloneNode(!1), | |
a.hash.length > 1 && a.href.replace(f, "") === location.href.replace(f, "") | |
} | |
var e = 0 | |
, f = /#.*$/; | |
a.widget("ui.tabs", { | |
version: "1.9.0", | |
delay: 300, | |
options: { | |
active: null, | |
collapsible: !1, | |
event: "click", | |
heightStyle: "content", | |
hide: null, | |
show: null, | |
activate: null, | |
beforeActivate: null, | |
beforeLoad: null, | |
load: null | |
}, | |
_create: function() { | |
var b = this | |
, c = this.options | |
, d = c.active; | |
this.running = !1, | |
this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible", c.collapsible).delegate(".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function(b) { | |
a(this).is(".ui-state-disabled") && b.preventDefault() | |
}).delegate(".ui-tabs-anchor", "focus" + this.eventNamespace, function() { | |
a(this).closest("li").is(".ui-state-disabled") && this.blur() | |
}), | |
this._processTabs(), | |
null === d && (location.hash && this.anchors.each(function(a, b) { | |
if (b.hash === location.hash) | |
return d = a, | |
!1 | |
}), | |
null === d && (d = this.tabs.filter(".ui-tabs-active").index()), | |
null !== d && d !== -1 || (d = !!this.tabs.length && 0)), | |
d !== !1 && (d = this.tabs.index(this.tabs.eq(d)), | |
d === -1 && (d = !c.collapsible && 0)), | |
c.active = d, | |
!c.collapsible && c.active === !1 && this.anchors.length && (c.active = 0), | |
a.isArray(c.disabled) && (c.disabled = a.unique(c.disabled.concat(a.map(this.tabs.filter(".ui-state-disabled"), function(a) { | |
return b.tabs.index(a) | |
}))).sort()), | |
this.options.active !== !1 && this.anchors.length ? this.active = this._findActive(this.options.active) : this.active = a(), | |
this._refresh(), | |
this.active.length && this.load(c.active) | |
}, | |
_getCreateEventData: function() { | |
return { | |
tab: this.active, | |
panel: this.active.length ? this._getPanelForTab(this.active) : a() | |
} | |
}, | |
_tabKeydown: function(b) { | |
var c = a(this.document[0].activeElement).closest("li") | |
, d = this.tabs.index(c) | |
, e = !0; | |
if (!this._handlePageNav(b)) { | |
switch (b.keyCode) { | |
case a.ui.keyCode.RIGHT: | |
case a.ui.keyCode.DOWN: | |
d++; | |
break; | |
case a.ui.keyCode.UP: | |
case a.ui.keyCode.LEFT: | |
e = !1, | |
d--; | |
break; | |
case a.ui.keyCode.END: | |
d = this.anchors.length - 1; | |
break; | |
case a.ui.keyCode.HOME: | |
d = 0; | |
break; | |
case a.ui.keyCode.SPACE: | |
return b.preventDefault(), | |
clearTimeout(this.activating), | |
void this._activate(d); | |
case a.ui.keyCode.ENTER: | |
return b.preventDefault(), | |
clearTimeout(this.activating), | |
void this._activate(d !== this.options.active && d); | |
default: | |
return | |
} | |
b.preventDefault(), | |
clearTimeout(this.activating), | |
d = this._focusNextTab(d, e), | |
b.ctrlKey || (c.attr("aria-selected", "false"), | |
this.tabs.eq(d).attr("aria-selected", "true"), | |
this.activating = this._delay(function() { | |
this.option("active", d) | |
}, this.delay)) | |
} | |
}, | |
_panelKeydown: function(b) { | |
this._handlePageNav(b) || b.ctrlKey && b.keyCode === a.ui.keyCode.UP && (b.preventDefault(), | |
this.active.focus()) | |
}, | |
_handlePageNav: function(b) { | |
return b.altKey && b.keyCode === a.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), | |
!0) : b.altKey && b.keyCode === a.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), | |
!0) : void 0 | |
}, | |
_findNextTab: function(b, c) { | |
function d() { | |
return b > e && (b = 0), | |
b < 0 && (b = e), | |
b | |
} | |
for (var e = this.tabs.length - 1; a.inArray(d(), this.options.disabled) !== -1; ) | |
b = c ? b + 1 : b - 1; | |
return b | |
}, | |
_focusNextTab: function(a, b) { | |
return a = this._findNextTab(a, b), | |
this.tabs.eq(a).focus(), | |
a | |
}, | |
_setOption: function(a, b) { | |
return "active" === a ? void this._activate(b) : "disabled" === a ? void this._setupDisabled(b) : (this._super(a, b), | |
"collapsible" === a && (this.element.toggleClass("ui-tabs-collapsible", b), | |
b || this.options.active !== !1 || this._activate(0)), | |
"event" === a && this._setupEvents(b), | |
void ("heightStyle" === a && this._setupHeightStyle(b))) | |
}, | |
_tabId: function(a) { | |
return a.attr("aria-controls") || "ui-tabs-" + c() | |
}, | |
_sanitizeSelector: function(a) { | |
return a ? a.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : "" | |
}, | |
refresh: function() { | |
var b = this.options | |
, c = this.tablist.children(":has(a[href])"); | |
b.disabled = a.map(c.filter(".ui-state-disabled"), function(a) { | |
return c.index(a) | |
}), | |
this._processTabs(), | |
b.active !== !1 && this.anchors.length ? this.active.length && !a.contains(this.tablist[0], this.active[0]) ? this.tabs.length === b.disabled.length ? (b.active = !1, | |
this.active = a()) : this._activate(this._findNextTab(Math.max(0, b.active - 1), !1)) : b.active = this.tabs.index(this.active) : (b.active = !1, | |
this.active = a()), | |
this._refresh() | |
}, | |
_refresh: function() { | |
this._setupDisabled(this.options.disabled), | |
this._setupEvents(this.options.event), | |
this._setupHeightStyle(this.options.heightStyle), | |
this.tabs.not(this.active).attr({ | |
"aria-selected": "false", | |
tabIndex: -1 | |
}), | |
this.panels.not(this._getPanelForTab(this.active)).hide().attr({ | |
"aria-expanded": "false", | |
"aria-hidden": "true" | |
}), | |
this.active.length ? (this.active.addClass("ui-tabs-active ui-state-active").attr({ | |
"aria-selected": "true", | |
tabIndex: 0 | |
}), | |
this._getPanelForTab(this.active).show().attr({ | |
"aria-expanded": "true", | |
"aria-hidden": "false" | |
})) : this.tabs.eq(0).attr("tabIndex", 0) | |
}, | |
_processTabs: function() { | |
var b = this; | |
this.tablist = this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role", "tablist"), | |
this.tabs = this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({ | |
role: "tab", | |
tabIndex: -1 | |
}), | |
this.anchors = this.tabs.map(function() { | |
return a("a", this)[0] | |
}).addClass("ui-tabs-anchor").attr({ | |
role: "presentation", | |
tabIndex: -1 | |
}), | |
this.panels = a(), | |
this.anchors.each(function(c, e) { | |
var f, g, h, i = a(e).uniqueId().attr("id"), j = a(e).closest("li"), k = j.attr("aria-controls"); | |
d(e) ? (f = e.hash, | |
g = b.element.find(b._sanitizeSelector(f))) : (h = b._tabId(j), | |
f = "#" + h, | |
g = b.element.find(f), | |
g.length || (g = b._createPanel(h), | |
g.insertAfter(b.panels[c - 1] || b.tablist)), | |
g.attr("aria-live", "polite")), | |
g.length && (b.panels = b.panels.add(g)), | |
k && j.data("ui-tabs-aria-controls", k), | |
j.attr({ | |
"aria-controls": f.substring(1), | |
"aria-labelledby": i | |
}), | |
g.attr("aria-labelledby", i) | |
}), | |
this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role", "tabpanel") | |
}, | |
_getList: function() { | |
return this.element.find("ol,ul").eq(0) | |
}, | |
_createPanel: function(b) { | |
return a("<div>").attr("id", b).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0) | |
}, | |
_setupDisabled: function(b) { | |
a.isArray(b) && (b.length ? b.length === this.anchors.length && (b = !0) : b = !1); | |
for (var c, d = 0; c = this.tabs[d]; d++) | |
b === !0 || a.inArray(d, b) !== -1 ? a(c).addClass("ui-state-disabled").attr("aria-disabled", "true") : a(c).removeClass("ui-state-disabled").removeAttr("aria-disabled"); | |
this.options.disabled = b | |
}, | |
_setupEvents: function(b) { | |
var c = { | |
click: function(a) { | |
a.preventDefault() | |
} | |
}; | |
b && a.each(b.split(" "), function(a, b) { | |
c[b] = "_eventHandler" | |
}), | |
this._off(this.anchors.add(this.tabs).add(this.panels)), | |
this._on(this.anchors, c), | |
this._on(this.tabs, { | |
keydown: "_tabKeydown" | |
}), | |
this._on(this.panels, { | |
keydown: "_panelKeydown" | |
}), | |
this._focusable(this.tabs), | |
this._hoverable(this.tabs) | |
}, | |
_setupHeightStyle: function(b) { | |
var c, d, e = this.element.parent(); | |
"fill" === b ? (a.support.minHeight || (d = e.css("overflow"), | |
e.css("overflow", "hidden")), | |
c = e.height(), | |
this.element.siblings(":visible").each(function() { | |
var b = a(this) | |
, d = b.css("position"); | |
"absolute" !== d && "fixed" !== d && (c -= b.outerHeight(!0)) | |
}), | |
d && e.css("overflow", d), | |
this.element.children().not(this.panels).each(function() { | |
c -= a(this).outerHeight(!0) | |
}), | |
this.panels.each(function() { | |
a(this).height(Math.max(0, c - a(this).innerHeight() + a(this).height())) | |
}).css("overflow", "auto")) : "auto" === b && (c = 0, | |
this.panels.each(function() { | |
c = Math.max(c, a(this).height("").height()) | |
}).height(c)) | |
}, | |
_eventHandler: function(b) { | |
var c = this.options | |
, d = this.active | |
, e = a(b.currentTarget) | |
, f = e.closest("li") | |
, g = f[0] === d[0] | |
, h = g && c.collapsible | |
, i = h ? a() : this._getPanelForTab(f) | |
, j = d.length ? this._getPanelForTab(d) : a() | |
, k = { | |
oldTab: d, | |
oldPanel: j, | |
newTab: h ? a() : f, | |
newPanel: i | |
}; | |
b.preventDefault(), | |
f.hasClass("ui-state-disabled") || f.hasClass("ui-tabs-loading") || this.running || g && !c.collapsible || this._trigger("beforeActivate", b, k) === !1 || (c.active = !h && this.tabs.index(f), | |
this.active = g ? a() : f, | |
this.xhr && this.xhr.abort(), | |
j.length || i.length || a.error("jQuery UI Tabs: Mismatching fragment identifier."), | |
i.length && this.load(this.tabs.index(f), b), | |
this._toggle(b, k)) | |
}, | |
_toggle: function(b, c) { | |
function d() { | |
f.running = !1, | |
f._trigger("activate", b, c) | |
} | |
function e() { | |
c.newTab.closest("li").addClass("ui-tabs-active ui-state-active"), | |
g.length && f.options.show ? f._show(g, f.options.show, d) : (g.show(), | |
d()) | |
} | |
var f = this | |
, g = c.newPanel | |
, h = c.oldPanel; | |
this.running = !0, | |
h.length && this.options.hide ? this._hide(h, this.options.hide, function() { | |
c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), | |
e() | |
}) : (c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), | |
h.hide(), | |
e()), | |
h.attr({ | |
"aria-expanded": "false", | |
"aria-hidden": "true" | |
}), | |
c.oldTab.attr("aria-selected", "false"), | |
g.length && h.length ? c.oldTab.attr("tabIndex", -1) : g.length && this.tabs.filter(function() { | |
return 0 === a(this).attr("tabIndex") | |
}).attr("tabIndex", -1), | |
g.attr({ | |
"aria-expanded": "true", | |
"aria-hidden": "false" | |
}), | |
c.newTab.attr({ | |
"aria-selected": "true", | |
tabIndex: 0 | |
}) | |
}, | |
_activate: function(b) { | |
var c, d = this._findActive(b); | |
d[0] !== this.active[0] && (d.length || (d = this.active), | |
c = d.find(".ui-tabs-anchor")[0], | |
this._eventHandler({ | |
target: c, | |
currentTarget: c, | |
preventDefault: a.noop | |
})) | |
}, | |
_findActive: function(b) { | |
return b === !1 ? a() : this.tabs.eq(b) | |
}, | |
_getIndex: function(a) { | |
return "string" == typeof a && (a = this.anchors.index(this.anchors.filter("[href$='" + a + "']"))), | |
a | |
}, | |
_destroy: function() { | |
this.xhr && this.xhr.abort(), | |
this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"), | |
this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"), | |
this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId(), | |
this.tabs.add(this.panels).each(function() { | |
a.data(this, "ui-tabs-destroy") ? a(this).remove() : a(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role") | |
}), | |
this.tabs.each(function() { | |
var b = a(this) | |
, c = b.data("ui-tabs-aria-controls"); | |
c ? b.attr("aria-controls", c) : b.removeAttr("aria-controls") | |
}), | |
"content" !== this.options.heightStyle && this.panels.css("height", "") | |
}, | |
enable: function(c) { | |
var d = this.options.disabled; | |
d !== !1 && (c === b ? d = !1 : (c = this._getIndex(c), | |
d = a.isArray(d) ? a.map(d, function(a) { | |
return a !== c ? a : null | |
}) : a.map(this.tabs, function(a, b) { | |
return b !== c ? b : null | |
})), | |
this._setupDisabled(d)) | |
}, | |
disable: function(c) { | |
var d = this.options.disabled; | |
if (d !== !0) { | |
if (c === b) | |
d = !0; | |
else { | |
if (c = this._getIndex(c), | |
a.inArray(c, d) !== -1) | |
return; | |
d = a.isArray(d) ? a.merge([c], d).sort() : [c] | |
} | |
this._setupDisabled(d) | |
} | |
}, | |
load: function(b, c) { | |
b = this._getIndex(b); | |
var e = this | |
, f = this.tabs.eq(b) | |
, g = f.find(".ui-tabs-anchor") | |
, h = this._getPanelForTab(f) | |
, i = { | |
tab: f, | |
panel: h | |
}; | |
d(g[0]) || (this.xhr = a.ajax(this._ajaxSettings(g, c, i)), | |
this.xhr && "canceled" !== this.xhr.statusText && (f.addClass("ui-tabs-loading"), | |
h.attr("aria-busy", "true"), | |
this.xhr.success(function(a) { | |
setTimeout(function() { | |
h.html(a), | |
e._trigger("load", c, i) | |
}, 1) | |
}).complete(function(a, b) { | |
setTimeout(function() { | |
"abort" === b && e.panels.stop(!1, !0), | |
f.removeClass("ui-tabs-loading"), | |
h.removeAttr("aria-busy"), | |
a === e.xhr && delete e.xhr | |
}, 1) | |
}))) | |
}, | |
_ajaxSettings: function(b, c, d) { | |
var e = this; | |
return { | |
url: b.attr("href"), | |
beforeSend: function(b, f) { | |
return e._trigger("beforeLoad", c, a.extend({ | |
jqXHR: b, | |
ajaxSettings: f | |
}, d)) | |
} | |
} | |
}, | |
_getPanelForTab: function(b) { | |
var c = a(b).attr("aria-controls"); | |
return this.element.find(this._sanitizeSelector("#" + c)) | |
} | |
}), | |
a.uiBackCompat !== !1 && (a.ui.tabs.prototype._ui = function(a, b) { | |
return { | |
tab: a, | |
panel: b, | |
index: this.anchors.index(a) | |
} | |
} | |
, | |
a.widget("ui.tabs", a.ui.tabs, { | |
url: function(a, b) { | |
this.anchors.eq(a).attr("href", b) | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
options: { | |
ajaxOptions: null, | |
cache: !1 | |
}, | |
_create: function() { | |
this._super(); | |
var b = this; | |
this._on({ | |
tabsbeforeload: function(c, d) { | |
return a.data(d.tab[0], "cache.tabs") ? void c.preventDefault() : void d.jqXHR.success(function() { | |
b.options.cache && a.data(d.tab[0], "cache.tabs", !0) | |
}) | |
} | |
}) | |
}, | |
_ajaxSettings: function(b, c, d) { | |
var e = this.options.ajaxOptions; | |
return a.extend({}, e, { | |
error: function(a, b, c) { | |
try { | |
e.error(a, b, d.tab.closest("li").index(), d.tab[0]) | |
} catch (c) {} | |
} | |
}, this._superApply(arguments)) | |
}, | |
_setOption: function(a, b) { | |
"cache" === a && b === !1 && this.anchors.removeData("cache.tabs"), | |
this._super(a, b) | |
}, | |
_destroy: function() { | |
this.anchors.removeData("cache.tabs"), | |
this._super() | |
}, | |
url: function(a, b) { | |
this.anchors.eq(a).removeData("cache.tabs"), | |
this._superApply(arguments) | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
abort: function() { | |
this.xhr && this.xhr.abort() | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
options: { | |
spinner: "<em>Loading…</em>" | |
}, | |
_create: function() { | |
this._super(), | |
this._on({ | |
tabsbeforeload: function(a, b) { | |
if (a.target === this.element[0] && this.options.spinner) { | |
var c = b.tab.find("span") | |
, d = c.html(); | |
c.html(this.options.spinner), | |
b.jqXHR.complete(function() { | |
c.html(d) | |
}) | |
} | |
} | |
}) | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
options: { | |
enable: null, | |
disable: null | |
}, | |
enable: function(b) { | |
var c, d = this.options; | |
(b && d.disabled === !0 || a.isArray(d.disabled) && a.inArray(b, d.disabled) !== -1) && (c = !0), | |
this._superApply(arguments), | |
c && this._trigger("enable", null, this._ui(this.anchors[b], this.panels[b])) | |
}, | |
disable: function(b) { | |
var c, d = this.options; | |
(b && d.disabled === !1 || a.isArray(d.disabled) && a.inArray(b, d.disabled) === -1) && (c = !0), | |
this._superApply(arguments), | |
c && this._trigger("disable", null, this._ui(this.anchors[b], this.panels[b])) | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
options: { | |
add: null, | |
remove: null, | |
tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>" | |
}, | |
add: function(c, d, e) { | |
e === b && (e = this.anchors.length); | |
var f, g, h = this.options, i = a(h.tabTemplate.replace(/#\{href\}/g, c).replace(/#\{label\}/g, d)), j = c.indexOf("#") ? this._tabId(i) : c.replace("#", ""); | |
return i.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy", !0), | |
i.attr("aria-controls", j), | |
f = e >= this.tabs.length, | |
g = this.element.find("#" + j), | |
g.length || (g = this._createPanel(j), | |
f ? e > 0 ? g.insertAfter(this.panels.eq(-1)) : g.appendTo(this.element) : g.insertBefore(this.panels[e])), | |
g.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(), | |
f ? i.appendTo(this.tablist) : i.insertBefore(this.tabs[e]), | |
h.disabled = a.map(h.disabled, function(a) { | |
return a >= e ? ++a : a | |
}), | |
this.refresh(), | |
1 === this.tabs.length && h.active === !1 && this.option("active", 0), | |
this._trigger("add", null, this._ui(this.anchors[e], this.panels[e])), | |
this | |
}, | |
remove: function(b) { | |
b = this._getIndex(b); | |
var c = this.options | |
, d = this.tabs.eq(b).remove() | |
, e = this._getPanelForTab(d).remove(); | |
return d.hasClass("ui-tabs-active") && this.anchors.length > 2 && this._activate(b + (b + 1 < this.anchors.length ? 1 : -1)), | |
c.disabled = a.map(a.grep(c.disabled, function(a) { | |
return a !== b | |
}), function(a) { | |
return a >= b ? --a : a | |
}), | |
this.refresh(), | |
this._trigger("remove", null, this._ui(d.find("a")[0], e[0])), | |
this | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
length: function() { | |
return this.anchors.length | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
options: { | |
idPrefix: "ui-tabs-" | |
}, | |
_tabId: function(b) { | |
var d = b.is("li") ? b.find("a[href]") : b; | |
return d = d[0], | |
a(d).closest("li").attr("aria-controls") || d.title && d.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF\-]/g, "") || this.options.idPrefix + c() | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
options: { | |
panelTemplate: "<div></div>" | |
}, | |
_createPanel: function(b) { | |
return a(this.options.panelTemplate).attr("id", b).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0) | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
_create: function() { | |
var a = this.options; | |
null === a.active && a.selected !== b && (a.active = a.selected !== -1 && a.selected), | |
this._super(), | |
a.selected = a.active, | |
a.selected === !1 && (a.selected = -1) | |
}, | |
_setOption: function(a, b) { | |
if ("selected" !== a) | |
return this._super(a, b); | |
var c = this.options; | |
this._super("active", b !== -1 && b), | |
c.selected = c.active, | |
c.selected === !1 && (c.selected = -1) | |
}, | |
_eventHandler: function(a) { | |
this._superApply(arguments), | |
this.options.selected = this.options.active, | |
this.options.selected === !1 && (this.options.selected = -1) | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
options: { | |
show: null, | |
select: null | |
}, | |
_create: function() { | |
this._super(), | |
this.options.active !== !1 && this._trigger("show", null, this._ui(this.active.find(".ui-tabs-anchor")[0], this._getPanelForTab(this.active)[0])) | |
}, | |
_trigger: function(a, b, c) { | |
var d = this._superApply(arguments); | |
return !!d && ("beforeActivate" === a && c.newTab.length ? d = this._super("select", b, { | |
tab: c.newTab.find(".ui-tabs-anchor")[0], | |
panel: c.newPanel[0], | |
index: c.newTab.closest("li").index() | |
}) : "activate" === a && c.newTab.length && (d = this._super("show", b, { | |
tab: c.newTab.find(".ui-tabs-anchor")[0], | |
panel: c.newPanel[0], | |
index: c.newTab.closest("li").index() | |
})), | |
d) | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
select: function(a) { | |
if (a = this._getIndex(a), | |
a === -1) { | |
if (!this.options.collapsible || this.options.selected === -1) | |
return; | |
a = this.options.selected | |
} | |
this.anchors.eq(a).trigger(this.options.event + this.eventNamespace) | |
} | |
}), | |
function() { | |
var b = 0; | |
a.widget("ui.tabs", a.ui.tabs, { | |
options: { | |
cookie: null | |
}, | |
_create: function() { | |
var a, b = this.options; | |
null == b.active && b.cookie && (a = parseInt(this._cookie(), 10), | |
a === -1 && (a = !1), | |
b.active = a), | |
this._super() | |
}, | |
_cookie: function(c) { | |
var d = [this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + ++b)]; | |
return arguments.length && (d.push(c === !1 ? -1 : c), | |
d.push(this.options.cookie)), | |
a.cookie.apply(null, d) | |
}, | |
_refresh: function() { | |
this._super(), | |
this.options.cookie && this._cookie(this.options.active, this.options.cookie) | |
}, | |
_eventHandler: function(a) { | |
this._superApply(arguments), | |
this.options.cookie && this._cookie(this.options.active, this.options.cookie); | |
}, | |
_destroy: function() { | |
this._super(), | |
this.options.cookie && this._cookie(null, this.options.cookie) | |
} | |
}) | |
}(), | |
a.widget("ui.tabs", a.ui.tabs, { | |
_trigger: function(b, c, d) { | |
var e = a.extend({}, d); | |
return "load" === b && (e.panel = e.panel[0], | |
e.tab = e.tab.find(".ui-tabs-anchor")[0]), | |
this._super(b, c, e) | |
} | |
}), | |
a.widget("ui.tabs", a.ui.tabs, { | |
options: { | |
fx: null | |
}, | |
_getFx: function() { | |
var b, c, d = this.options.fx; | |
return d && (a.isArray(d) ? (b = d[0], | |
c = d[1]) : b = c = d), | |
d ? { | |
show: c, | |
hide: b | |
} : null | |
}, | |
_toggle: function(a, b) { | |
function c() { | |
e.running = !1, | |
e._trigger("activate", a, b) | |
} | |
function d() { | |
b.newTab.closest("li").addClass("ui-tabs-active ui-state-active"), | |
f.length && h.show ? f.animate(h.show, h.show.duration, function() { | |
c() | |
}) : (f.show(), | |
c()) | |
} | |
var e = this | |
, f = b.newPanel | |
, g = b.oldPanel | |
, h = this._getFx(); | |
return h ? (e.running = !0, | |
void (g.length && h.hide ? g.animate(h.hide, h.hide.duration, function() { | |
b.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), | |
d() | |
}) : (b.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), | |
g.hide(), | |
d()))) : this._super(a, b) | |
} | |
})) | |
}(jQuery), | |
function(a) { | |
function b(b, c) { | |
var d = (b.attr("aria-describedby") || "").split(/\s+/); | |
d.push(c), | |
b.data("ui-tooltip-id", c).attr("aria-describedby", a.trim(d.join(" "))) | |
} | |
function c(b) { | |
var c = b.data("ui-tooltip-id") | |
, d = (b.attr("aria-describedby") || "").split(/\s+/) | |
, e = a.inArray(c, d); | |
e !== -1 && d.splice(e, 1), | |
b.removeData("ui-tooltip-id"), | |
d = a.trim(d.join(" ")), | |
d ? b.attr("aria-describedby", d) : b.removeAttr("aria-describedby") | |
} | |
var d = 0; | |
a.widget("ui.tooltip", { | |
version: "1.9.0", | |
options: { | |
content: function() { | |
return a(this).attr("title") | |
}, | |
hide: !0, | |
items: "[title]", | |
position: { | |
my: "left+15 center", | |
at: "right center", | |
collision: "flipfit flipfit" | |
}, | |
show: !0, | |
tooltipClass: null, | |
track: !1, | |
close: null, | |
open: null | |
}, | |
_create: function() { | |
this._on({ | |
mouseover: "open", | |
focusin: "open" | |
}), | |
this.tooltips = {} | |
}, | |
_setOption: function(b, c) { | |
var d = this; | |
return "disabled" === b ? (this[c ? "_disable" : "_enable"](), | |
void (this.options[b] = c)) : (this._super(b, c), | |
void ("content" === b && a.each(this.tooltips, function(a, b) { | |
d._updateContent(b) | |
}))) | |
}, | |
_disable: function() { | |
var b = this; | |
a.each(this.tooltips, function(c, d) { | |
var e = a.Event("blur"); | |
e.target = e.currentTarget = d[0], | |
b.close(e, !0) | |
}), | |
this.element.find(this.options.items).andSelf().each(function() { | |
var b = a(this); | |
b.is("[title]") && b.data("ui-tooltip-title", b.attr("title")).attr("title", "") | |
}) | |
}, | |
_enable: function() { | |
this.element.find(this.options.items).andSelf().each(function() { | |
var b = a(this); | |
b.data("ui-tooltip-title") && b.attr("title", b.data("ui-tooltip-title")) | |
}) | |
}, | |
open: function(b) { | |
var c = a(b ? b.target : this.element).closest(this.options.items); | |
if (c.length) { | |
if (this.options.track && c.data("ui-tooltip-id")) | |
return this._find(c).position(a.extend({ | |
of: c | |
}, this.options.position)), | |
void this._off(this.document, "mousemove"); | |
c.attr("title") && c.data("ui-tooltip-title", c.attr("title")), | |
c.data("tooltip-open", !0), | |
this._updateContent(c, b) | |
} | |
}, | |
_updateContent: function(a, b) { | |
var c, d = this.options.content, e = this; | |
return "string" == typeof d ? this._open(b, a, d) : (c = d.call(a[0], function(c) { | |
a.data("tooltip-open") && e._delay(function() { | |
this._open(b, a, c) | |
}) | |
}), | |
void (c && this._open(b, a, c))) | |
}, | |
_open: function(c, d, e) { | |
function f(a) { | |
h.of = a, | |
g.position(h) | |
} | |
var g, h; | |
if (e) { | |
if (g = this._find(d), | |
g.length) | |
return void g.find(".ui-tooltip-content").html(e); | |
d.is("[title]") && (c && "mouseover" === c.type ? d.attr("title", "") : d.removeAttr("title")), | |
g = this._tooltip(d), | |
b(d, g.attr("id")), | |
g.find(".ui-tooltip-content").html(e), | |
this.options.track && c && /^mouse/.test(c.originalEvent.type) ? (h = a.extend({}, this.options.position), | |
this._on(this.document, { | |
mousemove: f | |
}), | |
f(c)) : g.position(a.extend({ | |
of: d | |
}, this.options.position)), | |
g.hide(), | |
this._show(g, this.options.show), | |
this._trigger("open", c, { | |
tooltip: g | |
}), | |
this._on(d, { | |
mouseleave: "close", | |
focusout: "close", | |
keyup: function(b) { | |
if (b.keyCode === a.ui.keyCode.ESCAPE) { | |
var c = a.Event(b); | |
c.currentTarget = d[0], | |
this.close(c, !0) | |
} | |
} | |
}) | |
} | |
}, | |
close: function(b, d) { | |
var e = this | |
, f = a(b ? b.currentTarget : this.element) | |
, g = this._find(f); | |
this.closing || !d && b && "focusout" !== b.type && this.document[0].activeElement === f[0] || (f.data("ui-tooltip-title") && f.attr("title", f.data("ui-tooltip-title")), | |
c(f), | |
g.stop(!0), | |
this._hide(g, this.options.hide, function() { | |
a(this).remove(), | |
delete e.tooltips[this.id] | |
}), | |
f.removeData("tooltip-open"), | |
this._off(f, "mouseleave focusout keyup"), | |
this._off(this.document, "mousemove"), | |
this.closing = !0, | |
this._trigger("close", b, { | |
tooltip: g | |
}), | |
this.closing = !1) | |
}, | |
_tooltip: function(b) { | |
var c = "ui-tooltip-" + d++ | |
, e = a("<div>").attr({ | |
id: c, | |
role: "tooltip" | |
}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content " + (this.options.tooltipClass || "")); | |
return a("<div>").addClass("ui-tooltip-content").appendTo(e), | |
e.appendTo(this.document[0].body), | |
a.fn.bgiframe && e.bgiframe(), | |
this.tooltips[c] = b, | |
e | |
}, | |
_find: function(b) { | |
var c = b.data("ui-tooltip-id"); | |
return c ? a("#" + c) : a() | |
}, | |
_destroy: function() { | |
var b = this; | |
a.each(this.tooltips, function(c, d) { | |
var e = a.Event("blur"); | |
e.target = e.currentTarget = d[0], | |
b.close(e, !0), | |
a("#" + c).remove(), | |
d.data("ui-tooltip-title") && (d.attr("title", d.data("ui-tooltip-title")), | |
d.removeData("ui-tooltip-title")) | |
}) | |
} | |
}) | |
}(jQuery), | |
function() { | |
function a(b, c, d) { | |
if (b === c) | |
return 0 !== b || 1 / b == 1 / c; | |
if (null == b || null == c) | |
return b === c; | |
if (b._chain && (b = b._wrapped), | |
c._chain && (c = c._wrapped), | |
b.isEqual && x.isFunction(b.isEqual)) | |
return b.isEqual(c); | |
if (c.isEqual && x.isFunction(c.isEqual)) | |
return c.isEqual(b); | |
var e = j.call(b); | |
if (e != j.call(c)) | |
return !1; | |
switch (e) { | |
case "[object String]": | |
return b == String(c); | |
case "[object Number]": | |
return b != +b ? c != +c : 0 == b ? 1 / b == 1 / c : b == +c; | |
case "[object Date]": | |
case "[object Boolean]": | |
return +b == +c; | |
case "[object RegExp]": | |
return b.source == c.source && b.global == c.global && b.multiline == c.multiline && b.ignoreCase == c.ignoreCase | |
} | |
if ("object" != typeof b || "object" != typeof c) | |
return !1; | |
for (var f = d.length; f--; ) | |
if (d[f] == b) | |
return !0; | |
d.push(b); | |
var g = 0 | |
, h = !0; | |
if ("[object Array]" == e) { | |
if (g = b.length, | |
h = g == c.length) | |
for (; g-- && (h = g in b == g in c && a(b[g], c[g], d)); ) | |
; | |
} else { | |
if ("constructor"in b != "constructor"in c || b.constructor != c.constructor) | |
return !1; | |
for (var i in b) | |
if (x.has(b, i) && (g++, | |
!(h = x.has(c, i) && a(b[i], c[i], d)))) | |
break; | |
if (h) { | |
for (i in c) | |
if (x.has(c, i) && !g--) | |
break; | |
h = !g | |
} | |
} | |
return d.pop(), | |
h | |
} | |
var b = this | |
, c = b._ | |
, d = {} | |
, e = Array.prototype | |
, f = Object.prototype | |
, g = Function.prototype | |
, h = e.slice | |
, i = e.unshift | |
, j = f.toString | |
, k = f.hasOwnProperty | |
, l = e.forEach | |
, m = e.map | |
, n = e.reduce | |
, o = e.reduceRight | |
, p = e.filter | |
, q = e.every | |
, r = e.some | |
, s = e.indexOf | |
, t = e.lastIndexOf | |
, u = Array.isArray | |
, v = Object.keys | |
, w = g.bind | |
, x = function(a) { | |
return new I(a) | |
}; | |
"undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = x), | |
exports._ = x) : b._ = x, | |
x.VERSION = "1.3.3"; | |
var y = x.each = x.forEach = function(a, b, c) { | |
if (null != a) | |
if (l && a.forEach === l) | |
a.forEach(b, c); | |
else if (a.length === +a.length) { | |
for (var e = 0, f = a.length; e < f; e++) | |
if (e in a && b.call(c, a[e], e, a) === d) | |
return | |
} else | |
for (var g in a) | |
if (x.has(a, g) && b.call(c, a[g], g, a) === d) | |
return | |
} | |
; | |
x.map = x.collect = function(a, b, c) { | |
var d = []; | |
return null == a ? d : m && a.map === m ? a.map(b, c) : (y(a, function(a, e, f) { | |
d[d.length] = b.call(c, a, e, f) | |
}), | |
a.length === +a.length && (d.length = a.length), | |
d) | |
} | |
, | |
x.reduce = x.foldl = x.inject = function(a, b, c, d) { | |
var e = arguments.length > 2; | |
if (null == a && (a = []), | |
n && a.reduce === n) | |
return d && (b = x.bind(b, d)), | |
e ? a.reduce(b, c) : a.reduce(b); | |
if (y(a, function(a, f, g) { | |
e ? c = b.call(d, c, a, f, g) : (c = a, | |
e = !0) | |
}), | |
!e) | |
throw new TypeError("Reduce of empty array with no initial value"); | |
return c | |
} | |
, | |
x.reduceRight = x.foldr = function(a, b, c, d) { | |
var e = arguments.length > 2; | |
if (null == a && (a = []), | |
o && a.reduceRight === o) | |
return d && (b = x.bind(b, d)), | |
e ? a.reduceRight(b, c) : a.reduceRight(b); | |
var f = x.toArray(a).reverse(); | |
return d && !e && (b = x.bind(b, d)), | |
e ? x.reduce(f, b, c, d) : x.reduce(f, b) | |
} | |
, | |
x.find = x.detect = function(a, b, c) { | |
var d; | |
return z(a, function(a, e, f) { | |
if (b.call(c, a, e, f)) | |
return d = a, | |
!0 | |
}), | |
d | |
} | |
, | |
x.filter = x.select = function(a, b, c) { | |
var d = []; | |
return null == a ? d : p && a.filter === p ? a.filter(b, c) : (y(a, function(a, e, f) { | |
b.call(c, a, e, f) && (d[d.length] = a) | |
}), | |
d) | |
} | |
, | |
x.reject = function(a, b, c) { | |
var d = []; | |
return null == a ? d : (y(a, function(a, e, f) { | |
b.call(c, a, e, f) || (d[d.length] = a) | |
}), | |
d) | |
} | |
, | |
x.every = x.all = function(a, b, c) { | |
var e = !0; | |
return null == a ? e : q && a.every === q ? a.every(b, c) : (y(a, function(a, f, g) { | |
if (!(e = e && b.call(c, a, f, g))) | |
return d | |
}), | |
!!e) | |
} | |
; | |
var z = x.some = x.any = function(a, b, c) { | |
b || (b = x.identity); | |
var e = !1; | |
return null == a ? e : r && a.some === r ? a.some(b, c) : (y(a, function(a, f, g) { | |
if (e || (e = b.call(c, a, f, g))) | |
return d | |
}), | |
!!e) | |
} | |
; | |
x.include = x.contains = function(a, b) { | |
var c = !1; | |
return null == a ? c : s && a.indexOf === s ? a.indexOf(b) != -1 : c = z(a, function(a) { | |
return a === b | |
}) | |
} | |
, | |
x.invoke = function(a, b) { | |
var c = h.call(arguments, 2); | |
return x.map(a, function(a) { | |
return (x.isFunction(b) ? b || a : a[b]).apply(a, c) | |
}) | |
} | |
, | |
x.pluck = function(a, b) { | |
return x.map(a, function(a) { | |
return a[b] | |
}) | |
} | |
, | |
x.max = function(a, b, c) { | |
if (!b && x.isArray(a) && a[0] === +a[0]) | |
return Math.max.apply(Math, a); | |
if (!b && x.isEmpty(a)) | |
return -(1 / 0); | |
var d = { | |
computed: -(1 / 0) | |
}; | |
return y(a, function(a, e, f) { | |
var g = b ? b.call(c, a, e, f) : a; | |
g >= d.computed && (d = { | |
value: a, | |
computed: g | |
}) | |
}), | |
d.value | |
} | |
, | |
x.min = function(a, b, c) { | |
if (!b && x.isArray(a) && a[0] === +a[0]) | |
return Math.min.apply(Math, a); | |
if (!b && x.isEmpty(a)) | |
return 1 / 0; | |
var d = { | |
computed: 1 / 0 | |
}; | |
return y(a, function(a, e, f) { | |
var g = b ? b.call(c, a, e, f) : a; | |
g < d.computed && (d = { | |
value: a, | |
computed: g | |
}) | |
}), | |
d.value | |
} | |
, | |
x.shuffle = function(a) { | |
var b, c = []; | |
return y(a, function(a, d, e) { | |
b = Math.floor(Math.random() * (d + 1)), | |
c[d] = c[b], | |
c[b] = a | |
}), | |
c | |
} | |
, | |
x.sortBy = function(a, b, c) { | |
var d = x.isFunction(b) ? b : function(a) { | |
return a[b] | |
} | |
; | |
return x.pluck(x.map(a, function(a, b, e) { | |
return { | |
value: a, | |
criteria: d.call(c, a, b, e) | |
} | |
}).sort(function(a, b) { | |
var c = a.criteria | |
, d = b.criteria; | |
return void 0 === c ? 1 : void 0 === d ? -1 : c < d ? -1 : c > d ? 1 : 0 | |
}), "value") | |
} | |
, | |
x.groupBy = function(a, b) { | |
var c = {} | |
, d = x.isFunction(b) ? b : function(a) { | |
return a[b] | |
} | |
; | |
return y(a, function(a, b) { | |
var e = d(a, b); | |
(c[e] || (c[e] = [])).push(a) | |
}), | |
c | |
} | |
, | |
x.sortedIndex = function(a, b, c) { | |
c || (c = x.identity); | |
for (var d = 0, e = a.length; d < e; ) { | |
var f = d + e >> 1; | |
c(a[f]) < c(b) ? d = f + 1 : e = f | |
} | |
return d | |
} | |
, | |
x.toArray = function(a) { | |
return a ? x.isArray(a) ? h.call(a) : x.isArguments(a) ? h.call(a) : a.toArray && x.isFunction(a.toArray) ? a.toArray() : x.values(a) : [] | |
} | |
, | |
x.size = function(a) { | |
return x.isArray(a) ? a.length : x.keys(a).length | |
} | |
, | |
x.first = x.head = x.take = function(a, b, c) { | |
return null == b || c ? a[0] : h.call(a, 0, b) | |
} | |
, | |
x.initial = function(a, b, c) { | |
return h.call(a, 0, a.length - (null == b || c ? 1 : b)) | |
} | |
, | |
x.last = function(a, b, c) { | |
return null == b || c ? a[a.length - 1] : h.call(a, Math.max(a.length - b, 0)) | |
} | |
, | |
x.rest = x.tail = function(a, b, c) { | |
return h.call(a, null == b || c ? 1 : b) | |
} | |
, | |
x.compact = function(a) { | |
return x.filter(a, function(a) { | |
return !!a | |
}) | |
} | |
, | |
x.flatten = function(a, b) { | |
return x.reduce(a, function(a, c) { | |
return x.isArray(c) ? a.concat(b ? c : x.flatten(c)) : (a[a.length] = c, | |
a) | |
}, []) | |
} | |
, | |
x.without = function(a) { | |
return x.difference(a, h.call(arguments, 1)) | |
} | |
, | |
x.uniq = x.unique = function(a, b, c) { | |
var d = c ? x.map(a, c) : a | |
, e = []; | |
return a.length < 3 && (b = !0), | |
x.reduce(d, function(c, d, f) { | |
return (b ? x.last(c) === d && c.length : x.include(c, d)) || (c.push(d), | |
e.push(a[f])), | |
c | |
}, []), | |
e | |
} | |
, | |
x.union = function() { | |
return x.uniq(x.flatten(arguments, !0)) | |
} | |
, | |
x.intersection = x.intersect = function(a) { | |
var b = h.call(arguments, 1); | |
return x.filter(x.uniq(a), function(a) { | |
return x.every(b, function(b) { | |
return x.indexOf(b, a) >= 0 | |
}) | |
}) | |
} | |
, | |
x.difference = function(a) { | |
var b = x.flatten(h.call(arguments, 1), !0); | |
return x.filter(a, function(a) { | |
return !x.include(b, a) | |
}) | |
} | |
, | |
x.zip = function() { | |
for (var a = h.call(arguments), b = x.max(x.pluck(a, "length")), c = new Array(b), d = 0; d < b; d++) | |
c[d] = x.pluck(a, "" + d); | |
return c | |
} | |
, | |
x.indexOf = function(a, b, c) { | |
if (null == a) | |
return -1; | |
var d, e; | |
if (c) | |
return d = x.sortedIndex(a, b), | |
a[d] === b ? d : -1; | |
if (s && a.indexOf === s) | |
return a.indexOf(b); | |
for (d = 0, | |
e = a.length; d < e; d++) | |
if (d in a && a[d] === b) | |
return d; | |
return -1 | |
} | |
, | |
x.lastIndexOf = function(a, b) { | |
if (null == a) | |
return -1; | |
if (t && a.lastIndexOf === t) | |
return a.lastIndexOf(b); | |
for (var c = a.length; c--; ) | |
if (c in a && a[c] === b) | |
return c; | |
return -1 | |
} | |
, | |
x.range = function(a, b, c) { | |
arguments.length <= 1 && (b = a || 0, | |
a = 0), | |
c = arguments[2] || 1; | |
for (var d = Math.max(Math.ceil((b - a) / c), 0), e = 0, f = new Array(d); e < d; ) | |
f[e++] = a, | |
a += c; | |
return f | |
} | |
; | |
var A = function() {}; | |
x.bind = function(a, b) { | |
var c, d; | |
if (a.bind === w && w) | |
return w.apply(a, h.call(arguments, 1)); | |
if (!x.isFunction(a)) | |
throw new TypeError; | |
return d = h.call(arguments, 2), | |
c = function() { | |
if (!(this instanceof c)) | |
return a.apply(b, d.concat(h.call(arguments))); | |
A.prototype = a.prototype; | |
var e = new A | |
, f = a.apply(e, d.concat(h.call(arguments))); | |
return Object(f) === f ? f : e | |
} | |
} | |
, | |
x.bindAll = function(a) { | |
var b = h.call(arguments, 1); | |
return 0 == b.length && (b = x.functions(a)), | |
y(b, function(b) { | |
a[b] = x.bind(a[b], a) | |
}), | |
a | |
} | |
, | |
x.memoize = function(a, b) { | |
var c = {}; | |
return b || (b = x.identity), | |
function() { | |
var d = b.apply(this, arguments); | |
return x.has(c, d) ? c[d] : c[d] = a.apply(this, arguments) | |
} | |
} | |
, | |
x.delay = function(a, b) { | |
var c = h.call(arguments, 2); | |
return setTimeout(function() { | |
return a.apply(null, c) | |
}, b) | |
} | |
, | |
x.defer = function(a) { | |
return x.delay.apply(x, [a, 1].concat(h.call(arguments, 1))) | |
} | |
, | |
x.throttle = function(a, b) { | |
var c, d, e, f, g, h, i = x.debounce(function() { | |
g = f = !1 | |
}, b); | |
return function() { | |
c = this, | |
d = arguments; | |
var j = function() { | |
e = null, | |
g && a.apply(c, d), | |
i() | |
}; | |
return e || (e = setTimeout(j, b)), | |
f ? g = !0 : h = a.apply(c, d), | |
i(), | |
f = !0, | |
h | |
} | |
} | |
, | |
x.debounce = function(a, b, c) { | |
var d; | |
return function() { | |
var e = this | |
, f = arguments | |
, g = function() { | |
d = null, | |
c || a.apply(e, f) | |
}; | |
c && !d && a.apply(e, f), | |
clearTimeout(d), | |
d = setTimeout(g, b) | |
} | |
} | |
, | |
x.once = function(a) { | |
var b, c = !1; | |
return function() { | |
return c ? b : (c = !0, | |
b = a.apply(this, arguments)) | |
} | |
} | |
, | |
x.wrap = function(a, b) { | |
return function() { | |
var c = [a].concat(h.call(arguments, 0)); | |
return b.apply(this, c) | |
} | |
} | |
, | |
x.compose = function() { | |
var a = arguments; | |
return function() { | |
for (var b = arguments, c = a.length - 1; c >= 0; c--) | |
b = [a[c].apply(this, b)]; | |
return b[0] | |
} | |
} | |
, | |
x.after = function(a, b) { | |
return a <= 0 ? b() : function() { | |
if (--a < 1) | |
return b.apply(this, arguments) | |
} | |
} | |
, | |
x.keys = v || function(a) { | |
if (a !== Object(a)) | |
throw new TypeError("Invalid object"); | |
var b = []; | |
for (var c in a) | |
x.has(a, c) && (b[b.length] = c); | |
return b | |
} | |
, | |
x.values = function(a) { | |
return x.map(a, x.identity) | |
} | |
, | |
x.functions = x.methods = function(a) { | |
var b = []; | |
for (var c in a) | |
x.isFunction(a[c]) && b.push(c); | |
return b.sort() | |
} | |
, | |
x.extend = function(a) { | |
return y(h.call(arguments, 1), function(b) { | |
for (var c in b) | |
a[c] = b[c] | |
}), | |
a | |
} | |
, | |
x.pick = function(a) { | |
var b = {}; | |
return y(x.flatten(h.call(arguments, 1)), function(c) { | |
c in a && (b[c] = a[c]) | |
}), | |
b | |
} | |
, | |
x.defaults = function(a) { | |
return y(h.call(arguments, 1), function(b) { | |
for (var c in b) | |
null == a[c] && (a[c] = b[c]) | |
}), | |
a | |
} | |
, | |
x.clone = function(a) { | |
return x.isObject(a) ? x.isArray(a) ? a.slice() : x.extend({}, a) : a | |
} | |
, | |
x.tap = function(a, b) { | |
return b(a), | |
a | |
} | |
, | |
x.isEqual = function(b, c) { | |
return a(b, c, []) | |
} | |
, | |
x.isEmpty = function(a) { | |
if (null == a) | |
return !0; | |
if (x.isArray(a) || x.isString(a)) | |
return 0 === a.length; | |
for (var b in a) | |
if (x.has(a, b)) | |
return !1; | |
return !0 | |
} | |
, | |
x.isElement = function(a) { | |
return !(!a || 1 != a.nodeType) | |
} | |
, | |
x.isArray = u || function(a) { | |
return "[object Array]" == j.call(a) | |
} | |
, | |
x.isObject = function(a) { | |
return a === Object(a) | |
} | |
, | |
x.isArguments = function(a) { | |
return "[object Arguments]" == j.call(a) | |
} | |
, | |
x.isArguments(arguments) || (x.isArguments = function(a) { | |
return !(!a || !x.has(a, "callee")) | |
} | |
), | |
x.isFunction = function(a) { | |
return "[object Function]" == j.call(a) | |
} | |
, | |
x.isString = function(a) { | |
return "[object String]" == j.call(a) | |
} | |
, | |
x.isNumber = function(a) { | |
return "[object Number]" == j.call(a) | |
} | |
, | |
x.isFinite = function(a) { | |
return x.isNumber(a) && isFinite(a) | |
} | |
, | |
x.isNaN = function(a) { | |
return a !== a | |
} | |
, | |
x.isBoolean = function(a) { | |
return a === !0 || a === !1 || "[object Boolean]" == j.call(a) | |
} | |
, | |
x.isDate = function(a) { | |
return "[object Date]" == j.call(a) | |
} | |
, | |
x.isRegExp = function(a) { | |
return "[object RegExp]" == j.call(a) | |
} | |
, | |
x.isNull = function(a) { | |
return null === a | |
} | |
, | |
x.isUndefined = function(a) { | |
return void 0 === a | |
} | |
, | |
x.has = function(a, b) { | |
return k.call(a, b) | |
} | |
, | |
x.noConflict = function() { | |
return b._ = c, | |
this | |
} | |
, | |
x.identity = function(a) { | |
return a | |
} | |
, | |
x.times = function(a, b, c) { | |
for (var d = 0; d < a; d++) | |
b.call(c, d) | |
} | |
, | |
x.escape = function(a) { | |
return ("" + a).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/") | |
} | |
, | |
x.result = function(a, b) { | |
if (null == a) | |
return null; | |
var c = a[b]; | |
return x.isFunction(c) ? c.call(a) : c | |
} | |
, | |
x.mixin = function(a) { | |
y(x.functions(a), function(b) { | |
K(b, x[b] = a[b]) | |
}) | |
} | |
; | |
var B = 0; | |
x.uniqueId = function(a) { | |
var b = B++; | |
return a ? a + b : b | |
} | |
, | |
x.templateSettings = { | |
evaluate: /<%([\s\S]+?)%>/g, | |
interpolate: /<%=([\s\S]+?)%>/g, | |
escape: /<%-([\s\S]+?)%>/g | |
}; | |
var C = /.^/ | |
, D = { | |
"\\": "\\", | |
"'": "'", | |
r: "\r", | |
n: "\n", | |
t: "\t", | |
u2028: "\u2028", | |
u2029: "\u2029" | |
}; | |
for (var E in D) | |
D[D[E]] = E; | |
var F = /\\|'|\r|\n|\t|\u2028|\u2029/g | |
, G = /\\(\\|'|r|n|t|u2028|u2029)/g | |
, H = function(a) { | |
return a.replace(G, function(a, b) { | |
return D[b] | |
}) | |
}; | |
x.template = function(a, b, c) { | |
c = x.defaults(c || {}, x.templateSettings); | |
var d = "__p+='" + a.replace(F, function(a) { | |
return "\\" + D[a] | |
}).replace(c.escape || C, function(a, b) { | |
return "'+\n_.escape(" + H(b) + ")+\n'" | |
}).replace(c.interpolate || C, function(a, b) { | |
return "'+\n(" + H(b) + ")+\n'" | |
}).replace(c.evaluate || C, function(a, b) { | |
return "';\n" + H(b) + "\n;__p+='" | |
}) + "';\n"; | |
c.variable || (d = "with(obj||{}){\n" + d + "}\n"), | |
d = "var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n" + d + "return __p;\n"; | |
var e = new Function(c.variable || "obj","_",d); | |
if (b) | |
return e(b, x); | |
var f = function(a) { | |
return e.call(this, a, x) | |
}; | |
return f.source = "function(" + (c.variable || "obj") + "){\n" + d + "}", | |
f | |
} | |
, | |
x.chain = function(a) { | |
return x(a).chain() | |
} | |
; | |
var I = function(a) { | |
this._wrapped = a | |
}; | |
x.prototype = I.prototype; | |
var J = function(a, b) { | |
return b ? x(a).chain() : a | |
} | |
, K = function(a, b) { | |
I.prototype[a] = function() { | |
var a = h.call(arguments); | |
return i.call(a, this._wrapped), | |
J(b.apply(x, a), this._chain) | |
} | |
}; | |
x.mixin(x), | |
y(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(a) { | |
var b = e[a]; | |
I.prototype[a] = function() { | |
var c = this._wrapped; | |
b.apply(c, arguments); | |
var d = c.length; | |
return "shift" != a && "splice" != a || 0 !== d || delete c[0], | |
J(c, this._chain) | |
} | |
}), | |
y(["concat", "join", "slice"], function(a) { | |
var b = e[a]; | |
I.prototype[a] = function() { | |
return J(b.apply(this._wrapped, arguments), this._chain) | |
} | |
}), | |
I.prototype.chain = function() { | |
return this._chain = !0, | |
this | |
} | |
, | |
I.prototype.value = function() { | |
return this._wrapped | |
} | |
} | |
.call(this), | |
function() { | |
var a, b = this, c = b.Backbone, d = Array.prototype.slice, e = Array.prototype.splice; | |
a = "undefined" != typeof exports ? exports : b.Backbone = {}, | |
a.VERSION = "0.9.2"; | |
var f = b._; | |
f || "undefined" == typeof require || (f = require("underscore")); | |
var g = b.jQuery || b.Zepto || b.ender; | |
a.setDomLibrary = function(a) { | |
g = a | |
} | |
, | |
a.noConflict = function() { | |
return b.Backbone = c, | |
this | |
} | |
, | |
a.emulateHTTP = !1, | |
a.emulateJSON = !1; | |
var h = /\s+/ | |
, i = a.Events = { | |
on: function(a, b, c) { | |
var d, e, f, g, i; | |
if (!b) | |
return this; | |
for (a = a.split(h), | |
d = this._callbacks || (this._callbacks = {}); e = a.shift(); ) | |
i = d[e], | |
f = i ? i.tail : {}, | |
f.next = g = {}, | |
f.context = c, | |
f.callback = b, | |
d[e] = { | |
tail: g, | |
next: i ? i.next : f | |
}; | |
return this | |
}, | |
off: function(a, b, c) { | |
var d, e, g, i, j, k; | |
if (e = this._callbacks) { | |
if (!(a || b || c)) | |
return delete this._callbacks, | |
this; | |
for (a = a ? a.split(h) : f.keys(e); d = a.shift(); ) | |
if (g = e[d], | |
delete e[d], | |
g && (b || c)) | |
for (i = g.tail; (g = g.next) !== i; ) | |
j = g.callback, | |
k = g.context, | |
(b && j !== b || c && k !== c) && this.on(d, j, k); | |
return this | |
} | |
}, | |
trigger: function(a) { | |
var b, c, e, f, g, i, j; | |
if (!(e = this._callbacks)) | |
return this; | |
for (i = e.all, | |
a = a.split(h), | |
j = d.call(arguments, 1); b = a.shift(); ) { | |
if (c = e[b]) | |
for (f = c.tail; (c = c.next) !== f; ) | |
c.callback.apply(c.context || this, j); | |
if (c = i) | |
for (f = c.tail, | |
g = [b].concat(j); (c = c.next) !== f; ) | |
c.callback.apply(c.context || this, g) | |
} | |
return this | |
} | |
}; | |
i.bind = i.on, | |
i.unbind = i.off; | |
var j = a.Model = function(a, b) { | |
var c; | |
a || (a = {}), | |
b && b.parse && (a = this.parse(a)), | |
(c = A(this, "defaults")) && (a = f.extend({}, c, a)), | |
b && b.collection && (this.collection = b.collection), | |
this.attributes = {}, | |
this._escapedAttributes = {}, | |
this.cid = f.uniqueId("c"), | |
this.changed = {}, | |
this._silent = {}, | |
this._pending = {}, | |
this.set(a, { | |
silent: !0 | |
}), | |
this.changed = {}, | |
this._silent = {}, | |
this._pending = {}, | |
this._previousAttributes = f.clone(this.attributes), | |
this.initialize.apply(this, arguments) | |
} | |
; | |
f.extend(j.prototype, i, { | |
changed: null, | |
_silent: null, | |
_pending: null, | |
idAttribute: "id", | |
initialize: function() {}, | |
toJSON: function(a) { | |
return f.clone(this.attributes) | |
}, | |
get: function(a) { | |
return this.attributes[a] | |
}, | |
escape: function(a) { | |
var b; | |
if (b = this._escapedAttributes[a]) | |
return b; | |
var c = this.get(a); | |
return this._escapedAttributes[a] = f.escape(null == c ? "" : "" + c) | |
}, | |
has: function(a) { | |
return null != this.get(a) | |
}, | |
set: function(a, b, c) { | |
var d, e, g; | |
if (f.isObject(a) || null == a ? (d = a, | |
c = b) : (d = {}, | |
d[a] = b), | |
c || (c = {}), | |
!d) | |
return this; | |
if (d instanceof j && (d = d.attributes), | |
c.unset) | |
for (e in d) | |
d[e] = void 0; | |
if (!this._validate(d, c)) | |
return !1; | |
this.idAttribute in d && (this.id = d[this.idAttribute]); | |
var h = c.changes = {} | |
, i = this.attributes | |
, k = this._escapedAttributes | |
, l = this._previousAttributes || {}; | |
for (e in d) | |
g = d[e], | |
(!f.isEqual(i[e], g) || c.unset && f.has(i, e)) && (delete k[e], | |
(c.silent ? this._silent : h)[e] = !0), | |
c.unset ? delete i[e] : i[e] = g, | |
f.isEqual(l[e], g) && f.has(i, e) == f.has(l, e) ? (delete this.changed[e], | |
delete this._pending[e]) : (this.changed[e] = g, | |
c.silent || (this._pending[e] = !0)); | |
return c.silent || this.change(c), | |
this | |
}, | |
unset: function(a, b) { | |
return (b || (b = {})).unset = !0, | |
this.set(a, null, b) | |
}, | |
clear: function(a) { | |
return (a || (a = {})).unset = !0, | |
this.set(f.clone(this.attributes), a) | |
}, | |
fetch: function(b) { | |
b = b ? f.clone(b) : {}; | |
var c = this | |
, d = b.success; | |
return b.success = function(a, e, f) { | |
return !!c.set(c.parse(a, f), b) && void (d && d(c, a)) | |
} | |
, | |
b.error = a.wrapError(b.error, c, b), | |
(this.sync || a.sync).call(this, "read", this, b) | |
}, | |
save: function(b, c, d) { | |
var e, g; | |
if (f.isObject(b) || null == b ? (e = b, | |
d = c) : (e = {}, | |
e[b] = c), | |
d = d ? f.clone(d) : {}, | |
d.wait) { | |
if (!this._validate(e, d)) | |
return !1; | |
g = f.clone(this.attributes) | |
} | |
var h = f.extend({}, d, { | |
silent: !0 | |
}); | |
if (e && !this.set(e, d.wait ? h : d)) | |
return !1; | |
var i = this | |
, j = d.success; | |
d.success = function(a, b, c) { | |
var g = i.parse(a, c); | |
return d.wait && (delete d.wait, | |
g = f.extend(e || {}, g)), | |
!!i.set(g, d) && void (j ? j(i, a) : i.trigger("sync", i, a, d)) | |
} | |
, | |
d.error = a.wrapError(d.error, i, d); | |
var k = this.isNew() ? "create" : "update" | |
, l = (this.sync || a.sync).call(this, k, this, d); | |
return d.wait && this.set(g, h), | |
l | |
}, | |
destroy: function(b) { | |
b = b ? f.clone(b) : {}; | |
var c = this | |
, d = b.success | |
, e = function() { | |
c.trigger("destroy", c, c.collection, b) | |
}; | |
if (this.isNew()) | |
return e(), | |
!1; | |
b.success = function(a) { | |
b.wait && e(), | |
d ? d(c, a) : c.trigger("sync", c, a, b) | |
} | |
, | |
b.error = a.wrapError(b.error, c, b); | |
var g = (this.sync || a.sync).call(this, "delete", this, b); | |
return b.wait || e(), | |
g | |
}, | |
url: function() { | |
var a = A(this, "urlRoot") || A(this.collection, "url") || B(); | |
return this.isNew() ? a : a + ("/" == a.charAt(a.length - 1) ? "" : "/") + encodeURIComponent(this.id) | |
}, | |
parse: function(a, b) { | |
return a | |
}, | |
clone: function() { | |
return new this.constructor(this.attributes) | |
}, | |
isNew: function() { | |
return null == this.id | |
}, | |
change: function(a) { | |
a || (a = {}); | |
var b = this._changing; | |
this._changing = !0; | |
for (var c in this._silent) | |
this._pending[c] = !0; | |
var d = f.extend({}, a.changes, this._silent); | |
this._silent = {}; | |
for (var c in d) | |
this.trigger("change:" + c, this, this.get(c), a); | |
if (b) | |
return this; | |
for (; !f.isEmpty(this._pending); ) { | |
this._pending = {}, | |
this.trigger("change", this, a); | |
for (var c in this.changed) | |
this._pending[c] || this._silent[c] || delete this.changed[c]; | |
this._previousAttributes = f.clone(this.attributes) | |
} | |
return this._changing = !1, | |
this | |
}, | |
hasChanged: function(a) { | |
return arguments.length ? f.has(this.changed, a) : !f.isEmpty(this.changed) | |
}, | |
changedAttributes: function(a) { | |
if (!a) | |
return !!this.hasChanged() && f.clone(this.changed); | |
var b, c = !1, d = this._previousAttributes; | |
for (var e in a) | |
f.isEqual(d[e], b = a[e]) || ((c || (c = {}))[e] = b); | |
return c | |
}, | |
previous: function(a) { | |
return arguments.length && this._previousAttributes ? this._previousAttributes[a] : null | |
}, | |
previousAttributes: function() { | |
return f.clone(this._previousAttributes) | |
}, | |
isValid: function() { | |
return !this.validate(this.attributes) | |
}, | |
_validate: function(a, b) { | |
if (b.silent || !this.validate) | |
return !0; | |
a = f.extend({}, this.attributes, a); | |
var c = this.validate(a, b); | |
return !c || (b && b.error ? b.error(this, c, b) : this.trigger("error", this, c, b), | |
!1) | |
} | |
}); | |
var k = a.Collection = function(a, b) { | |
b || (b = {}), | |
b.model && (this.model = b.model), | |
b.comparator && (this.comparator = b.comparator), | |
this._reset(), | |
this.initialize.apply(this, arguments), | |
a && this.reset(a, { | |
silent: !0, | |
parse: b.parse | |
}) | |
} | |
; | |
f.extend(k.prototype, i, { | |
model: j, | |
initialize: function() {}, | |
toJSON: function(a) { | |
return this.map(function(b) { | |
return b.toJSON(a) | |
}) | |
}, | |
add: function(a, b) { | |
var c, d, g, h, i, j, k = {}, l = {}, m = []; | |
for (b || (b = {}), | |
a = f.isArray(a) ? a.slice() : [a], | |
c = 0, | |
g = a.length; c < g; c++) { | |
if (!(h = a[c] = this._prepareModel(a[c], b))) | |
throw new Error("Can't add an invalid model to a collection"); | |
i = h.cid, | |
j = h.id, | |
k[i] || this._byCid[i] || null != j && (l[j] || this._byId[j]) ? m.push(c) : k[i] = l[j] = h | |
} | |
for (c = m.length; c--; ) | |
a.splice(m[c], 1); | |
for (c = 0, | |
g = a.length; c < g; c++) | |
(h = a[c]).on("all", this._onModelEvent, this), | |
this._byCid[h.cid] = h, | |
null != h.id && (this._byId[h.id] = h); | |
if (this.length += g, | |
d = null != b.at ? b.at : this.models.length, | |
e.apply(this.models, [d, 0].concat(a)), | |
this.comparator && this.sort({ | |
silent: !0 | |
}), | |
b.silent) | |
return this; | |
for (c = 0, | |
g = this.models.length; c < g; c++) | |
k[(h = this.models[c]).cid] && (b.index = c, | |
h.trigger("add", h, this, b)); | |
return this | |
}, | |
remove: function(a, b) { | |
var c, d, e, g; | |
for (b || (b = {}), | |
a = f.isArray(a) ? a.slice() : [a], | |
c = 0, | |
d = a.length; c < d; c++) | |
g = this.getByCid(a[c]) || this.get(a[c]), | |
g && (delete this._byId[g.id], | |
delete this._byCid[g.cid], | |
e = this.indexOf(g), | |
this.models.splice(e, 1), | |
this.length--, | |
b.silent || (b.index = e, | |
g.trigger("remove", g, this, b)), | |
this._removeReference(g)); | |
return this | |
}, | |
push: function(a, b) { | |
return a = this._prepareModel(a, b), | |
this.add(a, b), | |
a | |
}, | |
pop: function(a) { | |
var b = this.at(this.length - 1); | |
return this.remove(b, a), | |
b | |
}, | |
unshift: function(a, b) { | |
return a = this._prepareModel(a, b), | |
this.add(a, f.extend({ | |
at: 0 | |
}, b)), | |
a | |
}, | |
shift: function(a) { | |
var b = this.at(0); | |
return this.remove(b, a), | |
b | |
}, | |
get: function(a) { | |
if (null != a) | |
return this._byId[null != a.id ? a.id : a] | |
}, | |
getByCid: function(a) { | |
return a && this._byCid[a.cid || a] | |
}, | |
at: function(a) { | |
return this.models[a] | |
}, | |
where: function(a) { | |
return f.isEmpty(a) ? [] : this.filter(function(b) { | |
for (var c in a) | |
if (a[c] !== b.get(c)) | |
return !1; | |
return !0 | |
}) | |
}, | |
sort: function(a) { | |
if (a || (a = {}), | |
!this.comparator) | |
throw new Error("Cannot sort a set without a comparator"); | |
var b = f.bind(this.comparator, this); | |
return 1 == this.comparator.length ? this.models = this.sortBy(b) : this.models.sort(b), | |
a.silent || this.trigger("reset", this, a), | |
this | |
}, | |
pluck: function(a) { | |
return f.map(this.models, function(b) { | |
return b.get(a) | |
}) | |
}, | |
reset: function(a, b) { | |
a || (a = []), | |
b || (b = {}); | |
for (var c = 0, d = this.models.length; c < d; c++) | |
this._removeReference(this.models[c]); | |
return this._reset(), | |
this.add(a, f.extend({ | |
silent: !0 | |
}, b)), | |
b.silent || this.trigger("reset", this, b), | |
this | |
}, | |
fetch: function(b) { | |
b = b ? f.clone(b) : {}, | |
void 0 === b.parse && (b.parse = !0); | |
var c = this | |
, d = b.success; | |
return b.success = function(a, e, f) { | |
c[b.add ? "add" : "reset"](c.parse(a, f), b), | |
d && d(c, a) | |
} | |
, | |
b.error = a.wrapError(b.error, c, b), | |
(this.sync || a.sync).call(this, "read", this, b) | |
}, | |
create: function(a, b) { | |
var c = this; | |
if (b = b ? f.clone(b) : {}, | |
a = this._prepareModel(a, b), | |
!a) | |
return !1; | |
b.wait || c.add(a, b); | |
var d = b.success; | |
return b.success = function(e, f, g) { | |
b.wait && c.add(e, b), | |
d ? d(e, f) : e.trigger("sync", a, f, b) | |
} | |
, | |
a.save(null, b), | |
a | |
}, | |
parse: function(a, b) { | |
return a | |
}, | |
chain: function() { | |
return f(this.models).chain() | |
}, | |
_reset: function(a) { | |
this.length = 0, | |
this.models = [], | |
this._byId = {}, | |
this._byCid = {} | |
}, | |
_prepareModel: function(a, b) { | |
if (b || (b = {}), | |
a instanceof j) | |
a.collection || (a.collection = this); | |
else { | |
var c = a; | |
b.collection = this, | |
a = new this.model(c,b), | |
a._validate(a.attributes, b) || (a = !1) | |
} | |
return a | |
}, | |
_removeReference: function(a) { | |
this == a.collection && delete a.collection, | |
a.off("all", this._onModelEvent, this) | |
}, | |
_onModelEvent: function(a, b, c, d) { | |
("add" != a && "remove" != a || c == this) && ("destroy" == a && this.remove(b, d), | |
b && a === "change:" + b.idAttribute && (delete this._byId[b.previous(b.idAttribute)], | |
this._byId[b.id] = b), | |
this.trigger.apply(this, arguments)) | |
} | |
}); | |
var l = ["forEach", "each", "map", "reduce", "reduceRight", "find", "detect", "filter", "select", "reject", "every", "all", "some", "any", "include", "contains", "invoke", "max", "min", "sortBy", "sortedIndex", "toArray", "size", "first", "initial", "rest", "last", "without", "indexOf", "shuffle", "lastIndexOf", "isEmpty", "groupBy"]; | |
f.each(l, function(a) { | |
k.prototype[a] = function() { | |
return f[a].apply(f, [this.models].concat(f.toArray(arguments))) | |
} | |
}); | |
var m = a.Router = function(a) { | |
a || (a = {}), | |
a.routes && (this.routes = a.routes), | |
this._bindRoutes(), | |
this.initialize.apply(this, arguments) | |
} | |
, n = /:\w+/g | |
, o = /\*\w+/g | |
, p = /[-[\]{}()+?.,\\^$|#\s]/g; | |
f.extend(m.prototype, i, { | |
initialize: function() {}, | |
route: function(b, c, d) { | |
return a.history || (a.history = new q), | |
f.isRegExp(b) || (b = this._routeToRegExp(b)), | |
d || (d = this[c]), | |
a.history.route(b, f.bind(function(e) { | |
var f = this._extractParameters(b, e); | |
d && d.apply(this, f), | |
this.trigger.apply(this, ["route:" + c].concat(f)), | |
a.history.trigger("route", this, c, f) | |
}, this)), | |
this | |
}, | |
navigate: function(b, c) { | |
a.history.navigate(b, c) | |
}, | |
_bindRoutes: function() { | |
if (this.routes) { | |
var a = []; | |
for (var b in this.routes) | |
a.unshift([b, this.routes[b]]); | |
for (var c = 0, d = a.length; c < d; c++) | |
this.route(a[c][0], a[c][1], this[a[c][1]]) | |
} | |
}, | |
_routeToRegExp: function(a) { | |
return a = a.replace(p, "\\$&").replace(n, "([^/]+)").replace(o, "(.*?)"), | |
new RegExp("^" + a + "$") | |
}, | |
_extractParameters: function(a, b) { | |
return a.exec(b).slice(1) | |
} | |
}); | |
var q = a.History = function() { | |
this.handlers = [], | |
f.bindAll(this, "checkUrl") | |
} | |
, r = /^[#\/]/ | |
, s = /msie [\w.]+/; | |
q.started = !1, | |
f.extend(q.prototype, i, { | |
interval: 50, | |
getHash: function(a) { | |
var b = a ? a.location : window.location | |
, c = b.href.match(/#(.*)$/); | |
return c ? c[1] : "" | |
}, | |
getFragment: function(a, b) { | |
if (null == a) | |
if (this._hasPushState || b) { | |
a = window.location.pathname; | |
var c = window.location.search; | |
c && (a += c) | |
} else | |
a = this.getHash(); | |
return a.indexOf(this.options.root) || (a = a.substr(this.options.root.length)), | |
a.replace(r, "") | |
}, | |
start: function(a) { | |
if (q.started) | |
throw new Error("Backbone.history has already been started"); | |
q.started = !0, | |
this.options = f.extend({}, { | |
root: "/" | |
}, this.options, a), | |
this._wantsHashChange = this.options.hashChange !== !1, | |
this._wantsPushState = !!this.options.pushState, | |
this._hasPushState = !!(this.options.pushState && window.history && window.history.pushState); | |
var b = this.getFragment() | |
, c = document.documentMode | |
, d = s.exec(navigator.userAgent.toLowerCase()) && (!c || c <= 7); | |
d && (this.iframe = g('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow, | |
this.navigate(b)), | |
this._hasPushState ? g(window).bind("popstate", this.checkUrl) : this._wantsHashChange && "onhashchange"in window && !d ? g(window).bind("hashchange", this.checkUrl) : this._wantsHashChange && (this._checkUrlInterval = setInterval(this.checkUrl, this.interval)), | |
this.fragment = b; | |
var e = window.location | |
, h = e.pathname == this.options.root; | |
return this._wantsHashChange && this._wantsPushState && !this._hasPushState && !h ? (this.fragment = this.getFragment(null, !0), | |
window.location.replace(this.options.root + "#" + this.fragment), | |
!0) : (this._wantsPushState && this._hasPushState && h && e.hash && (this.fragment = this.getHash().replace(r, ""), | |
window.history.replaceState({}, document.title, e.protocol + "//" + e.host + this.options.root + this.fragment)), | |
this.options.silent ? void 0 : this.loadUrl()) | |
}, | |
stop: function() { | |
g(window).unbind("popstate", this.checkUrl).unbind("hashchange", this.checkUrl), | |
clearInterval(this._checkUrlInterval), | |
q.started = !1 | |
}, | |
route: function(a, b) { | |
this.handlers.unshift({ | |
route: a, | |
callback: b | |
}) | |
}, | |
checkUrl: function(a) { | |
var b = this.getFragment(); | |
return b == this.fragment && this.iframe && (b = this.getFragment(this.getHash(this.iframe))), | |
b != this.fragment && (this.iframe && this.navigate(b), | |
void (this.loadUrl() || this.loadUrl(this.getHash()))) | |
}, | |
loadUrl: function(a) { | |
var b = this.fragment = this.getFragment(a) | |
, c = f.any(this.handlers, function(a) { | |
if (a.route.test(b)) | |
return a.callback(b), | |
!0 | |
}); | |
return c | |
}, | |
navigate: function(a, b) { | |
if (!q.started) | |
return !1; | |
b && b !== !0 || (b = { | |
trigger: b | |
}); | |
var c = (a || "").replace(r, ""); | |
this.fragment != c && (this._hasPushState ? (0 != c.indexOf(this.options.root) && (c = this.options.root + c), | |
this.fragment = c, | |
window.history[b.replace ? "replaceState" : "pushState"]({}, document.title, c)) : this._wantsHashChange ? (this.fragment = c, | |
this._updateHash(window.location, c, b.replace), | |
this.iframe && c != this.getFragment(this.getHash(this.iframe)) && (b.replace || this.iframe.document.open().close(), | |
this._updateHash(this.iframe.location, c, b.replace))) : window.location.assign(this.options.root + a), | |
b.trigger && this.loadUrl(a)) | |
}, | |
_updateHash: function(a, b, c) { | |
c ? a.replace(a.toString().replace(/(javascript:|#).*$/, "") + "#" + b) : a.hash = b | |
} | |
}); | |
var t = a.View = function(a) { | |
this.cid = f.uniqueId("view"), | |
this._configure(a || {}), | |
this._ensureElement(), | |
this.initialize.apply(this, arguments), | |
this.delegateEvents() | |
} | |
, u = /^(\S+)\s*(.*)$/ | |
, v = ["model", "collection", "el", "id", "attributes", "className", "tagName"]; | |
f.extend(t.prototype, i, { | |
tagName: "div", | |
$: function(a) { | |
return this.$el.find(a) | |
}, | |
initialize: function() {}, | |
render: function() { | |
return this | |
}, | |
remove: function() { | |
return this.$el.remove(), | |
this | |
}, | |
make: function(a, b, c) { | |
var d = document.createElement(a); | |
return b && g(d).attr(b), | |
c && g(d).html(c), | |
d | |
}, | |
setElement: function(a, b) { | |
return this.$el && this.undelegateEvents(), | |
this.$el = a instanceof g ? a : g(a), | |
this.el = this.$el[0], | |
b !== !1 && this.delegateEvents(), | |
this | |
}, | |
delegateEvents: function(a) { | |
if (a || (a = A(this, "events"))) { | |
this.undelegateEvents(); | |
for (var b in a) { | |
var c = a[b]; | |
if (f.isFunction(c) || (c = this[a[b]]), | |
!c) | |
throw new Error('Method "' + a[b] + '" does not exist'); | |
var d = b.match(u) | |
, e = d[1] | |
, g = d[2]; | |
c = f.bind(c, this), | |
e += ".delegateEvents" + this.cid, | |
"" === g ? this.$el.bind(e, c) : this.$el.delegate(g, e, c) | |
} | |
} | |
}, | |
undelegateEvents: function() { | |
this.$el.unbind(".delegateEvents" + this.cid) | |
}, | |
_configure: function(a) { | |
this.options && (a = f.extend({}, this.options, a)); | |
for (var b = 0, c = v.length; b < c; b++) { | |
var d = v[b]; | |
a[d] && (this[d] = a[d]) | |
} | |
this.options = a | |
}, | |
_ensureElement: function() { | |
if (this.el) | |
this.setElement(this.el, !1); | |
else { | |
var a = A(this, "attributes") || {}; | |
this.id && (a.id = this.id), | |
this.className && (a["class"] = this.className), | |
this.setElement(this.make(this.tagName, a), !1) | |
} | |
} | |
}); | |
var w = function(a, b) { | |
var c = z(this, a, b); | |
return c.extend = this.extend, | |
c | |
}; | |
j.extend = k.extend = m.extend = t.extend = w; | |
var x = { | |
create: "POST", | |
update: "PUT", | |
"delete": "DELETE", | |
read: "GET" | |
}; | |
a.sync = function(b, c, d) { | |
var e = x[b]; | |
d || (d = {}); | |
var h = { | |
type: e, | |
dataType: "json" | |
}; | |
return d.url || (h.url = A(c, "url") || B()), | |
d.data || !c || "create" != b && "update" != b || (h.contentType = "application/json", | |
h.data = JSON.stringify(c.toJSON())), | |
a.emulateJSON && (h.contentType = "application/x-www-form-urlencoded", | |
h.data = h.data ? { | |
model: h.data | |
} : {}), | |
a.emulateHTTP && ("PUT" !== e && "DELETE" !== e || (a.emulateJSON && (h.data._method = e), | |
h.type = "POST", | |
h.beforeSend = function(a) { | |
a.setRequestHeader("X-HTTP-Method-Override", e) | |
} | |
)), | |
"GET" === h.type || a.emulateJSON || (h.processData = !1), | |
g.ajax(f.extend(h, d)) | |
} | |
, | |
a.wrapError = function(a, b, c) { | |
return function(d, e) { | |
e = d === b ? e : d, | |
a ? a(b, e, c) : b.trigger("error", b, e, c) | |
} | |
} | |
; | |
var y = function() {} | |
, z = function(a, b, c) { | |
var d; | |
return d = b && b.hasOwnProperty("constructor") ? b.constructor : function() { | |
a.apply(this, arguments) | |
} | |
, | |
f.extend(d, a), | |
y.prototype = a.prototype, | |
d.prototype = new y, | |
b && f.extend(d.prototype, b), | |
c && f.extend(d, c), | |
d.prototype.constructor = d, | |
d.__super__ = a.prototype, | |
d | |
} | |
, A = function(a, b) { | |
return a && a[b] ? f.isFunction(a[b]) ? a[b]() : a[b] : null | |
} | |
, B = function() { | |
throw new Error('A "url" property or function must be specified') | |
} | |
} | |
.call(this), | |
function(a) { | |
a.fn.a0q = function(b) { | |
function c(a) { | |
var b, c, d, e, f, g, h, i = "", j = 0; | |
do | |
b = a.source.charCodeAt(j++), | |
c = a.source.charCodeAt(j++), | |
d = a.source.charCodeAt(j++), | |
e = b >> 2, | |
f = (3 & b) << 4 | c >> 4, | |
g = (15 & c) << 2 | d >> 6, | |
h = 63 & d, | |
isNaN(c) ? g = h = 64 : isNaN(d) && (h = 64), | |
i += a.b64Str.charAt(e) + a.b64Str.charAt(f) + a.b64Str.charAt(g) + a.b64Str.charAt(h); | |
while (j < a.source.length);return i | |
} | |
function d(a) { | |
var b, c, d, e, f, g, h, i = "", j = 0, k = new RegExp("[^A-Za-z0-9" + a.b64Str.substr(-3) + "]","g"); | |
a.source = a.source.replace(k, ""); | |
do | |
e = a.b64Str.indexOf(a.source.charAt(j++)), | |
f = a.b64Str.indexOf(a.source.charAt(j++)), | |
g = a.b64Str.indexOf(a.source.charAt(j++)), | |
h = a.b64Str.indexOf(a.source.charAt(j++)), | |
b = e << 2 | f >> 4, | |
c = (15 & f) << 4 | g >> 2, | |
d = (3 & g) << 6 | h, | |
i += String.fromCharCode(b), | |
64 != g && (i += String.fromCharCode(c)), | |
64 != h && (i += String.fromCharCode(d)); | |
while (j < a.source.length);return i | |
} | |
function e(a) { | |
function b(b) { | |
for (var c = a.hexcase ? "0123456789ABCDEF" : "0123456789abcdef", d = "", e = 0; e < 4 * b.length; e++) | |
d += c.charAt(b[e >> 2] >> e % 4 * 8 + 4 & 15) + c.charAt(b[e >> 2] >> e % 4 * 8 & 15); | |
return d | |
} | |
function c(b) { | |
for (var c = Array(), d = (1 << a.chrsz) - 1, e = 0; e < b.length * a.chrsz; e += a.chrsz) | |
c[e >> 5] |= (b.charCodeAt(e / a.chrsz) & d) << e % 32; | |
return c | |
} | |
function d(a, b) { | |
return a << b | a >>> 32 - b | |
} | |
function e(a, b, c, e, g, h) { | |
return f(d(f(f(b, a), f(e, h)), g), c) | |
} | |
function g(a, b, c, d, f, g, h) { | |
return e(b & c | ~b & d, a, b, f, g, h) | |
} | |
function h(a, b, c, d, f, g, h) { | |
return e(b & d | c & ~d, a, b, f, g, h) | |
} | |
function i(a, b, c, d, f, g, h) { | |
return e(b ^ c ^ d, a, b, f, g, h) | |
} | |
function j(a, b, c, d, f, g, h) { | |
return e(c ^ (b | ~d), a, b, f, g, h) | |
} | |
function k(a, b) { | |
a[b >> 5] |= 128 << b % 32, | |
a[(b + 64 >>> 9 << 4) + 14] = b; | |
for (var c = 1732584193, d = -271733879, e = -1732584194, k = 271733878, l = 0; l < a.length; l += 16) { | |
var m = c | |
, n = d | |
, o = e | |
, p = k; | |
c = g(c, d, e, k, a[l + 0], 7, -680876936), | |
k = g(k, c, d, e, a[l + 1], 12, -389564586), | |
e = g(e, k, c, d, a[l + 2], 17, 606105819), | |
d = g(d, e, k, c, a[l + 3], 22, -1044525330), | |
c = g(c, d, e, k, a[l + 4], 7, -176418897), | |
k = g(k, c, d, e, a[l + 5], 12, 1200080426), | |
e = g(e, k, c, d, a[l + 6], 17, -1473231341), | |
d = g(d, e, k, c, a[l + 7], 22, -45705983), | |
c = g(c, d, e, k, a[l + 8], 7, 1770035416), | |
k = g(k, c, d, e, a[l + 9], 12, -1958414417), | |
e = g(e, k, c, d, a[l + 10], 17, -42063), | |
d = g(d, e, k, c, a[l + 11], 22, -1990404162), | |
c = g(c, d, e, k, a[l + 12], 7, 1804603682), | |
k = g(k, c, d, e, a[l + 13], 12, -40341101), | |
e = g(e, k, c, d, a[l + 14], 17, -1502002290), | |
d = g(d, e, k, c, a[l + 15], 22, 1236535329), | |
c = h(c, d, e, k, a[l + 1], 5, -165796510), | |
k = h(k, c, d, e, a[l + 6], 9, -1069501632), | |
e = h(e, k, c, d, a[l + 11], 14, 643717713), | |
d = h(d, e, k, c, a[l + 0], 20, -373897302), | |
c = h(c, d, e, k, a[l + 5], 5, -701558691), | |
k = h(k, c, d, e, a[l + 10], 9, 38016083), | |
e = h(e, k, c, d, a[l + 15], 14, -660478335), | |
d = h(d, e, k, c, a[l + 4], 20, -405537848), | |
c = h(c, d, e, k, a[l + 9], 5, 568446438), | |
k = h(k, c, d, e, a[l + 14], 9, -1019803690), | |
e = h(e, k, c, d, a[l + 3], 14, -187363961), | |
d = h(d, e, k, c, a[l + 8], 20, 1163531501), | |
c = h(c, d, e, k, a[l + 13], 5, -1444681467), | |
k = h(k, c, d, e, a[l + 2], 9, -51403784), | |
e = h(e, k, c, d, a[l + 7], 14, 1735328473), | |
d = h(d, e, k, c, a[l + 12], 20, -1926607734), | |
c = i(c, d, e, k, a[l + 5], 4, -378558), | |
k = i(k, c, d, e, a[l + 8], 11, -2022574463), | |
e = i(e, k, c, d, a[l + 11], 16, 1839030562), | |
d = i(d, e, k, c, a[l + 14], 23, -35309556), | |
c = i(c, d, e, k, a[l + 1], 4, -1530992060), | |
k = i(k, c, d, e, a[l + 4], 11, 1272893353), | |
e = i(e, k, c, d, a[l + 7], 16, -155497632), | |
d = i(d, e, k, c, a[l + 10], 23, -1094730640), | |
c = i(c, d, e, k, a[l + 13], 4, 681279174), | |
k = i(k, c, d, e, a[l + 0], 11, -358537222), | |
e = i(e, k, c, d, a[l + 3], 16, -722521979), | |
d = i(d, e, k, c, a[l + 6], 23, 76029189), | |
c = i(c, d, e, k, a[l + 9], 4, -640364487), | |
k = i(k, c, d, e, a[l + 12], 11, -421815835), | |
e = i(e, k, c, d, a[l + 15], 16, 530742520), | |
d = i(d, e, k, c, a[l + 2], 23, -995338651), | |
c = j(c, d, e, k, a[l + 0], 6, -198630844), | |
k = j(k, c, d, e, a[l + 7], 10, 1126891415), | |
e = j(e, k, c, d, a[l + 14], 15, -1416354905), | |
d = j(d, e, k, c, a[l + 5], 21, -57434055), | |
c = j(c, d, e, k, a[l + 12], 6, 1700485571), | |
k = j(k, c, d, e, a[l + 3], 10, -1894986606), | |
e = j(e, k, c, d, a[l + 10], 15, -1051523), | |
d = j(d, e, k, c, a[l + 1], 21, -2054922799), | |
c = j(c, d, e, k, a[l + 8], 6, 1873313359), | |
k = j(k, c, d, e, a[l + 15], 10, -30611744), | |
e = j(e, k, c, d, a[l + 6], 15, -1560198380), | |
d = j(d, e, k, c, a[l + 13], 21, 1309151649), | |
c = j(c, d, e, k, a[l + 4], 6, -145523070), | |
k = j(k, c, d, e, a[l + 11], 10, -1120210379), | |
e = j(e, k, c, d, a[l + 2], 15, 718787259), | |
d = j(d, e, k, c, a[l + 9], 21, -343485551), | |
c = f(c, m), | |
d = f(d, n), | |
e = f(e, o), | |
k = f(k, p) | |
} | |
return Array(c, d, e, k) | |
} | |
return b(k(c(a.source), a.source.length * a.chrsz)) | |
} | |
function f(a, b) { | |
var c = (65535 & a) + (65535 & b) | |
, d = (a >> 16) + (b >> 16) + (c >> 16); | |
return d << 16 | 65535 & c | |
} | |
function g(a) { | |
function b(a, b) { | |
a[b >> 5] |= 128 << 24 - b % 32, | |
a[(b + 64 >> 9 << 4) + 15] = b; | |
for (var g = Array(80), h = 1732584193, i = -271733879, j = -1732584194, k = 271733878, l = -1009589776, m = 0; m < a.length; m += 16) { | |
for (var n = h, o = i, p = j, q = k, r = l, s = 0; s < 80; s++) { | |
s < 16 ? g[s] = a[m + s] : g[s] = c(g[s - 3] ^ g[s - 8] ^ g[s - 14] ^ g[s - 16], 1); | |
var t = f(f(c(h, 5), e(s, i, j, k)), f(f(l, g[s]), d(s))); | |
l = k, | |
k = j, | |
j = c(i, 30), | |
i = h, | |
h = t | |
} | |
h = f(h, n), | |
i = f(i, o), | |
j = f(j, p), | |
k = f(k, q), | |
l = f(l, r) | |
} | |
return Array(h, i, j, k, l) | |
} | |
function c(a, b) { | |
return a << b | a >>> 32 - b | |
} | |
function d(a) { | |
return a < 20 ? 1518500249 : a < 40 ? 1859775393 : a < 60 ? -1894007588 : -899497514 | |
} | |
function e(a, b, c, d) { | |
return a < 20 ? b & c | ~b & d : a < 40 ? b ^ c ^ d : a < 60 ? b & c | b & d | c & d : b ^ c ^ d | |
} | |
function g(b) { | |
for (var c = a.hexcase ? "0123456789ABCDEF" : "0123456789abcdef", d = "", e = 0; e < 4 * b.length; e++) | |
d += c.charAt(b[e >> 2] >> 8 * (3 - e % 4) + 4 & 15) + c.charAt(b[e >> 2] >> 8 * (3 - e % 4) & 15); | |
return d | |
} | |
function h(b) { | |
for (var c = Array(), d = (1 << a.chrsz) - 1, e = 0; e < b.length * a.chrsz; e += a.chrsz) | |
c[e >> 5] |= (b.charCodeAt(e / a.chrsz) & d) << 32 - a.chrsz - e % 32; | |
return c | |
} | |
return g(b(h(a.source), a.source.length * a.chrsz)) | |
} | |
function h(a) { | |
function b(a, b) { | |
for (var c = a[0], d = a[1], e = 2654435769, f = 32 * e, g = 0; g != f; ) | |
c += (d << 4 ^ d >>> 5) + d ^ g + b[3 & g], | |
g += e, | |
d += (c << 4 ^ c >>> 5) + c ^ g + b[g >>> 11 & 3]; | |
a[0] = c, | |
a[1] = d | |
} | |
var c, d = new Array(2), e = new Array(4), f = ""; | |
a.source = escape(a.source); | |
for (var c = 0; c < 4; c++) | |
e[c] = j(a.strKey.slice(4 * c, 4 * (c + 1))); | |
for (c = 0; c < a.source.length; c += 8) | |
d[0] = j(a.source.slice(c, c + 4)), | |
d[1] = j(a.source.slice(c + 4, c + 8)), | |
b(d, e), | |
f += k(d[0]) + k(d[1]); | |
return l(f) | |
} | |
function i(a) { | |
function b(a, b) { | |
for (var c = a[0], d = a[1], e = 2654435769, f = 32 * e; 0 != f; ) | |
d -= (c << 4 ^ c >>> 5) + c ^ f + b[f >>> 11 & 3], | |
f -= e, | |
c -= (d << 4 ^ d >>> 5) + d ^ f + b[3 & f]; | |
a[0] = c, | |
a[1] = d | |
} | |
for (var c, d = new Array(2), e = new Array(4), f = "", c = 0; c < 4; c++) | |
e[c] = j(a.strKey.slice(4 * c, 4 * (c + 1))); | |
for (ciphertext = m(a.source), | |
c = 0; c < ciphertext.length; c += 8) | |
d[0] = j(ciphertext.slice(c, c + 4)), | |
d[1] = j(ciphertext.slice(c + 4, c + 8)), | |
b(d, e), | |
f += k(d[0]) + k(d[1]); | |
return f = f.replace(/\0+$/, ""), | |
unescape(f) | |
} | |
function j(a) { | |
for (var b = 0, c = 0; c < 4; c++) | |
b |= a.charCodeAt(c) << 8 * c; | |
return isNaN(b) ? 0 : b | |
} | |
function k(a) { | |
var b = String.fromCharCode(255 & a, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255); | |
return b | |
} | |
function l(a) { | |
return a.replace(/[\0\t\n\v\f\r\xa0'"!]/g, function(a) { | |
return "!" + a.charCodeAt(0) + "!" | |
}) | |
} | |
function m(a) { | |
return a.replace(/!\d\d?\d?!/g, function(a) { | |
return String.fromCharCode(a.slice(1, -1)) | |
}) | |
} | |
var n = { | |
b64Str: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", | |
strKey: "123", | |
method: "md5", | |
source: "", | |
chrsz: 8, | |
hexcase: 0 | |
}; | |
"undefined" == typeof b.urlsafe ? (n.b64Str += "+/=", | |
b.urlsafe = !1) : b.urlsafe ? n.b64Str += "-_=" : n.b64Str += "+/="; | |
var o = a.extend(n, b); | |
if (!o.source) { | |
var p = a(this); | |
if (p.html()) | |
o.source = p.html(); | |
else { | |
if (!p.val()) | |
return alert("Please provide source text"), | |
!1; | |
o.source = p.val() | |
} | |
} | |
if ("md5" == o.method) | |
return e(o); | |
if ("sha1" == o.method) | |
return g(o); | |
if ("a0k" == o.method) | |
return c(o); | |
if ("a0K" == o.method) | |
return d(o); | |
if ("xteaenc" == o.method) | |
return h(o); | |
if ("xteadec" == o.method) | |
return i(o); | |
if ("xteaa0k" == o.method) { | |
var q = h(o); | |
return o.method = "a0k", | |
o.source = q, | |
c(o) | |
} | |
if ("xteaa0K" == o.method) { | |
var r = d(o); | |
return o.method = "xteadec", | |
o.source = r, | |
i(o) | |
} | |
} | |
}(jQuery), | |
parseUri.options = { | |
strictMode: !0, | |
key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"], | |
q: { | |
name: "queryKey", | |
parser: /(?:^|&)([^&=]*)=?([^&]*)/g | |
}, | |
parser: { | |
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, | |
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ | |
} | |
}, | |
function(a) { | |
"use strict"; | |
function b(b) { | |
return !b || void 0 !== b.allowPageScroll || void 0 === b.swipe && void 0 === b.swipeStatus || (b.allowPageScroll = j), | |
void 0 !== b.click && void 0 === b.tap && (b.tap = b.click), | |
b || (b = {}), | |
b = a.extend({}, a.fn.swipe.defaults, b), | |
this.each(function() { | |
var d = a(this) | |
, e = d.data(z); | |
e || (e = new c(this,b), | |
d.data(z, e)) | |
}) | |
} | |
function c(b, c) { | |
function A(b) { | |
if (!(ga() || a(b.target).closest(c.excludedElements, Pa).length > 0)) { | |
var d, e = b.originalEvent ? b.originalEvent : b, f = y ? e.touches[0] : e; | |
return Qa = u, | |
y ? Ra = e.touches.length : b.preventDefault(), | |
Ga = 0, | |
Ha = null, | |
Na = null, | |
Ia = 0, | |
Ja = 0, | |
Ka = 0, | |
La = 1, | |
Ma = 0, | |
Sa = la(), | |
Oa = oa(), | |
ea(), | |
!y || Ra === c.fingers || c.fingers === s || O() ? (ia(0, f), | |
Ta = xa(), | |
2 == Ra && (ia(1, e.touches[1]), | |
Ja = Ka = ra(Sa[0].start, Sa[1].start)), | |
(c.swipeStatus || c.pinchStatus) && (d = H(e, Qa))) : d = !1, | |
d === !1 ? (Qa = x, | |
H(e, Qa), | |
d) : void ha(!0) | |
} | |
} | |
function B(a) { | |
var b = a.originalEvent ? a.originalEvent : a; | |
if (Qa !== w && Qa !== x && !fa()) { | |
var d, e = y ? b.touches[0] : b, f = ja(e); | |
if (Ua = xa(), | |
y && (Ra = b.touches.length), | |
Qa = v, | |
2 == Ra && (0 == Ja ? (ia(1, b.touches[1]), | |
Ja = Ka = ra(Sa[0].start, Sa[1].start)) : (ja(b.touches[1]), | |
Ka = ra(Sa[0].end, Sa[1].end), | |
Na = ta(Sa[0].end, Sa[1].end)), | |
La = sa(Ja, Ka), | |
Ma = Math.abs(Ja - Ka)), | |
Ra === c.fingers || c.fingers === s || !y || O()) { | |
if (Ha = wa(f.start, f.end), | |
M(a, Ha), | |
Ga = ua(f.start, f.end), | |
Ia = qa(), | |
ma(Ha, Ga), | |
(c.swipeStatus || c.pinchStatus) && (d = H(b, Qa)), | |
!c.triggerOnTouchEnd || c.triggerOnTouchLeave) { | |
var g = !0; | |
if (c.triggerOnTouchLeave) { | |
var h = ya(this); | |
g = za(f.end, h) | |
} | |
!c.triggerOnTouchEnd && g ? Qa = G(v) : c.triggerOnTouchLeave && !g && (Qa = G(w)), | |
Qa != x && Qa != w || H(b, Qa) | |
} | |
} else | |
Qa = x, | |
H(b, Qa); | |
d === !1 && (Qa = x, | |
H(b, Qa)) | |
} | |
} | |
function C(a) { | |
var b = a.originalEvent; | |
return y && b.touches.length > 0 ? (da(), | |
!0) : (fa() && (Ra = Wa), | |
a.preventDefault(), | |
Ua = xa(), | |
Ia = qa(), | |
c.triggerOnTouchEnd || 0 == c.triggerOnTouchEnd && Qa === v ? (Qa = w, | |
H(b, Qa)) : !c.triggerOnTouchEnd && V() ? (Qa = w, | |
I(b, Qa, n)) : Qa === v && (Qa = x, | |
H(b, Qa)), | |
void ha(!1)) | |
} | |
function D() { | |
Ra = 0, | |
Ua = 0, | |
Ta = 0, | |
Ja = 0, | |
Ka = 0, | |
La = 1, | |
ea(), | |
ha(!1) | |
} | |
function E(a) { | |
var b = a.originalEvent; | |
c.triggerOnTouchLeave && (Qa = G(w), | |
H(b, Qa)) | |
} | |
function F() { | |
Pa.unbind(Ba, A), | |
Pa.unbind(Fa, D), | |
Pa.unbind(Ca, B), | |
Pa.unbind(Da, C), | |
Ea && Pa.unbind(Ea, E), | |
ha(!1) | |
} | |
function G(a) { | |
var b = a | |
, d = L() | |
, e = J(); | |
return d ? !e || a != v || c.triggerOnTouchEnd && !c.triggerOnTouchLeave ? !e && a == w && c.triggerOnTouchLeave && (b = x) : b = w : b = x, | |
b | |
} | |
function H(a, b) { | |
var c = void 0; | |
return S() ? c = I(a, b, l) : P() && c !== !1 && (c = I(a, b, m)), | |
ba() && c !== !1 ? c = I(a, b, o) : ca() && c !== !1 ? c = I(a, b, p) : aa() && c !== !1 && (c = I(a, b, n)), | |
b === x && D(a), | |
b === w && (y ? 0 == a.touches.length && D(a) : D(a)), | |
c | |
} | |
function I(b, j, k) { | |
var q = void 0; | |
if (k == l) { | |
if (Pa.trigger("swipeStatus", [j, Ha || null, Ga || 0, Ia || 0, Ra]), | |
c.swipeStatus && (q = c.swipeStatus.call(Pa, b, j, Ha || null, Ga || 0, Ia || 0, Ra), | |
q === !1)) | |
return !1; | |
if (j == w && Q()) { | |
if (Pa.trigger("swipe", [Ha, Ga, Ia, Ra]), | |
c.swipe && (q = c.swipe.call(Pa, b, Ha, Ga, Ia, Ra), | |
q === !1)) | |
return !1; | |
switch (Ha) { | |
case d: | |
Pa.trigger("swipeLeft", [Ha, Ga, Ia, Ra]), | |
c.swipeLeft && (q = c.swipeLeft.call(Pa, b, Ha, Ga, Ia, Ra)); | |
break; | |
case e: | |
Pa.trigger("swipeRight", [Ha, Ga, Ia, Ra]), | |
c.swipeRight && (q = c.swipeRight.call(Pa, b, Ha, Ga, Ia, Ra)); | |
break; | |
case f: | |
Pa.trigger("swipeUp", [Ha, Ga, Ia, Ra]), | |
c.swipeUp && (q = c.swipeUp.call(Pa, b, Ha, Ga, Ia, Ra)); | |
break; | |
case g: | |
Pa.trigger("swipeDown", [Ha, Ga, Ia, Ra]), | |
c.swipeDown && (q = c.swipeDown.call(Pa, b, Ha, Ga, Ia, Ra)) | |
} | |
} | |
} | |
if (k == m) { | |
if (Pa.trigger("pinchStatus", [j, Na || null, Ma || 0, Ia || 0, Ra, La]), | |
c.pinchStatus && (q = c.pinchStatus.call(Pa, b, j, Na || null, Ma || 0, Ia || 0, Ra, La), | |
q === !1)) | |
return !1; | |
if (j == w && N()) | |
switch (Na) { | |
case h: | |
Pa.trigger("pinchIn", [Na || null, Ma || 0, Ia || 0, Ra, La]), | |
c.pinchIn && (q = c.pinchIn.call(Pa, b, Na || null, Ma || 0, Ia || 0, Ra, La)); | |
break; | |
case i: | |
Pa.trigger("pinchOut", [Na || null, Ma || 0, Ia || 0, Ra, La]), | |
c.pinchOut && (q = c.pinchOut.call(Pa, b, Na || null, Ma || 0, Ia || 0, Ra, La)) | |
} | |
} | |
return k == n ? j !== x && j !== w || (clearTimeout(Ya), | |
W() && !Z() ? (Xa = xa(), | |
Ya = setTimeout(a.proxy(function() { | |
Xa = null, | |
Pa.trigger("tap", [b.target]), | |
c.tap && (q = c.tap.call(Pa, b, b.target)) | |
}, this), c.doubleTapThreshold)) : (Xa = null, | |
Pa.trigger("tap", [b.target]), | |
c.tap && (q = c.tap.call(Pa, b, b.target)))) : k == o ? j !== x && j !== w || (clearTimeout(Ya), | |
Xa = null, | |
Pa.trigger("doubletap", [b.target]), | |
c.doubleTap && (q = c.doubleTap.call(Pa, b, b.target))) : k == p && (j !== x && j !== w || (clearTimeout(Ya), | |
Xa = null, | |
Pa.trigger("longtap", [b.target]), | |
c.longTap && (q = c.longTap.call(Pa, b, b.target)))), | |
q | |
} | |
function J() { | |
var a = !0; | |
return null !== c.threshold && (a = Ga >= c.threshold), | |
a && null !== c.cancelThreshold && (a = na(Ha) - Ga < c.cancelThreshold), | |
a | |
} | |
function K() { | |
return null === c.pinchThreshold || Ma >= c.pinchThreshold | |
} | |
function L() { | |
var a; | |
return a = !c.maxTimeThreshold || !(Ia >= c.maxTimeThreshold) | |
} | |
function M(a, b) { | |
if (c.allowPageScroll === j || O()) | |
a.preventDefault(); | |
else { | |
var h = c.allowPageScroll === k; | |
switch (b) { | |
case d: | |
(c.swipeLeft && h || !h && c.allowPageScroll != q) && a.preventDefault(); | |
break; | |
case e: | |
(c.swipeRight && h || !h && c.allowPageScroll != q) && a.preventDefault(); | |
break; | |
case f: | |
(c.swipeUp && h || !h && c.allowPageScroll != r) && a.preventDefault(); | |
break; | |
case g: | |
(c.swipeDown && h || !h && c.allowPageScroll != r) && a.preventDefault() | |
} | |
} | |
} | |
function N() { | |
var a = T() | |
, b = U() | |
, c = K(); | |
return a && b && c | |
} | |
function O() { | |
return !!(c.pinchStatus || c.pinchIn || c.pinchOut) | |
} | |
function P() { | |
return !(!N() || !O()) | |
} | |
function Q() { | |
var a = L() | |
, b = J() | |
, c = T() | |
, d = U() | |
, e = d && c && b && a; | |
return e | |
} | |
function R() { | |
return !!(c.swipe || c.swipeStatus || c.swipeLeft || c.swipeRight || c.swipeUp || c.swipeDown) | |
} | |
function S() { | |
return !(!Q() || !R()) | |
} | |
function T() { | |
return Ra === c.fingers || c.fingers === s || !y | |
} | |
function U() { | |
return 0 !== Sa[0].end.x | |
} | |
function V() { | |
return !!c.tap | |
} | |
function W() { | |
return !!c.doubleTap | |
} | |
function X() { | |
return !!c.longTap | |
} | |
function Y() { | |
if (null == Xa) | |
return !1; | |
var a = xa(); | |
return W() && a - Xa <= c.doubleTapThreshold | |
} | |
function Z() { | |
return Y() | |
} | |
function $() { | |
return (1 === Ra || !y) && (isNaN(Ga) || 0 === Ga) | |
} | |
function _() { | |
return Ia > c.longTapThreshold && Ga < t | |
} | |
function aa() { | |
return !(!$() || !V()) | |
} | |
function ba() { | |
return !(!Y() || !W()) | |
} | |
function ca() { | |
return !(!_() || !X()) | |
} | |
function da() { | |
Va = xa(), | |
Wa = event.touches.length + 1 | |
} | |
function ea() { | |
Va = 0, | |
Wa = 0 | |
} | |
function fa() { | |
var a = !1; | |
if (Va) { | |
var b = xa() - Va; | |
b <= c.fingerReleaseThreshold && (a = !0) | |
} | |
return a | |
} | |
function ga() { | |
return !(Pa.data(z + "_intouch") !== !0) | |
} | |
function ha(a) { | |
a === !0 ? (Pa.bind(Ca, B), | |
Pa.bind(Da, C), | |
Ea && Pa.bind(Ea, E)) : (Pa.unbind(Ca, B, !1), | |
Pa.unbind(Da, C, !1), | |
Ea && Pa.unbind(Ea, E, !1)), | |
Pa.data(z + "_intouch", a === !0) | |
} | |
function ia(a, b) { | |
var c = void 0 !== b.identifier ? b.identifier : 0; | |
return Sa[a].identifier = c, | |
Sa[a].start.x = Sa[a].end.x = b.pageX || b.clientX, | |
Sa[a].start.y = Sa[a].end.y = b.pageY || b.clientY, | |
Sa[a] | |
} | |
function ja(a) { | |
var b = void 0 !== a.identifier ? a.identifier : 0 | |
, c = ka(b); | |
return c.end.x = a.pageX || a.clientX, | |
c.end.y = a.pageY || a.clientY, | |
c | |
} | |
function ka(a) { | |
for (var b = 0; b < Sa.length; b++) | |
if (Sa[b].identifier == a) | |
return Sa[b] | |
} | |
function la() { | |
for (var a = [], b = 0; b <= 5; b++) | |
a.push({ | |
start: { | |
x: 0, | |
y: 0 | |
}, | |
end: { | |
x: 0, | |
y: 0 | |
}, | |
identifier: 0 | |
}); | |
return a | |
} | |
function ma(a, b) { | |
b = Math.max(b, na(a)), | |
Oa[a].distance = b | |
} | |
function na(a) { | |
return Oa[a].distance | |
} | |
function oa() { | |
var a = {}; | |
return a[d] = pa(d), | |
a[e] = pa(e), | |
a[f] = pa(f), | |
a[g] = pa(g), | |
a | |
} | |
function pa(a) { | |
return { | |
direction: a, | |
distance: 0 | |
} | |
} | |
function qa() { | |
return Ua - Ta | |
} | |
function ra(a, b) { | |
var c = Math.abs(a.x - b.x) | |
, d = Math.abs(a.y - b.y); | |
return Math.round(Math.sqrt(c * c + d * d)) | |
} | |
function sa(a, b) { | |
var c = b / a * 1; | |
return c.toFixed(2) | |
} | |
function ta() { | |
return La < 1 ? i : h | |
} | |
function ua(a, b) { | |
return Math.round(Math.sqrt(Math.pow(b.x - a.x, 2) + Math.pow(b.y - a.y, 2))) | |
} | |
function va(a, b) { | |
var c = a.x - b.x | |
, d = b.y - a.y | |
, e = Math.atan2(d, c) | |
, f = Math.round(180 * e / Math.PI); | |
return f < 0 && (f = 360 - Math.abs(f)), | |
f | |
} | |
function wa(a, b) { | |
var c = va(a, b); | |
return c <= 45 && c >= 0 ? d : c <= 360 && c >= 315 ? d : c >= 135 && c <= 225 ? e : c > 45 && c < 135 ? g : f | |
} | |
function xa() { | |
var a = new Date; | |
return a.getTime() | |
} | |
function ya(b) { | |
b = a(b); | |
var c = b.offset() | |
, d = { | |
left: c.left, | |
right: c.left + b.outerWidth(), | |
top: c.top, | |
bottom: c.top + b.outerHeight() | |
}; | |
return d | |
} | |
function za(a, b) { | |
return a.x > b.left && a.x < b.right && a.y > b.top && a.y < b.bottom | |
} | |
var Aa = y || !c.fallbackToMouseEvents | |
, Ba = Aa ? "touchstart" : "mousedown" | |
, Ca = Aa ? "touchmove" : "mousemove" | |
, Da = Aa ? "touchend" : "mouseup" | |
, Ea = Aa ? null : "mouseleave" | |
, Fa = "touchcancel" | |
, Ga = 0 | |
, Ha = null | |
, Ia = 0 | |
, Ja = 0 | |
, Ka = 0 | |
, La = 1 | |
, Ma = 0 | |
, Na = 0 | |
, Oa = null | |
, Pa = a(b) | |
, Qa = "start" | |
, Ra = 0 | |
, Sa = null | |
, Ta = 0 | |
, Ua = 0 | |
, Va = 0 | |
, Wa = 0 | |
, Xa = 0 | |
, Ya = null; | |
try { | |
Pa.bind(Ba, A), | |
Pa.bind(Fa, D) | |
} catch (Za) { | |
a.error("events not supported " + Ba + "," + Fa + " on jQuery.swipe") | |
} | |
this.enable = function() { | |
return Pa.bind(Ba, A), | |
Pa.bind(Fa, D), | |
Pa | |
} | |
, | |
this.disable = function() { | |
return F(), | |
Pa | |
} | |
, | |
this.destroy = function() { | |
return F(), | |
Pa.data(z, null), | |
Pa | |
} | |
, | |
this.option = function(b, d) { | |
if (void 0 !== c[b]) { | |
if (void 0 === d) | |
return c[b]; | |
c[b] = d | |
} else | |
a.error("Option " + b + " does not exist on jQuery.swipe.options") | |
} | |
} | |
var d = "left" | |
, e = "right" | |
, f = "up" | |
, g = "down" | |
, h = "in" | |
, i = "out" | |
, j = "none" | |
, k = "auto" | |
, l = "swipe" | |
, m = "pinch" | |
, n = "tap" | |
, o = "doubletap" | |
, p = "longtap" | |
, q = "horizontal" | |
, r = "vertical" | |
, s = "all" | |
, t = 10 | |
, u = "start" | |
, v = "move" | |
, w = "end" | |
, x = "cancel" | |
, y = "ontouchstart"in window | |
, z = "TouchSwipe" | |
, A = { | |
fingers: 1, | |
threshold: 75, | |
cancelThreshold: 25, | |
pinchThreshold: 20, | |
maxTimeThreshold: null, | |
fingerReleaseThreshold: 250, | |
longTapThreshold: 500, | |
doubleTapThreshold: 200, | |
swipe: null, | |
swipeLeft: null, | |
swipeRight: null, | |
swipeUp: null, | |
swipeDown: null, | |
swipeStatus: null, | |
pinchIn: null, | |
pinchOut: null, | |
pinchStatus: null, | |
click: null, | |
tap: null, | |
doubleTap: null, | |
longTap: null, | |
triggerOnTouchEnd: !0, | |
triggerOnTouchLeave: !1, | |
allowPageScroll: "auto", | |
fallbackToMouseEvents: !0, | |
excludedElements: "button, input, select, textarea, a, .noSwipe" | |
}; | |
a.fn.swipe = function(c) { | |
var d = a(this) | |
, e = d.data(z); | |
if (e && "string" == typeof c) { | |
if (e[c]) | |
return e[c].apply(this, Array.prototype.slice.call(arguments, 1)); | |
a.error("Method " + c + " does not exist on jQuery.swipe") | |
} else if (!(e || "object" != typeof c && c)) | |
return b.apply(this, arguments); | |
return d | |
} | |
, | |
a.fn.swipe.defaults = A, | |
a.fn.swipe.phases = { | |
PHASE_START: u, | |
PHASE_MOVE: v, | |
PHASE_END: w, | |
PHASE_CANCEL: x | |
}, | |
a.fn.swipe.directions = { | |
LEFT: d, | |
RIGHT: e, | |
UP: f, | |
DOWN: g, | |
IN: h, | |
OUT: i | |
}, | |
a.fn.swipe.pageScroll = { | |
NONE: j, | |
HORIZONTAL: q, | |
VERTICAL: r, | |
AUTO: k | |
}, | |
a.fn.swipe.fingers = { | |
ONE: 1, | |
TWO: 2, | |
THREE: 3, | |
ALL: s | |
} | |
}(jQuery), | |
function(a) { | |
"function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery) | |
}(function(a) { | |
function b(a) { | |
return a | |
} | |
function c(a) { | |
return decodeURIComponent(a.replace(e, " ")) | |
} | |
function d(a) { | |
0 === a.indexOf('"') && (a = a.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")); | |
try { | |
return f.json ? JSON.parse(a) : a | |
} catch (b) {} | |
} | |
var e = /\+/g | |
, f = a.cookie = function(e, g, h) { | |
if (void 0 !== g) { | |
if (h = a.extend({}, f.defaults, h), | |
"number" == typeof h.expires) { | |
var i = h.expires | |
, j = h.expires = new Date; | |
j.setDate(j.getDate() + i) | |
} | |
return g = f.json ? JSON.stringify(g) : String(g), | |
document.cookie = [f.raw ? e : encodeURIComponent(e), "=", f.raw ? g : encodeURIComponent(g), h.expires ? "; expires=" + h.expires.toUTCString() : "", h.path ? "; path=" + h.path : "", h.domain ? "; domain=" + h.domain : "", h.secure ? "; secure" : ""].join("") | |
} | |
for (var k = f.raw ? b : c, l = document.cookie.split("; "), m = e ? void 0 : {}, n = 0, o = l.length; n < o; n++) { | |
var p = l[n].split("=") | |
, q = k(p.shift()) | |
, r = k(p.join("=")); | |
if (e && e === q) { | |
m = d(r); | |
break | |
} | |
e || (m[q] = d(r)) | |
} | |
return m | |
} | |
; | |
f.defaults = {}, | |
a.removeCookie = function(b, c) { | |
return void 0 !== a.cookie(b) && (a.cookie(b, "", a.extend(c, { | |
expires: -1 | |
})), | |
!0) | |
} | |
}), | |
function(a, b, c, d, e, f) { | |
function g(a, b) { | |
var c = typeof a[b]; | |
return "function" == c || !("object" != c || !a[b]) || "unknown" == c | |
} | |
function h(a, b) { | |
return !("object" != typeof a[b] || !a[b]) | |
} | |
function i(a) { | |
return "[object Array]" === Object.prototype.toString.call(a) | |
} | |
function j() { | |
var a = "Shockwave Flash" | |
, b = "application/x-shockwave-flash"; | |
if (!t(navigator.plugins) && "object" == typeof navigator.plugins[a]) { | |
var c = navigator.plugins[a].description; | |
c && !t(navigator.mimeTypes) && navigator.mimeTypes[b] && navigator.mimeTypes[b].enabledPlugin && (C = c.match(/\d+/g)) | |
} | |
if (!C) { | |
var d; | |
try { | |
d = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"), | |
C = Array.prototype.slice.call(d.GetVariable("$version").match(/(\d+),(\d+),(\d+),(\d+)/), 1), | |
d = null | |
} catch (e) {} | |
} | |
if (!C) | |
return !1; | |
var f = parseInt(C[0], 10) | |
, g = parseInt(C[1], 10); | |
return D = f > 9 && g > 0, | |
!0 | |
} | |
function k() { | |
if (!S) { | |
S = !0; | |
for (var a = 0; a < T.length; a++) | |
T[a](); | |
T.length = 0 | |
} | |
} | |
function l(a, b) { | |
return S ? void a.call(b) : void T.push(function() { | |
a.call(b) | |
}) | |
} | |
function m() { | |
var a = parent; | |
if ("" !== M) | |
for (var b = 0, c = M.split("."); b < c.length; b++) | |
a = a[c[b]]; | |
return a.easyXDM | |
} | |
function n(b) { | |
return a.easyXDM = O, | |
M = b, | |
M && (P = "easyXDM_" + M.replace(".", "_") + "_"), | |
N | |
} | |
function o(a) { | |
return a.match(J)[3] | |
} | |
function p(a) { | |
return a.match(J)[4] || "" | |
} | |
function q(a) { | |
var b = a.toLowerCase().match(J) | |
, c = b[2] | |
, d = b[3] | |
, e = b[4] || ""; | |
return ("http:" == c && ":80" == e || "https:" == c && ":443" == e) && (e = ""), | |
c + "//" + d + e | |
} | |
function r(a) { | |
if (a = a.replace(L, "$1/"), | |
!a.match(/^(http||https):\/\//)) { | |
var b = "/" === a.substring(0, 1) ? "" : c.pathname; | |
"/" !== b.substring(b.length - 1) && (b = b.substring(0, b.lastIndexOf("/") + 1)), | |
a = c.protocol + "//" + c.host + b + a | |
} | |
for (; K.test(a); ) | |
a = a.replace(K, ""); | |
return a | |
} | |
function s(a, b) { | |
var c = "" | |
, d = a.indexOf("#"); | |
d !== -1 && (c = a.substring(d), | |
a = a.substring(0, d)); | |
var e = []; | |
for (var g in b) | |
b.hasOwnProperty(g) && e.push(g + "=" + f(b[g])); | |
return a + (Q ? "#" : a.indexOf("?") == -1 ? "?" : "&") + e.join("&") + c | |
} | |
function t(a) { | |
return "undefined" == typeof a | |
} | |
function u(a, b, c) { | |
var d; | |
for (var e in b) | |
b.hasOwnProperty(e) && (e in a ? (d = b[e], | |
"object" == typeof d ? u(a[e], d, c) : c || (a[e] = b[e])) : a[e] = b[e]); | |
return a | |
} | |
function v() { | |
var a = b.body.appendChild(b.createElement("form")) | |
, c = a.appendChild(b.createElement("input")); | |
c.name = P + "TEST" + H, | |
B = c !== a.elements[c.name], | |
b.body.removeChild(a) | |
} | |
function w(a) { | |
t(B) && v(); | |
var c; | |
B ? c = b.createElement('<iframe name="' + a.props.name + '" sandbox="allow-scripts"/>') : (c = b.createElement("IFRAME"), | |
c.name = a.props.name, | |
c.sandbox = "allow-scripts"), | |
c.id = c.name = a.props.name, | |
delete a.props.name, | |
"string" == typeof a.container && (a.container = b.getElementById(a.container)), | |
a.container || (u(c.style, { | |
position: "absolute", | |
top: "-2000px", | |
left: "0px" | |
}), | |
a.container = b.body); | |
var d = a.props.src; | |
if (a.props.src = "javascript:false", | |
u(c, a.props), | |
c.border = c.frameBorder = 0, | |
c.allowTransparency = !0, | |
a.container.appendChild(c), | |
a.onLoad && E(c, "load", a.onLoad), | |
a.usePost) { | |
var e, f = a.container.appendChild(b.createElement("form")); | |
if (f.target = c.name, | |
f.action = d, | |
f.method = "POST", | |
"object" == typeof a.usePost) | |
for (var g in a.usePost) | |
a.usePost.hasOwnProperty(g) && (B ? e = b.createElement('<input name="' + g + '"/>') : (e = b.createElement("INPUT"), | |
e.name = g), | |
e.value = a.usePost[g], | |
f.appendChild(e)); | |
f.submit(), | |
f.parentNode.removeChild(f) | |
} else | |
c.src = d; | |
return a.props.src = d, | |
c | |
} | |
function x(a, b) { | |
"string" == typeof a && (a = [a]); | |
for (var c, d = a.length; d--; ) | |
if (c = a[d], | |
c = new RegExp("^" == c.substr(0, 1) ? c : "^" + c.replace(/(\*)/g, ".$1").replace(/\?/g, ".") + "$"), | |
c.test(b)) | |
return !0; | |
return !1 | |
} | |
function y(d) { | |
var e, f = d.protocol; | |
if (d.isHost = d.isHost || t(V.xdm_p), | |
Q = d.hash || !1, | |
d.props || (d.props = {}), | |
d.isHost) | |
d.remote = r(d.remote), | |
d.channel = d.channel || "default" + H++, | |
d.secret = Math.random().toString(16).substring(2), | |
t(f) && (f = q(c.href) == q(d.remote) ? "4" : g(a, "postMessage") || g(b, "postMessage") ? "1" : d.swf && g(a, "ActiveXObject") && j() ? "6" : "Gecko" === navigator.product && "frameElement"in a && navigator.userAgent.indexOf("WebKit") == -1 ? "5" : d.remoteHelper ? "2" : "0"); | |
else if (d.channel = V.xdm_c.replace(/["'<>\\]/g, ""), | |
d.secret = V.xdm_s, | |
d.remote = V.xdm_e.replace(/["'<>\\]/g, ""), | |
f = V.xdm_p, | |
d.acl && !x(d.acl, d.remote)) | |
throw new Error("Access denied for " + d.remote); | |
switch (d.protocol = f, | |
f) { | |
case "0": | |
if (u(d, { | |
interval: 100, | |
delay: 2e3, | |
useResize: !0, | |
useParent: !1, | |
usePolling: !1 | |
}, !0), | |
d.isHost) { | |
if (!d.local) { | |
for (var h, i = c.protocol + "//" + c.host, k = b.body.getElementsByTagName("img"), l = k.length; l--; ) | |
if (h = k[l], | |
h.src.substring(0, i.length) === i) { | |
d.local = h.src; | |
break | |
} | |
d.local || (d.local = a) | |
} | |
var m = { | |
xdm_c: d.channel, | |
xdm_p: 0 | |
}; | |
d.local === a ? (d.usePolling = !0, | |
d.useParent = !0, | |
d.local = c.protocol + "//" + c.host + c.pathname + c.search, | |
m.xdm_e = d.local, | |
m.xdm_pa = 1) : m.xdm_e = r(d.local), | |
d.container && (d.useResize = !1, | |
m.xdm_po = 1), | |
d.remote = s(d.remote, m) | |
} else | |
u(d, { | |
useParent: !t(V.xdm_pa), | |
usePolling: !t(V.xdm_po), | |
useResize: !d.useParent && d.useResize | |
}); | |
e = [new N.stack.HashTransport(d), new N.stack.ReliableBehavior({}), new N.stack.QueueBehavior({ | |
encode: !0, | |
maxLength: 4e3 - d.remote.length | |
}), new N.stack.VerifyBehavior({ | |
initiate: d.isHost | |
})]; | |
break; | |
case "1": | |
e = [new N.stack.PostMessageTransport(d)]; | |
break; | |
case "2": | |
d.isHost && (d.remoteHelper = r(d.remoteHelper)), | |
e = [new N.stack.NameTransport(d), new N.stack.QueueBehavior, new N.stack.VerifyBehavior({ | |
initiate: d.isHost | |
})]; | |
break; | |
case "3": | |
e = [new N.stack.NixTransport(d)]; | |
break; | |
case "4": | |
e = [new N.stack.SameOriginTransport(d)]; | |
break; | |
case "5": | |
e = [new N.stack.FrameElementTransport(d)]; | |
break; | |
case "6": | |
C || j(), | |
e = [new N.stack.FlashTransport(d)] | |
} | |
return e.push(new N.stack.QueueBehavior({ | |
lazy: d.lazy, | |
remove: !0 | |
})), | |
e | |
} | |
function z(a) { | |
for (var b, c = { | |
incoming: function(a, b) { | |
this.up.incoming(a, b) | |
}, | |
outgoing: function(a, b) { | |
this.down.outgoing(a, b) | |
}, | |
callback: function(a) { | |
this.up.callback(a) | |
}, | |
init: function() { | |
this.down.init() | |
}, | |
destroy: function() { | |
this.down.destroy() | |
} | |
}, d = 0, e = a.length; d < e; d++) | |
b = a[d], | |
u(b, c, !0), | |
0 !== d && (b.down = a[d - 1]), | |
d !== e - 1 && (b.up = a[d + 1]); | |
return b | |
} | |
function A(a) { | |
a.up.down = a.down, | |
a.down.up = a.up, | |
a.up = a.down = null | |
} | |
var B, C, D, E, F, G = a, H = Math.floor(1e4 * Math.random()), I = Function.prototype, J = /^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/, K = /[\-\w]+\/\.\.\//, L = /([^:])\/\//g, M = "", N = {}, O = a.easyXDM, P = "easyXDM_", Q = !1; | |
if (g(a, "addEventListener")) | |
E = function(a, b, c) { | |
a.addEventListener(b, c, !1) | |
} | |
, | |
F = function(a, b, c) { | |
a.removeEventListener(b, c, !1) | |
} | |
; | |
else { | |
if (!g(a, "attachEvent")) | |
throw new Error("Browser not supported"); | |
E = function(a, b, c) { | |
a.attachEvent("on" + b, c) | |
} | |
, | |
F = function(a, b, c) { | |
a.detachEvent("on" + b, c) | |
} | |
} | |
var R, S = !1, T = []; | |
if ("readyState"in b ? (R = b.readyState, | |
S = "complete" == R || ~navigator.userAgent.indexOf("AppleWebKit/") && ("loaded" == R || "interactive" == R)) : S = !!b.body, | |
!S) { | |
if (g(a, "addEventListener")) | |
E(b, "DOMContentLoaded", k); | |
else if (E(b, "readystatechange", function() { | |
"complete" == b.readyState && k() | |
}), | |
b.documentElement.doScroll && a === top) { | |
var U = function() { | |
if (!S) { | |
try { | |
b.documentElement.doScroll("left") | |
} catch (a) { | |
return void d(U, 1) | |
} | |
k() | |
} | |
}; | |
U() | |
} | |
E(a, "load", k) | |
} | |
var V = function(a) { | |
a = a.substring(1).split("&"); | |
for (var b, c = {}, d = a.length; d--; ) | |
b = a[d].split("="), | |
c[b[0]] = e(b[1]); | |
return c | |
}(/xdm_e=/.test(c.search) ? c.search : c.hash) | |
, W = function() { | |
var a = {} | |
, b = { | |
a: [1, 2, 3] | |
} | |
, c = '{"a":[1,2,3]}'; | |
return "undefined" != typeof JSON && "function" == typeof JSON.stringify && JSON.stringify(b).replace(/\s/g, "") === c ? JSON : (Object.toJSON && Object.toJSON(b).replace(/\s/g, "") === c && (a.stringify = Object.toJSON), | |
"function" == typeof String.prototype.evalJSON && (b = c.evalJSON(), | |
b.a && 3 === b.a.length && 3 === b.a[2] && (a.parse = function(a) { | |
return a.evalJSON() | |
} | |
)), | |
a.stringify && a.parse ? (W = function() { | |
return a | |
} | |
, | |
a) : null) | |
}; | |
u(N, { | |
version: "2.4.20.7", | |
query: V, | |
stack: {}, | |
apply: u, | |
getJSONObject: W, | |
whenReady: l, | |
noConflict: n | |
}), | |
N.DomHelper = { | |
on: E, | |
un: F, | |
requiresJSON: function(c) { | |
h(a, "JSON") || b.write('<script type="text/javascript" src="' + c + '"></script>') | |
} | |
}, | |
function() { | |
var a = {}; | |
N.Fn = { | |
set: function(b, c) { | |
a[b] = c | |
}, | |
get: function(b, c) { | |
if (a.hasOwnProperty(b)) { | |
var d = a[b]; | |
return c && delete a[b], | |
d | |
} | |
} | |
} | |
}(), | |
N.Socket = function(a) { | |
var b = z(y(a).concat([{ | |
incoming: function(b, c) { | |
a.onMessage(b, c) | |
}, | |
callback: function(b) { | |
a.onReady && a.onReady(b) | |
} | |
}])) | |
, c = q(a.remote); | |
this.origin = q(a.remote), | |
this.destroy = function() { | |
b.destroy() | |
} | |
, | |
this.postMessage = function(a) { | |
b.outgoing(a, c) | |
} | |
, | |
b.init() | |
} | |
, | |
N.Rpc = function(a, b) { | |
if (b.local) | |
for (var c in b.local) | |
if (b.local.hasOwnProperty(c)) { | |
var d = b.local[c]; | |
"function" == typeof d && (b.local[c] = { | |
method: d | |
}) | |
} | |
var e = z(y(a).concat([new N.stack.RpcBehavior(this,b), { | |
callback: function(b) { | |
a.onReady && a.onReady(b) | |
} | |
}])); | |
this.origin = q(a.remote), | |
this.destroy = function() { | |
e.destroy() | |
} | |
, | |
e.init() | |
} | |
, | |
N.stack.SameOriginTransport = function(a) { | |
var b, e, f, g; | |
return b = { | |
outgoing: function(a, b, c) { | |
f(a), | |
c && c() | |
}, | |
destroy: function() { | |
e && (e.parentNode.removeChild(e), | |
e = null) | |
}, | |
onDOMReady: function() { | |
g = q(a.remote), | |
a.isHost ? (u(a.props, { | |
src: s(a.remote, { | |
xdm_e: c.protocol + "//" + c.host + c.pathname, | |
xdm_c: a.channel, | |
xdm_p: 4 | |
}), | |
name: P + a.channel + "_provider" | |
}), | |
e = w(a), | |
N.Fn.set(a.channel, function(a) { | |
return f = a, | |
d(function() { | |
b.up.callback(!0) | |
}, 0), | |
function(a) { | |
b.up.incoming(a, g) | |
} | |
})) : (f = m().Fn.get(a.channel, !0)(function(a) { | |
b.up.incoming(a, g) | |
}), | |
d(function() { | |
b.up.callback(!0) | |
}, 0)) | |
}, | |
init: function() { | |
l(b.onDOMReady, b) | |
} | |
} | |
} | |
, | |
N.stack.FlashTransport = function(a) { | |
function e(a, b) { | |
d(function() { | |
h.up.incoming(a, j) | |
}, 0) | |
} | |
function g(c) { | |
var d = a.swf + "?host=" + a.isHost | |
, e = "easyXDM_swf_" + Math.floor(1e4 * Math.random()); | |
N.Fn.set("flash_loaded" + c.replace(/[\-.]/g, "_"), function() { | |
N.stack.FlashTransport[c].swf = k = m.firstChild; | |
for (var a = N.stack.FlashTransport[c].queue, b = 0; b < a.length; b++) | |
a[b](); | |
a.length = 0 | |
}), | |
a.swfContainer ? m = "string" == typeof a.swfContainer ? b.getElementById(a.swfContainer) : a.swfContainer : (m = b.createElement("div"), | |
u(m.style, D && a.swfNoThrottle ? { | |
height: "20px", | |
width: "20px", | |
position: "fixed", | |
right: 0, | |
top: 0 | |
} : { | |
height: "1px", | |
width: "1px", | |
position: "absolute", | |
overflow: "hidden", | |
right: 0, | |
top: 0 | |
}), | |
b.body.appendChild(m)); | |
var g = "callback=flash_loaded" + f(c.replace(/[\-.]/g, "_")) + "&proto=" + G.location.protocol + "&domain=" + f(o(G.location.href)) + "&port=" + f(p(G.location.href)) + "&ns=" + f(M); | |
m.innerHTML = "<object height='20' width='20' type='application/x-shockwave-flash' id='" + e + "' data='" + d + "'><param name='allowScriptAccess' value='sameDomain'></param><param name='wmode' value='transparent'><param name='movie' value='" + d + "'></param><param name='flashvars' value='" + g + "'></param><embed type='application/x-shockwave-flash' FlashVars='" + g + "' allowScriptAccess='sameDomain' wmode='transparent' src='" + d + "' height='1' width='1'></embed></object>" | |
} | |
var h, i, j, k, m; | |
return h = { | |
outgoing: function(b, c, d) { | |
k.postMessage(a.channel, b.toString()), | |
d && d() | |
}, | |
destroy: function() { | |
try { | |
k.destroyChannel(a.channel) | |
} catch (b) {} | |
k = null, | |
i && (i.parentNode.removeChild(i), | |
i = null) | |
}, | |
onDOMReady: function() { | |
j = a.remote, | |
N.Fn.set("flash_" + a.channel + "_init", function() { | |
d(function() { | |
h.up.callback(!0) | |
}) | |
}), | |
N.Fn.set("flash_" + a.channel + "_onMessage", e), | |
a.swf = r(a.swf); | |
var b = o(a.swf) | |
, f = function() { | |
N.stack.FlashTransport[b].init = !0, | |
k = N.stack.FlashTransport[b].swf, | |
k.createChannel(a.channel, a.secret, q(a.remote), a.isHost), | |
a.isHost && (D && a.swfNoThrottle && u(a.props, { | |
position: "fixed", | |
right: 0, | |
top: 0, | |
height: "20px", | |
width: "20px" | |
}), | |
u(a.props, { | |
src: s(a.remote, { | |
xdm_e: q(c.href), | |
xdm_c: a.channel, | |
xdm_p: 6, | |
xdm_s: a.secret | |
}), | |
name: P + a.channel + "_provider" | |
}), | |
i = w(a)) | |
}; | |
N.stack.FlashTransport[b] && N.stack.FlashTransport[b].init ? f() : N.stack.FlashTransport[b] ? N.stack.FlashTransport[b].queue.push(f) : (N.stack.FlashTransport[b] = { | |
queue: [f] | |
}, | |
g(b)) | |
}, | |
init: function() { | |
l(h.onDOMReady, h) | |
} | |
} | |
} | |
, | |
N.stack.PostMessageTransport = function(b) { | |
function e(a) { | |
if (a.origin) | |
return q(a.origin); | |
if (a.uri) | |
return q(a.uri); | |
if (a.domain) | |
return c.protocol + "//" + a.domain; | |
throw "Unable to retrieve the origin of the event" | |
} | |
function f(a) { | |
if ("string" == typeof a.data) { | |
var c = e(a); | |
c == k && a.data.substring(0, b.channel.length + 1) == b.channel + " " && h.up.incoming(a.data.substring(b.channel.length + 1), c) | |
} | |
} | |
function g(c) { | |
c.data == b.channel + "-ready" && (j = "postMessage"in i.contentWindow ? i.contentWindow : i.contentWindow.document, | |
F(a, "message", g), | |
E(a, "message", f), | |
d(function() { | |
h.up.callback(!0) | |
}, 0)) | |
} | |
var h, i, j, k; | |
return h = { | |
outgoing: function(a, c, d) { | |
j.postMessage(b.channel + " " + a, c || k), | |
d && d() | |
}, | |
destroy: function() { | |
F(a, "message", g), | |
F(a, "message", f), | |
i && (j = null, | |
i.parentNode.removeChild(i), | |
i = null) | |
}, | |
onDOMReady: function() { | |
k = q(b.remote), | |
b.isHost ? (E(a, "message", g), | |
u(b.props, { | |
src: s(b.remote, { | |
xdm_e: q(c.href), | |
xdm_c: b.channel, | |
xdm_p: 1 | |
}), | |
name: P + b.channel + "_provider" | |
}), | |
i = w(b)) : (E(a, "message", f), | |
j = "postMessage"in a.parent ? a.parent : a.parent.document, | |
j.postMessage(b.channel + "-ready", k), | |
d(function() { | |
h.up.callback(!0) | |
}, 0)) | |
}, | |
init: function() { | |
l(h.onDOMReady, h) | |
} | |
} | |
} | |
, | |
N.stack.FrameElementTransport = function(e) { | |
var f, g, h, i; | |
return f = { | |
outgoing: function(a, b, c) { | |
h.call(this, a), | |
c && c() | |
}, | |
destroy: function() { | |
g && (g.parentNode.removeChild(g), | |
g = null) | |
}, | |
onDOMReady: function() { | |
i = q(e.remote), | |
e.isHost ? (u(e.props, { | |
src: s(e.remote, { | |
xdm_e: q(c.href), | |
xdm_c: e.channel, | |
xdm_p: 5 | |
}), | |
name: P + e.channel + "_provider" | |
}), | |
g = w(e), | |
g.fn = function(a) { | |
return delete g.fn, | |
h = a, | |
d(function() { | |
f.up.callback(!0) | |
}, 0), | |
function(a) { | |
f.up.incoming(a, i) | |
} | |
} | |
) : (b.referrer && q(b.referrer) != V.xdm_e && (a.top.location = V.xdm_e), | |
h = a.frameElement.fn(function(a) { | |
f.up.incoming(a, i) | |
}), | |
f.up.callback(!0)) | |
}, | |
init: function() { | |
l(f.onDOMReady, f) | |
} | |
} | |
} | |
, | |
N.stack.NameTransport = function(a) { | |
function b(b) { | |
var c = a.remoteHelper + (h ? "#_3" : "#_2") + a.channel; | |
i.contentWindow.sendMessage(b, c) | |
} | |
function c() { | |
h ? 2 !== ++k && h || g.up.callback(!0) : (b("ready"), | |
g.up.callback(!0)) | |
} | |
function e(a) { | |
g.up.incoming(a, n) | |
} | |
function f() { | |
m && d(function() { | |
m(!0) | |
}, 0) | |
} | |
var g, h, i, j, k, m, n, o; | |
return g = { | |
outgoing: function(a, c, d) { | |
m = d, | |
b(a) | |
}, | |
destroy: function() { | |
i.parentNode.removeChild(i), | |
i = null, | |
h && (j.parentNode.removeChild(j), | |
j = null) | |
}, | |
onDOMReady: function() { | |
h = a.isHost, | |
k = 0, | |
n = q(a.remote), | |
a.local = r(a.local), | |
h ? (N.Fn.set(a.channel, function(b) { | |
h && "ready" === b && (N.Fn.set(a.channel, e), | |
c()) | |
}), | |
o = s(a.remote, { | |
xdm_e: a.local, | |
xdm_c: a.channel, | |
xdm_p: 2 | |
}), | |
u(a.props, { | |
src: o + "#" + a.channel, | |
name: P + a.channel + "_provider" | |
}), | |
j = w(a)) : (a.remoteHelper = a.remote, | |
N.Fn.set(a.channel, e)); | |
var b = function() { | |
var e = i || this; | |
F(e, "load", b), | |
N.Fn.set(a.channel + "_load", f), | |
function g() { | |
"function" == typeof e.contentWindow.sendMessage ? c() : d(g, 50) | |
}() | |
}; | |
i = w({ | |
props: { | |
src: a.local + "#_4" + a.channel | |
}, | |
onLoad: b | |
}) | |
}, | |
init: function() { | |
l(g.onDOMReady, g) | |
} | |
} | |
} | |
, | |
N.stack.HashTransport = function(b) { | |
function c(a) { | |
if (p) { | |
var c = b.remote + "#" + n++ + "_" + a; | |
(i || !r ? p.contentWindow : p).location = c | |
} | |
} | |
function e(a) { | |
m = a, | |
h.up.incoming(m.substring(m.indexOf("_") + 1), s) | |
} | |
function f() { | |
if (o) { | |
var a = o.location.href | |
, b = "" | |
, c = a.indexOf("#"); | |
c != -1 && (b = a.substring(c)), | |
b && b != m && e(b) | |
} | |
} | |
function g() { | |
j = setInterval(f, k) | |
} | |
var h, i, j, k, m, n, o, p, r, s; | |
return h = { | |
outgoing: function(a, b) { | |
c(a) | |
}, | |
destroy: function() { | |
a.clearInterval(j), | |
!i && r || p.parentNode.removeChild(p), | |
p = null | |
}, | |
onDOMReady: function() { | |
if (i = b.isHost, | |
k = b.interval, | |
m = "#" + b.channel, | |
n = 0, | |
r = b.useParent, | |
s = q(b.remote), | |
i) { | |
if (u(b.props, { | |
src: b.remote, | |
name: P + b.channel + "_provider" | |
}), | |
r) | |
b.onLoad = function() { | |
o = a, | |
g(), | |
h.up.callback(!0) | |
} | |
; | |
else { | |
var c = 0 | |
, e = b.delay / 50; | |
!function f() { | |
if (++c > e) | |
throw new Error("Unable to reference listenerwindow"); | |
try { | |
o = p.contentWindow.frames[P + b.channel + "_consumer"] | |
} catch (a) {} | |
o ? (g(), | |
h.up.callback(!0)) : d(f, 50) | |
}() | |
} | |
p = w(b) | |
} else | |
o = a, | |
g(), | |
r ? (p = parent, | |
h.up.callback(!0)) : (u(b, { | |
props: { | |
src: b.remote + "#" + b.channel + new Date, | |
name: P + b.channel + "_consumer" | |
}, | |
onLoad: function() { | |
h.up.callback(!0) | |
} | |
}), | |
p = w(b)) | |
}, | |
init: function() { | |
l(h.onDOMReady, h) | |
} | |
} | |
} | |
, | |
N.stack.ReliableBehavior = function(a) { | |
var b, c, d = 0, e = 0, f = ""; | |
return b = { | |
incoming: function(a, g) { | |
var h = a.indexOf("_") | |
, i = a.substring(0, h).split(","); | |
a = a.substring(h + 1), | |
i[0] == d && (f = "", | |
c && c(!0)), | |
a.length > 0 && (b.down.outgoing(i[1] + "," + d + "_" + f, g), | |
e != i[1] && (e = i[1], | |
b.up.incoming(a, g))) | |
}, | |
outgoing: function(a, g, h) { | |
f = a, | |
c = h, | |
b.down.outgoing(e + "," + ++d + "_" + a, g) | |
} | |
} | |
} | |
, | |
N.stack.QueueBehavior = function(a) { | |
function b() { | |
if (a.remove && 0 === h.length) | |
return void A(c); | |
if (!i && 0 !== h.length && !g) { | |
i = !0; | |
var e = h.shift(); | |
c.down.outgoing(e.data, e.origin, function(a) { | |
i = !1, | |
e.callback && d(function() { | |
e.callback(a) | |
}, 0), | |
b() | |
}) | |
} | |
} | |
var c, g, h = [], i = !0, j = "", k = 0, l = !1, m = !1; | |
return c = { | |
init: function() { | |
t(a) && (a = {}), | |
a.maxLength && (k = a.maxLength, | |
m = !0), | |
a.lazy ? l = !0 : c.down.init() | |
}, | |
callback: function(a) { | |
i = !1; | |
var d = c.up; | |
b(), | |
d.callback(a) | |
}, | |
incoming: function(b, d) { | |
if (m) { | |
var f = b.indexOf("_") | |
, g = parseInt(b.substring(0, f), 10); | |
j += b.substring(f + 1), | |
0 === g && (a.encode && (j = e(j)), | |
c.up.incoming(j, d), | |
j = "") | |
} else | |
c.up.incoming(b, d) | |
}, | |
outgoing: function(d, e, g) { | |
a.encode && (d = f(d)); | |
var i, j = []; | |
if (m) { | |
for (; 0 !== d.length; ) | |
i = d.substring(0, k), | |
d = d.substring(i.length), | |
j.push(i); | |
for (; i = j.shift(); ) | |
h.push({ | |
data: j.length + "_" + i, | |
origin: e, | |
callback: 0 === j.length ? g : null | |
}) | |
} else | |
h.push({ | |
data: d, | |
origin: e, | |
callback: g | |
}); | |
l ? c.down.init() : b() | |
}, | |
destroy: function() { | |
g = !0, | |
c.down.destroy() | |
} | |
} | |
} | |
, | |
N.stack.VerifyBehavior = function(a) { | |
function b() { | |
d = Math.random().toString(16).substring(2), | |
c.down.outgoing(d) | |
} | |
var c, d, e; | |
return c = { | |
incoming: function(f, g) { | |
var h = f.indexOf("_"); | |
h === -1 ? f === d ? c.up.callback(!0) : e || (e = f, | |
a.initiate || b(), | |
c.down.outgoing(f)) : f.substring(0, h) === e && c.up.incoming(f.substring(h + 1), g) | |
}, | |
outgoing: function(a, b, e) { | |
c.down.outgoing(d + "_" + a, b, e) | |
}, | |
callback: function(c) { | |
a.initiate && b() | |
} | |
} | |
} | |
, | |
N.stack.RpcBehavior = function(a, b) { | |
function c(a) { | |
a.jsonrpc = "2.0", | |
f.down.outgoing(g.stringify(a)) | |
} | |
function d(a, b) { | |
var d = Array.prototype.slice; | |
return function() { | |
var e, f = arguments.length, g = { | |
method: b | |
}; | |
f > 0 && "function" == typeof arguments[f - 1] ? (f > 1 && "function" == typeof arguments[f - 2] ? (e = { | |
success: arguments[f - 2], | |
error: arguments[f - 1] | |
}, | |
g.params = d.call(arguments, 0, f - 2)) : (e = { | |
success: arguments[f - 1] | |
}, | |
g.params = d.call(arguments, 0, f - 1)), | |
j["" + ++h] = e, | |
g.id = h) : g.params = d.call(arguments, 0), | |
a.namedParams && 1 === g.params.length && (g.params = g.params[0]), | |
c(g) | |
} | |
} | |
function e(a, b, d, e) { | |
if (!d) | |
return void (b && c({ | |
id: b, | |
error: { | |
code: -32601, | |
message: "Procedure not found." | |
} | |
})); | |
var f, g; | |
b ? (f = function(a) { | |
f = I, | |
c({ | |
id: b, | |
result: a | |
}) | |
} | |
, | |
g = function(a, d) { | |
g = I; | |
var e = { | |
id: b, | |
error: { | |
code: -32099, | |
message: a | |
} | |
}; | |
d && (e.error.data = d), | |
c(e) | |
} | |
) : f = g = I, | |
i(e) || (e = [e]); | |
try { | |
var h = d.method.apply(d.scope, e.concat([f, g])); | |
t(h) || f(h) | |
} catch (j) { | |
g(j.message) | |
} | |
} | |
var f, g = b.serializer || W(), h = 0, j = {}; | |
return f = { | |
incoming: function(a, d) { | |
var f = g.parse(a); | |
if (f.method) | |
b.handle ? b.handle(f, c) : e(f.method, f.id, b.local[f.method], f.params); | |
else { | |
var h = j[f.id]; | |
f.error ? h.error && h.error(f.error) : h.success && h.success(f.result), | |
delete j[f.id] | |
} | |
}, | |
init: function() { | |
if (b.remote) | |
for (var c in b.remote) | |
b.remote.hasOwnProperty(c) && (a[c] = d(b.remote[c], c)); | |
f.down.init() | |
}, | |
destroy: function() { | |
for (var c in b.remote) | |
b.remote.hasOwnProperty(c) && a.hasOwnProperty(c) && delete a[c]; | |
f.down.destroy() | |
} | |
} | |
} | |
, | |
G.easyXDM = N | |
}(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent), | |
function(a, b) { | |
"function" == typeof define && define.amd ? define(b) : "object" == typeof module && "object" == typeof module.exports ? module.exports = b() : a.Cldr = b() | |
}(this, function() { | |
var a = function(a) { | |
return "string" == typeof a ? [a] : a | |
} | |
, b = function(b) { | |
b.prototype.main = function(b) { | |
return b = a(b), | |
this.get(["main/{languageId}"].concat(b)) | |
} | |
} | |
, c = Array.isArray || function(a) { | |
return "[object Array]" === Object.prototype.toString.call(a) | |
} | |
, d = function(a, b) { | |
if (c(a) && (a = a.join("/")), | |
"string" != typeof a) | |
throw new Error('invalid path "' + a + '"'); | |
return a = a.replace(/^\//, "").replace(/^cldr\//, ""), | |
a = a.replace(/{[a-zA-Z]+}/g, function(a) { | |
return a = a.replace(/^{([^}]*)}$/, "$1"), | |
b[a] | |
}), | |
a.split("/") | |
} | |
, e = function(a, b) { | |
var c, d; | |
if (a.some) | |
return a.some(b); | |
for (c = 0, | |
d = a.length; c < d; c++) | |
if (b(a[c], c, a)) | |
return !0; | |
return !1 | |
} | |
, f = function(a, b, c) { | |
var d, f, g = b[0], h = b[1], i = b[2]; | |
return c = c || {}, | |
"und" !== g && "Zzzz" !== h && "ZZ" !== i ? [g, h, i] : "undefined" != typeof a.get("supplemental/likelySubtags") ? (f = e([[g, h, i], [g, i], [g, h], [g], ["und", h]], function(b) { | |
return d = !/\b(Zzzz|ZZ)\b/.test(b.join("_")) && a.get(["supplemental/likelySubtags", b.join("_")]) | |
}), | |
f ? (d = d.split("_"), | |
["und" !== g ? g : d[0], "Zzzz" !== h ? h : d[1], "ZZ" !== i ? i : d[2]]) : c.force ? a.get("supplemental/likelySubtags/und").split("_") : void 0) : void 0 | |
} | |
, g = function(a, b) { | |
var c, d, g = b[0], h = b[1], i = b[2]; | |
return d = e([[[g, "Zzzz", "ZZ"], [g]], [[g, "Zzzz", i], [g, i]], [[g, h, "ZZ"], [g, h]]], function(d) { | |
var e = f(a, d[0]); | |
return c = d[1], | |
e && e[0] === b[0] && e[1] === b[1] && e[2] === b[2] | |
}), | |
d ? c : b | |
} | |
, h = function(b) { | |
var c, d; | |
return c = function(c) { | |
return function(d) { | |
return d = a(d), | |
b.get([c].concat(d)) | |
} | |
} | |
, | |
d = c("supplemental"), | |
d.weekData = c("supplemental/weekData"), | |
d.weekData.firstDay = function() { | |
return b.get("supplemental/weekData/firstDay/{territory}") || b.get("supplemental/weekData/firstDay/001") | |
} | |
, | |
d.weekData.minDays = function() { | |
var a = b.get("supplemental/weekData/minDays/{territory}") || b.get("supplemental/weekData/minDays/001"); | |
return parseInt(a, 10) | |
} | |
, | |
d.timeData = c("supplemental/timeData"), | |
d.timeData.allowed = function() { | |
return b.get("supplemental/timeData/{territory}/_allowed") || b.get("supplemental/timeData/001/_allowed") | |
} | |
, | |
d.timeData.preferred = function() { | |
return b.get("supplemental/timeData/{territory}/_preferred") || b.get("supplemental/timeData/001/_preferred") | |
} | |
, | |
d | |
} | |
, i = function(a) { | |
var b, c, d, e, i, j, k; | |
if ("string" != typeof a) | |
throw new Error('invalid locale type: "' + JSON.stringify(a) + '"'); | |
switch (a = a.replace(/-/, "_"), | |
a = a.split("_u_")[0], | |
a = a.split("_t_")[0], | |
j = a, | |
!0) { | |
case /^[a-z]{2}_[A-Z][a-z]{3}_[A-Z0-9]{2}(\b|_)/.test(j): | |
b = j.split("_")[0], | |
e = j.split("_")[1], | |
i = j.split("_")[2], | |
k = j.split("_")[3]; | |
break; | |
case /^[a-z]{2}_[A-Z][a-z]{3}(\b|_)/.test(j): | |
b = j.split("_")[0], | |
e = j.split("_")[1], | |
i = "ZZ", | |
k = j.split("_")[2]; | |
break; | |
case /^[a-z]{2}_[A-Z0-9]{2}(\b|_)/.test(j): | |
b = j.split("_")[0], | |
e = "Zzzz", | |
i = j.split("_")[1], | |
k = j.split("_")[2]; | |
break; | |
case /^([a-z]{2}|root)(\b|_)/.test(j): | |
b = j.split("_")[0], | |
e = "Zzzz", | |
i = "ZZ", | |
k = j.split("_")[1]; | |
break; | |
default: | |
b = "und" | |
} | |
d = f(this, [b, e, i], { | |
force: !0 | |
}) || j.split("_"), | |
b = d[0], | |
e = d[1], | |
i = d[2], | |
c = g(this, d).join("_"), | |
this.attributes = { | |
languageId: c, | |
maxLanguageId: d.join("_"), | |
language: b, | |
script: e, | |
territory: i, | |
region: i, | |
variant: k | |
}, | |
this.locale = k ? [c, k].join("_") : c, | |
this.supplemental = h(this) | |
} | |
, j = function(a, b) { | |
var c, d = a, e = b.length; | |
for (c = 0; c < e - 1; c++) | |
if (d = d[b[c]], | |
!d) | |
return; | |
return d[b[c]] | |
} | |
, k = function(a, b) { | |
var c; | |
if ("root" !== b) | |
return (c = j(a._resolved, d(["supplemental/parentLocales/parentLocale", b]))) ? c : (c = b.substr(0, b.lastIndexOf("_")), | |
c ? c : "root") | |
} | |
, l = function(a, b, c) { | |
var d, e = a, f = b.length; | |
for (d = 0; d < f - 1; d++) | |
e[b[d]] || (e[b[d]] = {}), | |
e = e[b[d]]; | |
e[b[d]] = c | |
} | |
, m = function(a, b) { | |
var c, d; | |
if (a.forEach) | |
return a.forEach(b); | |
for (c = 0, | |
d = a.length; c < d; c++) | |
b(a[c], c, a) | |
} | |
, n = function() { | |
var a = function() { | |
var b = {} | |
, d = [].slice.call(arguments, 0); | |
return m(d, function(d) { | |
var e; | |
for (e in d) | |
e in b && c(b[e]) ? b[e] = b[e].concat(d[e]) : e in b && "object" == typeof b[e] ? b[e] = a(b[e], d[e]) : b[e] = d[e] | |
}), | |
b | |
}; | |
return a | |
}() | |
, o = function() { | |
var a; | |
return a = function(b, c, e, f, g) { | |
var h, i, m; | |
if ("undefined" != typeof c && c !== g) | |
return h = d(e, f), | |
(m = j(b._resolved, h)) ? m : (m = j(b._raw, h), | |
m || (i = k(b, c), | |
m = a(b, i, e, n(f, { | |
languageId: i | |
}), c)), | |
l(b._resolved, h, m), | |
m) | |
} | |
}() | |
, p = function(a, b, c) { | |
var e = d(b, c); | |
return j(a._resolved, e) | |
} | |
, q = function() { | |
i.apply(this, arguments) | |
}; | |
return q._resolved = {}, | |
q._raw = {}, | |
q.load = function(a) { | |
if ("object" != typeof a) | |
throw new Error("invalid json"); | |
q._raw = n(q._raw, a) | |
} | |
, | |
q.prototype.get = function(a) { | |
var b = this.attributes && this.attributes.languageId || ""; | |
return p(q, a, this.attributes) || o(q, b, a, this.attributes) | |
} | |
, | |
b(q), | |
q | |
}), | |
function(a, b) { | |
"function" == typeof define && define.amd ? define(["cldr"], b) : "object" == typeof module && "object" == typeof module.exports ? module.exports = b(require("cldr.js")) : a.Globalize = b(Cldr) | |
}(this, function(a) { | |
var b, c = {}; | |
return c.load = function(b) { | |
a.load(b) | |
} | |
, | |
c.locale = function(c) { | |
return arguments.length && (b = new a(c)), | |
b | |
} | |
, | |
c | |
}), | |
function(a, b) { | |
"function" == typeof define && define.amd ? define(["cldr", "../globalize"], b) : "object" == typeof module && "object" == typeof module.exports ? module.exports = b(require("cldr.js"), require("globalize")) : b(Cldr, Globalize) | |
}(this, function(a, b) { | |
var c = function(c) { | |
return c ? new a(c) : b.locale() | |
} | |
, d = Array.isArray || function(a) { | |
return "[object Array]" === Object.prototype.toString.call(a) | |
} | |
, e = function(a) { | |
return d(a) ? a : [a] | |
}; | |
return b.loadTranslations = function(b, c) { | |
var d = { | |
"globalize-translation": {} | |
}; | |
b = new a(b), | |
d["globalize-translation"][b.attributes.languageId] = c, | |
a.load(d) | |
} | |
, | |
b.translate = function(a, b) { | |
return b = c(b), | |
a = e(a), | |
b.get(["globalize-translation/{languageId}"].concat(a)) | |
} | |
, | |
b | |
}), | |
function(a) { | |
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof exports ? module.exports = a : a(jQuery) | |
}(function(a) { | |
function b(b) { | |
var g = b || window.event | |
, h = i.call(arguments, 1) | |
, j = 0 | |
, l = 0 | |
, m = 0 | |
, n = 0 | |
, o = 0 | |
, p = 0; | |
if (b = a.event.fix(g), | |
b.type = "mousewheel", | |
"detail"in g && (m = g.detail * -1), | |
"wheelDelta"in g && (m = g.wheelDelta), | |
"wheelDeltaY"in g && (m = g.wheelDeltaY), | |
"wheelDeltaX"in g && (l = g.wheelDeltaX * -1), | |
"axis"in g && g.axis === g.HORIZONTAL_AXIS && (l = m * -1, | |
m = 0), | |
j = 0 === m ? l : m, | |
"deltaY"in g && (m = g.deltaY * -1, | |
j = m), | |
"deltaX"in g && (l = g.deltaX, | |
0 === m && (j = l * -1)), | |
0 !== m || 0 !== l) { | |
if (1 === g.deltaMode) { | |
var q = a.data(this, "mousewheel-line-height"); | |
j *= q, | |
m *= q, | |
l *= q | |
} else if (2 === g.deltaMode) { | |
var r = a.data(this, "mousewheel-page-height"); | |
j *= r, | |
m *= r, | |
l *= r | |
} | |
if (n = Math.max(Math.abs(m), Math.abs(l)), | |
(!f || n < f) && (f = n, | |
d(g, n) && (f /= 40)), | |
d(g, n) && (j /= 40, | |
l /= 40, | |
m /= 40), | |
j = Math[j >= 1 ? "floor" : "ceil"](j / f), | |
l = Math[l >= 1 ? "floor" : "ceil"](l / f), | |
m = Math[m >= 1 ? "floor" : "ceil"](m / f), | |
k.settings.normalizeOffset && this.getBoundingClientRect) { | |
var s = this.getBoundingClientRect(); | |
o = b.clientX - s.left, | |
p = b.clientY - s.top | |
} | |
return b.deltaX = l, | |
b.deltaY = m, | |
b.deltaFactor = f, | |
b.offsetX = o, | |
b.offsetY = p, | |
b.deltaMode = 0, | |
h.unshift(b, j, l, m), | |
e && clearTimeout(e), | |
e = setTimeout(c, 200), | |
(a.event.dispatch || a.event.handle).apply(this, h) | |
} | |
} | |
function c() { | |
f = null | |
} | |
function d(a, b) { | |
return k.settings.adjustOldDeltas && "mousewheel" === a.type && b % 120 === 0 | |
} | |
var e, f, g = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"], h = "onwheel"in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"], i = Array.prototype.slice; | |
if (a.event.fixHooks) | |
for (var j = g.length; j; ) | |
a.event.fixHooks[g[--j]] = a.event.mouseHooks; | |
var k = a.event.special.mousewheel = { | |
version: "3.1.11", | |
setup: function() { | |
if (this.addEventListener) | |
for (var c = h.length; c; ) | |
this.addEventListener(h[--c], b, !1); | |
else | |
this.onmousewheel = b; | |
a.data(this, "mousewheel-line-height", k.getLineHeight(this)), | |
a.data(this, "mousewheel-page-height", k.getPageHeight(this)) | |
}, | |
teardown: function() { | |
if (this.removeEventListener) | |
for (var c = h.length; c; ) | |
this.removeEventListener(h[--c], b, !1); | |
else | |
this.onmousewheel = null; | |
a.removeData(this, "mousewheel-line-height"), | |
a.removeData(this, "mousewheel-page-height") | |
}, | |
getLineHeight: function(b) { | |
var c = a(b)["offsetParent"in a.fn ? "offsetParent" : "parent"](); | |
return c.length || (c = a("body")), | |
parseInt(c.css("fontSize"), 10) | |
}, | |
getPageHeight: function(b) { | |
return a(b).height() | |
}, | |
settings: { | |
adjustOldDeltas: !0, | |
normalizeOffset: !0 | |
} | |
}; | |
a.fn.extend({ | |
mousewheel: function(a) { | |
return a ? this.bind("mousewheel", a) : this.trigger("mousewheel") | |
}, | |
unmousewheel: function(a) { | |
return this.unbind("mousewheel", a) | |
} | |
}) | |
}), | |
function(a) { | |
function b(a, b) { | |
return b.autoStop && Math.min(a, b.autoStop) | |
} | |
a.jCarouselLite = { | |
version: "1.8.8", | |
curr: 0 | |
}, | |
a.fn.jCarouselLite = function(c) { | |
var d = a.extend(!0, {}, a.fn.jCarouselLite.defaults, c) | |
, e = Math.ceil | |
, f = Math.abs; | |
return this.each(function() { | |
function c() { | |
return T.slice(V).slice(0, L) | |
} | |
function g(b, e) { | |
if (A) | |
return !1; | |
e = e || {}; | |
var f = V | |
, g = b > V | |
, h = e.speed || d.speed; | |
e.offset || 0; | |
if (T.css("pointer-events", "none"), | |
d.beforeStart && d.beforeStart.call(G, c(), g), | |
T.removeClass(d.activeClass), | |
b < 0 ? b = 0 : b > U - M && (b = U - M), | |
V = b, | |
0 === V && d.first && d.first.call(this, c(), g), | |
V === U - M && d.last && d.last.call(this, c(), g), | |
d.btnPrev && (d.rtl ? d.$btnPrev.toggleClass(d.btnDisabledClass, V === U - M) : d.$btnPrev.toggleClass(d.btnDisabledClass, 0 === V)), | |
d.btnNext && (d.rtl ? d.$btnNext.toggleClass(d.btnDisabledClass, 0 === V) : d.$btnNext.toggleClass(d.btnDisabledClass, V === U - M)), | |
S(V, Q), | |
a.jCarouselLite.curr = V, | |
f === V && !e.force) | |
return d.afterEnd && d.afterEnd.call(G, c(), g), | |
T.css("pointer-events", ""), | |
V; | |
A = !0; | |
var i = -(V * y.liSize); | |
return i < G.width() - H.outerWidth() && (i = G.width() - H.outerWidth()), | |
C[B] = i, | |
H.animate(C, h, d.easing, function() { | |
d.afterEnd && d.afterEnd.call(G, c(), g), | |
A = !1 | |
}), | |
T.css("pointer-events", ""), | |
T.eq(Math.floor(V)).addClass(d.activeClass), | |
V | |
} | |
function h() { | |
i(), | |
ba = !0, | |
ca = setTimeout(function() { | |
ba = !1, | |
ca = null | |
}, d.swipeThresholds.time) | |
} | |
function i() { | |
null != ca && clearTimeout(ca), | |
ca = null | |
} | |
function j() { | |
A || (A = !0, | |
na.x > 0 && (na.x = 0), | |
na.x < ma.width() - H.outerWidth() && (na.x = ma.width() - H.outerWidth()), | |
V = f(na.x) / I.outerWidth(), | |
H.css(B, String(na.x) + "px"), | |
d.rtl ? (d.btnPrev && d.$btnPrev.toggleClass(d.btnDisabledClass, na.x === ma.width() - H.outerWidth()), | |
d.btnNext && d.$btnNext.toggleClass(d.btnDisabledClass, 0 === na.x)) : (d.btnPrev && d.$btnPrev.toggleClass(d.btnDisabledClass, 0 === na.x), | |
d.btnNext && d.$btnNext.toggleClass(d.btnDisabledClass, na.x === ma.width() - H.outerWidth())), | |
A = !1) | |
} | |
function k(a) { | |
"auto" === H.css(B) ? na.x = 0 : na.x = parseInt(H.css(B)); | |
var b = (H.outerWidth() - H.innerWidth()) / 2; | |
d.rtl ? na.x += b : na.x -= b, | |
na.prevX = na.x, | |
oa.x = na.x + a, | |
na.vx = 0, | |
na.time = (new Date).getTime(), | |
na.prevTime = na.time, | |
pa.x = a | |
} | |
function l(a) { | |
H.width() <= G.width() || (k(a), | |
qa = !0, | |
null !== ra ? (p(), | |
d.beforeStart && d.beforeStart.call(G, c(), O), | |
T.css("pointer-events", "none")) : (d.afterEnd && d.afterEnd.call(G, c(), O), | |
T.css("pointer-events", ""))) | |
} | |
function m() { | |
qa ? (d.beforeStart && d.beforeStart.call(G, c(), O), | |
d.inertia && o()) : (d.afterEnd && d.afterEnd.call(G, c(), O), | |
T.css("pointer-events", "")), | |
qa = !1 | |
} | |
function n() { | |
qa = !1, | |
T.css("pointer-events", "") | |
} | |
function o() { | |
T.css("pointer-events", "none"); | |
var a = (new Date).getTime(); | |
ra = setInterval(function() { | |
var b = (new Date).getTime() | |
, e = b - a; | |
a = b, | |
na.x += na.vx * e; | |
var f; | |
f = "auto" === H.css(B) ? 0 : parseInt(H.css(B)), | |
j(); | |
var g = 1 - NFBR.a0X.a3y * e / NFBR.a0X.a3Y; | |
g < 0 && (g = 0), | |
na.vx *= g; | |
var h; | |
h = "auto" === H.css(B) ? 0 : parseInt(H.css(B)), | |
(Math.abs(na.vx) < NFBR.a0X.a3z || f === h) && (na.vx = 0), | |
0 === na.vx && (p(), | |
d.afterEnd && d.afterEnd.call(G, c(), O), | |
T.css("pointer-events", "")) | |
}, NFBR.a0X.a3Y) | |
} | |
function p() { | |
null !== ra && (clearInterval(ra), | |
ra = null), | |
na.vx = 0 | |
} | |
function q(a) { | |
var b = na.prevX; | |
na.prevX = na.x, | |
d.rtl ? na.x -= a - pa.x : na.x += a - pa.x; | |
var c = (new Date).getTime() | |
, e = c - na.prevTime; | |
e < 1 && (e = 1), | |
na.vx = (na.x - b) / e, | |
na.prevTime = na.time, | |
na.time = c, | |
j(), | |
pa.x = a | |
} | |
var r, s, t, u, v, w, x = "ontouchend"in document, y = { | |
div: {}, | |
ol: {}, | |
li: {} | |
}, z = !0, A = !1, B = d.rtl ? "right" : "left", C = {}, D = "width", E = "outerWidth", F = this, G = a(this), H = G.find("ol").eq(0), I = H.children("li"), J = I.length, K = d.visible, L = e(K), M = Math.floor(K), N = Math.min(d.start, J - 1), O = 1, P = 0, Q = {}, R = d.init.call(this, d, I); | |
if (R !== !1) { | |
G.data("dirjc", O), | |
G.data(B + "jc", G.css(B)), | |
d.btnGo && d.btnGo.length && (w = a(a.isArray(d.btnGo) && "string" == typeof d.btnGo[0] ? d.btnGo.join() : d.btnGo), | |
w.each(function(b) { | |
a(this).unbind("click.jc"), | |
a(this).bind("click.jc", function(a) { | |
return a.preventDefault(), | |
g(b) | |
}) | |
}), | |
Q.go = 1); | |
var S = function(a, b) { | |
a = e(a); | |
var c = (a - P) % J | |
, f = c + M; | |
return b.go && (w.removeClass(d.activeClass).removeClass(d.visibleClass), | |
w.eq(c).addClass(d.activeClass), | |
w.slice(c, c + M).addClass(d.visibleClass), | |
f > w.length && w.slice(0, f - w.length).addClass(d.visibleClass)), | |
b.pager && (r.removeClass(d.activeClass), | |
r.eq(e(c / K)).addClass(d.activeClass)), | |
c | |
} | |
, T = H.children("li") | |
, U = T.length | |
, V = N; | |
a.jCarouselLite.curr = V; | |
var W = function(a) { | |
var b, c; | |
if (a) | |
return y.div[D] = "", | |
y.li = { | |
width: "", | |
height: "" | |
}, | |
y; | |
b = T.outerWidth(), | |
c = b * U; | |
G.width(); | |
return y.ol[D] = c + "px", | |
y.ol[B] = -(V * b) + "px", | |
y.li = { | |
width: T.width(), | |
height: T.height() | |
}, | |
y.liSize = b, | |
y | |
} | |
, X = function(b) { | |
var c, e, f = { | |
div: { | |
visibility: "visible", | |
position: "relative", | |
zIndex: 2 | |
}, | |
ol: { | |
margin: "0", | |
padding: "0", | |
position: "relative", | |
listStyleType: "none", | |
zIndex: 1, | |
"float": d.rtl ? "right" : "left" | |
}, | |
li: { | |
overflow: "visible", | |
"float": d.rtl ? "right" : "left" | |
} | |
}; | |
d.rtl ? f.div.right = "0" : f.div.left = "0", | |
b && (c = W(!0), | |
G.css(c.div), | |
H.css(c.ol), | |
T.css(c.li)), | |
c = W(), | |
d.autoCSS && z && (a.extend(!0, c, f), | |
z = !1), | |
d.autoWidth && (e = parseInt(G.css(D), 10), | |
y.liSize = e / d.visible, | |
c.li[D] = y.liSize - (T[E](!0) - parseInt(T.css(D), 10)), | |
c.ol[D] = y.liSize * U + "px", | |
d.rtl ? c.ol[B] = V * y.liSize + "px" : c.ol[B] = -(V * y.liSize) + "px", | |
c.div[D] = e), | |
d.autoCSS && (T.css(c.li), | |
H.css(c.ol), | |
G.css(c.div)) | |
}; | |
X(); | |
var Y = 0 | |
, Z = b(J, d) | |
, $ = "number" == typeof d.auto ? d.auto : d.scroll | |
, _ = function() { | |
F.setAutoAdvance = setTimeout(function() { | |
(!Z || Z > Y) && (O = G.data("dirjc"), | |
g(V + O * $, { | |
auto: !0 | |
}), | |
Y++, | |
_()) | |
}, d.timeout) | |
}; | |
if (a.each(["btnPrev", "btnNext"], function(b, c) { | |
d[c] && (d["$" + c] = a.isFunction(d[c]) ? d[c].call(G[0]) : a(d[c]), | |
d["$" + c].unbind("click.jc"), | |
d["$" + c].bind("click.jc", function(a) { | |
if (a.preventDefault(), | |
!d["$" + c].hasClass("disabled")) { | |
var e; | |
return e = d.rtl ? 0 === b ? V + d.scroll : V - d.scroll : 0 === b ? V - d.scroll : V + d.scroll, | |
d.directional && G.data("dirjc", b ? 1 : -1), | |
g(e) | |
} | |
})) | |
}), | |
d.btnPrev && (!d.rtl && 0 === N || d.rtl && N + K >= U ? d.$btnPrev.addClass(d.btnDisabledClass) : d.$btnPrev.removeClass(d.btnDisabledClass)), | |
d.btnNext && (!d.rtl && N + K >= U || d.rtl && 0 === N ? d.$btnNext.addClass(d.btnDisabledClass) : d.$btnNext.removeClass(d.btnDisabledClass)), | |
d.autoPager) { | |
s = e(J / K), | |
r = []; | |
for (var aa = 0; aa < s; aa++) | |
r.push('<li><a href="#">' + (aa + 1) + "</a></li>"); | |
r.length > 1 && (r = a("<ol>" + r.join("") + "</ol>").appendTo(d.autoPager).find("li"), | |
r.find("a").each(function(b) { | |
a(this).unbind("click.jc"), | |
a(this).bind("click.jc", function(a) { | |
a.preventDefault(); | |
var c = b * K; | |
return g(c) | |
}) | |
}), | |
Q.pager = 1) | |
} | |
S(N, Q), | |
d.mouseWheel && G.mousewheel && (G.unbind("mousewheel.jc"), | |
G.bind("mousewheel.jc", function(a, b, c, e) { | |
var f, h = Math.abs(c), i = Math.abs(e); | |
if (h >= i) | |
f = d.rtl ? c : -1 * c; | |
else { | |
if (0 !== c) | |
return; | |
f = -1 * e | |
} | |
if (0 !== f) | |
return g(f > 0 ? V - d.scroll : V + d.scroll) | |
})), | |
d.pause && d.auto && !x && G.bind("mouseenter.jc", function() { | |
G.trigger("pauseCarousel.jc") | |
}).bind("mouseleave.jc", function() { | |
G.trigger("resumeCarousel.jc") | |
}), | |
d.auto && _(), | |
a.jCarouselLite.vis = c, | |
G.bind("go.jc", function(a, b, c) { | |
"undefined" == typeof b && (b = "+=1"); | |
var d = "string" == typeof b && /(\+=|-=)(\d+)/.exec(b); | |
d ? b = "-=" === d[1] ? V - 1 * d[2] : V + 1 * d[2] : b += N, | |
g(b, c) | |
}).bind("startCarousel.jc", function(a) { | |
clearTimeout(F.setAutoAdvance), | |
F.setAutoAdvance = void 0, | |
G.trigger("go", "+=" + d.scroll), | |
_(), | |
G.removeData("pausedjc").removeData("stoppedjc") | |
}).bind("resumeCarousel.jc", function(a, b) { | |
if (!F.setAutoAdvance) { | |
clearTimeout(F.setAutoAdvance), | |
F.setAutoAdvance = void 0; | |
var c = G.data("stoppedjc"); | |
!b && c || (_(), | |
G.removeData("pausedjc"), | |
c && G.removeData("stoppedjc")) | |
} | |
}).bind("pauseCarousel.jc", function(a) { | |
clearTimeout(F.setAutoAdvance), | |
F.setAutoAdvance = void 0, | |
G.data("pausedjc", !0) | |
}).bind("stopCarousel.jc", function(a) { | |
clearTimeout(F.setAutoAdvance), | |
F.setAutoAdvance = void 0, | |
G.data("stoppedjc", !0) | |
}).bind("refreshCarousel.jc", function(a) { | |
X(d.autoCSS) | |
}).bind("endCarousel.jc", function() { | |
F.setAutoAdvance && (clearTimeout(F.setAutoAdvance), | |
F.setAutoAdvance = void 0), | |
d.btnPrev && d.$btnPrev.addClass(d.btnDisabledClass).unbind(".jc"), | |
d.btnNext && d.$btnNext.addClass(d.btnDisabledClass).unbind(".jc"), | |
d.btnGo && a.each(d.btnGo, function(b, c) { | |
a(c).unbind(".jc") | |
}), | |
a.each([B + "jc", "pausedjc", "stoppedjc", "dirjc"], function(a, b) { | |
G.removeData(b) | |
}), | |
G.unbind(".jc") | |
}); | |
var ba = !1 | |
, ca = null | |
, da = !1 | |
, ea = !1 | |
, fa = { | |
x: 0, | |
y: 0 | |
} | |
, ga = { | |
x: 0, | |
y: 0 | |
}; | |
v = { | |
touchstart: function(a) { | |
i(), | |
ba = !1, | |
da = !0, | |
ea = !1, | |
1 === a.touches.length ? (fa.x = a.touches[0].pageX, | |
fa.y = a.touches[0].pageY, | |
l(fa.x)) : n(), | |
a.preventDefault() | |
}, | |
touchmove: function(a) { | |
da && (1 === a.touches.length ? (ga.x = a.touches[0].pageX, | |
ga.y = a.touches[0].pageY, | |
(ba || f(ga.x - fa.x) >= d.swipeThresholds.x || f(ga.y - fa.y) >= d.swipeThresholds.y) && (h(), | |
ea = !0, | |
qa && q(a.touches[0].pageX))) : n(), | |
a.preventDefault()) | |
}, | |
touchend: function(a) { | |
da && (ea ? (i(), | |
ba = !1, | |
m()) : n(), | |
da = !1, | |
ea = !1, | |
a.preventDefault()) | |
}, | |
handle: function(a) { | |
a = a.originalEvent, | |
v[a.type](a) | |
} | |
}, | |
x && d.swipe && (G.unbind("touchstart.jc touchmove.jc touchend.jc"), | |
G.bind("touchstart.jc touchmove.jc touchend.jc", v.handle)); | |
var ha = !1 | |
, ia = !1 | |
, ja = { | |
x: 0, | |
y: 0 | |
} | |
, ka = { | |
x: 0, | |
y: 0 | |
} | |
, la = { | |
mousedown: function(a) { | |
i(), | |
ba = !1, | |
ha = !0, | |
ia = !1, | |
ja.x = a.pageX, | |
ja.y = a.pageY, | |
l(a.pageX), | |
a.preventDefault() | |
}, | |
mousemove: function(a) { | |
ha && (ka.x = a.pageX, | |
ka.y = a.pageY, | |
(ba || f(ka.x - ja.x) >= d.swipeThresholds.x || f(ka.y - ja.y) >= d.swipeThresholds.y) && (h(), | |
ia = !0, | |
qa && q(a.pageX)), | |
a.preventDefault()) | |
}, | |
mouseup: function(a) { | |
ha && (ia ? (i(), | |
ba = !1, | |
m()) : n(), | |
ha = !1, | |
ia = !1, | |
a.preventDefault()) | |
}, | |
mouseout: function(a) { | |
ha && "img" !== a.relatedTarget.localName && "li" !== a.relatedTarget.localName && (ia ? (i(), | |
ba = !1, | |
m()) : n(), | |
ha = !1, | |
ia = !1, | |
a.preventDefault()) | |
}, | |
handle: function(a) { | |
a = a.originalEvent, | |
la[a.type](a) | |
} | |
}; | |
!d.touchOnly && d.swipe && (G.unbind("mousedown.jc mousemove.jc mouseup.jc mouseout.jc"), | |
G.bind("mousedown.jc mousemove.jc mouseup.jc mouseout.jc", la.handle)), | |
d.responsive && (u = d.autoCSS, | |
a(window).bind("resize", function(a) { | |
u && (H.width(2 * H.width()), | |
u = !1), | |
clearTimeout(t), | |
t = setTimeout(function() { | |
G.trigger("refreshCarousel.jc"), | |
u = d.autoCSS | |
}, 100) | |
})); | |
var ma = H.parent() | |
, na = { | |
x: 0, | |
prevX: 0, | |
vx: 0, | |
time: 0, | |
prevTime: 0 | |
} | |
, oa = { | |
x: 0 | |
} | |
, pa = { | |
x: 0 | |
} | |
, qa = !1 | |
, ra = null | |
} | |
}), | |
this | |
} | |
, | |
a.fn.jCarouselLite.defaults = { | |
btnPrev: null, | |
btnNext: null, | |
btnGo: null, | |
autoPager: null, | |
btnDisabledClass: "disabled", | |
activeClass: "active", | |
visibleClass: "vis", | |
mouseWheel: !1, | |
speed: 200, | |
easing: null, | |
timeout: 4e3, | |
auto: !1, | |
directional: !1, | |
autoStop: !1, | |
pause: !0, | |
visible: 3, | |
start: 0, | |
scroll: 1, | |
autoCSS: !0, | |
responsive: !1, | |
autoWidth: !1, | |
swipe: !0, | |
swipeThresholds: { | |
x: 30, | |
y: 30, | |
time: 250 | |
}, | |
preventTouchWindowScroll: !0, | |
init: function() {}, | |
first: null, | |
last: null, | |
beforeStart: null, | |
afterEnd: null, | |
touchOnly: !1, | |
rtl: !1, | |
inertia: !1 | |
} | |
}(jQuery), | |
function(a, b) { | |
function c(a, b, c) { | |
var d = a.children() | |
, e = !1; | |
a.empty(); | |
for (var g = 0, h = d.length; g < h; g++) { | |
var i = d.eq(g); | |
if (a.append(i), | |
c && a.append(c), | |
f(a, b)) { | |
i.remove(), | |
e = !0; | |
break | |
} | |
c && c.detach() | |
} | |
return e | |
} | |
function d(b, c, g, h, i) { | |
var j = !1 | |
, k = "a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style" | |
, l = "script, .dotdotdot-keep"; | |
return b.contents().detach().each(function() { | |
var m = this | |
, n = a(m); | |
if ("undefined" == typeof m) | |
return !0; | |
if (n.is(l)) | |
b.append(n); | |
else { | |
if (j) | |
return !0; | |
b.append(n), | |
!i || n.is(h.after) || n.find(h.after).length || b[b.is(k) ? "after" : "append"](i), | |
f(g, h) && (j = 3 == m.nodeType ? e(n, c, g, h, i) : d(n, c, g, h, i)), | |
j || i && i.detach() | |
} | |
}), | |
c.addClass("is-truncated"), | |
j | |
} | |
function e(b, c, d, e, h) { | |
var k = b[0]; | |
if (!k) | |
return !1; | |
var m = j(k) | |
, n = m.indexOf(" ") !== -1 ? " " : "\u3000" | |
, o = "letter" == e.wrap ? "" : n | |
, p = m.split(o) | |
, q = -1 | |
, r = -1 | |
, s = 0 | |
, t = p.length - 1; | |
for (e.fallbackToLetter && 0 == s && 0 == t && (o = "", | |
p = m.split(o), | |
t = p.length - 1); s <= t && (0 != s || 0 != t); ) { | |
var u = Math.floor((s + t) / 2); | |
if (u == r) | |
break; | |
r = u, | |
i(k, p.slice(0, r + 1).join(o) + e.ellipsis), | |
d.children().each(function() { | |
a(this).toggle().toggle() | |
}), | |
f(d, e) ? (t = r, | |
e.fallbackToLetter && 0 == s && 0 == t && (o = "", | |
p = p[0].split(o), | |
q = -1, | |
r = -1, | |
s = 0, | |
t = p.length - 1)) : (q = r, | |
s = r) | |
} | |
if (q == -1 || 1 == p.length && 0 == p[0].length) { | |
var v = b.parent(); | |
b.detach(); | |
var w = h && h.closest(v).length ? h.length : 0; | |
v.contents().length > w ? k = l(v.contents().eq(-1 - w), c) : (k = l(v, c, !0), | |
w || v.detach()), | |
k && (m = g(j(k), e), | |
i(k, m), | |
w && h && a(k).parent().append(h)) | |
} else | |
m = g(p.slice(0, q + 1).join(o), e), | |
i(k, m); | |
return !0 | |
} | |
function f(a, b) { | |
return a.innerHeight() > b.maxHeight | |
} | |
function g(b, c) { | |
for (; a.inArray(b.slice(-1), c.lastCharacter.remove) > -1; ) | |
b = b.slice(0, -1); | |
return a.inArray(b.slice(-1), c.lastCharacter.noEllipsis) < 0 && (b += c.ellipsis), | |
b | |
} | |
function h(a) { | |
return { | |
width: a.innerWidth(), | |
height: a.innerHeight() | |
} | |
} | |
function i(a, b) { | |
a.innerText ? a.innerText = b : a.nodeValue ? a.nodeValue = b : a.textContent && (a.textContent = b) | |
} | |
function j(a) { | |
return a.innerText ? a.innerText : a.nodeValue ? a.nodeValue : a.textContent ? a.textContent : "" | |
} | |
function k(a) { | |
do | |
a = a.previousSibling; | |
while (a && 1 !== a.nodeType && 3 !== a.nodeType);return a | |
} | |
function l(b, c, d) { | |
var e, f = b && b[0]; | |
if (f) { | |
if (!d) { | |
if (3 === f.nodeType) | |
return f; | |
if (a.trim(b.text())) | |
return l(b.contents().last(), c) | |
} | |
for (e = k(f); !e; ) { | |
if (b = b.parent(), | |
b.is(c) || !b.length) | |
return !1; | |
e = k(b[0]) | |
} | |
if (e) | |
return l(a(e), c) | |
} | |
return !1 | |
} | |
function m(b, c) { | |
return !!b && ("string" == typeof b ? (b = a(b, c), | |
!!b.length && b) : !!b.jquery && b) | |
} | |
function n(a) { | |
for (var b = a.innerHeight(), c = ["paddingTop", "paddingBottom"], d = 0, e = c.length; d < e; d++) { | |
var f = parseInt(a.css(c[d]), 10); | |
isNaN(f) && (f = 0), | |
b -= f | |
} | |
return b | |
} | |
if (!a.fn.dotdotdot) { | |
a.fn.dotdotdot = function(b) { | |
if (0 == this.length) | |
return a.fn.dotdotdot.debug('No element found for "' + this.selector + '".'), | |
this; | |
if (this.length > 1) | |
return this.each(function() { | |
a(this).dotdotdot(b) | |
}); | |
var e = this | |
, g = e.contents(); | |
e.data("dotdotdot") && e.trigger("destroy.dot"), | |
e.data("dotdotdot-style", e.attr("style") || ""), | |
e.css("word-wrap", "break-word"), | |
"nowrap" === e.css("white-space") && e.css("white-space", "normal"), | |
e.bind_events = function() { | |
return e.bind("update.dot", function(b, h) { | |
switch (e.removeClass("is-truncated"), | |
b.preventDefault(), | |
b.stopPropagation(), | |
typeof i.height) { | |
case "number": | |
i.maxHeight = i.height; | |
break; | |
case "function": | |
i.maxHeight = i.height.call(e[0]); | |
break; | |
default: | |
i.maxHeight = n(e) | |
} | |
i.maxHeight += i.tolerance, | |
"undefined" != typeof h && (("string" == typeof h || "nodeType"in h && 1 === h.nodeType) && (h = a("<div />").append(h).contents()), | |
h instanceof a && (g = h)), | |
p = e.wrapInner('<div class="dotdotdot" />').children(), | |
p.contents().detach().end().append(g.clone(!0)).find("br").replaceWith(" <br /> ").end().css({ | |
height: "auto", | |
width: "auto", | |
border: "none", | |
padding: 0, | |
margin: 0 | |
}); | |
var k = !1 | |
, l = !1; | |
return j.afterElement && (k = j.afterElement.clone(!0), | |
k.show(), | |
j.afterElement.detach()), | |
f(p, i) && (l = "children" == i.wrap ? c(p, i, k) : d(p, e, p, i, k)), | |
p.replaceWith(p.contents()), | |
p = null, | |
a.isFunction(i.callback) && i.callback.call(e[0], l, g), | |
j.isTruncated = l, | |
l | |
}).bind("isTruncated.dot", function(a, b) { | |
return a.preventDefault(), | |
a.stopPropagation(), | |
"function" == typeof b && b.call(e[0], j.isTruncated), | |
j.isTruncated | |
}).bind("originalContent.dot", function(a, b) { | |
return a.preventDefault(), | |
a.stopPropagation(), | |
"function" == typeof b && b.call(e[0], g), | |
g | |
}).bind("destroy.dot", function(a) { | |
a.preventDefault(), | |
a.stopPropagation(), | |
e.unwatch().unbind_events().contents().detach().end().append(g).attr("style", e.data("dotdotdot-style") || "").removeClass("is-truncated").data("dotdotdot", !1) | |
}), | |
e | |
} | |
, | |
e.unbind_events = function() { | |
return e.unbind(".dot"), | |
e | |
} | |
, | |
e.watch = function() { | |
if (e.unwatch(), | |
"window" == i.watch) { | |
var b = a(window) | |
, c = b.width() | |
, d = b.height(); | |
b.bind("resize.dot" + j.dotId, function() { | |
c == b.width() && d == b.height() && i.windowResizeFix || (c = b.width(), | |
d = b.height(), | |
l && clearInterval(l), | |
l = setTimeout(function() { | |
e.trigger("update.dot") | |
}, 100)) | |
}) | |
} else | |
k = h(e), | |
l = setInterval(function() { | |
if (e.is(":visible")) { | |
var a = h(e); | |
k.width == a.width && k.height == a.height || (e.trigger("update.dot"), | |
k = a) | |
} | |
}, 500); | |
return e | |
} | |
, | |
e.unwatch = function() { | |
return a(window).unbind("resize.dot" + j.dotId), | |
l && clearInterval(l), | |
e | |
} | |
; | |
var i = a.extend(!0, {}, a.fn.dotdotdot.defaults, b) | |
, j = {} | |
, k = {} | |
, l = null | |
, p = null; | |
return i.lastCharacter.remove instanceof Array || (i.lastCharacter.remove = a.fn.dotdotdot.defaultArrays.lastCharacter.remove), | |
i.lastCharacter.noEllipsis instanceof Array || (i.lastCharacter.noEllipsis = a.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis), | |
j.afterElement = m(i.after, e), | |
j.isTruncated = !1, | |
j.dotId = o++, | |
e.data("dotdotdot", !0).bind_events().trigger("update.dot"), | |
i.watch && e.watch(), | |
e | |
} | |
, | |
a.fn.dotdotdot.defaults = { | |
ellipsis: "... ", | |
wrap: "word", | |
fallbackToLetter: !0, | |
lastCharacter: {}, | |
tolerance: 0, | |
callback: null, | |
after: null, | |
height: null, | |
watch: !1, | |
windowResizeFix: !0 | |
}, | |
a.fn.dotdotdot.defaultArrays = { | |
lastCharacter: { | |
remove: [" ", "\u3000", ",", ";", ".", "!", "?"], | |
noEllipsis: [] | |
} | |
}, | |
a.fn.dotdotdot.debug = function(a) {} | |
; | |
var o = 1 | |
, p = a.fn.html; | |
a.fn.html = function(c) { | |
return c != b && !a.isFunction(c) && this.data("dotdotdot") ? this.trigger("update", [c]) : p.apply(this, arguments) | |
} | |
; | |
var q = a.fn.text; | |
a.fn.text = function(c) { | |
return c != b && !a.isFunction(c) && this.data("dotdotdot") ? (c = a("<div />").text(c).html(), | |
this.trigger("update", [c])) : q.apply(this, arguments) | |
} | |
} | |
}(jQuery), | |
jQuery(document).ready(function(a) { | |
a(".dot-ellipsis").each(function() { | |
var b = a(this).hasClass("dot-resize-update") | |
, c = a(this).hasClass("dot-timer-update") | |
, d = 0 | |
, e = a(this).attr("class").split(/\s+/); | |
a.each(e, function(a, b) { | |
var c = b.match(/^dot-height-(\d+)$/); | |
null !== c && (d = Number(c[1])) | |
}); | |
var f = new Object; | |
c && (f.watch = !0), | |
b && (f.watch = "window"), | |
d > 0 && (f.height = d), | |
a(this).dotdotdot(f) | |
}) | |
}), | |
jQuery(window).load(function() { | |
jQuery(".dot-ellipsis.dot-load-update").trigger("update.dot") | |
}), | |
function(a, b) { | |
"use strict"; | |
"object" == typeof module && module.exports ? module.exports = b(require("./punycode"), require("./IPv6"), require("./SecondLevelDomains")) : "function" == typeof define && define.amd ? define(["./punycode", "./IPv6", "./SecondLevelDomains"], b) : a.URI = b(a.punycode, a.IPv6, a.SecondLevelDomains, a) | |
}(this, function(a, b, c, d) { | |
"use strict"; | |
function e(a, b) { | |
var c = arguments.length >= 1 | |
, d = arguments.length >= 2; | |
if (!(this instanceof e)) | |
return c ? d ? new e(a,b) : new e(a) : new e; | |
if (void 0 === a) { | |
if (c) | |
throw new TypeError("undefined is not a valid argument for URI"); | |
a = "undefined" != typeof location ? location.href + "" : "" | |
} | |
return this.href(a), | |
void 0 !== b ? this.absoluteTo(b) : this | |
} | |
function f(a) { | |
return a.replace(/([.*+?^=!:${}()|[\]\/\\])/g, "\\$1") | |
} | |
function g(a) { | |
return void 0 === a ? "Undefined" : String(Object.prototype.toString.call(a)).slice(8, -1) | |
} | |
function h(a) { | |
return "Array" === g(a) | |
} | |
function i(a, b) { | |
var c, d, e = {}; | |
if ("RegExp" === g(b)) | |
e = null; | |
else if (h(b)) | |
for (c = 0, | |
d = b.length; c < d; c++) | |
e[b[c]] = !0; | |
else | |
e[b] = !0; | |
for (c = 0, | |
d = a.length; c < d; c++) { | |
var f = e && void 0 !== e[a[c]] || !e && b.test(a[c]); | |
f && (a.splice(c, 1), | |
d--, | |
c--) | |
} | |
return a | |
} | |
function j(a, b) { | |
var c, d; | |
if (h(b)) { | |
for (c = 0, | |
d = b.length; c < d; c++) | |
if (!j(a, b[c])) | |
return !1; | |
return !0 | |
} | |
var e = g(b); | |
for (c = 0, | |
d = a.length; c < d; c++) | |
if ("RegExp" === e) { | |
if ("string" == typeof a[c] && a[c].match(b)) | |
return !0 | |
} else if (a[c] === b) | |
return !0; | |
return !1 | |
} | |
function k(a, b) { | |
if (!h(a) || !h(b)) | |
return !1; | |
if (a.length !== b.length) | |
return !1; | |
a.sort(), | |
b.sort(); | |
for (var c = 0, d = a.length; c < d; c++) | |
if (a[c] !== b[c]) | |
return !1; | |
return !0 | |
} | |
function l(a) { | |
var b = /^\/+|\/+$/g; | |
return a.replace(b, "") | |
} | |
function m(a) { | |
return escape(a) | |
} | |
function n(a) { | |
return encodeURIComponent(a).replace(/[!'()*]/g, m).replace(/\*/g, "%2A") | |
} | |
function o(a) { | |
return function(b, c) { | |
return void 0 === b ? this._parts[a] || "" : (this._parts[a] = b || null, | |
this.build(!c), | |
this) | |
} | |
} | |
function p(a, b) { | |
return function(c, d) { | |
return void 0 === c ? this._parts[a] || "" : (null !== c && (c += "", | |
c.charAt(0) === b && (c = c.substring(1))), | |
this._parts[a] = c, | |
this.build(!d), | |
this) | |
} | |
} | |
var q = d && d.URI; | |
e.version = "1.18.4"; | |
var r = e.prototype | |
, s = Object.prototype.hasOwnProperty; | |
e._parts = function() { | |
return { | |
protocol: null, | |
username: null, | |
password: null, | |
hostname: null, | |
urn: null, | |
port: null, | |
path: null, | |
query: null, | |
fragment: null, | |
duplicateQueryParameters: e.duplicateQueryParameters, | |
escapeQuerySpace: e.escapeQuerySpace | |
} | |
} | |
, | |
e.duplicateQueryParameters = !1, | |
e.escapeQuerySpace = !0, | |
e.protocol_expression = /^[a-z][a-z0-9.+-]*$/i, | |
e.idn_expression = /[^a-z0-9\.-]/i, | |
e.punycode_expression = /(xn--)/i, | |
e.ip4_expression = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/, | |
e.ip6_expression = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/, | |
e.find_uri_expression = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))/gi, | |
e.findUri = { | |
start: /\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi, | |
end: /[\s\r\n]|$/, | |
trim: /[`!()\[\]{};:'".,<>?\xab\xbb\u201c\u201d\u201e\u2018\u2019]+$/, | |
parens: /(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g | |
}, | |
e.defaultPorts = { | |
http: "80", | |
https: "443", | |
ftp: "21", | |
gopher: "70", | |
ws: "80", | |
wss: "443" | |
}, | |
e.invalid_hostname_characters = /[^a-zA-Z0-9\.-]/, | |
e.domAttributes = { | |
a: "href", | |
blockquote: "cite", | |
link: "href", | |
base: "href", | |
script: "src", | |
form: "action", | |
img: "src", | |
area: "href", | |
iframe: "src", | |
embed: "src", | |
source: "src", | |
track: "src", | |
input: "src", | |
audio: "src", | |
video: "src" | |
}, | |
e.getDomAttribute = function(a) { | |
if (a && a.nodeName) { | |
var b = a.nodeName.toLowerCase(); | |
if ("input" !== b || "image" === a.type) | |
return e.domAttributes[b] | |
} | |
} | |
, | |
e.encode = n, | |
e.decode = decodeURIComponent, | |
e.iso8859 = function() { | |
e.encode = escape, | |
e.decode = unescape | |
} | |
, | |
e.unicode = function() { | |
e.encode = n, | |
e.decode = decodeURIComponent | |
} | |
, | |
e.characters = { | |
pathname: { | |
encode: { | |
expression: /%(24|26|2B|2C|3B|3D|3A|40)/gi, | |
map: { | |
"%24": "$", | |
"%26": "&", | |
"%2B": "+", | |
"%2C": ",", | |
"%3B": ";", | |
"%3D": "=", | |
"%3A": ":", | |
"%40": "@" | |
} | |
}, | |
decode: { | |
expression: /[\/\?#]/g, | |
map: { | |
"/": "%2F", | |
"?": "%3F", | |
"#": "%23" | |
} | |
} | |
}, | |
reserved: { | |
encode: { | |
expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/gi, | |
map: { | |
"%3A": ":", | |
"%2F": "/", | |
"%3F": "?", | |
"%23": "#", | |
"%5B": "[", | |
"%5D": "]", | |
"%40": "@", | |
"%21": "!", | |
"%24": "$", | |
"%26": "&", | |
"%27": "'", | |
"%28": "(", | |
"%29": ")", | |
"%2A": "*", | |
"%2B": "+", | |
"%2C": ",", | |
"%3B": ";", | |
"%3D": "=" | |
} | |
} | |
}, | |
urnpath: { | |
encode: { | |
expression: /%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/gi, | |
map: { | |
"%21": "!", | |
"%24": "$", | |
"%27": "'", | |
"%28": "(", | |
"%29": ")", | |
"%2A": "*", | |
"%2B": "+", | |
"%2C": ",", | |
"%3B": ";", | |
"%3D": "=", | |
"%40": "@" | |
} | |
}, | |
decode: { | |
expression: /[\/\?#:]/g, | |
map: { | |
"/": "%2F", | |
"?": "%3F", | |
"#": "%23", | |
":": "%3A" | |
} | |
} | |
} | |
}, | |
e.encodeQuery = function(a, b) { | |
var c = e.encode(a + ""); | |
return void 0 === b && (b = e.escapeQuerySpace), | |
b ? c.replace(/%20/g, "+") : c | |
} | |
, | |
e.decodeQuery = function(a, b) { | |
a += "", | |
void 0 === b && (b = e.escapeQuerySpace); | |
try { | |
return e.decode(b ? a.replace(/\+/g, "%20") : a) | |
} catch (c) { | |
return a | |
} | |
} | |
; | |
var t, u = { | |
encode: "encode", | |
decode: "decode" | |
}, v = function(a, b) { | |
return function(c) { | |
try { | |
return e[b](c + "").replace(e.characters[a][b].expression, function(c) { | |
return e.characters[a][b].map[c] | |
}) | |
} catch (d) { | |
return c | |
} | |
} | |
}; | |
for (t in u) | |
e[t + "PathSegment"] = v("pathname", u[t]), | |
e[t + "UrnPathSegment"] = v("urnpath", u[t]); | |
var w = function(a, b, c) { | |
return function(d) { | |
var f; | |
f = c ? function(a) { | |
return e[b](e[c](a)) | |
} | |
: e[b]; | |
for (var g = (d + "").split(a), h = 0, i = g.length; h < i; h++) | |
g[h] = f(g[h]); | |
return g.join(a) | |
} | |
}; | |
e.decodePath = w("/", "decodePathSegment"), | |
e.decodeUrnPath = w(":", "decodeUrnPathSegment"), | |
e.recodePath = w("/", "encodePathSegment", "decode"), | |
e.recodeUrnPath = w(":", "encodeUrnPathSegment", "decode"), | |
e.encodeReserved = v("reserved", "encode"), | |
e.parse = function(a, b) { | |
var c; | |
return b || (b = {}), | |
c = a.indexOf("#"), | |
c > -1 && (b.fragment = a.substring(c + 1) || null, | |
a = a.substring(0, c)), | |
c = a.indexOf("?"), | |
c > -1 && (b.query = a.substring(c + 1) || null, | |
a = a.substring(0, c)), | |
"//" === a.substring(0, 2) ? (b.protocol = null, | |
a = a.substring(2), | |
a = e.parseAuthority(a, b)) : (c = a.indexOf(":"), | |
c > -1 && (b.protocol = a.substring(0, c) || null, | |
b.protocol && !b.protocol.match(e.protocol_expression) ? b.protocol = void 0 : "//" === a.substring(c + 1, c + 3) ? (a = a.substring(c + 3), | |
a = e.parseAuthority(a, b)) : (a = a.substring(c + 1), | |
b.urn = !0))), | |
b.path = a, | |
b | |
} | |
, | |
e.parseHost = function(a, b) { | |
a = a.replace(/\\/g, "/"); | |
var c, d, e = a.indexOf("/"); | |
if (e === -1 && (e = a.length), | |
"[" === a.charAt(0)) | |
c = a.indexOf("]"), | |
b.hostname = a.substring(1, c) || null, | |
b.port = a.substring(c + 2, e) || null, | |
"/" === b.port && (b.port = null); | |
else { | |
var f = a.indexOf(":") | |
, g = a.indexOf("/") | |
, h = a.indexOf(":", f + 1); | |
h !== -1 && (g === -1 || h < g) ? (b.hostname = a.substring(0, e) || null, | |
b.port = null) : (d = a.substring(0, e).split(":"), | |
b.hostname = d[0] || null, | |
b.port = d[1] || null) | |
} | |
return b.hostname && "/" !== a.substring(e).charAt(0) && (e++, | |
a = "/" + a), | |
a.substring(e) || "/" | |
} | |
, | |
e.parseAuthority = function(a, b) { | |
return a = e.parseUserinfo(a, b), | |
e.parseHost(a, b) | |
} | |
, | |
e.parseUserinfo = function(a, b) { | |
var c, d = a.indexOf("/"), f = a.lastIndexOf("@", d > -1 ? d : a.length - 1); | |
return f > -1 && (d === -1 || f < d) ? (c = a.substring(0, f).split(":"), | |
b.username = c[0] ? e.decode(c[0]) : null, | |
c.shift(), | |
b.password = c[0] ? e.decode(c.join(":")) : null, | |
a = a.substring(f + 1)) : (b.username = null, | |
b.password = null), | |
a | |
} | |
, | |
e.parseQuery = function(a, b) { | |
if (!a) | |
return {}; | |
if (a = a.replace(/&+/g, "&").replace(/^\?*&*|&+$/g, ""), | |
!a) | |
return {}; | |
for (var c, d, f, g = {}, h = a.split("&"), i = h.length, j = 0; j < i; j++) | |
c = h[j].split("="), | |
d = e.decodeQuery(c.shift(), b), | |
f = c.length ? e.decodeQuery(c.join("="), b) : null, | |
s.call(g, d) ? ("string" != typeof g[d] && null !== g[d] || (g[d] = [g[d]]), | |
g[d].push(f)) : g[d] = f; | |
return g | |
} | |
, | |
e.build = function(a) { | |
var b = ""; | |
return a.protocol && (b += a.protocol + ":"), | |
a.urn || !b && !a.hostname || (b += "//"), | |
b += e.buildAuthority(a) || "", | |
"string" == typeof a.path && ("/" !== a.path.charAt(0) && "string" == typeof a.hostname && (b += "/"), | |
b += a.path), | |
"string" == typeof a.query && a.query && (b += "?" + a.query), | |
"string" == typeof a.fragment && a.fragment && (b += "#" + a.fragment), | |
b | |
} | |
, | |
e.buildHost = function(a) { | |
var b = ""; | |
return a.hostname ? (b += e.ip6_expression.test(a.hostname) ? "[" + a.hostname + "]" : a.hostname, | |
a.port && (b += ":" + a.port), | |
b) : "" | |
} | |
, | |
e.buildAuthority = function(a) { | |
return e.buildUserinfo(a) + e.buildHost(a) | |
} | |
, | |
e.buildUserinfo = function(a) { | |
var b = ""; | |
return a.username && (b += e.encode(a.username)), | |
a.password && (b += ":" + e.encode(a.password)), | |
b && (b += "@"), | |
b | |
} | |
, | |
e.buildQuery = function(a, b, c) { | |
var d, f, g, i, j = ""; | |
for (f in a) | |
if (s.call(a, f) && f) | |
if (h(a[f])) | |
for (d = {}, | |
g = 0, | |
i = a[f].length; g < i; g++) | |
void 0 !== a[f][g] && void 0 === d[a[f][g] + ""] && (j += "&" + e.buildQueryParameter(f, a[f][g], c), | |
b !== !0 && (d[a[f][g] + ""] = !0)); | |
else | |
void 0 !== a[f] && (j += "&" + e.buildQueryParameter(f, a[f], c)); | |
return j.substring(1) | |
} | |
, | |
e.buildQueryParameter = function(a, b, c) { | |
return e.encodeQuery(a, c) + (null !== b ? "=" + e.encodeQuery(b, c) : "") | |
} | |
, | |
e.addQuery = function(a, b, c) { | |
if ("object" == typeof b) | |
for (var d in b) | |
s.call(b, d) && e.addQuery(a, d, b[d]); | |
else { | |
if ("string" != typeof b) | |
throw new TypeError("URI.addQuery() accepts an object, string as the name parameter"); | |
if (void 0 === a[b]) | |
return void (a[b] = c); | |
"string" == typeof a[b] && (a[b] = [a[b]]), | |
h(c) || (c = [c]), | |
a[b] = (a[b] || []).concat(c) | |
} | |
} | |
, | |
e.removeQuery = function(a, b, c) { | |
var d, f, j; | |
if (h(b)) | |
for (d = 0, | |
f = b.length; d < f; d++) | |
a[b[d]] = void 0; | |
else if ("RegExp" === g(b)) | |
for (j in a) | |
b.test(j) && (a[j] = void 0); | |
else if ("object" == typeof b) | |
for (j in b) | |
s.call(b, j) && e.removeQuery(a, j, b[j]); | |
else { | |
if ("string" != typeof b) | |
throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter"); | |
void 0 !== c ? "RegExp" === g(c) ? !h(a[b]) && c.test(a[b]) ? a[b] = void 0 : a[b] = i(a[b], c) : a[b] !== String(c) || h(c) && 1 !== c.length ? h(a[b]) && (a[b] = i(a[b], c)) : a[b] = void 0 : a[b] = void 0 | |
} | |
} | |
, | |
e.hasQuery = function(a, b, c, d) { | |
switch (g(b)) { | |
case "String": | |
break; | |
case "RegExp": | |
for (var f in a) | |
if (s.call(a, f) && b.test(f) && (void 0 === c || e.hasQuery(a, f, c))) | |
return !0; | |
return !1; | |
case "Object": | |
for (var i in b) | |
if (s.call(b, i) && !e.hasQuery(a, i, b[i])) | |
return !1; | |
return !0; | |
default: | |
throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter") | |
} | |
switch (g(c)) { | |
case "Undefined": | |
return b in a; | |
case "Boolean": | |
var l = Boolean(h(a[b]) ? a[b].length : a[b]); | |
return c === l; | |
case "Function": | |
return !!c(a[b], b, a); | |
case "Array": | |
if (!h(a[b])) | |
return !1; | |
var m = d ? j : k; | |
return m(a[b], c); | |
case "RegExp": | |
return h(a[b]) ? !!d && j(a[b], c) : Boolean(a[b] && a[b].match(c)); | |
case "Number": | |
c = String(c); | |
case "String": | |
return h(a[b]) ? !!d && j(a[b], c) : a[b] === c; | |
default: | |
throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter") | |
} | |
} | |
, | |
e.joinPaths = function() { | |
for (var a = [], b = [], c = 0, d = 0; d < arguments.length; d++) { | |
var f = new e(arguments[d]); | |
a.push(f); | |
for (var g = f.segment(), h = 0; h < g.length; h++) | |
"string" == typeof g[h] && b.push(g[h]), | |
g[h] && c++ | |
} | |
if (!b.length || !c) | |
return new e(""); | |
var i = new e("").segment(b); | |
return "" !== a[0].path() && "/" !== a[0].path().slice(0, 1) || i.path("/" + i.path()), | |
i.normalize() | |
} | |
, | |
e.commonPath = function(a, b) { | |
var c, d = Math.min(a.length, b.length); | |
for (c = 0; c < d; c++) | |
if (a.charAt(c) !== b.charAt(c)) { | |
c--; | |
break | |
} | |
return c < 1 ? a.charAt(0) === b.charAt(0) && "/" === a.charAt(0) ? "/" : "" : ("/" === a.charAt(c) && "/" === b.charAt(c) || (c = a.substring(0, c).lastIndexOf("/")), | |
a.substring(0, c + 1)) | |
} | |
, | |
e.withinString = function(a, b, c) { | |
c || (c = {}); | |
var d = c.start || e.findUri.start | |
, f = c.end || e.findUri.end | |
, g = c.trim || e.findUri.trim | |
, h = c.parens || e.findUri.parens | |
, i = /[a-z0-9-]=["']?$/i; | |
for (d.lastIndex = 0; ; ) { | |
var j = d.exec(a); | |
if (!j) | |
break; | |
var k = j.index; | |
if (c.ignoreHtml) { | |
var l = a.slice(Math.max(k - 3, 0), k); | |
if (l && i.test(l)) | |
continue | |
} | |
for (var m = k + a.slice(k).search(f), n = a.slice(k, m), o = -1; ; ) { | |
var p = h.exec(n); | |
if (!p) | |
break; | |
var q = p.index + p[0].length; | |
o = Math.max(o, q) | |
} | |
if (n = o > -1 ? n.slice(0, o) + n.slice(o + 1).replace(g, "") : n.replace(g, ""), | |
!c.ignore || !c.ignore.test(n)) { | |
m = k + n.length; | |
var r = b(n, k, m, a); | |
void 0 !== r ? (r = String(r), | |
a = a.slice(0, k) + r + a.slice(m), | |
d.lastIndex = k + r.length) : d.lastIndex = m | |
} | |
} | |
return d.lastIndex = 0, | |
a | |
} | |
, | |
e.ensureValidHostname = function(b) { | |
if (b.match(e.invalid_hostname_characters)) { | |
if (!a) | |
throw new TypeError('Hostname "' + b + '" contains characters other than [A-Z0-9.-] and Punycode.js is not available'); | |
if (a.toASCII(b).match(e.invalid_hostname_characters)) | |
throw new TypeError('Hostname "' + b + '" contains characters other than [A-Z0-9.-]') | |
} | |
} | |
, | |
e.noConflict = function(a) { | |
if (a) { | |
var b = { | |
URI: this.noConflict() | |
}; | |
return d.URITemplate && "function" == typeof d.URITemplate.noConflict && (b.URITemplate = d.URITemplate.noConflict()), | |
d.IPv6 && "function" == typeof d.IPv6.noConflict && (b.IPv6 = d.IPv6.noConflict()), | |
d.SecondLevelDomains && "function" == typeof d.SecondLevelDomains.noConflict && (b.SecondLevelDomains = d.SecondLevelDomains.noConflict()), | |
b | |
} | |
return d.URI === this && (d.URI = q), | |
this | |
} | |
, | |
r.build = function(a) { | |
return a === !0 ? this._deferred_build = !0 : (void 0 === a || this._deferred_build) && (this._string = e.build(this._parts), | |
this._deferred_build = !1), | |
this | |
} | |
, | |
r.clone = function() { | |
return new e(this) | |
} | |
, | |
r.valueOf = r.toString = function() { | |
return this.build(!1)._string | |
} | |
, | |
r.protocol = o("protocol"), | |
r.username = o("username"), | |
r.password = o("password"), | |
r.hostname = o("hostname"), | |
r.port = o("port"), | |
r.query = p("query", "?"), | |
r.fragment = p("fragment", "#"), | |
r.search = function(a, b) { | |
var c = this.query(a, b); | |
return "string" == typeof c && c.length ? "?" + c : c | |
} | |
, | |
r.hash = function(a, b) { | |
var c = this.fragment(a, b); | |
return "string" == typeof c && c.length ? "#" + c : c | |
} | |
, | |
r.pathname = function(a, b) { | |
if (void 0 === a || a === !0) { | |
var c = this._parts.path || (this._parts.hostname ? "/" : ""); | |
return a ? (this._parts.urn ? e.decodeUrnPath : e.decodePath)(c) : c | |
} | |
return this._parts.urn ? this._parts.path = a ? e.recodeUrnPath(a) : "" : this._parts.path = a ? e.recodePath(a) : "/", | |
this.build(!b), | |
this | |
} | |
, | |
r.path = r.pathname, | |
r.href = function(a, b) { | |
var c; | |
if (void 0 === a) | |
return this.toString(); | |
this._string = "", | |
this._parts = e._parts(); | |
var d = a instanceof e | |
, f = "object" == typeof a && (a.hostname || a.path || a.pathname); | |
if (a.nodeName) { | |
var g = e.getDomAttribute(a); | |
a = a[g] || "", | |
f = !1 | |
} | |
if (!d && f && void 0 !== a.pathname && (a = a.toString()), | |
"string" == typeof a || a instanceof String) | |
this._parts = e.parse(String(a), this._parts); | |
else { | |
if (!d && !f) | |
throw new TypeError("invalid input"); | |
var h = d ? a._parts : a; | |
for (c in h) | |
s.call(this._parts, c) && (this._parts[c] = h[c]) | |
} | |
return this.build(!b), | |
this | |
} | |
, | |
r.is = function(a) { | |
var b = !1 | |
, d = !1 | |
, f = !1 | |
, g = !1 | |
, h = !1 | |
, i = !1 | |
, j = !1 | |
, k = !this._parts.urn; | |
switch (this._parts.hostname && (k = !1, | |
d = e.ip4_expression.test(this._parts.hostname), | |
f = e.ip6_expression.test(this._parts.hostname), | |
b = d || f, | |
g = !b, | |
h = g && c && c.has(this._parts.hostname), | |
i = g && e.idn_expression.test(this._parts.hostname), | |
j = g && e.punycode_expression.test(this._parts.hostname)), | |
a.toLowerCase()) { | |
case "relative": | |
return k; | |
case "absolute": | |
return !k; | |
case "domain": | |
case "name": | |
return g; | |
case "sld": | |
return h; | |
case "ip": | |
return b; | |
case "ip4": | |
case "ipv4": | |
case "inet4": | |
return d; | |
case "ip6": | |
case "ipv6": | |
case "inet6": | |
return f; | |
case "idn": | |
return i; | |
case "url": | |
return !this._parts.urn; | |
case "urn": | |
return !!this._parts.urn; | |
case "punycode": | |
return j | |
} | |
return null | |
} | |
; | |
var x = r.protocol | |
, y = r.port | |
, z = r.hostname; | |
r.protocol = function(a, b) { | |
if (void 0 !== a && a && (a = a.replace(/:(\/\/)?$/, ""), | |
!a.match(e.protocol_expression))) | |
throw new TypeError('Protocol "' + a + "\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]"); | |
return x.call(this, a, b) | |
} | |
, | |
r.scheme = r.protocol, | |
r.port = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 !== a && (0 === a && (a = null), | |
a && (a += "", | |
":" === a.charAt(0) && (a = a.substring(1)), | |
a.match(/[^0-9]/)))) | |
throw new TypeError('Port "' + a + '" contains characters other than [0-9]'); | |
return y.call(this, a, b) | |
} | |
, | |
r.hostname = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 !== a) { | |
var c = {} | |
, d = e.parseHost(a, c); | |
if ("/" !== d) | |
throw new TypeError('Hostname "' + a + '" contains characters other than [A-Z0-9.-]'); | |
a = c.hostname | |
} | |
return z.call(this, a, b) | |
} | |
, | |
r.origin = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 === a) { | |
var c = this.protocol() | |
, d = this.authority(); | |
return d ? (c ? c + "://" : "") + this.authority() : "" | |
} | |
var f = e(a); | |
return this.protocol(f.protocol()).authority(f.authority()).build(!b), | |
this | |
} | |
, | |
r.host = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 === a) | |
return this._parts.hostname ? e.buildHost(this._parts) : ""; | |
var c = e.parseHost(a, this._parts); | |
if ("/" !== c) | |
throw new TypeError('Hostname "' + a + '" contains characters other than [A-Z0-9.-]'); | |
return this.build(!b), | |
this | |
} | |
, | |
r.authority = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 === a) | |
return this._parts.hostname ? e.buildAuthority(this._parts) : ""; | |
var c = e.parseAuthority(a, this._parts); | |
if ("/" !== c) | |
throw new TypeError('Hostname "' + a + '" contains characters other than [A-Z0-9.-]'); | |
return this.build(!b), | |
this | |
} | |
, | |
r.userinfo = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 === a) { | |
var c = e.buildUserinfo(this._parts); | |
return c ? c.substring(0, c.length - 1) : c | |
} | |
return "@" !== a[a.length - 1] && (a += "@"), | |
e.parseUserinfo(a, this._parts), | |
this.build(!b), | |
this | |
} | |
, | |
r.resource = function(a, b) { | |
var c; | |
return void 0 === a ? this.path() + this.search() + this.hash() : (c = e.parse(a), | |
this._parts.path = c.path, | |
this._parts.query = c.query, | |
this._parts.fragment = c.fragment, | |
this.build(!b), | |
this) | |
} | |
, | |
r.subdomain = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 === a) { | |
if (!this._parts.hostname || this.is("IP")) | |
return ""; | |
var c = this._parts.hostname.length - this.domain().length - 1; | |
return this._parts.hostname.substring(0, c) || "" | |
} | |
var d = this._parts.hostname.length - this.domain().length | |
, g = this._parts.hostname.substring(0, d) | |
, h = new RegExp("^" + f(g)); | |
return a && "." !== a.charAt(a.length - 1) && (a += "."), | |
a && e.ensureValidHostname(a), | |
this._parts.hostname = this._parts.hostname.replace(h, a), | |
this.build(!b), | |
this | |
} | |
, | |
r.domain = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if ("boolean" == typeof a && (b = a, | |
a = void 0), | |
void 0 === a) { | |
if (!this._parts.hostname || this.is("IP")) | |
return ""; | |
var c = this._parts.hostname.match(/\./g); | |
if (c && c.length < 2) | |
return this._parts.hostname; | |
var d = this._parts.hostname.length - this.tld(b).length - 1; | |
return d = this._parts.hostname.lastIndexOf(".", d - 1) + 1, | |
this._parts.hostname.substring(d) || "" | |
} | |
if (!a) | |
throw new TypeError("cannot set domain empty"); | |
if (e.ensureValidHostname(a), | |
!this._parts.hostname || this.is("IP")) | |
this._parts.hostname = a; | |
else { | |
var g = new RegExp(f(this.domain()) + "$"); | |
this._parts.hostname = this._parts.hostname.replace(g, a) | |
} | |
return this.build(!b), | |
this | |
} | |
, | |
r.tld = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if ("boolean" == typeof a && (b = a, | |
a = void 0), | |
void 0 === a) { | |
if (!this._parts.hostname || this.is("IP")) | |
return ""; | |
var d = this._parts.hostname.lastIndexOf(".") | |
, e = this._parts.hostname.substring(d + 1); | |
return b !== !0 && c && c.list[e.toLowerCase()] ? c.get(this._parts.hostname) || e : e | |
} | |
var g; | |
if (!a) | |
throw new TypeError("cannot set TLD empty"); | |
if (a.match(/[^a-zA-Z0-9-]/)) { | |
if (!c || !c.is(a)) | |
throw new TypeError('TLD "' + a + '" contains characters other than [A-Z0-9]'); | |
g = new RegExp(f(this.tld()) + "$"), | |
this._parts.hostname = this._parts.hostname.replace(g, a) | |
} else { | |
if (!this._parts.hostname || this.is("IP")) | |
throw new ReferenceError("cannot set TLD on non-domain host"); | |
g = new RegExp(f(this.tld()) + "$"), | |
this._parts.hostname = this._parts.hostname.replace(g, a) | |
} | |
return this.build(!b), | |
this | |
} | |
, | |
r.directory = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 === a || a === !0) { | |
if (!this._parts.path && !this._parts.hostname) | |
return ""; | |
if ("/" === this._parts.path) | |
return "/"; | |
var c = this._parts.path.length - this.filename().length - 1 | |
, d = this._parts.path.substring(0, c) || (this._parts.hostname ? "/" : ""); | |
return a ? e.decodePath(d) : d | |
} | |
var g = this._parts.path.length - this.filename().length | |
, h = this._parts.path.substring(0, g) | |
, i = new RegExp("^" + f(h)); | |
return this.is("relative") || (a || (a = "/"), | |
"/" !== a.charAt(0) && (a = "/" + a)), | |
a && "/" !== a.charAt(a.length - 1) && (a += "/"), | |
a = e.recodePath(a), | |
this._parts.path = this._parts.path.replace(i, a), | |
this.build(!b), | |
this | |
} | |
, | |
r.filename = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 === a || a === !0) { | |
if (!this._parts.path || "/" === this._parts.path) | |
return ""; | |
var c = this._parts.path.lastIndexOf("/") | |
, d = this._parts.path.substring(c + 1); | |
return a ? e.decodePathSegment(d) : d | |
} | |
var g = !1; | |
"/" === a.charAt(0) && (a = a.substring(1)), | |
a.match(/\.?\//) && (g = !0); | |
var h = new RegExp(f(this.filename()) + "$"); | |
return a = e.recodePath(a), | |
this._parts.path = this._parts.path.replace(h, a), | |
g ? this.normalizePath(b) : this.build(!b), | |
this | |
} | |
, | |
r.suffix = function(a, b) { | |
if (this._parts.urn) | |
return void 0 === a ? "" : this; | |
if (void 0 === a || a === !0) { | |
if (!this._parts.path || "/" === this._parts.path) | |
return ""; | |
var c, d, g = this.filename(), h = g.lastIndexOf("."); | |
return h === -1 ? "" : (c = g.substring(h + 1), | |
d = /^[a-z0-9%]+$/i.test(c) ? c : "", | |
a ? e.decodePathSegment(d) : d) | |
} | |
"." === a.charAt(0) && (a = a.substring(1)); | |
var i, j = this.suffix(); | |
if (j) | |
i = a ? new RegExp(f(j) + "$") : new RegExp(f("." + j) + "$"); | |
else { | |
if (!a) | |
return this; | |
this._parts.path += "." + e.recodePath(a) | |
} | |
return i && (a = e.recodePath(a), | |
this._parts.path = this._parts.path.replace(i, a)), | |
this.build(!b), | |
this | |
} | |
, | |
r.segment = function(a, b, c) { | |
var d = this._parts.urn ? ":" : "/" | |
, e = this.path() | |
, f = "/" === e.substring(0, 1) | |
, g = e.split(d); | |
if (void 0 !== a && "number" != typeof a && (c = b, | |
b = a, | |
a = void 0), | |
void 0 !== a && "number" != typeof a) | |
throw new Error('Bad segment "' + a + '", must be 0-based integer'); | |
if (f && g.shift(), | |
a < 0 && (a = Math.max(g.length + a, 0)), | |
void 0 === b) | |
return void 0 === a ? g : g[a]; | |
if (null === a || void 0 === g[a]) | |
if (h(b)) { | |
g = []; | |
for (var i = 0, j = b.length; i < j; i++) | |
(b[i].length || g.length && g[g.length - 1].length) && (g.length && !g[g.length - 1].length && g.pop(), | |
g.push(l(b[i]))) | |
} else | |
(b || "string" == typeof b) && (b = l(b), | |
"" === g[g.length - 1] ? g[g.length - 1] = b : g.push(b)); | |
else | |
b ? g[a] = l(b) : g.splice(a, 1); | |
return f && g.unshift(""), | |
this.path(g.join(d), c) | |
} | |
, | |
r.segmentCoded = function(a, b, c) { | |
var d, f, g; | |
if ("number" != typeof a && (c = b, | |
b = a, | |
a = void 0), | |
void 0 === b) { | |
if (d = this.segment(a, b, c), | |
h(d)) | |
for (f = 0, | |
g = d.length; f < g; f++) | |
d[f] = e.decode(d[f]); | |
else | |
d = void 0 !== d ? e.decode(d) : void 0; | |
return d | |
} | |
if (h(b)) | |
for (f = 0, | |
g = b.length; f < g; f++) | |
b[f] = e.encode(b[f]); | |
else | |
b = "string" == typeof b || b instanceof String ? e.encode(b) : b; | |
return this.segment(a, b, c) | |
} | |
; | |
var A = r.query; | |
return r.query = function(a, b) { | |
if (a === !0) | |
return e.parseQuery(this._parts.query, this._parts.escapeQuerySpace); | |
if ("function" == typeof a) { | |
var c = e.parseQuery(this._parts.query, this._parts.escapeQuerySpace) | |
, d = a.call(this, c); | |
return this._parts.query = e.buildQuery(d || c, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace), | |
this.build(!b), | |
this | |
} | |
return void 0 !== a && "string" != typeof a ? (this._parts.query = e.buildQuery(a, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace), | |
this.build(!b), | |
this) : A.call(this, a, b) | |
} | |
, | |
r.setQuery = function(a, b, c) { | |
var d = e.parseQuery(this._parts.query, this._parts.escapeQuerySpace); | |
if ("string" == typeof a || a instanceof String) | |
d[a] = void 0 !== b ? b : null; | |
else { | |
if ("object" != typeof a) | |
throw new TypeError("URI.addQuery() accepts an object, string as the name parameter"); | |
for (var f in a) | |
s.call(a, f) && (d[f] = a[f]) | |
} | |
return this._parts.query = e.buildQuery(d, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace), | |
"string" != typeof a && (c = b), | |
this.build(!c), | |
this | |
} | |
, | |
r.addQuery = function(a, b, c) { | |
var d = e.parseQuery(this._parts.query, this._parts.escapeQuerySpace); | |
return e.addQuery(d, a, void 0 === b ? null : b), | |
this._parts.query = e.buildQuery(d, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace), | |
"string" != typeof a && (c = b), | |
this.build(!c), | |
this | |
} | |
, | |
r.removeQuery = function(a, b, c) { | |
var d = e.parseQuery(this._parts.query, this._parts.escapeQuerySpace); | |
return e.removeQuery(d, a, b), | |
this._parts.query = e.buildQuery(d, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace), | |
"string" != typeof a && (c = b), | |
this.build(!c), | |
this | |
} | |
, | |
r.hasQuery = function(a, b, c) { | |
var d = e.parseQuery(this._parts.query, this._parts.escapeQuerySpace); | |
return e.hasQuery(d, a, b, c) | |
} | |
, | |
r.setSearch = r.setQuery, | |
r.addSearch = r.addQuery, | |
r.removeSearch = r.removeQuery, | |
r.hasSearch = r.hasQuery, | |
r.normalize = function() { | |
return this._parts.urn ? this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build() : this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build() | |
} | |
, | |
r.normalizeProtocol = function(a) { | |
return "string" == typeof this._parts.protocol && (this._parts.protocol = this._parts.protocol.toLowerCase(), | |
this.build(!a)), | |
this | |
} | |
, | |
r.normalizeHostname = function(c) { | |
return this._parts.hostname && (this.is("IDN") && a ? this._parts.hostname = a.toASCII(this._parts.hostname) : this.is("IPv6") && b && (this._parts.hostname = b.best(this._parts.hostname)), | |
this._parts.hostname = this._parts.hostname.toLowerCase(), | |
this.build(!c)), | |
this | |
} | |
, | |
r.normalizePort = function(a) { | |
return "string" == typeof this._parts.protocol && this._parts.port === e.defaultPorts[this._parts.protocol] && (this._parts.port = null, | |
this.build(!a)), | |
this | |
} | |
, | |
r.normalizePath = function(a) { | |
var b = this._parts.path; | |
if (!b) | |
return this; | |
if (this._parts.urn) | |
return this._parts.path = e.recodeUrnPath(this._parts.path), | |
this.build(!a), | |
this; | |
if ("/" === this._parts.path) | |
return this; | |
b = e.recodePath(b); | |
var c, d, f, g = ""; | |
for ("/" !== b.charAt(0) && (c = !0, | |
b = "/" + b), | |
"/.." !== b.slice(-3) && "/." !== b.slice(-2) || (b += "/"), | |
b = b.replace(/(\/(\.\/)+)|(\/\.$)/g, "/").replace(/\/{2,}/g, "/"), | |
c && (g = b.substring(1).match(/^(\.\.\/)+/) || "", | |
g && (g = g[0])); ; ) { | |
if (d = b.search(/\/\.\.(\/|$)/), | |
d === -1) | |
break; | |
0 !== d ? (f = b.substring(0, d).lastIndexOf("/"), | |
f === -1 && (f = d), | |
b = b.substring(0, f) + b.substring(d + 3)) : b = b.substring(3) | |
} | |
return c && this.is("relative") && (b = g + b.substring(1)), | |
this._parts.path = b, | |
this.build(!a), | |
this | |
} | |
, | |
r.normalizePathname = r.normalizePath, | |
r.normalizeQuery = function(a) { | |
return "string" == typeof this._parts.query && (this._parts.query.length ? this.query(e.parseQuery(this._parts.query, this._parts.escapeQuerySpace)) : this._parts.query = null, | |
this.build(!a)), | |
this | |
} | |
, | |
r.normalizeFragment = function(a) { | |
return this._parts.fragment || (this._parts.fragment = null, | |
this.build(!a)), | |
this | |
} | |
, | |
r.normalizeSearch = r.normalizeQuery, | |
r.normalizeHash = r.normalizeFragment, | |
r.iso8859 = function() { | |
var a = e.encode | |
, b = e.decode; | |
e.encode = escape, | |
e.decode = decodeURIComponent; | |
try { | |
this.normalize() | |
} finally { | |
e.encode = a, | |
e.decode = b | |
} | |
return this | |
} | |
, | |
r.unicode = function() { | |
var a = e.encode | |
, b = e.decode; | |
e.encode = n, | |
e.decode = unescape; | |
try { | |
this.normalize() | |
} finally { | |
e.encode = a, | |
e.decode = b | |
} | |
return this | |
} | |
, | |
r.readable = function() { | |
var b = this.clone(); | |
b.username("").password("").normalize(); | |
var c = ""; | |
if (b._parts.protocol && (c += b._parts.protocol + "://"), | |
b._parts.hostname && (b.is("punycode") && a ? (c += a.toUnicode(b._parts.hostname), | |
b._parts.port && (c += ":" + b._parts.port)) : c += b.host()), | |
b._parts.hostname && b._parts.path && "/" !== b._parts.path.charAt(0) && (c += "/"), | |
c += b.path(!0), | |
b._parts.query) { | |
for (var d = "", f = 0, g = b._parts.query.split("&"), h = g.length; f < h; f++) { | |
var i = (g[f] || "").split("="); | |
d += "&" + e.decodeQuery(i[0], this._parts.escapeQuerySpace).replace(/&/g, "%26"), | |
void 0 !== i[1] && (d += "=" + e.decodeQuery(i[1], this._parts.escapeQuerySpace).replace(/&/g, "%26")) | |
} | |
c += "?" + d.substring(1) | |
} | |
return c += e.decodeQuery(b.hash(), !0) | |
} | |
, | |
r.absoluteTo = function(a) { | |
var b, c, d, f = this.clone(), g = ["protocol", "username", "password", "hostname", "port"]; | |
if (this._parts.urn) | |
throw new Error("URNs do not have any generally defined hierarchical components"); | |
if (a instanceof e || (a = new e(a)), | |
f._parts.protocol || (f._parts.protocol = a._parts.protocol), | |
this._parts.hostname) | |
return f; | |
for (c = 0; d = g[c]; c++) | |
f._parts[d] = a._parts[d]; | |
return f._parts.path ? (".." === f._parts.path.substring(-2) && (f._parts.path += "/"), | |
"/" !== f.path().charAt(0) && (b = a.directory(), | |
b = b ? b : 0 === a.path().indexOf("/") ? "/" : "", | |
f._parts.path = (b ? b + "/" : "") + f._parts.path, | |
f.normalizePath())) : (f._parts.path = a._parts.path, | |
f._parts.query || (f._parts.query = a._parts.query)), | |
f.build(), | |
f | |
} | |
, | |
r.relativeTo = function(a) { | |
var b, c, d, f, g, h = this.clone().normalize(); | |
if (h._parts.urn) | |
throw new Error("URNs do not have any generally defined hierarchical components"); | |
if (a = new e(a).normalize(), | |
b = h._parts, | |
c = a._parts, | |
f = h.path(), | |
g = a.path(), | |
"/" !== f.charAt(0)) | |
throw new Error("URI is already relative"); | |
if ("/" !== g.charAt(0)) | |
throw new Error("Cannot calculate a URI relative to another relative URI"); | |
if (b.protocol === c.protocol && (b.protocol = null), | |
b.username !== c.username || b.password !== c.password) | |
return h.build(); | |
if (null !== b.protocol || null !== b.username || null !== b.password) | |
return h.build(); | |
if (b.hostname !== c.hostname || b.port !== c.port) | |
return h.build(); | |
if (b.hostname = null, | |
b.port = null, | |
f === g) | |
return b.path = "", | |
h.build(); | |
if (d = e.commonPath(f, g), | |
!d) | |
return h.build(); | |
var i = c.path.substring(d.length).replace(/[^\/]*$/, "").replace(/.*?\//g, "../"); | |
return b.path = i + b.path.substring(d.length) || "./", | |
h.build() | |
} | |
, | |
r.equals = function(a) { | |
var b, c, d, f = this.clone(), g = new e(a), i = {}, j = {}, l = {}; | |
if (f.normalize(), | |
g.normalize(), | |
f.toString() === g.toString()) | |
return !0; | |
if (b = f.query(), | |
c = g.query(), | |
f.query(""), | |
g.query(""), | |
f.toString() !== g.toString()) | |
return !1; | |
if (b.length !== c.length) | |
return !1; | |
i = e.parseQuery(b, this._parts.escapeQuerySpace), | |
j = e.parseQuery(c, this._parts.escapeQuerySpace); | |
for (d in i) | |
if (s.call(i, d)) { | |
if (h(i[d])) { | |
if (!k(i[d], j[d])) | |
return !1 | |
} else if (i[d] !== j[d]) | |
return !1; | |
l[d] = !0 | |
} | |
for (d in j) | |
if (s.call(j, d) && !l[d]) | |
return !1; | |
return !0 | |
} | |
, | |
r.duplicateQueryParameters = function(a) { | |
return this._parts.duplicateQueryParameters = !!a, | |
this | |
} | |
, | |
r.escapeQuerySpace = function(a) { | |
return this._parts.escapeQuerySpace = !!a, | |
this | |
} | |
, | |
e | |
}), | |
function(a, b, c) { | |
var d = function() { | |
for (var a = new RegExp("audio.custom(.min)?.js.*"), b = document.getElementsByTagName("script"), c = 0, d = b.length; c < d; c++) { | |
var e = b[c].getAttribute("src"); | |
if (a.test(e)) { | |
var f = e.split("/"); | |
return f.pop(), | |
f.join("/") + "/" | |
} | |
} | |
return "" | |
}(); | |
c[a] = { | |
instanceCount: 0, | |
instances: {}, | |
flashSource: ' <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="$1" width="1" height="1" name="$1" style="position: absolute; left: -1px;"> <param name="movie" value="$2?playerInstance=' + a + '.instances[\'$1\']&datetime=$3"> <param name="allowscriptaccess" value="always"> <embed name="$1" src="$2?playerInstance=' + a + '.instances[\'$1\']&datetime=$3" width="1" height="1" allowscriptaccess="always"> </object>', | |
settings: { | |
autoplay: !1, | |
loop: !1, | |
preload: !0, | |
imageLocation: d + "player-graphics.gif", | |
retinaImageLocation: d + "player-graphics@2x.gif", | |
swfLocation: d + "audiojs.swf", | |
useFlash: function() { | |
var a = document.createElement("audio"); | |
return !(a.canPlayType && a.canPlayType("audio/mpeg;").replace(/no/, "")) | |
}(), | |
hasFlash: function() { | |
if (navigator.plugins && navigator.plugins.length && navigator.plugins["Shockwave Flash"]) | |
return !0; | |
if (navigator.mimeTypes && navigator.mimeTypes.length) { | |
var a = navigator.mimeTypes["application/x-shockwave-flash"]; | |
return a && a.enabledPlugin | |
} | |
try { | |
new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); | |
return !0 | |
} catch (b) {} | |
return !1 | |
}(), | |
createPlayer: { | |
markup: ' <div class="play-pause"> <p class="play"></p> <p class="pause"></p> <p class="loading"></p> <p class="error"></p> </div> <div class="scrubber"> <div class="progress"></div> <div class="loaded"></div> </div> <div class="time"> <em class="played">00:00</em>/<strong class="duration">00:00</strong> </div> <div class="error-message"></div>', | |
playPauseClass: "play-pause", | |
scrubberClass: "scrubber", | |
progressClass: "progress", | |
loaderClass: "loaded", | |
timeClass: "time", | |
durationClass: "duration", | |
playedClass: "played", | |
errorMessageClass: "error-message", | |
playingClass: "playing", | |
loadingClass: "loading", | |
errorClass: "error", | |
isTouchEventOnly: !1 | |
}, | |
css: ' .audiojs audio { position: absolute; left: -1px; } .audiojs { width: 460px; height: 36px; background: #404040; overflow: hidden; font-family: monospace; font-size: 12px; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #444), color-stop(0.5, #555), color-stop(0.51, #444), color-stop(1, #444)); background-image: -moz-linear-gradient(center top, #444 0%, #555 50%, #444 51%, #444 100%); -webkit-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); -moz-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); -o-box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.3); } .audiojs .play-pause { width: 25px; height: 40px; padding: 4px 6px; margin: 0px; float: left; overflow: hidden; border-right: 1px solid #000; } .audiojs p { display: none; width: 25px; height: 40px; margin: 0px; cursor: pointer; } .audiojs .play { display: block; } .audiojs .scrubber { position: relative; float: left; width: 280px; background: #5a5a5a; height: 14px; margin: 10px; border-top: 1px solid #3f3f3f; border-left: 0px; border-bottom: 0px; overflow: hidden; } .audiojs .progress { position: absolute; top: 0px; left: 0px; height: 14px; width: 0px; background: #ccc; z-index: 1; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ccc), color-stop(0.5, #ddd), color-stop(0.51, #ccc), color-stop(1, #ccc)); background-image: -moz-linear-gradient(center top, #ccc 0%, #ddd 50%, #ccc 51%, #ccc 100%); } .audiojs .loaded { position: absolute; top: 0px; left: 0px; height: 14px; width: 0px; background: #000; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #222), color-stop(0.5, #333), color-stop(0.51, #222), color-stop(1, #222)); background-image: -moz-linear-gradient(center top, #222 0%, #333 50%, #222 51%, #222 100%); } .audiojs .time { float: left; height: 36px; line-height: 36px; margin: 0px 0px 0px 6px; padding: 0px 6px 0px 12px; border-left: 1px solid #000; color: #ddd; text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.5); } .audiojs .time em { padding: 0px 2px 0px 0px; color: #f9f9f9; font-style: normal; } .audiojs .time strong { padding: 0px 0px 0px 2px; font-weight: normal; } .audiojs .error-message { float: left; display: none; margin: 0px 10px; height: 36px; width: 400px; overflow: hidden; line-height: 36px; white-space: nowrap; color: #fff; text-overflow: ellipsis; -o-text-overflow: ellipsis; -icab-text-overflow: ellipsis; -khtml-text-overflow: ellipsis; -moz-text-overflow: ellipsis; -webkit-text-overflow: ellipsis; } .audiojs .error-message a { color: #eee; text-decoration: none; padding-bottom: 1px; border-bottom: 1px solid #999; white-space: wrap; } .audiojs .play { background: url("$1") -2px -1px no-repeat; } .audiojs .loading { background: url("$1") -2px -31px no-repeat; } .audiojs .error { background: url("$1") -2px -61px no-repeat; } .audiojs .pause { background: url("$1") -2px -91px no-repeat; } @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2) { .audiojs .play, .audiojs .loading, .audiojs .error, .audiojs .pause { background-image: url("$2"); -webkit-background-size: 30px 120px; -moz-background-size: 30px 120px; -o-background-size: 30px 120px; background-size: 30px 120px; } } .playing .play, .playing .loading, .playing .error { display: none; } .playing .pause { display: block; } .loading .play, .loading .pause, .loading .error { display: none; } .loading .loading { display: block; } .error .time, .error .play, .error .pause, .error .scrubber, .error .loading { display: none; } .error .error { display: block; } .error .play-pause p { cursor: auto; } .error .error-message { display: block; }', | |
trackEnded: function(a) {}, | |
flashError: function() { | |
var b = this.settings.createPlayer | |
, d = e(b.errorMessageClass, this.wrapper) | |
, f = 'Missing <a href="http://get.adobe.com/flashplayer/">flash player</a> plugin.'; | |
this.mp3 && (f += ' <a href="' + this.mp3 + '">Download audio file</a>.'), | |
c[a].helpers.removeClass(this.wrapper, b.loadingClass), | |
c[a].helpers.addClass(this.wrapper, b.errorClass), | |
d.innerHTML = f | |
}, | |
loadError: function(b) { | |
var d = this.settings.createPlayer | |
, f = e(d.errorMessageClass, this.wrapper); | |
c[a].helpers.removeClass(this.wrapper, d.loadingClass), | |
c[a].helpers.addClass(this.wrapper, d.errorClass), | |
f.innerHTML = 'Error loading: "' + this.mp3 + '"' | |
}, | |
init: function() { | |
var b = this.settings.createPlayer; | |
c[a].helpers.addClass(this.wrapper, b.loadingClass) | |
}, | |
loadStarted: function() { | |
var b = this.settings.createPlayer | |
, d = e(b.durationClass, this.wrapper) | |
, f = Math.floor(this.duration / 60) | |
, g = Math.floor(this.duration % 60); | |
c[a].helpers.removeClass(this.wrapper, b.loadingClass), | |
d.innerHTML = (f < 10 ? "0" : "") + f + ":" + (g < 10 ? "0" : "") + g | |
}, | |
loadProgress: function(a) { | |
var b = this.settings.createPlayer | |
, c = e(b.loaderClass, this.wrapper); | |
c.style.width = Math.round(100 * a) + "%" | |
}, | |
playPause: function() { | |
this.playing ? this.settings.play() : this.settings.pause() | |
}, | |
play: function() { | |
var b = this.settings.createPlayer; | |
c[a].helpers.removeClass(this.wrapper, b.errorClass), | |
c[a].helpers.addClass(this.wrapper, b.playingClass) | |
}, | |
pause: function() { | |
var b = this.settings.createPlayer; | |
c[a].helpers.removeClass(this.wrapper, b.playingClass) | |
}, | |
updatePlayhead: function(a) { | |
var b = this.settings.createPlayer | |
, c = e(b.progressClass, this.wrapper); | |
c.style.width = Math.round(100 * a) + "%"; | |
var d = e(b.playedClass, this.wrapper) | |
, f = this.duration * a | |
, g = Math.floor(f / 60) | |
, h = Math.floor(f % 60); | |
d.innerHTML = (g < 10 ? "0" : "") + g + ":" + (h < 10 ? "0" : "") + h | |
} | |
}, | |
create: function(a, b) { | |
var b = b || {}; | |
return a.length ? this.createAll(b, a) : this.newInstance(a, b) | |
}, | |
createAll: function(a, b) { | |
var c = b || document.getElementsByTagName("audio") | |
, d = []; | |
a = a || {}; | |
for (var e = 0, f = c.length; e < f; e++) | |
(" " + c[e].parentNode.className + " ").replace(/[\n\t]/g, " ").indexOf(" audiojs ") > -1 || d.push(this.newInstance(c[e], a)); | |
return d | |
}, | |
newInstance: function(a, d) { | |
var a = a | |
, e = this.helpers.clone(this.settings) | |
, f = "audiojs" + this.instanceCount | |
, g = "audiojs_wrapper" + this.instanceCount; | |
this.instanceCount++; | |
null != a.getAttribute("autoplay") && (e.autoplay = !0), | |
null != a.getAttribute("loop") && (e.loop = !0), | |
"none" == a.getAttribute("preload") && (e.preload = !1), | |
d && this.helpers.merge(e, d), | |
e.createPlayer.markup ? a = this.createPlayer(a, e.createPlayer, g) : a.parentNode.setAttribute("id", g); | |
var h = new c[b](a,e); | |
return e.css && this.helpers.injectCss(h, e.css), | |
e.useFlash && e.hasFlash ? (this.injectFlash(h, f), | |
this.attachFlashEvents(h.wrapper, h)) : e.useFlash && !e.hasFlash && e.flashError.apply(h), | |
(!e.useFlash || e.useFlash && e.hasFlash) && this.attachEvents(h.wrapper, h, e.isTouchEventOnly), | |
this.instances[f] = h, | |
h | |
}, | |
createPlayer: function(a, b, c) { | |
var d = document.createElement("div") | |
, e = a.cloneNode(!0); | |
return d.setAttribute("class", "audiojs"), | |
d.setAttribute("className", "audiojs"), | |
d.setAttribute("id", c), | |
e.outerHTML && !document.createElement("audio").canPlayType ? (e = this.helpers.cloneHtml5Node(a), | |
d.innerHTML = b.markup, | |
d.appendChild(e), | |
a.outerHTML = d.outerHTML, | |
d = document.getElementById(c)) : (d.appendChild(e), | |
d.innerHTML = d.innerHTML + b.markup, | |
a.parentNode.replaceChild(d, a), | |
d.getElementsByTagName("audio")[0].setAttribute("preload", "auto")), | |
d.getElementsByTagName("audio")[0] | |
}, | |
attachEvents: function(b, d, f) { | |
if (d.settings.createPlayer) { | |
var g = d.settings.createPlayer | |
, h = e(g.playPauseClass, b) | |
, i = e(g.scrubberClass, b) | |
, j = function(a) { | |
var b = 0; | |
if (a.offsetParent) | |
do | |
b += a.offsetLeft; | |
while (a = a.offsetParent);return b | |
}; | |
f || (c[a].events.addListener(h, "click", function(a) { | |
d.playPause.apply(d) | |
}), | |
c[a].events.addListener(i, "click", function(a) { | |
var b = a.clientX - j(this); | |
d.skipTo(b / i.offsetWidth) | |
})), | |
c[a].events.addListener(h, "touchstart", function(a) { | |
d.playPause.apply(d) | |
}), | |
c[a].events.addListener(i, "touchstart", function(a) { | |
var b = a.touches[0].clientX - j(this); | |
d.skipTo(b / i.offsetWidth) | |
}), | |
d.settings.useFlash || (c[a].events.trackLoadProgress(d), | |
c[a].events.addListener(d.element, "timeupdate", function(a) { | |
d.updatePlayhead.apply(d) | |
}), | |
c[a].events.addListener(d.element, "ended", function(a) { | |
d.trackEnded.apply(d) | |
}), | |
c[a].events.addListener(d.source, "error", function(a) { | |
clearInterval(d.readya6K), | |
clearInterval(d.loada6K), | |
d.settings.loadError.apply(d) | |
})) | |
} | |
}, | |
attachFlashEvents: function(a, b) { | |
b.swfReady = !1, | |
b.load = function(a) { | |
b.mp3 = a, | |
b.swfReady && b.element.load(a) | |
} | |
, | |
b.loadProgress = function(a, c) { | |
b.loadedPercent = a, | |
b.duration = c, | |
b.settings.loadStarted.apply(b), | |
b.settings.loadProgress.apply(b, [a]) | |
} | |
, | |
b.skipTo = function(a) { | |
a > b.loadedPercent || (b.updatePlayhead.call(b, [a]), | |
b.element.skipTo(a)) | |
} | |
, | |
b.updatePlayhead = function(a) { | |
b.settings.updatePlayhead.apply(b, [a]) | |
} | |
, | |
b.play = function() { | |
b.settings.preload || (b.settings.preload = !0, | |
b.element.init(b.mp3)), | |
b.playing = !0, | |
b.element.pplay(), | |
b.settings.play.apply(b) | |
} | |
, | |
b.pause = function() { | |
b.playing = !1, | |
b.element.ppause(), | |
b.settings.pause.apply(b) | |
} | |
, | |
b.setVolume = function(a) { | |
b.element.setVolume(a) | |
} | |
, | |
b.loadStarted = function() { | |
b.swfReady = !0, | |
b.settings.preload && b.element.init(b.mp3), | |
b.settings.autoplay && b.play.apply(b) | |
} | |
}, | |
injectFlash: function(a, b) { | |
var c = this.flashSource.replace(/\$1/g, b); | |
c = c.replace(/\$2/g, a.settings.swfLocation), | |
c = c.replace(/\$3/g, +new Date + Math.random()); | |
var d = a.wrapper.innerHTML | |
, e = document.createElement("div"); | |
e.innerHTML = c + d, | |
a.wrapper.innerHTML = e.innerHTML, | |
a.element = this.helpers.getSwf(b) | |
}, | |
helpers: { | |
merge: function(a, b) { | |
for (attr in b) | |
(a.hasOwnProperty(attr) || b.hasOwnProperty(attr)) && (a[attr] = b[attr]) | |
}, | |
clone: function(a) { | |
if (null == a || "object" != typeof a) | |
return a; | |
var b = new a.constructor; | |
for (var c in a) | |
b[c] = arguments.callee(a[c]); | |
return b | |
}, | |
addClass: function(a, b) { | |
var c = new RegExp("(\\s|^)" + b + "(\\s|$)"); | |
c.test(a.className) || (a.className += " " + b) | |
}, | |
removeClass: function(a, b) { | |
var c = new RegExp("(\\s|^)" + b + "(\\s|$)"); | |
a.className = a.className.replace(c, " ") | |
}, | |
injectCss: function(a, b) { | |
var c = "" | |
, d = document.getElementsByTagName("style") | |
, e = b.replace(/\$1/g, a.settings.imageLocation); | |
e = e.replace(/\$2/g, a.settings.retinaImageLocation); | |
for (var f = 0, g = d.length; f < g; f++) { | |
var h = d[f].getAttribute("title"); | |
if (h && ~h.indexOf("audiojs")) { | |
if (k = d[f], | |
k.innerHTML === e) | |
return; | |
c = k.innerHTML; | |
break | |
} | |
} | |
var i = document.getElementsByTagName("head")[0] | |
, j = i.firstChild | |
, k = document.createElement("style"); | |
i && (k.setAttribute("type", "text/css"), | |
k.setAttribute("title", "audiojs"), | |
k.styleSheet ? k.styleSheet.cssText = c + e : k.appendChild(document.createTextNode(c + e)), | |
j ? i.insertBefore(k, j) : i.appendChild(k)) | |
}, | |
cloneHtml5Node: function(a) { | |
var b = document.createDocumentFragment() | |
, c = b.createElement ? b : document; | |
c.createElement("audio"); | |
var d = c.createElement("div"); | |
return b.appendChild(d), | |
d.innerHTML = a.outerHTML, | |
d.firstChild | |
}, | |
getSwf: function(a) { | |
var b = document[a] || window[a]; | |
return b.length > 1 ? b[b.length - 1] : b | |
} | |
}, | |
events: { | |
memoryLeaking: !1, | |
listeners: [], | |
addListener: function(b, d, e) { | |
b.addEventListener ? b.addEventListener(d, e, !1) : b.attachEvent && (this.listeners.push(b), | |
this.memoryLeaking || (window.attachEvent("onunload", function() { | |
if (this.listeners) | |
for (var b = 0, d = this.listeners.length; b < d; b++) | |
c[a].events.purge(this.listeners[b]) | |
}), | |
this.memoryLeaking = !0), | |
b.attachEvent("on" + d, function() { | |
e.call(b, window.event) | |
})) | |
}, | |
trackLoadProgress: function(a) { | |
if (a.settings.preload) { | |
var b, c, a = a, d = /(ipod|iphone|ipad)/i.test(navigator.userAgent); | |
b = setInterval(function() { | |
a.element.readyState > -1 && (d || a.init.apply(a)), | |
a.element.readyState > 1 && (a.settings.autoplay && a.play.apply(a), | |
clearInterval(b), | |
c = setInterval(function() { | |
a.loadProgress.apply(a), | |
a.loadedPercent >= 1 && clearInterval(c) | |
}, 200)) | |
}, 200), | |
a.readya6K = b, | |
a.loada6K = c | |
} | |
}, | |
purge: function(a) { | |
var b, c = a.attributes; | |
if (c) | |
for (b = 0; b < c.length; b += 1) | |
"function" == typeof a[c[b].name] && (a[c[b].name] = null); | |
if (c = a.childNodes) | |
for (b = 0; b < c.length; b += 1) | |
purge(a.childNodes[b]) | |
}, | |
ready: function() { | |
return function(a) { | |
var b = window | |
, c = !1 | |
, d = !0 | |
, e = b.document | |
, f = e.documentElement | |
, g = e.addEventListener ? "addEventListener" : "attachEvent" | |
, h = e.addEventListener ? "removeEventListener" : "detachEvent" | |
, i = e.addEventListener ? "" : "on" | |
, j = function(d) { | |
"readystatechange" == d.type && "complete" != e.readyState || (("load" == d.type ? b : e)[h](i + d.type, j, !1), | |
!c && (c = !0) && a.call(b, d.type || d)) | |
} | |
, k = function() { | |
try { | |
f.doScroll("left") | |
} catch (a) { | |
return void setTimeout(k, 50) | |
} | |
j("poll") | |
}; | |
if ("complete" == e.readyState) | |
a.call(b, "lazy"); | |
else { | |
if (e.createEventObject && f.doScroll) { | |
try { | |
d = !b.frameElement | |
} catch (l) {} | |
d && k() | |
} | |
e[g](i + "DOMContentLoaded", j, !1), | |
e[g](i + "readystatechange", j, !1), | |
b[g](i + "load", j, !1) | |
} | |
} | |
}() | |
} | |
}, | |
c[b] = function(a, b) { | |
this.element = a, | |
this.wrapper = a.parentNode, | |
this.source = a.getElementsByTagName("source")[0] || a, | |
this.mp3 = function(a) { | |
var b = a.getElementsByTagName("source")[0]; | |
return a.getAttribute("src") || (b ? b.getAttribute("src") : null) | |
}(a), | |
this.settings = b, | |
this.loadStartedCalled = !1, | |
this.loadedPercent = 0, | |
this.duration = 1, | |
this.playing = !1 | |
} | |
, | |
c[b].prototype = { | |
updatePlayhead: function() { | |
var a = this.element.currentTime / this.duration; | |
this.settings.updatePlayhead.apply(this, [a]) | |
}, | |
skipTo: function(a) { | |
a > this.loadedPercent || (this.element.currentTime = this.duration * a, | |
this.updatePlayhead()) | |
}, | |
load: function(b) { | |
this.loadStartedCalled = !1, | |
this.source.setAttribute("src", b), | |
this.element.load(), | |
this.mp3 = b, | |
c[a].events.trackLoadProgress(this) | |
}, | |
loadError: function() { | |
this.settings.loadError.apply(this) | |
}, | |
init: function() { | |
this.settings.init.apply(this) | |
}, | |
loadStarted: function() { | |
return !!this.element.duration && (this.duration = this.element.duration, | |
this.updatePlayhead(), | |
void this.settings.loadStarted.apply(this)) | |
}, | |
loadProgress: function() { | |
if (null != this.element.buffered && this.element.buffered.length) { | |
this.loadStartedCalled || (this.loadStartedCalled = this.loadStarted()); | |
var a = this.element.buffered.end(this.element.buffered.length - 1); | |
this.loadedPercent = a / this.duration, | |
this.settings.loadProgress.apply(this, [this.loadedPercent]) | |
} | |
}, | |
playPause: function() { | |
this.playing ? this.pause() : this.play() | |
}, | |
play: function() { | |
var b = /(ipod|iphone|ipad)/i.test(navigator.userAgent); | |
b && 0 == this.element.readyState && this.init.apply(this), | |
this.settings.preload || (this.settings.preload = !0, | |
this.element.setAttribute("preload", "auto"), | |
c[a].events.trackLoadProgress(this)), | |
this.playing = !0, | |
this.element.play(), | |
this.settings.play.apply(this) | |
}, | |
pause: function() { | |
this.playing = !1, | |
this.element.pause(), | |
this.settings.pause.apply(this) | |
}, | |
setVolume: function(a) { | |
this.element.volume = a | |
}, | |
trackEnded: function(a) { | |
this.skipTo.apply(this, [0]), | |
this.settings.loop || this.pause.apply(this), | |
this.settings.trackEnded.apply(this) | |
} | |
}; | |
var e = function(a, b) { | |
var c = []; | |
if (b = b || document, | |
b.getElementsByClassName) | |
c = b.getElementsByClassName(a); | |
else { | |
var d, e, f = b.getElementsByTagName("*"), g = new RegExp("(^|\\s)" + a + "(\\s|$)"); | |
for (d = 0, | |
e = f.length; d < e; d++) | |
g.test(f[d].className) && c.push(f[d]) | |
} | |
return c.length > 1 ? c : c[0] | |
} | |
}("audiojs", "audiojsInstance", this), | |
!function a(b, c, d) { | |
function e(g, h) { | |
if (!c[g]) { | |
if (!b[g]) { | |
var i = "function" == typeof require && require; | |
if (!h && i) | |
return i(g, !0); | |
if (f) | |
return f(g, !0); | |
var j = new Error("Cannot find module '" + g + "'"); | |
throw j.code = "MODULE_NOT_FOUND", | |
j | |
} | |
var k = c[g] = { | |
exports: {} | |
}; | |
b[g][0].call(k.exports, function(a) { | |
var c = b[g][1][a]; | |
return e(c ? c : a) | |
}, k, k.exports, a, b, c, d) | |
} | |
return c[g].exports | |
} | |
for (var f = "function" == typeof require && require, g = 0; g < d.length; g++) | |
e(d[g]); | |
return e | |
}({ | |
1: [function(a, b, c) { | |
b.exports = { | |
version: "2.0", | |
metadata: { | |
apiVersion: "2015-12-08", | |
endpointPrefix: "acm", | |
jsonVersion: "1.1", | |
protocol: "json", | |
serviceAbbreviation: "ACM", | |
serviceFullName: "AWS Certificate Manager", | |
signatureVersion: "v4", | |
targetPrefix: "CertificateManager", | |
uid: "acm-2015-12-08" | |
}, | |
operations: { | |
AddTagsToCertificate: { | |
input: { | |
type: "structure", | |
required: ["CertificateArn", "Tags"], | |
members: { | |
CertificateArn: {}, | |
Tags: { | |
shape: "S3" | |
} | |
} | |
} | |
}, | |
DeleteCertificate: { | |
input: { | |
type: "structure", | |
required: ["CertificateArn"], | |
members: { | |
CertificateArn: {} | |
} | |
} | |
}, | |
DescribeCertificate: { | |
input: { | |
type: "structure", | |
required: ["CertificateArn"], | |
members: { | |
CertificateArn: {} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
Certificate: { | |
type: "structure", | |
members: { | |
CertificateArn: {}, | |
DomainName: {}, | |
SubjectAlternativeNames: { | |
shape: "Sc" | |
}, | |
DomainValidationOptions: { | |
shape: "Sd" | |
}, | |
Serial: {}, | |
Subject: {}, | |
Issuer: {}, | |
CreatedAt: { | |
type: "timestamp" | |
}, | |
IssuedAt: { | |
type: "timestamp" | |
}, | |
ImportedAt: { | |
type: "timestamp" | |
}, | |
Status: {}, | |
RevokedAt: { | |
type: "timestamp" | |
}, | |
RevocationReason: {}, | |
NotBefore: { | |
type: "timestamp" | |
}, | |
NotAfter: { | |
type: "timestamp" | |
}, | |
KeyAlgorithm: {}, | |
SignatureAlgorithm: {}, | |
InUseBy: { | |
type: "list", | |
member: {} | |
}, | |
FailureReason: {}, | |
Type: {}, | |
RenewalSummary: { | |
type: "structure", | |
required: ["RenewalStatus", "DomainValidationOptions"], | |
members: { | |
RenewalStatus: {}, | |
DomainValidationOptions: { | |
shape: "Sd" | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
GetCertificate: { | |
input: { | |
type: "structure", | |
required: ["CertificateArn"], | |
members: { | |
CertificateArn: {} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
Certificate: {}, | |
CertificateChain: {} | |
} | |
} | |
}, | |
ImportCertificate: { | |
input: { | |
type: "structure", | |
required: ["Certificate", "PrivateKey"], | |
members: { | |
CertificateArn: {}, | |
Certificate: { | |
type: "blob" | |
}, | |
PrivateKey: { | |
type: "blob", | |
sensitive: !0 | |
}, | |
CertificateChain: { | |
type: "blob" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
CertificateArn: {} | |
} | |
} | |
}, | |
ListCertificates: { | |
input: { | |
type: "structure", | |
members: { | |
CertificateStatuses: { | |
type: "list", | |
member: {} | |
}, | |
NextToken: {}, | |
MaxItems: { | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
NextToken: {}, | |
CertificateSummaryList: { | |
type: "list", | |
member: { | |
type: "structure", | |
members: { | |
CertificateArn: {}, | |
DomainName: {} | |
} | |
} | |
} | |
} | |
} | |
}, | |
ListTagsForCertificate: { | |
input: { | |
type: "structure", | |
required: ["CertificateArn"], | |
members: { | |
CertificateArn: {} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
Tags: { | |
shape: "S3" | |
} | |
} | |
} | |
}, | |
RemoveTagsFromCertificate: { | |
input: { | |
type: "structure", | |
required: ["CertificateArn", "Tags"], | |
members: { | |
CertificateArn: {}, | |
Tags: { | |
shape: "S3" | |
} | |
} | |
} | |
}, | |
RequestCertificate: { | |
input: { | |
type: "structure", | |
required: ["DomainName"], | |
members: { | |
DomainName: {}, | |
SubjectAlternativeNames: { | |
shape: "Sc" | |
}, | |
IdempotencyToken: {}, | |
DomainValidationOptions: { | |
type: "list", | |
member: { | |
type: "structure", | |
required: ["DomainName", "ValidationDomain"], | |
members: { | |
DomainName: {}, | |
ValidationDomain: {} | |
} | |
} | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
CertificateArn: {} | |
} | |
} | |
}, | |
ResendValidationEmail: { | |
input: { | |
type: "structure", | |
required: ["CertificateArn", "Domain", "ValidationDomain"], | |
members: { | |
CertificateArn: {}, | |
Domain: {}, | |
ValidationDomain: {} | |
} | |
} | |
} | |
}, | |
shapes: { | |
S3: { | |
type: "list", | |
member: { | |
type: "structure", | |
required: ["Key"], | |
members: { | |
Key: {}, | |
Value: {} | |
} | |
} | |
}, | |
Sc: { | |
type: "list", | |
member: {} | |
}, | |
Sd: { | |
type: "list", | |
member: { | |
type: "structure", | |
required: ["DomainName"], | |
members: { | |
DomainName: {}, | |
ValidationEmails: { | |
type: "list", | |
member: {} | |
}, | |
ValidationDomain: {}, | |
ValidationStatus: {} | |
} | |
} | |
} | |
} | |
} | |
} | |
, {}], | |
2: [function(a, b, c) { | |
b.exports = { | |
pagination: { | |
ListCertificates: { | |
input_token: "NextToken", | |
limit_key: "MaxItems", | |
output_token: "NextToken", | |
result_key: "CertificateSummaryList" | |
} | |
} | |
} | |
} | |
, {}], | |
3: [function(a, b, c) { | |
b.exports = { | |
version: "2.0", | |
metadata: { | |
apiVersion: "2015-07-09", | |
endpointPrefix: "apigateway", | |
protocol: "rest-json", | |
serviceFullName: "Amazon API Gateway", | |
signatureVersion: "v4", | |
uid: "apigateway-2015-07-09" | |
}, | |
operations: { | |
CreateApiKey: { | |
http: { | |
requestUri: "/apikeys", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
members: { | |
name: {}, | |
description: {}, | |
enabled: { | |
type: "boolean" | |
}, | |
generateDistinctId: { | |
type: "boolean" | |
}, | |
value: {}, | |
stageKeys: { | |
type: "list", | |
member: { | |
type: "structure", | |
members: { | |
restApiId: {}, | |
stageName: {} | |
} | |
} | |
}, | |
customerId: {} | |
} | |
}, | |
output: { | |
shape: "S6" | |
} | |
}, | |
CreateAuthorizer: { | |
http: { | |
requestUri: "/restapis/{restapi_id}/authorizers", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "name", "type", "identitySource"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
name: {}, | |
type: {}, | |
providerARNs: { | |
shape: "Sb" | |
}, | |
authType: {}, | |
authorizerUri: {}, | |
authorizerCredentials: {}, | |
identitySource: {}, | |
identityValidationExpression: {}, | |
authorizerResultTtlInSeconds: { | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
shape: "Se" | |
} | |
}, | |
CreateBasePathMapping: { | |
http: { | |
requestUri: "/domainnames/{domain_name}/basepathmappings", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["domainName", "restApiId"], | |
members: { | |
domainName: { | |
location: "uri", | |
locationName: "domain_name" | |
}, | |
basePath: {}, | |
restApiId: {}, | |
stage: {} | |
} | |
}, | |
output: { | |
shape: "Sg" | |
} | |
}, | |
CreateDeployment: { | |
http: { | |
requestUri: "/restapis/{restapi_id}/deployments", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
stageName: {}, | |
stageDescription: {}, | |
description: {}, | |
cacheClusterEnabled: { | |
type: "boolean" | |
}, | |
cacheClusterSize: {}, | |
variables: { | |
shape: "Sk" | |
} | |
} | |
}, | |
output: { | |
shape: "Sl" | |
} | |
}, | |
CreateDocumentationPart: { | |
http: { | |
requestUri: "/restapis/{restapi_id}/documentation/parts", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "location", "properties"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
location: { | |
shape: "Sq" | |
}, | |
properties: {} | |
} | |
}, | |
output: { | |
shape: "St" | |
} | |
}, | |
CreateDocumentationVersion: { | |
http: { | |
requestUri: "/restapis/{restapi_id}/documentation/versions", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "documentationVersion"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
documentationVersion: {}, | |
stageName: {}, | |
description: {} | |
} | |
}, | |
output: { | |
shape: "Sv" | |
} | |
}, | |
CreateDomainName: { | |
http: { | |
requestUri: "/domainnames", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["domainName", "certificateName", "certificateBody", "certificatePrivateKey", "certificateChain"], | |
members: { | |
domainName: {}, | |
certificateName: {}, | |
certificateBody: {}, | |
certificatePrivateKey: {}, | |
certificateChain: {} | |
} | |
}, | |
output: { | |
shape: "Sx" | |
} | |
}, | |
CreateModel: { | |
http: { | |
requestUri: "/restapis/{restapi_id}/models", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "name", "contentType"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
name: {}, | |
description: {}, | |
schema: {}, | |
contentType: {} | |
} | |
}, | |
output: { | |
shape: "Sz" | |
} | |
}, | |
CreateResource: { | |
http: { | |
requestUri: "/restapis/{restapi_id}/resources/{parent_id}", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "parentId", "pathPart"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
parentId: { | |
location: "uri", | |
locationName: "parent_id" | |
}, | |
pathPart: {} | |
} | |
}, | |
output: { | |
shape: "S11" | |
} | |
}, | |
CreateRestApi: { | |
http: { | |
requestUri: "/restapis", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["name"], | |
members: { | |
name: {}, | |
description: {}, | |
version: {}, | |
cloneFrom: {}, | |
binaryMediaTypes: { | |
shape: "S8" | |
} | |
} | |
}, | |
output: { | |
shape: "S1e" | |
} | |
}, | |
CreateStage: { | |
http: { | |
requestUri: "/restapis/{restapi_id}/stages", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "stageName", "deploymentId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
stageName: {}, | |
deploymentId: {}, | |
description: {}, | |
cacheClusterEnabled: { | |
type: "boolean" | |
}, | |
cacheClusterSize: {}, | |
variables: { | |
shape: "Sk" | |
}, | |
documentationVersion: {} | |
} | |
}, | |
output: { | |
shape: "S1g" | |
} | |
}, | |
CreateUsagePlan: { | |
http: { | |
requestUri: "/usageplans", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["name"], | |
members: { | |
name: {}, | |
description: {}, | |
apiStages: { | |
shape: "S1o" | |
}, | |
throttle: { | |
shape: "S1q" | |
}, | |
quota: { | |
shape: "S1r" | |
} | |
} | |
}, | |
output: { | |
shape: "S1t" | |
} | |
}, | |
CreateUsagePlanKey: { | |
http: { | |
requestUri: "/usageplans/{usageplanId}/keys", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["usagePlanId", "keyId", "keyType"], | |
members: { | |
usagePlanId: { | |
location: "uri", | |
locationName: "usageplanId" | |
}, | |
keyId: {}, | |
keyType: {} | |
} | |
}, | |
output: { | |
shape: "S1v" | |
} | |
}, | |
DeleteApiKey: { | |
http: { | |
method: "DELETE", | |
requestUri: "/apikeys/{api_Key}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["apiKey"], | |
members: { | |
apiKey: { | |
location: "uri", | |
locationName: "api_Key" | |
} | |
} | |
} | |
}, | |
DeleteAuthorizer: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/authorizers/{authorizer_id}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "authorizerId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
authorizerId: { | |
location: "uri", | |
locationName: "authorizer_id" | |
} | |
} | |
} | |
}, | |
DeleteBasePathMapping: { | |
http: { | |
method: "DELETE", | |
requestUri: "/domainnames/{domain_name}/basepathmappings/{base_path}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["domainName", "basePath"], | |
members: { | |
domainName: { | |
location: "uri", | |
locationName: "domain_name" | |
}, | |
basePath: { | |
location: "uri", | |
locationName: "base_path" | |
} | |
} | |
} | |
}, | |
DeleteClientCertificate: { | |
http: { | |
method: "DELETE", | |
requestUri: "/clientcertificates/{clientcertificate_id}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["clientCertificateId"], | |
members: { | |
clientCertificateId: { | |
location: "uri", | |
locationName: "clientcertificate_id" | |
} | |
} | |
} | |
}, | |
DeleteDeployment: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/deployments/{deployment_id}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "deploymentId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
deploymentId: { | |
location: "uri", | |
locationName: "deployment_id" | |
} | |
} | |
} | |
}, | |
DeleteDocumentationPart: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/documentation/parts/{part_id}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "documentationPartId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
documentationPartId: { | |
location: "uri", | |
locationName: "part_id" | |
} | |
} | |
} | |
}, | |
DeleteDocumentationVersion: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/documentation/versions/{doc_version}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "documentationVersion"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
documentationVersion: { | |
location: "uri", | |
locationName: "doc_version" | |
} | |
} | |
} | |
}, | |
DeleteDomainName: { | |
http: { | |
method: "DELETE", | |
requestUri: "/domainnames/{domain_name}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["domainName"], | |
members: { | |
domainName: { | |
location: "uri", | |
locationName: "domain_name" | |
} | |
} | |
} | |
}, | |
DeleteIntegration: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration", | |
responseCode: 204 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
} | |
} | |
} | |
}, | |
DeleteIntegrationResponse: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}", | |
responseCode: 204 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod", "statusCode"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
}, | |
statusCode: { | |
location: "uri", | |
locationName: "status_code" | |
} | |
} | |
} | |
}, | |
DeleteMethod: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}", | |
responseCode: 204 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
} | |
} | |
} | |
}, | |
DeleteMethodResponse: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}", | |
responseCode: 204 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod", "statusCode"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
}, | |
statusCode: { | |
location: "uri", | |
locationName: "status_code" | |
} | |
} | |
} | |
}, | |
DeleteModel: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/models/{model_name}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "modelName"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
modelName: { | |
location: "uri", | |
locationName: "model_name" | |
} | |
} | |
} | |
}, | |
DeleteResource: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
} | |
} | |
} | |
}, | |
DeleteRestApi: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
} | |
} | |
} | |
}, | |
DeleteStage: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/stages/{stage_name}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "stageName"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
stageName: { | |
location: "uri", | |
locationName: "stage_name" | |
} | |
} | |
} | |
}, | |
DeleteUsagePlan: { | |
http: { | |
method: "DELETE", | |
requestUri: "/usageplans/{usageplanId}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["usagePlanId"], | |
members: { | |
usagePlanId: { | |
location: "uri", | |
locationName: "usageplanId" | |
} | |
} | |
} | |
}, | |
DeleteUsagePlanKey: { | |
http: { | |
method: "DELETE", | |
requestUri: "/usageplans/{usageplanId}/keys/{keyId}", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["usagePlanId", "keyId"], | |
members: { | |
usagePlanId: { | |
location: "uri", | |
locationName: "usageplanId" | |
}, | |
keyId: { | |
location: "uri", | |
locationName: "keyId" | |
} | |
} | |
} | |
}, | |
FlushStageAuthorizersCache: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/stages/{stage_name}/cache/authorizers", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "stageName"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
stageName: { | |
location: "uri", | |
locationName: "stage_name" | |
} | |
} | |
} | |
}, | |
FlushStageCache: { | |
http: { | |
method: "DELETE", | |
requestUri: "/restapis/{restapi_id}/stages/{stage_name}/cache/data", | |
responseCode: 202 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "stageName"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
stageName: { | |
location: "uri", | |
locationName: "stage_name" | |
} | |
} | |
} | |
}, | |
GenerateClientCertificate: { | |
http: { | |
requestUri: "/clientcertificates", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
members: { | |
description: {} | |
} | |
}, | |
output: { | |
shape: "S2h" | |
} | |
}, | |
GetAccount: { | |
http: { | |
method: "GET", | |
requestUri: "/account" | |
}, | |
input: { | |
type: "structure", | |
members: {} | |
}, | |
output: { | |
shape: "S2j" | |
} | |
}, | |
GetApiKey: { | |
http: { | |
method: "GET", | |
requestUri: "/apikeys/{api_Key}" | |
}, | |
input: { | |
type: "structure", | |
required: ["apiKey"], | |
members: { | |
apiKey: { | |
location: "uri", | |
locationName: "api_Key" | |
}, | |
includeValue: { | |
location: "querystring", | |
locationName: "includeValue", | |
type: "boolean" | |
} | |
} | |
}, | |
output: { | |
shape: "S6" | |
} | |
}, | |
GetApiKeys: { | |
http: { | |
method: "GET", | |
requestUri: "/apikeys" | |
}, | |
input: { | |
type: "structure", | |
members: { | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
}, | |
nameQuery: { | |
location: "querystring", | |
locationName: "name" | |
}, | |
customerId: { | |
location: "querystring", | |
locationName: "customerId" | |
}, | |
includeValues: { | |
location: "querystring", | |
locationName: "includeValues", | |
type: "boolean" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
warnings: { | |
shape: "S8" | |
}, | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "S6" | |
} | |
} | |
} | |
} | |
}, | |
GetAuthorizer: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/authorizers/{authorizer_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "authorizerId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
authorizerId: { | |
location: "uri", | |
locationName: "authorizer_id" | |
} | |
} | |
}, | |
output: { | |
shape: "Se" | |
} | |
}, | |
GetAuthorizers: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/authorizers" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "Se" | |
} | |
} | |
} | |
} | |
}, | |
GetBasePathMapping: { | |
http: { | |
method: "GET", | |
requestUri: "/domainnames/{domain_name}/basepathmappings/{base_path}" | |
}, | |
input: { | |
type: "structure", | |
required: ["domainName", "basePath"], | |
members: { | |
domainName: { | |
location: "uri", | |
locationName: "domain_name" | |
}, | |
basePath: { | |
location: "uri", | |
locationName: "base_path" | |
} | |
} | |
}, | |
output: { | |
shape: "Sg" | |
} | |
}, | |
GetBasePathMappings: { | |
http: { | |
method: "GET", | |
requestUri: "/domainnames/{domain_name}/basepathmappings" | |
}, | |
input: { | |
type: "structure", | |
required: ["domainName"], | |
members: { | |
domainName: { | |
location: "uri", | |
locationName: "domain_name" | |
}, | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "Sg" | |
} | |
} | |
} | |
} | |
}, | |
GetClientCertificate: { | |
http: { | |
method: "GET", | |
requestUri: "/clientcertificates/{clientcertificate_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["clientCertificateId"], | |
members: { | |
clientCertificateId: { | |
location: "uri", | |
locationName: "clientcertificate_id" | |
} | |
} | |
}, | |
output: { | |
shape: "S2h" | |
} | |
}, | |
GetClientCertificates: { | |
http: { | |
method: "GET", | |
requestUri: "/clientcertificates" | |
}, | |
input: { | |
type: "structure", | |
members: { | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "S2h" | |
} | |
} | |
} | |
} | |
}, | |
GetDeployment: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/deployments/{deployment_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "deploymentId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
deploymentId: { | |
location: "uri", | |
locationName: "deployment_id" | |
} | |
} | |
}, | |
output: { | |
shape: "Sl" | |
} | |
}, | |
GetDeployments: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/deployments" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "Sl" | |
} | |
} | |
} | |
} | |
}, | |
GetDocumentationPart: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/documentation/parts/{part_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "documentationPartId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
documentationPartId: { | |
location: "uri", | |
locationName: "part_id" | |
} | |
} | |
}, | |
output: { | |
shape: "St" | |
} | |
}, | |
GetDocumentationParts: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/documentation/parts" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
type: { | |
location: "querystring", | |
locationName: "type" | |
}, | |
nameQuery: { | |
location: "querystring", | |
locationName: "name" | |
}, | |
path: { | |
location: "querystring", | |
locationName: "path" | |
}, | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "St" | |
} | |
} | |
} | |
} | |
}, | |
GetDocumentationVersion: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/documentation/versions/{doc_version}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "documentationVersion"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
documentationVersion: { | |
location: "uri", | |
locationName: "doc_version" | |
} | |
} | |
}, | |
output: { | |
shape: "Sv" | |
} | |
}, | |
GetDocumentationVersions: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/documentation/versions" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "Sv" | |
} | |
} | |
} | |
} | |
}, | |
GetDomainName: { | |
http: { | |
method: "GET", | |
requestUri: "/domainnames/{domain_name}" | |
}, | |
input: { | |
type: "structure", | |
required: ["domainName"], | |
members: { | |
domainName: { | |
location: "uri", | |
locationName: "domain_name" | |
} | |
} | |
}, | |
output: { | |
shape: "Sx" | |
} | |
}, | |
GetDomainNames: { | |
http: { | |
method: "GET", | |
requestUri: "/domainnames" | |
}, | |
input: { | |
type: "structure", | |
members: { | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "Sx" | |
} | |
} | |
} | |
} | |
}, | |
GetExport: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/stages/{stage_name}/exports/{export_type}", | |
responseCode: 200 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "stageName", "exportType"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
stageName: { | |
location: "uri", | |
locationName: "stage_name" | |
}, | |
exportType: { | |
location: "uri", | |
locationName: "export_type" | |
}, | |
parameters: { | |
shape: "Sk", | |
location: "querystring" | |
}, | |
accepts: { | |
location: "header", | |
locationName: "Accept" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
contentType: { | |
location: "header", | |
locationName: "Content-Type" | |
}, | |
contentDisposition: { | |
location: "header", | |
locationName: "Content-Disposition" | |
}, | |
body: { | |
type: "blob" | |
} | |
}, | |
payload: "body" | |
} | |
}, | |
GetIntegration: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
} | |
} | |
}, | |
output: { | |
shape: "S18" | |
} | |
}, | |
GetIntegrationResponse: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod", "statusCode"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
}, | |
statusCode: { | |
location: "uri", | |
locationName: "status_code" | |
} | |
} | |
}, | |
output: { | |
shape: "S1c" | |
} | |
}, | |
GetMethod: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
} | |
} | |
}, | |
output: { | |
shape: "S13" | |
} | |
}, | |
GetMethodResponse: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod", "statusCode"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
}, | |
statusCode: { | |
location: "uri", | |
locationName: "status_code" | |
} | |
} | |
}, | |
output: { | |
shape: "S16" | |
} | |
}, | |
GetModel: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/models/{model_name}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "modelName"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
modelName: { | |
location: "uri", | |
locationName: "model_name" | |
}, | |
flatten: { | |
location: "querystring", | |
locationName: "flatten", | |
type: "boolean" | |
} | |
} | |
}, | |
output: { | |
shape: "Sz" | |
} | |
}, | |
GetModelTemplate: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/models/{model_name}/default_template" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "modelName"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
modelName: { | |
location: "uri", | |
locationName: "model_name" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
value: {} | |
} | |
} | |
}, | |
GetModels: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/models" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "Sz" | |
} | |
} | |
} | |
} | |
}, | |
GetResource: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
} | |
} | |
}, | |
output: { | |
shape: "S11" | |
} | |
}, | |
GetResources: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/resources" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "S11" | |
} | |
} | |
} | |
} | |
}, | |
GetRestApi: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
} | |
} | |
}, | |
output: { | |
shape: "S1e" | |
} | |
}, | |
GetRestApis: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis" | |
}, | |
input: { | |
type: "structure", | |
members: { | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "S1e" | |
} | |
} | |
} | |
} | |
}, | |
GetSdk: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}", | |
responseCode: 200 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "stageName", "sdkType"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
stageName: { | |
location: "uri", | |
locationName: "stage_name" | |
}, | |
sdkType: { | |
location: "uri", | |
locationName: "sdk_type" | |
}, | |
parameters: { | |
shape: "Sk", | |
location: "querystring" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
contentType: { | |
location: "header", | |
locationName: "Content-Type" | |
}, | |
contentDisposition: { | |
location: "header", | |
locationName: "Content-Disposition" | |
}, | |
body: { | |
type: "blob" | |
} | |
}, | |
payload: "body" | |
} | |
}, | |
GetSdkType: { | |
http: { | |
method: "GET", | |
requestUri: "/sdktypes/{sdktype_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["id"], | |
members: { | |
id: { | |
location: "uri", | |
locationName: "sdktype_id" | |
} | |
} | |
}, | |
output: { | |
shape: "S44" | |
} | |
}, | |
GetSdkTypes: { | |
http: { | |
method: "GET", | |
requestUri: "/sdktypes" | |
}, | |
input: { | |
type: "structure", | |
members: { | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "S44" | |
} | |
} | |
} | |
} | |
}, | |
GetStage: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/stages/{stage_name}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "stageName"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
stageName: { | |
location: "uri", | |
locationName: "stage_name" | |
} | |
} | |
}, | |
output: { | |
shape: "S1g" | |
} | |
}, | |
GetStages: { | |
http: { | |
method: "GET", | |
requestUri: "/restapis/{restapi_id}/stages" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
deploymentId: { | |
location: "querystring", | |
locationName: "deploymentId" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
item: { | |
type: "list", | |
member: { | |
shape: "S1g" | |
} | |
} | |
} | |
} | |
}, | |
GetUsage: { | |
http: { | |
method: "GET", | |
requestUri: "/usageplans/{usageplanId}/usage" | |
}, | |
input: { | |
type: "structure", | |
required: ["usagePlanId", "startDate", "endDate"], | |
members: { | |
usagePlanId: { | |
location: "uri", | |
locationName: "usageplanId" | |
}, | |
keyId: { | |
location: "querystring", | |
locationName: "keyId" | |
}, | |
startDate: { | |
location: "querystring", | |
locationName: "startDate" | |
}, | |
endDate: { | |
location: "querystring", | |
locationName: "endDate" | |
}, | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
shape: "S4f" | |
} | |
}, | |
GetUsagePlan: { | |
http: { | |
method: "GET", | |
requestUri: "/usageplans/{usageplanId}" | |
}, | |
input: { | |
type: "structure", | |
required: ["usagePlanId"], | |
members: { | |
usagePlanId: { | |
location: "uri", | |
locationName: "usageplanId" | |
} | |
} | |
}, | |
output: { | |
shape: "S1t" | |
} | |
}, | |
GetUsagePlanKey: { | |
http: { | |
method: "GET", | |
requestUri: "/usageplans/{usageplanId}/keys/{keyId}", | |
responseCode: 200 | |
}, | |
input: { | |
type: "structure", | |
required: ["usagePlanId", "keyId"], | |
members: { | |
usagePlanId: { | |
location: "uri", | |
locationName: "usageplanId" | |
}, | |
keyId: { | |
location: "uri", | |
locationName: "keyId" | |
} | |
} | |
}, | |
output: { | |
shape: "S1v" | |
} | |
}, | |
GetUsagePlanKeys: { | |
http: { | |
method: "GET", | |
requestUri: "/usageplans/{usageplanId}/keys" | |
}, | |
input: { | |
type: "structure", | |
required: ["usagePlanId"], | |
members: { | |
usagePlanId: { | |
location: "uri", | |
locationName: "usageplanId" | |
}, | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
}, | |
nameQuery: { | |
location: "querystring", | |
locationName: "name" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "S1v" | |
} | |
} | |
} | |
} | |
}, | |
GetUsagePlans: { | |
http: { | |
method: "GET", | |
requestUri: "/usageplans" | |
}, | |
input: { | |
type: "structure", | |
members: { | |
position: { | |
location: "querystring", | |
locationName: "position" | |
}, | |
keyId: { | |
location: "querystring", | |
locationName: "keyId" | |
}, | |
limit: { | |
location: "querystring", | |
locationName: "limit", | |
type: "integer" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
position: {}, | |
items: { | |
locationName: "item", | |
type: "list", | |
member: { | |
shape: "S1t" | |
} | |
} | |
} | |
} | |
}, | |
ImportApiKeys: { | |
http: { | |
requestUri: "/apikeys?mode=import", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["body", "format"], | |
members: { | |
body: { | |
type: "blob" | |
}, | |
format: { | |
location: "querystring", | |
locationName: "format" | |
}, | |
failOnWarnings: { | |
location: "querystring", | |
locationName: "failonwarnings", | |
type: "boolean" | |
} | |
}, | |
payload: "body" | |
}, | |
output: { | |
type: "structure", | |
members: { | |
ids: { | |
shape: "S8" | |
}, | |
warnings: { | |
shape: "S8" | |
} | |
} | |
} | |
}, | |
ImportDocumentationParts: { | |
http: { | |
method: "PUT", | |
requestUri: "/restapis/{restapi_id}/documentation/parts" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "body"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
mode: { | |
location: "querystring", | |
locationName: "mode" | |
}, | |
failOnWarnings: { | |
location: "querystring", | |
locationName: "failonwarnings", | |
type: "boolean" | |
}, | |
body: { | |
type: "blob" | |
} | |
}, | |
payload: "body" | |
}, | |
output: { | |
type: "structure", | |
members: { | |
ids: { | |
shape: "S8" | |
}, | |
warnings: { | |
shape: "S8" | |
} | |
} | |
} | |
}, | |
ImportRestApi: { | |
http: { | |
requestUri: "/restapis?mode=import", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["body"], | |
members: { | |
failOnWarnings: { | |
location: "querystring", | |
locationName: "failonwarnings", | |
type: "boolean" | |
}, | |
parameters: { | |
shape: "Sk", | |
location: "querystring" | |
}, | |
body: { | |
type: "blob" | |
} | |
}, | |
payload: "body" | |
}, | |
output: { | |
shape: "S1e" | |
} | |
}, | |
PutIntegration: { | |
http: { | |
method: "PUT", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod", "type"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
}, | |
type: {}, | |
integrationHttpMethod: { | |
locationName: "httpMethod" | |
}, | |
uri: {}, | |
credentials: {}, | |
requestParameters: { | |
shape: "Sk" | |
}, | |
requestTemplates: { | |
shape: "Sk" | |
}, | |
passthroughBehavior: {}, | |
cacheNamespace: {}, | |
cacheKeyParameters: { | |
shape: "S8" | |
}, | |
contentHandling: {} | |
} | |
}, | |
output: { | |
shape: "S18" | |
} | |
}, | |
PutIntegrationResponse: { | |
http: { | |
method: "PUT", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod", "statusCode"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
}, | |
statusCode: { | |
location: "uri", | |
locationName: "status_code" | |
}, | |
selectionPattern: {}, | |
responseParameters: { | |
shape: "Sk" | |
}, | |
responseTemplates: { | |
shape: "Sk" | |
}, | |
contentHandling: {} | |
} | |
}, | |
output: { | |
shape: "S1c" | |
} | |
}, | |
PutMethod: { | |
http: { | |
method: "PUT", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod", "authorizationType"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
}, | |
authorizationType: {}, | |
authorizerId: {}, | |
apiKeyRequired: { | |
type: "boolean" | |
}, | |
operationName: {}, | |
requestParameters: { | |
shape: "S14" | |
}, | |
requestModels: { | |
shape: "Sk" | |
} | |
} | |
}, | |
output: { | |
shape: "S13" | |
} | |
}, | |
PutMethodResponse: { | |
http: { | |
method: "PUT", | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}", | |
responseCode: 201 | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod", "statusCode"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
}, | |
statusCode: { | |
location: "uri", | |
locationName: "status_code" | |
}, | |
responseParameters: { | |
shape: "S14" | |
}, | |
responseModels: { | |
shape: "Sk" | |
} | |
} | |
}, | |
output: { | |
shape: "S16" | |
} | |
}, | |
PutRestApi: { | |
http: { | |
method: "PUT", | |
requestUri: "/restapis/{restapi_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "body"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
mode: { | |
location: "querystring", | |
locationName: "mode" | |
}, | |
failOnWarnings: { | |
location: "querystring", | |
locationName: "failonwarnings", | |
type: "boolean" | |
}, | |
parameters: { | |
shape: "Sk", | |
location: "querystring" | |
}, | |
body: { | |
type: "blob" | |
} | |
}, | |
payload: "body" | |
}, | |
output: { | |
shape: "S1e" | |
} | |
}, | |
TestInvokeAuthorizer: { | |
http: { | |
requestUri: "/restapis/{restapi_id}/authorizers/{authorizer_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "authorizerId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
authorizerId: { | |
location: "uri", | |
locationName: "authorizer_id" | |
}, | |
headers: { | |
shape: "S55" | |
}, | |
pathWithQueryString: {}, | |
body: {}, | |
stageVariables: { | |
shape: "Sk" | |
}, | |
additionalContext: { | |
shape: "Sk" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
clientStatus: { | |
type: "integer" | |
}, | |
log: {}, | |
latency: { | |
type: "long" | |
}, | |
principalId: {}, | |
policy: {}, | |
authorization: { | |
type: "map", | |
key: {}, | |
value: { | |
shape: "S8" | |
} | |
}, | |
claims: { | |
shape: "Sk" | |
} | |
} | |
} | |
}, | |
TestInvokeMethod: { | |
http: { | |
requestUri: "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "resourceId", "httpMethod"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
resourceId: { | |
location: "uri", | |
locationName: "resource_id" | |
}, | |
httpMethod: { | |
location: "uri", | |
locationName: "http_method" | |
}, | |
pathWithQueryString: {}, | |
body: {}, | |
headers: { | |
shape: "S55" | |
}, | |
clientCertificateId: {}, | |
stageVariables: { | |
shape: "Sk" | |
} | |
} | |
}, | |
output: { | |
type: "structure", | |
members: { | |
status: { | |
type: "integer" | |
}, | |
body: {}, | |
headers: { | |
shape: "S55" | |
}, | |
log: {}, | |
latency: { | |
type: "long" | |
} | |
} | |
} | |
}, | |
UpdateAccount: { | |
http: { | |
method: "PATCH", | |
requestUri: "/account" | |
}, | |
input: { | |
type: "structure", | |
members: { | |
patchOperations: { | |
shape: "S5b" | |
} | |
} | |
}, | |
output: { | |
shape: "S2j" | |
} | |
}, | |
UpdateApiKey: { | |
http: { | |
method: "PATCH", | |
requestUri: "/apikeys/{api_Key}" | |
}, | |
input: { | |
type: "structure", | |
required: ["apiKey"], | |
members: { | |
apiKey: { | |
location: "uri", | |
locationName: "api_Key" | |
}, | |
patchOperations: { | |
shape: "S5b" | |
} | |
} | |
}, | |
output: { | |
shape: "S6" | |
} | |
}, | |
UpdateAuthorizer: { | |
http: { | |
method: "PATCH", | |
requestUri: "/restapis/{restapi_id}/authorizers/{authorizer_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "authorizerId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
authorizerId: { | |
location: "uri", | |
locationName: "authorizer_id" | |
}, | |
patchOperations: { | |
shape: "S5b" | |
} | |
} | |
}, | |
output: { | |
shape: "Se" | |
} | |
}, | |
UpdateBasePathMapping: { | |
http: { | |
method: "PATCH", | |
requestUri: "/domainnames/{domain_name}/basepathmappings/{base_path}" | |
}, | |
input: { | |
type: "structure", | |
required: ["domainName", "basePath"], | |
members: { | |
domainName: { | |
location: "uri", | |
locationName: "domain_name" | |
}, | |
basePath: { | |
location: "uri", | |
locationName: "base_path" | |
}, | |
patchOperations: { | |
shape: "S5b" | |
} | |
} | |
}, | |
output: { | |
shape: "Sg" | |
} | |
}, | |
UpdateClientCertificate: { | |
http: { | |
method: "PATCH", | |
requestUri: "/clientcertificates/{clientcertificate_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["clientCertificateId"], | |
members: { | |
clientCertificateId: { | |
location: "uri", | |
locationName: "clientcertificate_id" | |
}, | |
patchOperations: { | |
shape: "S5b" | |
} | |
} | |
}, | |
output: { | |
shape: "S2h" | |
} | |
}, | |
UpdateDeployment: { | |
http: { | |
method: "PATCH", | |
requestUri: "/restapis/{restapi_id}/deployments/{deployment_id}" | |
}, | |
input: { | |
type: "structure", | |
required: ["restApiId", "deploymentId"], | |
members: { | |
restApiId: { | |
location: "uri", | |
locationName: "restapi_id" | |
}, | |
deploymentId: { | |
location: "uri", | |
locationName: "deployment_id" | |
}, | |
patchOperations: { | |
shape: "S5b" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
How can I use this to break BOOKWALKER drm? Will this also work for CMOA?