Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
697d5fea2d
23 changed files with 2451 additions and 1328 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,3 +6,4 @@ db_old_files
|
|||
db_rss_timestamp
|
||||
rss.locker
|
||||
new_files_list
|
||||
.idea/
|
17
AUTHORS
Normal file
17
AUTHORS
Normal file
|
@ -0,0 +1,17 @@
|
|||
MinigalNano is licensed under the AGPL v3 (https://gnu.org/licenses/agpl-3.0.txt)
|
||||
You can check github's contributors list : https://github.com/sebsauvage/MinigalNano/graphs/contributors
|
||||
|
||||
Copyright (c) Thomas Rybak <http://www.minigal.dk/minigal-nano.html> (2014)
|
||||
Copyright (c) Sébastien Sauvage <http://sebsauvage.net/> (2014)
|
||||
Copyright (c) Aldarone <http://aldarone.fr/> (2014)
|
||||
Copyright (c) Sylvhem <http://lepubdelobservateur.fr/> (2014)
|
||||
Copyright (c) Tom Canac <http://tomcanac.com/> (2014, 2015, 2016)
|
||||
Copyright (c) Alda Marteau-Hardi <alda@leetchee.fr> (2014)
|
||||
Copyright (c) bitbybit <crigon+github@crigon.name> (2014)
|
||||
Copyright (c) cyberic99 <cyberic99@users.noreply.github.com> (2014)
|
||||
Copyright (c) iGormilhit <igormilhit@mailoo.org> (2014)
|
||||
Copyright (c) Jan Niggemann <jn@hz6.de> (2014, 2015)
|
||||
Copyright (c) Lucas Cimon <lucas.cimon@gmail.com> (2014)
|
||||
Copyright (c) nodiscc <nodiscc@gmail.com> (2014, 2015)
|
||||
Copyright (c) Orangina Rouge <eric.watson-doqguhmm@yopmail.com> (2014)
|
||||
Copyright (c) Nitrux Project <http://store.nitrux.in/> (2014)
|
662
LICENSE
Normal file
662
LICENSE
Normal file
|
@ -0,0 +1,662 @@
|
|||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
10
README.md
10
README.md
|
@ -53,8 +53,14 @@ If some thumbnails are wrong, you can purge this directory: Thumbnails will be a
|
|||
|
||||
------------------------------------------------------------
|
||||
|
||||
MinigalNano is licensed under the Creative Commons Attribution-Share Alike license (http://creativecommons.org/licenses/by-sa/3.0/)
|
||||
License
|
||||
=======
|
||||
|
||||
* [Project contributors](humans.txt)
|
||||
MinigalNano is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE v3 (https://gnu.org/licenses/agpl-3.0.txt).
|
||||
|
||||
Icons used are from the Nitrux project and licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives International
|
||||
4.0 License (https://creativecommons.org/licenses/by-nc-nd/4.0/).
|
||||
|
||||
* [Project contributors](AUTHORS)
|
||||
* [Original discussion page (english)](http://sebsauvage.net/wiki/doku.php?id=minigal_nano_en)
|
||||
* [Original discussion page (french)](http://sebsauvage.net/wiki/doku.php?id=minigal_nano)
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
<?php
|
||||
/*
|
||||
MINIGAL NANO, a simple PHP/HTML/CSS based image gallery script
|
||||
|
||||
This script and included files are subject to licensing from Creative Commons (http://creativecommons.org/licenses/by-sa/2.5/)
|
||||
You may use, edit and redistribute this script, as long as you pay tribute to the original author by NOT removing the linkback to www.minigal.dk ("Powered by MiniGal Nano x.x.x")
|
||||
* Website : https://github.com/sebsauvage/MinigalNano/
|
||||
* Support : https://github.com/sebsauvage/MinigalNano/issues and by mail (contact [@] tomcanac [.] com)
|
||||
|
||||
MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
|
||||
Original support board : www.minigal.dk and www.minigal.dk/forum
|
||||
|
||||
Please enjoy this free script!
|
||||
*/
|
||||
* This file is part of MinigalNano: https://github.com/sebsauvage/MinigalNano
|
||||
*
|
||||
* MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
|
||||
*
|
||||
* MinigalNano is licensed under the AGPL v3 (https://gnu.org/licenses/agpl-3.0.txt).
|
||||
*/
|
||||
|
||||
// EDIT SETTINGS BELOW TO CUSTOMIZE YOUR GALLERY
|
||||
$thumbs_pr_page = "39"; // Number of thumbnails on a single page
|
||||
|
@ -26,26 +20,27 @@ $sorting_files = "name"; // Sort files by: [name][date][size]
|
|||
$sortdir_folders = SORT_ASC; // Sort direction of folders: SORT_ASC / SORT_DESC
|
||||
$sortdir_files = SORT_ASC; // Sort direction of files: SORT_ASC / SORT_DESC
|
||||
$lazyload = 1; // 0 is pagination, 1 is display all pictures on one page
|
||||
$SkipObjects = array('aFolder', 'aFile.ext'); //Those files and folders will not be displayed (affects the page and the RSS feed)
|
||||
$skip_objects = array('aFolder', 'aFile.ext'); //Those files and folders will not be displayed (affects the page and the RSS feed)
|
||||
|
||||
//LANGUAGE STRINGS
|
||||
$label_home = "Home"; // Name of home link in breadcrumb navigation
|
||||
$label_new = "New"; // Text to display for new images. Use with $display_new variable
|
||||
$label_page = "Page"; // Text used for page navigation
|
||||
$label_all = "All"; // Text used for link to display all images in one page
|
||||
$label_noimages = "No images"; // Empty folder text
|
||||
$label_noimages = "No images... yet !"; // Empty folder text
|
||||
$label_noimages_advice = "Use your FTP to upload some picture !";
|
||||
$label_loading = "Loading..."; // Thumbnail loading text
|
||||
$breadcrumb_separator = ">"; // Breadcrumb parts separator
|
||||
|
||||
//RSS SETTINGS
|
||||
$description = "MiniGal Nano";
|
||||
$nb_items_rss = 25; // Number of elements to display in the feed. If you add a lot of pictures at the time, consider increasing this number
|
||||
$rss_refresh_interval = 60;// Time, in seconds, between two RSS refresh. for example, 3600 = 1update max per hour, 86400 = 1/day.
|
||||
$SkipExts = array('html', 'txt', 'php', "gitignore"); //Files with one of this extension will not be displayed on the RSS feed
|
||||
$rss_refresh_interval = 60; // Time, in seconds, between two RSS refresh. for example, 3600 = 1update max per hour, 86400 = 1/day.
|
||||
$keep_extensions = array('jpg', 'jpeg', 'png', 'gif'); //Files with one of this extension will not be displayed on the RSS feed
|
||||
|
||||
//ADVANCED SETTINGS
|
||||
$thumb_size = 320; //Thumbnail height/width (square thumbs). Changing this will most likely require manual altering of the template file to make it look properly!
|
||||
$label_max_length = 40; //Maximum chars of a folder name that will be displayed on the folder thumbnail
|
||||
$display_exif = 0; //Take care, even if not diplayed EXIF are still readable for visitors. May be a good idea to erase EXIF data...
|
||||
$display_filename = 0; //Show file names below the pictures
|
||||
$thumb_size = 320; // Thumbnail height/width (square thumbs). Changing this will most likely require manual altering of the template file to make it look properly!
|
||||
$label_max_length = 40; // Maximum chars of a folder name that will be displayed on the folder thumbnail
|
||||
$display_exif = 0; // Take care, even if not diplayed EXIF are still readable for visitors. May be a good idea to erase EXIF data...
|
||||
$display_filename = 0; // Show file names below the pictures
|
||||
?>
|
||||
|
|
29
config.php
29
config.php
|
@ -1,24 +1,17 @@
|
|||
<?php
|
||||
/*
|
||||
MINIGAL NANO, a simple PHP/HTML/CSS based image gallery script
|
||||
* This file is part of MinigalNano: https://github.com/sebsauvage/MinigalNano
|
||||
*
|
||||
* MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
|
||||
*
|
||||
* MinigalNano is licensed under the AGPL v3 (https://gnu.org/licenses/agpl-3.0.txt).
|
||||
*/
|
||||
|
||||
This script and included files are subject to licensing from Creative Commons (http://creativecommons.org/licenses/by-sa/2.5/)
|
||||
You may use, edit and redistribute this script, as long as you pay tribute to the original author by NOT removing the linkback to www.minigal.dk ("Powered by MiniGal Nano x.x.x")
|
||||
* Website : https://github.com/sebsauvage/MinigalNano/
|
||||
* Support : https://github.com/sebsauvage/MinigalNano/issues and by mail (contact [@] tomcanac [.] com)
|
||||
/*
|
||||
* INSERT HERE YOUR CUSTOMIZED SETTINGS
|
||||
* for the list of options, check config-default.php
|
||||
*/
|
||||
|
||||
MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
|
||||
Original support board : www.minigal.dk and www.minigal.dk/forum
|
||||
|
||||
Please enjoy this free script!
|
||||
|
||||
Upgraded to https://github.com/sebsauvage/MinigalNano
|
||||
by Sébastien SAUVAGE.
|
||||
|
||||
*/
|
||||
|
||||
// INSERT HERE YOUR CUSTOMIZED SETTINGS
|
||||
// for the list of possible options, peruse config-default.php
|
||||
$title = "Your Own MiniGal Nano";
|
||||
// END
|
||||
|
||||
?>
|
||||
|
|
179
createthumb.php
179
createthumb.php
|
@ -1,79 +1,83 @@
|
|||
<?php
|
||||
/*
|
||||
MINIGAL NANO
|
||||
- A PHP/HTML/CSS based image gallery script
|
||||
|
||||
This script and included files are subject to licensing from Creative Commons (http://creativecommons.org/licenses/by-sa/2.5/)
|
||||
You may use, edit and redistribute this script, as long as you pay tribute to the original author by NOT removing the linkback to www.minigal.dk ("Powered by MiniGal Nano x.x.x")
|
||||
|
||||
MiniGal Nano is created by Thomas Rybak
|
||||
|
||||
Copyright 2010 by Thomas Rybak
|
||||
Support: www.minigal.dk
|
||||
Community: www.minigal.dk/forum
|
||||
|
||||
Please enjoy this free script!
|
||||
|
||||
Version 0.3.5 modified by Sebastien SAUVAGE (sebsauvage.net):
|
||||
- Added thumbnail cache (reduces server CPU load, server bandwith and speeds up client page display).
|
||||
- Thumbnails are now always in JPEG even if the source image is PNG or GIF.
|
||||
|
||||
USAGE EXAMPLE:
|
||||
File: createthumb.php
|
||||
Example: <img src="createthumb.php?filename=photo.jpg&size=100">
|
||||
*/
|
||||
* This file is part of MinigalNano: https://github.com/sebsauvage/MinigalNano
|
||||
*
|
||||
* MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
|
||||
*
|
||||
* MinigalNano is licensed under the AGPL v3 (https://gnu.org/licenses/agpl-3.0.txt).
|
||||
*/
|
||||
|
||||
error_reporting(0);
|
||||
|
||||
$get_filename = $_GET['filename'];
|
||||
$get_size = @$_GET['size'];
|
||||
if (empty($get_size)) $get_size = 120;
|
||||
if (empty($get_size)) {
|
||||
$get_size = 120;
|
||||
}
|
||||
|
||||
if (preg_match("/.jpe?g$/i", $get_filename)) $get_filename_type = "JPG";
|
||||
if (preg_match("/.gif$/i", $get_filename)) $get_filename_type = "GIF";
|
||||
if (preg_match("/.png$/i", $get_filename)) $get_filename_type = "PNG";
|
||||
if (preg_match("/^\/.*/i", $get_filename)) {
|
||||
die("Unauthorized access !");
|
||||
}
|
||||
|
||||
// flip functions from http://stackoverflow.com/questions/8232722/how-to-flip-part-of-an-image-horizontal-with-php-gd
|
||||
if (preg_match("/.jpe?g$/i", $get_filename)) {
|
||||
$get_filename_type = "JPG";
|
||||
}
|
||||
|
||||
if (preg_match("/.gif$/i", $get_filename)) {
|
||||
$get_filename_type = "GIF";
|
||||
}
|
||||
|
||||
if (preg_match("/.png$/i", $get_filename)) {
|
||||
$get_filename_type = "PNG";
|
||||
}
|
||||
|
||||
/**
|
||||
* Vertical flip
|
||||
* @author http://stackoverflow.com/questions/8232722/how-to-flip-part-of-an-image-horizontal-with-php-gd
|
||||
*/
|
||||
function flipVertical(&$img) {
|
||||
$size_x = imagesx($img);
|
||||
$size_y = imagesy($img);
|
||||
$temp = imagecreatetruecolor($size_x, $size_y);
|
||||
$x = imagecopyresampled($temp, $img, 0, 0, 0, ($size_y-1), $size_x, $size_y, $size_x, 0-$size_y);
|
||||
if ($x)
|
||||
{
|
||||
$x = imagecopyresampled($temp, $img, 0, 0, 0, ($size_y - 1), $size_x, $size_y, $size_x, 0 - $size_y);
|
||||
if ($x) {
|
||||
$img = $temp;
|
||||
} else {
|
||||
die("Unable to flip image");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Horizontal flip
|
||||
* @author http://stackoverflow.com/questions/8232722/how-to-flip-part-of-an-image-horizontal-with-php-gd
|
||||
*/
|
||||
function flipHorizontal(&$img) {
|
||||
$size_x = imagesx($img);
|
||||
$size_y = imagesy($img);
|
||||
$temp = imagecreatetruecolor($size_x, $size_y);
|
||||
$x = imagecopyresampled($temp, $img, 0, 0, ($size_x-1), 0, $size_x, $size_y, 0-$size_x, $size_y);
|
||||
if ($x)
|
||||
{
|
||||
$x = imagecopyresampled($temp, $img, 0, 0, ($size_x - 1), 0, $size_x, $size_y, 0 - $size_x, $size_y);
|
||||
if ($x) {
|
||||
$img = $temp;
|
||||
} else {
|
||||
die("Unable to flip image");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sanitizing (this allows for collisions)
|
||||
*/
|
||||
function sanitize($name) {
|
||||
// note: this allows for collisions
|
||||
return preg_replace("/[^[:alnum:]_.-]/", "_", $name);
|
||||
}
|
||||
|
||||
// Make sure the "thumbs" directory exists.
|
||||
if (!is_dir('thumbs') && is_writable('.'))
|
||||
{
|
||||
mkdir('thumbs',0700);
|
||||
if (!is_dir('thumbs') && is_writable('.')) {
|
||||
mkdir('thumbs', 0700);
|
||||
}
|
||||
|
||||
// Thumbnail file name and path.
|
||||
// (We always put thumbnails in jpg for simplification)
|
||||
$thumbname = 'thumbs/'.sanitize($get_filename).'.jpg';
|
||||
$thumbname = 'thumbs/' . sanitize($get_filename) . '.jpg';
|
||||
|
||||
if (file_exists($thumbname)) // If thumbnail exists, serve it.
|
||||
{
|
||||
|
@ -81,7 +85,7 @@ if (file_exists($thumbname)) // If thumbnail exists, serve it.
|
|||
$cacheContent = fread($fd, filesize($thumbname));
|
||||
fclose($fd);
|
||||
header('Content-type: image/jpeg');
|
||||
echo($cacheContent);
|
||||
echo ($cacheContent);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
@ -112,63 +116,85 @@ $yoord = 0;
|
|||
$imgsize = getimagesize($get_filename);
|
||||
$width = $imgsize[0];
|
||||
$height = $imgsize[1];
|
||||
if ($width > $height) // If the width is greater than the height it’s a horizontal picture
|
||||
{
|
||||
$xoord = ceil(($width-$height)/2);
|
||||
$width = $height; // Then we read a square frame that equals the width
|
||||
}
|
||||
else
|
||||
{
|
||||
$yoord = ceil(($height-$width)/2);
|
||||
// If the width is greater than the height it’s a horizontal picture
|
||||
if ($width > $height) {
|
||||
$xoord = ceil(($width - $height) / 2);
|
||||
// Then we read a square frame that equals the width
|
||||
$width = $height;
|
||||
} else {
|
||||
$yoord = ceil(($height - $width) / 2);
|
||||
$height = $width;
|
||||
}
|
||||
|
||||
// Rotate JPG pictures
|
||||
// for more info on orientation see
|
||||
// http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/
|
||||
|
||||
$degrees = 0;
|
||||
$flip = '';
|
||||
if ($get_filename_type == "JPG")
|
||||
{
|
||||
if (function_exists('exif_read_data') && function_exists('imagerotate'))
|
||||
{
|
||||
$exif = exif_read_data($get_filename, 0, true);
|
||||
if (isset($exif['IFD0']) && isset($exif['IFD0']['Orientation']))
|
||||
if (preg_match("/.jpg$|.jpeg$/i", $_GET['filename'])) {
|
||||
if (function_exists('exif_read_data') && function_exists('imagerotate')) {
|
||||
$exif = exif_read_data($_GET['filename'], 0, true);
|
||||
$ort = $exif['IFD0']['Orientation'];
|
||||
else
|
||||
$ort = 0;
|
||||
// for more info on orientation see
|
||||
// http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/
|
||||
$ort2deg = array(3=>180, 4=>180, 5=>270, 6=>270, 7=>90, 8=>90);
|
||||
$degrees = in_array($ort, $ort2deg) ? $ort2deg[$ort] : 0;
|
||||
$ort2flip = array(2, 4, 5, 7);
|
||||
$flip = in_array($ort, $flip2deg) ? 'vertical' : '';
|
||||
switch ($ort) {
|
||||
case 3: // 180 rotate right
|
||||
$degrees = 180;
|
||||
break;
|
||||
case 6: // 90 rotate right
|
||||
$degrees = 270;
|
||||
break;
|
||||
case 8: // 90 rotate left
|
||||
$degrees = 90;
|
||||
break;
|
||||
case 2: // flip vertical
|
||||
$flip = 'vertical';
|
||||
break;
|
||||
case 7: // flipped
|
||||
$degrees = 90;
|
||||
$flip = 'vertical';
|
||||
break;
|
||||
case 5: // flipped
|
||||
$degrees = 270;
|
||||
$flip = 'vertical';
|
||||
break;
|
||||
case 4: // flipped
|
||||
$degrees = 180;
|
||||
$flip = 'vertical';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$target = imagecreatetruecolor($get_size, $get_size);
|
||||
|
||||
// if the picture can be transparent, add a white background instead a black
|
||||
if (in_array($get_filename_type, array("GIF", "PNG")))
|
||||
{
|
||||
// if the picture can be transparent, add a white background
|
||||
if (in_array($get_filename_type, array("GIF", "PNG"))) {
|
||||
$backgroundColor = imagecolorallocate($target, 255, 255, 255);
|
||||
imagefill($target, 0, 0, $backgroundColor);
|
||||
}
|
||||
|
||||
if ($get_filename_type == "JPG") {
|
||||
$source = imagecreatefromjpeg($get_filename);
|
||||
}
|
||||
|
||||
if ($get_filename_type == "GIF") {
|
||||
$source = imagecreatefromgif($get_filename);
|
||||
}
|
||||
|
||||
if ($get_filename_type == "PNG") {
|
||||
$source = imagecreatefrompng($get_filename);
|
||||
}
|
||||
|
||||
if ($get_filename_type == "JPG") $source = imagecreatefromjpeg($get_filename);
|
||||
if ($get_filename_type == "GIF") $source = imagecreatefromgif($get_filename);
|
||||
if ($get_filename_type == "PNG") $source = imagecreatefrompng($get_filename);
|
||||
imagecopyresampled($target, $source, 0, 0, $xoord, $yoord, $get_size, $get_size, $width, $height);
|
||||
imagedestroy($source);
|
||||
|
||||
//proper rotation by jan niggemann
|
||||
if ($degrees != 0)
|
||||
{
|
||||
if ($degrees != 0) {
|
||||
$target = imagerotate($target, $degrees, 0);
|
||||
}
|
||||
|
||||
//proper mirror (aka flip) by jan niggemann
|
||||
if ($flip == 'vertical')
|
||||
{
|
||||
if ($flip == 'vertical') {
|
||||
//only in php >= 5.5.0 ImageJPEG(imageflip($target, IMG_FLIP_VERTICAL),null,80);
|
||||
flipVertical($target);
|
||||
flipHorizontal($target);
|
||||
|
@ -182,15 +208,10 @@ imagedestroy($target);
|
|||
$cachedImage = ob_get_contents(); // Get the buffer content.
|
||||
ob_end_flush(); // End buffering
|
||||
|
||||
if (is_writable(dirname($thumbname)))
|
||||
{
|
||||
if (is_writable(dirname($thumbname))) {
|
||||
$fd = fopen($thumbname, "w"); // Save buffer to disk
|
||||
if ($fd)
|
||||
{
|
||||
fwrite($fd,$cachedImage);
|
||||
if ($fd) {
|
||||
fwrite($fd, $cachedImage);
|
||||
fclose($fd);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
|
16
humans.txt
16
humans.txt
|
@ -1,16 +0,0 @@
|
|||
MinigalNano is licensed under the Creative Commons Attribution-Share Alike license (http://creativecommons.org/licenses/by-sa/3.0/)
|
||||
|
||||
Copyright (c) 2014 Thomas Rybak <http://www.minigal.dk/minigal-nano.html>
|
||||
Copyright (c) 2014 Sébastien Sauvage <http://sebsauvage.net/>
|
||||
Copyright (c) 2014 Aldarone <http://aldarone.fr/>
|
||||
Copyright (c) 2014 Sylvhem <http://lepubdelobservateur.fr/>
|
||||
Copyright (c) 2014 Tom Canac <http://tomcanac.com/>
|
||||
Copyright (c) 2014 Alda Marteau-Hardi <alda@leetchee.fr>
|
||||
Copyright (c) 2014 bitbybit <crigon+github@crigon.name>
|
||||
Copyright (c) 2014 cyberic99 <cyberic99@users.noreply.github.com>
|
||||
Copyright (c) 2014 iGormilhit <igormilhit@mailoo.org>
|
||||
Copyright (c) 2014 Jan <jn@hz6.de>
|
||||
Copyright (c) 2014 Lucas Cimon <lucas.cimon@gmail.com>
|
||||
Copyright (c) 2014 nodiscc <nodiscc@gmail.com>
|
||||
Copyright (c) 2014 Orangina Rouge <eric.watson-doqguhmm@yopmail.com>
|
||||
Copyright (c) 2014 Nitrux Project <http://store.nitrux.in/>
|
279
index.php
279
index.php
|
@ -1,36 +1,23 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
MINIGAL NANO
|
||||
- A PHP/HTML/CSS based image gallery script
|
||||
|
||||
This script and included files are subject to licensing from Creative Commons (http://creativecommons.org/licenses/by-sa/2.5/)
|
||||
You may use, edit and redistribute this script, as long as you pay tribute to the original author by NOT removing the linkback to www.minigal.dk ("Powered by MiniGal Nano x.x.x")
|
||||
|
||||
MiniGal Nano is created by Thomas Rybak
|
||||
|
||||
Copyright 2010 by Thomas Rybak
|
||||
Support: www.minigal.dk
|
||||
Community: www.minigal.dk/forum
|
||||
|
||||
Please enjoy this free script!
|
||||
|
||||
|
||||
Upgraded to https://github.com/sebsauvage/MinigalNano
|
||||
by Sébastien SAUVAGE.
|
||||
|
||||
*/
|
||||
* This file is part of MinigalNano: https://github.com/sebsauvage/MinigalNano
|
||||
*
|
||||
* MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
|
||||
*
|
||||
* MinigalNano is licensed under the AGPL v3 (https://gnu.org/licenses/agpl-3.0.txt).
|
||||
*/
|
||||
|
||||
error_reporting(-1);
|
||||
|
||||
// Do not edit below this section unless you know what you are doing!
|
||||
|
||||
header('Content-Type: text/html; charset=UTF-8'); // We use UTF-8 for proper international characters handling.
|
||||
$version = "0.3.7";
|
||||
$version = "0.4.0";
|
||||
ini_set("memory_limit", "256M");
|
||||
|
||||
require("config-default.php");
|
||||
include("config.php");
|
||||
require "config-default.php";
|
||||
include "config.php";
|
||||
|
||||
//-----------------------
|
||||
// DEFINE VARIABLES
|
||||
|
@ -55,8 +42,7 @@ if (!function_exists('exif_read_data') && $display_exif == 1) {
|
|||
//-----------------------
|
||||
// FUNCTIONS
|
||||
//-----------------------
|
||||
function padstring($name, $length)
|
||||
{
|
||||
function padstring($name, $length) {
|
||||
global $label_max_length;
|
||||
if (!isset($length)) {
|
||||
$length = $label_max_length;
|
||||
|
@ -67,12 +53,11 @@ function padstring($name, $length)
|
|||
return $name;
|
||||
}
|
||||
|
||||
function getfirstImage($dirname)
|
||||
{
|
||||
function getfirstImage($dirname) {
|
||||
$imageName = false;
|
||||
$extensions = array("jpg", "png", "jpeg", "gif");
|
||||
if ($handle = opendir($dirname)) {
|
||||
while(false !== ($file = readdir($handle))) {
|
||||
while (false !== ($file = readdir($handle))) {
|
||||
if ($file[0] == '.') {
|
||||
continue;
|
||||
}
|
||||
|
@ -91,23 +76,21 @@ function getfirstImage($dirname)
|
|||
return $imageName;
|
||||
}
|
||||
|
||||
function parse_fraction($v, $round=0)
|
||||
{
|
||||
function parse_fraction($v, $round = 0) {
|
||||
list($x, $y) = array_map('intval', explode('/', $v));
|
||||
if (empty($x) || empty($y)) {
|
||||
return $v;
|
||||
}
|
||||
if ($x % $y == 0) {
|
||||
return $x/$y;
|
||||
return $x / $y;
|
||||
}
|
||||
if ($y % $x == 0) {
|
||||
return "1/" . $y/$x;
|
||||
return "1/" . $y / $x;
|
||||
}
|
||||
return round($x/$y, $round);
|
||||
return round($x / $y, $round);
|
||||
}
|
||||
|
||||
function readEXIF($file)
|
||||
{
|
||||
function readEXIF($file) {
|
||||
$exif_arr = array();
|
||||
$exif_data = exif_read_data($file);
|
||||
|
||||
|
@ -139,10 +122,11 @@ function readEXIF($file)
|
|||
if (count($exif_arr) > 0) {
|
||||
return "::" . implode(" | ", $exif_arr);
|
||||
}
|
||||
|
||||
return $exif_arr;
|
||||
}
|
||||
|
||||
function checkpermissions($file)
|
||||
{
|
||||
function checkpermissions($file) {
|
||||
global $messages;
|
||||
|
||||
if (!is_readable($file)) {
|
||||
|
@ -153,20 +137,29 @@ function checkpermissions($file)
|
|||
}
|
||||
}
|
||||
|
||||
if (!defined("GALLERY_ROOT"))
|
||||
define("GALLERY_ROOT", "");
|
||||
$requestedDir = '';
|
||||
if (!empty($_GET['dir']))
|
||||
$requestedDir = $_GET['dir'];
|
||||
$thumbdir = rtrim('photos/' . $requestedDir, '/');
|
||||
function guardAgainstDirectoryTraversal($path) {
|
||||
$pattern = "/^(.*\/)?(\.\.)(\/.*)?$/";
|
||||
$directory_traversal = preg_match($pattern, $path);
|
||||
|
||||
//$thumbdir = str_replace('/..', '', $thumbdir); // Prevent directory traversal attacks.
|
||||
if (strstr($thumbdir, '..') !== false) {
|
||||
$requestedDir = '';
|
||||
$thumbdir = rtrim('photos/', '/');
|
||||
if ($directory_traversal === 1) {
|
||||
die("ERROR: Could not open " . htmlspecialchars(stripslashes($current_dir)) . " for reading!");
|
||||
}
|
||||
}
|
||||
|
||||
$currentdir = GALLERY_ROOT . $thumbdir;
|
||||
if (!defined("GALLERY_ROOT")) {
|
||||
define("GALLERY_ROOT", "");
|
||||
}
|
||||
|
||||
$requestedDir = '';
|
||||
if (!empty($_GET['dir'])) {
|
||||
$requestedDir = $_GET['dir'];
|
||||
}
|
||||
|
||||
$photo_root = GALLERY_ROOT . 'photos/';
|
||||
$thumbdir = rtrim('photos/' . $requestedDir, '/');
|
||||
$current_dir = GALLERY_ROOT . $thumbdir;
|
||||
|
||||
guardAgainstDirectoryTraversal($current_dir);
|
||||
|
||||
//-----------------------
|
||||
// READ FILES AND FOLDERS
|
||||
|
@ -174,9 +167,9 @@ $currentdir = GALLERY_ROOT . $thumbdir;
|
|||
$files = array();
|
||||
$dirs = array();
|
||||
$img_captions = array();
|
||||
if (is_dir($currentdir) && $handle = opendir($currentdir)) {
|
||||
if (is_dir($current_dir) && $handle = opendir($current_dir)) {
|
||||
// 1. LOAD CAPTIONS
|
||||
$caption_filename = "$currentdir/captions.txt";
|
||||
$caption_filename = "$current_dir/captions.txt";
|
||||
if (is_readable($caption_filename)) {
|
||||
$caption_handle = fopen($caption_filename, "rb");
|
||||
while (!feof($caption_handle)) {
|
||||
|
@ -190,13 +183,13 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
|
|||
fclose($caption_handle);
|
||||
}
|
||||
|
||||
while (false !== ($file = readdir($handle)) && !in_array($file, $SkipObjects)) {
|
||||
while (false !== ($file = readdir($handle)) && !in_array($file, $skip_objects)) {
|
||||
// 2. LOAD FOLDERS
|
||||
if (is_dir($currentdir . "/" . $file)) {
|
||||
if (is_dir($current_dir . "/" . $file)) {
|
||||
if ($file != "." && $file != "..") {
|
||||
checkpermissions($currentdir . "/" . $file); // Check for correct file permission
|
||||
checkpermissions($current_dir . "/" . $file); // Check for correct file permission
|
||||
// Set thumbnail to folder.jpg if found:
|
||||
if (file_exists($currentdir. '/' . $file . '/folder.jpg')) {
|
||||
if (file_exists($current_dir . '/' . $file . '/folder.jpg')) {
|
||||
$linkParams = http_build_query(
|
||||
array('dir' => ltrim("$requestedDir/$file", '/')),
|
||||
'',
|
||||
|
@ -206,8 +199,8 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
|
|||
|
||||
$imgParams = http_build_query(
|
||||
array(
|
||||
'filename' => "$currentdir/$file/folder.jpg",
|
||||
'size' => $thumb_size
|
||||
'filename' => "$current_dir/$file/folder.jpg",
|
||||
'size' => $thumb_size,
|
||||
),
|
||||
'',
|
||||
'&'
|
||||
|
@ -216,13 +209,13 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
|
|||
|
||||
$dirs[] = array(
|
||||
"name" => $file,
|
||||
"date" => filemtime($currentdir . "/" . $file . "/folder.jpg"),
|
||||
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" alt=\"$label_loading\" /></a></li>"
|
||||
"date" => filemtime($current_dir . "/" . $file . "/folder.jpg"),
|
||||
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" alt=\"$label_loading\" /></a></li>",
|
||||
);
|
||||
} else {
|
||||
// Set thumbnail to first image found (if any):
|
||||
unset($firstimage);
|
||||
$firstimage = getfirstImage("$currentdir/" . $file);
|
||||
$firstimage = getfirstImage("$current_dir/" . $file);
|
||||
|
||||
if ($firstimage != "") {
|
||||
$linkParams = http_build_query(
|
||||
|
@ -235,7 +228,7 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
|
|||
$imgParams = http_build_query(
|
||||
array(
|
||||
'filename' => "$thumbdir/$file/$firstimage",
|
||||
'size' => $thumb_size
|
||||
'size' => $thumb_size,
|
||||
),
|
||||
'',
|
||||
'&'
|
||||
|
@ -244,8 +237,8 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
|
|||
|
||||
$dirs[] = array(
|
||||
"name" => $file,
|
||||
"date" => filemtime($currentdir . "/" . $file),
|
||||
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" alt='$label_loading' /></a></li>"
|
||||
"date" => filemtime($current_dir . "/" . $file),
|
||||
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" alt='$label_loading' /></a></li>",
|
||||
);
|
||||
} else {
|
||||
// If no folder.jpg or image is found, then display default icon:
|
||||
|
@ -259,8 +252,8 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
|
|||
|
||||
$dirs[] = array(
|
||||
"name" => $file,
|
||||
"date" => filemtime($currentdir . "/" . $file),
|
||||
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" width='$thumb_size' height='$thumb_size' alt='$label_loading' /></a></li>"
|
||||
"date" => filemtime($current_dir . "/" . $file),
|
||||
"html" => "<li><a href=\"{$linkUrl}\"><em>" . padstring($file, $label_max_length) . "</em><span></span><img src=\"{$imgUrl}\" width='$thumb_size' height='$thumb_size' alt='$label_loading' /></a></li>",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -269,18 +262,20 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
|
|||
|
||||
// 3. LOAD FILES
|
||||
if ($file != "." && $file != ".." && $file != "folder.jpg") {
|
||||
if ($display_filename)
|
||||
if ($display_filename) {
|
||||
$filename_caption = "<em>" . padstring($file, $label_max_length) . "</em>";
|
||||
else
|
||||
} else {
|
||||
$filename_caption = "";
|
||||
}
|
||||
|
||||
// JPG, GIF and PNG
|
||||
if (preg_match("/.jpg$|.gif$|.png$/i", $file)) {
|
||||
//Read EXIF
|
||||
if (!array_key_exists($file, $img_captions)) {
|
||||
if ($display_exif == 1) {
|
||||
$exifReaden = readEXIF($currentdir . "/" . $file);
|
||||
$exifReaden = readEXIF($current_dir . "/" . $file);
|
||||
//Add to the caption all the EXIF information
|
||||
$img_captions[$file] = $file.$exifReaden;
|
||||
$img_captions[$file] = $file . $exifReaden;
|
||||
} else {
|
||||
//If no EXIF, just use the filename as caption
|
||||
$img_captions[$file] = $file;
|
||||
|
@ -290,51 +285,85 @@ if (is_dir($currentdir) && $handle = opendir($currentdir)) {
|
|||
// Format: title::caption
|
||||
// Example: My cat::My cat like to <i>roll</i> on the floor.
|
||||
// If file is not provided, image filename will be used instead.
|
||||
checkpermissions($currentdir . "/" . $file);
|
||||
checkpermissions($current_dir . "/" . $file);
|
||||
|
||||
if (is_file($currentdir.'/'.$file.'.html'))
|
||||
$img_captions[$file] = $file.'::'.htmlspecialchars(file_get_contents($currentdir.'/'.$file.'.html'), ENT_QUOTES);
|
||||
$linkUrl = str_replace('%2F', '/', rawurlencode("$currentdir/$file"));
|
||||
if (is_file($current_dir . '/' . $file . '.html')) {
|
||||
$img_captions[$file] = $file . '::' . htmlspecialchars(file_get_contents($current_dir . '/' . $file . '.html'), ENT_QUOTES);
|
||||
}
|
||||
|
||||
$linkUrl = str_replace('%2F', '/', rawurlencode("$current_dir/$file"));
|
||||
$imgParams = http_build_query(
|
||||
array('filename' => "$thumbdir/$file", 'size' => $thumb_size),
|
||||
'',
|
||||
'&');
|
||||
$imgUrl = GALLERY_ROOT . "createthumb.php?$imgParams";
|
||||
if ($lazyload)
|
||||
if ($lazyload) {
|
||||
$imgopts = "class=\"b-lazy\" src=data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== data-src=\"$imgUrl\"";
|
||||
else
|
||||
} else {
|
||||
$imgopts = "src=\"{$imgUrl}\"";
|
||||
}
|
||||
|
||||
$files[] = array(
|
||||
"name" => $file,
|
||||
"date" => filemtime($currentdir . "/" . $file),
|
||||
"size" => filesize($currentdir . "/" . $file),
|
||||
"html" => "<li><a href=\"{$linkUrl}\" rel='lightbox[billeder]' title=\"".htmlentities($img_captions[$file])."\"><img $imgopts alt='$label_loading' /></a>" . $filename_caption . "</li>");
|
||||
"date" => filemtime($current_dir . "/" . $file),
|
||||
"size" => filesize($current_dir . "/" . $file),
|
||||
"html" => "<li><a href=\"{$linkUrl}\" rel='lightbox[billeder]' title=\"" . htmlentities($img_captions[$file]) . "\"><img $imgopts alt='$label_loading' /></a>" . $filename_caption . "</li>");
|
||||
}
|
||||
// Other filetypes
|
||||
$extension = "";
|
||||
if (preg_match("/.pdf$/i", $file)) $extension = "PDF"; // PDF
|
||||
if (preg_match("/.zip$/i", $file)) $extension = "ZIP"; // ZIP archive
|
||||
if (preg_match("/.rar$|.r[0-9]{2,}/i", $file)) $extension = "RAR"; // RAR Archive
|
||||
if (preg_match("/.tar$/i", $file)) $extension = "TAR"; // TARball archive
|
||||
if (preg_match("/.gz$/i", $file)) $extension = "GZ"; // GZip archive
|
||||
if (preg_match("/.doc$|.docx$/i", $file)) $extension = "DOCX"; // Word
|
||||
if (preg_match("/.ppt$|.pptx$/i", $file)) $extension = "PPTX"; //Powerpoint
|
||||
if (preg_match("/.xls$|.xlsx$/i", $file)) $extension = "XLXS"; // Excel
|
||||
if (preg_match("/.ogv$|.mp4$|.mpg$|.mpeg$|.mov$|.avi$|.wmv$|.flv$|.webm$/i", $file)) $extension = "VIDEO"; // video files
|
||||
if (preg_match("/.aiff$|.aif$|.wma$|.aac$|.flac$|.mp3$|.ogg$|.m4a$/i", $file)) $extension = "AUDIO"; // audio files
|
||||
if (preg_match("/\.pdf$/i", $file)) {
|
||||
$extension = "PDF";
|
||||
}
|
||||
// PDF
|
||||
if (preg_match("/\.zip$/i", $file)) {
|
||||
$extension = "ZIP";
|
||||
}
|
||||
// ZIP archive
|
||||
if (preg_match("/\.rar$|\.r[0-9]{2,}/i", $file)) {
|
||||
$extension = "RAR";
|
||||
}
|
||||
// RAR Archive
|
||||
if (preg_match("/\.tar$/i", $file)) {
|
||||
$extension = "TAR";
|
||||
}
|
||||
// TARball archive
|
||||
if (preg_match("/\.gz$/i", $file)) {
|
||||
$extension = "GZ";
|
||||
}
|
||||
// GZip archive
|
||||
if (preg_match("/\.doc$|\.docx$/i", $file)) {
|
||||
$extension = "DOCX";
|
||||
}
|
||||
// Word
|
||||
if (preg_match("/\.ppt$|\.pptx$/i", $file)) {
|
||||
$extension = "PPTX";
|
||||
}
|
||||
//Powerpoint
|
||||
if (preg_match("/\.xls$|\.xlsx$/i", $file)) {
|
||||
$extension = "XLXS";
|
||||
}
|
||||
// Excel
|
||||
if (preg_match("/\.ogv$|\.mp4$|\.mpg$|\.mpeg$|\.mov$|\.avi$|\.wmv$|\.flv$|\.webm$/i", $file)) {
|
||||
$extension = "VIDEO";
|
||||
}
|
||||
// video files
|
||||
if (preg_match("/\.aiff$|\.aif$|\.wma$|\.aac$|\.flac$|\.mp3$|\.ogg$|\.m4a$/i", $file)) {
|
||||
$extension = "AUDIO";
|
||||
}
|
||||
// audio files
|
||||
|
||||
if ($extension != "") {
|
||||
$files[] = array(
|
||||
"name" => $file,
|
||||
"date" => filemtime($currentdir . "/" . $file),
|
||||
"size" => filesize($currentdir . "/" . $file),
|
||||
"html" => "<li><a href='$currentdir/$file' title='$file'><em-pdf>" . padstring($file, 20) . "</em-pdf><span></span><img src='" . GALLERY_ROOT . "images/filetype_" . $extension . ".png' width='$thumb_size' height='$thumb_size' alt='$file' /></a>$filename_caption</li>");
|
||||
"date" => filemtime($current_dir . "/" . $file),
|
||||
"size" => filesize($current_dir . "/" . $file),
|
||||
"html" => "<li><a href='$current_dir/$file' title='$file'><em-pdf>" . padstring($file, 20) . "</em-pdf><span></span><img src='" . GALLERY_ROOT . "images/filetype_" . $extension . ".png' width='$thumb_size' height='$thumb_size' alt='$file' /></a>$filename_caption</li>");
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
} else {
|
||||
die("ERROR: Could not open ".htmlspecialchars(stripslashes($currentdir))." for reading!");
|
||||
die("ERROR: Could not open " . htmlspecialchars(stripslashes($current_dir)) . " for reading!");
|
||||
}
|
||||
|
||||
//-----------------------
|
||||
|
@ -368,12 +397,15 @@ if (sizeof($files) > 0) {
|
|||
//-----------------------
|
||||
// OFFSET DETERMINATION
|
||||
//-----------------------
|
||||
if (!isset($_GET["page"]))
|
||||
if (!isset($_GET["page"])) {
|
||||
$_GET["page"] = 1;
|
||||
}
|
||||
|
||||
$offset_start = ($_GET["page"] * $thumbs_pr_page) - $thumbs_pr_page;
|
||||
$offset_end = $offset_start + $thumbs_pr_page;
|
||||
if ($offset_end > sizeof($dirs) + sizeof($files))
|
||||
if ($offset_end > sizeof($dirs) + sizeof($files)) {
|
||||
$offset_end = sizeof($dirs) + sizeof($files);
|
||||
}
|
||||
|
||||
if ($_GET["page"] == "all" || $lazyload) {
|
||||
$offset_start = 0;
|
||||
|
@ -386,55 +418,67 @@ if ($_GET["page"] == "all" || $lazyload) {
|
|||
if (!$lazyload && sizeof($dirs) + sizeof($files) > $thumbs_pr_page) {
|
||||
$page_navigation .= "$label_page ";
|
||||
for ($i = 1; $i <= ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page); $i++) {
|
||||
if ($_GET["page"] == $i)
|
||||
if ($_GET["page"] == $i) {
|
||||
$page_navigation .= "$i";
|
||||
else
|
||||
} else {
|
||||
$page_navigation .= "<a href='?dir=" . $requestedDir . "&page=" . ($i) . "'>" . $i . "</a>";
|
||||
if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page))
|
||||
}
|
||||
|
||||
if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page)) {
|
||||
$page_navigation .= " | ";
|
||||
}
|
||||
|
||||
}
|
||||
//Insert link to view all images
|
||||
if ($_GET["page"] == "all")
|
||||
if ($_GET["page"] == "all") {
|
||||
$page_navigation .= " | $label_all";
|
||||
else
|
||||
} else {
|
||||
$page_navigation .= " | <a href='?dir=" . $requestedDir . "&page=all'>$label_all</a>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//-----------------------
|
||||
// BREADCRUMB NAVIGATION
|
||||
//-----------------------
|
||||
if ($requestedDir != "") {
|
||||
if ($requestedDir != "" && $requestedDir != "photos") {
|
||||
$breadcrumb_navigation = "<div class=\"NavWrapper\">";
|
||||
$breadcrumb_navigation .= "<a href='?dir='>" . $label_home . "</a> $breadcrumb_separator ";
|
||||
$navitems = explode("/", $_REQUEST['dir']);
|
||||
$navitems = explode("/", htmlspecialchars($_REQUEST['dir']));
|
||||
for ($i = 0; $i < sizeof($navitems); $i++) {
|
||||
if ($i == sizeof($navitems)-1) {
|
||||
if ($i == sizeof($navitems) - 1) {
|
||||
$breadcrumb_navigation .= $navitems[$i];
|
||||
} else {
|
||||
$breadcrumb_navigation .= "<a href='?dir=";
|
||||
for ($x = 0; $x <= $i; $x++) {
|
||||
$breadcrumb_navigation .= $navitems[$x];
|
||||
if ($x < $i)
|
||||
if ($x < $i) {
|
||||
$breadcrumb_navigation .= "/";
|
||||
}
|
||||
|
||||
}
|
||||
$breadcrumb_navigation .= "'>" . $navitems[$i] . "</a> $breadcrumb_separator ";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$breadcrumb_navigation .= $label_home;
|
||||
$breadcrumb_navigation .= "</div>";
|
||||
}
|
||||
|
||||
//Include hidden links for all images BEFORE current page so lightbox is able to browse images on different pages
|
||||
for ($y = 0; $y < $offset_start - sizeof($dirs); $y++) {
|
||||
$breadcrumb_navigation .= "<a href='" . $currentdir . "/" . $files[$y]["name"] . "' class='hidden' title='" . $img_captions[$files[$y]["name"]] . "'></a>";
|
||||
$breadcrumb_navigation .= "<a href='" . $current_dir . "/" . $files[$y]["name"] . "' class='hidden' title='" . $img_captions[$files[$y]["name"]] . "'></a>";
|
||||
}
|
||||
|
||||
//-----------------------
|
||||
// DISPLAY FOLDERS
|
||||
//-----------------------
|
||||
if (count($dirs) + count($files) == 0) {
|
||||
$thumbnails .= "<li>$label_noimages</li>"; //Display 'no images' text
|
||||
if ($currentdir == "photos")
|
||||
$messages = "It looks like you have just installed MiniGal Nano. Please run the <a href='system_check.php'>system check tool</a>";
|
||||
$thumbnails .= "<div class=\"Empty\">$label_noimages</div> <div class=\"EmptyAdvice\">$label_noimages_advice</div>"; //Display 'no images' text
|
||||
if ($current_dir == "photos") {
|
||||
$messages =
|
||||
"It looks like you have just installed MiniGal Nano.
|
||||
Please run the <a href='system_check.php'>system check tool</a>. <br>
|
||||
And why not have a look to config.php and customize some values ?";
|
||||
}
|
||||
}
|
||||
$offset_current = $offset_start;
|
||||
for ($x = $offset_start; $x < sizeof($dirs) && $x < $offset_end; $x++) {
|
||||
|
@ -453,38 +497,41 @@ for ($i = $offset_start - sizeof($dirs); $i < $offset_end && $offset_current < $
|
|||
}
|
||||
|
||||
//Include hidden links for all images AFTER current page so lightbox is able to browse images on different pages
|
||||
if ($i < 0)
|
||||
if ($i < 0) {
|
||||
$i = 1;
|
||||
}
|
||||
|
||||
for ($y = $i; $y < sizeof($files); $y++) {
|
||||
$page_navigation .= "<a href='" . $currentdir . "/" . $files[$y]["name"] . "' class='hidden' title='" . $img_captions[$files[$y]["name"]] . "'></a>";
|
||||
$page_navigation .= "<a href='" . $current_dir . "/" . $files[$y]["name"] . "' class='hidden' title='" . $img_captions[$files[$y]["name"]] . "'></a>";
|
||||
}
|
||||
|
||||
//-----------------------
|
||||
// OUTPUT MESSAGES
|
||||
//-----------------------
|
||||
if ($messages != "") {
|
||||
$messages = "<div id=\"topbar\">" . $messages . " <a href=\"#\" onclick=\"document.getElementById('topbar').style.display = 'none';\";><img src=\"images/close.png\" /></a></div>";
|
||||
$messages = $messages . "<div><a id=\"closeMessage\" class=\"closeMessage\" href=\"#\"><img src=\"images/close.png\" /></a><div>";
|
||||
}
|
||||
|
||||
// Read folder comment.
|
||||
$comment_filepath = $currentdir . $file . "/comment.html";
|
||||
$comment_filepath = $current_dir . $file . "/comment.html";
|
||||
if (file_exists($comment_filepath)) {
|
||||
$fd = fopen($comment_filepath, "r");
|
||||
$comment = fread($fd, filesize($comment_filepath));
|
||||
$comment = "<div class=\"Comment\">" . fread($fd, filesize($comment_filepath)) . "</div>";
|
||||
fclose($fd);
|
||||
}
|
||||
|
||||
//PROCESS TEMPLATE FILE
|
||||
if (GALLERY_ROOT != "")
|
||||
if (GALLERY_ROOT != "") {
|
||||
$templatefile = GALLERY_ROOT . "templates/integrate.html";
|
||||
else
|
||||
} else {
|
||||
$templatefile = "templates/" . $templatefile . ".html";
|
||||
}
|
||||
|
||||
if (!$fd = fopen($templatefile, "r")) {
|
||||
echo "Template ".htmlspecialchars(stripslashes($templatefile))." not found!";
|
||||
echo "Template " . htmlspecialchars(stripslashes($templatefile)) . " not found!";
|
||||
exit();
|
||||
} else {
|
||||
$template = fread($fd, filesize ($templatefile));
|
||||
$template = fread($fd, filesize($templatefile));
|
||||
fclose($fd);
|
||||
$template = stripslashes($template);
|
||||
$template = preg_replace("/<% title %>/", $title, $template);
|
||||
|
|
|
@ -1,7 +1,15 @@
|
|||
<?php
|
||||
$path_to_minigalnano = "minigalnano/"; // <- Enter RELATIVE path to MiniGal Nano here (eg. "subfolder/minigalnano") - DO NOT END WITH /
|
||||
/*
|
||||
* This file is part of MinigalNano: https://github.com/sebsauvage/MinigalNano
|
||||
*
|
||||
* MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
|
||||
*
|
||||
* MinigalNano is licensed under the AGPL v3 (https://gnu.org/licenses/agpl-3.0.txt).
|
||||
*/
|
||||
|
||||
// Enter relativepath to MiniGal Nano here (eg. "subfolder/minigalnano") - No trailing /
|
||||
$path_to_minigalnano = "minigalnano/";
|
||||
|
||||
// DO NOT EDIT BELOW THIS LINE!
|
||||
define("GALLERY_ROOT", $path_to_minigalnano);
|
||||
require(GALLERY_ROOT . "index.php");
|
||||
require GALLERY_ROOT . "index.php";
|
||||
?>
|
|
@ -1,24 +1,35 @@
|
|||
/*
|
||||
mediaboxAdvanced v1.3.4b - The ultimate extension of Slimbox and Mediabox; an all-media script
|
||||
updated 2010.09.21
|
||||
(c) 2007-2010 John Einselen <http://iaian7.com>
|
||||
based on Slimbox v1.64 - The ultimate lightweight Lightbox clone
|
||||
(c) 2007-2008 Christophe Beyls <http://www.digitalia.be>
|
||||
MIT-style license.
|
||||
mediaboxAdvanced v1.5.4 - The ultimate extension of Slimbox and Mediabox; an all-media script
|
||||
updated 2011.2.19
|
||||
(c) 2007-2011 John Einselen - http://iaian7.com
|
||||
based on Slimbox v1.64 - The ultimate lightweight Lightbox clone
|
||||
(c) 2007-2008 Christophe Beyls - http://www.digitalia.be
|
||||
|
||||
MiniBoardNano modifications :
|
||||
Tom Canac <http://tomcanac.com/>
|
||||
Uncomment lines 208 and 866 to desactivate the rigth click (take care... it's a pain in the ass for the end-usernd don't protect you at all ! (maj+rigth click make it useless))
|
||||
description: The ultimate extension of Slimbox and Mediabox; an all-media script
|
||||
|
||||
license: MIT-style
|
||||
|
||||
authors:
|
||||
- John Einselen
|
||||
- Christophe Beyls
|
||||
- Contributions from many others
|
||||
|
||||
requires:
|
||||
- core/1.3.2: [Core, Array, String, Number, Function, Object, Event, Browser, Class, Class.Extras, Slick.*, Element.*, FX.*, DOMReady, Swiff]
|
||||
- Quickie/2.1: '*'
|
||||
|
||||
provides: [Mediabox.open, Mediabox.close, Mediabox.recenter, Mediabox.scanPage]
|
||||
*/
|
||||
|
||||
var Mediabox;
|
||||
|
||||
(function() {
|
||||
// Global variables, accessible to Mediabox only
|
||||
var options, images, activeImage, prevImage, nextImage, top, mTop, left, mLeft, winWidth, winHeight, fx, preload, preloadPrev = new Image(), preloadNext = new Image(), foxfix = false, iefix = false,
|
||||
var options, mediaArray, activeMedia, prevMedia, nextMedia, top, mTop, left, mLeft, winWidth, winHeight, fx, preload, preloadPrev = new Image(), preloadNext = new Image(),
|
||||
// DOM elements
|
||||
overlay, center, image, bottom, captionSplit, title, caption, prevLink, number, nextLink,
|
||||
overlay, center, media, bottom, captionSplit, title, caption, number, prevLink, nextLink,
|
||||
// Mediabox specific vars
|
||||
URL, WH, WHL, elrel, mediaWidth, mediaHeight, mediaType = "none", mediaSplit, mediaId = "mediaBox", mediaFmt, margin;
|
||||
URL, WH, WHL, elrel, mediaWidth, mediaHeight, mediaType = "none", mediaSplit, mediaId = "mediaBox", margin, marginBottom;
|
||||
|
||||
/* Initialization */
|
||||
|
||||
|
@ -31,8 +42,9 @@ var Mediabox;
|
|||
]).setStyle("display", "none")
|
||||
);
|
||||
|
||||
image = new Element("div", {id: "mbImage"}).injectInside(center);
|
||||
bottom = new Element("div", {id: "mbBottom"}).injectInside(center).adopt(
|
||||
container = new Element("div", {id: "mbContainer"}).inject(center, "inside");
|
||||
media = new Element("div", {id: "mbMedia"}).inject(container, "inside");
|
||||
bottom = new Element("div", {id: "mbBottom"}).inject(center, "inside").adopt(
|
||||
closeLink = new Element("a", {id: "mbCloseLink", href: "#"}).addEvent("click", close),
|
||||
nextLink = new Element("a", {id: "mbNextLink", href: "#"}).addEvent("click", next),
|
||||
prevLink = new Element("a", {id: "mbPrevLink", href: "#"}).addEvent("click", previous),
|
||||
|
@ -43,7 +55,7 @@ var Mediabox;
|
|||
|
||||
fx = {
|
||||
overlay: new Fx.Tween(overlay, {property: "opacity", duration: 360}).set(0),
|
||||
image: new Fx.Tween(image, {property: "opacity", duration: 360, onComplete: captionAnimate}),
|
||||
media: new Fx.Tween(media, {property: "opacity", duration: 360, onComplete: captionAnimate}),
|
||||
bottom: new Fx.Tween(bottom, {property: "opacity", duration: 240}).set(0)
|
||||
};
|
||||
});
|
||||
|
@ -55,27 +67,49 @@ var Mediabox;
|
|||
close(); // Thanks to Yosha on the google group for fixing the close function API!
|
||||
},
|
||||
|
||||
open: function(_images, startImage, _options) {
|
||||
options = $extend({
|
||||
text: ['<big>«</big>','<big>»</big>','<big>×</big>'], // Set "previous", "next", and "close" button content (HTML code should be written as entity codes or properly escaped)
|
||||
// text: ['<big>«</big>','<big>»</big>','<big>×</big>'], // Set "previous", "next", and "close" button content (HTML code should be written as entity codes or properly escaped)
|
||||
// example text: ['<b>P</b>rev','<b>N</b>ext','<b>C</b>lose'],
|
||||
loop: true, // Allows to navigate between first and last images
|
||||
recenter: function(){ // Thanks to Garo Hussenjian (Xapnet Productions http://www.xapnet.com) for suggesting this addition
|
||||
if (center && !Browser.Platform.ios) {
|
||||
left = window.getScrollLeft() + (window.getWidth()/2);
|
||||
center.setStyles({left: left, marginLeft: -(mediaWidth/2)-margin});
|
||||
// top = window.getScrollTop() + (window.getHeight()/2);
|
||||
// margin = center.getStyle('padding-left').toInt()+media.getStyle('margin-left').toInt()+media.getStyle('padding-left').toInt();
|
||||
// center.setStyles({top: top, left: left, marginTop: -(mediaHeight/2)-margin, marginLeft: -(mediaWidth/2)-margin});
|
||||
}
|
||||
},
|
||||
|
||||
open: function(_mediaArray, startMedia, _options) {
|
||||
options = {
|
||||
// Text options (translate as needed)
|
||||
buttonText: ['<big>«</big>','<big>»</big>','<big>×</big>'], // Array defines "previous", "next", and "close" button content (HTML code should be written as entity codes or properly escaped)
|
||||
// buttonText: ['<big>«</big>','<big>»</big>','<big>×</big>'],
|
||||
// buttonText: ['<b>P</b>rev','<b>N</b>ext','<b>C</b>lose'],
|
||||
counterText: '({x} of {y})', // Counter text, {x} = current item number, {y} = total gallery length
|
||||
linkText: '<a href="{x}" target="_new">{x}</a><br/>open in a new tab</div>', // Text shown on iOS devices for non-image links
|
||||
flashText: '<b>Error</b><br/>Adobe Flash is either not installed or not up to date, please visit <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" title="Get Flash" target="_new">Adobe.com</a> to download the free player.', // Text shown if Flash is not installed.
|
||||
// General overlay options
|
||||
center: true, // Set to false for use with custom CSS layouts
|
||||
loop: false, // Navigate from last to first elements in a gallery
|
||||
keyboard: true, // Enables keyboard control; escape key, left arrow, and right arrow
|
||||
alpha: true, // Adds 'x', 'c', 'p', and 'n' when keyboard control is also set to true
|
||||
stopKey: false, // Stops all default keyboard actions while overlay is open (such as up/down arrows)
|
||||
keyboardAlpha: false, // Adds 'x', 'c', 'p', and 'n' when keyboard control is also set to true
|
||||
keyboardStop: false, // Stops all default keyboard actions while overlay is open (such as up/down arrows)
|
||||
// Does not apply to iFrame content, does not affect mouse scrolling
|
||||
overlayOpacity: 0.7, // 1 is opaque, 0 is completely transparent (change the color in the CSS file)
|
||||
overlayOpacity: 0.8, // 1 is opaque, 0 is completely transparent (change the color in the CSS file)
|
||||
resizeOpening: true, // Determines if box opens small and grows (true) or starts at larger size (false)
|
||||
resizeDuration: 240, // Duration of each of the box resize animations (in milliseconds)
|
||||
resizeTransition: false, // Mootools transition effect (false leaves it at the default)
|
||||
initialWidth: 320, // Initial width of the box (in pixels)
|
||||
initialHeight: 180, // Initial height of the box (in pixels)
|
||||
defaultWidth: 640, // Default width of the box (in pixels) for undefined media (MP4, FLV, etc.)
|
||||
defaultHeight: 360, // Default height of the box (in pixels) for undefined media (MP4, FLV, etc.)
|
||||
showCaption: true, // Display the title and caption, true / false
|
||||
showCounter: true, // If true, a counter will only be shown if there is more than 1 image to display
|
||||
counterText: '({x} / {y})', // Translate or change as you wish
|
||||
countBack: false, // Inverts the displayed number (so instead of the first element being labeled 1/10, it's 10/10)
|
||||
clickBlock: false, // Adds an event on right-click to block saving of images from the context menu in most browsers (this can't prevent other ways of downloading, but works as a casual deterent)
|
||||
// due to less than ideal code ordering, clickBlock on links must be removed manually around line 250
|
||||
// iOS device options
|
||||
// iOSenable: false, // When set to false, disables overlay entirely (links open in new tab)
|
||||
// IMAGES and INLINE content will display normally,
|
||||
// while ALL OTHER content will display a direct link (this is required so as to not break mixed-media galleries)
|
||||
iOShtml: true, // If set to true, HTML content is displayed normally as well (useful if your HTML content is minimal and UI oriented instead of external sites)
|
||||
// Image options
|
||||
imgBackground: false, // Embed images as CSS background (true) or <img> tag (false)
|
||||
// CSS background is naturally non-clickable, preventing downloads
|
||||
|
@ -84,7 +118,8 @@ var Mediabox;
|
|||
imgPadding: 100, // Clearance necessary for images larger than the window size (only used when imgBackground is false)
|
||||
// Change this number only if the CSS style is significantly divergent from the original, and requires different sizes
|
||||
// Inline options
|
||||
// overflow: 'auto', // If set, overides CSS settings for inline content only
|
||||
overflow: 'auto', // If set, overides CSS settings for inline content only, set to "false" to leave CSS settings intact.
|
||||
inlineClone: false, // Clones the inline element instead of moving it from the page to the overlay
|
||||
// Global media options
|
||||
html5: 'true', // HTML5 settings for YouTube and Vimeo, false = off, true = on
|
||||
scriptaccess: 'true', // Allow script access to flash files
|
||||
|
@ -96,20 +131,16 @@ var Mediabox;
|
|||
volume: '100', // 0-100, used for NonverBlaster and Quicktime players
|
||||
medialoop: 'true', // Loop video playback, true / false, used for NonverBlaster and Quicktime players
|
||||
bgcolor: '#000000', // Background color, used for flash and QT media
|
||||
wmode: 'opaque', // Background setting for Adobe Flash ('opaque' and 'transparent' are most common)
|
||||
wmode: 'transparent', // Background setting for Adobe Flash ('opaque' and 'transparent' are most common)
|
||||
// NonverBlaster
|
||||
useNB: true, // use NonverBlaster (true) or JW Media Player (false) for .flv and .mp4 files
|
||||
playerpath: '/js/NonverBlaster.swf', // Path to NonverBlaster.swf
|
||||
controlColor: '0xFFFFFF', // set the controlbar color
|
||||
controlBackColor: '0x000000', // set the controlbar color
|
||||
showTimecode: 'false', // turn timecode display off or on
|
||||
// JW Media Player settings and options
|
||||
JWplayerpath: '/js/player.swf', // Path to the mediaplayer.swf or flvplayer.swf file
|
||||
backcolor: '000000', // Base color for the controller, color name / hex value (0x000000)
|
||||
frontcolor: '999999', // Text and button color for the controller, color name / hex value (0x000000)
|
||||
lightcolor: '000000', // Rollover color for the controller, color name / hex value (0x000000)
|
||||
screencolor: '000000', // Rollover color for the controller, color name / hex value (0x000000)
|
||||
controlbar: 'over', // bottom, over, none (this setting is ignored when playing audio files)
|
||||
playerpath: 'files/NonverBlaster.swf', // Path to NonverBlaster.swf
|
||||
showTimecode: 'false', // turn timecode display off or on (true, false)
|
||||
controlColor: '0xFFFFFF', // set the control color
|
||||
controlBackColor: '0x0000000', // set the bakcground color (video only)
|
||||
// playerBackColor: '0x0000FF', // set the player background color (leave blank to allow CSS styles to show through for audio)
|
||||
playerBackColor: '', // set the player background color (leave blank to allow CSS styles to show through)
|
||||
wmodeNB: 'transparent', // Background setting for Adobe Flash (set to 'transparent' for a blank background, 'opaque' in other situations)
|
||||
// autoAdvance: 'false', // placeholder setting only - not currently implemented (intending to add auto gallery list navigation on play-end)
|
||||
// Quicktime options
|
||||
controller: 'true', // Show controller, true / false
|
||||
// Flickr options
|
||||
|
@ -121,12 +152,11 @@ var Mediabox;
|
|||
revverFront: 'ffffff', // Foreground color
|
||||
revverGrad: '000000', // Gradation color
|
||||
// Ustream options
|
||||
usViewers: 'true', // Show online viewer count (true/false)
|
||||
usViewers: 'true', // Show online viewer count (true, false)
|
||||
// Youtube options
|
||||
ytBorder: '0', // Outline (1=true, 0=false)
|
||||
ytColor1: '000000', // Outline color
|
||||
ytColor2: '333333', // Base interface color (highlight colors stay consistent)
|
||||
ytQuality: '&ap=%2526fmt%3D18', // Leave empty for standard quality, use '&ap=%2526fmt%3D18' for high quality, and '&ap=%2526fmt%3D22' for HD (note that not all videos are availible in high quality, and very few in HD)
|
||||
ytRel: '0', // Show related videos (1=true, 0=false)
|
||||
ytInfo: '1', // Show video info (1=true, 0=false)
|
||||
ytSearch: '0', // Show search field (1=true, 0=false)
|
||||
|
@ -137,43 +167,51 @@ var Mediabox;
|
|||
vmByline: '1', // Show byline
|
||||
vmPortrait: '1', // Show author portrait
|
||||
vmColor: 'ffffff' // Custom controller colors, hex value minus the # sign, defult is 5ca0b5
|
||||
}, _options || {});
|
||||
};
|
||||
|
||||
prevLink.set('html', options.text[0]);
|
||||
nextLink.set('html', options.text[1]);
|
||||
closeLink.set('html', options.text[2]);
|
||||
prevLink.set('html', options.buttonText[0]);
|
||||
nextLink.set('html', options.buttonText[1]);
|
||||
closeLink.set('html', options.buttonText[2]);
|
||||
|
||||
margin = center.getStyle('padding-left').toInt()+image.getStyle('margin-left').toInt()+image.getStyle('padding-left').toInt();
|
||||
|
||||
if ((Browser.Engine.gecko) && (Browser.Engine.version<19)) { // Fixes Firefox 2 and Camino 1.6 incompatibility with opacity + flash
|
||||
foxfix = true;
|
||||
if (Browser.firefox2) { // Fixes Firefox 2 and Camino 1.6 incompatibility with opacity + flash
|
||||
options.overlayOpacity = 1;
|
||||
overlay.className = 'mbOverlayFF';
|
||||
overlay.className = 'mbOverlayOpaque';
|
||||
}
|
||||
|
||||
if ((Browser.Engine.trident) && (Browser.Engine.version<5)) { // Fixes IE 6 and earlier incompatibilities with CSS position: fixed;
|
||||
iefix = true;
|
||||
overlay.className = 'mbOverlayIE';
|
||||
overlay.setStyle("position", "absolute");
|
||||
if (Browser.Platform.ios) {
|
||||
options.keyboard = false;
|
||||
options.resizeOpening = false; // Speeds up interaction on small devices (mobile) or older computers (IE6)
|
||||
overlay.className = 'mbMobile';
|
||||
bottom.className = 'mbMobile';
|
||||
// options.overlayOpacity = 0.001; // Helps ameliorate the issues with CSS overlays in iOS, leaving a clickable background, but avoiding the visible issues
|
||||
position();
|
||||
}
|
||||
|
||||
if (typeof _images == "string") { // Used for single images only, with URL and Title as first two arguments
|
||||
_images = [[_images,startImage,_options]];
|
||||
startImage = 0;
|
||||
if (Browser.ie6) {
|
||||
options.resizeOpening = false; // Speeds up interaction on small devices (mobile) or older computers (IE6)
|
||||
overlay.className = 'mbOverlayAbsolute';
|
||||
position();
|
||||
}
|
||||
|
||||
images = _images;
|
||||
options.loop = options.loop && (images.length > 1);
|
||||
if (typeof _mediaArray == "string") { // Used for single mediaArray only, with URL and Title as first two arguments
|
||||
_mediaArray = [[_mediaArray,startMedia,_options]];
|
||||
startMedia = 0;
|
||||
}
|
||||
|
||||
mediaArray = _mediaArray;
|
||||
options.loop = options.loop && (mediaArray.length > 1);
|
||||
|
||||
size();
|
||||
setup(true);
|
||||
top = window.getScrollTop() + (window.getHeight()/2);
|
||||
left = window.getScrollLeft() + (window.getWidth()/2);
|
||||
fx.resize = new Fx.Morph(center, $extend({duration: options.resizeDuration, onComplete: imageAnimate}, options.resizeTransition ? {transition: options.resizeTransition} : {}));
|
||||
center.setStyles({top: top, left: left, width: options.initialWidth, height: options.initialHeight, marginTop: -(options.initialHeight/2)-margin, marginLeft: -(options.initialWidth/2)-margin, display: ""});
|
||||
margin = center.getStyle('padding-left').toInt()+media.getStyle('margin-left').toInt()+media.getStyle('padding-left').toInt();
|
||||
marginBottom = bottom.getStyle('margin-left').toInt()+bottom.getStyle('padding-left').toInt()+bottom.getStyle('margin-right').toInt()+bottom.getStyle('padding-right').toInt();
|
||||
|
||||
/****/ center.setStyles({top: top, left: left, width: options.initialWidth, height: options.initialHeight, marginTop: -(options.initialHeight/2)-margin, marginLeft: -(options.initialWidth/2)-margin, display: ""});
|
||||
fx.resize = new Fx.Morph(center, {duration: options.resizeDuration, onComplete: mediaAnimate});
|
||||
fx.overlay.start(options.overlayOpacity);
|
||||
return changeImage(startImage);
|
||||
return changeMedia(startMedia);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -198,7 +236,7 @@ var Mediabox;
|
|||
linkMapper = linkMapper || function(el) {
|
||||
elrel = el.rel.split(/[\[\]]/);
|
||||
elrel = elrel[1];
|
||||
return [el.href, el.title, elrel];
|
||||
return [el.get('href'), el.title, elrel]; // thanks to Dušan Medlín for figuring out the URL bug!
|
||||
};
|
||||
|
||||
linksFilter = linksFilter || function() {
|
||||
|
@ -207,12 +245,13 @@ var Mediabox;
|
|||
|
||||
var links = this;
|
||||
|
||||
/* clickBlock code - remove the following three lines to enable right-clicking on links to images */
|
||||
links.addEvent('contextmenu', function(e){
|
||||
/*if (this.toString().match(/\.gif|\.jpg|\.jpeg|\.png/i)) e.stop();*/
|
||||
if (this.toString().match(/\.gif|\.jpg|\.jpeg|\.png/i)) e.stop();
|
||||
});
|
||||
|
||||
links.removeEvents("click").addEvent("click", function() {
|
||||
// Build the list of images that will be displayed
|
||||
// Build the list of media that will be displayed
|
||||
var filteredArray = links.filter(linksFilter, this);
|
||||
var filteredLinks = [];
|
||||
var filteredHrefs = [];
|
||||
|
@ -221,7 +260,7 @@ var Mediabox;
|
|||
if(filteredHrefs.indexOf(item.toString()) < 0) {
|
||||
filteredLinks.include(filteredArray[index]);
|
||||
filteredHrefs.include(filteredArray[index].toString());
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
return Mediabox.open(filteredLinks.map(linkMapper), filteredHrefs.indexOf(this.toString()), _options);
|
||||
|
@ -245,9 +284,9 @@ var Mediabox;
|
|||
|
||||
function setup(open) {
|
||||
// Hides on-page objects and embeds while the overlay is open, nessesary to counteract Firefox stupidity
|
||||
if (Browser.Engine.gecko) {
|
||||
if (Browser.firefox) {
|
||||
["object", window.ie ? "select" : "embed"].forEach(function(tag) {
|
||||
Array.forEach(document.getElementsByTagName(tag), function(el) {
|
||||
Array.forEach($$(tag), function(el) {
|
||||
if (open) el._mediabox = el.style.visibility;
|
||||
el.style.visibility = open ? "hidden" : el._mediabox;
|
||||
});
|
||||
|
@ -257,13 +296,13 @@ var Mediabox;
|
|||
overlay.style.display = open ? "" : "none";
|
||||
|
||||
var fn = open ? "addEvent" : "removeEvent";
|
||||
if (iefix) window[fn]("scroll", position);
|
||||
if (Browser.Platform.ios || Browser.ie6) window[fn]("scroll", position); // scroll position is updated only after movement has stopped
|
||||
window[fn]("resize", size);
|
||||
if (options.keyboard) document[fn]("keydown", keyDown);
|
||||
}
|
||||
|
||||
function keyDown(event) {
|
||||
if (options.alpha) {
|
||||
if (options.keyboardAlpha) {
|
||||
switch(event.code) {
|
||||
case 27: // Esc
|
||||
case 88: // 'x'
|
||||
|
@ -290,42 +329,51 @@ var Mediabox;
|
|||
next();
|
||||
}
|
||||
}
|
||||
if (options.stopKey) { return false; };
|
||||
if (options.keyboardStop) { return false; }
|
||||
}
|
||||
|
||||
function previous() {
|
||||
return changeImage(prevImage);
|
||||
return changeMedia(prevMedia);
|
||||
}
|
||||
|
||||
function next() {
|
||||
return changeImage(nextImage);
|
||||
return changeMedia(nextMedia);
|
||||
}
|
||||
|
||||
function changeImage(imageIndex) {
|
||||
if (imageIndex >= 0) {
|
||||
image.set('html', '');
|
||||
activeImage = imageIndex;
|
||||
prevImage = ((activeImage || !options.loop) ? activeImage : images.length) - 1;
|
||||
nextImage = activeImage + 1;
|
||||
if (nextImage == images.length) nextImage = options.loop ? 0 : -1;
|
||||
function changeMedia(mediaIndex) {
|
||||
if (mediaIndex >= 0) {
|
||||
// if (Browser.Platform.ios && !options.iOSenable) {
|
||||
// window.open(mediaArray[mediaIndex][0], "_blank");
|
||||
// close();
|
||||
// return false;
|
||||
// }
|
||||
media.set('html', '');
|
||||
activeMedia = mediaIndex;
|
||||
prevMedia = ((activeMedia || !options.loop) ? activeMedia : mediaArray.length) - 1;
|
||||
nextMedia = activeMedia + 1;
|
||||
if (nextMedia == mediaArray.length) nextMedia = options.loop ? 0 : -1;
|
||||
stop();
|
||||
center.className = "mbLoading";
|
||||
if (preload && mediaType == "inline" && !options.inlineClone) preload.adopt(media.getChildren()); // prevents loss of adopted data
|
||||
|
||||
/* mediaboxAdvanced link formatting and media support */
|
||||
|
||||
if (!images[imageIndex][2]) images[imageIndex][2] = ''; // Thanks to Leo Feyer for offering this fix
|
||||
WH = images[imageIndex][2].split(' ');
|
||||
if (!mediaArray[mediaIndex][2]) mediaArray[mediaIndex][2] = ''; // Thanks to Leo Feyer for offering this fix
|
||||
WH = mediaArray[mediaIndex][2].split(' ');
|
||||
WHL = WH.length;
|
||||
if (WHL>1) {
|
||||
mediaWidth = (WH[WHL-2].match("%")) ? (window.getWidth()*((WH[WHL-2].replace("%", ""))*0.01))+"px" : WH[WHL-2]+"px";
|
||||
mediaHeight = (WH[WHL-1].match("%")) ? (window.getHeight()*((WH[WHL-1].replace("%", ""))*0.01))+"px" : WH[WHL-1]+"px";
|
||||
// mediaWidth = (WH[WHL-2].match("%")) ? (window.getWidth()*((WH[WHL-2].replace("%", ""))*0.01))+"px" : WH[WHL-2]+"px";
|
||||
mediaWidth = (WH[WHL-2].match("%")) ? (window.getWidth()*((WH[WHL-2].replace("%", ""))*0.01)) : WH[WHL-2];
|
||||
// mediaHeight = (WH[WHL-1].match("%")) ? (window.getHeight()*((WH[WHL-1].replace("%", ""))*0.01))+"px" : WH[WHL-1]+"px";
|
||||
mediaHeight = (WH[WHL-1].match("%")) ? (window.getHeight()*((WH[WHL-1].replace("%", ""))*0.01)) : WH[WHL-1];
|
||||
} else {
|
||||
mediaWidth = "";
|
||||
mediaHeight = "";
|
||||
}
|
||||
URL = images[imageIndex][0];
|
||||
URL = mediaArray[mediaIndex][0];
|
||||
// URL = encodeURI(URL).replace("(","%28").replace(")","%29");
|
||||
captionSplit = images[activeImage][1].split('::');
|
||||
// URL = encodeURI(URL).replace("(","%28").replace(")","%29").replace("%20"," ");
|
||||
captionSplit = mediaArray[activeMedia][1].split('::');
|
||||
|
||||
// Quietube and yFrog support
|
||||
if (URL.match(/quietube\.com/i)) {
|
||||
|
@ -353,47 +401,29 @@ var Mediabox;
|
|||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || options.defaultWidth;
|
||||
mediaHeight = mediaHeight || options.defaultHeight;
|
||||
if (options.useNB) {
|
||||
preload = new Swiff(''+options.playerpath+'?mediaURL='+URL+'&allowSmoothing=true&autoPlay='+options.autoplay+'&buffer=6&showTimecode='+options.showTimecode+'&loop='+options.medialoop+'&controlColor='+options.controlColor+'&controlBackColor='+options.controlBackColor+'&defaultVolume='+options.volume+'&scaleIfFullScreen=true&showScalingButton=true&crop=false', {
|
||||
id: 'MediaboxSWF',
|
||||
preload = new Swiff(''+options.playerpath+'?mediaURL='+URL+'&allowSmoothing=true&autoPlay='+options.autoplay+'&buffer=6&showTimecode='+options.showTimecode+'&loop='+options.medialoop+'&controlColor='+options.controlColor+'&controlBackColor='+options.controlBackColor+'&playerBackColor='+options.playerBackColor+'&defaultVolume='+options.volume+'&scaleIfFullScreen=true&showScalingButton=true&crop=false', {
|
||||
id: 'mbVideo',
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
params: {wmode: options.wmodeNB, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
} else {
|
||||
preload = new Swiff(''+options.JWplayerpath+'?file='+URL+'&backcolor='+options.backcolor+'&frontcolor='+options.frontcolor+'&lightcolor='+options.lightcolor+'&screencolor='+options.screencolor+'&autostart='+options.autoplay+'&controlbar='+options.controlbar, {
|
||||
id: 'MediaboxSWF',
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
}
|
||||
startEffect();
|
||||
// MP3, AAC
|
||||
} else if (URL.match(/\.mp3|\.aac|tweetmic\.com|tmic\.fm/i) || mediaType == 'audio') {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || options.defaultWidth;
|
||||
mediaHeight = mediaHeight || "20px";
|
||||
mediaHeight = mediaHeight || "17";
|
||||
if (URL.match(/tweetmic\.com|tmic\.fm/i)) {
|
||||
URL = URL.split('/');
|
||||
URL[4] = URL[4] || URL[3];
|
||||
URL = "http://media4.fjarnet.net/tweet/tweetmicapp-"+URL[4]+'.mp3';
|
||||
}
|
||||
if (options.useNB) {
|
||||
preload = new Swiff(''+options.playerpath+'?mediaURL='+URL+'&allowSmoothing=true&autoPlay='+options.autoplay+'&buffer=6&showTimecode='+options.showTimecode+'&loop='+options.medialoop+'&controlColor='+options.controlColor+'&controlBackColor='+options.controlBackColor+'&defaultVolume='+options.volume+'&scaleIfFullScreen=true&showScalingButton=true&crop=false', {
|
||||
id: 'MediaboxSWF',
|
||||
id: 'mbAudio',
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
} else {
|
||||
preload = new Swiff(''+options.JWplayerpath+'?file='+URL+'&backcolor='+options.backcolor+'&frontcolor='+options.frontcolor+'&lightcolor='+options.lightcolor+'&screencolor='+options.screencolor+'&autostart='+options.autoplay, {
|
||||
id: 'MediaboxSWF',
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
}
|
||||
startEffect();
|
||||
// SWF
|
||||
} else if (URL.match(/\.swf/i) || mediaType == 'flash') {
|
||||
|
@ -401,7 +431,7 @@ var Mediabox;
|
|||
mediaWidth = mediaWidth || options.defaultWidth;
|
||||
mediaHeight = mediaHeight || options.defaultHeight;
|
||||
preload = new Swiff(URL, {
|
||||
id: 'MediaboxSWF',
|
||||
id: 'mbFlash',
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
|
@ -411,12 +441,12 @@ var Mediabox;
|
|||
} else if (URL.match(/\.mov|\.m4v|\.m4a|\.aiff|\.avi|\.caf|\.dv|\.mid|\.m3u|\.mp3|\.mp2|\.mp4|\.qtz/i) || mediaType == 'qt') {
|
||||
mediaType = 'qt';
|
||||
mediaWidth = mediaWidth || options.defaultWidth;
|
||||
mediaHeight = (parseInt(mediaHeight)+16)+"px" || options.defaultHeight;
|
||||
// mediaHeight = (parseInt(mediaHeight, 10)+16)+"px" || options.defaultHeight;
|
||||
mediaHeight = (parseInt(mediaHeight, 10)+16) || options.defaultHeight;
|
||||
preload = new Quickie(URL, {
|
||||
id: 'MediaboxQT',
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
container: 'mbImage',
|
||||
attributes: {controller: options.controller, autoplay: options.autoplay, volume: options.volume, loop: options.medialoop, bgcolor: options.bgcolor}
|
||||
});
|
||||
startEffect();
|
||||
|
@ -426,8 +456,8 @@ var Mediabox;
|
|||
// Blip.tv
|
||||
} else if (URL.match(/blip\.tv/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "640px";
|
||||
mediaHeight = mediaHeight || "390px";
|
||||
mediaWidth = mediaWidth || "640";
|
||||
mediaHeight = mediaHeight || "390";
|
||||
preload = new Swiff(URL, {
|
||||
src: URL,
|
||||
width: mediaWidth,
|
||||
|
@ -438,8 +468,8 @@ var Mediabox;
|
|||
// Break.com
|
||||
} else if (URL.match(/break\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "464px";
|
||||
mediaHeight = mediaHeight || "376px";
|
||||
mediaWidth = mediaWidth || "464";
|
||||
mediaHeight = mediaHeight || "376";
|
||||
mediaId = URL.match(/\d{6}/g);
|
||||
preload = new Swiff('http://embed.break.com/'+mediaId, {
|
||||
width: mediaWidth,
|
||||
|
@ -450,8 +480,8 @@ var Mediabox;
|
|||
// DailyMotion
|
||||
} else if (URL.match(/dailymotion\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "480px";
|
||||
mediaHeight = mediaHeight || "381px";
|
||||
mediaWidth = mediaWidth || "480";
|
||||
mediaHeight = mediaHeight || "381";
|
||||
preload = new Swiff(URL, {
|
||||
id: mediaId,
|
||||
width: mediaWidth,
|
||||
|
@ -462,8 +492,8 @@ var Mediabox;
|
|||
// Facebook
|
||||
} else if (URL.match(/facebook\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "320px";
|
||||
mediaHeight = mediaHeight || "240px";
|
||||
mediaWidth = mediaWidth || "320";
|
||||
mediaHeight = mediaHeight || "240";
|
||||
mediaSplit = URL.split('v=');
|
||||
mediaSplit = mediaSplit[1].split('&');
|
||||
mediaId = mediaSplit[0];
|
||||
|
@ -476,10 +506,10 @@ var Mediabox;
|
|||
});
|
||||
startEffect();
|
||||
// Flickr
|
||||
} else if (URL.match(/flickr\.com/i)) {
|
||||
} else if (URL.match(/flickr\.com(?!.+\/show\/)/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "500px";
|
||||
mediaHeight = mediaHeight || "375px";
|
||||
mediaWidth = mediaWidth || "500";
|
||||
mediaHeight = mediaHeight || "375";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[5];
|
||||
preload = new Swiff('http://www.flickr.com/apps/video/stewart.swf', {
|
||||
|
@ -493,8 +523,8 @@ var Mediabox;
|
|||
// GameTrailers Video
|
||||
} else if (URL.match(/gametrailers\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "480px";
|
||||
mediaHeight = mediaHeight || "392px";
|
||||
mediaWidth = mediaWidth || "480";
|
||||
mediaHeight = mediaHeight || "392";
|
||||
mediaId = URL.match(/\d{5}/g);
|
||||
preload = new Swiff('http://www.gametrailers.com/remote_wrap.php?mid='+mediaId, {
|
||||
id: mediaId,
|
||||
|
@ -506,8 +536,8 @@ var Mediabox;
|
|||
// Google Video
|
||||
} else if (URL.match(/google\.com\/videoplay/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "400px";
|
||||
mediaHeight = mediaHeight || "326px";
|
||||
mediaWidth = mediaWidth || "400";
|
||||
mediaHeight = mediaHeight || "326";
|
||||
mediaSplit = URL.split('=');
|
||||
mediaId = mediaSplit[1];
|
||||
preload = new Swiff('http://video.google.com/googleplayer.swf?docId='+mediaId+'&autoplay='+options.autoplayNum, {
|
||||
|
@ -520,8 +550,8 @@ var Mediabox;
|
|||
// Megavideo - Thanks to Robert Jandreu for suggesting this code!
|
||||
} else if (URL.match(/megavideo\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "640px";
|
||||
mediaHeight = mediaHeight || "360px";
|
||||
mediaWidth = mediaWidth || "640";
|
||||
mediaHeight = mediaHeight || "360";
|
||||
mediaSplit = URL.split('=');
|
||||
mediaId = mediaSplit[1];
|
||||
preload = new Swiff('http://wwwstatic.megavideo.com/mv_player.swf?v='+mediaId, {
|
||||
|
@ -534,8 +564,8 @@ var Mediabox;
|
|||
// Metacafe
|
||||
} else if (URL.match(/metacafe\.com\/watch/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "400px";
|
||||
mediaHeight = mediaHeight || "345px";
|
||||
mediaWidth = mediaWidth || "400";
|
||||
mediaHeight = mediaHeight || "345";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[4];
|
||||
preload = new Swiff('http://www.metacafe.com/fplayer/'+mediaId+'/.swf?playerVars=autoPlay='+options.autoplayYes, {
|
||||
|
@ -548,8 +578,8 @@ var Mediabox;
|
|||
// Myspace
|
||||
} else if (URL.match(/vids\.myspace\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "425px";
|
||||
mediaHeight = mediaHeight || "360px";
|
||||
mediaWidth = mediaWidth || "425";
|
||||
mediaHeight = mediaHeight || "360";
|
||||
preload = new Swiff(URL, {
|
||||
id: mediaId,
|
||||
width: mediaWidth,
|
||||
|
@ -560,8 +590,8 @@ var Mediabox;
|
|||
// Revver
|
||||
} else if (URL.match(/revver\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "480px";
|
||||
mediaHeight = mediaHeight || "392px";
|
||||
mediaWidth = mediaWidth || "480";
|
||||
mediaHeight = mediaHeight || "392";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[4];
|
||||
preload = new Swiff('http://flash.revver.com/player/1.0/player.swf?mediaId='+mediaId+'&affiliateId='+options.revverID+'&allowFullScreen='+options.revverFullscreen+'&autoStart='+options.autoplay+'&backColor=#'+options.revverBack+'&frontColor=#'+options.revverFront+'&gradColor=#'+options.revverGrad+'&shareUrl=revver', {
|
||||
|
@ -574,8 +604,8 @@ var Mediabox;
|
|||
// Rutube
|
||||
} else if (URL.match(/rutube\.ru/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "470px";
|
||||
mediaHeight = mediaHeight || "353px";
|
||||
mediaWidth = mediaWidth || "470";
|
||||
mediaHeight = mediaHeight || "353";
|
||||
mediaSplit = URL.split('=');
|
||||
mediaId = mediaSplit[1];
|
||||
preload = new Swiff('http://video.rutube.ru/'+mediaId, {
|
||||
|
@ -585,25 +615,11 @@ var Mediabox;
|
|||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
startEffect();
|
||||
// Seesmic
|
||||
} else if (URL.match(/seesmic\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "435px";
|
||||
mediaHeight = mediaHeight || "355px";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[5];
|
||||
preload = new Swiff('http://seesmic.com/Standalone.swf?video='+mediaId, {
|
||||
id: mediaId,
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
startEffect();
|
||||
// Tudou
|
||||
} else if (URL.match(/tudou\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "400px";
|
||||
mediaHeight = mediaHeight || "340px";
|
||||
mediaWidth = mediaWidth || "400";
|
||||
mediaHeight = mediaHeight || "340";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[5];
|
||||
preload = new Swiff('http://www.tudou.com/v/'+mediaId, {
|
||||
|
@ -612,11 +628,11 @@ var Mediabox;
|
|||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
startEffect();
|
||||
// Twitvcam
|
||||
// Twitcam
|
||||
} else if (URL.match(/twitcam\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "320px";
|
||||
mediaHeight = mediaHeight || "265px";
|
||||
mediaWidth = mediaWidth || "320";
|
||||
mediaHeight = mediaHeight || "265";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[3];
|
||||
preload = new Swiff('http://static.livestream.com/chromelessPlayer/wrappers/TwitcamPlayer.swf?hash='+mediaId, {
|
||||
|
@ -625,24 +641,11 @@ var Mediabox;
|
|||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
startEffect();
|
||||
// Twiturm
|
||||
} else if (URL.match(/twiturm\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "402px";
|
||||
mediaHeight = mediaHeight || "48px";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[3];
|
||||
preload = new Swiff('http://twiturm.com/flash/twiturm_mp3.swf?playerID=0&sf='+mediaId, {
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
startEffect();
|
||||
// Twitvid
|
||||
} else if (URL.match(/twitvid\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "600px";
|
||||
mediaHeight = mediaHeight || "338px";
|
||||
mediaWidth = mediaWidth || "600";
|
||||
mediaHeight = mediaHeight || "338";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[3];
|
||||
preload = new Swiff('http://www.twitvid.com/player/'+mediaId, {
|
||||
|
@ -654,8 +657,8 @@ var Mediabox;
|
|||
// Ustream.tv
|
||||
} else if (URL.match(/ustream\.tv/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "400px";
|
||||
mediaHeight = mediaHeight || "326px";
|
||||
mediaWidth = mediaWidth || "400";
|
||||
mediaHeight = mediaHeight || "326";
|
||||
preload = new Swiff(URL+'&viewcount='+options.usViewers+'&autoplay='+options.autoplay, {
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
|
@ -665,8 +668,8 @@ var Mediabox;
|
|||
// YouKu
|
||||
} else if (URL.match(/youku\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "480px";
|
||||
mediaHeight = mediaHeight || "400px";
|
||||
mediaWidth = mediaWidth || "480";
|
||||
mediaHeight = mediaHeight || "400";
|
||||
mediaSplit = URL.split('id_');
|
||||
mediaId = mediaSplit[1];
|
||||
preload = new Swiff('http://player.youku.com/player.php/sid/'+mediaId+'=/v.swf', {
|
||||
|
@ -680,8 +683,8 @@ var Mediabox;
|
|||
mediaSplit = URL.split('v=');
|
||||
if (options.html5) {
|
||||
mediaType = 'url';
|
||||
mediaWidth = mediaWidth || "640px";
|
||||
mediaHeight = mediaHeight || "385px";
|
||||
mediaWidth = mediaWidth || "640";
|
||||
mediaHeight = mediaHeight || "385";
|
||||
mediaId = "mediaId_"+new Date().getTime(); // Safari may not update iframe content with a static id.
|
||||
preload = new Element('iframe', {
|
||||
'src': 'http://www.youtube.com/embed/'+mediaSplit[1],
|
||||
|
@ -694,20 +697,9 @@ var Mediabox;
|
|||
} else {
|
||||
mediaType = 'obj';
|
||||
mediaId = mediaSplit[1];
|
||||
if (mediaId.match(/fmt=22/i)) {
|
||||
mediaFmt = '&ap=%2526fmt%3D22';
|
||||
mediaWidth = mediaWidth || "640px";
|
||||
mediaHeight = mediaHeight || "385px";
|
||||
} else if (mediaId.match(/fmt=18/i)) {
|
||||
mediaFmt = '&ap=%2526fmt%3D18';
|
||||
mediaWidth = mediaWidth || "560px";
|
||||
mediaHeight = mediaHeight || "345px";
|
||||
} else {
|
||||
mediaFmt = options.ytQuality;
|
||||
mediaWidth = mediaWidth || "480px";
|
||||
mediaHeight = mediaHeight || "295px";
|
||||
}
|
||||
preload = new Swiff('http://www.youtube.com/v/'+mediaId+'&autoplay='+options.autoplayNum+'&fs='+options.fullscreenNum+mediaFmt+'&border='+options.ytBorder+'&color1=0x'+options.ytColor1+'&color2=0x'+options.ytColor2+'&rel='+options.ytRel+'&showinfo='+options.ytInfo+'&showsearch='+options.ytSearch, {
|
||||
mediaWidth = mediaWidth || "480";
|
||||
mediaHeight = mediaHeight || "385";
|
||||
preload = new Swiff('http://www.youtube.com/v/'+mediaId+'&autoplay='+options.autoplayNum+'&fs='+options.fullscreenNum+'&border='+options.ytBorder+'&color1=0x'+options.ytColor1+'&color2=0x'+options.ytColor2+'&rel='+options.ytRel+'&showinfo='+options.ytInfo+'&showsearch='+options.ytSearch, {
|
||||
id: mediaId,
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
|
@ -720,9 +712,9 @@ var Mediabox;
|
|||
mediaType = 'obj';
|
||||
mediaSplit = URL.split('p=');
|
||||
mediaId = mediaSplit[1];
|
||||
mediaWidth = mediaWidth || "480px";
|
||||
mediaHeight = mediaHeight || "385px";
|
||||
preload = new Swiff('http://www.youtube.com/p/'+mediaId+'&autoplay='+options.autoplayNum+'&fs='+options.fullscreenNum+mediaFmt+'&border='+options.ytBorder+'&color1=0x'+options.ytColor1+'&color2=0x'+options.ytColor2+'&rel='+options.ytRel+'&showinfo='+options.ytInfo+'&showsearch='+options.ytSearch, {
|
||||
mediaWidth = mediaWidth || "480";
|
||||
mediaHeight = mediaHeight || "385";
|
||||
preload = new Swiff('http://www.youtube.com/p/'+mediaId+'&autoplay='+options.autoplayNum+'&fs='+options.fullscreenNum+'&border='+options.ytBorder+'&color1=0x'+options.ytColor1+'&color2=0x'+options.ytColor2+'&rel='+options.ytRel+'&showinfo='+options.ytInfo+'&showsearch='+options.ytSearch, {
|
||||
id: mediaId,
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
|
@ -732,8 +724,8 @@ var Mediabox;
|
|||
// Veoh
|
||||
} else if (URL.match(/veoh\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "410px";
|
||||
mediaHeight = mediaHeight || "341px";
|
||||
mediaWidth = mediaWidth || "410";
|
||||
mediaHeight = mediaHeight || "341";
|
||||
URL = URL.replace('%3D','/');
|
||||
mediaSplit = URL.split('watch/');
|
||||
mediaId = mediaSplit[1];
|
||||
|
@ -747,8 +739,8 @@ var Mediabox;
|
|||
// Viddler
|
||||
} else if (URL.match(/viddler\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "437px";
|
||||
mediaHeight = mediaHeight || "370px";
|
||||
mediaWidth = mediaWidth || "437";
|
||||
mediaHeight = mediaHeight || "370";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[4];
|
||||
preload = new Swiff(URL, {
|
||||
|
@ -760,25 +752,10 @@ var Mediabox;
|
|||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen, id: 'viddler_'+mediaId, movie: URL}
|
||||
});
|
||||
startEffect();
|
||||
// Viddyou
|
||||
} else if (URL.match(/viddyou\.com/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "416px";
|
||||
mediaHeight = mediaHeight || "312px";
|
||||
mediaSplit = URL.split('=');
|
||||
mediaId = mediaSplit[1];
|
||||
preload = new Swiff('http://www.viddyou.com/get/v2_'+options.vuPlayer+'/'+mediaId+'.swf', {
|
||||
id: mediaId,
|
||||
movie: 'http://www.viddyou.com/get/v2_'+options.vuPlayer+'/'+mediaId+'.swf',
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
params: {wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
startEffect();
|
||||
// Vimeo (now includes HTML5 option)
|
||||
} else if (URL.match(/vimeo\.com/i)) {
|
||||
mediaWidth = mediaWidth || "640px"; // site defualt: 400px
|
||||
mediaHeight = mediaHeight || "360px"; // site defualt: 225px
|
||||
mediaWidth = mediaWidth || "640"; // site defualt: 400px
|
||||
mediaHeight = mediaHeight || "360"; // site defualt: 225px
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[3];
|
||||
|
||||
|
@ -803,32 +780,16 @@ var Mediabox;
|
|||
});
|
||||
startEffect();
|
||||
}
|
||||
// 12seconds
|
||||
} else if (URL.match(/12seconds\.tv/i)) {
|
||||
mediaType = 'obj';
|
||||
mediaWidth = mediaWidth || "430px";
|
||||
mediaHeight = mediaHeight || "360px";
|
||||
mediaSplit = URL.split('/');
|
||||
mediaId = mediaSplit[5];
|
||||
preload = new Swiff('http://embed.12seconds.tv/players/remotePlayer.swf', {
|
||||
id: mediaId,
|
||||
width: mediaWidth,
|
||||
height: mediaHeight,
|
||||
params: {flashvars: 'vid='+mediaId+'', wmode: options.wmode, bgcolor: options.bgcolor, allowscriptaccess: options.scriptaccess, allowfullscreen: options.fullscreen}
|
||||
});
|
||||
startEffect();
|
||||
|
||||
/* Specific Content Types */
|
||||
|
||||
// INLINE
|
||||
} else if (URL.match(/\#mb_/i)) {
|
||||
mediaType = 'inline';
|
||||
mediaWidth = mediaWidth || options.defaultWidth;
|
||||
mediaHeight = mediaHeight || options.defaultHeight;
|
||||
URLsplit = URL.split('#');
|
||||
preload = document.id(URLsplit[1]).get('html');
|
||||
// preload = new Element("div", {id: "mbMediaInline"}).adopt(document.id(URLsplit[1]).getChildren().clone([true,true]));
|
||||
preload = document.id(URLsplit[1]);
|
||||
startEffect();
|
||||
// HTML
|
||||
// HTML (applies to ALL links not recognised as a specific media type)
|
||||
} else {
|
||||
mediaType = 'url';
|
||||
mediaWidth = mediaWidth || options.defaultWidth;
|
||||
|
@ -848,93 +809,123 @@ var Mediabox;
|
|||
}
|
||||
|
||||
function startEffect() {
|
||||
// if (Browser.Platform.ios && (mediaType == "obj" || mediaType == "qt" || mediaType == "html")) alert("this isn't gonna work");
|
||||
// if (Browser.Platform.ios && (mediaType == "obj" || mediaType == "qt" || mediaType == "html")) mediaType = "ios";
|
||||
(mediaType == "img")?media.addEvent("click", next):media.removeEvent("click", next);
|
||||
if (mediaType == "img"){
|
||||
mediaWidth = preload.width;
|
||||
mediaHeight = preload.height;
|
||||
if (options.imgBackground) {
|
||||
image.setStyles({backgroundImage: "url("+URL+")", display: ""});
|
||||
media.setStyles({backgroundImage: "url("+URL+")", display: ""});
|
||||
} else { // Thanks to Dusan Medlin for fixing large 16x9 image errors in a 4x3 browser
|
||||
if (mediaHeight >= winHeight-options.imgPadding && (mediaHeight / winHeight) >= (mediaWidth / winWidth)) {
|
||||
mediaHeight = winHeight-options.imgPadding;
|
||||
mediaWidth = preload.width = parseInt((mediaHeight/preload.height)*mediaWidth);
|
||||
mediaWidth = preload.width = parseInt((mediaHeight/preload.height)*mediaWidth, 10);
|
||||
preload.height = mediaHeight;
|
||||
} else if (mediaWidth >= winWidth-options.imgPadding && (mediaHeight / winHeight) < (mediaWidth / winWidth)) {
|
||||
mediaWidth = winWidth-options.imgPadding;
|
||||
mediaHeight = preload.height = parseInt((mediaWidth/preload.width)*mediaHeight);
|
||||
mediaHeight = preload.height = parseInt((mediaWidth/preload.width)*mediaHeight, 10);
|
||||
preload.width = mediaWidth;
|
||||
}
|
||||
if (Browser.Engine.trident) preload = document.id(preload);
|
||||
/*preload.addEvent('mousedown', function(e){ e.stop(); }).addEvent('contextmenu', function(e){ e.stop(); });*/
|
||||
image.setStyles({backgroundImage: "none", display: ""});
|
||||
preload.inject(image);
|
||||
if (Browser.ie) preload = document.id(preload);
|
||||
if (options.clickBlock) preload.addEvent('mousedown', function(e){ e.stop(); }).addEvent('contextmenu', function(e){ e.stop(); });
|
||||
media.setStyles({backgroundImage: "none", display: ""});
|
||||
preload.inject(media);
|
||||
}
|
||||
// mediaWidth += "px";
|
||||
// mediaHeight += "px";
|
||||
} else if (mediaType == "inline") {
|
||||
// if (options.overflow) media.setStyles({overflow: options.overflow});
|
||||
media.setStyles({backgroundImage: "none", display: ""});
|
||||
// preload.inject(media);
|
||||
// media.grab(preload.get('html'));
|
||||
(options.inlineClone)?media.grab(preload.get('html')):media.adopt(preload.getChildren());
|
||||
} else if (mediaType == "qt") {
|
||||
media.setStyles({backgroundImage: "none", display: ""});
|
||||
preload.inject(media);
|
||||
// preload;
|
||||
} else if (mediaType == "ios" || Browser.Platform.ios) {
|
||||
media.setStyles({backgroundImage: "none", display: ""});
|
||||
media.set('html', options.linkText.replace(/\{x\}/gi, URL));
|
||||
mediaWidth = options.DefaultWidth;
|
||||
mediaHeight = options.DefaultHeight;
|
||||
} else if (mediaType == "url") {
|
||||
media.setStyles({backgroundImage: "none", display: ""});
|
||||
preload.inject(media);
|
||||
// if (Browser.safari) options.resizeOpening = false; // Prevents occasional blank video display errors in Safari, thanks to Kris Gale for the solution
|
||||
} else if (mediaType == "obj") {
|
||||
if (Browser.Plugins.Flash.version<8) {
|
||||
image.setStyles({backgroundImage: "none", display: ""});
|
||||
image.set('html', '<div id="mbError"><b>Error</b><br/>Adobe Flash is either not installed or not up to date, please visit <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" title="Get Flash" target="_new">Adobe.com</a> to download the free player.</div>');
|
||||
if (Browser.Plugins.Flash.version < "8") {
|
||||
media.setStyles({backgroundImage: "none", display: ""});
|
||||
media.set('html', '<div id="mbError"><b>Error</b><br/>Adobe Flash is either not installed or not up to date, please visit <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" title="Get Flash" target="_new">Adobe.com</a> to download the free player.</div>');
|
||||
mediaWidth = options.DefaultWidth;
|
||||
mediaHeight = options.DefaultHeight;
|
||||
} else {
|
||||
image.setStyles({backgroundImage: "none", display: ""});
|
||||
preload.inject(image);
|
||||
media.setStyles({backgroundImage: "none", display: ""});
|
||||
preload.inject(media);
|
||||
// if (Browser.safari) options.resizeOpening = false; // Prevents occasional blank video display errors in Safari, thanks to Kris Gale for the solution
|
||||
}
|
||||
} else if (mediaType == "qt") {
|
||||
image.setStyles({backgroundImage: "none", display: ""});
|
||||
preload;
|
||||
} else if (mediaType == "inline") {
|
||||
// if (options.overflow) image.setStyles({overflow: options.overflow});
|
||||
image.setStyles({backgroundImage: "none", display: ""});
|
||||
image.set('html', preload);
|
||||
} else if (mediaType == "url") {
|
||||
image.setStyles({backgroundImage: "none", display: ""});
|
||||
preload.inject(image);
|
||||
} else {
|
||||
image.setStyles({backgroundImage: "none", display: ""});
|
||||
image.set('html', '<div id="mbError"><b>Error</b><br/>A file type error has occoured, please visit <a href="iaian7.com/webcode/mediaboxAdvanced" title="mediaboxAdvanced" target="_new">iaian7.com</a> or contact the website author for more information.</div>');
|
||||
media.setStyles({backgroundImage: "none", display: ""});
|
||||
media.set('html', options.flashText);
|
||||
mediaWidth = options.defaultWidth;
|
||||
mediaHeight = options.defaultHeight;
|
||||
}
|
||||
image.setStyles({width: mediaWidth, height: mediaHeight});
|
||||
caption.setStyles({width: mediaWidth});
|
||||
|
||||
title.set('html', (options.showCaption) ? captionSplit[0] : "");
|
||||
caption.set('html', (options.showCaption && (captionSplit.length > 1)) ? captionSplit[1] : "");
|
||||
number.set('html', (options.showCounter && (images.length > 1)) ? options.counterText.replace(/{x}/, activeImage + 1).replace(/{y}/, images.length) : "");
|
||||
number.set('html', (options.showCounter && (mediaArray.length > 1)) ? options.counterText.replace(/\{x\}/, (options.countBack)?mediaArray.length-activeMedia:activeMedia+1).replace(/\{y\}/, mediaArray.length) : "");
|
||||
|
||||
if ((prevImage >= 0) && (images[prevImage][0].match(/\.gif|\.jpg|\.jpeg|\.png|twitpic\.com/i))) preloadPrev.src = images[prevImage][0].replace(/twitpic\.com/i, "twitpic.com/show/full");
|
||||
if ((nextImage >= 0) && (images[nextImage][0].match(/\.gif|\.jpg|\.jpeg|\.png|twitpic\.com/i))) preloadNext.src = images[nextImage][0].replace(/twitpic\.com/i, "twitpic.com/show/full");
|
||||
// if (options.countBack) {
|
||||
// number.set('html', (options.showCounter && (mediaArray.length > 1)) ? options.counterText.replace(/{x}/, activeMedia + 1).replace(/{y}/, mediaArray.length) : "");
|
||||
// } else {
|
||||
// number.set('html', (options.showCounter && (mediaArray.length > 1)) ? options.counterText.replace(/{x}/, mediaArray.length - activeMedia).replace(/{y}/, mediaArray.length) : "");
|
||||
// }
|
||||
|
||||
mediaWidth = image.offsetWidth;
|
||||
mediaHeight = image.offsetHeight+bottom.offsetHeight;
|
||||
if (mediaHeight >= top+top) { mTop = -top } else { mTop = -(mediaHeight/2) };
|
||||
if (mediaWidth >= left+left) { mLeft = -left } else { mLeft = -(mediaWidth/2) };
|
||||
if (options.resizeOpening) { fx.resize.start({width: mediaWidth, height: mediaHeight, marginTop: mTop-margin, marginLeft: mLeft-margin});
|
||||
} else { center.setStyles({width: mediaWidth, height: mediaHeight, marginTop: mTop-margin, marginLeft: mLeft-margin}); imageAnimate(); }
|
||||
if ((prevMedia >= 0) && (mediaArray[prevMedia][0].match(/\.gif|\.jpg|\.jpeg|\.png|twitpic\.com/i))) preloadPrev.src = mediaArray[prevMedia][0].replace(/twitpic\.com/i, "twitpic.com/show/full");
|
||||
if ((nextMedia >= 0) && (mediaArray[nextMedia][0].match(/\.gif|\.jpg|\.jpeg|\.png|twitpic\.com/i))) preloadNext.src = mediaArray[nextMedia][0].replace(/twitpic\.com/i, "twitpic.com/show/full");
|
||||
if (prevMedia >= 0) prevLink.style.display = "";
|
||||
if (nextMedia >= 0) nextLink.style.display = "";
|
||||
media.setStyles({width: mediaWidth+"px", height: mediaHeight+"px"});
|
||||
bottom.setStyles({width: mediaWidth-marginBottom+"px"});
|
||||
caption.setStyles({width: mediaWidth-marginBottom+"px"});
|
||||
|
||||
mediaWidth = media.offsetWidth;
|
||||
mediaHeight = media.offsetHeight+bottom.offsetHeight;
|
||||
if (mediaHeight >= top+top) { mTop = -top; } else { mTop = -(mediaHeight/2); }
|
||||
if (mediaWidth >= left+left) { mLeft = -left; } else { mLeft = -(mediaWidth/2); }
|
||||
/****/ if (options.resizeOpening) { fx.resize.start({width: mediaWidth, height: mediaHeight, marginTop: mTop-margin, marginLeft: mLeft-margin});
|
||||
/****/ } else { center.setStyles({width: mediaWidth, height: mediaHeight, marginTop: mTop-margin, marginLeft: mLeft-margin}); mediaAnimate(); }
|
||||
// center.setStyles({width: mediaWidth, height: mediaHeight, marginTop: mTop-margin, marginLeft: mLeft-margin});
|
||||
// mediaAnimate();
|
||||
}
|
||||
|
||||
function imageAnimate() {
|
||||
fx.image.start(1);
|
||||
function mediaAnimate() {
|
||||
fx.media.start(1);
|
||||
}
|
||||
|
||||
function captionAnimate() {
|
||||
center.className = "";
|
||||
if (prevImage >= 0) prevLink.style.display = "";
|
||||
if (nextImage >= 0) nextLink.style.display = "";
|
||||
// if (prevMedia >= 0) prevLink.style.display = "";
|
||||
// if (nextMedia >= 0) nextLink.style.display = "";
|
||||
fx.bottom.start(1);
|
||||
}
|
||||
|
||||
function stop() {
|
||||
if (preload) preload.onload = $empty;
|
||||
if (preload) {
|
||||
if (mediaType == "inline" && !options.inlineClone) preload.adopt(media.getChildren()); // prevents loss of adopted data
|
||||
preload.onload = function(){}; // $empty replacement
|
||||
}
|
||||
fx.resize.cancel();
|
||||
fx.image.cancel().set(0);
|
||||
fx.media.cancel().set(0);
|
||||
fx.bottom.cancel().set(0);
|
||||
$$(prevLink, nextLink).setStyle("display", "none");
|
||||
}
|
||||
|
||||
function close() {
|
||||
if (activeImage >= 0) {
|
||||
preload.onload = $empty;
|
||||
image.set('html', '');
|
||||
if (activeMedia >= 0) {
|
||||
if (mediaType == "inline" && !options.inlineClone) preload.adopt(media.getChildren()); // prevents loss of adopted data
|
||||
preload.onload = function(){}; // $empty replacement
|
||||
media.empty();
|
||||
for (var f in fx) fx[f].cancel();
|
||||
center.setStyle("display", "none");
|
||||
fx.overlay.chain(setup).start(0);
|
||||
|
@ -943,17 +934,43 @@ var Mediabox;
|
|||
}
|
||||
})();
|
||||
|
||||
/* Quicktime detection from Quickie.js */
|
||||
|
||||
Browser.Plugins.QuickTime = (function(){
|
||||
if (navigator.plugins) {
|
||||
for (var i = 0, l = navigator.plugins.length; i < l; i++) {
|
||||
if (navigator.plugins[i].name.indexOf('QuickTime') >= 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var test;
|
||||
try { test = new ActiveXObject('QuickTime.QuickTime'); }
|
||||
catch(e) {}
|
||||
|
||||
if (test) { return true; }
|
||||
}
|
||||
return false;
|
||||
})();
|
||||
|
||||
/* Autoload code block */
|
||||
|
||||
Mediabox.scanPage = function() {
|
||||
// if (Browser.Platform.ios && !(navigator.userAgent.match(/iPad/i))) return; // this quits the process if the visitor is using a non-iPad iOS device (iPhone or iPod Touch)
|
||||
// $$('#mb_').each(function(hide) { hide.set('display', 'none'); });
|
||||
var links = $$("a").filter(function(el) {
|
||||
return el.rel && el.rel.test(/^lightbox/i);
|
||||
});
|
||||
$$(links).mediabox({/* Put custom options here */}, null, function(el) {
|
||||
var rel0 = this.rel.replace(/[[]|]/gi," ");
|
||||
// $$(links).mediabox({/* Put custom options here */}, null, function(el) {
|
||||
links.mediabox({/* Put custom options here */}, null, function(el) {
|
||||
var rel0 = this.rel.replace(/[\[\]|]/gi," ");
|
||||
var relsize = rel0.split(" ");
|
||||
return (this == el) || ((this.rel.length > 8) && el.rel.match(relsize[1]));
|
||||
// return (this == el) || ((this.rel.length > 8) && el.rel.match(relsize[1]));
|
||||
|
||||
var relsearch = "\\["+relsize[1]+"[ \\]]";
|
||||
var relregexp = new RegExp(relsearch);
|
||||
return (this == el) || ((this.rel.length > 8) && el.rel.match(relregexp));
|
||||
});
|
||||
};
|
||||
window.addEvent("domready", Mediabox.scanPage);
|
||||
|
||||
window.addEvents({domready: Mediabox.scanPage, resize: Mediabox.recenter}); // to recenter the overlay while scrolling, add "scroll: Mediabox.recenter" to the object
|
360
js/mootools.js
360
js/mootools.js
|
@ -1,360 +0,0 @@
|
|||
//MooTools, <http://mootools.net>, My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2009 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
|
||||
|
||||
var MooTools={version:"1.2.6",build:"a3be7a0ef5205eb655c4ee11e8cbedcb3f2ffa95"};var Native=function(l){l=l||{};var a=l.name;var j=l.legacy;var b=l.protect;
|
||||
var c=l.implement;var i=l.generics;var g=l.initialize;var h=l.afterImplement||function(){};var d=g||j;i=i!==false;d.constructor=Native;d.$family={name:"native"};
|
||||
if(j&&g){d.prototype=j.prototype;}d.prototype.constructor=d;if(a){var f=a.toLowerCase();d.prototype.$family={name:f};Native.typize(d,f);}var k=function(o,m,p,n){if(!b||n||!o.prototype[m]){o.prototype[m]=p;
|
||||
}if(i){Native.genericize(o,m,b);}h.call(o,m,p);return o;};d.alias=function(o,m,q){if(typeof o=="string"){var p=this.prototype[o];if((o=p)){return k(this,m,o,q);
|
||||
}}for(var n in o){this.alias(n,o[n],m);}return this;};d.implement=function(n,m,q){if(typeof n=="string"){return k(this,n,m,q);}for(var o in n){k(this,o,n[o],m);
|
||||
}return this;};if(c){d.implement(c);}return d;};Native.genericize=function(b,c,a){if((!a||!b[c])&&typeof b.prototype[c]=="function"){b[c]=function(){var d=Array.prototype.slice.call(arguments);
|
||||
return b.prototype[c].apply(d.shift(),d);};}};Native.implement=function(d,c){for(var b=0,a=d.length;b<a;b++){d[b].implement(c);}};Native.typize=function(a,b){if(!a.type){a.type=function(c){return($type(c)===b);
|
||||
};}};(function(){var a={Array:Array,Date:Date,Function:Function,Number:Number,RegExp:RegExp,String:String};for(var j in a){new Native({name:j,initialize:a[j],protect:true});
|
||||
}var d={"boolean":Boolean,"native":Native,object:Object};for(var c in d){Native.typize(d[c],c);}var h={Array:["concat","indexOf","join","lastIndexOf","pop","push","reverse","shift","slice","sort","splice","toString","unshift","valueOf"],String:["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]};
|
||||
for(var f in h){for(var b=h[f].length;b--;){Native.genericize(a[f],h[f][b],true);}}})();var Hash=new Native({name:"Hash",initialize:function(a){if($type(a)=="hash"){a=$unlink(a.getClean());
|
||||
}for(var b in a){this[b]=a[b];}return this;}});Hash.implement({forEach:function(b,c){for(var a in this){if(this.hasOwnProperty(a)){b.call(c,this[a],a,this);
|
||||
}}},getClean:function(){var b={};for(var a in this){if(this.hasOwnProperty(a)){b[a]=this[a];}}return b;},getLength:function(){var b=0;for(var a in this){if(this.hasOwnProperty(a)){b++;
|
||||
}}return b;}});Hash.alias("forEach","each");Array.implement({forEach:function(c,d){for(var b=0,a=this.length;b<a;b++){c.call(d,this[b],b,this);}}});Array.alias("forEach","each");
|
||||
function $A(b){if(b.item){var a=b.length,c=new Array(a);while(a--){c[a]=b[a];}return c;}return Array.prototype.slice.call(b);}function $arguments(a){return function(){return arguments[a];
|
||||
};}function $chk(a){return !!(a||a===0);}function $clear(a){clearTimeout(a);clearInterval(a);return null;}function $defined(a){return(a!=undefined);}function $each(c,b,d){var a=$type(c);
|
||||
((a=="arguments"||a=="collection"||a=="array")?Array:Hash).each(c,b,d);}function $empty(){}function $extend(c,a){for(var b in (a||{})){c[b]=a[b];}return c;
|
||||
}function $H(a){return new Hash(a);}function $lambda(a){return($type(a)=="function")?a:function(){return a;};}function $merge(){var a=Array.slice(arguments);
|
||||
a.unshift({});return $mixin.apply(null,a);}function $mixin(f){for(var d=1,a=arguments.length;d<a;d++){var b=arguments[d];if($type(b)!="object"){continue;
|
||||
}for(var c in b){var h=b[c],g=f[c];f[c]=(g&&$type(h)=="object"&&$type(g)=="object")?$mixin(g,h):$unlink(h);}}return f;}function $pick(){for(var b=0,a=arguments.length;
|
||||
b<a;b++){if(arguments[b]!=undefined){return arguments[b];}}return null;}function $random(b,a){return Math.floor(Math.random()*(a-b+1)+b);}function $splat(b){var a=$type(b);
|
||||
return(a)?((a!="array"&&a!="arguments")?[b]:b):[];}var $time=Date.now||function(){return +new Date;};function $try(){for(var b=0,a=arguments.length;b<a;
|
||||
b++){try{return arguments[b]();}catch(c){}}return null;}function $type(a){if(a==undefined){return false;}if(a.$family){return(a.$family.name=="number"&&!isFinite(a))?false:a.$family.name;
|
||||
}if(a.nodeName){switch(a.nodeType){case 1:return"element";case 3:return(/\S/).test(a.nodeValue)?"textnode":"whitespace";}}else{if(typeof a.length=="number"){if(a.callee){return"arguments";
|
||||
}else{if(a.item){return"collection";}}}}return typeof a;}function $unlink(c){var b;switch($type(c)){case"object":b={};for(var f in c){b[f]=$unlink(c[f]);
|
||||
}break;case"hash":b=new Hash(c);break;case"array":b=[];for(var d=0,a=c.length;d<a;d++){b[d]=$unlink(c[d]);}break;default:return c;}return b;}var Browser=$merge({Engine:{name:"unknown",version:0},Platform:{name:(window.orientation!=undefined)?"ipod":(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime),query:!!(document.querySelector)},Plugins:{},Engines:{presto:function(){return(!window.opera)?false:((arguments.callee.caller)?960:((document.getElementsByClassName)?950:925));
|
||||
},trident:function(){return(!window.ActiveXObject)?false:((window.XMLHttpRequest)?((document.querySelectorAll)?6:5):4);},webkit:function(){return(navigator.taintEnabled)?false:((Browser.Features.xpath)?((Browser.Features.query)?525:420):419);
|
||||
},gecko:function(){return(!document.getBoxObjectFor&&window.mozInnerScreenX==null)?false:((document.getElementsByClassName)?19:18);}}},Browser||{});Browser.Platform[Browser.Platform.name]=true;
|
||||
Browser.detect=function(){for(var b in this.Engines){var a=this.Engines[b]();if(a){this.Engine={name:b,version:a};this.Engine[b]=this.Engine[b+a]=true;
|
||||
break;}}return{name:b,version:a};};Browser.detect();Browser.Request=function(){return $try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject("MSXML2.XMLHTTP");
|
||||
},function(){return new ActiveXObject("Microsoft.XMLHTTP");});};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var a=($try(function(){return navigator.plugins["Shockwave Flash"].description;
|
||||
},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version");})||"0 r0").match(/\d+/g);return{version:parseInt(a[0]||0+"."+a[1],10)||0,build:parseInt(a[2],10)||0};
|
||||
})();function $exec(b){if(!b){return b;}if(window.execScript){window.execScript(b);}else{var a=document.createElement("script");a.setAttribute("type","text/javascript");
|
||||
a[(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerText":"text"]=b;document.head.appendChild(a);document.head.removeChild(a);}return b;}Native.UID=1;
|
||||
var $uid=(Browser.Engine.trident)?function(a){return(a.uid||(a.uid=[Native.UID++]))[0];}:function(a){return a.uid||(a.uid=Native.UID++);};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(a){$uid(a);
|
||||
if(!a.Element){a.Element=$empty;if(Browser.Engine.webkit){a.document.createElement("iframe");}a.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{};
|
||||
}a.document.window=a;return $extend(a,Window.Prototype);},afterImplement:function(b,a){window[b]=Window.Prototype[b]=a;}});Window.Prototype={$family:{name:"window"}};
|
||||
new Window(window);var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(a){$uid(a);a.head=a.getElementsByTagName("head")[0];
|
||||
a.html=a.getElementsByTagName("html")[0];if(Browser.Engine.trident&&Browser.Engine.version<=4){$try(function(){a.execCommand("BackgroundImageCache",false,true);
|
||||
});}if(Browser.Engine.trident){a.window.attachEvent("onunload",function(){a.window.detachEvent("onunload",arguments.callee);a.head=a.html=a.window=null;
|
||||
});}return $extend(a,Document.Prototype);},afterImplement:function(b,a){document[b]=Document.Prototype[b]=a;}});Document.Prototype={$family:{name:"document"}};
|
||||
new Document(document);Array.implement({every:function(c,d){for(var b=0,a=this.length;b<a;b++){if(!c.call(d,this[b],b,this)){return false;}}return true;
|
||||
},filter:function(d,f){var c=[];for(var b=0,a=this.length;b<a;b++){if(d.call(f,this[b],b,this)){c.push(this[b]);}}return c;},clean:function(){return this.filter($defined);
|
||||
},indexOf:function(c,d){var a=this.length;for(var b=(d<0)?Math.max(0,a+d):d||0;b<a;b++){if(this[b]===c){return b;}}return -1;},map:function(d,f){var c=[];
|
||||
for(var b=0,a=this.length;b<a;b++){c[b]=d.call(f,this[b],b,this);}return c;},some:function(c,d){for(var b=0,a=this.length;b<a;b++){if(c.call(d,this[b],b,this)){return true;
|
||||
}}return false;},associate:function(c){var d={},b=Math.min(this.length,c.length);for(var a=0;a<b;a++){d[c[a]]=this[a];}return d;},link:function(c){var a={};
|
||||
for(var f=0,b=this.length;f<b;f++){for(var d in c){if(c[d](this[f])){a[d]=this[f];delete c[d];break;}}}return a;},contains:function(a,b){return this.indexOf(a,b)!=-1;
|
||||
},extend:function(c){for(var b=0,a=c.length;b<a;b++){this.push(c[b]);}return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null;
|
||||
},include:function(a){if(!this.contains(a)){this.push(a);}return this;},combine:function(c){for(var b=0,a=c.length;b<a;b++){this.include(c[b]);}return this;
|
||||
},erase:function(b){for(var a=this.length;a--;a){if(this[a]===b){this.splice(a,1);}}return this;},empty:function(){this.length=0;return this;},flatten:function(){var d=[];
|
||||
for(var b=0,a=this.length;b<a;b++){var c=$type(this[b]);if(!c){continue;}d=d.concat((c=="array"||c=="collection"||c=="arguments")?Array.flatten(this[b]):this[b]);
|
||||
}return d;},hexToRgb:function(b){if(this.length!=3){return null;}var a=this.map(function(c){if(c.length==1){c+=c;}return c.toInt(16);});return(b)?a:"rgb("+a+")";
|
||||
},rgbToHex:function(d){if(this.length<3){return null;}if(this.length==4&&this[3]==0&&!d){return"transparent";}var b=[];for(var a=0;a<3;a++){var c=(this[a]-0).toString(16);
|
||||
b.push((c.length==1)?"0"+c:c);}return(d)?b:"#"+b.join("");}});try{delete Function.prototype.bind;}catch(e){}Function.implement({extend:function(a){for(var b in a){this[b]=a[b];
|
||||
}return this;},create:function(b){var a=this;b=b||{};return function(d){var c=b.arguments;c=(c!=undefined)?$splat(c):Array.slice(arguments,(b.event)?1:0);
|
||||
if(b.event){c=[d||window.event].extend(c);}var f=function(){return a.apply(b.bind||null,c);};if(b.delay){return setTimeout(f,b.delay);}if(b.periodical){return setInterval(f,b.periodical);
|
||||
}if(b.attempt){return $try(f);}return f();};},run:function(a,b){return this.apply(b,$splat(a));},pass:function(a,b){return this.create({bind:b,arguments:a});
|
||||
},bind:function(b,a){return this.create({bind:b,arguments:a});},bindWithEvent:function(b,a){return this.create({bind:b,arguments:a,event:true});},attempt:function(a,b){return this.create({bind:b,arguments:a,attempt:true})();
|
||||
},delay:function(b,c,a){return this.create({bind:c,arguments:a,delay:b})();},periodical:function(c,b,a){return this.create({bind:b,arguments:a,periodical:c})();
|
||||
}});Number.implement({limit:function(b,a){return Math.min(a,Math.max(b,this));},round:function(a){a=Math.pow(10,a||0);return Math.round(this*a)/a;},times:function(b,c){for(var a=0;
|
||||
a<this;a++){b.call(c,a,this);}},toFloat:function(){return parseFloat(this);},toInt:function(a){return parseInt(this,a||10);}});Number.alias("times","each");
|
||||
(function(b){var a={};b.each(function(c){if(!Number[c]){a[c]=function(){return Math[c].apply(null,[this].concat($A(arguments)));};}});Number.implement(a);
|
||||
})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);try{delete String.prototype.contains;}catch(e){}String.implement({test:function(a,b){return((typeof a=="string")?new RegExp(a,b):a).test(this);
|
||||
},contains:function(a,b){return(b)?(b+this+b).indexOf(b+a+b)>-1:this.indexOf(a)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,"");},clean:function(){return this.replace(/\s+/g," ").trim();
|
||||
},camelCase:function(){return this.replace(/-\D/g,function(a){return a.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(a){return("-"+a.charAt(0).toLowerCase());
|
||||
});},capitalize:function(){return this.replace(/\b[a-z]/g,function(a){return a.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");
|
||||
},toInt:function(a){return parseInt(this,a||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(b){var a=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
|
||||
return(a)?a.slice(1).hexToRgb(b):null;},rgbToHex:function(b){var a=this.match(/\d{1,3}/g);return(a)?a.rgbToHex(b):null;},stripScripts:function(b){var a="";
|
||||
var c=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){a+=arguments[1]+"\n";return"";});if(b===true){$exec(a);}else{if($type(b)=="function"){b(a,c);
|
||||
}}return c;},substitute:function(a,b){return this.replace(b||(/\\?\{([^{}]+)\}/g),function(d,c){if(d.charAt(0)=="\\"){return d.slice(1);}return(a[c]!=undefined)?a[c]:"";
|
||||
});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(b){for(var a in this){if(this.hasOwnProperty(a)&&this[a]===b){return a;}}return null;
|
||||
},hasValue:function(a){return(Hash.keyOf(this,a)!==null);},extend:function(a){Hash.each(a||{},function(c,b){Hash.set(this,b,c);},this);return this;},combine:function(a){Hash.each(a||{},function(c,b){Hash.include(this,b,c);
|
||||
},this);return this;},erase:function(a){if(this.hasOwnProperty(a)){delete this[a];}return this;},get:function(a){return(this.hasOwnProperty(a))?this[a]:null;
|
||||
},set:function(a,b){if(!this[a]||this.hasOwnProperty(a)){this[a]=b;}return this;},empty:function(){Hash.each(this,function(b,a){delete this[a];},this);
|
||||
return this;},include:function(a,b){if(this[a]==undefined){this[a]=b;}return this;},map:function(b,c){var a=new Hash;Hash.each(this,function(f,d){a.set(d,b.call(c,f,d,this));
|
||||
},this);return a;},filter:function(b,c){var a=new Hash;Hash.each(this,function(f,d){if(b.call(c,f,d,this)){a.set(d,f);}},this);return a;},every:function(b,c){for(var a in this){if(this.hasOwnProperty(a)&&!b.call(c,this[a],a)){return false;
|
||||
}}return true;},some:function(b,c){for(var a in this){if(this.hasOwnProperty(a)&&b.call(c,this[a],a)){return true;}}return false;},getKeys:function(){var a=[];
|
||||
Hash.each(this,function(c,b){a.push(b);});return a;},getValues:function(){var a=[];Hash.each(this,function(b){a.push(b);});return a;},toQueryString:function(a){var b=[];
|
||||
Hash.each(this,function(g,f){if(a){f=a+"["+f+"]";}var d;switch($type(g)){case"object":d=Hash.toQueryString(g,f);break;case"array":var c={};g.each(function(j,h){c[h]=j;
|
||||
});d=Hash.toQueryString(c,f);break;default:d=f+"="+encodeURIComponent(g);}if(g!=undefined){b.push(d);}});return b.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});
|
||||
var Event=new Native({name:"Event",initialize:function(a,g){g=g||window;var l=g.document;a=a||g.event;if(a.$extended){return a;}this.$extended=true;var k=a.type;
|
||||
var h=a.target||a.srcElement;while(h&&h.nodeType==3){h=h.parentNode;}if(k.test(/key/)){var b=a.which||a.keyCode;var n=Event.Keys.keyOf(b);if(k=="keydown"){var d=b-111;
|
||||
if(d>0&&d<13){n="f"+d;}}n=n||String.fromCharCode(b).toLowerCase();}else{if(k.match(/(click|mouse|menu)/i)){l=(!l.compatMode||l.compatMode=="CSS1Compat")?l.html:l.body;
|
||||
var j={x:a.pageX||a.clientX+l.scrollLeft,y:a.pageY||a.clientY+l.scrollTop};var c={x:(a.pageX)?a.pageX-g.pageXOffset:a.clientX,y:(a.pageY)?a.pageY-g.pageYOffset:a.clientY};
|
||||
if(k.match(/DOMMouseScroll|mousewheel/)){var i=(a.wheelDelta)?a.wheelDelta/120:-(a.detail||0)/3;}var f=(a.which==3)||(a.button==2);var m=null;if(k.match(/over|out/)){switch(k){case"mouseover":m=a.relatedTarget||a.fromElement;
|
||||
break;case"mouseout":m=a.relatedTarget||a.toElement;}if(!(function(){while(m&&m.nodeType==3){m=m.parentNode;}return true;}).create({attempt:Browser.Engine.gecko})()){m=false;
|
||||
}}}}return $extend(this,{event:a,type:k,page:j,client:c,rightClick:f,wheel:i,relatedTarget:m,target:h,code:b,key:n,shift:a.shiftKey,control:a.ctrlKey,alt:a.altKey,meta:a.metaKey});
|
||||
}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault();
|
||||
},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault();
|
||||
}else{this.event.returnValue=false;}return this;}});function Class(b){if(b instanceof Function){b={initialize:b};}var a=function(){Object.reset(this);if(a._prototyping){return this;
|
||||
}this._current=$empty;var c=(this.initialize)?this.initialize.apply(this,arguments):this;delete this._current;delete this.caller;return c;}.extend(this);
|
||||
a.implement(b);a.constructor=Class;a.prototype.constructor=a;return a;}Function.prototype.protect=function(){this._protected=true;return this;};Object.reset=function(a,c){if(c==null){for(var f in a){Object.reset(a,f);
|
||||
}return a;}delete a[c];switch($type(a[c])){case"object":var d=function(){};d.prototype=a[c];var b=new d;a[c]=Object.reset(b);break;case"array":a[c]=$unlink(a[c]);
|
||||
break;}return a;};new Native({name:"Class",initialize:Class}).extend({instantiate:function(b){b._prototyping=true;var a=new b;delete b._prototyping;return a;
|
||||
},wrap:function(a,b,c){if(c._origin){c=c._origin;}return function(){if(c._protected&&this._current==null){throw new Error('The method "'+b+'" cannot be called.');
|
||||
}var f=this.caller,g=this._current;this.caller=g;this._current=arguments.callee;var d=c.apply(this,arguments);this._current=g;this.caller=f;return d;}.extend({_owner:a,_origin:c,_name:b});
|
||||
}});Class.implement({implement:function(a,d){if($type(a)=="object"){for(var f in a){this.implement(f,a[f]);}return this;}var g=Class.Mutators[a];if(g){d=g.call(this,d);
|
||||
if(d==null){return this;}}var c=this.prototype;switch($type(d)){case"function":if(d._hidden){return this;}c[a]=Class.wrap(this,a,d);break;case"object":var b=c[a];
|
||||
if($type(b)=="object"){$mixin(b,d);}else{c[a]=$unlink(d);}break;case"array":c[a]=$unlink(d);break;default:c[a]=d;}return this;}});Class.Mutators={Extends:function(a){this.parent=a;
|
||||
this.prototype=Class.instantiate(a);this.implement("parent",function(){var b=this.caller._name,c=this.caller._owner.parent.prototype[b];if(!c){throw new Error('The method "'+b+'" has no parent.');
|
||||
}return c.apply(this,arguments);}.protect());},Implements:function(a){$splat(a).each(function(b){if(b instanceof Function){b=Class.instantiate(b);}this.implement(b);
|
||||
},this);}};var Chain=new Class({$chain:[],chain:function(){this.$chain.extend(Array.flatten(arguments));return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false;
|
||||
},clearChain:function(){this.$chain.empty();return this;}});var Events=new Class({$events:{},addEvent:function(c,b,a){c=Events.removeOn(c);if(b!=$empty){this.$events[c]=this.$events[c]||[];
|
||||
this.$events[c].include(b);if(a){b.internal=true;}}return this;},addEvents:function(a){for(var b in a){this.addEvent(b,a[b]);}return this;},fireEvent:function(c,b,a){c=Events.removeOn(c);
|
||||
if(!this.$events||!this.$events[c]){return this;}this.$events[c].each(function(d){d.create({bind:this,delay:a,"arguments":b})();},this);return this;},removeEvent:function(b,a){b=Events.removeOn(b);
|
||||
if(!this.$events[b]){return this;}if(!a.internal){this.$events[b].erase(a);}return this;},removeEvents:function(c){var d;if($type(c)=="object"){for(d in c){this.removeEvent(d,c[d]);
|
||||
}return this;}if(c){c=Events.removeOn(c);}for(d in this.$events){if(c&&c!=d){continue;}var b=this.$events[d];for(var a=b.length;a--;a){this.removeEvent(d,b[a]);
|
||||
}}return this;}});Events.removeOn=function(a){return a.replace(/^on([A-Z])/,function(b,c){return c.toLowerCase();});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));
|
||||
if(!this.addEvent){return this;}for(var a in this.options){if($type(this.options[a])!="function"||!(/^on[A-Z]/).test(a)){continue;}this.addEvent(a,this.options[a]);
|
||||
delete this.options[a];}return this;}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(a,b){var c=Element.Constructors.get(a);
|
||||
if(c){return c(b);}if(typeof a=="string"){return document.newElement(a,b);}return document.id(a).set(b);},afterImplement:function(a,b){Element.Prototype[a]=b;
|
||||
if(Array[a]){return;}Elements.implement(a,function(){var c=[],h=true;for(var f=0,d=this.length;f<d;f++){var g=this[f][a].apply(this[f],arguments);c.push(g);
|
||||
if(h){h=($type(g)=="element");}}return(h)?new Elements(c):c;});}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var g=Array.link(arguments,{properties:Object.type,iframe:$defined});
|
||||
var d=g.properties||{};var c=document.id(g.iframe);var f=d.onload||$empty;delete d.onload;d.id=d.name=$pick(d.id,d.name,c?(c.id||c.name):"IFrame_"+$time());
|
||||
c=new Element(c||"iframe",d);var b=function(){var h=$try(function(){return c.contentWindow.location.host;});if(!h||h==window.location.host){var i=new Window(c.contentWindow);
|
||||
new Document(c.contentWindow.document);$extend(i.Element.prototype,Element.Prototype);}f.call(c.contentWindow,c.contentWindow.document);};var a=$try(function(){return c.contentWindow;
|
||||
});((a&&a.document.body)||window.frames[d.id])?b():c.addListener("load",b);return c;}});var Elements=new Native({initialize:function(g,b){b=$extend({ddup:true,cash:true},b);
|
||||
g=g||[];if(b.ddup||b.cash){var h={},f=[];for(var c=0,a=g.length;c<a;c++){var d=document.id(g[c],!b.cash);if(b.ddup){if(h[d.uid]){continue;}h[d.uid]=true;
|
||||
}if(d){f.push(d);}}g=f;}return(b.cash)?$extend(g,this):g;}});Elements.implement({filter:function(a,b){if(!a){return this;}return new Elements(Array.filter(this,(typeof a=="string")?function(c){return c.match(a);
|
||||
}:a,b));}});(function(){var d;try{var a=document.createElement("<input name=x>");d=(a.name=="x");}catch(b){}var c=function(f){return(""+f).replace(/&/g,"&").replace(/"/g,""");
|
||||
};Document.implement({newElement:function(f,g){if(g&&g.checked!=null){g.defaultChecked=g.checked;}if(d&&g){f="<"+f;if(g.name){f+=' name="'+c(g.name)+'"';
|
||||
}if(g.type){f+=' type="'+c(g.type)+'"';}f+=">";delete g.name;delete g.type;}return this.id(this.createElement(f)).set(g);},newTextNode:function(f){return this.createTextNode(f);
|
||||
},getDocument:function(){return this;},getWindow:function(){return this.window;},id:(function(){var f={string:function(i,h,g){i=g.getElementById(i);return(i)?f.element(i,h):null;
|
||||
},element:function(g,j){$uid(g);if(!j&&!g.$family&&!(/^object|embed$/i).test(g.tagName)){var h=Element.Prototype;for(var i in h){g[i]=h[i];}}return g;},object:function(h,i,g){if(h.toElement){return f.element(h.toElement(g),i);
|
||||
}return null;}};f.textnode=f.whitespace=f.window=f.document=$arguments(0);return function(h,j,i){if(h&&h.$family&&h.uid){return h;}var g=$type(h);return(f[g])?f[g](h,j,i||document):null;
|
||||
};})()});})();if(window.$==null){Window.implement({$:function(a,b){return document.id(a,b,this.document);}});}Window.implement({$$:function(a){if(arguments.length==1&&typeof a=="string"){return this.document.getElements(a);
|
||||
}var g=[];var c=Array.flatten(arguments);for(var d=0,b=c.length;d<b;d++){var f=c[d];switch($type(f)){case"element":g.push(f);break;case"string":g.extend(this.document.getElements(f,true));
|
||||
}}return new Elements(g);},getDocument:function(){return this.document;},getWindow:function(){return this;}});Native.implement([Element,Document],{getElement:function(a,b){return document.id(this.getElements(a,true)[0]||null,b);
|
||||
},getElements:function(a,d){a=a.split(",");var c=[];var b=(a.length>1);a.each(function(f){var g=this.getElementsByTagName(f.trim());(b)?c.extend(g):c=g;
|
||||
},this);return new Elements(c,{ddup:b,cash:!d});}});(function(){var i={},g={};var j={input:"checked",option:"selected",textarea:(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerHTML":"value"};
|
||||
var c=function(m){return(g[m]||(g[m]={}));};var h=function(o,m){if(!o){return;}var n=o.uid;if(m!==true){m=false;}if(Browser.Engine.trident){if(o.clearAttributes){var r=m&&o.cloneNode(false);
|
||||
o.clearAttributes();if(r){o.mergeAttributes(r);}}else{if(o.removeEvents){o.removeEvents();}}if((/object/i).test(o.tagName)){for(var q in o){if(typeof o[q]=="function"){o[q]=$empty;
|
||||
}}Element.dispose(o);}}if(!n){return;}i[n]=g[n]=null;};var d=function(){Hash.each(i,h);if(Browser.Engine.trident){$A(document.getElementsByTagName("object")).each(h);
|
||||
}if(window.CollectGarbage){CollectGarbage();}i=g=null;};var k=function(o,m,t,n,q,s){var p=o[t||m];var r=[];while(p){if(p.nodeType==1&&(!n||Element.match(p,n))){if(!q){return document.id(p,s);
|
||||
}r.push(p);}p=p[m];}return(q)?new Elements(r,{ddup:false,cash:!s}):null;};var f={html:"innerHTML","class":"className","for":"htmlFor",defaultValue:"defaultValue",text:(Browser.Engine.trident||(Browser.Engine.webkit&&Browser.Engine.version<420))?"innerText":"textContent"};
|
||||
var b=["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"];var l=["value","type","defaultValue","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"];
|
||||
b=b.associate(b);Hash.extend(f,b);Hash.extend(f,l.associate(l.map(String.toLowerCase)));var a={before:function(n,m){if(m.parentNode){m.parentNode.insertBefore(n,m);
|
||||
}},after:function(n,m){if(!m.parentNode){return;}var o=m.nextSibling;(o)?m.parentNode.insertBefore(n,o):m.parentNode.appendChild(n);},bottom:function(n,m){m.appendChild(n);
|
||||
},top:function(n,m){var o=m.firstChild;(o)?m.insertBefore(n,o):m.appendChild(n);}};a.inside=a.bottom;Hash.each(a,function(m,n){n=n.capitalize();Element.implement("inject"+n,function(o){m(this,document.id(o,true));
|
||||
return this;});Element.implement("grab"+n,function(o){m(document.id(o,true),this);return this;});});Element.implement({set:function(q,n){switch($type(q)){case"object":for(var o in q){this.set(o,q[o]);
|
||||
}break;case"string":var m=Element.Properties.get(q);(m&&m.set)?m.set.apply(this,Array.slice(arguments,1)):this.setProperty(q,n);}return this;},get:function(n){var m=Element.Properties.get(n);
|
||||
return(m&&m.get)?m.get.apply(this,Array.slice(arguments,1)):this.getProperty(n);},erase:function(n){var m=Element.Properties.get(n);(m&&m.erase)?m.erase.apply(this):this.removeProperty(n);
|
||||
return this;},setProperty:function(n,o){var m=f[n];if(o==undefined){return this.removeProperty(n);}if(m&&b[n]){o=!!o;}(m)?this[m]=o:this.setAttribute(n,""+o);
|
||||
return this;},setProperties:function(m){for(var n in m){this.setProperty(n,m[n]);}return this;},getProperty:function(n){var m=f[n];var o=(m)?this[m]:this.getAttribute(n,2);
|
||||
return(b[n])?!!o:(m)?o:o||null;},getProperties:function(){var m=$A(arguments);return m.map(this.getProperty,this).associate(m);},removeProperty:function(n){var m=f[n];
|
||||
(m)?this[m]=(m&&b[n])?false:"":this.removeAttribute(n);return this;},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;
|
||||
},hasClass:function(m){return this.className.contains(m," ");},addClass:function(m){if(!this.hasClass(m)){this.className=(this.className+" "+m).clean();
|
||||
}return this;},removeClass:function(m){this.className=this.className.replace(new RegExp("(^|\\s)"+m+"(?:\\s|$)"),"$1");return this;},toggleClass:function(m){return this.hasClass(m)?this.removeClass(m):this.addClass(m);
|
||||
},adopt:function(){Array.flatten(arguments).each(function(m){m=document.id(m,true);if(m){this.appendChild(m);}},this);return this;},appendText:function(n,m){return this.grab(this.getDocument().newTextNode(n),m);
|
||||
},grab:function(n,m){a[m||"bottom"](document.id(n,true),this);return this;},inject:function(n,m){a[m||"bottom"](this,document.id(n,true));return this;},replaces:function(m){m=document.id(m,true);
|
||||
m.parentNode.replaceChild(this,m);return this;},wraps:function(n,m){n=document.id(n,true);return this.replaces(n).grab(n,m);},getPrevious:function(m,n){return k(this,"previousSibling",null,m,false,n);
|
||||
},getAllPrevious:function(m,n){return k(this,"previousSibling",null,m,true,n);},getNext:function(m,n){return k(this,"nextSibling",null,m,false,n);},getAllNext:function(m,n){return k(this,"nextSibling",null,m,true,n);
|
||||
},getFirst:function(m,n){return k(this,"nextSibling","firstChild",m,false,n);},getLast:function(m,n){return k(this,"previousSibling","lastChild",m,false,n);
|
||||
},getParent:function(m,n){return k(this,"parentNode",null,m,false,n);},getParents:function(m,n){return k(this,"parentNode",null,m,true,n);},getSiblings:function(m,n){return this.getParent().getChildren(m,n).erase(this);
|
||||
},getChildren:function(m,n){return k(this,"nextSibling","firstChild",m,true,n);},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;
|
||||
},getElementById:function(p,o){var n=this.ownerDocument.getElementById(p);if(!n){return null;}for(var m=n.parentNode;m!=this;m=m.parentNode){if(!m){return null;
|
||||
}}return document.id(n,o);},getSelected:function(){return new Elements($A(this.options).filter(function(m){return m.selected;}));},getComputedStyle:function(n){if(this.currentStyle){return this.currentStyle[n.camelCase()];
|
||||
}var m=this.getDocument().defaultView.getComputedStyle(this,null);return(m)?m.getPropertyValue([n.hyphenate()]):null;},toQueryString:function(){var m=[];
|
||||
this.getElements("input, select, textarea",true).each(function(n){if(!n.name||n.disabled||n.type=="submit"||n.type=="reset"||n.type=="file"){return;}var o=(n.tagName.toLowerCase()=="select")?Element.getSelected(n).map(function(p){return p.value;
|
||||
}):((n.type=="radio"||n.type=="checkbox")&&!n.checked)?null:n.value;$splat(o).each(function(p){if(typeof p!="undefined"){m.push(n.name+"="+encodeURIComponent(p));
|
||||
}});});return m.join("&");},clone:function(p,m){p=p!==false;var s=this.cloneNode(p);var o=function(w,v){if(!m){w.removeAttribute("id");}if(Browser.Engine.trident){w.clearAttributes();
|
||||
w.mergeAttributes(v);w.removeAttribute("uid");if(w.options){var x=w.options,t=v.options;for(var u=x.length;u--;){x[u].selected=t[u].selected;}}}var y=j[v.tagName.toLowerCase()];
|
||||
if(y&&v[y]){w[y]=v[y];}};if(p){var q=s.getElementsByTagName("*"),r=this.getElementsByTagName("*");for(var n=q.length;n--;){o(q[n],r[n]);}}o(s,this);return document.id(s);
|
||||
},destroy:function(){Element.empty(this);Element.dispose(this);h(this,true);return null;},empty:function(){$A(this.childNodes).each(function(m){Element.destroy(m);
|
||||
});return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},hasChild:function(m){m=document.id(m,true);if(!m){return false;
|
||||
}if(Browser.Engine.webkit&&Browser.Engine.version<420){return $A(this.getElementsByTagName(m.tagName)).contains(m);}return(this.contains)?(this!=m&&this.contains(m)):!!(this.compareDocumentPosition(m)&16);
|
||||
},match:function(m){return(!m||(m==this)||(Element.get(this,"tag")==m));}});Native.implement([Element,Window,Document],{addListener:function(p,o){if(p=="unload"){var m=o,n=this;
|
||||
o=function(){n.removeListener("unload",o);m();};}else{i[this.uid]=this;}if(this.addEventListener){this.addEventListener(p,o,false);}else{this.attachEvent("on"+p,o);
|
||||
}return this;},removeListener:function(n,m){if(this.removeEventListener){this.removeEventListener(n,m,false);}else{this.detachEvent("on"+n,m);}return this;
|
||||
},retrieve:function(n,m){var p=c(this.uid),o=p[n];if(m!=undefined&&o==undefined){o=p[n]=m;}return $pick(o);},store:function(n,m){var o=c(this.uid);o[n]=m;
|
||||
return this;},eliminate:function(m){var n=c(this.uid);delete n[m];return this;}});window.addListener("unload",d);})();Element.Properties=new Hash;Element.Properties.style={set:function(a){this.style.cssText=a;
|
||||
},get:function(){return this.style.cssText;},erase:function(){this.style.cssText="";}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();
|
||||
}};Element.Properties.html=(function(){var g=true;try{var a=document.createElement("tr");a.innerHTML="<td>x";a=a.firstChild;g=!(a.nodeName=="TD"&&a.innerHTML=="x");
|
||||
}catch(d){}if(!g){return{set:function(){this.innerHTML=Array.flatten(arguments).join("");}};}var f=document.createElement("div");var b={table:[1,"<table>","</table>"],select:[1,"<select>","</select>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"]};
|
||||
b.thead=b.tfoot=b.tbody;var c={set:function(){var j=Array.flatten(arguments).join("");var k=b[this.get("tag")];if(k){var l=f;l.innerHTML=k[1]+j+k[2];for(var h=k[0];
|
||||
h--;){l=l.firstChild;}this.empty().adopt(l.childNodes);}else{this.innerHTML=j;}}};c.erase=c.set;return c;})();if(Browser.Engine.webkit&&Browser.Engine.version<420){Element.Properties.text={get:function(){if(this.innerText){return this.innerText;
|
||||
}var a=this.ownerDocument.newElement("div",{html:this.innerHTML}).inject(this.ownerDocument.body);var b=a.innerText;a.destroy();return b;}};}Element.Properties.events={set:function(a){this.addEvents(a);
|
||||
}};Native.implement([Element,Window,Document],{addEvent:function(f,h){var i=this.retrieve("events",{});i[f]=i[f]||{keys:[],values:[]};if(i[f].keys.contains(h)){return this;
|
||||
}i[f].keys.push(h);var g=f,a=Element.Events.get(f),c=h,j=this;if(a){if(a.onAdd){a.onAdd.call(this,h);}if(a.condition){c=function(k){if(a.condition.call(this,k)){return h.call(this,k);
|
||||
}return true;};}g=a.base||g;}var d=function(){return h.call(j);};var b=Element.NativeEvents[g];if(b){if(b==2){d=function(k){k=new Event(k,j.getWindow());
|
||||
if(c.call(j,k)===false){k.stop();}};}this.addListener(g,d);}i[f].values.push(d);return this;},removeEvent:function(c,b){var a=this.retrieve("events");if(!a||!a[c]){return this;
|
||||
}var g=a[c].keys.indexOf(b);if(g==-1){return this;}a[c].keys.splice(g,1);var f=a[c].values.splice(g,1)[0];var d=Element.Events.get(c);if(d){if(d.onRemove){d.onRemove.call(this,b);
|
||||
}c=d.base||c;}return(Element.NativeEvents[c])?this.removeListener(c,f):this;},addEvents:function(a){for(var b in a){this.addEvent(b,a[b]);}return this;
|
||||
},removeEvents:function(a){var c;if($type(a)=="object"){for(c in a){this.removeEvent(c,a[c]);}return this;}var b=this.retrieve("events");if(!b){return this;
|
||||
}if(!a){for(c in b){this.removeEvents(c);}this.eliminate("events");}else{if(b[a]){while(b[a].keys[0]){this.removeEvent(a,b[a].keys[0]);}b[a]=null;}}return this;
|
||||
},fireEvent:function(d,b,a){var c=this.retrieve("events");if(!c||!c[d]){return this;}c[d].keys.each(function(f){f.create({bind:this,delay:a,"arguments":b})();
|
||||
},this);return this;},cloneEvents:function(d,a){d=document.id(d);var c=d.retrieve("events");if(!c){return this;}if(!a){for(var b in c){this.cloneEvents(d,b);
|
||||
}}else{if(c[a]){c[a].keys.each(function(f){this.addEvent(a,f);},this);}}return this;}});try{if(typeof HTMLElement!="undefined"){HTMLElement.prototype.fireEvent=Element.prototype.fireEvent;
|
||||
}}catch(e){}Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};
|
||||
(function(){var a=function(b){var c=b.relatedTarget;if(c==undefined){return true;}if(c===false){return false;}return($type(this)!="document"&&c!=this&&c.prefix!="xul"&&!this.hasChild(c));
|
||||
};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:a},mouseleave:{base:"mouseout",condition:a},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}});
|
||||
})();Element.Properties.styles={set:function(a){this.setStyles(a);}};Element.Properties.opacity={set:function(a,b){if(!b){if(a==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden";
|
||||
}}else{if(this.style.visibility!="visible"){this.style.visibility="visible";}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1;}if(Browser.Engine.trident){this.style.filter=(a==1)?"":"alpha(opacity="+a*100+")";
|
||||
}this.style.opacity=a;this.store("opacity",a);},get:function(){return this.retrieve("opacity",1);}};Element.implement({setOpacity:function(a){return this.set("opacity",a,true);
|
||||
},getOpacity:function(){return this.get("opacity");},setStyle:function(b,a){switch(b){case"opacity":return this.set("opacity",parseFloat(a));case"float":b=(Browser.Engine.trident)?"styleFloat":"cssFloat";
|
||||
}b=b.camelCase();if($type(a)!="string"){var c=(Element.Styles.get(b)||"@").split(" ");a=$splat(a).map(function(f,d){if(!c[d]){return"";}return($type(f)=="number")?c[d].replace("@",Math.round(f)):f;
|
||||
}).join(" ");}else{if(a==String(Number(a))){a=Math.round(a);}}this.style[b]=a;return this;},getStyle:function(h){switch(h){case"opacity":return this.get("opacity");
|
||||
case"float":h=(Browser.Engine.trident)?"styleFloat":"cssFloat";}h=h.camelCase();var a=this.style[h];if(!$chk(a)){a=[];for(var g in Element.ShortStyles){if(h!=g){continue;
|
||||
}for(var f in Element.ShortStyles[g]){a.push(this.getStyle(f));}return a.join(" ");}a=this.getComputedStyle(h);}if(a){a=String(a);var c=a.match(/rgba?\([\d\s,]+\)/);
|
||||
if(c){a=a.replace(c[0],c[0].rgbToHex());}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(a,10)))){if(h.test(/^(height|width)$/)){var b=(h=="width")?["left","right"]:["top","bottom"],d=0;
|
||||
b.each(function(i){d+=this.getStyle("border-"+i+"-width").toInt()+this.getStyle("padding-"+i).toInt();},this);return this["offset"+h.capitalize()]-d+"px";
|
||||
}if((Browser.Engine.presto)&&String(a).test("px")){return a;}if(h.test(/(border(.+)Width|margin|padding)/)){return"0px";}}return a;},setStyles:function(b){for(var a in b){this.setStyle(a,b[a]);
|
||||
}return this;},getStyles:function(){var a={};Array.flatten(arguments).each(function(b){a[b]=this.getStyle(b);},this);return a;}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});
|
||||
Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(h){var g=Element.ShortStyles;
|
||||
var b=Element.Styles;["margin","padding"].each(function(i){var j=i+h;g[i][j]=b[j]="@px";});var f="border"+h;g.border[f]=b[f]="@px @ rgb(@, @, @)";var d=f+"Width",a=f+"Style",c=f+"Color";
|
||||
g[f]={};g.borderWidth[d]=g[f][d]=b[d]="@px";g.borderStyle[a]=g[f][a]=b[a]="@";g.borderColor[c]=g[f][c]=b[c]="rgb(@, @, @)";});(function(){Element.implement({scrollTo:function(i,j){if(b(this)){this.getWindow().scrollTo(i,j);
|
||||
}else{this.scrollLeft=i;this.scrollTop=j;}return this;},getSize:function(){if(b(this)){return this.getWindow().getSize();}return{x:this.offsetWidth,y:this.offsetHeight};
|
||||
},getScrollSize:function(){if(b(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(b(this)){return this.getWindow().getScroll();
|
||||
}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var j=this,i={x:0,y:0};while(j&&!b(j)){i.x+=j.scrollLeft;i.y+=j.scrollTop;j=j.parentNode;
|
||||
}return i;},getOffsetParent:function(){var i=this;if(b(i)){return null;}if(!Browser.Engine.trident){return i.offsetParent;}while((i=i.parentNode)&&!b(i)){if(d(i,"position")!="static"){return i;
|
||||
}}return null;},getOffsets:function(){if(this.getBoundingClientRect){var k=this.getBoundingClientRect(),n=document.id(this.getDocument().documentElement),q=n.getScroll(),l=this.getScrolls(),j=this.getScroll(),i=(d(this,"position")=="fixed");
|
||||
return{x:k.left.toInt()+l.x-j.x+((i)?0:q.x)-n.clientLeft,y:k.top.toInt()+l.y-j.y+((i)?0:q.y)-n.clientTop};}var m=this,o={x:0,y:0};if(b(this)){return o;
|
||||
}while(m&&!b(m)){o.x+=m.offsetLeft;o.y+=m.offsetTop;if(Browser.Engine.gecko){if(!g(m)){o.x+=c(m);o.y+=h(m);}var p=m.parentNode;if(p&&d(p,"overflow")!="visible"){o.x+=c(p);
|
||||
o.y+=h(p);}}else{if(m!=this&&Browser.Engine.webkit){o.x+=c(m);o.y+=h(m);}}m=m.offsetParent;}if(Browser.Engine.gecko&&!g(this)){o.x-=c(this);o.y-=h(this);
|
||||
}return o;},getPosition:function(l){if(b(this)){return{x:0,y:0};}var m=this.getOffsets(),j=this.getScrolls();var i={x:m.x-j.x,y:m.y-j.y};var k=(l&&(l=document.id(l)))?l.getPosition():{x:0,y:0};
|
||||
return{x:i.x-k.x,y:i.y-k.y};},getCoordinates:function(k){if(b(this)){return this.getWindow().getCoordinates();}var i=this.getPosition(k),j=this.getSize();
|
||||
var l={left:i.x,top:i.y,width:j.x,height:j.y};l.right=l.left+l.width;l.bottom=l.top+l.height;return l;},computePosition:function(i){return{left:i.x-f(this,"margin-left"),top:i.y-f(this,"margin-top")};
|
||||
},setPosition:function(i){return this.setStyles(this.computePosition(i));}});Native.implement([Document,Window],{getSize:function(){if(Browser.Engine.presto||Browser.Engine.webkit){var j=this.getWindow();
|
||||
return{x:j.innerWidth,y:j.innerHeight};}var i=a(this);return{x:i.clientWidth,y:i.clientHeight};},getScroll:function(){var j=this.getWindow(),i=a(this);
|
||||
return{x:j.pageXOffset||i.scrollLeft,y:j.pageYOffset||i.scrollTop};},getScrollSize:function(){var j=a(this),i=this.getSize();return{x:Math.max(j.scrollWidth,i.x),y:Math.max(j.scrollHeight,i.y)};
|
||||
},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var i=this.getSize();return{top:0,left:0,bottom:i.y,right:i.x,height:i.y,width:i.x};
|
||||
}});var d=Element.getComputedStyle;function f(i,j){return d(i,j).toInt()||0;}function g(i){return d(i,"-moz-box-sizing")=="border-box";}function h(i){return f(i,"border-top-width");
|
||||
}function c(i){return f(i,"border-left-width");}function b(i){return(/^(?:body|html)$/i).test(i.tagName);}function a(i){var j=i.getDocument();return(!j.compatMode||j.compatMode=="CSS1Compat")?j.html:j.body;
|
||||
}})();Element.alias("setPosition","position");Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;
|
||||
},getScrollTop:function(){return this.getScroll().y;},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;
|
||||
},getScrollWidth:function(){return this.getScrollSize().x;},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;
|
||||
}});Native.implement([Document,Element],{getElements:function(j,h){j=j.split(",");var c,f={};for(var d=0,b=j.length;d<b;d++){var a=j[d],g=Selectors.Utils.search(this,a,f);
|
||||
if(d!=0&&g.item){g=$A(g);}c=(d==0)?g:(c.item)?$A(c).concat(g):c.concat(g);}return new Elements(c,{ddup:(j.length>1),cash:!h});}});Element.implement({match:function(b){if(!b||(b==this)){return true;
|
||||
}var d=Selectors.Utils.parseTagAndID(b);var a=d[0],f=d[1];if(!Selectors.Filters.byID(this,f)||!Selectors.Filters.byTag(this,a)){return false;}var c=Selectors.Utils.parseSelector(b);
|
||||
return(c)?Selectors.Utils.filter(this,c,{}):true;}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};
|
||||
Selectors.Utils={chk:function(b,c){if(!c){return true;}var a=$uid(b);if(!c[a]){return c[a]=true;}return false;},parseNthArgument:function(i){if(Selectors.Cache.nth[i]){return Selectors.Cache.nth[i];
|
||||
}var f=i.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!f){return false;}var h=parseInt(f[1],10);var d=(h||h===0)?h:1;var g=f[2]||false;var c=parseInt(f[3],10)||0;
|
||||
if(d!=0){c--;while(c<1){c+=d;}while(c>=d){c-=d;}}else{d=c;g="index";}switch(g){case"n":f={a:d,b:c,special:"n"};break;case"odd":f={a:2,b:0,special:"n"};
|
||||
break;case"even":f={a:2,b:1,special:"n"};break;case"first":f={a:0,special:"index"};break;case"last":f={special:"last-child"};break;case"only":f={special:"only-child"};
|
||||
break;default:f={a:(d-1),special:"index"};}return Selectors.Cache.nth[i]=f;},parseSelector:function(f){if(Selectors.Cache.parsed[f]){return Selectors.Cache.parsed[f];
|
||||
}var d,i={classes:[],pseudos:[],attributes:[]};while((d=Selectors.RegExps.combined.exec(f))){var j=d[1],h=d[2],g=d[3],b=d[5],c=d[6],k=d[7];if(j){i.classes.push(j);
|
||||
}else{if(c){var a=Selectors.Pseudo.get(c);if(a){i.pseudos.push({parser:a,argument:k});}else{i.attributes.push({name:c,operator:"=",value:k});}}else{if(h){i.attributes.push({name:h,operator:g,value:b});
|
||||
}}}}if(!i.classes.length){delete i.classes;}if(!i.attributes.length){delete i.attributes;}if(!i.pseudos.length){delete i.pseudos;}if(!i.classes&&!i.attributes&&!i.pseudos){i=null;
|
||||
}return Selectors.Cache.parsed[f]=i;},parseTagAndID:function(b){var a=b.match(Selectors.RegExps.tag);var c=b.match(Selectors.RegExps.id);return[(a)?a[1]:"*",(c)?c[1]:false];
|
||||
},filter:function(g,c,f){var d;if(c.classes){for(d=c.classes.length;d--;d){var h=c.classes[d];if(!Selectors.Filters.byClass(g,h)){return false;}}}if(c.attributes){for(d=c.attributes.length;
|
||||
d--;d){var b=c.attributes[d];if(!Selectors.Filters.byAttribute(g,b.name,b.operator,b.value)){return false;}}}if(c.pseudos){for(d=c.pseudos.length;d--;d){var a=c.pseudos[d];
|
||||
if(!Selectors.Filters.byPseudo(g,a.parser,a.argument,f)){return false;}}}return true;},getByTagAndID:function(b,a,d){if(d){var c=(b.getElementById)?b.getElementById(d,true):Element.getElementById(b,d,true);
|
||||
return(c&&Selectors.Filters.byTag(c,a))?[c]:[];}else{return b.getElementsByTagName(a);}},search:function(p,o,u){var b=[];var c=o.trim().replace(Selectors.RegExps.splitter,function(k,j,i){b.push(j);
|
||||
return":)"+i;}).split(":)");var q,f,B;for(var A=0,w=c.length;A<w;A++){var z=c[A];if(A==0&&Selectors.RegExps.quick.test(z)){q=p.getElementsByTagName(z);
|
||||
continue;}var a=b[A-1];var r=Selectors.Utils.parseTagAndID(z);var C=r[0],s=r[1];if(A==0){q=Selectors.Utils.getByTagAndID(p,C,s);}else{var d={},h=[];for(var y=0,x=q.length;
|
||||
y<x;y++){h=Selectors.Getters[a](h,q[y],C,s,d);}q=h;}var g=Selectors.Utils.parseSelector(z);if(g){f=[];for(var v=0,t=q.length;v<t;v++){B=q[v];if(Selectors.Utils.filter(B,g,u)){f.push(B);
|
||||
}}q=f;}}return q;}};Selectors.Getters={" ":function(j,h,k,a,f){var d=Selectors.Utils.getByTagAndID(h,k,a);for(var c=0,b=d.length;c<b;c++){var g=d[c];if(Selectors.Utils.chk(g,f)){j.push(g);
|
||||
}}return j;},">":function(j,h,k,a,g){var c=Selectors.Utils.getByTagAndID(h,k,a);for(var f=0,d=c.length;f<d;f++){var b=c[f];if(b.parentNode==h&&Selectors.Utils.chk(b,g)){j.push(b);
|
||||
}}return j;},"+":function(c,b,a,f,d){while((b=b.nextSibling)){if(b.nodeType==1){if(Selectors.Utils.chk(b,d)&&Selectors.Filters.byTag(b,a)&&Selectors.Filters.byID(b,f)){c.push(b);
|
||||
}break;}}return c;},"~":function(c,b,a,f,d){while((b=b.nextSibling)){if(b.nodeType==1){if(!Selectors.Utils.chk(b,d)){break;}if(Selectors.Filters.byTag(b,a)&&Selectors.Filters.byID(b,f)){c.push(b);
|
||||
}}}return c;}};Selectors.Filters={byTag:function(b,a){return(a=="*"||(b.tagName&&b.tagName.toLowerCase()==a));},byID:function(a,b){return(!b||(a.id&&a.id==b));
|
||||
},byClass:function(b,a){return(b.className&&b.className.contains&&b.className.contains(a," "));},byPseudo:function(a,d,c,b){return d.call(a,c,b);},byAttribute:function(c,d,b,f){var a=Element.prototype.getProperty.call(c,d);
|
||||
if(!a){return(b=="!=");}if(!b||f==undefined){return true;}switch(b){case"=":return(a==f);case"*=":return(a.contains(f));case"^=":return(a.substr(0,f.length)==f);
|
||||
case"$=":return(a.substr(a.length-f.length)==f);case"!=":return(a!=f);case"~=":return a.contains(f," ");case"|=":return a.contains(f,"-");}return false;
|
||||
}};Selectors.Pseudo=new Hash({checked:function(){return this.checked;},empty:function(){return !(this.innerText||this.textContent||"").length;},not:function(a){return !Element.match(this,a);
|
||||
},contains:function(a){return(this.innerText||this.textContent||"").contains(a);},"first-child":function(){return Selectors.Pseudo.index.call(this,0);},"last-child":function(){var a=this;
|
||||
while((a=a.nextSibling)){if(a.nodeType==1){return false;}}return true;},"only-child":function(){var b=this;while((b=b.previousSibling)){if(b.nodeType==1){return false;
|
||||
}}var a=this;while((a=a.nextSibling)){if(a.nodeType==1){return false;}}return true;},"nth-child":function(h,f){h=(h==undefined)?"n":h;var c=Selectors.Utils.parseNthArgument(h);
|
||||
if(c.special!="n"){return Selectors.Pseudo[c.special].call(this,c.a,f);}var g=0;f.positions=f.positions||{};var d=$uid(this);if(!f.positions[d]){var b=this;
|
||||
while((b=b.previousSibling)){if(b.nodeType!=1){continue;}g++;var a=f.positions[$uid(b)];if(a!=undefined){g=a+g;break;}}f.positions[d]=g;}return(f.positions[d]%c.a==c.b);
|
||||
},index:function(a){var b=this,c=0;while((b=b.previousSibling)){if(b.nodeType==1&&++c>a){return false;}}return(c==a);},even:function(b,a){return Selectors.Pseudo["nth-child"].call(this,"2n+1",a);
|
||||
},odd:function(b,a){return Selectors.Pseudo["nth-child"].call(this,"2n",a);},selected:function(){return this.selected;},enabled:function(){return(this.disabled===false);
|
||||
}});Element.Events.domready={onAdd:function(a){if(Browser.loaded){a.call(this);}}};(function(){var b=function(){if(Browser.loaded){return;}Browser.loaded=true;
|
||||
window.fireEvent("domready");document.fireEvent("domready");};window.addEvent("load",b);if(Browser.Engine.trident){var a=document.createElement("div");
|
||||
(function(){($try(function(){a.doScroll();return document.id(a).inject(document.body).set("html","temp").dispose();}))?b():arguments.callee.delay(50);})();
|
||||
}else{if(Browser.Engine.webkit&&Browser.Engine.version<525){(function(){(["loaded","complete"].contains(document.readyState))?b():arguments.callee.delay(50);
|
||||
})();}else{document.addEvent("DOMContentLoaded",b);}}})();var JSON=new Hash(this.JSON&&{stringify:JSON.stringify,parse:JSON.parse}).extend({$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(a){return JSON.$specialChars[a]||"\\u00"+Math.floor(a.charCodeAt()/16).toString(16)+(a.charCodeAt()%16).toString(16);
|
||||
},encode:function(b){switch($type(b)){case"string":return'"'+b.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case"array":return"["+String(b.map(JSON.encode).clean())+"]";
|
||||
case"object":case"hash":var a=[];Hash.each(b,function(f,d){var c=JSON.encode(f);if(c){a.push(JSON.encode(d)+":"+c);}});return"{"+a+"}";case"number":case"boolean":return String(b);
|
||||
case false:return"null";}return null;},decode:function(string,secure){if($type(string)!="string"||!string.length){return null;}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null;
|
||||
}return eval("("+string+")");}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(b,a){this.key=b;
|
||||
this.setOptions(a);},write:function(b){b=encodeURIComponent(b);if(this.options.domain){b+="; domain="+this.options.domain;}if(this.options.path){b+="; path="+this.options.path;
|
||||
}if(this.options.duration){var a=new Date();a.setTime(a.getTime()+this.options.duration*24*60*60*1000);b+="; expires="+a.toGMTString();}if(this.options.secure){b+="; secure";
|
||||
}this.options.document.cookie=this.key+"="+b;return this;},read:function(){var a=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");
|
||||
return(a)?decodeURIComponent(a[1]):null;},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this;}});Cookie.write=function(b,c,a){return new Cookie(b,a).write(c);
|
||||
};Cookie.read=function(a){return new Cookie(a).read();};Cookie.dispose=function(b,a){return new Cookie(b,a).dispose();};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object;
|
||||
},initialize:function(m,n){this.instance="Swiff_"+$time();this.setOptions(n);n=this.options;var b=this.id=n.id||this.instance;var a=document.id(n.container);
|
||||
Swiff.CallBacks[this.instance]={};var f=n.params,h=n.vars,g=n.callBacks;var i=$extend({height:n.height,width:n.width},n.properties);var l=this;for(var d in g){Swiff.CallBacks[this.instance][d]=(function(o){return function(){return o.apply(l.object,arguments);
|
||||
};})(g[d]);h[d]="Swiff.CallBacks."+this.instance+"."+d;}f.flashVars=Hash.toQueryString(h);if(Browser.Engine.trident){i.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
|
||||
f.movie=m;}else{i.type="application/x-shockwave-flash";i.data=m;}var k='<object id="'+b+'"';for(var j in i){k+=" "+j+'="'+i[j]+'"';}k+=">";for(var c in f){if(f[c]){k+='<param name="'+c+'" value="'+f[c]+'" />';
|
||||
}}k+="</object>";this.object=((a)?a.empty():new Element("div")).set("html",k).firstChild;},replaces:function(a){a=document.id(a,true);a.parentNode.replaceChild(this.toElement(),a);
|
||||
return this;},inject:function(a){document.id(a,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments));
|
||||
}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+"</invoke>");
|
||||
return eval(rs);};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore"},initialize:function(a){this.subject=this.subject||this;
|
||||
this.setOptions(a);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var b=this.options.wait;if(b===false){this.options.link="cancel";
|
||||
}},getTransition:function(){return function(a){return -(Math.cos(Math.PI*a)-1)/2;};},step:function(){var a=$time();if(a<this.time+this.options.duration){var b=this.transition((a-this.time)/this.options.duration);
|
||||
this.set(this.compute(this.from,this.to,b));}else{this.set(this.compute(this.from,this.to,1));this.complete();}},set:function(a){return a;},compute:function(c,b,a){return Fx.compute(c,b,a);
|
||||
},check:function(){if(!this.timer){return true;}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.bind(this,arguments));
|
||||
return false;}return false;},start:function(b,a){if(!this.check(b,a)){return this;}this.from=b;this.to=a;this.time=0;this.transition=this.getTransition();
|
||||
this.startTimer();this.onStart();return this;},complete:function(){if(this.stopTimer()){this.onComplete();}return this;},cancel:function(){if(this.stopTimer()){this.onCancel();
|
||||
}return this;},onStart:function(){this.fireEvent("start",this.subject);},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject);
|
||||
}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain();},pause:function(){this.stopTimer();return this;},resume:function(){this.startTimer();
|
||||
return this;},stopTimer:function(){if(!this.timer){return false;}this.time=$time()-this.time;this.timer=$clear(this.timer);return true;},startTimer:function(){if(this.timer){return false;
|
||||
}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true;}});Fx.compute=function(c,b,a){return(b-c)*a+c;
|
||||
};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(d,f,b){b=$splat(b);var c=b[1];if(!$chk(c)){b[1]=b[0];
|
||||
b[0]=d.getStyle(f);}var a=b.map(this.parse);return{from:a[0],to:a[1]};},parse:function(a){a=$lambda(a)();a=(typeof a=="string")?a.split(" "):$splat(a);
|
||||
return a.map(function(c){c=String(c);var b=false;Fx.CSS.Parsers.each(function(g,f){if(b){return;}var d=g.parse(c);if($chk(d)){b={value:d,parser:g};}});
|
||||
b=b||{value:c,parser:Fx.CSS.Parsers.String};return b;});},compute:function(d,c,b){var a=[];(Math.min(d.length,c.length)).times(function(f){a.push({value:d[f].parser.compute(d[f].value,c[f].value,b),parser:d[f].parser});
|
||||
});a.$family={name:"fx:css:value"};return a;},serve:function(c,b){if($type(c)!="fx:css:value"){c=this.parse(c);}var a=[];c.each(function(d){a=a.concat(d.parser.serve(d.value,b));
|
||||
});return a;},render:function(a,d,c,b){a.setStyle(d,this.serve(c,b));},search:function(a){if(Fx.CSS.Cache[a]){return Fx.CSS.Cache[a];}var b={};Array.each(document.styleSheets,function(f,d){var c=f.href;
|
||||
if(c&&c.contains("://")&&!c.contains(document.domain)){return;}var g=f.rules||f.cssRules;Array.each(g,function(k,h){if(!k.style){return;}var j=(k.selectorText)?k.selectorText.replace(/^\w+/,function(i){return i.toLowerCase();
|
||||
}):null;if(!j||!j.test("^"+a+"$")){return;}Element.Styles.each(function(l,i){if(!k.style[i]||Element.ShortStyles[i]){return;}l=String(k.style[i]);b[i]=(l.test(/^rgb/))?l.rgbToHex():l;
|
||||
});});});return Fx.CSS.Cache[a]=b;}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(a){if(a.match(/^#[0-9a-f]{3,6}$/i)){return a.hexToRgb(true);
|
||||
}return((a=a.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[a[1],a[2],a[3]]:false;},compute:function(c,b,a){return c.map(function(f,d){return Math.round(Fx.compute(c[d],b[d],a));
|
||||
});},serve:function(a){return a.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(b,a){return(a)?b+a:b;}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});
|
||||
Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);this.parent(a);},set:function(b,a){if(arguments.length==1){a=b;
|
||||
b=this.property||this.options.property;}this.render(this.element,b,a,this.options.unit);return this;},start:function(c,f,d){if(!this.check(c,f,d)){return this;
|
||||
}var b=Array.flatten(arguments);this.property=this.options.property||b.shift();var a=this.prepare(this.element,this.property,b);return this.parent(a.from,a.to);
|
||||
}});Element.Properties.tween={set:function(a){var b=this.retrieve("tween");if(b){b.cancel();}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},a));
|
||||
},get:function(a){if(a||!this.retrieve("tween")){if(a||!this.retrieve("tween:options")){this.set("tween",a);}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")));
|
||||
}return this.retrieve("tween");}};Element.implement({tween:function(a,c,b){this.get("tween").start(arguments);return this;},fade:function(c){var f=this.get("tween"),d="opacity",a;
|
||||
c=$pick(c,"toggle");switch(c){case"in":f.start(d,1);break;case"out":f.start(d,0);break;case"show":f.set(d,1);break;case"hide":f.set(d,0);break;case"toggle":var b=this.retrieve("fade:flag",this.get("opacity")==1);
|
||||
f.start(d,(b)?0:1);this.store("fade:flag",!b);a=true;break;default:f.start(d,arguments);}if(!a){this.eliminate("fade:flag");}return this;},highlight:function(c,a){if(!a){a=this.retrieve("highlight:original",this.getStyle("background-color"));
|
||||
a=(a=="transparent")?"#fff":a;}var b=this.get("tween");b.start("background-color",c||"#ffff88",a).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));
|
||||
b.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);this.parent(a);
|
||||
},set:function(a){if(typeof a=="string"){a=this.search(a);}for(var b in a){this.render(this.element,b,a[b],this.options.unit);}return this;},compute:function(f,d,c){var a={};
|
||||
for(var b in f){a[b]=this.parent(f[b],d[b],c);}return a;},start:function(b){if(!this.check(b)){return this;}if(typeof b=="string"){b=this.search(b);}var f={},d={};
|
||||
for(var c in b){var a=this.prepare(this.element,c,b[c]);f[c]=a.from;d[c]=a.to;}return this.parent(f,d);}});Element.Properties.morph={set:function(a){var b=this.retrieve("morph");
|
||||
if(b){b.cancel();}return this.eliminate("morph").store("morph:options",$extend({link:"cancel"},a));},get:function(a){if(a||!this.retrieve("morph")){if(a||!this.retrieve("morph:options")){this.set("morph",a);
|
||||
}this.store("morph",new Fx.Morph(this,this.retrieve("morph:options")));}return this.retrieve("morph");}};Element.implement({morph:function(a){this.get("morph").start(a);
|
||||
return this;}});Fx.implement({getTransition:function(){var a=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof a=="string"){var b=a.split(":");
|
||||
a=Fx.Transitions;a=a[b[0]]||a[b[0].capitalize()];if(b[1]){a=a["ease"+b[1].capitalize()+(b[2]?b[2].capitalize():"")];}}return a;}});Fx.Transition=function(b,a){a=$splat(a);
|
||||
return $extend(b,{easeIn:function(c){return b(c,a);},easeOut:function(c){return 1-b(1-c,a);},easeInOut:function(c){return(c<=0.5)?b(2*c,a)/2:(2-b(2*(1-c),a))/2;
|
||||
}});};Fx.Transitions=new Hash({linear:$arguments(0)});Fx.Transitions.extend=function(a){for(var b in a){Fx.Transitions[b]=new Fx.Transition(a[b]);}};Fx.Transitions.extend({Pow:function(b,a){return Math.pow(b,a[0]||6);
|
||||
},Expo:function(a){return Math.pow(2,8*(a-1));},Circ:function(a){return 1-Math.sin(Math.acos(a));},Sine:function(a){return 1-Math.sin((1-a)*Math.PI/2);
|
||||
},Back:function(b,a){a=a[0]||1.618;return Math.pow(b,2)*((a+1)*b-a);},Bounce:function(g){var f;for(var d=0,c=1;1;d+=c,c/=2){if(g>=(7-4*d)/11){f=c*c-Math.pow((11-6*d-11*g)/4,2);
|
||||
break;}}return f;},Elastic:function(b,a){return Math.pow(2,10*--b)*Math.cos(20*b*Math.PI*(a[0]||1)/3);}});["Quad","Cubic","Quart","Quint"].each(function(b,a){Fx.Transitions[b]=new Fx.Transition(function(c){return Math.pow(c,[a+2]);
|
||||
});});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false,noCache:false},initialize:function(a){this.xhr=new Browser.Request();
|
||||
this.setOptions(a);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers);},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return;
|
||||
}this.running=false;this.status=0;$try(function(){this.status=this.xhr.status;}.bind(this));this.xhr.onreadystatechange=$empty;if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};
|
||||
this.success(this.response.text,this.response.xml);}else{this.response={text:null,xml:null};this.failure();}},isSuccess:function(){return((this.status>=200)&&(this.status<300));
|
||||
},processScripts:function(a){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(a);}return a.stripScripts(this.options.evalScripts);
|
||||
},success:function(b,a){this.onSuccess(this.processScripts(b),a);},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain();
|
||||
},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr);},setHeader:function(a,b){this.headers.set(a,b);
|
||||
return this;},getHeader:function(a){return $try(function(){return this.xhr.getResponseHeader(a);}.bind(this));},check:function(){if(!this.running){return true;
|
||||
}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.bind(this,arguments));return false;}return false;},send:function(l){if(!this.check(l)){return this;
|
||||
}this.running=true;var j=$type(l);if(j=="string"||j=="element"){l={data:l};}var d=this.options;l=$extend({data:d.data,url:d.url,method:d.method},l);var h=l.data,b=String(l.url),a=l.method.toLowerCase();
|
||||
switch($type(h)){case"element":h=document.id(h).toQueryString();break;case"object":case"hash":h=Hash.toQueryString(h);}if(this.options.format){var k="format="+this.options.format;
|
||||
h=(h)?k+"&"+h:k;}if(this.options.emulation&&!["get","post"].contains(a)){var i="_method="+a;h=(h)?i+"&"+h:i;a="post";}if(this.options.urlEncoded&&a=="post"){var c=(this.options.encoding)?"; charset="+this.options.encoding:"";
|
||||
this.headers.set("Content-type","application/x-www-form-urlencoded"+c);}if(this.options.noCache){var g="noCache="+new Date().getTime();h=(h)?g+"&"+h:g;
|
||||
}var f=b.lastIndexOf("/");if(f>-1&&(f=b.indexOf("#"))>-1){b=b.substr(0,f);}if(h&&a=="get"){b=b+(b.contains("?")?"&":"?")+h;h=null;}this.xhr.open(a.toUpperCase(),b,this.options.async);
|
||||
this.xhr.onreadystatechange=this.onStateChange.bind(this);this.headers.each(function(n,m){try{this.xhr.setRequestHeader(m,n);}catch(o){this.fireEvent("exception",[m,n]);
|
||||
}},this);this.fireEvent("request");this.xhr.send(h);if(!this.options.async){this.onStateChange();}return this;},cancel:function(){if(!this.running){return this;
|
||||
}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this;}});(function(){var a={};
|
||||
["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(b){a[b]=function(){var c=Array.link(arguments,{url:String.type,data:$defined});
|
||||
return this.send($extend(c,{method:b}));};});Request.implement(a);})();Element.Properties.send={set:function(a){var b=this.retrieve("send");if(b){b.cancel();
|
||||
}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},a));},get:function(a){if(a||!this.retrieve("send")){if(a||!this.retrieve("send:options")){this.set("send",a);
|
||||
}this.store("send",new Request(this.retrieve("send:options")));}return this.retrieve("send");}};Element.implement({send:function(a){var b=this.get("send");
|
||||
b.send({data:this,url:a||b.options.url});return this;}});Request.HTML=new Class({Extends:Request,options:{update:false,append:false,evalScripts:true,filter:false},processHTML:function(c){var b=c.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
|
||||
c=(b)?b[1]:c;var a=new Element("div");return $try(function(){var d="<root>"+c+"</root>",h;if(Browser.Engine.trident){h=new ActiveXObject("Microsoft.XMLDOM");
|
||||
h.async=false;h.loadXML(d);}else{h=new DOMParser().parseFromString(d,"text/xml");}d=h.getElementsByTagName("root")[0];if(!d){return null;}for(var g=0,f=d.childNodes.length;
|
||||
g<f;g++){var j=Element.clone(d.childNodes[g],true,true);if(j){a.grab(j);}}return a;})||a.set("html",c);},success:function(d){var c=this.options,b=this.response;
|
||||
b.html=d.stripScripts(function(f){b.javascript=f;});var a=this.processHTML(b.html);b.tree=a.childNodes;b.elements=a.getElements("*");if(c.filter){b.tree=b.elements.filter(c.filter);
|
||||
}if(c.update){document.id(c.update).empty().set("html",b.html);}else{if(c.append){document.id(c.append).adopt(a.getChildren());}}if(c.evalScripts){$exec(b.javascript);
|
||||
}this.onSuccess(b.tree,b.elements,b.html,b.javascript);}});Element.Properties.load={set:function(a){var b=this.retrieve("load");if(b){b.cancel();}return this.eliminate("load").store("load:options",$extend({data:this,link:"cancel",update:this,method:"get"},a));
|
||||
},get:function(a){if(a||!this.retrieve("load")){if(a||!this.retrieve("load:options")){this.set("load",a);}this.store("load",new Request.HTML(this.retrieve("load:options")));
|
||||
}return this.retrieve("load");}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Object.type,url:String.type}));return this;
|
||||
}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(a){this.parent(a);this.headers.extend({Accept:"application/json","X-Request":"JSON"});
|
||||
},success:function(a){this.response.json=JSON.decode(a,this.options.secure);this.onSuccess(this.response.json,a);}});
|
528
js/mootools1.5.0.js
vendored
Normal file
528
js/mootools1.5.0.js
vendored
Normal file
|
@ -0,0 +1,528 @@
|
|||
/*
|
||||
---
|
||||
MooTools: the javascript framework
|
||||
|
||||
web build:
|
||||
- http://mootools.net/core/8423c12ffd6a6bfcde9ea22554aec795
|
||||
|
||||
packager build:
|
||||
- packager build Core/Core Core/Array Core/String Core/Number Core/Function Core/Object Core/Event Core/Browser Core/Class Core/Class.Extras Core/Slick.Parser Core/Slick.Finder Core/Element Core/Element.Style Core/Element.Event Core/Element.Delegation Core/Element.Dimensions Core/Fx Core/Fx.CSS Core/Fx.Tween Core/Fx.Morph Core/Fx.Transitions Core/Request Core/Request.HTML Core/Request.JSON Core/Cookie Core/JSON Core/DOMReady
|
||||
|
||||
copyrights:
|
||||
- [MooTools](http://mootools.net)
|
||||
|
||||
licenses:
|
||||
- [MIT License](http://mootools.net/license.txt)
|
||||
...
|
||||
*/
|
||||
|
||||
(function(){this.MooTools={version:"1.5.0",build:"0f7b690afee9349b15909f33016a25d2e4d9f4e3"};var e=this.typeOf=function(i){if(i==null){return"null";}if(i.$family!=null){return i.$family();
|
||||
}if(i.nodeName){if(i.nodeType==1){return"element";}if(i.nodeType==3){return(/\S/).test(i.nodeValue)?"textnode":"whitespace";}}else{if(typeof i.length=="number"){if("callee" in i){return"arguments";
|
||||
}if("item" in i){return"collection";}}}return typeof i;};var u=this.instanceOf=function(w,i){if(w==null){return false;}var v=w.$constructor||w.constructor;
|
||||
while(v){if(v===i){return true;}v=v.parent;}if(!w.hasOwnProperty){return false;}return w instanceof i;};var f=this.Function;var r=true;for(var q in {toString:1}){r=null;
|
||||
}if(r){r=["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"];}f.prototype.overloadSetter=function(v){var i=this;
|
||||
return function(x,w){if(x==null){return this;}if(v||typeof x!="string"){for(var y in x){i.call(this,y,x[y]);}if(r){for(var z=r.length;z--;){y=r[z];if(x.hasOwnProperty(y)){i.call(this,y,x[y]);
|
||||
}}}}else{i.call(this,x,w);}return this;};};f.prototype.overloadGetter=function(v){var i=this;return function(x){var y,w;if(typeof x!="string"){y=x;}else{if(arguments.length>1){y=arguments;
|
||||
}else{if(v){y=[x];}}}if(y){w={};for(var z=0;z<y.length;z++){w[y[z]]=i.call(this,y[z]);}}else{w=i.call(this,x);}return w;};};f.prototype.extend=function(i,v){this[i]=v;
|
||||
}.overloadSetter();f.prototype.implement=function(i,v){this.prototype[i]=v;}.overloadSetter();var o=Array.prototype.slice;f.from=function(i){return(e(i)=="function")?i:function(){return i;
|
||||
};};Array.from=function(i){if(i==null){return[];}return(k.isEnumerable(i)&&typeof i!="string")?(e(i)=="array")?i:o.call(i):[i];};Number.from=function(v){var i=parseFloat(v);
|
||||
return isFinite(i)?i:null;};String.from=function(i){return i+"";};f.implement({hide:function(){this.$hidden=true;return this;},protect:function(){this.$protected=true;
|
||||
return this;}});var k=this.Type=function(x,w){if(x){var v=x.toLowerCase();var i=function(y){return(e(y)==v);};k["is"+x]=i;if(w!=null){w.prototype.$family=(function(){return v;
|
||||
}).hide();w.type=i;}}if(w==null){return null;}w.extend(this);w.$constructor=k;w.prototype.$constructor=w;return w;};var p=Object.prototype.toString;k.isEnumerable=function(i){return(i!=null&&typeof i.length=="number"&&p.call(i)!="[object Function]");
|
||||
};var b={};var d=function(i){var v=e(i.prototype);return b[v]||(b[v]=[]);};var h=function(w,A){if(A&&A.$hidden){return;}var v=d(this);for(var x=0;x<v.length;
|
||||
x++){var z=v[x];if(e(z)=="type"){h.call(z,w,A);}else{z.call(this,w,A);}}var y=this.prototype[w];if(y==null||!y.$protected){this.prototype[w]=A;}if(this[w]==null&&e(A)=="function"){t.call(this,w,function(i){return A.apply(i,o.call(arguments,1));
|
||||
});}};var t=function(i,w){if(w&&w.$hidden){return;}var v=this[i];if(v==null||!v.$protected){this[i]=w;}};k.implement({implement:h.overloadSetter(),extend:t.overloadSetter(),alias:function(i,v){h.call(this,i,this.prototype[v]);
|
||||
}.overloadSetter(),mirror:function(i){d(this).push(i);return this;}});new k("Type",k);var c=function(v,A,y){var x=(A!=Object),E=A.prototype;if(x){A=new k(v,A);
|
||||
}for(var B=0,z=y.length;B<z;B++){var F=y[B],D=A[F],C=E[F];if(D){D.protect();}if(x&&C){A.implement(F,C.protect());}}if(x){var w=E.propertyIsEnumerable(y[0]);
|
||||
A.forEachMethod=function(J){if(!w){for(var I=0,G=y.length;I<G;I++){J.call(E,E[y[I]],y[I]);}}for(var H in E){J.call(E,E[H],H);}};}return c;};c("String",String,["charAt","charCodeAt","concat","contains","indexOf","lastIndexOf","match","quote","replace","search","slice","split","substr","substring","trim","toLowerCase","toUpperCase"])("Array",Array,["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice","indexOf","lastIndexOf","filter","forEach","every","map","some","reduce","reduceRight"])("Number",Number,["toExponential","toFixed","toLocaleString","toPrecision"])("Function",f,["apply","call","bind"])("RegExp",RegExp,["exec","test"])("Object",Object,["create","defineProperty","defineProperties","keys","getPrototypeOf","getOwnPropertyDescriptor","getOwnPropertyNames","preventExtensions","isExtensible","seal","isSealed","freeze","isFrozen"])("Date",Date,["now"]);
|
||||
Object.extend=t.overloadSetter();Date.extend("now",function(){return +(new Date);});new k("Boolean",Boolean);Number.prototype.$family=function(){return isFinite(this)?"number":"null";
|
||||
}.hide();Number.extend("random",function(v,i){return Math.floor(Math.random()*(i-v+1)+v);});var l=Object.prototype.hasOwnProperty;Object.extend("forEach",function(i,w,x){for(var v in i){if(l.call(i,v)){w.call(x,i[v],v,i);
|
||||
}}});Object.each=Object.forEach;Array.implement({forEach:function(x,y){for(var w=0,v=this.length;w<v;w++){if(w in this){x.call(y,this[w],w,this);}}},each:function(i,v){Array.forEach(this,i,v);
|
||||
return this;}});var s=function(i){switch(e(i)){case"array":return i.clone();case"object":return Object.clone(i);default:return i;}};Array.implement("clone",function(){var v=this.length,w=new Array(v);
|
||||
while(v--){w[v]=s(this[v]);}return w;});var a=function(v,i,w){switch(e(w)){case"object":if(e(v[i])=="object"){Object.merge(v[i],w);}else{v[i]=Object.clone(w);
|
||||
}break;case"array":v[i]=w.clone();break;default:v[i]=w;}return v;};Object.extend({merge:function(C,y,x){if(e(y)=="string"){return a(C,y,x);}for(var B=1,w=arguments.length;
|
||||
B<w;B++){var z=arguments[B];for(var A in z){a(C,A,z[A]);}}return C;},clone:function(i){var w={};for(var v in i){w[v]=s(i[v]);}return w;},append:function(z){for(var y=1,w=arguments.length;
|
||||
y<w;y++){var v=arguments[y]||{};for(var x in v){z[x]=v[x];}}return z;}});["Object","WhiteSpace","TextNode","Collection","Arguments"].each(function(i){new k(i);
|
||||
});var j=Date.now();String.extend("uniqueID",function(){return(j++).toString(36);});var g=this.Hash=new k("Hash",function(i){if(e(i)=="hash"){i=Object.clone(i.getClean());
|
||||
}for(var v in i){this[v]=i[v];}return this;});g.implement({forEach:function(i,v){Object.forEach(this,i,v);},getClean:function(){var v={};for(var i in this){if(this.hasOwnProperty(i)){v[i]=this[i];
|
||||
}}return v;},getLength:function(){var v=0;for(var i in this){if(this.hasOwnProperty(i)){v++;}}return v;}});g.alias("each","forEach");Object.type=k.isObject;
|
||||
var n=this.Native=function(i){return new k(i.name,i.initialize);};n.type=k.type;n.implement=function(x,v){for(var w=0;w<x.length;w++){x[w].implement(v);
|
||||
}return n;};var m=Array.type;Array.type=function(i){return u(i,Array)||m(i);};this.$A=function(i){return Array.from(i).slice();};this.$arguments=function(v){return function(){return arguments[v];
|
||||
};};this.$chk=function(i){return !!(i||i===0);};this.$clear=function(i){clearTimeout(i);clearInterval(i);return null;};this.$defined=function(i){return(i!=null);
|
||||
};this.$each=function(w,v,x){var i=e(w);((i=="arguments"||i=="collection"||i=="array"||i=="elements")?Array:Object).each(w,v,x);};this.$empty=function(){};
|
||||
this.$extend=function(v,i){return Object.append(v,i);};this.$H=function(i){return new g(i);};this.$merge=function(){var i=Array.slice(arguments);i.unshift({});
|
||||
return Object.merge.apply(null,i);};this.$lambda=f.from;this.$mixin=Object.merge;this.$random=Number.random;this.$splat=Array.from;this.$time=Date.now;
|
||||
this.$type=function(i){var v=e(i);if(v=="elements"){return"array";}return(v=="null")?false:v;};this.$unlink=function(i){switch(e(i)){case"object":return Object.clone(i);
|
||||
case"array":return Array.clone(i);case"hash":return new g(i);default:return i;}};})();Array.implement({every:function(c,d){for(var b=0,a=this.length>>>0;
|
||||
b<a;b++){if((b in this)&&!c.call(d,this[b],b,this)){return false;}}return true;},filter:function(d,f){var c=[];for(var e,b=0,a=this.length>>>0;b<a;b++){if(b in this){e=this[b];
|
||||
if(d.call(f,e,b,this)){c.push(e);}}}return c;},indexOf:function(c,d){var b=this.length>>>0;for(var a=(d<0)?Math.max(0,b+d):d||0;a<b;a++){if(this[a]===c){return a;
|
||||
}}return -1;},map:function(c,e){var d=this.length>>>0,b=Array(d);for(var a=0;a<d;a++){if(a in this){b[a]=c.call(e,this[a],a,this);}}return b;},some:function(c,d){for(var b=0,a=this.length>>>0;
|
||||
b<a;b++){if((b in this)&&c.call(d,this[b],b,this)){return true;}}return false;},clean:function(){return this.filter(function(a){return a!=null;});},invoke:function(a){var b=Array.slice(arguments,1);
|
||||
return this.map(function(c){return c[a].apply(c,b);});},associate:function(c){var d={},b=Math.min(this.length,c.length);for(var a=0;a<b;a++){d[c[a]]=this[a];
|
||||
}return d;},link:function(c){var a={};for(var e=0,b=this.length;e<b;e++){for(var d in c){if(c[d](this[e])){a[d]=this[e];delete c[d];break;}}}return a;},contains:function(a,b){return this.indexOf(a,b)!=-1;
|
||||
},append:function(a){this.push.apply(this,a);return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[Number.random(0,this.length-1)]:null;
|
||||
},include:function(a){if(!this.contains(a)){this.push(a);}return this;},combine:function(c){for(var b=0,a=c.length;b<a;b++){this.include(c[b]);}return this;
|
||||
},erase:function(b){for(var a=this.length;a--;){if(this[a]===b){this.splice(a,1);}}return this;},empty:function(){this.length=0;return this;},flatten:function(){var d=[];
|
||||
for(var b=0,a=this.length;b<a;b++){var c=typeOf(this[b]);if(c=="null"){continue;}d=d.concat((c=="array"||c=="collection"||c=="arguments"||instanceOf(this[b],Array))?Array.flatten(this[b]):this[b]);
|
||||
}return d;},pick:function(){for(var b=0,a=this.length;b<a;b++){if(this[b]!=null){return this[b];}}return null;},hexToRgb:function(b){if(this.length!=3){return null;
|
||||
}var a=this.map(function(c){if(c.length==1){c+=c;}return parseInt(c,16);});return(b)?a:"rgb("+a+")";},rgbToHex:function(d){if(this.length<3){return null;
|
||||
}if(this.length==4&&this[3]==0&&!d){return"transparent";}var b=[];for(var a=0;a<3;a++){var c=(this[a]-0).toString(16);b.push((c.length==1)?"0"+c:c);}return(d)?b:"#"+b.join("");
|
||||
}});Array.alias("extend","append");var $pick=function(){return Array.from(arguments).pick();};String.implement({contains:function(b,a){return(a?String(this).slice(a):String(this)).indexOf(b)>-1;
|
||||
},test:function(a,b){return((typeOf(a)=="regexp")?a:new RegExp(""+a,b)).test(this);},trim:function(){return String(this).replace(/^\s+|\s+$/g,"");},clean:function(){return String(this).replace(/\s+/g," ").trim();
|
||||
},camelCase:function(){return String(this).replace(/-\D/g,function(a){return a.charAt(1).toUpperCase();});},hyphenate:function(){return String(this).replace(/[A-Z]/g,function(a){return("-"+a.charAt(0).toLowerCase());
|
||||
});},capitalize:function(){return String(this).replace(/\b[a-z]/g,function(a){return a.toUpperCase();});},escapeRegExp:function(){return String(this).replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1");
|
||||
},toInt:function(a){return parseInt(this,a||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(b){var a=String(this).match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
|
||||
return(a)?a.slice(1).hexToRgb(b):null;},rgbToHex:function(b){var a=String(this).match(/\d{1,3}/g);return(a)?a.rgbToHex(b):null;},substitute:function(a,b){return String(this).replace(b||(/\\?\{([^{}]+)\}/g),function(d,c){if(d.charAt(0)=="\\"){return d.slice(1);
|
||||
}return(a[c]!=null)?a[c]:"";});}});String.prototype.contains=function(a,b){return(b)?(b+this+b).indexOf(b+a+b)>-1:String(this).indexOf(a)>-1;};Number.implement({limit:function(b,a){return Math.min(a,Math.max(b,this));
|
||||
},round:function(a){a=Math.pow(10,a||0).toFixed(a<0?-a:0);return Math.round(this*a)/a;},times:function(b,c){for(var a=0;a<this;a++){b.call(c,a,this);}},toFloat:function(){return parseFloat(this);
|
||||
},toInt:function(a){return parseInt(this,a||10);}});Number.alias("each","times");(function(b){var a={};b.each(function(c){if(!Number[c]){a[c]=function(){return Math[c].apply(null,[this].concat(Array.from(arguments)));
|
||||
};}});Number.implement(a);})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);Function.extend({attempt:function(){for(var b=0,a=arguments.length;
|
||||
b<a;b++){try{return arguments[b]();}catch(c){}}return null;}});Function.implement({attempt:function(a,c){try{return this.apply(c,Array.from(a));}catch(b){}return null;
|
||||
},bind:function(e){var a=this,b=arguments.length>1?Array.slice(arguments,1):null,d=function(){};var c=function(){var g=e,h=arguments.length;if(this instanceof c){d.prototype=a.prototype;
|
||||
g=new d;}var f=(!b&&!h)?a.call(g):a.apply(g,b&&h?b.concat(Array.slice(arguments)):b||arguments);return g==e?f:g;};return c;},pass:function(b,c){var a=this;
|
||||
if(b!=null){b=Array.from(b);}return function(){return a.apply(c,b||arguments);};},delay:function(b,c,a){return setTimeout(this.pass((a==null?[]:a),c),b);
|
||||
},periodical:function(c,b,a){return setInterval(this.pass((a==null?[]:a),b),c);}});delete Function.prototype.bind;Function.implement({create:function(b){var a=this;
|
||||
b=b||{};return function(d){var c=b.arguments;c=(c!=null)?Array.from(c):Array.slice(arguments,(b.event)?1:0);if(b.event){c=[d||window.event].extend(c);}var e=function(){return a.apply(b.bind||null,c);
|
||||
};if(b.delay){return setTimeout(e,b.delay);}if(b.periodical){return setInterval(e,b.periodical);}if(b.attempt){return Function.attempt(e);}return e();};
|
||||
},bind:function(c,b){var a=this;if(b!=null){b=Array.from(b);}return function(){return a.apply(c,b||arguments);};},bindWithEvent:function(c,b){var a=this;
|
||||
if(b!=null){b=Array.from(b);}return function(d){return a.apply(c,(b==null)?arguments:[d].concat(b));};},run:function(a,b){return this.apply(b,Array.from(a));
|
||||
}});if(Object.create==Function.prototype.create){Object.create=null;}var $try=Function.attempt;(function(){var a=Object.prototype.hasOwnProperty;Object.extend({subset:function(d,g){var f={};
|
||||
for(var e=0,b=g.length;e<b;e++){var c=g[e];if(c in d){f[c]=d[c];}}return f;},map:function(b,e,f){var d={};for(var c in b){if(a.call(b,c)){d[c]=e.call(f,b[c],c,b);
|
||||
}}return d;},filter:function(b,e,g){var d={};for(var c in b){var f=b[c];if(a.call(b,c)&&e.call(g,f,c,b)){d[c]=f;}}return d;},every:function(b,d,e){for(var c in b){if(a.call(b,c)&&!d.call(e,b[c],c)){return false;
|
||||
}}return true;},some:function(b,d,e){for(var c in b){if(a.call(b,c)&&d.call(e,b[c],c)){return true;}}return false;},keys:function(b){var d=[];for(var c in b){if(a.call(b,c)){d.push(c);
|
||||
}}return d;},values:function(c){var b=[];for(var d in c){if(a.call(c,d)){b.push(c[d]);}}return b;},getLength:function(b){return Object.keys(b).length;},keyOf:function(b,d){for(var c in b){if(a.call(b,c)&&b[c]===d){return c;
|
||||
}}return null;},contains:function(b,c){return Object.keyOf(b,c)!=null;},toQueryString:function(b,c){var d=[];Object.each(b,function(h,g){if(c){g=c+"["+g+"]";
|
||||
}var f;switch(typeOf(h)){case"object":f=Object.toQueryString(h,g);break;case"array":var e={};h.each(function(k,j){e[j]=k;});f=Object.toQueryString(e,g);
|
||||
break;default:f=g+"="+encodeURIComponent(h);}if(h!=null){d.push(f);}});return d.join("&");}});})();Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(a){return Object.keyOf(this,a);
|
||||
},hasValue:function(a){return Object.contains(this,a);},extend:function(a){Hash.each(a||{},function(c,b){Hash.set(this,b,c);},this);return this;},combine:function(a){Hash.each(a||{},function(c,b){Hash.include(this,b,c);
|
||||
},this);return this;},erase:function(a){if(this.hasOwnProperty(a)){delete this[a];}return this;},get:function(a){return(this.hasOwnProperty(a))?this[a]:null;
|
||||
},set:function(a,b){if(!this[a]||this.hasOwnProperty(a)){this[a]=b;}return this;},empty:function(){Hash.each(this,function(b,a){delete this[a];},this);
|
||||
return this;},include:function(a,b){if(this[a]==null){this[a]=b;}return this;},map:function(a,b){return new Hash(Object.map(this,a,b));},filter:function(a,b){return new Hash(Object.filter(this,a,b));
|
||||
},every:function(a,b){return Object.every(this,a,b);},some:function(a,b){return Object.some(this,a,b);},getKeys:function(){return Object.keys(this);},getValues:function(){return Object.values(this);
|
||||
},toQueryString:function(a){return Object.toQueryString(this,a);}});Hash.extend=Object.append;Hash.alias({indexOf:"keyOf",contains:"hasValue"});(function(){var i=this.document;
|
||||
var g=i.window=this;var b=function(n,e){n=n.toLowerCase();e=(e?e.toLowerCase():"");var o=n.match(/(opera|ie|firefox|chrome|trident|crios|version)[\s\/:]([\w\d\.]+)?.*?(safari|(?:rv[\s\/:]|version[\s\/:])([\w\d\.]+)|$)/)||[null,"unknown",0];
|
||||
if(o[1]=="trident"){o[1]="ie";if(o[4]){o[2]=o[4];}}else{if(o[1]=="crios"){o[1]="chrome";}}var e=n.match(/ip(?:ad|od|hone)/)?"ios":(n.match(/(?:webos|android)/)||e.match(/mac|win|linux/)||["other"])[0];
|
||||
if(e=="win"){e="windows";}return{extend:Function.prototype.extend,name:(o[1]=="version")?o[3]:o[1],version:parseFloat((o[1]=="opera"&&o[4])?o[4]:o[2]),platform:e};
|
||||
};var m=this.Browser=b(navigator.userAgent,navigator.platform);if(m.ie){m.version=i.documentMode;}m.extend({Features:{xpath:!!(i.evaluate),air:!!(g.runtime),query:!!(i.querySelector),json:!!(g.JSON)},parseUA:b});
|
||||
m[m.name]=true;m[m.name+parseInt(m.version,10)]=true;if(m.name=="ie"&&m.version>="11"){delete m.ie;}var a=m.platform;if(a=="windows"){a="win";}m.Platform={name:a};
|
||||
m.Platform[a]=true;m.Request=(function(){var o=function(){return new XMLHttpRequest();};var n=function(){return new ActiveXObject("MSXML2.XMLHTTP");};var e=function(){return new ActiveXObject("Microsoft.XMLHTTP");
|
||||
};return Function.attempt(function(){o();return o;},function(){n();return n;},function(){e();return e;});})();m.Features.xhr=!!(m.Request);var h=(Function.attempt(function(){return navigator.plugins["Shockwave Flash"].description;
|
||||
},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version");})||"0 r0").match(/\d+/g);m.Plugins={Flash:{version:Number(h[0]||"0."+h[1])||0,build:Number(h[2])||0}};
|
||||
m.exec=function(n){if(!n){return n;}if(g.execScript){g.execScript(n);}else{var e=i.createElement("script");e.setAttribute("type","text/javascript");e.text=n;
|
||||
i.head.appendChild(e);i.head.removeChild(e);}return n;};String.implement("stripScripts",function(n){var e="";var o=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(p,q){e+=q+"\n";
|
||||
return"";});if(n===true){m.exec(e);}else{if(typeOf(n)=="function"){n(e,o);}}return o;});m.extend({Document:this.Document,Window:this.Window,Element:this.Element,Event:this.Event});
|
||||
this.Window=this.$constructor=new Type("Window",function(){});this.$family=Function.from("window").hide();Window.mirror(function(e,n){g[e]=n;});this.Document=i.$constructor=new Type("Document",function(){});
|
||||
i.$family=Function.from("document").hide();Document.mirror(function(e,n){i[e]=n;});i.html=i.documentElement;if(!i.head){i.head=i.getElementsByTagName("head")[0];
|
||||
}if(i.execCommand){try{i.execCommand("BackgroundImageCache",false,true);}catch(f){}}if(this.attachEvent&&!this.addEventListener){var c=function(){this.detachEvent("onunload",c);
|
||||
i.head=i.html=i.window=null;};this.attachEvent("onunload",c);}var k=Array.from;try{k(i.html.childNodes);}catch(f){Array.from=function(n){if(typeof n!="string"&&Type.isEnumerable(n)&&typeOf(n)!="array"){var e=n.length,o=new Array(e);
|
||||
while(e--){o[e]=n[e];}return o;}return k(n);};var j=Array.prototype,l=j.slice;["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice"].each(function(e){var n=j[e];
|
||||
Array[e]=function(o){return n.apply(Array.from(o),l.call(arguments,1));};});}if(m.Platform.ios){m.Platform.ipod=true;}m.Engine={};var d=function(n,e){m.Engine.name=n;
|
||||
m.Engine[n+e]=true;m.Engine.version=e;};if(m.ie){m.Engine.trident=true;switch(m.version){case 6:d("trident",4);break;case 7:d("trident",5);break;case 8:d("trident",6);
|
||||
}}if(m.firefox){m.Engine.gecko=true;if(m.version>=3){d("gecko",19);}else{d("gecko",18);}}if(m.safari||m.chrome){m.Engine.webkit=true;switch(m.version){case 2:d("webkit",419);
|
||||
break;case 3:d("webkit",420);break;case 4:d("webkit",525);}}if(m.opera){m.Engine.presto=true;if(m.version>=9.6){d("presto",960);}else{if(m.version>=9.5){d("presto",950);
|
||||
}else{d("presto",925);}}}if(m.name=="unknown"){switch((navigator.userAgent.toLowerCase().match(/(?:webkit|khtml|gecko)/)||[])[0]){case"webkit":case"khtml":m.Engine.webkit=true;
|
||||
break;case"gecko":m.Engine.gecko=true;}}this.$exec=m.exec;})();(function(){var b={};var a=this.DOMEvent=new Type("DOMEvent",function(c,g){if(!g){g=window;
|
||||
}c=c||g.event;if(c.$extended){return c;}this.event=c;this.$extended=true;this.shift=c.shiftKey;this.control=c.ctrlKey;this.alt=c.altKey;this.meta=c.metaKey;
|
||||
var i=this.type=c.type;var h=c.target||c.srcElement;while(h&&h.nodeType==3){h=h.parentNode;}this.target=document.id(h);if(i.indexOf("key")==0){var d=this.code=(c.which||c.keyCode);
|
||||
this.key=b[d]||Object.keyOf(Event.Keys,d);if(i=="keydown"||i=="keyup"){if(d>111&&d<124){this.key="f"+(d-111);}else{if(d>95&&d<106){this.key=d-96;}}}if(this.key==null){this.key=String.fromCharCode(d).toLowerCase();
|
||||
}}else{if(i=="click"||i=="dblclick"||i=="contextmenu"||i=="DOMMouseScroll"||i.indexOf("mouse")==0){var j=g.document;j=(!j.compatMode||j.compatMode=="CSS1Compat")?j.html:j.body;
|
||||
this.page={x:(c.pageX!=null)?c.pageX:c.clientX+j.scrollLeft,y:(c.pageY!=null)?c.pageY:c.clientY+j.scrollTop};this.client={x:(c.pageX!=null)?c.pageX-g.pageXOffset:c.clientX,y:(c.pageY!=null)?c.pageY-g.pageYOffset:c.clientY};
|
||||
if(i=="DOMMouseScroll"||i=="mousewheel"){this.wheel=(c.wheelDelta)?c.wheelDelta/120:-(c.detail||0)/3;}this.rightClick=(c.which==3||c.button==2);if(i=="mouseover"||i=="mouseout"){var k=c.relatedTarget||c[(i=="mouseover"?"from":"to")+"Element"];
|
||||
while(k&&k.nodeType==3){k=k.parentNode;}this.relatedTarget=document.id(k);}}else{if(i.indexOf("touch")==0||i.indexOf("gesture")==0){this.rotation=c.rotation;
|
||||
this.scale=c.scale;this.targetTouches=c.targetTouches;this.changedTouches=c.changedTouches;var f=this.touches=c.touches;if(f&&f[0]){var e=f[0];this.page={x:e.pageX,y:e.pageY};
|
||||
this.client={x:e.clientX,y:e.clientY};}}}}if(!this.client){this.client={};}if(!this.page){this.page={};}});a.implement({stop:function(){return this.preventDefault().stopPropagation();
|
||||
},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault();
|
||||
}else{this.event.returnValue=false;}return this;}});a.defineKey=function(d,c){b[d]=c;return this;};a.defineKeys=a.defineKey.overloadSetter(true);a.defineKeys({"38":"up","40":"down","37":"left","39":"right","27":"esc","32":"space","8":"backspace","9":"tab","46":"delete","13":"enter"});
|
||||
})();var Event=DOMEvent;Event.Keys={};Event.Keys=new Hash(Event.Keys);(function(){var a=this.Class=new Type("Class",function(h){if(instanceOf(h,Function)){h={initialize:h};
|
||||
}var g=function(){e(this);if(g.$prototyping){return this;}this.$caller=null;var i=(this.initialize)?this.initialize.apply(this,arguments):this;this.$caller=this.caller=null;
|
||||
return i;}.extend(this).implement(h);g.$constructor=a;g.prototype.$constructor=g;g.prototype.parent=c;return g;});var c=function(){if(!this.$caller){throw new Error('The method "parent" cannot be called.');
|
||||
}var g=this.$caller.$name,h=this.$caller.$owner.parent,i=(h)?h.prototype[g]:null;if(!i){throw new Error('The method "'+g+'" has no parent.');}return i.apply(this,arguments);
|
||||
};var e=function(g){for(var h in g){var j=g[h];switch(typeOf(j)){case"object":var i=function(){};i.prototype=j;g[h]=e(new i);break;case"array":g[h]=j.clone();
|
||||
break;}}return g;};var b=function(g,h,j){if(j.$origin){j=j.$origin;}var i=function(){if(j.$protected&&this.$caller==null){throw new Error('The method "'+h+'" cannot be called.');
|
||||
}var l=this.caller,m=this.$caller;this.caller=m;this.$caller=i;var k=j.apply(this,arguments);this.$caller=m;this.caller=l;return k;}.extend({$owner:g,$origin:j,$name:h});
|
||||
return i;};var f=function(h,i,g){if(a.Mutators.hasOwnProperty(h)){i=a.Mutators[h].call(this,i);if(i==null){return this;}}if(typeOf(i)=="function"){if(i.$hidden){return this;
|
||||
}this.prototype[h]=(g)?i:b(this,h,i);}else{Object.merge(this.prototype,h,i);}return this;};var d=function(g){g.$prototyping=true;var h=new g;delete g.$prototyping;
|
||||
return h;};a.implement("implement",f.overloadSetter());a.Mutators={Extends:function(g){this.parent=g;this.prototype=d(g);},Implements:function(g){Array.from(g).each(function(j){var h=new j;
|
||||
for(var i in h){f.call(this,i,h[i],true);}},this);}};})();(function(){this.Chain=new Class({$chain:[],chain:function(){this.$chain.append(Array.flatten(arguments));
|
||||
return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){this.$chain.empty();
|
||||
return this;}});var a=function(b){return b.replace(/^on([A-Z])/,function(c,d){return d.toLowerCase();});};this.Events=new Class({$events:{},addEvent:function(d,c,b){d=a(d);
|
||||
if(c==$empty){return this;}this.$events[d]=(this.$events[d]||[]).include(c);if(b){c.internal=true;}return this;},addEvents:function(b){for(var c in b){this.addEvent(c,b[c]);
|
||||
}return this;},fireEvent:function(e,c,b){e=a(e);var d=this.$events[e];if(!d){return this;}c=Array.from(c);d.each(function(f){if(b){f.delay(b,this,c);}else{f.apply(this,c);
|
||||
}},this);return this;},removeEvent:function(e,d){e=a(e);var c=this.$events[e];if(c&&!d.internal){var b=c.indexOf(d);if(b!=-1){delete c[b];}}return this;
|
||||
},removeEvents:function(d){var e;if(typeOf(d)=="object"){for(e in d){this.removeEvent(e,d[e]);}return this;}if(d){d=a(d);}for(e in this.$events){if(d&&d!=e){continue;
|
||||
}var c=this.$events[e];for(var b=c.length;b--;){if(b in c){this.removeEvent(e,c[b]);}}}return this;}});this.Options=new Class({setOptions:function(){var b=this.options=Object.merge.apply(null,[{},this.options].append(arguments));
|
||||
if(this.addEvent){for(var c in b){if(typeOf(b[c])!="function"||!(/^on[A-Z]/).test(c)){continue;}this.addEvent(c,b[c]);delete b[c];}}return this;}});})();
|
||||
(function(){var k,n,l,g,a={},c={},m=/\\/g;var e=function(q,p){if(q==null){return null;}if(q.Slick===true){return q;}q=(""+q).replace(/^\s+|\s+$/g,"");g=!!p;
|
||||
var o=(g)?c:a;if(o[q]){return o[q];}k={Slick:true,expressions:[],raw:q,reverse:function(){return e(this.raw,true);}};n=-1;while(q!=(q=q.replace(j,b))){}k.length=k.expressions.length;
|
||||
return o[k.raw]=(g)?h(k):k;};var i=function(o){if(o==="!"){return" ";}else{if(o===" "){return"!";}else{if((/^!/).test(o)){return o.replace(/^!/,"");}else{return"!"+o;
|
||||
}}}};var h=function(u){var r=u.expressions;for(var p=0;p<r.length;p++){var t=r[p];var q={parts:[],tag:"*",combinator:i(t[0].combinator)};for(var o=0;o<t.length;
|
||||
o++){var s=t[o];if(!s.reverseCombinator){s.reverseCombinator=" ";}s.combinator=s.reverseCombinator;delete s.reverseCombinator;}t.reverse().push(q);}return u;
|
||||
};var f=function(o){return o.replace(/[-[\]{}()*+?.\\^$|,#\s]/g,function(p){return"\\"+p;});};var j=new RegExp("^(?:\\s*(,)\\s*|\\s*(<combinator>+)\\s*|(\\s+)|(<unicode>+|\\*)|\\#(<unicode>+)|\\.(<unicode>+)|\\[\\s*(<unicode1>+)(?:\\s*([*^$!~|]?=)(?:\\s*(?:([\"']?)(.*?)\\9)))?\\s*\\](?!\\])|(:+)(<unicode>+)(?:\\((?:(?:([\"'])([^\\13]*)\\13)|((?:\\([^)]+\\)|[^()]*)+))\\))?)".replace(/<combinator>/,"["+f(">+~`!@$%^&={}\\;</")+"]").replace(/<unicode>/g,"(?:[\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])").replace(/<unicode1>/g,"(?:[:\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])"));
|
||||
function b(x,s,D,z,r,C,q,B,A,y,u,F,G,v,p,w){if(s||n===-1){k.expressions[++n]=[];l=-1;if(s){return"";}}if(D||z||l===-1){D=D||" ";var t=k.expressions[n];
|
||||
if(g&&t[l]){t[l].reverseCombinator=i(D);}t[++l]={combinator:D,tag:"*"};}var o=k.expressions[n][l];if(r){o.tag=r.replace(m,"");}else{if(C){o.id=C.replace(m,"");
|
||||
}else{if(q){q=q.replace(m,"");if(!o.classList){o.classList=[];}if(!o.classes){o.classes=[];}o.classList.push(q);o.classes.push({value:q,regexp:new RegExp("(^|\\s)"+f(q)+"(\\s|$)")});
|
||||
}else{if(G){w=w||p;w=w?w.replace(m,""):null;if(!o.pseudos){o.pseudos=[];}o.pseudos.push({key:G.replace(m,""),value:w,type:F.length==1?"class":"element"});
|
||||
}else{if(B){B=B.replace(m,"");u=(u||"").replace(m,"");var E,H;switch(A){case"^=":H=new RegExp("^"+f(u));break;case"$=":H=new RegExp(f(u)+"$");break;case"~=":H=new RegExp("(^|\\s)"+f(u)+"(\\s|$)");
|
||||
break;case"|=":H=new RegExp("^"+f(u)+"(-|$)");break;case"=":E=function(I){return u==I;};break;case"*=":E=function(I){return I&&I.indexOf(u)>-1;};break;
|
||||
case"!=":E=function(I){return u!=I;};break;default:E=function(I){return !!I;};}if(u==""&&(/^[*$^]=$/).test(A)){E=function(){return false;};}if(!E){E=function(I){return I&&H.test(I);
|
||||
};}if(!o.attributes){o.attributes=[];}o.attributes.push({key:B,operator:A,value:u,test:E});}}}}}return"";}var d=(this.Slick||{});d.parse=function(o){return e(o);
|
||||
};d.escapeRegExp=f;if(!this.Slick){this.Slick=d;}}).apply((typeof exports!="undefined")?exports:this);(function(){var k={},m={},d=Object.prototype.toString;
|
||||
k.isNativeCode=function(c){return(/\{\s*\[native code\]\s*\}/).test(""+c);};k.isXML=function(c){return(!!c.xmlVersion)||(!!c.xml)||(d.call(c)=="[object XMLDocument]")||(c.nodeType==9&&c.documentElement.nodeName!="HTML");
|
||||
};k.setDocument=function(w){var p=w.nodeType;if(p==9){}else{if(p){w=w.ownerDocument;}else{if(w.navigator){w=w.document;}else{return;}}}if(this.document===w){return;
|
||||
}this.document=w;var A=w.documentElement,o=this.getUIDXML(A),s=m[o],r;if(s){for(r in s){this[r]=s[r];}return;}s=m[o]={};s.root=A;s.isXMLDocument=this.isXML(w);
|
||||
s.brokenStarGEBTN=s.starSelectsClosedQSA=s.idGetsName=s.brokenMixedCaseQSA=s.brokenGEBCN=s.brokenCheckedQSA=s.brokenEmptyAttributeQSA=s.isHTMLDocument=s.nativeMatchesSelector=false;
|
||||
var q,u,y,z,t;var x,v="slick_uniqueid";var c=w.createElement("div");var n=w.body||w.getElementsByTagName("body")[0]||A;n.appendChild(c);try{c.innerHTML='<a id="'+v+'"></a>';
|
||||
s.isHTMLDocument=!!w.getElementById(v);}catch(C){}if(s.isHTMLDocument){c.style.display="none";c.appendChild(w.createComment(""));u=(c.getElementsByTagName("*").length>1);
|
||||
try{c.innerHTML="foo</foo>";x=c.getElementsByTagName("*");q=(x&&!!x.length&&x[0].nodeName.charAt(0)=="/");}catch(C){}s.brokenStarGEBTN=u||q;try{c.innerHTML='<a name="'+v+'"></a><b id="'+v+'"></b>';
|
||||
s.idGetsName=w.getElementById(v)===c.firstChild;}catch(C){}if(c.getElementsByClassName){try{c.innerHTML='<a class="f"></a><a class="b"></a>';c.getElementsByClassName("b").length;
|
||||
c.firstChild.className="b";z=(c.getElementsByClassName("b").length!=2);}catch(C){}try{c.innerHTML='<a class="a"></a><a class="f b a"></a>';y=(c.getElementsByClassName("a").length!=2);
|
||||
}catch(C){}s.brokenGEBCN=z||y;}if(c.querySelectorAll){try{c.innerHTML="foo</foo>";x=c.querySelectorAll("*");s.starSelectsClosedQSA=(x&&!!x.length&&x[0].nodeName.charAt(0)=="/");
|
||||
}catch(C){}try{c.innerHTML='<a class="MiX"></a>';s.brokenMixedCaseQSA=!c.querySelectorAll(".MiX").length;}catch(C){}try{c.innerHTML='<select><option selected="selected">a</option></select>';
|
||||
s.brokenCheckedQSA=(c.querySelectorAll(":checked").length==0);}catch(C){}try{c.innerHTML='<a class=""></a>';s.brokenEmptyAttributeQSA=(c.querySelectorAll('[class*=""]').length!=0);
|
||||
}catch(C){}}try{c.innerHTML='<form action="s"><input id="action"/></form>';t=(c.firstChild.getAttribute("action")!="s");}catch(C){}s.nativeMatchesSelector=A.matches||A.mozMatchesSelector||A.webkitMatchesSelector;
|
||||
if(s.nativeMatchesSelector){try{s.nativeMatchesSelector.call(A,":slick");s.nativeMatchesSelector=null;}catch(C){}}}try{A.slick_expando=1;delete A.slick_expando;
|
||||
s.getUID=this.getUIDHTML;}catch(C){s.getUID=this.getUIDXML;}n.removeChild(c);c=x=n=null;s.getAttribute=(s.isHTMLDocument&&t)?function(G,E){var H=this.attributeGetters[E];
|
||||
if(H){return H.call(G);}var F=G.getAttributeNode(E);return(F)?F.nodeValue:null;}:function(F,E){var G=this.attributeGetters[E];return(G)?G.call(F):F.getAttribute(E);
|
||||
};s.hasAttribute=(A&&this.isNativeCode(A.hasAttribute))?function(F,E){return F.hasAttribute(E);}:function(F,E){F=F.getAttributeNode(E);return !!(F&&(F.specified||F.nodeValue));
|
||||
};var D=A&&this.isNativeCode(A.contains),B=w&&this.isNativeCode(w.contains);s.contains=(D&&B)?function(E,F){return E.contains(F);}:(D&&!B)?function(E,F){return E===F||((E===w)?w.documentElement:E).contains(F);
|
||||
}:(A&&A.compareDocumentPosition)?function(E,F){return E===F||!!(E.compareDocumentPosition(F)&16);}:function(E,F){if(F){do{if(F===E){return true;}}while((F=F.parentNode));
|
||||
}return false;};s.documentSorter=(A.compareDocumentPosition)?function(F,E){if(!F.compareDocumentPosition||!E.compareDocumentPosition){return 0;}return F.compareDocumentPosition(E)&4?-1:F===E?0:1;
|
||||
}:("sourceIndex" in A)?function(F,E){if(!F.sourceIndex||!E.sourceIndex){return 0;}return F.sourceIndex-E.sourceIndex;}:(w.createRange)?function(H,F){if(!H.ownerDocument||!F.ownerDocument){return 0;
|
||||
}var G=H.ownerDocument.createRange(),E=F.ownerDocument.createRange();G.setStart(H,0);G.setEnd(H,0);E.setStart(F,0);E.setEnd(F,0);return G.compareBoundaryPoints(Range.START_TO_END,E);
|
||||
}:null;A=null;for(r in s){this[r]=s[r];}};var f=/^([#.]?)((?:[\w-]+|\*))$/,h=/\[.+[*$^]=(?:""|'')?\]/,g={};k.search=function(U,z,H,s){var p=this.found=(s)?null:(H||[]);
|
||||
if(!U){return p;}else{if(U.navigator){U=U.document;}else{if(!U.nodeType){return p;}}}var F,O,V=this.uniques={},I=!!(H&&H.length),y=(U.nodeType==9);if(this.document!==(y?U:U.ownerDocument)){this.setDocument(U);
|
||||
}if(I){for(O=p.length;O--;){V[this.getUID(p[O])]=true;}}if(typeof z=="string"){var r=z.match(f);simpleSelectors:if(r){var u=r[1],v=r[2],A,E;if(!u){if(v=="*"&&this.brokenStarGEBTN){break simpleSelectors;
|
||||
}E=U.getElementsByTagName(v);if(s){return E[0]||null;}for(O=0;A=E[O++];){if(!(I&&V[this.getUID(A)])){p.push(A);}}}else{if(u=="#"){if(!this.isHTMLDocument||!y){break simpleSelectors;
|
||||
}A=U.getElementById(v);if(!A){return p;}if(this.idGetsName&&A.getAttributeNode("id").nodeValue!=v){break simpleSelectors;}if(s){return A||null;}if(!(I&&V[this.getUID(A)])){p.push(A);
|
||||
}}else{if(u=="."){if(!this.isHTMLDocument||((!U.getElementsByClassName||this.brokenGEBCN)&&U.querySelectorAll)){break simpleSelectors;}if(U.getElementsByClassName&&!this.brokenGEBCN){E=U.getElementsByClassName(v);
|
||||
if(s){return E[0]||null;}for(O=0;A=E[O++];){if(!(I&&V[this.getUID(A)])){p.push(A);}}}else{var T=new RegExp("(^|\\s)"+e.escapeRegExp(v)+"(\\s|$)");E=U.getElementsByTagName("*");
|
||||
for(O=0;A=E[O++];){className=A.className;if(!(className&&T.test(className))){continue;}if(s){return A;}if(!(I&&V[this.getUID(A)])){p.push(A);}}}}}}if(I){this.sort(p);
|
||||
}return(s)?null:p;}querySelector:if(U.querySelectorAll){if(!this.isHTMLDocument||g[z]||this.brokenMixedCaseQSA||(this.brokenCheckedQSA&&z.indexOf(":checked")>-1)||(this.brokenEmptyAttributeQSA&&h.test(z))||(!y&&z.indexOf(",")>-1)||e.disableQSA){break querySelector;
|
||||
}var S=z,x=U;if(!y){var C=x.getAttribute("id"),t="slickid__";x.setAttribute("id",t);S="#"+t+" "+S;U=x.parentNode;}try{if(s){return U.querySelector(S)||null;
|
||||
}else{E=U.querySelectorAll(S);}}catch(Q){g[z]=1;break querySelector;}finally{if(!y){if(C){x.setAttribute("id",C);}else{x.removeAttribute("id");}U=x;}}if(this.starSelectsClosedQSA){for(O=0;
|
||||
A=E[O++];){if(A.nodeName>"@"&&!(I&&V[this.getUID(A)])){p.push(A);}}}else{for(O=0;A=E[O++];){if(!(I&&V[this.getUID(A)])){p.push(A);}}}if(I){this.sort(p);
|
||||
}return p;}F=this.Slick.parse(z);if(!F.length){return p;}}else{if(z==null){return p;}else{if(z.Slick){F=z;}else{if(this.contains(U.documentElement||U,z)){(p)?p.push(z):p=z;
|
||||
return p;}else{return p;}}}}this.posNTH={};this.posNTHLast={};this.posNTHType={};this.posNTHTypeLast={};this.push=(!I&&(s||(F.length==1&&F.expressions[0].length==1)))?this.pushArray:this.pushUID;
|
||||
if(p==null){p=[];}var M,L,K;var B,J,D,c,q,G,W;var N,P,o,w,R=F.expressions;search:for(O=0;(P=R[O]);O++){for(M=0;(o=P[M]);M++){B="combinator:"+o.combinator;
|
||||
if(!this[B]){continue search;}J=(this.isXMLDocument)?o.tag:o.tag.toUpperCase();D=o.id;c=o.classList;q=o.classes;G=o.attributes;W=o.pseudos;w=(M===(P.length-1));
|
||||
this.bitUniques={};if(w){this.uniques=V;this.found=p;}else{this.uniques={};this.found=[];}if(M===0){this[B](U,J,D,q,G,W,c);if(s&&w&&p.length){break search;
|
||||
}}else{if(s&&w){for(L=0,K=N.length;L<K;L++){this[B](N[L],J,D,q,G,W,c);if(p.length){break search;}}}else{for(L=0,K=N.length;L<K;L++){this[B](N[L],J,D,q,G,W,c);
|
||||
}}}N=this.found;}}if(I||(F.expressions.length>1)){this.sort(p);}return(s)?(p[0]||null):p;};k.uidx=1;k.uidk="slick-uniqueid";k.getUIDXML=function(n){var c=n.getAttribute(this.uidk);
|
||||
if(!c){c=this.uidx++;n.setAttribute(this.uidk,c);}return c;};k.getUIDHTML=function(c){return c.uniqueNumber||(c.uniqueNumber=this.uidx++);};k.sort=function(c){if(!this.documentSorter){return c;
|
||||
}c.sort(this.documentSorter);return c;};k.cacheNTH={};k.matchNTH=/^([+-]?\d*)?([a-z]+)?([+-]\d+)?$/;k.parseNTHArgument=function(q){var o=q.match(this.matchNTH);
|
||||
if(!o){return false;}var p=o[2]||false;var n=o[1]||1;if(n=="-"){n=-1;}var c=+o[3]||0;o=(p=="n")?{a:n,b:c}:(p=="odd")?{a:2,b:1}:(p=="even")?{a:2,b:0}:{a:0,b:n};
|
||||
return(this.cacheNTH[q]=o);};k.createNTHPseudo=function(p,n,c,o){return function(s,q){var u=this.getUID(s);if(!this[c][u]){var A=s.parentNode;if(!A){return false;
|
||||
}var r=A[p],t=1;if(o){var z=s.nodeName;do{if(r.nodeName!=z){continue;}this[c][this.getUID(r)]=t++;}while((r=r[n]));}else{do{if(r.nodeType!=1){continue;
|
||||
}this[c][this.getUID(r)]=t++;}while((r=r[n]));}}q=q||"n";var v=this.cacheNTH[q]||this.parseNTHArgument(q);if(!v){return false;}var y=v.a,x=v.b,w=this[c][u];
|
||||
if(y==0){return x==w;}if(y>0){if(w<x){return false;}}else{if(x<w){return false;}}return((w-x)%y)==0;};};k.pushArray=function(p,c,r,o,n,q){if(this.matchSelector(p,c,r,o,n,q)){this.found.push(p);
|
||||
}};k.pushUID=function(q,c,s,p,n,r){var o=this.getUID(q);if(!this.uniques[o]&&this.matchSelector(q,c,s,p,n,r)){this.uniques[o]=true;this.found.push(q);}};
|
||||
k.matchNode=function(n,o){if(this.isHTMLDocument&&this.nativeMatchesSelector){try{return this.nativeMatchesSelector.call(n,o.replace(/\[([^=]+)=\s*([^'"\]]+?)\s*\]/g,'[$1="$2"]'));
|
||||
}catch(u){}}var t=this.Slick.parse(o);if(!t){return true;}var r=t.expressions,s=0,q;for(q=0;(currentExpression=r[q]);q++){if(currentExpression.length==1){var p=currentExpression[0];
|
||||
if(this.matchSelector(n,(this.isXMLDocument)?p.tag:p.tag.toUpperCase(),p.id,p.classes,p.attributes,p.pseudos)){return true;}s++;}}if(s==t.length){return false;
|
||||
}var c=this.search(this.document,t),v;for(q=0;v=c[q++];){if(v===n){return true;}}return false;};k.matchPseudo=function(q,c,p){var n="pseudo:"+c;if(this[n]){return this[n](q,p);
|
||||
}var o=this.getAttribute(q,c);return(p)?p==o:!!o;};k.matchSelector=function(o,v,c,p,q,s){if(v){var t=(this.isXMLDocument)?o.nodeName:o.nodeName.toUpperCase();
|
||||
if(v=="*"){if(t<"@"){return false;}}else{if(t!=v){return false;}}}if(c&&o.getAttribute("id")!=c){return false;}var r,n,u;if(p){for(r=p.length;r--;){u=this.getAttribute(o,"class");
|
||||
if(!(u&&p[r].regexp.test(u))){return false;}}}if(q){for(r=q.length;r--;){n=q[r];if(n.operator?!n.test(this.getAttribute(o,n.key)):!this.hasAttribute(o,n.key)){return false;
|
||||
}}}if(s){for(r=s.length;r--;){n=s[r];if(!this.matchPseudo(o,n.key,n.value)){return false;}}}return true;};var j={" ":function(q,w,n,r,s,u,p){var t,v,o;
|
||||
if(this.isHTMLDocument){getById:if(n){v=this.document.getElementById(n);if((!v&&q.all)||(this.idGetsName&&v&&v.getAttributeNode("id").nodeValue!=n)){o=q.all[n];
|
||||
if(!o){return;}if(!o[0]){o=[o];}for(t=0;v=o[t++];){var c=v.getAttributeNode("id");if(c&&c.nodeValue==n){this.push(v,w,null,r,s,u);break;}}return;}if(!v){if(this.contains(this.root,q)){return;
|
||||
}else{break getById;}}else{if(this.document!==q&&!this.contains(q,v)){return;}}this.push(v,w,null,r,s,u);return;}getByClass:if(r&&q.getElementsByClassName&&!this.brokenGEBCN){o=q.getElementsByClassName(p.join(" "));
|
||||
if(!(o&&o.length)){break getByClass;}for(t=0;v=o[t++];){this.push(v,w,n,null,s,u);}return;}}getByTag:{o=q.getElementsByTagName(w);if(!(o&&o.length)){break getByTag;
|
||||
}if(!this.brokenStarGEBTN){w=null;}for(t=0;v=o[t++];){this.push(v,w,n,r,s,u);}}},">":function(p,c,r,o,n,q){if((p=p.firstChild)){do{if(p.nodeType==1){this.push(p,c,r,o,n,q);
|
||||
}}while((p=p.nextSibling));}},"+":function(p,c,r,o,n,q){while((p=p.nextSibling)){if(p.nodeType==1){this.push(p,c,r,o,n,q);break;}}},"^":function(p,c,r,o,n,q){p=p.firstChild;
|
||||
if(p){if(p.nodeType==1){this.push(p,c,r,o,n,q);}else{this["combinator:+"](p,c,r,o,n,q);}}},"~":function(q,c,s,p,n,r){while((q=q.nextSibling)){if(q.nodeType!=1){continue;
|
||||
}var o=this.getUID(q);if(this.bitUniques[o]){break;}this.bitUniques[o]=true;this.push(q,c,s,p,n,r);}},"++":function(p,c,r,o,n,q){this["combinator:+"](p,c,r,o,n,q);
|
||||
this["combinator:!+"](p,c,r,o,n,q);},"~~":function(p,c,r,o,n,q){this["combinator:~"](p,c,r,o,n,q);this["combinator:!~"](p,c,r,o,n,q);},"!":function(p,c,r,o,n,q){while((p=p.parentNode)){if(p!==this.document){this.push(p,c,r,o,n,q);
|
||||
}}},"!>":function(p,c,r,o,n,q){p=p.parentNode;if(p!==this.document){this.push(p,c,r,o,n,q);}},"!+":function(p,c,r,o,n,q){while((p=p.previousSibling)){if(p.nodeType==1){this.push(p,c,r,o,n,q);
|
||||
break;}}},"!^":function(p,c,r,o,n,q){p=p.lastChild;if(p){if(p.nodeType==1){this.push(p,c,r,o,n,q);}else{this["combinator:!+"](p,c,r,o,n,q);}}},"!~":function(q,c,s,p,n,r){while((q=q.previousSibling)){if(q.nodeType!=1){continue;
|
||||
}var o=this.getUID(q);if(this.bitUniques[o]){break;}this.bitUniques[o]=true;this.push(q,c,s,p,n,r);}}};for(var i in j){k["combinator:"+i]=j[i];}var l={empty:function(c){var n=c.firstChild;
|
||||
return !(n&&n.nodeType==1)&&!(c.innerText||c.textContent||"").length;},not:function(c,n){return !this.matchNode(c,n);},contains:function(c,n){return(c.innerText||c.textContent||"").indexOf(n)>-1;
|
||||
},"first-child":function(c){while((c=c.previousSibling)){if(c.nodeType==1){return false;}}return true;},"last-child":function(c){while((c=c.nextSibling)){if(c.nodeType==1){return false;
|
||||
}}return true;},"only-child":function(o){var n=o;while((n=n.previousSibling)){if(n.nodeType==1){return false;}}var c=o;while((c=c.nextSibling)){if(c.nodeType==1){return false;
|
||||
}}return true;},"nth-child":k.createNTHPseudo("firstChild","nextSibling","posNTH"),"nth-last-child":k.createNTHPseudo("lastChild","previousSibling","posNTHLast"),"nth-of-type":k.createNTHPseudo("firstChild","nextSibling","posNTHType",true),"nth-last-of-type":k.createNTHPseudo("lastChild","previousSibling","posNTHTypeLast",true),index:function(n,c){return this["pseudo:nth-child"](n,""+(c+1));
|
||||
},even:function(c){return this["pseudo:nth-child"](c,"2n");},odd:function(c){return this["pseudo:nth-child"](c,"2n+1");},"first-of-type":function(c){var n=c.nodeName;
|
||||
while((c=c.previousSibling)){if(c.nodeName==n){return false;}}return true;},"last-of-type":function(c){var n=c.nodeName;while((c=c.nextSibling)){if(c.nodeName==n){return false;
|
||||
}}return true;},"only-of-type":function(o){var n=o,p=o.nodeName;while((n=n.previousSibling)){if(n.nodeName==p){return false;}}var c=o;while((c=c.nextSibling)){if(c.nodeName==p){return false;
|
||||
}}return true;},enabled:function(c){return !c.disabled;},disabled:function(c){return c.disabled;},checked:function(c){return c.checked||c.selected;},focus:function(c){return this.isHTMLDocument&&this.document.activeElement===c&&(c.href||c.type||this.hasAttribute(c,"tabindex"));
|
||||
},root:function(c){return(c===this.root);},selected:function(c){return c.selected;}};for(var b in l){k["pseudo:"+b]=l[b];}var a=k.attributeGetters={"for":function(){return("htmlFor" in this)?this.htmlFor:this.getAttribute("for");
|
||||
},href:function(){return("href" in this)?this.getAttribute("href",2):this.getAttribute("href");},style:function(){return(this.style)?this.style.cssText:this.getAttribute("style");
|
||||
},tabindex:function(){var c=this.getAttributeNode("tabindex");return(c&&c.specified)?c.nodeValue:null;},type:function(){return this.getAttribute("type");
|
||||
},maxlength:function(){var c=this.getAttributeNode("maxLength");return(c&&c.specified)?c.nodeValue:null;}};a.MAXLENGTH=a.maxLength=a.maxlength;var e=k.Slick=(this.Slick||{});
|
||||
e.version="1.1.7";e.search=function(n,o,c){return k.search(n,o,c);};e.find=function(c,n){return k.search(c,n,null,true);};e.contains=function(c,n){k.setDocument(c);
|
||||
return k.contains(c,n);};e.getAttribute=function(n,c){k.setDocument(n);return k.getAttribute(n,c);};e.hasAttribute=function(n,c){k.setDocument(n);return k.hasAttribute(n,c);
|
||||
};e.match=function(n,c){if(!(n&&c)){return false;}if(!c||c===n){return true;}k.setDocument(n);return k.matchNode(n,c);};e.defineAttributeGetter=function(c,n){k.attributeGetters[c]=n;
|
||||
return this;};e.lookupAttributeGetter=function(c){return k.attributeGetters[c];};e.definePseudo=function(c,n){k["pseudo:"+c]=function(p,o){return n.call(p,o);
|
||||
};return this;};e.lookupPseudo=function(c){var n=k["pseudo:"+c];if(n){return function(o){return n.call(this,o);};}return null;};e.override=function(n,c){k.override(n,c);
|
||||
return this;};e.isXML=k.isXML;e.uidOf=function(c){return k.getUIDHTML(c);};if(!this.Slick){this.Slick=e;}}).apply((typeof exports!="undefined")?exports:this);
|
||||
var Element=this.Element=function(b,g){var h=Element.Constructors[b];if(h){return h(g);}if(typeof b!="string"){return document.id(b).set(g);}if(!g){g={};
|
||||
}if(!(/^[\w-]+$/).test(b)){var e=Slick.parse(b).expressions[0][0];b=(e.tag=="*")?"div":e.tag;if(e.id&&g.id==null){g.id=e.id;}var d=e.attributes;if(d){for(var a,f=0,c=d.length;
|
||||
f<c;f++){a=d[f];if(g[a.key]!=null){continue;}if(a.value!=null&&a.operator=="="){g[a.key]=a.value;}else{if(!a.value&&!a.operator){g[a.key]=true;}}}}if(e.classList&&g["class"]==null){g["class"]=e.classList.join(" ");
|
||||
}}return document.newElement(b,g);};if(Browser.Element){Element.prototype=Browser.Element.prototype;Element.prototype._fireEvent=(function(a){return function(b,c){return a.call(this,b,c);
|
||||
};})(Element.prototype.fireEvent);}new Type("Element",Element).mirror(function(a){if(Array.prototype[a]){return;}var b={};b[a]=function(){var h=[],e=arguments,j=true;
|
||||
for(var g=0,d=this.length;g<d;g++){var f=this[g],c=h[g]=f[a].apply(f,e);j=(j&&typeOf(c)=="element");}return(j)?new Elements(h):h;};Elements.implement(b);
|
||||
});if(!Browser.Element){Element.parent=Object;Element.Prototype={"$constructor":Element,"$family":Function.from("element").hide()};Element.mirror(function(a,b){Element.Prototype[a]=b;
|
||||
});}Element.Constructors={};Element.Constructors=new Hash;var IFrame=new Type("IFrame",function(){var e=Array.link(arguments,{properties:Type.isObject,iframe:function(f){return(f!=null);
|
||||
}});var c=e.properties||{},b;if(e.iframe){b=document.id(e.iframe);}var d=c.onload||function(){};delete c.onload;c.id=c.name=[c.id,c.name,b?(b.id||b.name):"IFrame_"+String.uniqueID()].pick();
|
||||
b=new Element(b||"iframe",c);var a=function(){d.call(b.contentWindow);};if(window.frames[c.id]){a();}else{b.addListener("load",a);}return b;});var Elements=this.Elements=function(a){if(a&&a.length){var e={},d;
|
||||
for(var c=0;d=a[c++];){var b=Slick.uidOf(d);if(!e[b]){e[b]=true;this.push(d);}}}};Elements.prototype={length:0};Elements.parent=Array;new Type("Elements",Elements).implement({filter:function(a,b){if(!a){return this;
|
||||
}return new Elements(Array.filter(this,(typeOf(a)=="string")?function(c){return c.match(a);}:a,b));}.protect(),push:function(){var d=this.length;for(var b=0,a=arguments.length;
|
||||
b<a;b++){var c=document.id(arguments[b]);if(c){this[d++]=c;}}return(this.length=d);}.protect(),unshift:function(){var b=[];for(var c=0,a=arguments.length;
|
||||
c<a;c++){var d=document.id(arguments[c]);if(d){b.push(d);}}return Array.prototype.unshift.apply(this,b);}.protect(),concat:function(){var b=new Elements(this);
|
||||
for(var c=0,a=arguments.length;c<a;c++){var d=arguments[c];if(Type.isEnumerable(d)){b.append(d);}else{b.push(d);}}return b;}.protect(),append:function(c){for(var b=0,a=c.length;
|
||||
b<a;b++){this.push(c[b]);}return this;}.protect(),empty:function(){while(this.length){delete this[--this.length];}return this;}.protect()});Elements.alias("extend","append");
|
||||
(function(){var f=Array.prototype.splice,a={"0":0,"1":1,length:2};f.call(a,1,1);if(a[1]==1){Elements.implement("splice",function(){var g=this.length;var e=f.apply(this,arguments);
|
||||
while(g>=this.length){delete this[g--];}return e;}.protect());}Array.forEachMethod(function(g,e){Elements.implement(e,g);});Array.mirror(Elements);var d;
|
||||
try{d=(document.createElement("<input name=x>").name=="x");}catch(b){}var c=function(e){return(""+e).replace(/&/g,"&").replace(/"/g,""");};Document.implement({newElement:function(e,g){if(g&&g.checked!=null){g.defaultChecked=g.checked;
|
||||
}if(d&&g){e="<"+e;if(g.name){e+=' name="'+c(g.name)+'"';}if(g.type){e+=' type="'+c(g.type)+'"';}e+=">";delete g.name;delete g.type;}return this.id(this.createElement(e)).set(g);
|
||||
}});})();(function(){Slick.uidOf(window);Slick.uidOf(document);Document.implement({newTextNode:function(e){return this.createTextNode(e);},getDocument:function(){return this;
|
||||
},getWindow:function(){return this.window;},id:(function(){var e={string:function(L,K,l){L=Slick.find(l,"#"+L.replace(/(\W)/g,"\\$1"));return(L)?e.element(L,K):null;
|
||||
},element:function(K,L){Slick.uidOf(K);if(!L&&!K.$family&&!(/^(?:object|embed)$/i).test(K.tagName)){var l=K.fireEvent;K._fireEvent=function(M,N){return l(M,N);
|
||||
};Object.append(K,Element.Prototype);}return K;},object:function(K,L,l){if(K.toElement){return e.element(K.toElement(l),L);}return null;}};e.textnode=e.whitespace=e.window=e.document=function(l){return l;
|
||||
};return function(K,M,L){if(K&&K.$family&&K.uniqueNumber){return K;}var l=typeOf(K);return(e[l])?e[l](K,M,L||document):null;};})()});if(window.$==null){Window.implement("$",function(e,l){return document.id(e,l,this.document);
|
||||
});}Window.implement({getDocument:function(){return this.document;},getWindow:function(){return this;}});[Document,Element].invoke("implement",{getElements:function(e){return Slick.search(this,e,new Elements);
|
||||
},getElement:function(e){return document.id(Slick.find(this,e));}});var p={contains:function(e){return Slick.contains(this,e);}};if(!document.contains){Document.implement(p);
|
||||
}if(!document.createElement("div").contains){Element.implement(p);}Element.implement("hasChild",function(e){return this!==e&&this.contains(e);});(function(l,L,e){this.Selectors={};
|
||||
var M=this.Selectors.Pseudo=new Hash();var K=function(){for(var N in M){if(M.hasOwnProperty(N)){Slick.definePseudo(N,M[N]);delete M[N];}}};Slick.search=function(O,P,N){K();
|
||||
return l.call(this,O,P,N);};Slick.find=function(N,O){K();return L.call(this,N,O);};Slick.match=function(O,N){K();return e.call(this,O,N);};})(Slick.search,Slick.find,Slick.match);
|
||||
var v=function(L,K){if(!L){return K;}L=Object.clone(Slick.parse(L));var l=L.expressions;for(var e=l.length;e--;){l[e][0].combinator=K;}return L;};Object.forEach({getNext:"~",getPrevious:"!~",getParent:"!"},function(e,l){Element.implement(l,function(K){return this.getElement(v(K,e));
|
||||
});});Object.forEach({getAllNext:"~",getAllPrevious:"!~",getSiblings:"~~",getChildren:">",getParents:"!"},function(e,l){Element.implement(l,function(K){return this.getElements(v(K,e));
|
||||
});});Element.implement({getFirst:function(e){return document.id(Slick.search(this,v(e,">"))[0]);},getLast:function(e){return document.id(Slick.search(this,v(e,">")).getLast());
|
||||
},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;},getElementById:function(e){return document.id(Slick.find(this,"#"+(""+e).replace(/(\W)/g,"\\$1")));
|
||||
},match:function(e){return !e||Slick.match(this,e);}});if(window.$$==null){Window.implement("$$",function(e){var O=new Elements;if(arguments.length==1&&typeof e=="string"){return Slick.search(this.document,e,O);
|
||||
}var L=Array.flatten(arguments);for(var M=0,K=L.length;M<K;M++){var N=L[M];switch(typeOf(N)){case"element":O.push(N);break;case"string":Slick.search(this.document,N,O);
|
||||
}}return O;});}if(window.$$==null){Window.implement("$$",function(e){if(arguments.length==1){if(typeof e=="string"){return Slick.search(this.document,e,new Elements);
|
||||
}else{if(Type.isEnumerable(e)){return new Elements(e);}}}return new Elements(arguments);});}var A={before:function(l,e){var K=e.parentNode;if(K){K.insertBefore(l,e);
|
||||
}},after:function(l,e){var K=e.parentNode;if(K){K.insertBefore(l,e.nextSibling);}},bottom:function(l,e){e.appendChild(l);},top:function(l,e){e.insertBefore(l,e.firstChild);
|
||||
}};A.inside=A.bottom;Object.each(A,function(l,K){K=K.capitalize();var e={};e["inject"+K]=function(L){l(this,document.id(L,true));return this;};e["grab"+K]=function(L){l(document.id(L,true),this);
|
||||
return this;};Element.implement(e);});var n={},d={};var o={};Array.forEach(["type","value","defaultValue","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","rowSpan","tabIndex","useMap"],function(e){o[e.toLowerCase()]=e;
|
||||
});o.html="innerHTML";o.text=(document.createElement("div").textContent==null)?"innerText":"textContent";Object.forEach(o,function(l,e){d[e]=function(K,L){K[l]=L;
|
||||
};n[e]=function(K){return K[l];};});var B=["compact","nowrap","ismap","declare","noshade","checked","disabled","readOnly","multiple","selected","noresize","defer","defaultChecked","autofocus","controls","autoplay","loop"];
|
||||
var k={};Array.forEach(B,function(e){var l=e.toLowerCase();k[l]=e;d[l]=function(K,L){K[e]=!!L;};n[l]=function(K){return !!K[e];};});Object.append(d,{"class":function(e,l){("className" in e)?e.className=(l||""):e.setAttribute("class",l);
|
||||
},"for":function(e,l){("htmlFor" in e)?e.htmlFor=l:e.setAttribute("for",l);},style:function(e,l){(e.style)?e.style.cssText=l:e.setAttribute("style",l);
|
||||
},value:function(e,l){e.value=(l!=null)?l:"";}});n["class"]=function(e){return("className" in e)?e.className||null:e.getAttribute("class");};var f=document.createElement("button");
|
||||
try{f.type="button";}catch(E){}if(f.type!="button"){d.type=function(e,l){e.setAttribute("type",l);};}f=null;var s=document.createElement("input");s.value="t";
|
||||
s.type="submit";if(s.value!="t"){d.type=function(l,e){var K=l.value;l.type=e;l.value=K;};}s=null;var u=(function(e){e.random="attribute";return(e.getAttribute("random")=="attribute");
|
||||
})(document.createElement("div"));var i=(function(e){e.innerHTML='<object><param name="should_fix" value="the unknown"></object>';return e.cloneNode(true).firstChild.childNodes.length!=1;
|
||||
})(document.createElement("div"));var j=!!document.createElement("div").classList;var F=function(e){var l=(e||"").clean().split(" "),K={};return l.filter(function(L){if(L!==""&&!K[L]){return K[L]=L;
|
||||
}});};var t=function(e){this.classList.add(e);};var g=function(e){this.classList.remove(e);};Element.implement({setProperty:function(l,K){var L=d[l.toLowerCase()];
|
||||
if(L){L(this,K);}else{var e;if(u){e=this.retrieve("$attributeWhiteList",{});}if(K==null){this.removeAttribute(l);if(u){delete e[l];}}else{this.setAttribute(l,""+K);
|
||||
if(u){e[l]=true;}}}return this;},setProperties:function(e){for(var l in e){this.setProperty(l,e[l]);}return this;},getProperty:function(M){var K=n[M.toLowerCase()];
|
||||
if(K){return K(this);}if(u){var l=this.getAttributeNode(M),L=this.retrieve("$attributeWhiteList",{});if(!l){return null;}if(l.expando&&!L[M]){var N=this.outerHTML;
|
||||
if(N.substr(0,N.search(/\/?['"]?>(?![^<]*<['"])/)).indexOf(M)<0){return null;}L[M]=true;}}var e=Slick.getAttribute(this,M);return(!e&&!Slick.hasAttribute(this,M))?null:e;
|
||||
},getProperties:function(){var e=Array.from(arguments);return e.map(this.getProperty,this).associate(e);},removeProperty:function(e){return this.setProperty(e,null);
|
||||
},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;},set:function(K,l){var e=Element.Properties[K];(e&&e.set)?e.set.call(this,l):this.setProperty(K,l);
|
||||
}.overloadSetter(),get:function(l){var e=Element.Properties[l];return(e&&e.get)?e.get.apply(this):this.getProperty(l);}.overloadGetter(),erase:function(l){var e=Element.Properties[l];
|
||||
(e&&e.erase)?e.erase.apply(this):this.removeProperty(l);return this;},hasClass:j?function(e){return this.classList.contains(e);}:function(e){return this.className.clean().contains(e," ");
|
||||
},addClass:j?function(e){F(e).forEach(t,this);return this;}:function(e){this.className=F(e+" "+this.className).join(" ");return this;},removeClass:j?function(e){F(e).forEach(g,this);
|
||||
return this;}:function(e){var l=F(this.className);F(e).forEach(l.erase,l);this.className=l.join(" ");return this;},toggleClass:function(e,l){if(l==null){l=!this.hasClass(e);
|
||||
}return(l)?this.addClass(e):this.removeClass(e);},adopt:function(){var L=this,e,N=Array.flatten(arguments),M=N.length;if(M>1){L=e=document.createDocumentFragment();
|
||||
}for(var K=0;K<M;K++){var l=document.id(N[K],true);if(l){L.appendChild(l);}}if(e){this.appendChild(e);}return this;},appendText:function(l,e){return this.grab(this.getDocument().newTextNode(l),e);
|
||||
},grab:function(l,e){A[e||"bottom"](document.id(l,true),this);return this;},inject:function(l,e){A[e||"bottom"](this,document.id(l,true));return this;},replaces:function(e){e=document.id(e,true);
|
||||
e.parentNode.replaceChild(this,e);return this;},wraps:function(l,e){l=document.id(l,true);return this.replaces(l).grab(l,e);},getSelected:function(){this.selectedIndex;
|
||||
return new Elements(Array.from(this.options).filter(function(e){return e.selected;}));},toQueryString:function(){var e=[];this.getElements("input, select, textarea").each(function(K){var l=K.type;
|
||||
if(!K.name||K.disabled||l=="submit"||l=="reset"||l=="file"||l=="image"){return;}var L=(K.get("tag")=="select")?K.getSelected().map(function(M){return document.id(M).get("value");
|
||||
}):((l=="radio"||l=="checkbox")&&!K.checked)?null:K.get("value");Array.from(L).each(function(M){if(typeof M!="undefined"){e.push(encodeURIComponent(K.name)+"="+encodeURIComponent(M));
|
||||
}});});return e.join("&");}});var I={before:"beforeBegin",after:"afterEnd",bottom:"beforeEnd",top:"afterBegin",inside:"beforeEnd"};Element.implement("appendHTML",("insertAdjacentHTML" in document.createElement("div"))?function(l,e){this.insertAdjacentHTML(I[e||"bottom"],l);
|
||||
return this;}:function(P,M){var K=new Element("div",{html:P}),O=K.childNodes,L=K.firstChild;if(!L){return this;}if(O.length>1){L=document.createDocumentFragment();
|
||||
for(var N=0,e=O.length;N<e;N++){L.appendChild(O[N]);}}A[M||"bottom"](L,this);return this;});var m={},D={};var G=function(e){return(D[e]||(D[e]={}));};var z=function(l){var e=l.uniqueNumber;
|
||||
if(l.removeEvents){l.removeEvents();}if(l.clearAttributes){l.clearAttributes();}if(e!=null){delete m[e];delete D[e];}return l;};var H={input:"checked",option:"selected",textarea:"value"};
|
||||
Element.implement({destroy:function(){var e=z(this).getElementsByTagName("*");Array.each(e,z);Element.dispose(this);return null;},empty:function(){Array.from(this.childNodes).each(Element.dispose);
|
||||
return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},clone:function(N,L){N=N!==false;var S=this.cloneNode(N),K=[S],M=[this],Q;
|
||||
if(N){K.append(Array.from(S.getElementsByTagName("*")));M.append(Array.from(this.getElementsByTagName("*")));}for(Q=K.length;Q--;){var O=K[Q],R=M[Q];if(!L){O.removeAttribute("id");
|
||||
}if(O.clearAttributes){O.clearAttributes();O.mergeAttributes(R);O.removeAttribute("uniqueNumber");if(O.options){var V=O.options,e=R.options;for(var P=V.length;
|
||||
P--;){V[P].selected=e[P].selected;}}}var l=H[R.tagName.toLowerCase()];if(l&&R[l]){O[l]=R[l];}}if(i){var T=S.getElementsByTagName("object"),U=this.getElementsByTagName("object");
|
||||
for(Q=T.length;Q--;){T[Q].outerHTML=U[Q].outerHTML;}}return document.id(S);}});[Element,Window,Document].invoke("implement",{addListener:function(l,e){if(window.attachEvent&&!window.addEventListener){m[Slick.uidOf(this)]=this;
|
||||
}if(this.addEventListener){this.addEventListener(l,e,!!arguments[2]);}else{this.attachEvent("on"+l,e);}return this;},removeListener:function(l,e){if(this.removeEventListener){this.removeEventListener(l,e,!!arguments[2]);
|
||||
}else{this.detachEvent("on"+l,e);}return this;},retrieve:function(l,e){var L=G(Slick.uidOf(this)),K=L[l];if(e!=null&&K==null){K=L[l]=e;}return K!=null?K:null;
|
||||
},store:function(l,e){var K=G(Slick.uidOf(this));K[l]=e;return this;},eliminate:function(e){var l=G(Slick.uidOf(this));delete l[e];return this;}});if(window.attachEvent&&!window.addEventListener){var J=function(){Object.each(m,z);
|
||||
if(window.CollectGarbage){CollectGarbage();}window.removeListener("unload",J);};window.addListener("unload",J);}Element.Properties={};Element.Properties=new Hash;
|
||||
Element.Properties.style={set:function(e){this.style.cssText=e;},get:function(){return this.style.cssText;},erase:function(){this.style.cssText="";}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();
|
||||
}};Element.Properties.html={set:function(e){if(e==null){e="";}else{if(typeOf(e)=="array"){e=e.join("");}}this.innerHTML=e;},erase:function(){this.innerHTML="";
|
||||
}};var a=true,h=true,C=true;var x=document.createElement("div");x.innerHTML="<nav></nav>";a=(x.childNodes.length==1);if(!a){var w="abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video".split(" "),b=document.createDocumentFragment(),y=w.length;
|
||||
while(y--){b.createElement(w[y]);}}x=null;h=Function.attempt(function(){var e=document.createElement("table");e.innerHTML="<tr><td></td></tr>";return true;
|
||||
});var c=document.createElement("tr"),r="<td></td>";c.innerHTML=r;C=(c.innerHTML==r);c=null;if(!h||!C||!a){Element.Properties.html.set=(function(l){var e={table:[1,"<table>","</table>"],select:[1,"<select>","</select>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"]};
|
||||
e.thead=e.tfoot=e.tbody;return function(K){var L=e[this.get("tag")];if(!L&&!a){L=[0,"",""];}if(!L){return l.call(this,K);}var O=L[0],N=document.createElement("div"),M=N;
|
||||
if(!a){b.appendChild(N);}N.innerHTML=[L[1],K,L[2]].flatten().join("");while(O--){M=M.firstChild;}this.empty().adopt(M.childNodes);if(!a){b.removeChild(N);
|
||||
}N=null;};})(Element.Properties.html.set);}var q=document.createElement("form");q.innerHTML="<select><option>s</option></select>";if(q.firstChild.value!="s"){Element.Properties.value={set:function(N){var l=this.get("tag");
|
||||
if(l!="select"){return this.setProperty("value",N);}var K=this.getElements("option");N=String(N);for(var L=0;L<K.length;L++){var M=K[L],e=M.getAttributeNode("value"),O=(e&&e.specified)?M.value:M.get("text");
|
||||
if(O===N){return M.selected=true;}}},get:function(){var K=this,l=K.get("tag");if(l!="select"&&l!="option"){return this.getProperty("value");}if(l=="select"&&!(K=K.getSelected()[0])){return"";
|
||||
}var e=K.getAttributeNode("value");return(e&&e.specified)?K.value:K.get("text");}};}q=null;if(document.createElement("div").getAttributeNode("id")){Element.Properties.id={set:function(e){this.id=this.getAttributeNode("id").value=e;
|
||||
},get:function(){return this.id||null;},erase:function(){this.id=this.getAttributeNode("id").value="";}};}})();(function(){var l=document.html,f;f=document.createElement("div");
|
||||
f.style.color="red";f.style.color=null;var e=f.style.color=="red";var k="1px solid #123abc";f.style.border=k;var o=f.style.border!=k;f=null;var n=!!window.getComputedStyle;
|
||||
Element.Properties.styles={set:function(r){this.setStyles(r);}};var j=(l.style.opacity!=null),g=(l.style.filter!=null),q=/alpha\(opacity=([\d.]+)\)/i;var b=function(s,r){s.store("$opacity",r);
|
||||
s.style.visibility=r>0||r==null?"visible":"hidden";};var p=function(r,v,u){var t=r.style,s=t.filter||r.getComputedStyle("filter")||"";t.filter=(v.test(s)?s.replace(v,u):s+" "+u).trim();
|
||||
if(!t.filter){t.removeAttribute("filter");}};var h=(j?function(s,r){s.style.opacity=r;}:(g?function(s,r){if(!s.currentStyle||!s.currentStyle.hasLayout){s.style.zoom=1;
|
||||
}if(r==null||r==1){p(s,q,"");if(r==1&&i(s)!=1){p(s,q,"alpha(opacity=100)");}}else{p(s,q,"alpha(opacity="+(r*100).limit(0,100).round()+")");}}:b));var i=(j?function(s){var r=s.style.opacity||s.getComputedStyle("opacity");
|
||||
return(r=="")?1:r.toFloat();}:(g?function(s){var t=(s.style.filter||s.getComputedStyle("filter")),r;if(t){r=t.match(q);}return(r==null||t==null)?1:(r[1]/100);
|
||||
}:function(s){var r=s.retrieve("$opacity");if(r==null){r=(s.style.visibility=="hidden"?0:1);}return r;}));var d=(l.style.cssFloat==null)?"styleFloat":"cssFloat",a={left:"0%",top:"0%",center:"50%",right:"100%",bottom:"100%"},c=(l.style.backgroundPositionX!=null);
|
||||
var m=function(r,s){if(s=="backgroundPosition"){r.removeAttribute(s+"X");s+="Y";}r.removeAttribute(s);};Element.implement({getComputedStyle:function(t){if(!n&&this.currentStyle){return this.currentStyle[t.camelCase()];
|
||||
}var s=Element.getDocument(this).defaultView,r=s?s.getComputedStyle(this,null):null;return(r)?r.getPropertyValue((t==d)?"float":t.hyphenate()):"";},setStyle:function(s,r){if(s=="opacity"){if(r!=null){r=parseFloat(r);
|
||||
}h(this,r);return this;}s=(s=="float"?d:s).camelCase();if(typeOf(r)!="string"){var t=(Element.Styles[s]||"@").split(" ");r=Array.from(r).map(function(v,u){if(!t[u]){return"";
|
||||
}return(typeOf(v)=="number")?t[u].replace("@",Math.round(v)):v;}).join(" ");}else{if(r==String(Number(r))){r=Math.round(r);}}this.style[s]=r;if((r==""||r==null)&&e&&this.style.removeAttribute){m(this.style,s);
|
||||
}return this;},getStyle:function(x){if(x=="opacity"){return i(this);}x=(x=="float"?d:x).camelCase();var r=this.style[x];if(!r||x=="zIndex"){if(Element.ShortStyles.hasOwnProperty(x)){r=[];
|
||||
for(var w in Element.ShortStyles[x]){r.push(this.getStyle(w));}return r.join(" ");}r=this.getComputedStyle(x);}if(c&&/^backgroundPosition[XY]?$/.test(x)){return r.replace(/(top|right|bottom|left)/g,function(s){return a[s];
|
||||
})||"0px";}if(!r&&x=="backgroundPosition"){return"0px 0px";}if(r){r=String(r);var u=r.match(/rgba?\([\d\s,]+\)/);if(u){r=r.replace(u[0],u[0].rgbToHex());
|
||||
}}if(!n&&!this.style[x]){if((/^(height|width)$/).test(x)&&!(/px$/.test(r))){var t=(x=="width")?["left","right"]:["top","bottom"],v=0;t.each(function(s){v+=this.getStyle("border-"+s+"-width").toInt()+this.getStyle("padding-"+s).toInt();
|
||||
},this);return this["offset"+x.capitalize()]-v+"px";}if((/^border(.+)Width|margin|padding/).test(x)&&isNaN(parseFloat(r))){return"0px";}}if(o&&/^border(Top|Right|Bottom|Left)?$/.test(x)&&/^#/.test(r)){return r.replace(/^(.+)\s(.+)\s(.+)$/,"$2 $3 $1");
|
||||
}return r;},setStyles:function(s){for(var r in s){this.setStyle(r,s[r]);}return this;},getStyles:function(){var r={};Array.flatten(arguments).each(function(s){r[s]=this.getStyle(s);
|
||||
},this);return r;}});Element.Styles={left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundSize:"@px",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"};
|
||||
Element.implement({setOpacity:function(r){h(this,r);return this;},getOpacity:function(){return i(this);}});Element.Properties.opacity={set:function(r){h(this,r);
|
||||
b(this,r);},get:function(){return i(this);}};Element.Styles=new Hash(Element.Styles);Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};
|
||||
["Top","Right","Bottom","Left"].each(function(x){var w=Element.ShortStyles;var s=Element.Styles;["margin","padding"].each(function(y){var z=y+x;w[y][z]=s[z]="@px";
|
||||
});var v="border"+x;w.border[v]=s[v]="@px @ rgb(@, @, @)";var u=v+"Width",r=v+"Style",t=v+"Color";w[v]={};w.borderWidth[u]=w[v][u]=s[u]="@px";w.borderStyle[r]=w[v][r]=s[r]="@";
|
||||
w.borderColor[t]=w[v][t]=s[t]="rgb(@, @, @)";});if(c){Element.ShortStyles.backgroundPosition={backgroundPositionX:"@",backgroundPositionY:"@"};}})();(function(){Element.Properties.events={set:function(b){this.addEvents(b);
|
||||
}};[Element,Window,Document].invoke("implement",{addEvent:function(f,h){var i=this.retrieve("events",{});if(!i[f]){i[f]={keys:[],values:[]};}if(i[f].keys.contains(h)){return this;
|
||||
}i[f].keys.push(h);var g=f,b=Element.Events[f],d=h,j=this;if(b){if(b.onAdd){b.onAdd.call(this,h,f);}if(b.condition){d=function(k){if(b.condition.call(this,k,f)){return h.call(this,k);
|
||||
}return true;};}if(b.base){g=Function.from(b.base).call(this,f);}}var e=function(){return h.call(j);};var c=Element.NativeEvents[g];if(c){if(c==2){e=function(k){k=new DOMEvent(k,j.getWindow());
|
||||
if(d.call(j,k)===false){k.stop();}};}this.addListener(g,e,arguments[2]);}i[f].values.push(e);return this;},removeEvent:function(e,d){var c=this.retrieve("events");
|
||||
if(!c||!c[e]){return this;}var h=c[e];var b=h.keys.indexOf(d);if(b==-1){return this;}var g=h.values[b];delete h.keys[b];delete h.values[b];var f=Element.Events[e];
|
||||
if(f){if(f.onRemove){f.onRemove.call(this,d,e);}if(f.base){e=Function.from(f.base).call(this,e);}}return(Element.NativeEvents[e])?this.removeListener(e,g,arguments[2]):this;
|
||||
},addEvents:function(b){for(var c in b){this.addEvent(c,b[c]);}return this;},removeEvents:function(b){var d;if(typeOf(b)=="object"){for(d in b){this.removeEvent(d,b[d]);
|
||||
}return this;}var c=this.retrieve("events");if(!c){return this;}if(!b){for(d in c){this.removeEvents(d);}this.eliminate("events");}else{if(c[b]){c[b].keys.each(function(e){this.removeEvent(b,e);
|
||||
},this);delete c[b];}}return this;},fireEvent:function(e,c,b){var d=this.retrieve("events");if(!d||!d[e]){return this;}c=Array.from(c);d[e].keys.each(function(f){if(b){f.delay(b,this,c);
|
||||
}else{f.apply(this,c);}},this);return this;},cloneEvents:function(e,d){e=document.id(e);var c=e.retrieve("events");if(!c){return this;}if(!d){for(var b in c){this.cloneEvents(e,b);
|
||||
}}else{if(c[d]){c[d].keys.each(function(f){this.addEvent(d,f);},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,orientationchange:2,touchstart:2,touchmove:2,touchend:2,touchcancel:2,gesturestart:2,gesturechange:2,gestureend:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,paste:2,input:2,load:2,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,hashchange:1,popstate:2,error:1,abort:1,scroll:1};
|
||||
Element.Events={mousewheel:{base:"onwheel" in document?"wheel":"onmousewheel" in document?"mousewheel":"DOMMouseScroll"}};var a=function(b){var c=b.relatedTarget;
|
||||
if(c==null){return true;}if(!c){return false;}return(c!=this&&c.prefix!="xul"&&typeOf(this)!="document"&&!this.contains(c));};if("onmouseenter" in document.documentElement){Element.NativeEvents.mouseenter=Element.NativeEvents.mouseleave=2;
|
||||
Element.MouseenterCheck=a;}else{Element.Events.mouseenter={base:"mouseover",condition:a};Element.Events.mouseleave={base:"mouseout",condition:a};}if(!window.addEventListener){Element.NativeEvents.propertychange=2;
|
||||
Element.Events.change={base:function(){var b=this.type;return(this.get("tag")=="input"&&(b=="radio"||b=="checkbox"))?"propertychange":"change";},condition:function(b){return b.type!="propertychange"||b.event.propertyName=="checked";
|
||||
}};}Element.Events=new Hash(Element.Events);})();(function(){var c=!!window.addEventListener;Element.NativeEvents.focusin=Element.NativeEvents.focusout=2;
|
||||
var k=function(l,m,n,o,p){while(p&&p!=l){if(m(p,o)){return n.call(p,o,p);}p=document.id(p.parentNode);}};var a={mouseenter:{base:"mouseover",condition:Element.MouseenterCheck},mouseleave:{base:"mouseout",condition:Element.MouseenterCheck},focus:{base:"focus"+(c?"":"in"),capture:true},blur:{base:c?"blur":"focusout",capture:true}};
|
||||
var b="$delegation:";var i=function(l){return{base:"focusin",remove:function(m,o){var p=m.retrieve(b+l+"listeners",{})[o];if(p&&p.forms){for(var n=p.forms.length;
|
||||
n--;){p.forms[n].removeEvent(l,p.fns[n]);}}},listen:function(x,r,v,n,t,s){var o=(t.get("tag")=="form")?t:n.target.getParent("form");if(!o){return;}var u=x.retrieve(b+l+"listeners",{}),p=u[s]||{forms:[],fns:[]},m=p.forms,w=p.fns;
|
||||
if(m.indexOf(o)!=-1){return;}m.push(o);var q=function(y){k(x,r,v,y,t);};o.addEvent(l,q);w.push(q);u[s]=p;x.store(b+l+"listeners",u);}};};var d=function(l){return{base:"focusin",listen:function(m,n,p,q,r){var o={blur:function(){this.removeEvents(o);
|
||||
}};o[l]=function(s){k(m,n,p,s,r);};q.target.addEvents(o);}};};if(!c){Object.append(a,{submit:i("submit"),reset:i("reset"),change:d("change"),select:d("select")});
|
||||
}var h=Element.prototype,f=h.addEvent,j=h.removeEvent;var e=function(l,m){return function(r,q,n){if(r.indexOf(":relay")==-1){return l.call(this,r,q,n);
|
||||
}var o=Slick.parse(r).expressions[0][0];if(o.pseudos[0].key!="relay"){return l.call(this,r,q,n);}var p=o.tag;o.pseudos.slice(1).each(function(s){p+=":"+s.key+(s.value?"("+s.value+")":"");
|
||||
});l.call(this,r,q);return m.call(this,p,o.pseudos[0].value,q);};};var g={addEvent:function(v,q,x){var t=this.retrieve("$delegates",{}),r=t[v];if(r){for(var y in r){if(r[y].fn==x&&r[y].match==q){return this;
|
||||
}}}var p=v,u=q,o=x,n=a[v]||{};v=n.base||p;q=function(B){return Slick.match(B,u);};var w=Element.Events[p];if(n.condition||w&&w.condition){var l=q,m=n.condition||w.condition;
|
||||
q=function(C,B){return l(C,B)&&m.call(C,B,v);};}var z=this,s=String.uniqueID();var A=n.listen?function(B,C){if(!C&&B&&B.target){C=B.target;}if(C){n.listen(z,q,x,B,C,s);
|
||||
}}:function(B,C){if(!C&&B&&B.target){C=B.target;}if(C){k(z,q,x,B,C);}};if(!r){r={};}r[s]={match:u,fn:o,delegator:A};t[p]=r;return f.call(this,v,A,n.capture);
|
||||
},removeEvent:function(r,n,t,u){var q=this.retrieve("$delegates",{}),p=q[r];if(!p){return this;}if(u){var m=r,w=p[u].delegator,l=a[r]||{};r=l.base||m;if(l.remove){l.remove(this,u);
|
||||
}delete p[u];q[m]=p;return j.call(this,r,w,l.capture);}var o,v;if(t){for(o in p){v=p[o];if(v.match==n&&v.fn==t){return g.removeEvent.call(this,r,n,t,o);
|
||||
}}}else{for(o in p){v=p[o];if(v.match==n){g.removeEvent.call(this,r,n,v.fn,o);}}}return this;}};[Element,Window,Document].invoke("implement",{addEvent:e(f,g.addEvent),removeEvent:e(j,g.removeEvent)});
|
||||
})();(function(){var h=document.createElement("div"),e=document.createElement("div");h.style.height="0";h.appendChild(e);var d=(e.offsetParent===h);h=e=null;
|
||||
var l=function(m){return k(m,"position")!="static"||a(m);};var i=function(m){return l(m)||(/^(?:table|td|th)$/i).test(m.tagName);};Element.implement({scrollTo:function(m,n){if(a(this)){this.getWindow().scrollTo(m,n);
|
||||
}else{this.scrollLeft=m;this.scrollTop=n;}return this;},getSize:function(){if(a(this)){return this.getWindow().getSize();}return{x:this.offsetWidth,y:this.offsetHeight};
|
||||
},getScrollSize:function(){if(a(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(a(this)){return this.getWindow().getScroll();
|
||||
}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var n=this.parentNode,m={x:0,y:0};while(n&&!a(n)){m.x+=n.scrollLeft;m.y+=n.scrollTop;
|
||||
n=n.parentNode;}return m;},getOffsetParent:d?function(){var m=this;if(a(m)||k(m,"position")=="fixed"){return null;}var n=(k(m,"position")=="static")?i:l;
|
||||
while((m=m.parentNode)){if(n(m)){return m;}}return null;}:function(){var m=this;if(a(m)||k(m,"position")=="fixed"){return null;}try{return m.offsetParent;
|
||||
}catch(n){}return null;},getOffsets:function(){var t=this.getBoundingClientRect;t=t&&!Browser.Platform.ios;if(t){var n=this.getBoundingClientRect(),q=document.id(this.getDocument().documentElement),u=q.getScroll(),o=this.getScrolls(),m=(k(this,"position")=="fixed");
|
||||
return{x:n.left.toInt()+o.x+((m)?0:u.x)-q.clientLeft,y:n.top.toInt()+o.y+((m)?0:u.y)-q.clientTop};}var p=this,r={x:0,y:0};if(a(this)){return r;}while(p&&!a(p)){r.x+=p.offsetLeft;
|
||||
r.y+=p.offsetTop;if(Browser.firefox){if(!c(p)){r.x+=b(p);r.y+=g(p);}var s=p.parentNode;if(s&&k(s,"overflow")!="visible"){r.x+=b(s);r.y+=g(s);}}else{if(p!=this&&Browser.safari){r.x+=b(p);
|
||||
r.y+=g(p);}}p=p.offsetParent;}if(Browser.firefox&&!c(this)){r.x-=b(this);r.y-=g(this);}return r;},getPosition:function(p){var q=this.getOffsets(),n=this.getScrolls();
|
||||
var m={x:q.x-n.x,y:q.y-n.y};if(p&&(p=document.id(p))){var o=p.getPosition();return{x:m.x-o.x-b(p),y:m.y-o.y-g(p)};}return m;},getCoordinates:function(o){if(a(this)){return this.getWindow().getCoordinates();
|
||||
}var m=this.getPosition(o),n=this.getSize();var p={left:m.x,top:m.y,width:n.x,height:n.y};p.right=p.left+p.width;p.bottom=p.top+p.height;return p;},computePosition:function(m){return{left:m.x-j(this,"margin-left"),top:m.y-j(this,"margin-top")};
|
||||
},setPosition:function(m){return this.setStyles(this.computePosition(m));}});[Document,Window].invoke("implement",{getSize:function(){var m=f(this);return{x:m.clientWidth,y:m.clientHeight};
|
||||
},getScroll:function(){var n=this.getWindow(),m=f(this);return{x:n.pageXOffset||m.scrollLeft,y:n.pageYOffset||m.scrollTop};},getScrollSize:function(){var o=f(this),n=this.getSize(),m=this.getDocument().body;
|
||||
return{x:Math.max(o.scrollWidth,m.scrollWidth,n.x),y:Math.max(o.scrollHeight,m.scrollHeight,n.y)};},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var m=this.getSize();
|
||||
return{top:0,left:0,bottom:m.y,right:m.x,height:m.y,width:m.x};}});var k=Element.getComputedStyle;function j(m,n){return k(m,n).toInt()||0;}function c(m){return k(m,"-moz-box-sizing")=="border-box";
|
||||
}function g(m){return j(m,"border-top-width");}function b(m){return j(m,"border-left-width");}function a(m){return(/^(?:body|html)$/i).test(m.tagName);
|
||||
}function f(m){var n=m.getDocument();return(!n.compatMode||n.compatMode=="CSS1Compat")?n.html:n.body;}})();Element.alias({position:"setPosition"});[Window,Document,Element].invoke("implement",{getHeight:function(){return this.getSize().y;
|
||||
},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;},getScrollLeft:function(){return this.getScroll().x;
|
||||
},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;},getTop:function(){return this.getPosition().y;
|
||||
},getLeft:function(){return this.getPosition().x;}});(function(){var f=this.Fx=new Class({Implements:[Chain,Events,Options],options:{fps:60,unit:false,duration:500,frames:null,frameSkip:true,link:"ignore"},initialize:function(g){this.subject=this.subject||this;
|
||||
this.setOptions(g);},getTransition:function(){return function(g){return -(Math.cos(Math.PI*g)-1)/2;};},step:function(g){if(this.options.frameSkip){var h=(this.time!=null)?(g-this.time):0,i=h/this.frameInterval;
|
||||
this.time=g;this.frame+=i;}else{this.frame++;}if(this.frame<this.frames){var j=this.transition(this.frame/this.frames);this.set(this.compute(this.from,this.to,j));
|
||||
}else{this.frame=this.frames;this.set(this.compute(this.from,this.to,1));this.stop();}},set:function(g){return g;},compute:function(i,h,g){return f.compute(i,h,g);
|
||||
},check:function(){if(!this.isRunning()){return true;}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.pass(arguments,this));
|
||||
return false;}return false;},start:function(k,j){if(!this.check(k,j)){return this;}this.from=k;this.to=j;this.frame=(this.options.frameSkip)?0:-1;this.time=null;
|
||||
this.transition=this.getTransition();var i=this.options.frames,h=this.options.fps,g=this.options.duration;this.duration=f.Durations[g]||g.toInt();this.frameInterval=1000/h;
|
||||
this.frames=i||Math.round(this.duration/this.frameInterval);this.fireEvent("start",this.subject);b.call(this,h);return this;},stop:function(){if(this.isRunning()){this.time=null;
|
||||
d.call(this,this.options.fps);if(this.frames==this.frame){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject);
|
||||
}}else{this.fireEvent("stop",this.subject);}}return this;},cancel:function(){if(this.isRunning()){this.time=null;d.call(this,this.options.fps);this.frame=this.frames;
|
||||
this.fireEvent("cancel",this.subject).clearChain();}return this;},pause:function(){if(this.isRunning()){this.time=null;d.call(this,this.options.fps);}return this;
|
||||
},resume:function(){if(this.isPaused()){b.call(this,this.options.fps);}return this;},isRunning:function(){var g=e[this.options.fps];return g&&g.contains(this);
|
||||
},isPaused:function(){return(this.frame<this.frames)&&!this.isRunning();}});f.compute=function(i,h,g){return(h-i)*g+i;};f.Durations={"short":250,normal:500,"long":1000};
|
||||
var e={},c={};var a=function(){var h=Date.now();for(var j=this.length;j--;){var g=this[j];if(g){g.step(h);}}};var b=function(h){var g=e[h]||(e[h]=[]);g.push(this);
|
||||
if(!c[h]){c[h]=a.periodical(Math.round(1000/h),g);}};var d=function(h){var g=e[h];if(g){g.erase(this);if(!g.length&&c[h]){delete e[h];c[h]=clearInterval(c[h]);
|
||||
}}};})();Fx.CSS=new Class({Extends:Fx,prepare:function(b,e,a){a=Array.from(a);var h=a[0],g=a[1];if(g==null){g=h;h=b.getStyle(e);var c=this.options.unit;
|
||||
if(c&&h&&typeof h=="string"&&h.slice(-c.length)!=c&&parseFloat(h)!=0){b.setStyle(e,g+c);var d=b.getComputedStyle(e);if(!(/px$/.test(d))){d=b.style[("pixel-"+e).camelCase()];
|
||||
if(d==null){var f=b.style.left;b.style.left=g+c;d=b.style.pixelLeft;b.style.left=f;}}h=(g||1)/(parseFloat(d)||1)*(parseFloat(h)||0);b.setStyle(e,h+c);}}return{from:this.parse(h),to:this.parse(g)};
|
||||
},parse:function(a){a=Function.from(a)();a=(typeof a=="string")?a.split(" "):Array.from(a);return a.map(function(c){c=String(c);var b=false;Object.each(Fx.CSS.Parsers,function(f,e){if(b){return;
|
||||
}var d=f.parse(c);if(d||d===0){b={value:d,parser:f};}});b=b||{value:c,parser:Fx.CSS.Parsers.String};return b;});},compute:function(d,c,b){var a=[];(Math.min(d.length,c.length)).times(function(e){a.push({value:d[e].parser.compute(d[e].value,c[e].value,b),parser:d[e].parser});
|
||||
});a.$family=Function.from("fx:css:value");return a;},serve:function(c,b){if(typeOf(c)!="fx:css:value"){c=this.parse(c);}var a=[];c.each(function(d){a=a.concat(d.parser.serve(d.value,b));
|
||||
});return a;},render:function(a,d,c,b){a.setStyle(d,this.serve(c,b));},search:function(a){if(Fx.CSS.Cache[a]){return Fx.CSS.Cache[a];}var d={},c=new RegExp("^"+a.escapeRegExp()+"$");
|
||||
var b=function(e){Array.each(e,function(h,f){if(h.media){b(h.rules||h.cssRules);return;}if(!h.style){return;}var g=(h.selectorText)?h.selectorText.replace(/^\w+/,function(i){return i.toLowerCase();
|
||||
}):null;if(!g||!c.test(g)){return;}Object.each(Element.Styles,function(j,i){if(!h.style[i]||Element.ShortStyles[i]){return;}j=String(h.style[i]);d[i]=((/^rgb/).test(j))?j.rgbToHex():j;
|
||||
});});};Array.each(document.styleSheets,function(g,f){var e=g.href;if(e&&e.indexOf("://")>-1&&e.indexOf(document.domain)==-1){return;}var h=g.rules||g.cssRules;
|
||||
b(h);});return Fx.CSS.Cache[a]=d;}});Fx.CSS.Cache={};Fx.CSS.Parsers={Color:{parse:function(a){if(a.match(/^#[0-9a-f]{3,6}$/i)){return a.hexToRgb(true);
|
||||
}return((a=a.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[a[1],a[2],a[3]]:false;},compute:function(c,b,a){return c.map(function(e,d){return Math.round(Fx.compute(c[d],b[d],a));
|
||||
});},serve:function(a){return a.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(b,a){return(a)?b+a:b;}},String:{parse:Function.from(false),compute:function(b,a){return a;
|
||||
},serve:function(a){return a;}}};Fx.CSS.Parsers=new Hash(Fx.CSS.Parsers);Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);
|
||||
this.parent(a);},set:function(b,a){if(arguments.length==1){a=b;b=this.property||this.options.property;}this.render(this.element,b,a,this.options.unit);
|
||||
return this;},start:function(c,e,d){if(!this.check(c,e,d)){return this;}var b=Array.flatten(arguments);this.property=this.options.property||b.shift();var a=this.prepare(this.element,this.property,b);
|
||||
return this.parent(a.from,a.to);}});Element.Properties.tween={set:function(a){this.get("tween").cancel().setOptions(a);return this;},get:function(){var a=this.retrieve("tween");
|
||||
if(!a){a=new Fx.Tween(this,{link:"cancel"});this.store("tween",a);}return a;}};Element.implement({tween:function(a,c,b){this.get("tween").start(a,c,b);
|
||||
return this;},fade:function(d){var e=this.get("tween"),g,c=["opacity"].append(arguments),a;if(c[1]==null){c[1]="toggle";}switch(c[1]){case"in":g="start";
|
||||
c[1]=1;break;case"out":g="start";c[1]=0;break;case"show":g="set";c[1]=1;break;case"hide":g="set";c[1]=0;break;case"toggle":var b=this.retrieve("fade:flag",this.getStyle("opacity")==1);
|
||||
g="start";c[1]=b?0:1;this.store("fade:flag",!b);a=true;break;default:g="start";}if(!a){this.eliminate("fade:flag");}e[g].apply(e,c);var f=c[c.length-1];
|
||||
if(g=="set"||f!=0){this.setStyle("visibility",f==0?"hidden":"visible");}else{e.chain(function(){this.element.setStyle("visibility","hidden");this.callChain();
|
||||
});}return this;},highlight:function(c,a){if(!a){a=this.retrieve("highlight:original",this.getStyle("background-color"));a=(a=="transparent")?"#fff":a;
|
||||
}var b=this.get("tween");b.start("background-color",c||"#ffff88",a).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));
|
||||
b.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);this.parent(a);
|
||||
},set:function(a){if(typeof a=="string"){a=this.search(a);}for(var b in a){this.render(this.element,b,a[b],this.options.unit);}return this;},compute:function(e,d,c){var a={};
|
||||
for(var b in e){a[b]=this.parent(e[b],d[b],c);}return a;},start:function(b){if(!this.check(b)){return this;}if(typeof b=="string"){b=this.search(b);}var e={},d={};
|
||||
for(var c in b){var a=this.prepare(this.element,c,b[c]);e[c]=a.from;d[c]=a.to;}return this.parent(e,d);}});Element.Properties.morph={set:function(a){this.get("morph").cancel().setOptions(a);
|
||||
return this;},get:function(){var a=this.retrieve("morph");if(!a){a=new Fx.Morph(this,{link:"cancel"});this.store("morph",a);}return a;}};Element.implement({morph:function(a){this.get("morph").start(a);
|
||||
return this;}});Fx.implement({getTransition:function(){var a=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof a=="string"){var b=a.split(":");
|
||||
a=Fx.Transitions;a=a[b[0]]||a[b[0].capitalize()];if(b[1]){a=a["ease"+b[1].capitalize()+(b[2]?b[2].capitalize():"")];}}return a;}});Fx.Transition=function(c,b){b=Array.from(b);
|
||||
var a=function(d){return c(d,b);};return Object.append(a,{easeIn:a,easeOut:function(d){return 1-c(1-d,b);},easeInOut:function(d){return(d<=0.5?c(2*d,b):(2-c(2*(1-d),b)))/2;
|
||||
}});};Fx.Transitions={linear:function(a){return a;}};Fx.Transitions=new Hash(Fx.Transitions);Fx.Transitions.extend=function(a){for(var b in a){Fx.Transitions[b]=new Fx.Transition(a[b]);
|
||||
}};Fx.Transitions.extend({Pow:function(b,a){return Math.pow(b,a&&a[0]||6);},Expo:function(a){return Math.pow(2,8*(a-1));},Circ:function(a){return 1-Math.sin(Math.acos(a));
|
||||
},Sine:function(a){return 1-Math.cos(a*Math.PI/2);},Back:function(b,a){a=a&&a[0]||1.618;return Math.pow(b,2)*((a+1)*b-a);},Bounce:function(f){var e;for(var d=0,c=1;
|
||||
1;d+=c,c/=2){if(f>=(7-4*d)/11){e=c*c-Math.pow((11-6*d-11*f)/4,2);break;}}return e;},Elastic:function(b,a){return Math.pow(2,10*--b)*Math.cos(20*b*Math.PI*(a&&a[0]||1)/3);
|
||||
}});["Quad","Cubic","Quart","Quint"].each(function(b,a){Fx.Transitions[b]=new Fx.Transition(function(c){return Math.pow(c,a+2);});});(function(){var d=function(){},a=("onprogress" in new Browser.Request);
|
||||
var c=this.Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false,timeout:0,noCache:false},initialize:function(e){this.xhr=new Browser.Request();
|
||||
this.setOptions(e);this.headers=this.options.headers;},onStateChange:function(){var e=this.xhr;if(e.readyState!=4||!this.running){return;}this.running=false;
|
||||
this.status=0;Function.attempt(function(){var f=e.status;this.status=(f==1223)?204:f;}.bind(this));e.onreadystatechange=d;if(a){e.onprogress=e.onloadstart=d;
|
||||
}clearTimeout(this.timer);this.response={text:this.xhr.responseText||"",xml:this.xhr.responseXML};if(this.options.isSuccess.call(this,this.status)){this.success(this.response.text,this.response.xml);
|
||||
}else{this.failure();}},isSuccess:function(){var e=this.status;return(e>=200&&e<300);},isRunning:function(){return !!this.running;},processScripts:function(e){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return Browser.exec(e);
|
||||
}return e.stripScripts(this.options.evalScripts);},success:function(f,e){this.onSuccess(this.processScripts(f),e);},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain();
|
||||
},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr);},loadstart:function(e){this.fireEvent("loadstart",[e,this.xhr]);
|
||||
},progress:function(e){this.fireEvent("progress",[e,this.xhr]);},timeout:function(){this.fireEvent("timeout",this.xhr);},setHeader:function(e,f){this.headers[e]=f;
|
||||
return this;},getHeader:function(e){return Function.attempt(function(){return this.xhr.getResponseHeader(e);}.bind(this));},check:function(){if(!this.running){return true;
|
||||
}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.pass(arguments,this));return false;}return false;},send:function(o){if(!this.check(o)){return this;
|
||||
}this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.running=true;var l=typeOf(o);if(l=="string"||l=="element"){o={data:o};}var h=this.options;
|
||||
o=Object.append({data:h.data,url:h.url,method:h.method},o);var j=o.data,f=String(o.url),e=o.method.toLowerCase();switch(typeOf(j)){case"element":j=document.id(j).toQueryString();
|
||||
break;case"object":case"hash":j=Object.toQueryString(j);}if(this.options.format){var m="format="+this.options.format;j=(j)?m+"&"+j:m;}if(this.options.emulation&&!["get","post"].contains(e)){var k="_method="+e;
|
||||
j=(j)?k+"&"+j:k;e="post";}if(this.options.urlEncoded&&["post","put"].contains(e)){var g=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers["Content-type"]="application/x-www-form-urlencoded"+g;
|
||||
}if(!f){f=document.location.pathname;}var i=f.lastIndexOf("/");if(i>-1&&(i=f.indexOf("#"))>-1){f=f.substr(0,i);}if(this.options.noCache){f+=(f.indexOf("?")>-1?"&":"?")+String.uniqueID();
|
||||
}if(j&&(e=="get"||e=="delete")){f+=(f.indexOf("?")>-1?"&":"?")+j;j=null;}var n=this.xhr;if(a){n.onloadstart=this.loadstart.bind(this);n.onprogress=this.progress.bind(this);
|
||||
}n.open(e.toUpperCase(),f,this.options.async,this.options.user,this.options.password);if(this.options.user&&"withCredentials" in n){n.withCredentials=true;
|
||||
}n.onreadystatechange=this.onStateChange.bind(this);Object.each(this.headers,function(q,p){try{n.setRequestHeader(p,q);}catch(r){this.fireEvent("exception",[p,q]);
|
||||
}},this);this.fireEvent("request");n.send(j);if(!this.options.async){this.onStateChange();}else{if(this.options.timeout){this.timer=this.timeout.delay(this.options.timeout,this);
|
||||
}}return this;},cancel:function(){if(!this.running){return this;}this.running=false;var e=this.xhr;e.abort();clearTimeout(this.timer);e.onreadystatechange=d;
|
||||
if(a){e.onprogress=e.onloadstart=d;}this.xhr=new Browser.Request();this.fireEvent("cancel");return this;}});var b={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(e){b[e]=function(g){var f={method:e};
|
||||
if(g!=null){f.data=g;}return this.send(f);};});c.implement(b);Element.Properties.send={set:function(e){var f=this.get("send").cancel();f.setOptions(e);
|
||||
return this;},get:function(){var e=this.retrieve("send");if(!e){e=new c({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")});
|
||||
this.store("send",e);}return e;}};Element.implement({send:function(e){var f=this.get("send");f.send({data:this,url:e||f.options.url});return this;}});})();
|
||||
Request.HTML=new Class({Extends:Request,options:{update:false,append:false,evalScripts:true,filter:false,headers:{Accept:"text/html, application/xml, text/xml, */*"}},success:function(f){var e=this.options,c=this.response;
|
||||
c.html=f.stripScripts(function(h){c.javascript=h;});var d=c.html.match(/<body[^>]*>([\s\S]*?)<\/body>/i);if(d){c.html=d[1];}var b=new Element("div").set("html",c.html);
|
||||
c.tree=b.childNodes;c.elements=b.getElements(e.filter||"*");if(e.filter){c.tree=c.elements;}if(e.update){var g=document.id(e.update).empty();if(e.filter){g.adopt(c.elements);
|
||||
}else{g.set("html",c.html);}}else{if(e.append){var a=document.id(e.append);if(e.filter){c.elements.reverse().inject(a);}else{a.adopt(b.getChildren());}}}if(e.evalScripts){Browser.exec(c.javascript);
|
||||
}this.onSuccess(c.tree,c.elements,c.html,c.javascript);}});Element.Properties.load={set:function(a){var b=this.get("load").cancel();b.setOptions(a);return this;
|
||||
},get:function(){var a=this.retrieve("load");if(!a){a=new Request.HTML({data:this,link:"cancel",update:this,method:"get"});this.store("load",a);}return a;
|
||||
}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Type.isObject,url:Type.isString}));return this;}});if(typeof JSON=="undefined"){this.JSON={};
|
||||
}JSON=new Hash({stringify:JSON.stringify,parse:JSON.parse});(function(){var special={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};
|
||||
var escape=function(chr){return special[chr]||"\\u"+("0000"+chr.charCodeAt(0).toString(16)).slice(-4);};JSON.validate=function(string){string=string.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"");
|
||||
return(/^[\],:{}\s]*$/).test(string);};JSON.encode=JSON.stringify?function(obj){return JSON.stringify(obj);}:function(obj){if(obj&&obj.toJSON){obj=obj.toJSON();
|
||||
}switch(typeOf(obj)){case"string":return'"'+obj.replace(/[\x00-\x1f\\"]/g,escape)+'"';case"array":return"["+obj.map(JSON.encode).clean()+"]";case"object":case"hash":var string=[];
|
||||
Object.each(obj,function(value,key){var json=JSON.encode(value);if(json){string.push(JSON.encode(key)+":"+json);}});return"{"+string+"}";case"number":case"boolean":return""+obj;
|
||||
case"null":return"null";}return null;};JSON.secure=true;JSON.secure=false;JSON.decode=function(string,secure){if(!string||typeOf(string)!="string"){return null;
|
||||
}if(secure==null){secure=JSON.secure;}if(secure){if(JSON.parse){return JSON.parse(string);}if(!JSON.validate(string)){throw new Error("JSON could not decode the input; security is enabled and the value is not secure.");
|
||||
}}return eval("("+string+")");};})();Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(a){this.parent(a);Object.append(this.headers,{Accept:"application/json","X-Request":"JSON"});
|
||||
},success:function(c){var b;try{b=this.response.json=JSON.decode(c,this.options.secure);}catch(a){this.fireEvent("error",[c,a]);return;}if(b==null){this.onFailure();
|
||||
}else{this.onSuccess(b,c);}}});var Cookie=new Class({Implements:Options,options:{path:"/",domain:false,duration:false,secure:false,document:document,encode:true},initialize:function(b,a){this.key=b;
|
||||
this.setOptions(a);},write:function(b){if(this.options.encode){b=encodeURIComponent(b);}if(this.options.domain){b+="; domain="+this.options.domain;}if(this.options.path){b+="; path="+this.options.path;
|
||||
}if(this.options.duration){var a=new Date();a.setTime(a.getTime()+this.options.duration*24*60*60*1000);b+="; expires="+a.toGMTString();}if(this.options.secure){b+="; secure";
|
||||
}this.options.document.cookie=this.key+"="+b;return this;},read:function(){var a=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");
|
||||
return(a)?decodeURIComponent(a[1]):null;},dispose:function(){new Cookie(this.key,Object.merge({},this.options,{duration:-1})).write("");return this;}});
|
||||
Cookie.write=function(b,c,a){return new Cookie(b,a).write(c);};Cookie.read=function(a){return new Cookie(a).read();};Cookie.dispose=function(b,a){return new Cookie(b,a).dispose();
|
||||
};(function(i,k){var l,f,e=[],c,b,d=k.createElement("div");var g=function(){clearTimeout(b);if(l){return;}Browser.loaded=l=true;k.removeListener("DOMContentLoaded",g).removeListener("readystatechange",a);
|
||||
k.fireEvent("domready");i.fireEvent("domready");};var a=function(){for(var m=e.length;m--;){if(e[m]()){g();return true;}}return false;};var j=function(){clearTimeout(b);
|
||||
if(!a()){b=setTimeout(j,10);}};k.addListener("DOMContentLoaded",g);var h=function(){try{d.doScroll();return true;}catch(m){}return false;};if(d.doScroll&&!h()){e.push(h);
|
||||
c=true;}if(k.readyState){e.push(function(){var m=k.readyState;return(m=="loaded"||m=="complete");});}if("onreadystatechange" in k){k.addListener("readystatechange",a);
|
||||
}else{c=true;}if(c){j();}Element.Events.domready={onAdd:function(m){if(l){m.call(this);}}};Element.Events.load={base:"load",onAdd:function(m){if(f&&this==i){m.call(this);
|
||||
}},condition:function(){if(this==i){g();delete Element.Events.load;}return true;}};i.addEvent("load",function(){f=true;});})(window,document);
|
|
@ -2,3 +2,8 @@
|
|||
window.addEventListener('load', function(){
|
||||
var bLazy = new Blazy;
|
||||
}, false);
|
||||
|
||||
/*=== Message close ===*/
|
||||
document.getElementById('closeMessage').addEventListener('click', function(){
|
||||
document.getElementById('Message').style.display = 'none';
|
||||
});
|
96
patches/firefox-lightbox-image-autorotation.patch
Normal file
96
patches/firefox-lightbox-image-autorotation.patch
Normal file
|
@ -0,0 +1,96 @@
|
|||
diff --git a/css/mediaboxBlack.css b/css/mediaboxBlack.css
|
||||
index 9213688..752c704 100644
|
||||
--- a/css/mediaboxBlack.css
|
||||
+++ b/css/mediaboxBlack.css
|
||||
@@ -38,9 +38,21 @@
|
||||
-khtml-box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
|
||||
-moz-box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
|
||||
box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
|
||||
+ width: 100%;
|
||||
+ height: 100%;
|
||||
}
|
||||
#mbCenter img{
|
||||
+ width:auto;
|
||||
+ height:auto;
|
||||
+ max-width:100%;
|
||||
+ max-height:95%;
|
||||
border-radius: 4px;
|
||||
+ image-orientation: from-image;
|
||||
+ position: absolute;
|
||||
+ margin: auto;
|
||||
+ top: 0;
|
||||
+ left: 0;
|
||||
+ right: 0;
|
||||
}
|
||||
|
||||
#mbCenter.mbLoading {
|
||||
diff --git a/css/mediaboxWhite.css b/css/mediaboxWhite.css
|
||||
index de9d439..832911e 100644
|
||||
--- a/css/mediaboxWhite.css
|
||||
+++ b/css/mediaboxWhite.css
|
||||
@@ -38,10 +38,22 @@
|
||||
-khtml-box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
|
||||
-moz-box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
|
||||
box-shadow: 0px 5px 20px rgba(0,0,0,0.50);
|
||||
+ width: 100%;
|
||||
+ height: 100%;
|
||||
}
|
||||
|
||||
#mbCenter img{
|
||||
+ width:auto;
|
||||
+ height:auto;
|
||||
+ max-width:100%;
|
||||
+ max-height:95%;
|
||||
border-radius: 4px;
|
||||
+ image-orientation: from-image;
|
||||
+ position: absolute;
|
||||
+ margin: auto;
|
||||
+ top: 0;
|
||||
+ left: 0;
|
||||
+ right: 0;
|
||||
}
|
||||
|
||||
#mbCenter.mbLoading {
|
||||
diff --git a/js/mediabox1.5.4.js b/js/mediabox1.5.4.js
|
||||
index 821e599..e47a138 100644
|
||||
--- a/js/mediabox1.5.4.js
|
||||
+++ b/js/mediabox1.5.4.js
|
||||
@@ -815,6 +815,16 @@ var Mediabox;
|
||||
if (mediaType == "img"){
|
||||
mediaWidth = preload.width;
|
||||
mediaHeight = preload.height;
|
||||
+
|
||||
+ // Hack jn@hz6.de: make lightbox squared to make room for the image (that will be properly rotated by the browser [at least FF since v26])
|
||||
+ if (mediaWidth > mediaHeight) {
|
||||
+ mediaHeight = mediaWidth
|
||||
+ }
|
||||
+
|
||||
+ if (mediaWidth < mediaHeight) {
|
||||
+ mediaWidth = mediaHeight
|
||||
+ }
|
||||
+
|
||||
if (options.imgBackground) {
|
||||
media.setStyles({backgroundImage: "url("+URL+")", display: ""});
|
||||
} else { // Thanks to Dusan Medlin for fixing large 16x9 image errors in a 4x3 browser
|
||||
@@ -827,11 +837,14 @@ var Mediabox;
|
||||
mediaHeight = preload.height = parseInt((mediaWidth/preload.width)*mediaHeight, 10);
|
||||
preload.width = mediaWidth;
|
||||
}
|
||||
+
|
||||
if (Browser.ie) preload = document.id(preload);
|
||||
if (options.clickBlock) preload.addEvent('mousedown', function(e){ e.stop(); }).addEvent('contextmenu', function(e){ e.stop(); });
|
||||
+
|
||||
media.setStyles({backgroundImage: "none", display: ""});
|
||||
preload.inject(media);
|
||||
}
|
||||
+
|
||||
// mediaWidth += "px";
|
||||
// mediaHeight += "px";
|
||||
} else if (mediaType == "inline") {
|
||||
@@ -973,4 +986,4 @@ Mediabox.scanPage = function() {
|
||||
});
|
||||
};
|
||||
|
||||
-window.addEvents({domready: Mediabox.scanPage, resize: Mediabox.recenter}); // to recenter the overlay while scrolling, add "scroll: Mediabox.recenter" to the object
|
||||
\ No newline at end of file
|
||||
+window.addEvents({domready: Mediabox.scanPage, resize: Mediabox.recenter}); // to recenter the overlay while scrolling, add "scroll: Mediabox.recenter" to the object
|
11
patches/firefox-lightbox-image-autorotation.readme
Normal file
11
patches/firefox-lightbox-image-autorotation.readme
Normal file
|
@ -0,0 +1,11 @@
|
|||
You access your MinigalNano exclusively with firefox >v26 (for example
|
||||
on your home server)?
|
||||
|
||||
If you apply this patch, the images in the lightbox are properly rotated
|
||||
by the browser itself using the information from the EXIF data.
|
||||
|
||||
To fit the images, I made the lightbox squared so there are white
|
||||
stripes either on the sides or the top and the bottom.
|
||||
|
||||
Jan
|
||||
(jn@hz6.de)
|
84
rss.php
84
rss.php
|
@ -1,4 +1,12 @@
|
|||
<?php
|
||||
/*
|
||||
* This file is part of MinigalNano: https://github.com/sebsauvage/MinigalNano
|
||||
*
|
||||
* MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
|
||||
*
|
||||
* MinigalNano is licensed under the AGPL v3 (https://gnu.org/licenses/agpl-3.0.txt).
|
||||
*/
|
||||
|
||||
/*============================*/
|
||||
/* Gallery address definition */
|
||||
/*============================*/
|
||||
|
@ -33,20 +41,19 @@ $gallery_link = $g_protocol . '://' . $g_host . $g_port . $g_path;
|
|||
/*===================*/
|
||||
# Hardly inspired from here : codes-sources.commentcamarche.net/source/35937-creation-d-une-arborescenceI
|
||||
# Listing all files of a folder and sub folders.
|
||||
function ListFiles($gallery_link, &$content, $Folder, $SkipFileExts, $SkipObjects)
|
||||
{
|
||||
$dir = opendir($Folder);
|
||||
function listFiles(&$content, $folder, $keep_extensions, $SkipObjects) {
|
||||
$dir = opendir($folder);
|
||||
// Loop on all contained on the folder
|
||||
while (false !== ($Current = readdir($dir))) {
|
||||
if ($Current !='.' && $Current != '..' && in_array($Current, $SkipObjects) === false) {
|
||||
if (is_dir($Folder.'/'.$Current)) {
|
||||
ListFiles($gallery_link, $content, $Folder . '/' . $Current, $SkipFileExts, $SkipObjects);
|
||||
while (false !== ($current = readdir($dir))) {
|
||||
if ($current != '.' && $current != '..' && in_array($current, $SkipObjects) === false) {
|
||||
if (is_dir($folder . '/' . $current)) {
|
||||
ListFiles($content, $folder . '/' . $current, $keep_extensions, $SkipObjects);
|
||||
} else {
|
||||
$FileExt = strtolower(substr(strrchr($Current, '.'), 1));
|
||||
$file_ext = strtolower(substr(strrchr($current, '.'), 1));
|
||||
// Should we display this extension ?
|
||||
if (in_array($FileExt, $SkipFileExts) === false) {
|
||||
$current_adress = $gallery_link . "/" . $Folder.'/'. $Current;
|
||||
$content .= $current_adress. "\n";
|
||||
if (in_array($file_ext, $keep_extensions)) {
|
||||
$current_adress = $folder . '/' . $current;
|
||||
array_push($content, $current_adress);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -56,8 +63,7 @@ function ListFiles($gallery_link, &$content, $Folder, $SkipFileExts, $SkipObject
|
|||
}
|
||||
|
||||
# Paul's Simple Diff Algorithm v 0.1 : http://paulbutler.org/archives/a-simple-diff-algorithm-in-php/
|
||||
function diff($old, $new)
|
||||
{
|
||||
function diff($old, $new) {
|
||||
$matrix = array();
|
||||
$maxlen = 0;
|
||||
foreach ($old as $oindex => $ovalue) {
|
||||
|
@ -72,30 +78,26 @@ function diff($old, $new)
|
|||
}
|
||||
}
|
||||
}
|
||||
if ($maxlen == 0)
|
||||
return array(array('d'=>$old, 'i'=>$new));
|
||||
if ($maxlen == 0) {
|
||||
return array(array('d' => $old, 'i' => $new));
|
||||
}
|
||||
|
||||
return array_merge(
|
||||
diff(array_slice($old, 0, $omax), array_slice($new, 0, $nmax)),
|
||||
array_slice($new, $nmax, $maxlen),
|
||||
diff(array_slice($old, $omax + $maxlen), array_slice($new, $nmax + $maxlen)));
|
||||
}
|
||||
|
||||
function print_array($array_to_display)
|
||||
{
|
||||
echo '<pre>';
|
||||
print_r($array_to_display);
|
||||
echo '</pre>';
|
||||
}
|
||||
|
||||
/*===================*/
|
||||
/* Variables */
|
||||
/*===================*/
|
||||
require("config-default.php");
|
||||
include("config.php");
|
||||
|
||||
$content = "";
|
||||
require "config-default.php";
|
||||
include "config.php";
|
||||
$folder = "photos";
|
||||
$content = listFiles($gallery_link, $content, $folder, $SkipExts, $SkipObjects);
|
||||
|
||||
$content = array();
|
||||
$content = listFiles($content, $folder, $keep_extensions, $skip_objects);
|
||||
usort($content, function ($a, $b) {return filemtime($a) < filemtime($b);});
|
||||
|
||||
if (is_writeable(".")) {
|
||||
$to_store = "";
|
||||
|
@ -127,12 +129,12 @@ if (is_writeable(".")) {
|
|||
file_put_contents($db_rss_timestamp, time());
|
||||
// Load the list from files.
|
||||
$old_files_list_content = explode("\n", file_get_contents($old_files_list));
|
||||
$new_files_list_content = explode("\n", $content); #debug
|
||||
$new_files_list_content = $content; #debug
|
||||
// Generate and stock new elements
|
||||
$differences = diff($old_files_list_content, $new_files_list_content);
|
||||
for ($i=0; $i < count($differences); $i++) {
|
||||
for ($i = 0; $i < count($differences); $i++) {
|
||||
if (is_array($differences[$i])) {
|
||||
for ($j=0; $j < count($differences[$i]["i"]); $j++) {
|
||||
for ($j = 0; $j < count($differences[$i]["i"]); $j++) {
|
||||
if (strlen($differences[$i]["i"][$j]) > 2) {
|
||||
$to_store .= $differences[$i]["i"][$j] . "\n";
|
||||
}
|
||||
|
@ -143,27 +145,33 @@ if (is_writeable(".")) {
|
|||
$temp = $to_store . $temp;
|
||||
file_put_contents($db_feed_source, $temp);
|
||||
// Store the current file list for the next generation
|
||||
file_put_contents($old_files_list, $content);
|
||||
file_put_contents($old_files_list, join("/n", $content));
|
||||
unlink("rss.locker");
|
||||
}
|
||||
$content = $temp;
|
||||
$content = explode("\n", $temp);
|
||||
}
|
||||
|
||||
/*===================*/
|
||||
/* XML Gen */
|
||||
/*===================*/
|
||||
$temp = explode("\n", $content);
|
||||
header('Content-Type: text/xml');
|
||||
echo "<?xml version='1.0' encoding='UTF-8'?>\n";
|
||||
echo "<rss version='2.0'>\n<channel>";
|
||||
echo "<title>$title</title>";
|
||||
echo "<link>$gallery_link</link>";
|
||||
echo "<description>$description</description>\n";
|
||||
for ($i=0; $i < $nb_items_rss && $i < count($temp); $i++) {
|
||||
if (empty($temp[$i]))
|
||||
for ($i = 0; $i < $nb_items_rss && $i < count($content); $i++) {
|
||||
if (empty($content[$i])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$link = $gallery_link . '/' . str_replace(' ', '%20', $content[$i]);
|
||||
echo "<item>\n";
|
||||
echo " <title>" . basename($temp[$i]) . "</title>\n";
|
||||
echo " <link>". $temp[$i] . "</link>\n";
|
||||
echo " <description><![CDATA[ <img src='" . $temp[$i] . "'> ]]></description>\n";
|
||||
echo " <title>" . basename($link) . "</title>\n";
|
||||
echo " <link>" . $link . "</link>\n";
|
||||
echo " <guid>" . $link . "</guid>\n";
|
||||
echo " <description><![CDATA[ <img src='" . $link . "'> ]]></description>\n";
|
||||
echo " <pubDate>" . date("D, j M Y H:i:s O", filemtime($content[$i])) . "</pubDate>";
|
||||
echo "</item>\n";
|
||||
}
|
||||
echo "</channel></rss>\n";
|
||||
|
|
|
@ -1,9 +1,28 @@
|
|||
<?php
|
||||
ini_set("memory_limit","256M");
|
||||
$exif = "No";
|
||||
$gd = "No";
|
||||
if (function_exists('exif_read_data')) $exif = "Yes";
|
||||
if (extension_loaded('gd') && function_exists('gd_info')) $gd = "Yes";
|
||||
/*
|
||||
* This file is part of MinigalNano: https://github.com/sebsauvage/MinigalNano
|
||||
*
|
||||
* MiniGal Nano is based on an original work by Thomas Rybak (© 2010)
|
||||
*
|
||||
* MinigalNano is licensed under the AGPL v3 (https://gnu.org/licenses/agpl-3.0.txt).
|
||||
*/
|
||||
|
||||
ini_set("memory_limit", "256M");
|
||||
$exif = "No";
|
||||
$gd = "No";
|
||||
$thumbs = "No";
|
||||
if (function_exists('exif_read_data')) {
|
||||
$exif = "Yes";
|
||||
}
|
||||
|
||||
if (extension_loaded('gd') && function_exists('gd_info')) {
|
||||
$gd = "Yes";
|
||||
}
|
||||
|
||||
if (is_dir('thumbs') && is_writable('thumbs')) {
|
||||
$thumbs = "Yes";
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
@ -63,37 +82,68 @@
|
|||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>MiniBoardNano system check</h1>
|
||||
<h1>MiniGal Nano system check</h1>
|
||||
<div class="left">
|
||||
PHP Version
|
||||
</div>
|
||||
<div class="<?php if(version_compare(phpversion(), "4.0", '>')) echo 'middle-yes'; else echo 'middle-no' ?>">
|
||||
<?php echo phpversion(); ?>
|
||||
<div class="<?php if (version_compare(phpversion(), "4.0", '>')) {
|
||||
echo 'middle-yes';
|
||||
} else {
|
||||
echo 'middle-no';
|
||||
}
|
||||
?>">
|
||||
<?php echo phpversion();?>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a href="http://www.php.net/" target="_blank">PHP</a> scripting language version 4.0 or greater is needed
|
||||
<a href="http://www.php.net/" target="_blank">PHP</a> scripting language version 4.0 or greater is needed.
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="left">
|
||||
GD library support
|
||||
</div>
|
||||
<div class="<?php if($gd == "Yes") echo 'middle-yes'; else echo 'middle-no' ?>">
|
||||
<?php echo $gd; ?>
|
||||
<div class="<?php if ($gd == "Yes") {
|
||||
echo 'middle-yes';
|
||||
} else {
|
||||
echo 'middle-no';
|
||||
}
|
||||
?>">
|
||||
<?php echo $gd;?>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a href="http://www.boutell.com/gd/" target="_blank">GD image manipulation</a> library is used to create thumbnails. Bundled since PHP 4.3
|
||||
<a href="http://www.boutell.com/gd/" target="_blank">GD image manipulation</a> library is used to create thumbnails. Bundled since PHP 4.3.
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="left">
|
||||
EXIF support
|
||||
</div>
|
||||
<div class="<?php if($exif == "Yes") echo 'middle-yes'; else echo 'middle-neutral' ?>">
|
||||
<?php echo $exif; ?>
|
||||
<div class="<?php if ($exif == "Yes") {
|
||||
echo 'middle-yes';
|
||||
} else {
|
||||
echo 'middle-neutral';
|
||||
}
|
||||
?>">
|
||||
<?php echo $exif;?>
|
||||
</div>
|
||||
<div class="right">
|
||||
Ability to extract and display <a href="http://en.wikipedia.org/wiki/Exif" target="_blank">EXIF information</a>. The script will work without it, but not display image information
|
||||
Ability to extract and display <a href="http://en.wikipedia.org/wiki/Exif" target="_blank">EXIF information</a>. The script will work without it, but not display image information.
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="left">
|
||||
Thumbnails caching
|
||||
</div>
|
||||
<div class="<?php if ($thumbs == "Yes") {
|
||||
echo 'middle-yes';
|
||||
} else {
|
||||
echo 'middle-neutral';
|
||||
}
|
||||
?>">
|
||||
<?php echo $thumbs;?>
|
||||
</div>
|
||||
<div class="right">
|
||||
You should let php create and use the 'thumbs" directory. MiniGal will be <b>much</b> faster.
|
||||
</div>
|
||||
<br />
|
||||
|
||||
|
@ -101,15 +151,15 @@
|
|||
PHP memory limit
|
||||
</div>
|
||||
<div class="middle-neutral">
|
||||
<?php echo ini_get("memory_limit"); ?>
|
||||
<?php echo ini_get("memory_limit");?>
|
||||
</div>
|
||||
<div class="right">
|
||||
Memory is needed to create thumbnails. Bigger images uses more memory
|
||||
Memory is needed to create thumbnails. Bigger images uses more memory.
|
||||
</div>
|
||||
|
||||
<footer role="contentinfo">
|
||||
<a href="https://github.com/sebsauvage/MinigalNano" title="Powered by MiniGal Nano" target="_blank">
|
||||
Made with miniGal by sebsauvage.
|
||||
Made with miniGal by the community.
|
||||
</a>
|
||||
</footer>
|
||||
</body>
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
font-size: 62.5%;
|
||||
}
|
||||
body {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
|
@ -28,7 +29,8 @@
|
|||
text-decoration: none;
|
||||
}
|
||||
h1 {
|
||||
margin: 20px 0 0 0;
|
||||
margin: 0;
|
||||
padding: 1.5rem 0;
|
||||
font-family: Georgia, Lucida, serif;
|
||||
font-style: italic;
|
||||
}
|
||||
|
@ -40,11 +42,25 @@
|
|||
padding: 1px 0 0 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
#container, #innerheader{
|
||||
#container,
|
||||
#innerheader,
|
||||
.Message {
|
||||
max-width: <% gallery_width %>;
|
||||
margin: 0px auto;
|
||||
}
|
||||
header aside{
|
||||
|
||||
.Message {
|
||||
background-color: #2ecc71;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.Message > div {
|
||||
padding: 1rem;
|
||||
}
|
||||
.closeMessage {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.Comment {
|
||||
padding: 2rem 0;
|
||||
}
|
||||
img {
|
||||
|
@ -52,11 +68,27 @@
|
|||
}
|
||||
nav {
|
||||
font-size: 1.3em;
|
||||
padding-top: 2rem;
|
||||
}
|
||||
.NavWrapper {
|
||||
padding: 1rem 0;
|
||||
}
|
||||
body > nav {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.Empty,
|
||||
.EmptyAdvice {
|
||||
text-align: center;
|
||||
text-shadow:0 1px 0 #FFF
|
||||
}
|
||||
.Empty {
|
||||
font-size: 10rem;
|
||||
}
|
||||
.EmptyAdvice {
|
||||
font-size: 2rem;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#folder_comment
|
||||
{
|
||||
margin-bottom:10px;
|
||||
|
@ -107,7 +139,7 @@
|
|||
}
|
||||
footer {
|
||||
padding-top: 2rem;
|
||||
margin: 25px 0px;
|
||||
margin-bottom: 25px;
|
||||
text-align: center;
|
||||
}
|
||||
footer a {
|
||||
|
@ -163,21 +195,19 @@
|
|||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script src="<% gallery_root %>js/lazy.js"></script>
|
||||
<script src="<% gallery_root %>js/script.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.3.4.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header id="top" role="banner">
|
||||
<div id="innerheader">
|
||||
<h1><a href="<% gallery_root %>"><% title %></a></h1>
|
||||
<% messages %>
|
||||
<nav role="navigation"><% breadcrumb_navigation %></nav>
|
||||
<aside><% folder_comment %></aside>
|
||||
</div>
|
||||
<div id="Message" class="Message">
|
||||
<% messages %>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main id="container">
|
||||
<ul id="gallery">
|
||||
<% thumbnails %>
|
||||
|
@ -197,5 +227,9 @@
|
|||
RSS
|
||||
</a>
|
||||
</footer>
|
||||
<script src="<% gallery_root %>js/lazy.js"></script>
|
||||
<script src="<% gallery_root %>js/script.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools1.5.0.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.5.4.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -181,8 +181,8 @@
|
|||
|
||||
<script src="<% gallery_root %>js/lazy.js"></script>
|
||||
<script src="<% gallery_root %>js/script.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.3.4.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools1.5.0.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.5.4.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -168,8 +168,8 @@
|
|||
|
||||
<script src="<% gallery_root %>js/lazy.js"></script>
|
||||
<script src="<% gallery_root %>js/script.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.3.4.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools1.5.0.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.5.4.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header id="top" role="banner">
|
||||
|
|
|
@ -184,8 +184,8 @@
|
|||
|
||||
<script src="<% gallery_root %>js/lazy.js"></script>
|
||||
<script src="<% gallery_root %>js/script.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.3.4.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools1.5.0.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.5.4.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header id="top" role="banner">
|
||||
|
|
|
@ -162,8 +162,8 @@
|
|||
|
||||
<script src="<% gallery_root %>js/lazy.js"></script>
|
||||
<script src="<% gallery_root %>js/script.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.3.4.js"></script>
|
||||
<script src="<% gallery_root %>js/mootools1.5.0.js"></script>
|
||||
<script src="<% gallery_root %>js/mediabox1.5.4.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header id="top" role="banner">
|
||||
|
|
Loading…
Reference in a new issue