Skip to content

Instantly share code, notes, and snippets.

@Sg4Dylan
Last active October 28, 2024 17:17
Show Gist options
  • Save Sg4Dylan/32881c66c63421c19639f068b74a8ffb to your computer and use it in GitHub Desktop.
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.
/**
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, [email protected].
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 - [email protected]
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 ? "&#xa0;" : 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 ? "" : "&#xa0;")),
!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 ? "" : "&#xa0;") + 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 || "&#160;"
, 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 || "&#160;"))
}
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 + "'>&#9650;</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon " + this.options.icons.down + "'>&#9660;</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&#8230;</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, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#x27;").replace(/\//g, "&#x2F;")
}
,
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 + "[email protected]",
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"
@bewizible
Copy link

How can I use this to break BOOKWALKER drm? Will this also work for CMOA?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment